Blenderで作ったモデルをUnreal Engine 5で読み込んだらエラーが出たので直し方を記録しておきます。
この内容はUdemy講座の内容を応用したものです。
【Unreal Engine5】サイバーパンクシティー制作講座
UE5でガラスのマテリアルの作り方を解説した記事はこちら
発生したエラー
複数のエラーが発生してデータを読み込めませんでした。
読み込みのエラーまとめ情報は公式だとこのページにあります。
スムージンググループ情報
最初に出たエラーはスムージンググループ情報です。
このFBXシーンにはスムージンググループ情報がありません。ファイルをエクスポートする前に必ずFBX Exporter プラグインの[Export Smoothing Groups] オプションを有効にしてください。スムージング グループをサポートしないツールの場合でも、インポート中に正しい頂点法線を推測するため、FBX Exporter はエクスポート時に適切なスムージング データを生成します。
これはBlenderからFBXをエクスポートする際の設定を変更すれば直りました。
ジオメトリ → スムージングの設定を法線のみから面に変更しました。
※後で辺にしてもエラーは出なくなったので、今のところ違いは分かりませんがどっちでも良いのかもしれません。
ボーン階層に複数のルートが見つかりました
次はアーマチュア、ボーンに関する設定のエラーです。
ボーン階層に複数のルートが見つかりました。本エンジンは単一ルートボーンのみをサポートしています。
これはアーマチュアの直下にあるボーンの名前をrootにしたら解決しました。
以下のボーンがバインドポーズに不足しています
以下のボーンがバインドポーズに不足しています:
Bone.006_end
Bone.007_end
Bone.008_end
インポート後に正しい向きに置かれない場合、頂点に重みづけがされていないボーンに発生する可能性があります。
「Use T0 as ref pose」オプションを設定するか、バインドポーズにボーンを追加してスケルタルメッシュを再インポートしてください。
これはメッセージで表示された通りに「Use T0 as ref pose」にチェックを入れたら解決しました。
動かすと一部のメッシュが消える
Unreal Engine 5のコントロールリグでモデルを動かすと一部のメッシュが消えたりして大変でした。
結論としてはBlenderでモデリングをしっかりやっておかないとUnreal Engine 5にインポートしてアニメーションを作ってもすぐに予想外の動きになるので、Blenderで動きを確認しておきましょう。
以下はどうすれば最初から成功したのかを調べて分かったことです。
モディファイアを適用
結合やアーマチュアとの親子関係をつける前にモディファイアを適用します。
こういった作業の順番が非常に大切でした。
モディファイアは適用しないとデータ上の数値は変わっていないので、適用しないで結合や親子関係をつけても見た目がおかしくなります。
沢山のオブジェクトにモディファイアを適用させるのが面倒だと思って調べたら標準のアドオンでModifier Toolsというのがあるので、絶対にこれを使った方が作業が楽になります。
というかこんな便利な機能なら最初からオンにしておいてくれ。
マテリアル
マテリアルは結合する前に各パーツに付けておきましょう。
結合してからパーツごとに見た目を変えたいと思ったら、もう一度分解してマテリアルをつけて再度結合する必要があり、手間が増えます。
ベースカラーだけでも良いのでパーツごとに変えておくと、Unreal Engine 5で読み込んだときに下の画像のようにどのパーツなのか判断もしやすいし変更しやすくなります。
結合する
モデルをUnreal Engine 5で動かす場合はBlenderで結合しておいた方が楽だったのですが、結合はモディファイアを適用してから行います。
アーマチュアと親子関係をつける
アーマチュアとオブジェクトの親子関係は最後(エクスポートする前)につけましょう。
親子関係をつけてから結合などで試行錯誤してしまうと、Unreal Engine 5でインポートしてアニメーションをつけても思ったような結果になりません。
モデルを作り終わってからアーマチュアと関係をつけることが大切です。
Unreal Engine 5でquixel bridge でアセットをダウンロードできない場合の対処法を解説した記事はこちら
テキストをデジタルサイネージ風に動かす方法を解説した記事はこちら
この内容は以下のUdemy講座の内容を応用したものです。
【Unreal Engine5】サイバーパンクシティー制作講座