使い始めて1ヶ月の素人が、アンリアルエンジンで遊んでいて行き詰まった壁と、それを突破するためのメモ集。
Blenderと連携編
※間違っていたり、更に良い方法が有ればコメント欄にでも。
Blenderからモーションが取り込めない
NLAエディタにストリップが設定されていないとダメな模様。
Blenderのアクション(モーション)はリグ(スケルトン)と関連付けがない仕様のせいらしい(ボーンが同名なら別リグでも動く仕様)。
Blenderからシェイプキーが取り込めない
ミラーモディファイヤが付いてると不可。しかしシェイプキーがあるとミラーの適用ができない。
解決策としては、アドオンか手動でミラー適用後に取り込むしかない。
アドオンは幾つか開発されているが、使うと壊れる時がある(たぶんverの関係)。
あくまで個人的に遭遇したケースに限るが、原因はベース値の狂いのようだ。リセット?すると治った。
リセット?の具体的方法は、値0状態の空の新規キーを作成し、それ(値0新規キー)をベース値に上書き(置換)する。
ざっくり手順を書くと
- 編集モード>全選択>ベースキーを選択
- 上部のメニュー>頂点>シェイプキーからブレンド>シェイプに値0新規キーを選択>追加のチェックを外す(置換モード)
UEに取り込んだRigifyリグにリターゲットできない(崩れる)
一番巨大な壁。個人的にブチ当たった問題点を列挙すると3つ
- Bボーンの問題
UEにはこの機能が無い(たぶん)ため、ウェイト調整が必要 - Rigifyの命名規則が違う
これはしょうがない、UE側のリターゲッタで全て手動割当するのが最低限必要だと思っといた方が良い(結局それが一番速かった) - Rigifyの制御ボーンが邪魔
これが最も大きな問題、理解できた範囲で詳しく書いておく
BlenderのRigifyは「DEF-XXXXXXX」という名が付いたボーン(以下DEFボーンと呼ぶ)にウェイトが乗ってる(下段の右から3つ目のスロット)。それ以外のボーンは全て制御用であり、UE的には必要ないようだ。
だから基本はこの、DEFボーンだけ取り込む(Send to Unrealの「デフォームボーンのみ」設定)。
だが、Rigifyは親子関係の間にコントロールボーンが入っている箇所があり、そのままではIKチェーンが壊滅的に崩れる。
特にUE5で顕著に影響が出る。
UE4のリターゲッタ
UE4のリターゲットはFKベース(たぶん)なため、全て手動割当(手指も)すればわりと動く。間にコントロールボーンが入っていようが無視設定を入れればそれなりに動く。
ただし精度はそれなり。
実はUE4のボーン(スケルトン)を丸ごとBlenderに持ってきて※、再度ウェイトの自動割り当てをした方が精度が出るんじゃないの疑惑しか無かった。
※UE4 MannequinをFBXインポートするか、公式のUE to Rigifyアドオンを使う。
UE5のリターゲッタ
UE5のリターゲットはUE4とは完全なる別物なようだ。パッと見た限り完全にIKベース。
そのため単にUEへ取り込んで、全て手動割当(手指も)しても動かない。けっこう壊滅的に崩れる。
理由は、DEFボーンの間にRigify独自のコントロールボーンが入ってるからだ。
解決方法はRigifyのリギングをイジる・・・のが最も速かった(というか、これ以外の解決法は見つからず)。
- shoulder、pelvis、Handの親子接続を変更(Spineから自然に接続し治す)
- 手足ボーンを溶解する(要するに、UE標準の可動部である肩、ひじ、手首の3箇所に合わせる)
最後に溶解したボーンのウェイトを調整する(頂点ウェイト合成モディファイヤなどを使う)。
なお、Aの親子接続、shoulderとpelvisはトランスフォームコンストレイントに置換できる。Handは変更をしても影響は無かった(verや初期生成時の設定によるかも)。
問題はBの溶解。肘の制御が複雑になっているため、溶解すると依存関係が破壊される(複雑すぎて管理人のスキルでは置換不可能)。
データの運用(ver管理)的には、ウェイト調整のモディファイヤを予め付けておき、UEに取り込む時だけ手足ボーンを溶解する感じか(そしてセーブしない)。
まぁ「遊ぶ」程度ならこれでOKでしょう。という妥協法。
UE5に取り込んだあとは、IKリターゲッタを使えばUE標準形式のAnimationシーケンスが、はぼ全部流用できる。
このパート(取り込んだ後のリターゲティング)は、You Tubeの公式Unreal Engine JPチャンネルにある動画を見たほうが良い。アレが最も解りやすかった。
ただし、2時間10分もあるが・・・