2D / 3D ゲームを作成できる無料・オープンソースの軽快なゲームエンジン「Godot Engine 4」で、公式チュートリアル「Coding the player — Godot Engine (stable) documentation in English」を参考にして作成したキャラクターをアニメーションさせながら移動させるスクリプトで用いているアクション名に対応する、入力のアクション(キー入力イベント)をインプットマップで設定します。
入力を正しく検知して、スクリプトによってキャラクターが移動することをテストします。
![GodotEngine4 2D チュートリアルを参考にしてキャラクターを移動](https://compota-soft.work/wp1/wp-content/uploads/2023/10/GodotEngine4-2D-チュートリアルを参考にしてキャラクターを移動.gif)
※ Godot Engine のバージョンは 4.1.2 .NET です。
※キャラチップ画像は「キャラメル -CharaMEL-」で作成しました。
前回の記事
前回は、移動するキャラクターを管理する Player ノードに、そのための C# スクリプトを作成して割り当てました。
![GodotEngine4 player.cs スクリプトが作成され 2D から Script に切り替わりました.](https://compota-soft.work/wp1/wp-content/uploads/2023/10/GodotEngine4-player.cs-スクリプトが作成され-2D-から-Script-に切り替わりました-1024x624.png)
しかし、スクリプトの _Process 関数内の
Input.IsActionPressed("move_right")
Input.IsActionPressed の引数の文字列については、入力のアクション名としてまだ設定していないので、入力を検知した処理が行えません。
move_right は、[→]キーが押されたときなど、右方向への入力のアクションの名前です。
入力のアクションの追加
前回 Player ノードにアタッチしたスクリプトで用いている move_right などの入力のアクションを「プロジェクト設定」ウィンドウの「インプットマップ」を開いて設定します。
※メニュー「プロジェクト」→「プロジェクト設定」を選択して「プロジェクト設定」ウィンドウを表示します。
![GodotEngine4 player.cs スクリプトで用いるアクションを追加するためにメニュー>プロジェクト>プロジェクト設定を選択します.](https://compota-soft.work/wp1/wp-content/uploads/2023/10/GodotEngine4-player.cs-スクリプトで用いるアクションを追加するためにメニュー>プロジェクト>プロジェクト設定を選択します.png)
「プロジェクト設定」ウィンドウを開いて「インプットマップ」タブを選択します。
左上のテキストボックスにアクションの名前を入力してから、右側の「追加」ボタンを押すと、「アクション」のリストにアクション名が追加されます。
![GodotEngine4 player.cs スクリプトで用いるアクションの名前を入力して追加ボタンを押すとインプットマップにアクションが追加されました..](https://compota-soft.work/wp1/wp-content/uploads/2023/10/GodotEngine4-player.cs-スクリプトで用いるアクションの名前を入力して追加ボタンを押すとインプットマップにアクションが追加されました.png)
リストのアクション名の右側の + ボタンを押すと、どの入力に対応させるかを設定する「イベントの設定」ダイアログが表示されます。
一番上のテキストにフォーカスした状態で、右方向への入力のアクションならば [→] キーを押しましょう。
下図のように自動的に、イベントが対応する入力内容が設定されます。
![GodotEngine4 インプットマップで追加したアクションの+ボタンを押してからイベントの設定ウィンドウの一番上のボックスを選択して→キーを入力すると設定されました.](https://compota-soft.work/wp1/wp-content/uploads/2023/10/GodotEngine4-インプットマップで追加したアクションの+ボタンを押してからイベントの設定ウィンドウの一番上のボックスを選択して→キーを入力すると設定されました.png)
同様に、残り3方向の入力についても、スクリプトで使っているアクション名で追加して設定します。
![GodotEngine4 インプットマップで move_right 同様に他の3方向のアクションも設定しました..](https://compota-soft.work/wp1/wp-content/uploads/2023/10/GodotEngine4-インプットマップで-move_right-同様に他の3方向のアクションも設定しました.png)
入力のアクションが反応するかのテスト
入力のアクションが正しく設定されていれば、スクリプトの _Process イベントで毎フレーム、上下左右のキーの入力のアクションがあったかを判別して、あれば処理に従って、その方向に向きを変えてキャラクターが移動します。
シーンを実行するには、エディターの右上の「特定のシーンを実行」ボタンを押します。
ウィンドウが起動して、シーンが実行されます。
![GodotEngine4 エディター右上の特定のシーンを実行ボタンを押すとウィンドウが起動してシーンが実行されます.](https://compota-soft.work/wp1/wp-content/uploads/2023/10/GodotEngine4-エディター右上の特定のシーンを実行ボタンを押すとウィンドウが起動してシーンが実行されます-1024x541.png)
矢印キーを入力すると、その方向にアニメーションしながらキャラクターが移動しました。
![GodotEngine4 2D チュートリアルを参考にしてキャラクターを移動](https://compota-soft.work/wp1/wp-content/uploads/2023/10/GodotEngine4-2D-チュートリアルを参考にしてキャラクターを移動.gif)
まとめ
今回は、2D / 3D ゲームを作成できる無料・オープンソースの軽快なゲームエンジン「Godot Engine 4」で、公式チュートリアル「Coding the player — Godot Engine (stable) documentation in English」を参考にして作成したキャラクターをアニメーションさせながら移動させるスクリプトで用いているアクション名に対応する、入力のアクション(キー入力イベント)をインプットマップで設定しました。
入力を正しく検知して、スクリプトによってキャラクターが移動することをテストして、正しく反応することを確認しました。
参照サイト Thank You!
- Godot Engine – Free and open source 2D and 3D game engine
- Setting up the project — Godot Engine (stable) documentation in English
- Creating the player scene — Godot Engine (stable) documentation in English
- Multiple sprite sheets for one character – Godot Engine – Q&A
- Godotの設計哲学 — Godot Engine (4.x)の日本語のドキュメント
- ノードとシーン — Godot Engine (4.x)の日本語のドキュメント
- キャラメル -CharaMEL-
- 【Godot4.x】タイルマップの基本的な使い方 | 2dgames.jp
記事一覧 → Compota-Soft-Press
コメント