イベントコマンド 【キー入力】

 キーの入力を取得したり〜。



 

【各機能の説明】


[キー入力受け付け]
 このコマンドが実行された瞬間に押されているキーをチェックし、その対応した番号を変数に代入します。何もなければ0が代入されます。各部の説明は以下の通りです。

 ・キー種 … 3種類あり、それぞれ受け付けるキーが異なります。

基本(方向/決定/キャンセル/サブ)



 キーボード/パッドの方向キーおよび、決定キー(Enter/スペース)、キャンセルキー(Esc/Backspace/Delete)、サブキー(Shift)、
 システム変数52〜57で決定キー/キャンセルキー/サブキーに設定したキーコードのキーを受け付けます。
 
 ・方向キー … 受け付け可能な方向キーを設定します。各方向の値は、以下のようにテンキーの番号と対応しています。
7 8 9
4
6
1 2 3


 ・決定キー/キャンセルキー/サブキー … 各々のキー入力を受け付けるかどうかを指定します。
 
 ・キーが押されるまで待つ … 上記で設定した何らかのキーが押されるまで、イベント処理を進めずに停止します。
キーボード全キー (100〜)



 キーボードの全文字キーを受け付けます(基本は、下記画像で  が付いてるキーのみ)。 受け付けたキーコードをシステム変数52〜54のどれかに代入すると、システム文字列1〜3を使ってキー名が確認できます。


特定キーのみ判定
  ここにチェックを入れると、キーコードで指定したコードのキーのみ受け付けます。
  通常のキーボード全キー受付で取得できないキーコードも取得可能です (下記画像で  が付いてないキー)



 キーボードとキーコードの対応は以下の図のようになります。
 
※メインとテンキーのEnter共に本来は「128」だが、同時押しした後にメインのEnterのみ離すと「256」になる。
  半角全角は「248」、ただしカナキーと同じく一度押すと常時押しっぱしになる。

                                         PrtScrは「283」、Homeキーが「299」

○調査・画像提供 : ナナミ 様
マウスクリック・座標



 マウスの各種クリックの受付や座標の取得を行います。
 ・クリック状態: 左・右・中クリックを受け付けます。
 ・マウスX座標: マウスの画面内X座標を取得します。
 ・マウスY座標: マウスの画面内Y座標を取得します。
 ・ホイール回転: マウスの1フレーム中のホイール回転量を取得します。基本は-1〜2、0、+1〜2くらいの数値が入ります。
   ※ただ一部のPC機種ではホイールに-100や+100以上の数値が入り続けてしまうケースがあるそうです。
 
パッドボタン(300〜)



 ゲームパッドの全ボタンを受け付けます。受け付けたキーコードをシステム変数55〜57のどれかに代入すると、システム文字列4〜6を使ってキー名が確認できます。
アナログスティック


 ゲームパッドの左右アナログスティックの状態受付を行います。
 ・(左/右)スティック上下[±1000]: スティックの上下傾き度合いを-1000〜+1000で得られます。
 ・(左/右)スティック左右[±1000]: スティックの左右傾き度合いを-1000〜+1000で得られます。
 ・(左/右)スティック角度[0-3600/右が0]: スティックが傾いている方向を0〜3600で得られます。右方向が0、時計回りで増えます。
 ・(左/右)スティック傾き[0-1000]: 方向関わらず、スティックが傾いている量を0-1000で得られます。
    Xboxコントローラなど、「斜めの最大の傾き」が900くらいにしかならない場合がありますので注意してください。
 ・ZL/ZRトリガー[0-1000/Xinput専用]: 背面トリガーを押し込んだ量を得られます。DirectInputには対応していないそうです。
 ・Z軸値[±1000/Direct/XInput両用]: 背面トリガー両方を押し込んだ量を足した値±1000内で得られます。両トリガーを同時にいっぱいまで引くと0になります。
    DirectInputにも対応させたい場合に使えそうですが取り回しが悪いので、通常は上の「ZL/ZRトリガー」が推奨です。
 ・POV十字キー


 ゲームパッドの十字キー(POVキー)の状態受付を行います。

 ・方向キー … 受け付け可能な方向キーを設定します。各方向の値は、以下のようにテンキーの番号と対応しています。
7 8 9
4
6
1 2 3
  ・複数タッチ認識


 タブレット端末などでタッチ受け付けをするための機能でです。

 ・タッチ何番?: 同時タッチのうち、「何番目」の値を取得するか指定します。1つめのタッチが「0番」となり、タッチされてない場合は-1の値が返されます。

 【読込対象】
 ・X座標(-1:なし): タッチされたX座標を取得します。タッチがない場合は-1が返されます。
 ・Y座標(-1:なし): タッチされたY座標を取得します。タッチがない場合は-1が返されます。 
 ・追跡用ID(-1:なし): 1タッチごとに1つの番号が割り振られ、タッチが離さない限り同じ追跡用IDを返します。
      たとえば同じ「タッチ0番」でも、先にタッチした手を離したりすると順番が変わるため、そういった場合に同じタッチを識別するために使います。
 


【自動キー入力】
  「次のフレーム」のキー入力として、各種キー・マウス操作を自動で行うことが出来ます。
  この機能の使用例としては、リプレイ機能を作りたいときや、ゲームのデモ画面を作りたいとき、
  RPGをマウスでも操作させたいとき(※ただし受け付けは1フレーム=約0.017秒(FPSによる)遅れる)などに利用可能です。

  なお、この機能で「キーボード」を入力すると、後述する「禁止」にしたキーでも入力を受け付けられますので、
  ご注意下さい。プレイヤーの入力を不能にしつつ、ウディタ側だけでキー入力できるようにする目的です。
  ちなみに「基本入力」を禁止した場合は、「自動キー入力」による基本入力も効かなくなります。

 ・キー種 … 3種類あり、それぞれ出力するキーが異なります。

基本入力



 上記のキー入力(基本(方向/決定/キャンセル/サブ))と同等の出力版です。
キーボード



 上記のキー入力(キーボード全キー(100〜))と同等の出力版です。

 ※【裏技】 『文字列操作』の「キーボード入力」中に「キーコード 128(Enter)」を自動キー入力すると
       途中でキーボード入力を完了させることができます。
マウス左・中・右クリック・座標



 マウスの左・中・右クリックを自動で行う機能です。また、指定座標へマウスを移動することもできます。


【キー入力の許可/禁止】
  決定・キャンセル・サブキー上下左右、および、キーボード/マウス/パッド入力のそれぞれの許可・禁止状態を切り替えることができます。

基本入力



 選択したキーに対し「常に受け付ける(デフォルト)」「移動時禁止・キー入力時だけ許可」「移動時もキー入力時も禁止」 の設定が可能です。
たとえば主人公のカーソルキーによる移動を禁止したいときは、
「上下左右」を選択し、「移動時禁止・キー入力時だけ許可」にすることで実現できます。
入力デバイス



キーボードの各キー(1つずつ設定可)・マウス全部・パッド全部・全てのデバイスの入力を許可・禁止にできます。