UE5の銃を持たせる方法
UE5でゲーム制作を行うのなら操作キャラなどに銃を持たせる機会は多いだろう。
そのやり方を紹介していこうと思う。
UE5の銃を持たせる方法目次
銃とアニメーション素材を入手ブループリント使用準備
銃を持つアニメーションの準備
銃を持たせる
目次にもどる
銃とアニメーション素材を入手
今回はサードパーソンのテンプレートで説明を行っていく。
銃を持たせるためにはまず銃本体が必要になる。今回は以下の無料アセットを使うことにする。
Military Weapons DarkEpic Gamesのランチャーを開き、左のメニューでUnreal Engineを選択し、上メニューでライブラリを選択し、Military Weapons Darkの「プロジェクトへ追加する」を選択する。
アセットを追加したいプロジェクトを選択する。
UE5を使っているなら、アセットがバージョン対応していないという表示が出る。
一番近い対応バージョンを選択し、追加を選択してプロジェクトに入れよう。
続いて銃を持つアニメーションを用意する。今回は以下の無料ゲームからアニメーションをとってくることにする。
Lyra Starter Game以上のアセットをダウンロードし、プロジェクトを制作しよう。
Lyra Starter Gameのプロジェクトを開く。このゲームからアニメーションを一旦PCのフォルダにエクスポートし、その後にサードパーソンのテンプレートに移動させるという流れになる。PCに何かしらわかるようにフォルダを作成しておこう。
コンテンツブラウザのCharactersを選択し、以下のマークを選択し、アニメーション→アニメーションシーケンスのようにクリックしよう。Charactersのアニメーションを抽出することができる。
アニメーションのうち一つを選択し、Ctrl+Aキーを押して全選択した状態で右クリックし、「アセットアクション」→「バルクをエクスポート」のように選択する。
先ほどPCに作っておいたフォルダを選択すると、以下の画面となるので、「全てエクスポート」を選択する。少し時間がかかる。
Lyra Starter Gameのプロジェクトを閉じ、サードパーソンのテンプレートのプロジェクトを開く。
コンテンツブラウザのコンテンツの直下にAnimationsのフォルダを制作し、そこへ先ほどアニメーションをエクスポートしたPCのフォルダをドラッグ&ドロップすると以下の画面が出る。
メッシュのSkeletonの「なし」と書かれた部分を選択し、SK_Mannequinを選択する。「全てインポート」を選択する。
これで必要な銃本体とアニメーションの取り込みが完了した。
目次にもどるブループリント使用準備
サードパーソンのテンプレートであればThirdPerson→BlueprintsのフォルダにBP_ThirdPersonというブループリントがある。
これが操作キャラのブループリントとなっている。一応これは消さずに残しておきたいので、コンテンツフォルダ直下にBlueprintsフォルダを作って、そこへBP_ThirdPersonをドラッグ&ドロップしてコピーを選択して増やし、名前をBP_Playerとする。
現状ではゲームを実行した際にプレイヤーが動かすキャラがBP_ThirdPersonになってしまっている。
画面右の以下にワールドセッティングというタブがあると思う。ない場合は画面上部メニューのウィンドウ→ワールドセッティングのように選択すると出てくる。
ワールドセッティングの選択したゲームモードのDefault Pawn Classの項目がBP_ThirdPersonになってしまっているので、BP_Playerに変更する。
Characters→Mannequins→AnimationsのフォルダにABP_Manny(男性用)とABP_Quinn(女性用)のアニメーションブループリントがある。
これらも元ファイルを残しておきたいので、AnimationsフォルダにABP_Mannyをドラッグ&ドロップして増やし、名前をABP_Playerとする。
BP_Playerをダブルクリックして開き、コンポーネントビューのMeshを選択する。
その状態で画面右側の詳細ビューのAnimationのAnim classを確認しよう。現在はABP_Quinn_Cとなっており先ほど残したアニメーションブループリントが選択されてしまっているので、それをABP_Playerに変更する。
以上の作業により、操作キャラがBP_Playerとなり、BP_Playerが使用するアニメーションブループリントがABP_Playerになったわけだ。
目次にもどる銃を持つアニメーションの準備
ABP_Playerをダブルクリックして開こう。
画面左のAnimGraphをダブルクリックし、Locomotionのノードをダブルクリックすると中に入れる。
以下のような画面になり、idleのノードをダブルクリックすると中に入れる。
MM_idleを選択し、画面右側のアセットブラウザのタブを選択する。
今回は操作キャラにハンドガンを持たせようと思う。よってpistol idle hipのように検索すると以下の2つのファイルが出てくる。
今回はMM_Pistol_idle_Hipfire(MMとついてるほうが男性用)を選択し、中央のグラフ画面にドラッグ&ドロップする。そしてMM_idleとOutput Animationの間のワイヤーをAltキーを押しながら選択して外し、以下のようにMM_Pistol_idle_HipfireとOutput Animationをつなぐ。
左のビューを見れば、手を組んで銃を持つポーズになっていることが確認できる。
目次にもどる銃を持たせる
BP_Playerを開き、左側の画面で、Meshを選択する。
その状態で画面右側の詳細ビューのメッシュのSkeletal Mesh Assetを「SKM_Quinn_Simple」→「SKM_Quinn」に変更する。
左画面のMeshを選択した状態で追加ボタンを押し、Skeletal Meshを選択して追加し、名前をWeaponにする。
以下のようにMeshの子要素としてWeaponがある構造になっていればOKだ。
Weaponを選択したまま、右の詳細ビューを確認し、メッシュのSkeletal Mesh AssetをPistol_Bにする。
Weaponを選択したまま、右の詳細ビューのソケットの親ソケットをweapon-rにする。
ビューポートタブを選択すると以下のような画面になる。
現時点では銃の方向が合っていない。できるだけ手にフィットするように銃を回転させる必要がある。
以下のように回転モードを選択し、今回は青い分をドラッグ&ドロップして回転させよう。角度10°と書いてある部分の左の選択を外すことで10°ずつではなく細かく回転ができるようになる。
以上の作業が終わったら保存してゲームプレイしてみよう。以下のように操作キャラに銃を持たせることができている。
ただ、移動の際は銃を構えておらず片手で持っている。次の記事で銃を構えたまま移動速度や移動の向きによってアニメーションを合成することが可能なブレンドスペースを紹介するのでぜひ確認してみてほしい。
ブレンドスペースの使い方