BazVehicleMovementSettings
あらゆる GameObject のための 360° 頂上ビュー(トップダウン)移動。タンクモード(その場で旋回)または車両モード(移動中のみ旋回)。オプションでスムーズな加速が可能。
ダウンロード:
baz_vehicle_movement_settings.gd (10.0 KB)
機能
GameObject をあらゆる方向に自由に回転させ、進行方向へ移動させます。
- タンク: 停止中もその場で旋回可能
- 車両: 前進または後進中のみ旋回可能
Accelerated をオンにすると、スムーズな加速・減速が可能になります。
セットアップ
baz_vehicle_movement_settings.gdをプロジェクト内の任意の場所に保存します。制御したい GameObject のシーンを開き、子 Node2D を追加してスクリプトをアタッチします。
- 親 GameObject で以下を設定します:
| 設定 | 値 |
|---|---|
| Is Release Move Control | On |
| Animation Sets > Auto Y Flip Animation | Off (すべてのアニメーションに対して) |
Y Flip をオフにすることは重要です。これをオンにすると、後進時にスプライトが反転し、360° 回転が破綻します。
-
スプライトを右向き(Godot の進行方向)に描画してください。上向きの場合は、2D ビューポートで GameObject ノードを -90° 回転させます。設定した回転角度が、ゲーム内の初期進行方向となります。
-
インスペクタを設定します:
| フィールド | 機能 |
|---|---|
| Move Forward / Backward / Turn Left / Turn Right Input | 入力アクションのドロップダウン。デフォルトは arrow_up/down/left/right。無効にする場合は “Unset” を選択 |
| Movement Type | Tank または Vehicle |
| Forward / Backward Speed | 最大速度(ピクセル/秒) |
| Left / Right Rotation Speed | 旋回速度(度/秒) |
| Accelerated | OFF = 即座に最大速度に到達。ON = 加速・減速フィールドを表示 |
| Debug Enabled | 移動情報をコンソールに出力 |
フィールドにカーソルを合わせるとツールチップが表示されます。
-
GameObject のビジュアルスクリプトで、移動状態(通常は Move)を選択し、InvokeScript アクションを追加します:
- Target Node: BazVehicleMovementSettings
- Target Method: apply_vehicle_movement
- Invoke Timing: OnStateUpdate
-
(オプション) 停止・ダメージ・死亡状態の場合は、別の InvokeScript アクションを追加します:
- Target Method: stop_vehicle_movement
- Invoke Timing: OnStateEnter
条件
ScriptConditionEvaluator 用の 5 つの is_* 条件(アイドル状態と移動状態のアニメーション遷移などに便利):
| メソッド | 真となる条件 |
|---|---|
| is_moving | 速度が 0 以外 |
| is_moving_forward | 速度が正 |
| is_moving_backward | 速度が負 |
| is_tank_mode | Movement Type が Tank |
| is_vehicle_mode | Movement Type が Vehicle |
ヒント
- 入力アクションが表示されない場合は、Project Settings > Input Map で定義してください。組み込みの
ui_*アクションは意図的に非表示になっています。 - “Unset” はバインディングを無効化します。一方通行の車両や固定砲台などに適しています。
- Accelerated モードでは、Forward/Backward Speed が最大上限として機能します。Accel 値はそこに到達するまでの速度を制御します。
- スクリプトは起動時に自動的に CharacterBody2D の運動モードを Floating に設定します。360° 移動にはこれが必須ですが、追加設定は不要です。




