
Blenderで作成したキャラクターアニメーションがUE5で読み込めない!!
毎回毎回ノイローゼ!!
みなさんはそんな現象に陥っていませんか?
今回使用したバージョンは下記の通りです
- Blender4.1(英語版)
- UE5.2.1(日本語版)
※本来ならアプリを英語版に統一しないと気持ち悪いですね
UE5に読み込む前のBlenderデータの準備
①FBXデータを出力できるようにアドオンにチェックを入れる
UE5にアニメーションデータを読み込むにはFBXファイルで出力する必要があります
Blenderのデフォルト設定ではFBXファイルは出力できないので、アドオンを有効にしましょう
アドオン名:Import-Export:FBX format



検索窓に[FBX]と入力するとヒットします


②Transformをリセット
作成したアニメーションデータの位置情報をリセットし、位置がXYZ=0cmにいるようにしましょう
リセット方法は3つあります
- ショートカット:(メッシュ選択)Alt+G
- オブジェクトモード⇒メッシュ選択⇒オブジェクトモードメニューバー[object]より[Apply]⇒Location選択
- objectPropertiesのLocationの値を0
0からズレているために、UEに読み込んだもののあっちに行ってる事はよくあります
- Zが上
- Xが右
- -Yが中央


ついでにこの時、メッシュのRotationも0になるようにしてください
※やりかたは[Transformをリセット]と同じで、位置ではなく回転を選びます
③Scaleを1 Positionの単位を1cm
Blenderでも他のDCCツールでも必要な手順となります
とりあえず③を丸暗記していてください
やりかたは[Transformをリセット]と同じで、位置ではなくスケールを選びます
④法線を整える
法線が同じ方向に揃っていないと、UE5に読み込んだ時にエラーが出ます
※後述します
法線が揃っているかどうか確認する方法は下記の通りです
- 編集モードでメッシュを全選択
- オーバーレイパネルで、FaceOrientationを✓
すると、メッシュの表面が青or赤色で表示します


青色が正解で法線が揃っている状態です
赤色が出てしまった場合は方法が2つあります
モードを編集モードにしたうえで
- 問題個所の範囲を選択⇒Alt+Nでメニューを出す⇒RecalculateOutside
- メッシュを全選択⇒shift+N(法線を外側に揃える)
※①のコマンド
UE5にBlenderで作成したアニメーションを読み込む時の手順
今回の事例はモデル1体をFBXで出力するので、モデルに関連するメッシュとArmatureを選択します
File⇒Export⇒FBX(.fbx)
すると、FBX出力時の設定画面が表示されます




- Include
UEに読み込みたいデータだけ出力する
今回はモデル1体だけなので、ArmatureとMeshのみ - Transform
Scale=1
ApplyScalling⇒AllLocal
Forword⇒-YForward
Up⇒Zup
ApplyUnit⇒✓
UseSpaceTransform⇒✓
ApplyTransform⇒✓ - Geometry
Smoothing⇒Face
ApplyModifiers⇒✓ - BakeAnimation⇒✓
FBXの出力設定はプリセット保存しよう!




OperatorPreset横+⇒名前を付けて保存
FBXファイルの読み込み:コンテンツブラウザ右クリック⇒***へインポート



コンテンツブラウザにD&Dでも読み込めます


- メッシュ
SkeltalMesh✓
ImportMesh✓ - 詳細設定
Use T0 as ref pose⇒✓ - Animation
ImportAnimation⇒✓(Blenderでアニメーションをキーフレームでつけた場合)
以上の設定で、アニメーションのついたFBXファイルを読み込める設定にはなっています
よく陥るUE読み込みエラー集
このFBXシーンにはスムージンググループ情報がありません
UEは、インポート時にFBXファイルのスムージンググループ情報を使用してモデルの表面を処理します。法線が不正確だと、この処理が正しく行えません
下記の事で解決しました
- Blenderで法線の向きを揃える事
法線の向きが外側(すべて青色)ならあっています - BlenderからFBX出力設定の時に、smoothingの設定を[Face]にする事
前述[UE5に読み込む前のBlenderデータの準備]の復習となります
以下のボーンがバインドポーズに不足しています
通常、バインドポーズ(リファレンスポーズ)は、キャラクターの基本的な立ち姿勢を表します
しかし、FBXファイルによっては、このポーズ情報が正しく含まれていない場合があり、エラーとなります
UEからFBXの読み込み設定「Use T0 As Ref Pose」を✓にすることで解決します
「Use T0 As Ref Pose」を有効にすることで、アニメーションの最初のフレームをバインドポーズとして使用するため、不足しているボーン情報を補完することができます
チクチクとボーンを直すことで解決もしますが、上記の設定が速いかと思います
前述[UE5にFBXファイルを読み込む]の補足とも言えます
ボーン階層に複数のルートが見つかりました
親ボーン[Root]を、名前も親も一つだけにすることで解決します
UEでは単一ボーンを採用しています


Rootを親にして、他のボーンがツリー上に繋がっている
つまり、Blenderでボーンをつけた段階で、下記の構造のままだった場合にエラーが起こります
- ボーン親がいっぱいあったり
- ボーン親の名前がRootじゃなかったり
- Root名を使用したボーンが複数あったり



めんどかったけど整理整頓
UEに読み込んだFBXデータが見えない
Blenderで作成したArmatureの名前をなんでもいいのでリネームする事で解決します
UEのバグらしく、Armatureの名前のままFBXへExportしてUEで読み込むと、1/100に縮小されてしまうそうです



私は知らずに、いつも超拡大していました
UEに読み込むと、FBXのマテリアルが正しく表示されない
UEとBlenderでマテリアルの互換性が無いので、原則的にUEで適用しなおす事となります
とはいえ、Blenderで何かしらメッシュにマテリアルを適用するようにしてください
Blenderでマテリアルを割り当てていないメッシュは、UEでマテリアル情報が無い事となり、マテリアルを適用できません


UEへ読込直後
踏切の胴・手が真っ赤に変更されています


UEでマテリアル再適用
UEへ読み込んだ後、マテリアルで、胴・手のしましま模様のマテリアルを作成して、改めて割り当てました
Blenderで作成&割り当てたテクスチャーも、UEに読み込むとリセットされてしまいます
UEへBlenderで作成したテクスチャー(png/TIFF/trga)を読み込み⇒マテリアル化して、UE上でFBXファイルに割り当てる手順が必要です


UEに読み込んだFBXファイルのサイズが合っていない
③Scaleを1 Positionの単位を1cmに記載通りの理由で、UEとBlenderで単位を合わせる設定が必要となります
手順も③Scaleを1 Positionの単位を1cmに記載済なのでご覧ください!


サイズを1・位置単位cmと合わせないと、UEで意図しない形で読み込まれてしまう
画像はブランコの読み込みに失敗したもの
ブランコの上下部分が削り取られてしまっている


UEに読み込んだFBXファイルのピボット(原点・アンカーポイント)の位置が変わってしまう
UEのモデリングモードを使って、読み込んだメッシュのピボット(原点・アンカーポイント)を変更しよう
UEに読み込むとピボット位置が、ワールド座標の0位置に変更されてしまいます
モデリングツールは、プラグイン[ModelingToolsEditorMode]をONにしてUEを再起動する必要があります




対象のアクターのピボット(原点・アンカーポイント)のガイドが表示されます






まとめ:事前知識を抑えてエラーを防ごう!



他、難解なエラー&解決できましたら追記していきます!
参考文献



いつもありがとうございます!




コメント