ゲーム開発を試してみようと思い立ち、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のゲーム開発でキャラクターへのズームインやズームアウトさせたい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。