アンリアルエンジンをイジって解った件3 Blenderと連携編

アンリアルエンジンをド素人が遊びでイジってみた記録、というかメモ

前回

アンリアルエンジンをイジって解った件2 UI編 -難解変態仕様だが慣れろ系-

の続き

前回のまとめ

アンリアルエンジン(で動かすアプリを作るUnreal Editor、以下UEと略)は業務が主体に考えられてる感が強かった(当たり前か)。

各パーツを高度にモジュール化し、作業の効率をアップする事に重点を置いているようだ。

最初から最後まで全て個人で作る事も可能だが、基本は各人の得意な分野だけ作業するスタイルになってる・・・と感じた。

(たぶん)このアプリが想定してる階層

あくまで、イジり始めて2週間の素人が理解できた範囲にて、エピックゲーム社が想定している階層構造(分業化)は、おそらくこうなっている・・・

いやホントにたぶんだが・・・

  1. 物理ハードウェア制御層
    NvidiaやAMDが担ってる。要はグラボのBIOSやドライバ。UE(UnrealEditor)の範囲外。
  2. ミドルウェアソースコード層
    VulkanとかDirectXあたり。エピックゲーム社は関与してるだろうがUEでは範囲外(だと思うがスーパー玄人がコード書いたらグラボ直制御できるのかもしれない)。
  3. 上位ソースコード(ソフトウェアライブラリ)層
    エピックゲーム社が開発してる。UE本体はたぶんこのポジション。DirectXやVulkanで動かすためのコンパイルやビルド、それらで使うアセットの依存関係などを管理する機能を提供。
  4. 下位ソースコード層
    UE上でアクタ(オブジェクト)を動かすためのコード。ブループリントがこれに当たる模様。エピックゲーム社が開発したコード群が既に用意されており、それらをGUIで使える。VisualStudioでフルカスタムもできる。ココ以下の層がUEで編集可能(マーケットプレイスで売ってる)な領域か。
  5. UE内の「レベル」
    UEが言う「アクタ」を管理する単位。Blenderの「シーン」に近いと思われる。UEでのセッティングが必要(又はマーケットプレイスから完成したものをもってくる)
  6. UE内の「アクタ」
    キャラクター、背景アイテム、ライトなどのこと。たいていはポリゴンで作られてる(メッシュ)。Blenderで作成したオブジェクトはアセットとしてUEに取り込んだあと、アクタとして利用する

こんな感じか(あくまで始めて2週間の素人理解)。

ということで・・・

Blenderが連携可能な分野は末端のアクタ

である。

1-3はエピックゲーム社がやるから気にしなくて良いが、4のソースコードメンテ兼ディレクター、5のレベルデザイナー、6のアクタクリエイター。+サウンド。

UEでゲームを作るためには最低この4人が必要なんじゃね?という感じ。

いやしかし、一人で全部やってる上海アリス幻樂団(ZUN氏)とかスキルが神すぎる・・・

Blenderと連携可能なアクタとその方法

Blenderから持ってこれるアクタ(オブジェクト)は理解できた範囲で以下の3つに分かれる(まぁ他にもあると思うけど、現時点で判明したのは3つ)。

  1. 静的メッシュ
    アニメーションしない3Dポリゴンデータ
  2. 動的メッシュ(スケルタルメッシュ)
    ボーンとウェイトが付いてるメッシュ(ポーズのデータも含む)
  3. グルーム
    パーティクルヘアーの情報(形状のみ)

A 静的メッシュ

FBX形式で可能。

サイズや回転はUE側でいくらでも調整できるため、エクスポート設定は雑でも何とかなる。UE:Blenderの標準スケールが100:1になってる事だけ留意しとけば、とりあえず良し。

唯一の問題はマテリアル。Blenderと互換性がほとんど無い。マーケットプレイスからUE用マテリアルを持ってきて割り当て直すのが無難だが、テクスチャを使ってるとUE側のノードを使いこなす必要あり。ノードはBlenderと基本同じだったが、UEの方が厳密にノードの接続を要求される(変数の型が多い)。ややプログラムの知識が必要と感じた。

5時間くらい公式ドキュメントと動画で学んだ結果、シンプルな透過テクスチャ付きマテリアルをUE用に移植できる程度のレベルには到達できた(と思う、あくまで自称である)。

B 動的メッシュ(スケルタルメッシュ)

公式のプラグインで可能(FBXでも可能だが要、高スキル)。

Send to Unreal アドオン(公式)
https://www.unrealengine.com/ja/blog/download-our-new-blender-addons

※Epic Games アカウントと GitHub アカウントの接続が必要

ボーンが入っていると前述の100倍問題が顕著に出てくるため、FBXで単純に変換すると不具合が出まくる。低スキル人間には公式アドオン必須。

ただし使ったところで、事実上Blender標準であるRigfyリグとUEのスケルトンには互換性が無いため、UEで作られたアニメーション(モーション)が流用できない。

雑な移植で許容できるのなら、UEに搭載されてる「リターゲットマネージャー」を使い、全て手動割当すればけっこう動く。

まぁ当ブログは、UEで「遊ぶ」レベルなので問題ないが、業務レベルでモーション入りキャラをBlenderからもってくるのは、かなりの玄人(データ構造に精通しているという意味)でない限りは厳しいんじゃないかと(随所でMAYAを買えという圧を感じた)。一応攻略は試みるが・・・理解する前にver上がってしまうのではないか。

なお、シェイプキーもインポートできるが、日本語非対応(名前がバグる)かつ、ミラーモディファイヤが付いてるとできない(インポーターに全モディファイヤオフのオプションあり)。

C グルーム(髪の毛など)

abc(Alembic)形式で可能。

英語でググる(groom blender alembic とか)といくつか動画が出てくる。見まくった結果をざっくりまとめると以下の通り。

注意点

利用に下準備が必要である。そして重い。core i7 3770+GTX 750 Tiのサブマシンでは厳しかった。シェーダーコンパイルだけで十数分要す。1000本x10子の段階で、もうロクに操作できない。

参考現在のマシン構成と組み換え候補
最強コスパPCを目指し Alder Lake自作用のメモ ~マザボ高ぇ・・・

下準備

編集>プラグイン で以下を有効化する

  • Alembic Groom Inporter
  • Groom

編集>プロジェクト設定 で以下を有効化する

  • レンダリング>最適化>スキンキャッシュの計算をサポート

エクスポート

BlenderでAlembicを書き出す時に以下の設定が必要。オブジェクトを選択してから設定画面に入ると、選択物のみエクスポート可能。

  • スケール
    100倍
  • フレーム開始/終了
    1
  • カスタムプロパティ
    有効(チェック入れる)
  • 選択したオブジェクト
    有効(チェック入れる)
  • 可視オブジェクト
    有効(チェック入れる)
  • 使用する設定
    レンダー(にした場合、パーティクル設定にある、エミッターの表示をオフする)
  • オブジェクトオプション
    全て無効(チェック外す)
  • パーティクルシステム
    全て有効(チェック入れる)

他はそのままで行けたが、verと環境で変わる可能性あり、色々試した方が良い。

※ なお、UE5.3にインポートする場合、ヘアパーティクルの根本直径が細すぎると、バインディングが効かない/外れる現象が起きる模様(3時間くらい悩んだ)。

インポート

UEでAlembicを読み込む時に以下の設定が必要

  • Rotation
    X 90 , Y 0 , Z 0
  • Scale
    X 1 , Y -1 , Z 1

なんでこうなるのかは良く解らないが、しないとダメ。

割当(キャラに装備)

割当たいアクタを開く>コンポーネント追加>Renderring>Groom

詳細タブにGroomが出るので取り込んだアセットを指定。

バインディング(動きの同期)

アセットを右クリック>バインディングを作成>当てたいスケルタルメッシュを選択>できたグルームバインディングアセットを割当

まぁ、動画何個か見たほうが良い。どういうメカニズムでバインディングしてるのか分からないところがモヤっとしてる(ボーン割当とエミッターの関係かな?)。

まとめ

これで一通り遊べるようになった。

だが、やはりというか、なんというか・・・全体的に計算量がかなり多い。

負荷が高すぎて、2018年ライトゲーマー仕様(RX 570)のPCではやや厳しい。GTX 750Tiなど無理ありすぎだ。

RX 570でギリなんとかなる現状を見ると、GTX1650クラスで下限だろうな。

あくまで個人的感覚だが、アップ(LODが1m以下)に耐えられるクオリティでGroomを使う場合、RTX2060以上必須レベルだと思われる。まぁそこまでは要らないとしても、GTX1660は欲しいところだ。

いいかげんグラボほしい・・・

さすがにもうサブの750Tiが限界すぎるんだよ(壊れそうという意味で)。最近たまにプチノイズ出る時あるし、これではRTX4000発売までもたん。

早くGTX1660Super、17980円とかにならねーのかよ・・・でもまぁ先日ついに24800を見た(当然新品)から秋までに20000は確実に行くと思うんだが・・・19800、いや20980あたりで買っちゃうかもなー。

てか普通に考えて、RTX4060が300ドル台で出たらRTX3060はMAXで3万円、GTX1660Superなんて2万円以下は確定コースなんだけどな。

年初にRTX3060を10万弱とかで売ってたヤツら、まじ馬鹿じゃねぇの。もうフツーに4万円台だよ・・・今、メルカリに5万円以上で100枚以上余裕で出品されてんだけど、ヤツラどうすんだろうか?

まぁどうなってもしらんけどね。正に自業自得、というより自爆か。

2022春-夏ついにグラボ価格が下落、買い時が来たかもな理由&どれ買うか考えておく


コメントを残す

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

CAPTCHA