当ブログでご紹介中商品掲載(Amazonリスト)

UE5にBlenderアニメーションを読み込む時に確認したい事

当ページのリンクには広告が含まれています。
ヨシコフ

Blenderで作成したキャラクターアニメーションがUE5で読み込めない!!
毎回毎回ノイローゼ!!

みなさんはそんな現象に陥っていませんか?

Blenderで作成したアニメーションを読み込んだ時のエラーは作った人の数ほどケースバイケースなので、全てを網羅はできませんが、少なくともワタクシが毎回よく陥るエラーと対処法については、記事に残していこうと思います

今回使用したバージョンは下記の通りです

  • Blender4.1(英語版)
  • UE5.2.1(日本語版)
    ※本来ならアプリを英語版に統一しないと気持ち悪いですね
目次

UE5に読み込む前のBlenderデータの準備

①FBXデータを出力できるようにアドオンにチェックを入れる

UE5にアニメーションデータを読み込むにはFBXファイルで出力する必要があります

Blenderのデフォルト設定ではFBXファイルは出力できないので、アドオンを有効にしましょう

アドオン名:Import-Export:FBX format

ヨシコフ

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

作成したアニメーションデータの位置情報をリセットし、位置がXYZ=0cmにいるようにしましょう

リセット方法は3つあります

  • ショートカット:(メッシュ選択)Alt+G
  • オブジェクトモード⇒メッシュ選択⇒オブジェクトモードメニューバー[object]より[Apply]⇒Location選択
  • objectPropertiesのLocationの値を0

0からズレているために、UEに読み込んだもののあっちに行ってる事はよくあります

この時のモデルの向きも重要です

  • Zが上
  • Xが右
  • -Yが中央

ついでにこの時、メッシュのRotationも0になるようにしてください
※やりかたは[Transformをリセット]と同じで、位置ではなく回転を選びます

Blenderでも他のDCCツールでも必要な手順となります

とりあえず③を丸暗記していてください
やりかたは[Transformをリセット]と同じで、位置ではなくスケールを選びます

BlenderとUEでは単位系が異なります

Blenderはメートル基準、FBXにセンチメートル基準です
スケールを1に統一することで、両ソフトウェア間でのスケールの一貫性が保たれます

④法線を整える

法線が同じ方向に揃っていないと、UE5に読み込んだ時にエラーが出ます
※後述します

法線が揃っているかどうか確認する方法は下記の通りです

  • 編集モードでメッシュを全選択
  • オーバーレイパネルで、FaceOrientationを✓

すると、メッシュの表面が青or赤色で表示します

青色が正解で法線が揃っている状態です

赤色が出てしまった場合は方法が2つあります

モードを編集モードにしたうえで

  • 問題個所の範囲を選択⇒Alt+Nでメニューを出す⇒RecalculateOutside
  • メッシュを全選択⇒shift+N(法線を外側に揃える)
    ※①のコマンド

UE5にBlenderで作成したアニメーションを読み込む時の手順

STEP
モデルデータ&Armatureを選択

今回の事例はモデル1体をFBXで出力するので、モデルに関連するメッシュとArmatureを選択します

STEP
FBX書き出しを行う

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横+⇒名前を付けて保存

STEP
UE5にFBXファイルを読み込む

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ボーンの階層
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を再起動する必要があります

STEP
モード選択⇒モデリングモードに設定
STEP
対象のアクターを選択+モデリングモードのパネルより[PibotAct]を選択

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

STEP
トランスフォーム位置を変更⇒[承諾]クリック

選択モードに戻ると、ピボットの位置がきちんと変更されていることが分かります👍

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

ヨシコフ

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

参考文献

ヨシコフ

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

ヨシコフ
unrealEngine初段
[慎重]×[最上思考]の資質を持つ
二児のワーママ(6y&3y)

「unrealEngineは自分の資質&育児中の働き方に合うかもしれない?」

こういう望みを持って夜な夜なレベルアップ中
イマココ→【目標0】書籍を通して基本操作とソフトの仕組みを覚える

レベルアップ仲間募集中です

スポンサーリンク

  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次