Unreal Engine 5.1.1 を使用
サードパーソンのテンプレートキャラクター『Quinn』をお気に入りのキャラに変えて動かしたい。
アニメーションして欲しいのはこちらのキャラです。
『魔女』と呼ぶことにします。
ゆくゆくは、色んなアニメーションを突っ込んで、PSO2 のロビーアクションみたいに使えるようにしたい…とは思いますが、何事も一歩ずつ進めるしかないので、最低限必要なことから積み上げて行きます。
※ちなみに、胸と尻にはボーンが入ってないので揺れません。
UE5 のゲーム用テンプレートには『Quinn』と呼ばれる女性型のマネキンが用意されていて、何もしなくても、待機、走る、ジャンプなどができます。
とりあえず、「このモデルを置き換えればいいんじゃね?」と思いつきます。
実際、スケルタルメッシュを置き換えるだけで、なんとなく動かせたりしますが、足の IK が機能していなかったり、アニメーションがなんか変だったりします。
まず必要なことは、UE5.1.1 を起動して、ゲーム>サードパーソン のテンプレートを選んで、プロジェクトを新規作成します。
プロジェクトが立ち上がったら、動かしたいキャラ(今回は魔女)をプロジェクトにインポートします。
エディタのバージョンを選ぶ必要がありますが、この記事を執筆している 2023/04/19 現在、5.1.1 はリリースされていないので、一番近いバージョンを選びます。
準備は以上です。
次に必要なことは、IK リグのリターゲティングと呼ばれる作業です。
ちなみに、UE4 のリターゲット機能は UE5 で使えなくなりました。
『Quinn』と『魔女』は骨格(ボーン)が違います。
3Dモデルは基本的にこのボーンを回転させてアニメーションします。
ボーンが違うと、どのボーンを動かせば良いのか分からず、思うようにアニメーションしてくれません。
今回は魔女を Quinn に合わせたいので、ボーンが違う部分を可能な限り Quinn に合わせてあげる必要があります。
こちらの動画の通りに進めようと思ったのですが、微妙に違いがあります。
↑で紹介した動画を見ながら作業することをお勧めします。
本稿ではうまく行かなかったところ、分かりにくかったところを補足として説明します。
IK_Manequin を参考に、ひとつひとつ「新しいチェーンを追加する」か「選択ボーンからリターゲティングチェーンを新規作成」で「リターゲティングチェーン」を設定して行きます。
手足には IK 目標も必要です。ソルバは IK_Manequin と同様に「フルボディIK」を設定します。
手足の IK 目標とフルボディ IK の追加を忘れると、手足が地面や壁と接触したときにグニャっとあらぬ方向に折れ曲がります。
アニメーションのプレビューでは問題ないのに、マップに立たせると物理エンジンのせいで起きます。
多分、モノによると思うので、最初は IK 目標を設定しないで作成してみて、手足がおかしくなるようだったら設定すると良さそうです。
動画との違いは、「新しいチェーンを追加」を選んだときに、IK 目標を設定するかどうか、いちいち確認して来ます。
後から設定できるので、全て「目標なし」を選んでおけば良いです。
目標を設定することの方が少ないです。
AI使って自動化して欲しいところですが、むしろ、ないなら自分で自動化機能を作ってみるのも良いですね。
TK_Manequin にはあるけど、魔女にはないボーンがありますが、ないものはどうしようもないので、あるものを全てリターゲットします。
↑で紹介した動画で説明しているので、その通りにやります。
手順は動画通りですが、Source Preview Mesh には SKM_Quinn_Simple を設定しました。
使えるボーンが少ないので、こっちの方が魔女に近く、差が減り、Quinn の動きを再現しやすそうなので。
デフォルトポーズの腕の角度、5本指の閉じ具合、脚の開き具合がちょっと違うので、そこも修正しました。
修正方法は動画の中で説明されていますが、編集ボタンの位置が違います。
動画では上中央にボタンがありますが、UE5.1.1 では左上に「編集モード」ボタンがあります。
IK リターゲッタを作成したら、それ以降は動画と手順が変わります。
↑の記事の「3. アニメーションブループリントの作成」から進めます。
Target Skeleton には UE_Mannequin_Skeleton を指定しました。
ブログ記事の通りにやるだけです。
↑の記事の「4. Characterクラスの設定」を元にしていますが、記載通りに設定してもダメでした。
Quinn を制御しているのは、コンテンツ>ThrdPerson>Blueprints の中にある BP_ThirdPersonCharacter です。
このブループリントで指定しているキャラを魔女に置き換えます。
ブループリントを開いて、コンポーネント>Mesh(CharacterMesh0)>詳細 を以下のように設定。
Animation>Animation Mode>Use Animation Blueprint
Animation>Anim Class>ABP_Quinn_C
メッシュ>Skeletal Mesh Asset>SKM_Quinn_Simple
レンダリング>Visible>チェックを外す
最適化>Visibility Based Anim Tick Option>Always Tick Pose and refresh Bone
Mesh(CharacterMesh0) の子として Skeletal Mesh を追加します。
親と同じように、詳細で以下の設定を行いました。
Animation>Animation Mode>Use Animation Blueprint
Animation>Anim Class>ABP_Witch_C
メッシュ>Skeletal Mesh Asset>SKM_Quinn_Simple
レンダリング>Visible>チェックする
最適化>Visibility Based Anim Tick Option>Always Tick Pose and refresh Bone
これでコンパイルしてプレイし、動作を確認します。
あれ、リターゲッティングできた…
んー???🤔🤔🤔複数のブログと動画の方法をミックスしないとダメだった
ツイッターだと字数が足りないので貼れない…
ブログに書こうか…#UE5#UnrealEngine5 pic.twitter.com/LZrOFHMTat— おりが@ゲーム製作(Unity/UE5) (@dokuro_moe) April 17, 2023