Blenderのモデルを持ってきたいですね(゚∀゚)
今回はUE5とBlender側の連携でどういった部分の注意点があるのか、
まとめていきたいと思います。
結構Blenderとの併用で個人開発している方もいらっしゃるかなと思い、
参考になれば幸いです。
今回実際に作って動かしたものがこちらになります。
Blenderで作った簡易敵キャラを、
— アルゴンブログ公式 (@Argonblog) 2024年10月14日
アニメーション含めてインポートしてみました。
ある程度縮尺もちょうど良くて満足してます! pic.twitter.com/GDUXHL3661
※UE5.4で検証しています。
※BlenderはVer.4.1を使用します。
※書き間違え等あればコメントください!
Blenderってなんですか?
Blenderとはモデリング・アニメーション・エフェクトなどの
本当に様々なことが行える統合3DCG開発ツールになります。
ゲームの開発でモデルの作成やボーンの設定、
アニメーションなど本当に多岐にわたるツールかなと思います。
ダウンロードなどは下記のリンクのサイトからダウンロードが可能です。
今回はスタティックメッシュをFBXとして出力した場合または、
スケルタルメッシュをインポートする際の情報をまとめめていきます。
スタティックメッシュ作成時の注意点と仕様
スタティックメッシュのインポートで問題となると、
インポート時のサイズや寸法の問題・マテリアルの分割などの紹介を、
していきたいと思います。
まず最初にBlender内の単位を選択します。
右側Sceneの「単位」の「単位系」を「メートル法」に設定します。

続いて単位のお話になりますがUnrealでは1mのサイズが100になります。
つまり最初の単位の倍率と最初の箱の一辺が2mあるので、
200x200x200の立方体になっています。
一旦単位だけ設定したものを出力してみたいと思います。
Blender側の左上のメニュー → エクスポート → FBXを選択します。

エクスポートのメニューが出現するので下記部分の確認・変更をしてください。
・「単位を適用」にチェックが入っていること
・前方をXが前に変更する。
・上をZが上に変更する。

そしてFBXを任意の場所にエクスポートしたもののを、
今度はUE側でインポートします。
基本はコンテンツブラウザの「+追加」の右側にある
「インポート」から追加します。
インポート時の設定は特に変更しませんが、
設定項目についてはこの後説明します。
※モデルファイルのドラッグアンドドロップからもインポート可能!

最初のステージに配置した時に結構な大きさの立方体が登場します。
200x200なので大きいマス4つ分ですね。
※大きいマス1つが100x100でその中の見えるマスが50x50です。

このままでも良いという方がいるかも知れないですが、
200x200はものを置く時にスッキリしないかなと思うので、
100x100に変更してみましょう。
Blenderの1m角が100なので1mの立方体を作ってみます。
面を選択して中点が0.5であればOKです。
今回は原点が左後ろの下の頂点に来るようにしてます。

こちらを先程と同様にインポートしてマップに配置すると、
大きい四角一つ分になるかなと思います。
※今回一例でやっていますが複数人のプロジェクトなどは、
規定のサイズ感をきめて開発することは結構重要なのかなと思います。

ここで座標系について少し触れておくとBlenderが右手系で、
Unrealが左手になるため注意が必要です。
下記資料がとてもわかりやすかったのでリンクつけておきます。
Blender側のマテリアルの設定も行っていきます。
Blender側の方でマテリアルを設定します。
Blender側のマテリアル設定で+ボタンでマテリアルを追加して、
オブジェクト編集から面を選択して割り当てます。

インポートするとマテリアルが2つ分インポートされます。
インポート時の設定のマテリアル項目で、
Search Locationを「Local」にして「Create New Materials」を指定します。

これでインポートしてみて配置すると、
設定されたマテリアルに合わせて色になるかなと思います。

スタティックメッシュでの設定等は以上ですが、
マテリアルをいっぱい設定して色分けするのではなく、
UV展開をしっかり行いテクスチャなどを活用しつつ、
マテリアルの設定をしていきましょう。
インポート設定の設定とインポート警告の対処法
続いてインポート設定の説明を行っていきます。
まずは一番上のインポート設定メッシュの項目になります。
■メッシュ設定
◎Skeletal Mesh
→ Blenderのアーマチュアを設定しているモデルの場合チェックを入れて、
スケルタルメッシュのインポート用に設定していきます。
◎Build Nanite
→ Nanite用にビルドする場合はこちらにチェックをいれると、
Nanite用にビルドしてくれます。
複雑なモデルはチェックを入れると良いかもしれません。
◎Generate Missing Collision
→ 自動的にコリジョンを作成してくれるようになります。
当たり判定などを付与したい場合はこちらにチェックを入れます。
■トランスフォーム設定
◎Import Translation
→ インポート時の位置をずらすための数値になります。
◎Import Rotation
→ インポート時に角度を設定します。
◎Import Uniform Scale
→ インポート時のモデルの倍率を設定します。
■その他設定(こちらはモデルの座標変換がメイン)
◎Convert Scene
→ FBXで設定されている座標軸をUEの座標系に変換
◎Force Front XAxis
→ 座標系の-yが前方の座標系をXを前方に変換
◎Convert Scene Unit
→ FBXの単位をUEのセンチ座標に変換
◎詳細設定:Override Full Name
→チェックの部分をOFFに設定されている場合、
名前をファイル名にせず複数ある場合に別名でナンバリングする。
■マテリアル設定
◎Search Location
→ 設定されているマテリアルを設定するか、
親のマテリアルを設定するかなどの設定を設定する。
◎Material Import Method
→ マテリアルを新規で追加するかなどの設定になります。
◎Import Texture
→ Materialを作成しない場合にチェックのON/OFFできる。
チェックがONだとテクスチャをインポート
■詳細設定
◎InvertNormalMap
→ 法線の方向Yを逆にします。
◎Reorder Material to Fbx Order
→ FBXの設定にあわせてマテリアルをインポートします。
また、よく見る警告として
FBXImport: Warning: このFBXシーンにはスムージンググループ情報がありません。
という警告があるかなと思います。
こちらに関してはBlender側のジオメトリ項目で、
スムージングを「法線」から「面」に変更すると警告が消えます。

ボーンありのモデルの場合の注意点
ボーンありのモデルの場合にもいくつか注意が必要です。
代表的な部分は下記の項目になるかなと思います。
・アーマチュア名をデフォルトから変更する。
・すべてのボーンの親になる部分をRootに設定する。
まずBlender側でのアーマチュア設定しましょう。
右手・右足をミラーする際は+Y方向からみて、
右側の左骨を作っていかないとミラーが変な方向に付くので注意!

それから個人的には人形のボーンはある程度、
UEのマネキンにあわせるとリターゲットする際に、
迷わなくてよいのかなと思いました。
それから私の設定が悪いだけな気がしますが、
アニメーションポーズ状態でエクスポートしたものを、
インポートするとボーンの位置がおかしくなっていました。

解決方法としてはBlender側の設定で、
アーマチュアのボーンをすべて選択して、
ポーズ → トランスフォームをクリアを選択して元の状態に戻します。

そしてエクスポート時にアニメーションをベイクしなければ、
正しい状態で出力できました。
※アニメーションは別でインポートしてあげれば問題なく動きます。

その他細かい設定については、
ネットにいくつか参考資料がありました。
私は今回下記リンクのサイトを今回参考にさせていただきました。
分かりやすくまとまっているので参考になりました。
アニメーションのみFBXインポートする場合
キャラクターだけインポートしてその後に、
アニメーションのみをインポートしたいということもあるかなと思います。
その際はオブジェクトにアーマチュアを選択して、
「アニメーションをベイク」にチェックを入れます。

そしてUEのインポート時にそのボーン構造にあった、
スケルタルメッシュを指定してインポートします。

これでアニメーションを配置して動けばOKです。
最初のツイートが今回アニメーションと別インポートしたものになります。
一応Blender側で作成したアニメーション動画も乗せておきます。
最後に
一旦Blenderでのインポートの設定をまとめてみました。
だいぶ昔にやった時はだいぶ色んなところで躓いたりしましたが、
サイズの設定とかに困らず行えていました。
なにかまた困った事があった際に、こちらに追記しようかなと思います。