執筆者:伊藤
スマホゲーム開発会社、映像業界を経てモノリスソフトへ入社。 以来、テクニカルアーティストとして主にHoudini関連の業務を担当。 好きな楽器はギター。
TECH BLOG
こんにちは。モノリスソフト テクニカルアーティストの伊藤です。
今回はHoudini20.5から新しく追加されたCopernicusを使って、プロシージャルにテクスチャを作成してみようと思います。
CopernicusとはHoudiniによる画像処理フレームワークで、ノードベースで画像を加工することが出来ます。
今回は基本的なプロシージャルテクスチャの作例から、Houdiniならではの別コンテキストの情報を用いた作成を通して基本的な操作方法を学んでいきたいと思います。
まずは、他のプロシージャルテクスチャ作成ツールでもよく作るようなレンガテクスチャを作成します。
Substance 3DではTile Generatorなどを使用してパターンのある模様やタイリングを表現することが出来ますが、HoudiniではTile Patternに同様の機能が用意されています。
このノードには「id」と「uv」も出力されていて、「id」はタイル毎に固有色が、「uv」はuv空間が割り当てられています。
これらの出力は、個々のタイルにバリエーションを加えるために非常に便利です。
Fractal Noiseでノイズのパターンを作成できます。
Slope DirectionとDistortを使用して、ノイズの方向に沿った歪みを作成することが出来ます。
Random RGBの「seed」入力に「Tile Pattern」の「id」を繋ぐことで、タイル毎に固有色を割り当てることが出来ます。
グラデーションにはRampを使っていて、「Ramp」を右クリック → 「Sample Screen Colors」で写真などから色をピックすることが出来ます。
UV Transformの「seed」入力に「Tile Pattern」の「id」を、「uv」入力に「uv」を繋ぐことでタイル毎にUV座標をスケールしたり回転することが出来ます。
MonoでUVの赤色情報だけを抜き出し、それを単色カラーとブレンドすることでタイル毎に異なるグラデーションが追加されました。
UV Sampleの「uv」入力に「UV Transform」でランダマイズされたUVを指定することで、タイル毎に異なるノイズを割り当てることが可能です。
最後に、作成したノイズとカラーをブレンドして完成です。
続いて、2つの作例を通してSOPからの情報をテクスチャに持ち込む方法を学んでいきたいと思います。
uv展開したモデルに「polyframe」で法線方向と接線方向にアトリビュートを作成します。
「scatter」でポイントを散布します。
「Attribute Randomize」で「pscale」アトリビュートを持たせておきます。これでSOP側の準備は完了です。
SOP Importを使用してSOPで作成したポイントをCopernicus側に呼び出します。
Rasterize Setup を使用してSOPモデルをUV空間上に座標変換します。
Geometry SpreadSheetを見ると、先ほどSOP側で指定したアトリビュートを持っていることがわかると思います。
Stamp Pointsの「stamp0」入力に繋いだ画像を、SOPで作成した方向とスケールに沿って配置することが出来ます。
ポイント毎のidやuv情報も使って、バリエーションのあるテクスチャを作成できました。
「Attribute Paint」でアトリビュートを作成します。今回は「__mask」アトリビュートを作成しました。
SOP ImportノードでSOPで作成したモデルをCopernicus側に呼び出します。
Rasterize Setupを使用してSOPモデルをUV空間上に座標変換します。
Rasterize Geometryを使用して「__mask」アトリビュートを出力先に追加します。事前にSOP側でアトリビュートを用意していれば、このノードを使うことで参照させることが可能です。
「__mask」アトリビュートをマスク情報としてブレンドすることで、指定した箇所に別の色を割り当てるといったことが可能です。
作成したテクスチャを確認してみましょう。
Preview MaterialでSOPモデルとテクスチャを繋ぐことで、ビューポート上でテクスチャが確認できます。マスクで指定した箇所に正しく色が割り当てられていることがわかると思います。
作成されたテクスチャをよく見ると、UVの境界部分で切れ目が見えてしまっています。
「Rasterize Geometry」にパディング設定が無いためこのような現象が発生してしまうので、最後にこちらを修正したいと思います。
Extrapolate Boundariesの入力にテクスチャとUVアイランドのアルファ情報を繋ぐことで、境界部分のピクセルを外側に拡張して切れ目を無くすことが出来ます。
いかがでしたでしょうか。
Copernicusの基本的なノードの操作に加えて、3Dモデルの情報をテクスチャ作成のために参照する方法が伝わったのではないでしょうか。
今回はテクスチャ作成に焦点を当てましたが、コンポジット等の他用途にも使える多くの機能が用意されています。
今後Copernicusを活用したいという方の手助けになれましたら幸いです。
執筆者:伊藤
スマホゲーム開発会社、映像業界を経てモノリスソフトへ入社。 以来、テクニカルアーティストとして主にHoudini関連の業務を担当。 好きな楽器はギター。