LoginSignup
16
6

【UE4】MorphTargetで女の子の表情をきゃわいく変えよう

Last updated at Posted at 2023-12-23

0.これがしたい人向け↷

ブループリントから動的にキャラクターの表情を変える方法の初心者向け解説です!
いざ行かん、きゃわわ道。
image.png

1. 下準備

1-0. 前提

今記事はUE4.27にセレスティアちゃんというVRChatではおなじみのキャラクターをインポートして使っています。

1-1. インポート時の注意

キャラクターのスケルタルメッシュをFBX形式でインポートする際は、Import Morph Targetsにチェックを入れるのをお忘れなく!

image.png

サイズ100倍にします

image.png

1-2.インポート後、テクスチャも別途インポート

インポートできましたが、テクスチャがついてきていません。MorphTargetは確認できます。
image.png

別途、テクスチャ画像をインポートしましょう。セレスティアちゃんだと最低4枚必要ですね。
image.png

テクスチャを反映させると可愛くなりました。

image.png

1-3.ブループリントアクター作成

キャラクターのスケルタルメッシュを入れたBPアクターを作りましょう。
アクターを継承すればOKです。

image.png

2. 超簡単に表情を変えたいなら

2-0.プレビュー

気になるMorphをプレビューしてみましょう
image.png

2-1.SetMorphTarget

EventBeginでSetMorphTargetを実行!
image.png

2-2.レベルに配置

レベル内に配置して実行すると表情が変わっていることがわかります。
image.png

3. 動きのある表情にするなら

3-1.AnimSequenceで表情作成

AnimationSequenceで表情が変わるアニメーションを作りましょう。

アニメーションシーケンスを準備して開くと、Curvesという項目から変化させたいMorphCurvesを追加できます。
image.png

悲しい表情に使えそうなMorphCurvesを追加してジグザグ動かしてみました。
2023-12-24_04h30_33.gif

3-2.BPアクターで実行

SkeletalMeshComponentに先ほど作ったシーケンスを割り当てれば...
image.png

女の子の表情が動いた!やったね🌟
2023-12-24_04h39_29.gif

4. 体にAnimationをつけつつ表情も変えたいなら

以下のようなAnimationBlueprintを作ると身体のアニメーションと表情のアニメーションを独立して管理出来て便利です!
Layerd blend per bonesは上半身と下半身で別のアニメーションをさせたいときなどでよく使われるノードですが、Morphのブレンドにも使えます。
(よりスマートな実装方法あれば教えてください!)

image.png

今作ったAnimBPをスケルタルメッシュコンポーネントにセットして...

image.png

ワーヤッタヤッタデキター!!ヤバーイ!ネンマツモシゴトダバンザーイ!ウギャー!アドベントカレンダーワッショイワッショイ!ドッヒャー!!!
2023-12-24_05h03_36.gif

Bodyアニメーションと表情アニメーションをそれぞれStateMachineで管理すれば、それぞれ独立して色々付け替えることができますね。
image.png

ちなみに、CurveBlendOptionをOverrideにしている場合、MorphのBlendの程度は0か1でしか変わりません。

  • BlendWeight=0 ➡ BlendPoseの表情が反映されない
  • BlendWeight>0 ➡ BlendPoseの表情が100%反映される

ご注意ください。

5.おわりに

いかがでしたでしょうか?
みなさんもぜひゲーム内で可愛く表情を変える女の子を実装してみてください☆
最後まで読んでくれてありがとうございました!
image.png

16
6
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
16
6