初めて触るHoudini Copernicus

INDEX

はじめに

こんにちは。モノリスソフト テクニカルアーティストの伊藤です。

今回はHoudini20.5から新しく追加されたCopernicusを使って、プロシージャルにテクスチャを作成してみようと思います。

CopernicusとはHoudiniによる画像処理フレームワークで、ノードベースで画像を加工することが出来ます。

今回は基本的なプロシージャルテクスチャの作例から、Houdiniならではの別コンテキストの情報を用いた作成を通して基本的な操作方法を学んでいきたいと思います。

レンガテクスチャの作成

まずは、他のプロシージャルテクスチャ作成ツールでもよく作るようなレンガテクスチャを作成します。

タイリングのパターン作成

Substance 3DではTile Generatorなどを使用してパターンのある模様やタイリングを表現することが出来ますが、HoudiniではTile Patternに同様の機能が用意されています。

tech_42_02.jpgのサムネイル画像

tech_42_03.jpgのサムネイル画像

パターンのプリセット

このノードには「id」と「uv」も出力されていて、「id」はタイル毎に固有色が、「uv」はuv空間が割り当てられています。

tech_42_04.jpg

id

tech_42_05.jpg

uv

これらの出力は、個々のタイルにバリエーションを加えるために非常に便利です。

形状にノイズを加える

Fractal Noiseでノイズのパターンを作成できます。

tech_42_06.jpg

Slope DirectionDistortを使用して、ノイズの方向に沿った歪みを作成することが出来ます。

tech_42_07.jpg

タイル毎のカラーバリエーションの作成

Random RGBの「seed」入力に「Tile Pattern」の「id」を繋ぐことで、タイル毎に固有色を割り当てることが出来ます。

tech_42_08.jpg

 グラデーションにはRampを使っていて、「Ramp」を右クリック → 「Sample Screen Colors」で写真などから色をピックすることが出来ます。

tech_42_09.jpgのサムネイル画像

もう少し情報量を足してみる

UV Transformの「seed」入力に「Tile Pattern」の「id」を、「uv」入力に「uv」を繋ぐことでタイル毎にUV座標をスケールしたり回転することが出来ます。

tech_42_10.jpg

MonoでUVの赤色情報だけを抜き出し、それを単色カラーとブレンドすることでタイル毎に異なるグラデーションが追加されました。

tech_42_11.jpg

Monoでuvの赤色のみを取得

tech_42_12.jpg

グラデーション追加

UV Sampleの「uv」入力に「UV Transform」でランダマイズされたUVを指定することで、タイル毎に異なるノイズを割り当てることが可能です。

tech_42_13.jpg

 最後に、作成したノイズとカラーをブレンドして完成です。

tech_42_14.jpg

SOPのアトリビュートを使用したテクスチャ作成

続いて、2つの作例を通してSOPからの情報をテクスチャに持ち込む方法を学んでいきたいと思います。

SOPのポイントを使った画像のばらまき

SOP  → 事前準備

uv展開したモデルに「polyframe」で法線方向と接線方向にアトリビュートを作成します。

tech_42_15.jpg

黄色:法線 水色:接線方向

「scatter」でポイントを散布します。

tech_42_16.jpg

「Attribute Randomize」で「pscale」アトリビュートを持たせておきます。これでSOP側の準備は完了です。

tech_42_17.jpg

COP → SOPの参照

SOP Importを使用してSOPで作成したポイントをCopernicus側に呼び出します。

tech_42_18.jpg

Rasterize Setup を使用してSOPモデルをUV空間上に座標変換します。

tech_42_19.jpg

Geometry SpreadSheetを見ると、先ほどSOP側で指定したアトリビュートを持っていることがわかると思います。

tech_42_20.jpgのサムネイル画像

SOPのアトリビュートを基に画像配置

Stamp Pointsの「stamp0」入力に繋いだ画像を、SOPで作成した方向とスケールに沿って配置することが出来ます。

tech_42_21.jpg

ポイント毎のidやuv情報も使って、バリエーションのあるテクスチャを作成できました。

tech_42_22.jpg

ジオメトリのアトリビュートによる色の塗分け

SOP  → 事前準備

tech_42_23.jpgのサムネイル画像

「Attribute Paint」でアトリビュートを作成します。今回は「__mask」アトリビュートを作成しました。

tech_42_24.jpgのサムネイル画像

COPs → SOPの参照

SOP ImportノードでSOPで作成したモデルをCopernicus側に呼び出します。

tech_42_25.jpg

Rasterize Setupを使用してSOPモデルをUV空間上に座標変換します。

tech_42_26.jpg

Rasterize Geometryを使用して「__mask」アトリビュートを出力先に追加します。事前にSOP側でアトリビュートを用意していれば、このノードを使うことで参照させることが可能です。

tech_42_27.jpg

tech_42_28.jpgのサムネイル画像

「__mask」アトリビュート

SOPのアトリビュートを基に色の塗分け

「__mask」アトリビュートをマスク情報としてブレンドすることで、指定した箇所に別の色を割り当てるといったことが可能です。

tech_42_29.jpgのサムネイル画像

作成したテクスチャを確認してみましょう。

Preview MaterialでSOPモデルとテクスチャを繋ぐことで、ビューポート上でテクスチャが確認できます。マスクで指定した箇所に正しく色が割り当てられていることがわかると思います。

tech_42_30.jpg

UV境界部分のパディング

作成されたテクスチャをよく見ると、UVの境界部分で切れ目が見えてしまっています。

tech_42_31.jpgのサムネイル画像

「Rasterize Geometry」にパディング設定が無いためこのような現象が発生してしまうので、最後にこちらを修正したいと思います。

Extrapolate Boundariesの入力にテクスチャとUVアイランドのアルファ情報を繋ぐことで、境界部分のピクセルを外側に拡張して切れ目を無くすことが出来ます。

tech_42_32.jpg

tech_42_33.jpgのサムネイル画像

UV境界部分の切れ目修正

まとめ

いかがでしたでしょうか。

Copernicusの基本的なノードの操作に加えて、3Dモデルの情報をテクスチャ作成のために参照する方法が伝わったのではないでしょうか。

今回はテクスチャ作成に焦点を当てましたが、コンポジット等の他用途にも使える多くの機能が用意されています。

今後Copernicusを活用したいという方の手助けになれましたら幸いです。

参考

Copernicus  | SideFX

執筆者:伊藤

スマホゲーム開発会社、映像業界を経てモノリスソフトへ入社。 以来、テクニカルアーティストとして主にHoudini関連の業務を担当。 好きな楽器はギター。

ABOUT

モノリスソフト開発スタッフが日々取り組んでいる技術研究やノウハウをご紹介

RECRUIT採用情報