[スクリプトライブラリ] Baz 車両移動設定

BazVehicleMovementSettings

あらゆる GameObject のための 360° 頂上ビュー(トップダウン)移動。タンクモード(その場で旋回)または車両モード(移動中のみ旋回)。オプションでスムーズな加速が可能。

ダウンロード:
baz_vehicle_movement_settings.gd (10.0 KB)

機能

GameObject をあらゆる方向に自由に回転させ、進行方向へ移動させます。

  • タンク: 停止中もその場で旋回可能
  • 車両: 前進または後進中のみ旋回可能

Accelerated をオンにすると、スムーズな加速・減速が可能になります。

セットアップ

  1. baz_vehicle_movement_settings.gd をプロジェクト内の任意の場所に保存します。制御したい GameObject のシーンを開き、子 Node2D を追加してスクリプトをアタッチします。

  1. 親 GameObject で以下を設定します:
設定
Is Release Move Control On
Animation Sets > Auto Y Flip Animation Off (すべてのアニメーションに対して)

Y Flip をオフにすることは重要です。これをオンにすると、後進時にスプライトが反転し、360° 回転が破綻します。

  1. スプライトを右向き(Godot の進行方向)に描画してください。上向きの場合は、2D ビューポートで GameObject ノードを -90° 回転させます。設定した回転角度が、ゲーム内の初期進行方向となります。

  2. インスペクタを設定します:

フィールド 機能
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 移動情報をコンソールに出力

フィールドにカーソルを合わせるとツールチップが表示されます。

  1. GameObject のビジュアルスクリプトで、移動状態(通常は Move)を選択し、InvokeScript アクションを追加します:

    • Target Node: BazVehicleMovementSettings
    • Target Method: apply_vehicle_movement
    • Invoke Timing: OnStateUpdate
  2. (オプション) 停止・ダメージ・死亡状態の場合は、別の 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° 移動にはこれが必須ですが、追加設定は不要です。
「いいね!」 2