4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Unreal Engine 4 (UE4) その2Advent Calendar 2020

Day 19

Animation Layer Interfaceについて少し触りました

Last updated at Posted at 2020-12-18

あまり大したものを書けなさそうですが、とりあえず触ってみたレベルですが記事にしてみます('ω')

使用Verは4.26です

こちらは公式ドキュメントになります。使用方法はだいたいこちらで分かると思います。
https://docs.unrealengine.com/ja/AnimatingObjects/SkeletalMeshAnimation/AnimHowTo/LinkedAnimBP/index.html

こちら手を挙げて横断歩道を渡るも変態っぽくなってるグレイマンさんの図
Videotogif.gif

一応画像左から作成手順も説明します。
useasset.png

1.AnimationLayerInterfaceを作成

(ここではABP_GrayManInterfaceと名付けました)
makeAnimLayer.png

作成したInterfaceを開いたら
AddNewして
InputPoseもなにもない”RightHandup”
InputPoseが一つあり、FloatをInputする”LeftHandup”を追加しました。

2種類作ったのはテストで試してみるためで、特に意味はありません。

addlayer.png


2.ABP_Handup

とりあえず普通にグレイマンのスケルトンでABPを作成してください。

ClassSettingで作成したInterfaceを追加します。
handupsetting.png

そうすると作成したものがMyBlueprintに出てくるのでそれらをWクリックで開いて、
myblueprint.png

LeftHandup内:Layerd blend per bone は手を挙げるアニメーションの動く部分骨の根本を設定してBlendDepthを1に設定してます。
left.png

RightHandup内:アニメーションの再生を繋げるだけです。
right.png

ABP_Handupは以上になります。


3.AN_LeftHandup / AN_Righthandup(※おまけ)

スケルトンのアセットかアニメーションアセットで画像のようにすればボーンを変更したポーズ時のアニメーションが作成できます。
createanim.png


4.ThirdPerson_AnimBP

アニムグラフはこんな感じで試してます。
animgrapgh.png

LinkedAnimLayerを作成してSettingのLayerをLeftHandupを選択すればInputピンが出ると思います。
ThirdPersonにもともとあるDefaultステートマシーンに繋いでfloat変数は初期値0を入れています。
linkanimlayer.png

※DefaultのPose と Use cached pose 'Default'は(New Save Cached Pose / Use ”作成名”で作成できます)

LayerBlendPerBoneに先ほどと同じようにLinkedAnimLayerを作成してRightHandupを繋げました。

WクリックするとLayerのグラフになるのですが
ここは後で追加する”LinkAnimClassLayers”ノードを使用してない__時に呼ばれます。(リンクする/しないとここでは省略)
例えば、以下の画像でリンクしていない状態だとInputPoseをOutputしています。そのままですね。
ちなみに画像下にあるJumpLoopアニメーションを入れるとリンクしてない時は__JumpLoopが再生されます。

リンクした時はリンク先のアニメーションが再生されます。

画像はRightHandupの中身ですが、LeftHandupの方はIdleアニメーションでも入れておけばいいと思います。
何も繋げなくても動きはしますが、PlayするとTポーズになるかもしれません。
animlayerin.png

Initerfaceに追加した2種類ですが、floatを渡せるようにしておけばABP_Handup側でBoneの処理をさせることができてコンパクトになりましたね。


5.ThirdPersonCharacter

ABP_Handupをリンクさせます。

実装は必ずここというわけではなくプロジェクトによります。楽なのでここにしました。

端的に言えば画像のノードをMeshから呼び出し、InClassには作成したABP_Handupを指定するだけでリンク/アンリンクされます。
LinkClassLayer.pngunlink.png

作成したアニメーションがポーズで寂しいので最初のGIFみたいにする場合はこんな感じで適当にBlend値を渡してます。
画像は左クリックで左手ですが、右クリックVerで右手あげるようにしてます。
※画像では最後にUnlinkしてますが両手ともにABP_HandUpのため
アンリンクすると両手ともに通常状態に戻りますので注意。
graymanbp.png


ひとまず以上です。
公式のある通りABPごとに分けれたり、必要のないアセットは読み込まないようにできるのでアニメーションが複雑になりそうならこれからは使用していきたいですね。🐈
昼休み休憩にちまちまやってたら全然大したこと書けなかった...(いつものことなんですけど><)
みなさん神記事ありがとうございます。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?