CG, KATANA

MaterialAssign, MaterialResolve, OpScript

MaterialAssign から MaterialResolve をして OpScript でアトリビュートを上書きする流れが、KATANA の内部を理解する上でとても良い事例になりそうなので詳細を順を追って解説します。

まず最初に、Merge でオブジェクト用ツリーとマテリアル用ツリーを一つにまとめます。この時、オブジェクトにはマテリアル情報はまだ何も登録されていません。

materialAssign というアトリビュートはあるものの、空になっています。

ここで、MaterialAssign を用いて pCylinderShape1 にマテリアルを割り当てると materialAssign アトリビュートに値がセットされます。

次に MaterialResolve ノードを通すと、オブジェクトに material アトリビュートが追加され、かわりに materialAssign アトリビュートが空になります。

この時にはマテリアル内の値は元々のマテリアルにあったものそのままです。

最後に OpScript で Alembic に含まれていた値をマテリアルの値にセットします。

ちょっと注意が必要なのが、マテリアル内のシェーダーネットワークのアトリビュートはリアルタイムに更新されず、Refresh ボタンを押すことで最新の情報が更新されることです。KATANA は情報のリアルタイム更新周りはあまり力を入れていないようで、慣れないとたまにオヤッ!?と思うことがあります。ただ、リアルタイム更新周りを充実させるとどんどんアプリケーションが重くなっていき、起動が遅くなったり普段のオペレーションに支障が出てくるようになるので個人的には今の方が好きです。

コメントを残す

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