Unreal Engine 5系とBlender3系4系連携で気づいたこと

アンリアルエンジンを勝手にAAA級ゲームだと思って、場当たり的にクソゲー作って遊んでるド素人がイジってみた記録、というか「この設定ここにあったのか」的なメモを、ネットにタレ流す件。

5.4が出た区切りとして、5.0からのここ2年間で感じたBlender連携周りのまとめ&つまづきポイント&所感。

座標系の差異

共にZが上だが、XとYの方向が異なる。Blenderは右手系、Unreal Engineは左手系と言うらしい。他、各アプリで多種あり(例えばUnityはYが上)。Blender→Unreal EngineへFBX手動インポート時には考慮が必要(公式のSend to Unrealを使った方が良い)。

上記に起因して、Normal Mapが異なる(Gチャンネルの方向)。BlenderはOpenGL系、Unreal EngineはDirectX系となり、2つ用意されている場合は末尾にDX or GLの識別子が付いてる。適正な方を使うか、変換する(UEはオプション有)。

バージョン間の差異

根本的に対応方法が異なるからだ。異なるVerで説明しているドキュメントを見ても永遠に解決しない。

ここ2年における、Unreal EngineとBlenderの更新履歴は以下の通り。

Unreal Engine バージョン履歴

  • Unreal Engine 5.0
    2022/4/6
  • Unreal Engine 5.1
    2022/11/16
  • Unreal Engine 5.2
    2023/5/11
  • Unreal Engine 5.3
    2023/9/6
  • Unreal Engine 5.4
    2024/4/24

これら以前に書かれたものは、当時の該当Verで書かれている。

シーケンサー回り(動画作成)の仕様に変動が大きな印象だが、AAAゲームとして遊んでる民としては、動画機能関係はあまりチェックしてない。

Blender バージョン履歴

  • Blender 3.0
    2021/12
  • Blender 3.1
    2022/3
  • Blender 3.2
    2022/6
  • Blender 3.3LTS
    2022/9/7
  • Blender 3.4
    2022/12
  • Blender 3.5
    2023/3
  • Blender 3.6LTS
    2023/6/27
  • Blender 4.0
    2023/11
  • Blender 4.1
    2024/3

2.6系あたりから機能が加速し、v3で成熟してメチャスゴイアプリになった。2024年4月現在、3.6LTSを使ってる、というか推奨(理由は後述)。

Blenderはマイナーバージョン間の差異(2.8、3、4の各Ver内)は割と少ない。ここ数年のv3はレンダー機能とマテリアルに比重を置いてた印象がある。

2系の最後あたりに搭載されたデノイズ機能がすごすぎて、グラボはもう不要になった(あった方が良いが、ほぼnVidia一択なのが・・・)。このため、2系時代(概ね2020年以前)のレンダリング関連情報を見ても、ほぼ意味が無い。

バージョン間で影響が出るポイント

おま環、無知、バグなどがある。あくまで気づいた範囲。個人的なメモ。

Unreal Engineを基準にまとめよう。

Unreal Engine 5.0(Blender 3.1~3.3LTS時代)

これは、前Unreal EngineVer4系との比較である。

  • リグのリターゲティング方式が異なる
    IKベースになったため、v5系の方がBlenderのRigifyをインポートしやすい
  • テッセレーションができない
    インポート前にDCC(Blender等)側でハイポリ化が必要(逆に言えば、ローポリ最適化が不要になったとアピールしてる件)

大昔から使ってる訳ではないから表現が難しいのだが、誤解を恐れずに書くと、

v4系以前
「ローポリを実行時にテッセレーションで疑似的に滑らかに見せる方式」

v5系
「ハイポリをLOD、カリング、TSRなどで負荷調整する方式」

になった模様。この理由はおそらくLumen+Naniteだから。LumenリアルタイムGI計算とローポリの相性が悪いようだ。レイがポリゴンを貫通する感じ(実際にNaniteで調整なし低ポリを適当に使うとアーティファクトが出やすい印象←前時代の仕組みに最適化されてるせい)。

Unreal Engine 5.1(Blender 3.3LTS~3.5時代)

  • コントロールリグ機能が強化
    これにより比較的EasyにRigifyの機能を移植できるようになった(らしい、体感では、まったくEasyではないが、確かにノードを組めばBlenderのボーンコンストレイントは作れる)
  • 機械学習 (ML) Deformerを搭載
    Blenderから移植時のBボーン問題が緩和された模様

UE5にはBボーンが無い。そのため単純にBlenderから持っていくと関節がおかしくなる現象が多発する、これをML Deformerで解決できそうな予感がした。

というか、最終的にUEで遊ぶ目的ならばRigifyではなくUE準拠リグで割り当て直し、何らかのアセットのリグ制御を丸乗っ取りした方が楽だと、このあたりで悟る。

Unreal Engine 5.2(Blender 3.3LTS~3.5時代)

細かい機能強化があった。

Apple Siliconネイティブ対応が最大のトピックな印象。各種エディタやパストレーシング機能なども盛られており、BlenderのCyclesレンダー機能、もう不要説が出てくる。

Unreal Engine 5.3(Blender 3.5~4.1時代)

  • Lumenの強化と調整と最適化がすごい
    処理速度と安定感がすごすぎて、とりあえずLumenオンにしておけば全て解決するレベル(半透明とボケ以外)、これによりBlenderのCyclesレンダーのメリットがほとんど無くなる
  • Blender4.0+Send to Unreal が動かなくなる
    英語圏には強引にソースを書き換える情報(エラー行を全部消す)もあったが・・・しかし、過去の資産が使えなくなるアドオン周りの仕様を変える意味が、正直良く解らないのだが・・・BlenderからUEに移行してほしくないという抵抗かもしれない

UE5.3は、とにかくLumenがすごすぎる。致命的だった半透明とボケ問題が、カメラ距離で自動制御が入るようになり緩和。反射やシャドウ処理も意味が解らないレベルで高速。そのせいか、Blenderで遊ばなくなってきた。ところに、Send to Unreal(BlenderからUEへデータを送るツール)がBlender4.0で動かなくなるという致命的な仕様変更が入る。

他にもBlender4.0でけっこう変更が入った(マテリアル、IFがUE側に寄って来たような印象)ため、2024年4月現在でUEと連携する場合、Blender 3.6LTSを推奨、というより使うしかない。このLTSは本当にLong Termになりそうな予感。

あと、UE5で遊ぶ比重が高くなってる原因に、BlenderがAppleとnVidiaデバイスに寄ってきてる件がある。AMD対応が遅すぎてRadeon使いには無理(おそらくやる気がない、AMDがやる気ない)。

AppleとnVidiaのデバイスはめちゃくちゃ高くて、遊びジャンルと親和性が低い。Unreal Engine + Radeon の方が低コストでより強力に遊べる。

これ、AAAタイトルのゲームだから(違うけど)。

Unreal Engine 5.4

2024/4/24 ついに正式版が出た。

さっそく遊ぼう。

しかしこのAAAゲーム?、ここ10年で最も面白いなぁ。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA