【Godot】使い方(8)プレイヤーの移動②

Godot ゲーム制作

 コーディングの準備が前章できたので、この章ではキーを押してキャラクターが移動できるように、キーボードの入力の受け付けと動作の割り当てをしてきます。


インプットマップ
キーボードやコントローラーなどの入力デバイスの操作に名前(godotではこの名前をアクションという)を割り当てるもの。1つのアクションに複数のキー入力を割り当てることで、コード内で入力デバイス(キーボードなのか、コントローラーなのか)を意識しないでコーディングできる。また、操作方法を変えたい時にも、コードを変更せず、このインプットマップで簡単に変更できる。


アクションの登録

 まずは、どのキー(あるいはボタン)をどの動作にするか、インプットマップを使って決めていきます。インプットマップはプロジェクト設定から呼び出せます。

①メニューから「プロジェクト」→「プロジェクト設定」を選択。
②開いたウインドウから「インプットマップ」タブを選択。

プロジェクト設定
インプットマップ

 インプットマップを開いたら、アクション名をつけて、各動作にキー(ボタン)を割り当てていきます。まずはアクション名の作成です。

①「新しいアクションの追加」の枠に、アクション名を入力。
 下図の場合、右に動かすためのキーを押した動作名を「move_right」で入力。
 (名前は好きな名前で大丈夫です。)
②「追加」を押す。
③「アクション」枠に入力されたアクション名が追加される。

アクション名
move_right追加


キーの割り当て

 アクション名を登録したら、次にそのアクション名にキーを割り当てていきます。今回はWASDキーでの割り当ててしていきます。移動方向は、W:上、A:左、S:下、D:右です。

①「move_right」の右横端にある「」をクリック。
②割り当てたいキーを押す。
 (ここでは「D」キーを押しています。)
③この選択肢からも、キーやマウス、コントローラーのボタン等を選ぶことができます。
 (②と③、どちらで選択しても大丈夫です。)
④CtrlとRを同時に押したときなど、特殊キーとの組み合わせで動作させたい時に選択。
⑤キーボードの扱いをどれで行うか選択。通常は物理キーコードのままでOK。
⑥「OK」を押すと設定完了。

イベント追加
イベント設定
Dキー設定


キーボードの割り当ての種類
先ほどの⑤で選択するキーボードの種類は、以下のように分類されています。

キーコード
キーボードに表示されているキーがそのまま入力に対応します。「D」と書かれたキーを押すと「D」が押されたと判断します。QWERTY配列でもAZERTY配列でも「D」と書かれたキーが「D」になります。「S」を押すとセーブなど、文字自体に意味がある時に適しています。

物理キーコード:
キーボード上の物理的な位置にあるキーが入力に対応します。通常、US QWERTY配列(101/102キーボード)を基準とします。例えば、QWERTY配列で「W」はWと判断しますが、AZERTY配列ではQWERTY配列でWのある位置のキー(Zと書かれたキー)がWを押されたと判断されます。物理位置が変わらないので、キーボードのWASDを押して移動する際などに適しています。

キーラベル:
現在キーボードに印刷されている文字を示すコードです。主にスクリプト内で利用します。例えば、QWERTY配列では「W」と表示されるキーを、AZERTY配列では「Z」と表示させます。そのため、移動などキャラクターの動作などには適していません。

OKで元の画面に戻ると、先ほどのmove_rightにDキーが設定されています。


 キーの割り当てを残りの方向にも適用していくと、以下の画面のように4種類の方向が設定されます。画面では、move_right(右)に「D」、move_left(左)に「A」、move_up(上)に「W」、move_down(下)に「S」を設定しました。

キーイベント設定