Up to date
This page is up to date for Godot 4.3.
If you still find outdated information, please open an issue.
プレイヤーシーンと入力アクション
次の2つのレッスンでは、プレイヤーのシーンをデザインし、カスタム入力アクションを登録し、プレイヤーの動きをコーディングします。最後には、8方向に動くプレイ可能なキャラクターが完成します。
上部メニュー左の「 シーン 」 -> 「 新規シーン 」で、新しいシーンを作成します。

ルートノードとして CharacterBody3D ノードを作成します
追加した CharacterBody3D ノード名を Player と名付けます。 キネマティックボディ (Kinematic Body)というBody Typeは、2D ゲームのチュートリアルで使用したエリアと リジッドボディ (Rigid Body)を補完するものです。 リジッドボディ と同じように、移動して環境と衝突することができますが、物理エンジンによって制御されるのではなく、 あなた がその動きを指示します。このノードのユニークな機能を、ジャンプする動作と押しつぶす動作のコーディングで見ていきます。
参考
さまざまな物理ノードの種類についての詳細は、 物理の紹介 を参照してください。
とりあえず、キャラクタの3D モデルに対して基本的なリグを作成します。これによって、後でアニメーションを再生しながら、コードを使用してモデルを回転させることができます。
Node3D ノードを Player の子ノードとして追加し、名前を Pivot とします
次に、 ファイルシステム(FileSystem) ドックで、 art/ フォルダをダブルクリックして展開し、 player.glb を Pivot ノードにドラッグ アンド ドロップしてください。

これで、 Pivot の子としてモデルがインスタンス化されるはずです。このノードの名前を Character に変更しておきましょう。

注釈
The .glb files contain 3D scene data based on the open source glTF 2.0
specification. They're a modern and powerful alternative to a proprietary format
like FBX, which Godot also supports. To produce these files, we designed the
model in Blender 3D and exported it to glTF.
あらゆる種類の物理ノードと同様に、キャラクターが環境と衝突するための衝突判定用の型が必要です。 Player ノードを再度選択し、 CollisionShape3D を追加してください。 インスペクター(Inspector) で、 Shape プロパティの隣の <空> (empty)を押下し、「新規 SphereShape3D 」を選択します。
球体のワイヤーフレームがキャラクターの下に表示されます。

これは3Dモデルが周りのオブジェクトと衝突するときに、物理エンジンが使用する型になります。なので、3Dモデルにうまくフィットするようにしましょう。ビューポートでオレンジ色のドットをドラッグして、少し縮小してください。球体の半径は、 0.8 メートルほどです。
次に、この衝突のための型を上に移動して、型の底がグリッドの平面とほぼ一致するようにします。

モデルの表示/非表示を切り替えるには、 Character ノードまたは Pivot ノードの横にある目のアイコンをクリックします。

player.tscn という名前でシーンを保存しておきましょう
ノードの準備ができたので、ほとんどコーディングできるようになりました。しかしその前に、いくつかの入力アクションを定義する必要があります。
入力アクションの作成
キャラクターを動かすために、矢印キーを押した、などのようなプレイヤーの入力操作を認識する必要があります。Godotでは、全てのキーバインドをコードで書くこともできますが、キーやボタンのセットに操作のラベルを割り当てられる便利な機能があります。この機能により、スクリプトをよりシンプルで読みやすくすることができます。
この機能が「 インプットマップ 」です。 インプットマップ のエディターにアクセスするには、 プロジェクト (Project)メニューから、 プロジェクト設定... (Project Settings...)を選択してください。

上部に、複数のタブがあります。インプットマップ(Input Map)をクリックします。このウィンドウでは、上部で新しいアクションを追加することができます。それらはあなたのラベルです。下部では、これらのアクションにキーをバインドすることができます。

Godot プロジェクトには、ユーザーインターフェイスのために設計された、定義済みのアクションがいくつか用意されています(上のスクリーンショット参照)。これらは、「 組み込みアクションを表示 (Show Built-in Actions) 」をオンにすると表示されます。ここで定義済みのアクションを使うこともできますが、ゲームパッドをサポートするため、代わりに独自のアクションを定義します。「 組み込みアクションを表示 (Show Built-in Actions) 」はオフのままにしておいてください。
これから定義するアクションには move_left 、 move_right 、 move_forward 、 move_back 、 そして jump という名前をつけてみましょう。
アクションを追加するには、上部の「 新しいアクションの追加 」バーにアクションの名前を入力して、 追加 または Enter キーを押します。

以下の5つのアクションを作成してください:

キーやボタンをアクションに紐づけるには、その右側にある "+" ボタンをクリックします。 move_left に対してこの操作を行い、「 キーボードのキー 」内のメニューにある Left を選択して OK ボタンを押します。
同様に、 A キーも、 move_left のアクションに紐づけておきましょう。

次に、ゲームパッドの左ジョイスティックの操作も追加しましょう。もう一度 "+" ボタンをクリックしますが、今度は ジョイパッドの軸 (Joy Axis)のメニューを開きます。
「 ジョイパッドの軸 0 - (左スティック 左, ジョイスティック 0 左) 」を選択してください。
他の値はデフォルトのままにして、 OK を押しましょう
注釈
コントローラごとに異なる入力アクションを紐づけたい場合には、「 追加のオプション (Additional Options)」の「 デバイス (Devices)」オプションを使用します。デバイス 0は最初に接続されたゲームパッドに対応し、デバイス 1は2番目に接続されたゲームパッドに対応します。
他の入力アクションも同じように紐づけます。例えば、右方向キー、D、ジョイスティックの左軸を右側に倒した時の操作は move_right にバインドします。すべてのキーをバインドすると、インプットマップは次のようになります。

最後に作成するアクションは jump です。 Space キーとゲームパッドのAボタンをバインドして下さい。

ジャンプ入力のアクションはこのようになるはずです。

これで、このゲームに必要なアクションが用意できました。このメニューを使って、プロジェクト内のキーやボタンのグループにラベルを付けることができます。
次のパートでは、プレーヤーの動きをコーディングしてテストしていきます。