美味しい焼き鳥屋さん

初心者による技術系のメモ

InstaMAT Studio ElementGraph「Scene」を使ってみる



youtu.be

公式よりScene機能の説明動画が投稿されたのでElement GraphのSceneノード群を使ってみます。

docs.instamat.io

Sceneノードの概要

Sceneノード群を活用することでElementGraphで出力されるアセット群を適切に管理した上で出力することができます。

出力形式はfbxやobjのような3Dファイル形式をはじめとして、今話題のUSD(シーングラフ)で出力できるようです。
モデルと一緒にテクスチャを書き出すことができ、シーンとして3dモデルやマテリアルを包括的に管理することができます。

Sceneノード群の詳細

処理の流れ


全体の流れは上記画像の通りです。
今回は作例として2つの3dモデルをインポートし、質感をつけたLayeringプロジェクトを呼び出したうえでテクスチャ群をマテリアルとして登録しています。

  1. Sceneの開始を宣言
  2. Scene内のメッシュを宣言(宣言したメッシュをシーンと紐づけ)
  3. メッシュを宣言
  4. 宣言したメッシュからテクスチャを生成(Layeringプロジェクトを利用)
  5. 宣言したScene内のメッシュにテクスチャを割り当て
  6. 1~5の行為を繰り返し
  7. 出力結果をプレビュー(あくまでプレビュー)
  8. Sceneの終了を宣言


画像とデータ出力のエクスポートを選択します。


画像とデータの出力のエクスポートのウィンドウから「画像とデータの出力」を有効にします。
上記画像では無効になっています。

また、設定項目では出力されるテクスチャ、メッシュのファイル形式を変更できます。
出力されるテクスチャの設定は通常の出力テンプレートを流用できます。


出力結果は上記画像のとおりです。


出力されたfbxをBlenderにエクスポートすると「軽微な修正」が必要な状態でエクスポートされます。
(ノーマルマップ以外の情報が適切にインポートされていない)


出力されたテクスチャを正しく接続することで、シーン全体を出力することができました。
軽微な修正をしないとシーンが正常にインポートできない問題は理由を問い合わせ中です。

InstaMATで設定をする項目

本記事では、fbxを前提に絞って記述します。
(出力フォーマットが複数あり、全てを網羅できる説明ができないため)

オブジェクト名


Scene Mesh SetノードのPathのStringはBlenderやMAYAなどのDCCツールのアウトライナーの1単位になります。


Blender上のアウトライナーで「Boxs」で登録されていることがわかります。

マテリアル名

入力されたメッシュデータに紐づいたマテリアル名を利用します。

テクスチャはMaterial Nameを判別して適用されます。

Sceneノード群の出力値

出力値 説明
Is Vaild Sceneが有効か
Did Create Materials マテリアルを作成するか

出力するファイルにマテリアル要素を含めないときは「Create Material」を無効にします。
Is Vaildが無効状態だと、Create Materialが有効でもテクスチャは出力されません。

設定項目 説明
Create Node ノードを有効にするか
Create Materials マテリアルを作成するか

Sceneの内容をプレビューする

Create Node Graphオブジェクトエディタ内でカメラの位置を変更しながらプレビュー
Create Materials 90度ごとにシーンをプレビュー

「Scene Material Set」と「Scene Material Set Textures」の違い


マテリアルに静的なテクスチャの割り当てをするときは「Scene Material Set Texture」を利用します。
パラメータを制御するときは「Scene Material Set」を利用します。

「Scene Material Set Texture」と「Scene Material Set Textures」の違い


単一のテクスチャを適用するときは「Scene Material Set Texture」
複数チャネルのテクスチャを適用するときは「Scene Material Set Textures」を利用します。

既知の問題

出力されたfbxがDCCツールで読み込みされない


Pathが空欄だとオブジェクトが生成されない

出力されたfbxを読み込むとベースカラーが黒色になる



ベースカラーが反映されずに、ノーマルマップだけ適用される
※obj形式だとベースカラーが反映される

キューブが出現して消えない

再現性なし
再度ノードを組み直すと回復
(Scene Mesh Setが悪さをしてるっぽい?)
長期間作業をしているときに発生することが多い

fbx以外の形式で出力をするとエラーが起きる

出力先のディレクトリに全角文字が入っているとエラーが発生

※obj形式で検証

usd形式の出力ができない

対処法不明