13
15

UEでMorph(頂点アニメーション)を使おう with Blender

Last updated at Posted at 2024-06-23

Morphってなに

MorphはVRMとかで表情をいじるのによく使われてるやつです。頂点を移動したモデルを用意してそれをブレンドできるやつです。たぶんレベルが上がるとプリ●ュア的な変身シーンを作れます。
筆者もよくわかっていません。

によると

"モーフィングとはある 3DCG モデル から別の 3DCG モデルへ時間の経過とともに形状変形を行うものである。 3DCG のモー フィングは自由な視点からモデルを見ることができ、その見た目の面白さから映画やアニメーション、ゲームなどで利用されている。"

らしいです

この記事ではBlenderの基礎的な使い方の話はしません。大体下の動画の内容です。

参考にしたもの
・BLENDER to UNREAL Shape Keys and Morph Targets (UE4/UE5 tutorial)
https://youtu.be/2U4nLRTRmUU?si=kjns5UhfwqpRnXEG

・Blender Tutorial - Morphs(ハイポリで全然違うモデル同士をMorphしたい人向け)
https://youtu.be/ph-YPnzAPaU?si=ynKZ8TyNM_LLmvnY

追記
https://x.com/merao/status/1600876440672948224
わかりやすい動画ありました!!!!!!!!!!これ見てください!!!!!!

Blenderでモデルを作る

image.png

作りたいもののディティールに足りるくらいのモデルを用意します。この最初に作った形がすべてのブレンドの基礎になります。

データタブ(緑の逆さ三角▽のタブ)を開きます。
image.png
シェイプキーを開き「+」を選びます。
image.png

ベースというのが作成されます。これが基礎の形の頂点のデータです。
「+」を押すとキーが増えるので、キーを選択した状態で形状を編集すると頂点アニメーションを行うことができます。

image.png

image.png

キーの値を調整することでブレンド量を変更することができます。
Blender 2024-06-23 12-37-23.gif

Morphありのモデルはこれだけで完成です。
FBXとしてエクスポートしてください。

UEに入れる

UEにインポートします。
image.png
変更項目は二つです。

・Skeletal Meshにチェックをつける
・詳細設定を開きImport Morph Targetsにチェックをつける。

たったこれだけです。
SkeletalMeshを開いてMorphのタブを開くとちゃんとMorphがインポートされている…はず!
Morph 2024-06-23 12-49-13.gif
ちなみにマイナスに入れると逆方向に移動します。気を付けよう

どうやってつかうの

今のところMorphをシーケンサーなどで操作するのは、通常のBPか、AnimationBPかControlRigを経由しないとできないようです。

AnimationBP経由で操作する

image.png
AnimationBPでSet Morph Targetを使用して設定します。Morph Target NameにはSkeletalMeshのMorphにある設定したいMorphの名前を入れてください。
image.png
↑これ
あとはValueを変数化してシネマティックスに公開にチェックをつけます。

シーケンサーにSkeletalMeshを入れます
詳細から先ほど作ったAnimationBPを設定します。
image.png
「+」からSkeletalMeshComponent0を追加します。
image.png
さらにSkeletalMeshComponent0の「+」を押すとアニメーションインスタンスに先ほど設定したAnimationBPが表示されるので追加します。
image.png
AnimationBPから「+」を押して先ほど作ったMorph設定用の変数を追加します。(自分はMorph keyという名前で作ったのでこの名前)
image.png
よし!あとは動かすだけや!
image.png

数値上げても動かない!??

ABPを使ったものは実は実行中じゃないと動きません。
シミュレーションなどで実行しながら数値を変えるときちんと動くことが確認できます。
ControlRig - Unreal Editor 2024-06-23 13-19-53.gif

ちなみにBPでも同じような設定方法です
image.png

ControlRig経由で動かす

コントロールリグを作ります。
image.png
ボーンを右クリックして新規→新しいコントロールを追加を選びます。
image.png
コントロールを右クリックし親から解除を選びます
image.png
右の形状からコントロールの形やサイズをいい感じに変更し操作しやすい位置に移動させます。
image.png

image.png

いい感じの位置に置けたらコントロールを右クリックし現在からOffsetトランスフォームを設定を押します。
image.png
右側のトランスフォームが0になっていたらOKです。
image.png

ノードを組みます。Forwards Solveからこのようにつなげてください。
image.png

Get TransformはコントロールをつかんでD&Dすると出せるのでGetで出してください。5.2以下だと
Typeがコントロールでなくボーンで出ることがあるのでコントロールにしてください。

Spaceを「Local Space」にするのをお忘れなく!

シーケンサーにControl Rig を入れていきます。
SkeletalMeshの「+」を押してコントロールリグ→アセットベースのコントロールリグから先ほど選択したコントロールリグを選んでください。
image.png
コントロールリグが追加されます。
image.png
あとはコントロールを動かすとMorphが動くはずです!
ControlRig - Unreal Editor 2024-06-23 13-57-59 - Trim.gif
コントロールリグだと実行中でなくても動きが確認できるのが便利ですね。

ちなみにコントロールリグの変数はシネマティックに公開のチェックがあるのにチェックをつけても操作できません。どうして…。誰か公式のコントロールリグみたいに変数公開する方法教えて…

おわり

作ったMorphはアニメーションシーケンスをベイクで通常のアニメーションとして扱えるようになります
image.png
image.png
みんなもMorphで頂点アニメーションを作って遊ぼう!!!!

13
15
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
13
15