EpicGames社のCyber Monday Saleで欲しかったUE4アセットを片っ端から衝動買い。無駄にしないためにもアセットの使い方をメモっていきます。
■ Dynamic Sword Animset
ゴールデンアックスを作りたくなったときに必要になるので買った。自分でうまく作れないモーションだけにとても価値があるが、今まで5000円オーバーすることを躊躇していた。しかしセールで半額の今なら買える、今しかないって思って買った。いっぱいモーションが入っていることに期待。
■買ってみて
いいね!実際には101ものモーションが入っていた。1つあたり30円と考えれば安いなぁ。中にはInPlaceっていう位置を動かないデータが101、RootMotionっていう位置移動を伴うモーションが46モーション入っていた。RootMotionの46モーションはInPlaceに入ってるモーションと同じアクションではあるが位置移動を伴う。その場で昇竜拳(弱)モーションを行うのがInPlace、画面上方向にジャンプしながら昇竜拳(強)を繰り出すのがRootMotionっていうイメージ。同じモーションだけど動きが違う。当たり判定のつけ方も異なる。
その他にはシールドと剣のモデルも入っていた。
■使い方
「ThirdPerson」テンプレートを例にとると「ThirdPersonCharacter」のブループリントを編集する。マネキンに剣を持たせてアニメさせてみる。
[モデルの登録]
・MeshのSkeltalMeshにSK_Mannekinのモデルを割り当てる。
・AnimationにUse Animation Assetを選択し、適当なモーションを選択
※例)AnimToPlayの項目で[Idle_Eqip_01]を選択
[剣の登録]
・「ThirdPersonCharacter」にスケルタルメッシュ・コンポーネントを追加
・Swordを割り当てる
[剣をモデルにアタッチする]
・「AttachToComponent」を使って剣とマネキンを関連付ける
とりあえず、ここまでで剣を持ったグレーマンをアニメさせることができる
次は剣を振って攻撃させてみたい。
[剣を振って攻撃する]
剣を振って攻撃させるのは、少し複雑である
さっきは固定のアニメーションを指定するだけだったが、次はステートマシンを使ってアニメを変更させることにする。そのために新規に「アニメーションBP」を作成して「ステートマシン」を設定することになる。
まず、コンテンツブラウザーからアニメーション>アニメ―ションBPを選択。AnimInstanceとターゲットSK_Mannekin_Skeltonを指定。名前を「SwordAnime」と名付けた。
[SwordAnimeの割り当て]
・まずメッシュに設定したアニメのモードを「Use Animation BP」に変更
※「Use Animation Asset」から「Use Animation BP」に変更する。
・Anim Classに新規作成した「SwordAnime」を割り当てる
・SwordAnimeを開いて「グラフ」モードにする
・グラフモードの「アニムグラフ」を選択
[デフォルトのステートマシンを追加する]
ここではステート(状態)を管理、遷移させるためのステートマシンを作成する
追加されるのはステートマシンであってステートではない。ステートはステートマシン内で作成する
・まずグラフ上で「add state」として新規ステートマシンを追加
・名前を「default」とする
[デフォルトのステートマシン中身を作成する]
・defaultをダブルクリックして中に入る
・defaultのステートマシンには、idleとattackの2つのステートを用意する
・2つのステートは相互に移動しあう
・ここでは120フレーム目でattackに移行し、300フレーム目でidleに帰ってくる
※図1
・ステートの変更条件は、それぞれの線の上のアイコン(A/B)で設定できる
・まずはAをダブルクリック
・条件はいつもとおんなじようにBPで書ける
※図2
・Aの条件設定では120フレーム目で「Can Enter Transition」がTrueに変更になる
・Trueになると図1のステートが「idle」から「attack」に変更される
図3
・これがBの遷移条件
・300フレームになるとAttackからidleに遷移する
そうそう、AnimSeqはイベントグラフで設定しています。
フレームの値で、毎フレームカウントアップして480フレーム目で0に戻しています。
できた!
とりあえず$30ぶんは楽しめそうになった
[参考]
http://unrealengine.hatenablog.com/entry/2016/11/22/213000