【UE4】無料アセットで簡易TPS作成! Part5
この連載では無料アセットを使って、キャラクターに武器を持たせて弾を発射できるようにしてみたいと思います!
TPS(サードパーソンシューティング)ゲームの基礎部分が出来上がる想定です。
とりあえずPIE上で疑似マルチみたいなもの(ダメージ判定等)が動く状態までを目標にしています。
初めての方は過去の記事も参考にしてください。 ⇒ 記事一覧
■環境
Unreal Engine 4.22.3
■今回の内容
上下のエイムができるようにします。
いろいろやり方があると思いますが、公式ドキュメントに従ってエイムオフセットを設定してみます。
■エイムオフセットを設定する
以下の公式ドキュメントを元にエイムオフセットを調整してください。
公式ドキュメント – Aim Offset を作成する
ただしバージョンが4.14(執筆時)のものとなっておりやや違う箇所があります。
以下に記載しておくので、わからなければ参考にしてください。
これが上手く行くとマウスの移動方向に照準を合わせるような動きとなります。
■エイムアニメーションを同期させる
上記公式ドキュメントに従って作成したあとテストプレイすると、サーバー側のプレイヤーのアニメーションがクライアント側に反映されていないのがわかるかと思います。
これを修正するために作成したアニメーションブループリントを修正します。
公式ドキュメントのStep3(リンク)で編集した「UE4ASP_HeroTPP_AnimBlueprint 」のイベントグラフを開いて下さい。
その中で、最後のセット「Aim Yaw」「Aim Pitch」に繋がる以下の箇所をまとめて選択してください。
これをそのまま「Ue4ASP_Character」にカット&ペーストしたいので、選択したら「Ctrl + x」でカットしましょう。
「Ue4ASP_Character」(コンテンツ > AnimStarterPack にある)を開いて、空いている場所にペーストしてください。
続けて2つ変数を追加しましょう。(Float型のPitchとYaw。Replicated)
これらと、先ほどカット&ペーストしたノードを組み合わせて以下の様にしてください。
ここまでできたら一旦コンパイル⇒保存し、再度「UE4ASP_HeroTPP_AnimBlueprint 」を開いて下さい。
先ほどカットした箇所を以下の様に修正します。
修正はここまでなので、コンパイル⇒保存して再生してみましょう。
先ほどと違って、アニメーションが同期されていれば今回は完成です!
なお、以下の方針で修正を行っています。(やや高度な話なのでザックリとした説明とします。)
アニメーション再生に必要な値(元々のAim YawとAim Pitch)をレプリケートできるようにする必要がある。
そのために、キャラクターのプロパティとして新たに「Yaw」と「Pitch」を作成し、値の計算・保持はここで行うよう変更。
元のアニメーションBP側では、キャラクターの「Yaw」「Pitch」を取得し「Aim Yaw」「Aim Pitch」に反映する。
■まとめ
上下エイムの簡単な方法として公式ドキュメントを紹介しました。
もっと細かい調整がしたい場合は別途作成する必要がありますが、簡易的に作成するには十分かと思います。
次回はもう少し、上下エイム実装により生まれた問題点を修正する予定です。
■リンク
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発