このチュートリアルは下記動画を参考にして作成しました。
※パスワード入力後、「20190515PDGを使用して複数のオブジェクトに対して、テクスチャベイクをまとめて実行する」フォルダからサンプルシーンをダウンロードしてください。
※サンプルシーンにジオメトリデータは入っていません。用意したジオメトリファイルのディレクトリを設定しなおしてください。
このチュートリアルはサンプルシーンがなくても実行可能です。ジオメトリファイルはご自身で用意してください。
ベイクするジオメトリデータをFileノードでロードし、Simbple Bakerノードに接続します。
※このデータは高解像度モデルからのベイクはありませんが、高解像度データからベイクする場合は、Simple Bakerに高解像度モデルを接続します。
Top Networkを作成します。
topnet内にfilepatternノードを作成します。
File PatternノードにてGlob Patternのファイルボタンをクリックして、FBXファイルが保存されているディレクトリに移動し、ジオメトリデータを一度選択しロードします。
同ディレクトリに存在する全てのジオメトリデータをベイクする場合は、名前を特定するのではなく * を使用して全ての.fbxを指定するなどが可能です。
ROP fetchノードを作成して、接続します。
ROP Pathにて、Simple Bakerノードを選択します。
このROP fetchノードにより、Simple BakerノードのRenderボタンをおして、外部にテクスチャを生成することができるようになります。
File Patternノード上で右クリックし、Generate Nodeを選択します。
これにより、指定したディレクトリ内にあるジオメトリファイルの数分のワークアイテムが作成されます。
今回は2つのFBXファイルがあるため、2つのワークアイテムが作成されます。
実際の処理を行うSOPネットワークに移動します。
ここでは、実行時にパラメータの内容を置き換えるようにします。
Wedge TOPを使用してパラメータ値を変更するときに、TOP固有のエクスプレッションを他のノードに配置したくない場合(たとえば、レンダリングしたいROPが他のパイプラインと共有されている場合、または手動で使用される場合) wedgeノードは、実行時にパラメータ値をwedge アトリビュートに置き換えることができます。
ジオメトリデータをロードしているFileノードにて、ロードするファイル名を書き換えます。
ロードするジオメトリであるFBXファイルを決めている部分の、最後のファイル名を`@filename`と設定します。
これはTopsからファイル名をひっぱってきます。
出直するテクスチャ名にもこのファイル名を追加します。
Simple Bakerノードのパスに@filenameを使用しますが、このままだと.fbxまでファイル名に追加されます。
そこでstrreplaceを使用し、".fbx"を""で置き換えるつまり、削除します。
準備ができたら、Top netに戻ります。
Networkエディタのネットワークディレクトリ辺りを右クリックし表示されたメニューからCook Outout Nodeを選択します。
テクスチャベイクの処理が行われます。
計算が終わると指定したディレクトリにテクスチャベイクがベイクされていることがわかります。
これをHQueue Schedulerと組み合わせれば大量のジオメトリのベイクを複数のPCで処理できるようになるのでは?!
めざすはSubstance Automation Tool kitのsbsbaker.exeと組み合わせ!頑張りましょう!