前回は Unity で見下ろし型ゲームを作るアセット TopDown Engine のサンプルゲーム Koala Dungeon の画面左上の HUD がどのように設定されていて、それを消した際の影響などを調べました。
今回は、銃の攻撃方向をゲームパッド (Xbox 互換) の右スティックで操作できるようにします。
※ Unity は 2021.3.14f1、TopDown Engine は 3.1.1 です。主人公のキャラクター画像はぴぽや倉庫様のキャラクターチップを使っています。
デフォルトの入力設定
公式の Input | TopDown Engine Documentation では、以下のようにキーボード+マウスの場合とゲームパッドの場合の操作方法の初期設定が説明されていました。
しかし、なぜか右スティックで Secondary Movement (AIM) の操作をしようとしても受け付けてくれません。マウスを動かすと反応するので、AIM 機能としては実装されているのに、入力がうまく伝わっていない、または別の入力が割り当てられているのではないかと思いました。
右スティックの入力の確認
KoalaDungeon の初期状態では、右スティックを傾けても、前述の説明のような AIM (狙う方向の指示) はできません。その原因を探るために、そもそも右スティック入力が Secondary Movement として認識されているのか確認します。
主人公 (Rei-chan) プレハブの CharacterHandleWeapon コンポーネントの Use Secondary Axis Threshold To Shoot を有効にしてテストプレイすると向きは変わりませんでしたが、右スティックを傾けただけで攻撃ができました。
これにより、右スティックが Secondary Movement (AIM) に対応していることが確認できました。
そして、テストプレイ中にマウスポインタの方を武器が向いていることから、マウスの位置に武器の向きが連動しており、マウスでのみ照準が制御されていることがわかりました。
AIM 入力方法の設定変更
Weapons | TopDown Engine Documentation には WeaponAim2D/3D コンポーネントで攻撃方向を特定の入力に変えられるように設定する説明があります。
WeaponAim2D/3D コンポーネントは、武器のプレハブに付加されます。
武器のプレハブを探したときの手順
シーンの銃のアイコンから武器のプレハブまで、次のようにリンクをたどりました。
まず、シーンのマップに配置された武器アイコンをクリックし、 Inspector ウィンドウで ItemPicker コンポーネントの Item の項目をクリックします。
たどりついた asset の InventoryWeapon コンポーネントの Equippable Weapon の要素をクリックします。
WeaponAim2D コンポーネントを持った武器のプレハブにたどり着きました。
銃のプレハブの AIM 入力の変更
たどりついた銃のプレハブの WeaponAim2D コンポーネントの Aim Control の設定が Mouse になっていました。
Aim Control の設定を Mouse から Secondary Movement に変更します。
テストプレイすると、マウスポインタの位置は無視され、ゲームパッドの右スティックに応じて武器の向きが変わるようになりました。
一応、右スティックで攻撃方向を指定することはできましたが、できれば、マウスを動かしたときはマウスポインタの方向に動くように、プレイ中に自動的に切り替えたいです。
今回と同じくわかるかどうかはわかりませんが、次回はそれについて調べようと思います。
コメント