single.php

Unreal Engineでマウスホイールでキャラクターへのズーム機能を追加させる方法

ゲーム開発を試してみようと思い立ち、Unreal Engine 5をインストールして開発する過程で調べてみた部分を備忘録的に投稿します。今回はゲーム実行中にマウスのホイール操作でキャラクターにズームイン、ズームアウトをする機能を追加する方法を紹介します。

マウスホイール操作アクションの追加

最新版のUnreal Engineではゲーム中のキーやマウス操作のイベントは[入力アクション]を使うように推奨されています。

今回のマウスのホイール操作も[入力アクション]で受け付けています。

詳しい手順は、別記事をご覧ください。

マウスホイール操作でキャラクターにズーム

サードパーソンゲームのキャラクターにズームイン、ズームアウトするには、キャラクターを投影しているカメラのブームを操作します。

具体的には次の手順で行います。

1.[ThirdPerson]フォルダー内の[BP_ThirdPersonCharacter]を開きます。

2.[イベントグラフ]の空いている場所で右クリックして表示[このブループリントで使えるノード]画面で “IA_MouseWheel” を検索して追加します。

3. 追加された[EnhancedInputAction IA_MouseWheel]ノードをダブルクリックして開きます。

4. 表示された[IA_MouseWheel]の詳細画面で[Value Type]を[Axis1D(float)]に変更します。

5.[イベントグラフ]画面に戻って[Action Value]からピンを伸ばします。

6. 表示された画面に “>” を検索してノードを追加します。

7.[Branch]ノードを追加して下の画像のようにピンを接続します。

8.[コンポーネント]画面で[FollowCamera]を含む[CameraBoom]を選択して[イベントグラフ]にドラッグします。

9.[イベントグラフ]追加された[Camera Boom]ノードのピンを伸ばします。

10. 表示された[Spring Arm Component オブジェクト参照を取得する動作]画面から “Get Target Arm Length” を検索して追加します。

11. 追加されたノードを通して、キャラクターを投影しているカメラの距離が変数として取得できます。

12. [Target Arm Length]からピンを伸ばして表示された[浮動小数点(単精度)を取得する動作]画面で “+” を入力して[Add]ノードを追加します。

13. 追加された[+]ノードの数値を “10.0” に変更します。(1回の操作で変更するカメラの距離です)

14.[+]ノードの右上ピンを伸ばして表示された[浮動小数点(単精度)を取得する動作]画面で “Clamp” を検索して[Clamp(Float)]を追加します。

15.[Clamp(Float)]ノードの[Min]と[Max]の数値を調整します。(ズームインとアウトを行う範囲です)

16.[Clamp(Float)]の[Return Value]ピンを伸ばして表示された[すべてのノード]画面で “Set Target Arm Length” を検索して追加します。

17. 追加された[セット]ノードの[ターゲット]には[Camera Boom]を接続します。

18. 同様の操作で[Target Arm Length]からピンを伸ばして[-]を追加します。

19.[Clamp(Float)]と[セット]ノードも下の画像のように追加して接続します。(上側がズームアウト、下側がズームインする処理です)

20. [Branch]ノードの[True]ピンを上側の[セット]ノードに接続して、[False]ピンを下側の[セット]ノードに接続します。

多少複雑ですが、これで[イベントグラフ]の処理は完成です。

マウスのホイール操作が[EnhancedInputAction IA_MouseWheel]ノードに伝わり入力された値(”1.0″ または “-1.0″)が[Branch]ノードで条件分岐します。

接続された処理で[Camera Boom]の[Arm Length]値を加算、減算することでキャラクターへのズームインとアウトが可能になります。

実行して確認

コンパイルして実行して動作を確認します。

ゲーム開始直後にマウスのホイールを手前に操作するとキャラクターにズームインします。

反対に操作するとキャラクターからズームアウトします。

カメラの距離を操作することで、結構簡単に実装ができました。

まとめ

今回は、Unreal Engineでゲーム実行中にマウスのホイール操作でキャラクターへズームインまたはズームアウトする方法ついて書きました。

[サードパーソン]プロジェクトの場合は、キャラクターを投影しているカメラの距離を変更することでズームインやアウトをすることが可能です。

Unreal Engineのゲーム開発でキャラクターへのズームインやズームアウトさせたい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です