Created on | Updated on
フォローする

PDGを使用して複数のオブジェクトに対して、テクスチャベイクをまとめて実行する

このチュートリアルは下記動画を参考にして作成しました。

 

 

サンプルシーンファイルダウンロード(※パスワードあり)

※パスワード入力後、「20190515PDGを使用して複数のオブジェクトに対して、テクスチャベイクをまとめて実行する」フォルダからサンプルシーンをダウンロードしてください。
※サンプルシーンにジオメトリデータは入っていません。用意したジオメトリファイルのディレクトリを設定しなおしてください。

このチュートリアルはサンプルシーンがなくても実行可能です。ジオメトリファイルはご自身で用意してください。

ベイクするジオメトリデータをFileノードでロードし、Simbple Bakerノードに接続します。
※このデータは高解像度モデルからのベイクはありませんが、高解像度データからベイクする場合は、Simple Bakerに高解像度モデルを接続します。

015.PNG

 

Top Networkを作成します。

002.png

 

topnet内にfilepatternノードを作成します。

 

File PatternノードにてGlob Patternのファイルボタンをクリックして、FBXファイルが保存されているディレクトリに移動し、ジオメトリデータを一度選択しロードします。

同ディレクトリに存在する全てのジオメトリデータをベイクする場合は、名前を特定するのではなく * を使用して全ての.fbxを指定するなどが可能です。

014.PNG

 

ROP fetchノードを作成して、接続します。

004.PNG

ROP Pathにて、Simple Bakerノードを選択します。

このROP fetchノードにより、Simple BakerノードのRenderボタンをおして、外部にテクスチャを生成することができるようになります。

016.png

 

File Patternノード上で右クリックし、Generate Nodeを選択します。
これにより、指定したディレクトリ内にあるジオメトリファイルの数分のワークアイテムが作成されます。

006.PNG

 

今回は2つのFBXファイルがあるため、2つのワークアイテムが作成されます。

017.PNG

 

実際の処理を行うSOPネットワークに移動します。
ここでは、実行時にパラメータの内容を置き換えるようにします。

Wedge TOPを使用してパラメータ値を変更するときに、TOP固有のエクスプレッションを他のノードに配置したくない場合(たとえば、レンダリングしたいROPが他のパイプラインと共有されている場合、または手動で使用される場合) wedgeノードは、実行時にパラメータ値をwedge アトリビュートに置き換えることができます。

ジオメトリデータをロードしているFileノードにて、ロードするファイル名を書き換えます。

018.PNG

ロードするジオメトリであるFBXファイルを決めている部分の、最後のファイル名を`@filename`と設定します。

009.PNG

これはTopsからファイル名をひっぱってきます。

011.PNG

出直するテクスチャ名にもこのファイル名を追加します。

Simple Bakerノードのパスに@filenameを使用しますが、このままだと.fbxまでファイル名に追加されます。
そこでstrreplaceを使用し、".fbx"を""で置き換えるつまり、削除します。

010.PNG

 

準備ができたら、Top netに戻ります。

Networkエディタのネットワークディレクトリ辺りを右クリックし表示されたメニューからCook Outout Nodeを選択します。

012.PNG

 

テクスチャベイクの処理が行われます。

013.PNG

計算が終わると指定したディレクトリにテクスチャベイクがベイクされていることがわかります。

これをHQueue Schedulerと組み合わせれば大量のジオメトリのベイクを複数のPCで処理できるようになるのでは?!

めざすはSubstance Automation Tool kitのsbsbaker.exeと組み合わせ!頑張りましょう!