自分用に作業を進めるのと備忘を兼ねた記事です。ブループリント内部をどこまで公開してもよいのか分からなかったので、本記事ではテキストだけの超分かりにくい仕様となっています。
ALS(Advanced Locomotion System)に元々搭載されていないミニガンを装備して砲撃できるように改造したい。を叶える方法を備忘しています。
全体像
- 新規オーバーレイステートをEnumsから追加
- アニメーションステートをコピーまたは新規作成
- アニメーションステートの遷移を新規オーバーレイステートで遷移できるように変更
- アニメーションポーズの差し替え
- 新しい武器を装備
オーバーレイの追加方法
オーバーレイとはメニュから選択できるキャラクターの状態のことです。例えばライフルを装備している状態、ピストルを装備している状態、誰かに拘束されている状態などが選択できます。
新しいオーバーレイステートの追加
- Enumsの追加
Advanced LocomotionV4 → Data → Enums → ALS_OverlayState をダブルクリック - 右上のNewボタン(左上の列挙子を追加)から新たなステートと名前を追加
- QボタンのUIメニュの表示に新しいオーバーレイステートが追加されていることを確認
アニメーションステートの追加と変更
今回はライフル、ピストルに続きガトリングガンを装備するようなオーバレイステートとアニメーションの追加に挑戦します。複数のYoutubeビデオから必要な作業をかいつまむ様に必要な操作をまとめています。
新規オーバレイステートに対応したアニメーションステートの追加
参考にした動画
New Overlay State with ALS | #12 | Advanced Locomotion System V4 with Unreal Engine 5
New Overlay State with ALS | #12 | Advanced Locomotion System V4 with Unreal Engine 5
- 自分の実装したいステートの挙動に近いアニメーションステートをコピーペーストする
- ステートの遷移を新たに追加したオーバレイステートで遷移できるように変更する
オーバーレイステートのアニメーションの在り処
- ALSのデフォルトキャラクターに引っ付いているアニメーションブループリントを選択
- 左側MyBluePrintから、AnimGraphをダブルクリック
- Lyaer Blending → OverlayLayer → OverlayState → 各種オーバーレイに対応したアニメーション遷移の分岐がある
アニメーションポーズの差し替え
新しいオーバーレイステートを追加して新しい武器などを装備できるようにすれば、微妙に武器を持つ手の位置などがズレていることがあります。武器を持つ手の位置を修正するにはアニメーションポーズを差し替えることで修正できるそうです。
参考にしたYoutube動画
高度な移動システム #5 – さまざまな武器保持アニメーション
Advanced Locomotion System #5 – Different Weapon Holding Animations
ALSのポーズを流用
-
- 新しいOverlayStateを作成(WaterGun)
- ポーズの元になっているファイル(ALS_Props_M4A1_Pose)を複製する → 名前をつける (ALS_Props_WaterGun_Pose)→ ポーズのファイルをダブルクリックで開く
- 左側SkeletonTree → hand_r(持たせたい武器の手)を選択 → 右クリック → Add Socket → ソケット名を適宜つける → ソケットを選択 → Add Preview Assetでも多世帯武器を装着してプレビューできるようにする。
- 武器の形状に合わせてソケットの位置を調整
- 左手の位置、腕の角度など、武器に合わせて調整
- 調整ができたら上部プラスボタンアイコンのKeyから変更したアニメーションのキーを追加
ポーズ元のファイルを差し替え
- 差し替えたいアニメーションステート(WaterGun)をダブルクリック → ノードの中に複製前のファイル(ALS_Props_M4A1_Pose)が入っているノードを探す。 → ノードを選択 → 詳細ウインドウから新しいポーズファイル(ALS_Props_WaterGun_Pose)に差し替え
- ステートの中に各所、(ALS_Props_M4A1_Pose)が入っているノードがあるので、どんどん新しいポーズファイル(ALS_Props_WaterGun_Pose)に差し替えていく
- 実行するとポーズが変わっている。はず。
武器の装備の差し替え
- ALS_BaseCharacter_BPを継承したプレイヤーブループリントActor(デフォルトALS_AnimMain_CharacterBP)のUpdateHeldObject関数に新規に追加したオーバレイステートのピンが増えているのでそこに、Attach to handを接続して、装備させたい武器のメッシュを選択する。
- プレイ画面でQを押して新しいオーバーレイステートへ遷移すると武器が装着されることを確認。
- アニメーションステートが変わっていることも確認する。
- アニメーションが変わっているとそれぞれの状態、歩行、クランチ、エイム状態で差し替えたポーズのアニメーションになっている。
- しかし、その状態では武器の持つ位置が微妙にずれることがある。
- 直す方法は、また知識が増えたり調べる機会があるときに調べます。(今回は諦める)
キャラクターを差し替えると微妙に手の長さが違うので武器を持つアニメの位置が微妙にずれる
差し替え前のキャラクターと位置を合わせてズレを解消する方法
解決方法の動画
Unreal Engine 5 – ALS Metahuman retarget – Fixing Hand Offsets (ALS #181)
Unreal Engine 5 – ALS Metahuman retarget – Fixing Hand Offsets (ALS #181)
簡易的に武器を持つ位置を微調整する方法
- ALSのキャラクターの関数にUpdateHeldObjectという関数から武器を装備しています。
- キャラクターのブループリントを開き、UpdateHeldObjectをダブルクリックで開く → Attach to Hand というノードがある
- そこのOffsetを調整することで武器を持つ位置を微妙に調整できます。
- 武器を持つポーズなどが同じ場合で武器を持つ位置がズレている場合はこの方法が最も簡単に、ズレを調整することができます。
コメント