
GameAnimationサンプルにALSv4のカメラシステムを導入する【UnrealEnigne】
UnrealEngine5.4から登場したGameAnimationサンプルはAAAクラスのゲームのアニメーションが使えるがカメラシステムは簡単な作りになっている。
今回はadvanced locomotion system v4(長いのでALSと表記)のカメラシステムをGameAnimationサンプルに導入する。また、様々な機能を使用するための準備、そしてシネマティックなカメラワークもついでに解説する。
(そういやUnrealEngine5.4から動作が重くなった人はプラグインからStudioTelemetryのチェックを外して再起動すると軽くなります。)
まずはアセットの移行から
ALSを開き、CameraSystemのフォルダーに移動
「ALS_PlayerCamera」をMigrate(アセットの移行)


そして移行先はGameAnimationサンプルの「Content」に選択


実装するための準備
必要な事は
1:プレイヤーコントローラーを作り、カメラマネージャーのセットアップ
2:「CBP_SandboxCharacter」のステータスの反映とタグ入力
3:デフォルトのカメラ削除
4:最後にゲームモードの設定
PlayerControllerをとりあえず作る。名前はPlayer_Controllerにする。

ClassDefaultsからDetails→PlayerController→PlayerCameraManagerClassの項目に「ALS_PlayerCameraManager」をセット

必要なものを入力
「Event On Possess」
「Player CameraManager」
Player CameraManagerから「Cast To ALS_PlayerCameraManager」生成
Cast To ALS_PlayerCameraManagerから「On Possess」生成
「On Possess」のNewPawnの所に「Event On Possess」のPossessed Pawnを繋げる

「CBP_SandboxCharacter」にいろいろと実装する
タグの入力
インターフェイス追加
インターフェイスのアウトプットの設定
カメラの削除
まず「CBP_SandboxCharacter」を開きClassDefaultsからDetailsにあるActorの中にあるTagsに「ALS_Character」を入力

次にClass Setteingsからインターフェイスを追加する。
追加するのは「ALS Camera BPI」「ALS Character BPI」

ここから各種インターフェイスのアウトプットの設定を行うので画像の通りやってみてください。



変数を作れば様々なカメラ演出ができるのでオススメ



インターフェイスの作業は終えて、次にカメラとスプリングを削除する

削除したカメラに関わっていた「Update Camera」の様々な接続を切る


最後にゲームモードのPlayer Controller Classを「PlayerController」から「Player_Controller」に変える。

早速、起動し確かめてみましょう。この画面になれば成功です。
(失敗:カメラがプレイヤーに食い込む)

これだと何が変わっているのか分からないので
少しだけカメラの数値を変えてテストしてみる「ALS_PlayerCameraBehavior」を探して開く

AnimGraphのMain Camera Statesの画面からカメラの距離や切り替え速度を自由に変えることができる

Velocity Directionを開き、左上の数値をいじってみましょう。



今度はカメラの切り替えのテストしてみる
「CBP_SandboxCharacter」を開きEventGraphからInputActionIA_Moveをこの画像の通りにしてください

起動してみると・・・
これですべての準備が完了。カメラの数値をいろいろいじれば・・・
(ちょっとだけイジったけど)こんな感じになる
最後に
GameAnimationサンプルにALSカメラの導入し、いろいろと機能させる方法を解説した。しかし、ALSカメラの説明しきれていない部分がある。需要があればそこも説明しようかと思う。コメントとかで伝えてね。
そして、これからバトルシステム、AIの組み方、シームレスカメラなどなどゲームのクオリティを高める技術をこれから解説し続けていこうかと思う。ではこれで。