HOME

Maneki Pipeline

ゲーム開発のためのプロシージャル

Houdini21のCOP3を確認する

新機能を試す

この記事について

Houdini21で正式にリリースされたCopernicusの機能を以下のページを参考にどういった機能が追加されたかの確認を行ったものです。

  • Houdiniドキュメント| Houdini21のCOP更新内容
    https://www.sidefx.com/docs/houdini/news/21/copernicus.html
    ※まだ日本語ドキュメントはありません。
    (日本語ドキュメントはリリース後にSideFXのスタッフが毎回頑張って翻訳してくれているらしいです)

当記事はHoudini21での更新すべてを網羅しているわけではなく個人的に覚えておくと便利そうだなと思ったものとなっています。
(例えばSlapComp周りの更新などはゲーム用途に弱いため僕の方では取りまとめていません)

環境

Houdini Indie 21.0.440

ケーブル操作

複数のアトリビュートをパックした状態をCOPの接続として利用することができる。

ケーブルの利用

cable入力は歯車マークからAdd Input Override Portを実行すると表示できる。

ケーブル入力ポートを表示する方法

ケーブル接続は名前で管理され、例えば以下のようにBakeTextureの目相が一致する出力をすべてPreviewMaterialにケーブルを介して接続することができる

ケーブル入力を行うと名前で自動的に紐づけが行われる

※すでにケーブル入力されているアトリビュートに接続することも可能で、その場合アトリビュートの接続が優先される

補足として、ケーブル入力に該当するアトリビュートが個別に接続されている場合、個別の接続が優先される

ケーブルを明示的に作成することも可能でCablePack、CableUnpackを使うことでケーブルの状態が作成できる。

CableはCablePack、CableUnpackで作成、分解する

ノードごとに異なるケーブルの関連性

右上のケーブル出力はノードによって持っているもの、持っていないものがある。

また、ケーブル状態のアトリビュートは右上、左上の入出力に限らず、ノードによっては出力として持っている場合もある。
PreviewMaterialNodeにはMaterialという出力があるが、ノードの中を見るとこれもpackされたアトリビュートであることが判る。

PreviewMaterialなど、ケーブル状態の出力を持つノードもある(画像はPreviewMaterialノードの中身を確認した状態)

テクスチャベイク / マッピング

正式リリースされたCOPにテクスチャベイクが追加された。非常に使いやすく高速。
またCOPのフロー構成が洗練されているため特殊な効果を含めたベイクなども可能で非常に素晴らしい仕組みに感じる。

テクスチャベイクのセットアップ

ベイク処理を行うノードはBake Geopmetry Textureノードだが、Bake Setupを押すとベイクを行うためのベースとなる構成を作成してくれる

タブメニューBakeSetupを呼ぶとベイク用のプリセット構成が作られる

TangentNormalをベイクするならLowMeshにNormalとUVを持たせてHighメッシュを準備すればベイクできる。

SOP ImportからSOPの出力を作成すればベイクできる。TangentNormalであればLowメッシュのUVとNormalが必要

レイトレース

レイトレース用のノードが追加。

…が、試してみてもちょっと使い方が判らなかったので自分はサンプル待ちです

Triplanar

位置準拠でシームレスなブレンドを行ってくれるTriplanarも追加された。
継ぎ目が目立ちづらい六角タイル形式の敷き詰めも追加されている。

HeightFieldなどの位置情報、ワールド法線を投影して利用できる

メッシュの位置、Normalを画像入力として利用する
ジオメトリの位置に合わせたタイリングをしてくれる

余談ですがこれのテストをしてみていた時にCableの使い勝手に一番感動しました。
以下のようにCableにパックしてTriplanarに入力すると含まれるテクスチャすべてに同様のTriplannerの効果を反映させることのできます

余談:ケーブルをTriplanarに入力するとケーブルに含まれる画像すべてにTriplanarが反映される(BaseColorとNormalとか)

Scatter

CopにもScatterが追加された

公開されている公式のサンプル動画ではランダム感のある傷のエフェクトを作成していた

HeightをDensityのソースとしてScatter

ROPノードの入力サポート

ノード接続から画像出力ができるようになったのでよりパイプラインとしての構成がつくりやすくなった

ROP Image OutputでRendering処理として入力した画像をテクスチャ出力できる
参考:H20.5の頃のROP Image Outputは入力が無かった

AOV出力について

なお、出力されるデータは「Add AOVs From Input」ボタンを押すとケーブルに含まれる値がAOVとして出力できるようなのだが、マルチレイヤーに対応したテクスチャとして出力するための設定であり、各チャンネルを個別のテクスチャに出力することは出来なそうだった。
(この辺りは過去に触ったLOPのRenderVarの挙動と同じように見えました。BC、NMといったテクスチャを個別に出したければ現状ROPを複数作成することになりそうです

AOVとして持たせて出力するとマルチレイヤーをサポートしたデータ形式なら複数のレイヤーとして出力できていることが確認できる

COP間Fetch

別のCOPで作成したマップをFetchできるノードが追加された
例えば別のCOPで作成したマテリアルをレンダリング用のCOPに入力することが可能になる

試しにMaterialPreviewのMaterial出力をFetch対象にする
Cop Fetchを使うと別のCopでMaterialの流用ができた

VDBサポート

int、Float、Vectorg型を含むVDBサポート。
VDBを2次元画像にサンプリングするためのノードが追加された。

HoudiniからCOPにDensity VDBをImportし、

VDBをCOPに入力

Geometry To VDBを使ってVDBを取り出し、RasterizeVolumeで画像化できる

VDBのDensityをサンプリングしてテクスチャ化できる

2Dシミュレーション

時間軸で連続して作用するような処理ブロックの機能が追加された。
併せて処理ブロックを使った機能ノードやシミュレーションプリセットが追加されている。

FlowSolver

処理をブロック化してフレームごとに再帰的に動作させる仕組みが追加された

FlowSolverをテクスチャに接続(下が後述のVelocity、上が後述のTemperatureとTransform2D)

FlowSolverはそのための調整をデフォルトの機能として持っており、速度による影響や熱による影響の効果を連続的に画像に対して与えられる。

Velocityでフレーム変化によるFlowSolver変形

また、Block内にノードを追加することでそのノードの影響もフレーム単位で画像に反映できる
(FlowBlockというよりはもともとのBlockの機能)

TemperatureとTransform2Dの回転でフレーム変化によるFlowSolver変形

COP Pyro

COPでシミュレーション可能なPyroシステムが追加された

軽量な平面上でのシミュレーションとして動作する。
連番アニメーションが作成できるので特にゲームでは使い道がありそう

PyroConfigueFireBallでCop上でのPyroシム

タブを押したときに表示される Pyro Configue ○○ 系がCOP Pyroのプリセットになっている

PyroConfigue○○系がCops用Pyroシムプリセット

その他、新しいノイズパターンや効果

reaction diffusion

reaction diffusion変形

クラドニパターン

ドキュメントには「タイルなどに使えるかも」との記述。

クラドニパターン

フェイザーノイズパターン

ドキュメントには「木目などに使えるかも」との記述。

ピクセル化

ピクセル化エフェクトフィルタ

いや、本当に更新多いですね。記事の作成が大変でした。

特にケーブル回り、ベイク周りは実用を考えた際に非常に有益に感じます。
ただのテクスチャ作成ツールではなくベイクパイプラインなどを見据えた機能が素晴らしいと感じます。

fish_ball

プロシージャル魚類