ようこそ
(2018年追記)
戻ってくることもなさそうなので、使えそうなものだけ残して他は非公開とさせていただきました。
以前まで公開していた物を入手されていた方は、勝手に使っていただいて構いません。
このブログも更新停止しますので、アップローダでダウンロードできなくなった時点で公開終了とさせていただきます。
■ウディタ用コモン
├ 行列数変更選択肢
├ 行列数変更選択肢 呼び出しオンリー
├ コメント付きセーブコモン
├ 吹き出し型メッセージ
├ 吹き出し出現風メッセージ
└ パターン番号切替アニメーション
■ツール
├ 衝突判定矩形エディタ Short2QK
└ ウディタ用ピクチャ入力支援ツール Wpics
■アップローダー(外部URLにジャンプします。アップローダーにあるものはご自由にDLして使っていただいて構いません。)
https://ux.getuploader.com/jeekza_wditor/
https://ux.getuploader.com/jeekza_nagesute/
※投げ捨てロダにあるdbtypeデータの解説はここ→ビット数をDBで簡単に扱いたい
戻ってくることもなさそうなので、使えそうなものだけ残して他は非公開とさせていただきました。
以前まで公開していた物を入手されていた方は、勝手に使っていただいて構いません。
このブログも更新停止しますので、アップローダでダウンロードできなくなった時点で公開終了とさせていただきます。
ゲーム製作者様へ
作者表記については「書いてほしい」スタンスでしたが、「書かなくて良い」というスタンスに変更させていただきます。
↓下で公開しているツール内のReadmeは変更されてませんが、そういうことですのでご自由にどうぞ…
■ウディタ用コモン
├ 行列数変更選択肢
├ 行列数変更選択肢 呼び出しオンリー
├ コメント付きセーブコモン
├ 吹き出し型メッセージ
├ 吹き出し出現風メッセージ
└ パターン番号切替アニメーション
■ツール
├ 衝突判定矩形エディタ Short2QK
└ ウディタ用ピクチャ入力支援ツール Wpics
■アップローダー(外部URLにジャンプします。アップローダーにあるものはご自由にDLして使っていただいて構いません。)
https://ux.getuploader.com/jeekza_wditor/
https://ux.getuploader.com/jeekza_nagesute/
※投げ捨てロダにあるdbtypeデータの解説はここ→ビット数をDBで簡単に扱いたい
[ 2037年09月05日 15:17 ]
カテゴリ:雑記 |
TB(-) |
CM(-)
1つのコモンで複数のデバイスのキー入力 訂正版
(2020/07/07訂正)
2つあるイベント構文のうち、1つめの構文が間違っていたので追記修正しました。
4行目と8行目> |-◇分岐: 【2】 [ CSelf10 が 1以上 ]の場合↓
ではなく、
> |-◇分岐: 【2】 [ CSelf11 が 1以上 ]の場合↓
でした。失礼しました。
複数のデバイスのキー入力をするには通常このように組みますが、
これだと1度のボタン押しでボタンを離すまでに何フレームも処理を行ってしまうという欠点があります。
対して、このようにキー入力後にもう一度キー入力のループを置き、「キー入力用変数が0 = キーを離した時」にループ脱出とすることで、強引にキー入力待ちを再現しています。
処理を入れる場所を間違えなければ、何度も処理が行われることは無いです。
キーを押した瞬間とキーを離した瞬間の2通りに処理を置くことができ、単にキー入力待ちを置くよりかは使えそうです。
(2020/07/07追記)
1つ目と2つ目で使っている条件分岐が違いますが、「~以上」よりも「~以外」の方がイベント全体の処理速度がごくわずかに早いと聞いたことがあります。(「=<」が内部的に「=(イコール)」と「<(~より上)」で2回判定を行っているせい?だとか)
「~以上」の方がわかりやすいですが、今回はループ内イベント回数の削減(=処理速度の向上)が目的なので、「~と同じ」と「~以外」の組み合わせで書いてます。
2つあるイベント構文のうち、1つめの構文が間違っていたので追記修正しました。
4行目と8行目> |-◇分岐: 【2】 [ CSelf10 が 1以上 ]の場合↓
ではなく、
> |-◇分岐: 【2】 [ CSelf11 が 1以上 ]の場合↓
でした。失礼しました。
複数のデバイスのキー入力をするには通常このように組みますが、
これだと1度のボタン押しでボタンを離すまでに何フレームも処理を行ってしまうという欠点があります。
■ループ開始
|■キー入力:このコモンEvセルフ変数10 / キーボード(100~)
|■キー入力:このコモンEvセルフ変数11 / パッド(300~)
|■条件分岐(変数): 【1】CSelf10 が 1以上 【2】CSelf11 が 1以上
|-◇分岐: 【1】 [ CSelf10 が 1以上 ]の場合↓
| |■デバッグ文:処理
| |■
|-◇分岐: 【2】 [ CSelf11 が 1以上 ]の場合↓
| |■デバッグ文:処理
| |
|◇分岐終了◇
|■ウェイト:1 フレーム
|■
◇ループここまで◇◇
対して、このようにキー入力後にもう一度キー入力のループを置き、「キー入力用変数が0 = キーを離した時」にループ脱出とすることで、強引にキー入力待ちを再現しています。
処理を入れる場所を間違えなければ、何度も処理が行われることは無いです。
キーを押した瞬間とキーを離した瞬間の2通りに処理を置くことができ、単にキー入力待ちを置くよりかは使えそうです。
■ループ開始
|■キー入力:このコモンEvセルフ変数10 / キーボード(100~)
|■キー入力:このコモンEvセルフ変数11 / パッド(300~)
|■条件分岐(変数): 【1】CSelf10 が 0以外 【2】CSelf11 が 0以外
|-◇分岐: 【1】 [ CSelf10 が 0以外 ]の場合↓
| |■デバッグ文:押した瞬間にイベント
| |■ループ開始
| | |■キー入力:このコモンEvセルフ変数10 / キーボード(100~)
| | |■条件分岐(変数): 【1】CSelf10 が 0と同じ
| | |-◇分岐: 【1】 [ CSelf10 が 0と同じ ]の場合↓
| | | |■デバッグ文:ボタンを離すとイベント
| | | |■ループ中断
| | | |■
| | |◇分岐終了◇
| | |■ウェイト:1 フレーム
| | |■
| |◇ループここまで◇◇
| |■
|-◇分岐: 【2】 [ CSelf11 が 0以外 ]の場合↓
| |■デバッグ文:押した瞬間にイベント
| |■ループ開始
| | |■キー入力:このコモンEvセルフ変数11 / パッド(300~)
| | |■条件分岐(変数): 【1】CSelf11 が 0と同じ
| | |-◇分岐: 【1】 [ CSelf11 が 0と同じ ]の場合↓
| | | |■デバッグ文:ボタンを離すとイベント
| | | |■ループ中断
| | | |■
| | |◇分岐終了◇
| | |■ウェイト:1 フレーム
| | |■
| |◇ループここまで◇◇
| |■
|◇分岐終了◇
|■ウェイト:1 フレーム
|■
◇ループここまで◇◇
(2020/07/07追記)
1つ目と2つ目で使っている条件分岐が違いますが、「~以上」よりも「~以外」の方がイベント全体の処理速度がごくわずかに早いと聞いたことがあります。(「=<」が内部的に「=(イコール)」と「<(~より上)」で2回判定を行っているせい?だとか)
「~以上」の方がわかりやすいですが、今回はループ内イベント回数の削減(=処理速度の向上)が目的なので、「~と同じ」と「~以外」の組み合わせで書いてます。
ビット数をDBで簡単に扱いたい
ビット数を10進数に変換した数値をDBに入力しただけのものです。

現状のビット数を使う時にループを組んで2乗していくやり方は面倒なので、
ウディタ側でビットを変換する機能をつけてくれないかなーと思ってましたが、こんな楽な方法があったことを忘れていました。
基本システムでも採用すればいいのに。
ゴリ押し気味の方法ですが、ループを使わず一行で済むし見やすくなるので、ビット数が楽に扱えそうです。
↓投げ捨てておきますので、使いたい方はご自由にどうぞ。
ダウンロード

現状のビット数を使う時にループを組んで2乗していくやり方は面倒なので、
ウディタ側でビットを変換する機能をつけてくれないかなーと思ってましたが、こんな楽な方法があったことを忘れていました。
基本システムでも採用すればいいのに。
ゴリ押し気味の方法ですが、ループを使わず一行で済むし見やすくなるので、ビット数が楽に扱えそうです。
↓投げ捨てておきますので、使いたい方はご自由にどうぞ。
ダウンロード
キー入力(キーボード) キーコード表
(キーコード) (キー名)
100
101 Esc
102 1
103 2
104 3
105 4
106 5
107 6
108 7
109 8
110 9
111 0
112 -
113
114 BackSpace
115 Tab
116 Q
117 W
118 E
119 R
120 T
121 Y
122 U
123 I
124 O
125 P
126 [
127 ]
128 Enter
129 Ctrl(左)
130 A
131 S
132 D
133 F
134 G
135 H
136 J
137 K
138 L
139 ;
140
141
142 Shift(左)
143 \ (右下の方、[ろ]キー)
144 Z
145 X
146 C
147 V
148 B
149 N
150 M
151 ,
152 .
153 /
154 Shift(右)
155 *(テンキー)
156 Alt(左)
157 Space
158 Caps
159 F1
160 F2
161 F3
162 F4
163 F5
164 F6
165 F7
166 F8
167 F9
168 F10
169
170 Scroll
171 7(テンキー)
172 8(テンキー)
173 9(テンキー)
174 -(テンキー)
175 4(テンキー)
176 5(テンキー)
177 6(テンキー)
178 +(テンキー)
179 1(テンキー)
180 2(テンキー)
181 3(テンキー)
182 0(テンキー)
183 +(テンキー) ←[.(テンキー)]の表記ミスか?
184
185
186
187 F11
188 F12
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212 カタカナ・ひらがな ※一度押すと押しっぱなし(解除不可?)
213
214
215
216
217
218
219
220
221 変換(切替キー)
222
223 無変換(切替キー)
224
225 \ (右上の方、[Backspace]の隣)
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244 ^
245 @
246 :
247
248 半角/全角(切替キー) ※一度押すと押しっぱなし(+[Alt]で解除?)
249
250
251
252
253
254
255
256 Enter(テンキー)?
※メインEnter+テンキーEnter同時押し→メインのみ離す、とあるが確認不可。
自分のではテンキーEnterのみ入力で256になった。
257 Ctrl(右)
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281 /(テンキー)
282
283 Pause ←[PrtSc]の表記ミスか? ※押すとスクリーンショット撮影
284 Alt(右)
285
286
287
288
289
290
291
292
293
294
295
296
297 Pause
298
299 Home
300 ↑
301 PageUp
302
303 ←
304
305 →
306
307 End
308 ↓
309 PageDown
310
311 Del
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
【ウディタ】WOLF RPGエディター 質問スレ 其の3 より転載
マニュアルにはわかりやすい図が載ってますが、載ってない部分とかも記載。
イベントコマンド画面で表示されないだけで、実はキーコードは355まであります。
特にカーソルキー[↑][↓][←][→]は、ウディタの基本入力ではなく、キーボード側のもの。
並列実行で[W][A][S][D]をキー入力→カーソルを自動キー入力とやれば、簡易方向キーキーコンフィグが出来ます。
それを行うと自動キー入力の仕様上、入力は1フレーム遅れますが、普通のRPGで1フレームの入力を競うことはまず無いので、あまり問題は無いでしょう。
(ウディタ基本入力の方向キーを自動キー入力しても内部動作的には変わりないですけどね)
(追記)
書き忘れてましたが、特定キーでしか判定できないキーコードもありますので注意!
そのへんはマニュアルの図を見たほうが早いと思います。
マニュアルに書いてない300~は特定キーじゃないと判定できなさそうです。
100
101 Esc
102 1
103 2
104 3
105 4
106 5
107 6
108 7
109 8
110 9
111 0
112 -
113
114 BackSpace
115 Tab
116 Q
117 W
118 E
119 R
120 T
121 Y
122 U
123 I
124 O
125 P
126 [
127 ]
128 Enter
129 Ctrl(左)
130 A
131 S
132 D
133 F
134 G
135 H
136 J
137 K
138 L
139 ;
140
141
142 Shift(左)
143 \ (右下の方、[ろ]キー)
144 Z
145 X
146 C
147 V
148 B
149 N
150 M
151 ,
152 .
153 /
154 Shift(右)
155 *(テンキー)
156 Alt(左)
157 Space
158 Caps
159 F1
160 F2
161 F3
162 F4
163 F5
164 F6
165 F7
166 F8
167 F9
168 F10
169
170 Scroll
171 7(テンキー)
172 8(テンキー)
173 9(テンキー)
174 -(テンキー)
175 4(テンキー)
176 5(テンキー)
177 6(テンキー)
178 +(テンキー)
179 1(テンキー)
180 2(テンキー)
181 3(テンキー)
182 0(テンキー)
183 +(テンキー) ←[.(テンキー)]の表記ミスか?
184
185
186
187 F11
188 F12
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212 カタカナ・ひらがな ※一度押すと押しっぱなし(解除不可?)
213
214
215
216
217
218
219
220
221 変換(切替キー)
222
223 無変換(切替キー)
224
225 \ (右上の方、[Backspace]の隣)
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244 ^
245 @
246 :
247
248 半角/全角(切替キー) ※一度押すと押しっぱなし(+[Alt]で解除?)
249
250
251
252
253
254
255
256 Enter(テンキー)?
※メインEnter+テンキーEnter同時押し→メインのみ離す、とあるが確認不可。
自分のではテンキーEnterのみ入力で256になった。
257 Ctrl(右)
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281 /(テンキー)
282
283 Pause ←[PrtSc]の表記ミスか? ※押すとスクリーンショット撮影
284 Alt(右)
285
286
287
288
289
290
291
292
293
294
295
296
297 Pause
298
299 Home
300 ↑
301 PageUp
302
303 ←
304
305 →
306
307 End
308 ↓
309 PageDown
310
311 Del
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
【ウディタ】WOLF RPGエディター 質問スレ 其の3 より転載
39 名前は開発中のものです。[sage] 投稿日:2011/12/14 20:19:47 ID:E4Nc55Dx()
パッドの番号が300からだからキーボードのキーはそれ以上取得できないのかと思ってた。
>38
キーボードのキー入力は、DirectInputのデバイスのキーコード+100で取得してるらしい。
2,4,6,8は全デバイスの入力を集約してる。だからパッドの方向キーを押してもキーボードの方向キーを押しても反応する・
キーボードデバイスのキーコードで言うと、↑←→↓のキーはそれぞれ200, 203,205,208に対応してるから、+100した数で取得できる。
でもこれで取得できるのはキーボードだけ
マニュアルにはわかりやすい図が載ってますが、載ってない部分とかも記載。
イベントコマンド画面で表示されないだけで、実はキーコードは355まであります。
特にカーソルキー[↑][↓][←][→]は、ウディタの基本入力ではなく、キーボード側のもの。
並列実行で[W][A][S][D]をキー入力→カーソルを自動キー入力とやれば、簡易方向キーキーコンフィグが出来ます。
それを行うと自動キー入力の仕様上、入力は1フレーム遅れますが、普通のRPGで1フレームの入力を競うことはまず無いので、あまり問題は無いでしょう。
(ウディタ基本入力の方向キーを自動キー入力しても内部動作的には変わりないですけどね)
(追記)
書き忘れてましたが、特定キーでしか判定できないキーコードもありますので注意!
そのへんはマニュアルの図を見たほうが早いと思います。
マニュアルに書いてない300~は特定キーじゃないと判定できなさそうです。
「スクロールとリンク」について 詳細
「スクロールとリンク」については以前も書きましたが、その記事で説明不足により、混乱させてしまった方は申し訳ありませんでした。
その反省を含め、今回はちょっと詳しめに。
ピクチャを新たに「表示」する時、入力された座標は絶対座標だろうと相対座標だろうと関係なく、画面座標としてそのままピクチャ表示されます。
「移動」の時は、絶対座標なら入力座標が画面座標として、相対座標なら今の座標に入力座標を加算した値が画面座標として、それぞれピクチャ移動されます。
しかしこの時、「ピクチャ移動」時に「絶対座標」で、「スクロールとリンク」が絡んでくると挙動は大きく変わってしまいます。
どうなるかというと…、
現在のマップの一番左上のピクセルを基準の座標(0,0)とします。そこから入力座標分離れた位置にピクチャが移動されます。(画面左上から数えた入力座標へ表示されるのではない)
……つまりわかりやすく言うなら、「マップ全体が表示画面(スクリーン)になる」という感じでしょうか。
こうなると、マップ基準で座標を考える場合はいいのですが、ゲーム画面の画面座標に表示したい時は困ってしまいます。
ですから、そうしたい場合はシステム変数104・105「スクロール値」を入力座標に加算してあげます。
加算後の入力座標をピクチャ移動に使えばいいわけです。
↓ちょっと見にくいまとめ
ピクチャ表示 → 絶対座標・相対座標どちらも動作は変わらない。入力座標=画面座標
└→スクロールとリンク …… 動作変わらず。※システム変数「スクロール値」を加算する必要は無い。
ピクチャ移動 → 絶対座標=画面座標。 / 相対座標=現在の表示座標+入力座標=画面座標。
└→ スクロールとリンク …… 絶対座標=マップ全体を巨大な画面(スクリーン)として計算する。マップの左上が座標(0,0)となり、そこから入力座標分だけ離れた位置へピクチャが移動される。ゲーム画面の画面座標上に表示したい場合は、システム変数104・105「スクロール値」を加算したものを入力座標にする必要がある。 / 相対座標は変わらずそのまま。現在の表示座標+入力座標=画面座標
※ピクチャ移動ではスクロールとリンクを新たに指定することはできないので、その場合、あらかじめピクチャ表示でチェックをONにしておく必要がある。
その反省を含め、今回はちょっと詳しめに。
ピクチャを新たに「表示」する時、入力された座標は絶対座標だろうと相対座標だろうと関係なく、画面座標としてそのままピクチャ表示されます。
「移動」の時は、絶対座標なら入力座標が画面座標として、相対座標なら今の座標に入力座標を加算した値が画面座標として、それぞれピクチャ移動されます。
しかしこの時、「ピクチャ移動」時に「絶対座標」で、「スクロールとリンク」が絡んでくると挙動は大きく変わってしまいます。
どうなるかというと…、
現在のマップの一番左上のピクセルを基準の座標(0,0)とします。そこから入力座標分離れた位置にピクチャが移動されます。(画面左上から数えた入力座標へ表示されるのではない)
……つまりわかりやすく言うなら、「マップ全体が表示画面(スクリーン)になる」という感じでしょうか。
こうなると、マップ基準で座標を考える場合はいいのですが、ゲーム画面の画面座標に表示したい時は困ってしまいます。
ですから、そうしたい場合はシステム変数104・105「スクロール値」を入力座標に加算してあげます。
加算後の入力座標をピクチャ移動に使えばいいわけです。
↓ちょっと見にくいまとめ
ピクチャ表示 → 絶対座標・相対座標どちらも動作は変わらない。入力座標=画面座標
└→スクロールとリンク …… 動作変わらず。※システム変数「スクロール値」を加算する必要は無い。
ピクチャ移動 → 絶対座標=画面座標。 / 相対座標=現在の表示座標+入力座標=画面座標。
└→ スクロールとリンク …… 絶対座標=マップ全体を巨大な画面(スクリーン)として計算する。マップの左上が座標(0,0)となり、そこから入力座標分だけ離れた位置へピクチャが移動される。ゲーム画面の画面座標上に表示したい場合は、システム変数104・105「スクロール値」を加算したものを入力座標にする必要がある。 / 相対座標は変わらずそのまま。現在の表示座標+入力座標=画面座標
※ピクチャ移動ではスクロールとリンクを新たに指定することはできないので、その場合、あらかじめピクチャ表示でチェックをONにしておく必要がある。
最新記事