Houdini 17.5

プロパティ

プロパティはレンダリング、シェーディング、ライティング、カメラといったパラメータを柔軟で強力な階層構造でセットアップすることができます。

On this page

概要

プロパティは、カメラのパラメータ、ライトの位置とパラメータ、シェーダ名などのようなオプションをレンダラーに追加することができます。

プロパティのほとんどは特定のレンダラーに設定するものですが、カメラの焦点距離のように全てのレンダラーに共通するプロパティのいくつかは、全てのレンダラーで同じであり、プロパティシステムによって自動的に適切なレンダラーオプションに変換されます。基本的にプロパティシステムは、レンダラーが対応するプロパティのリスト、Houdiniで定義されているプロパティのリスト、それらのプロパティ間のマッピングを維持します。

新しいプロパティを認識するMantraRenderManAlfred、他のレンダードライバノードは、レンダリング時にPythonスクリプトを使ってHoudiniから送られるシーンデータとプロパティをIFD(Mantra用)またはRIB(RenderMan用)に変換します。プロパティの継承とスクリプトを組み合わせることでプロパティシステムが非常に柔軟になります。

継承

プロパティの主な特徴が、 継承 です。いくつかのレベルのプロパティ、特定のレベルのプロパティが一般のレベルのプロパティを上書きします。

継承の順番は以下の通りです:

  • レンダラーデフォルト – プロパティを指定しない場合、レンダラーは、組み込み(設定された)のデフォルト値を使います。

  • 出力ドライバ

  • マテリアル

  • オブジェクト

  • プリミティブ – 以下のプリミティブ単位のプロパティを参照してください。

各レベルでは、そのレベルに固有のプロパティを指定することができます。より低いレベルのプロパティは、より高いレベルで定義したプロパティを継承します。つまり、出力ドライバレベルでデフォルトのシェーダを指定することができます。シェーダを出力ドライバで定義するのは意味がなくても、そのドライバでレンダリングするオブジェクトすべてがデフォルトとして、そのシェーダを引き継ぎます。

より低いレベルのプロパティは、より高いレベルのプロパティを上書きします。例えば、オブジェクトにサーフェスシェーダを設定して、次にプリミティブ単位でそのプロパティを上書きすることができます。

実際には、継承は便宜上Houdiniが自動的にLight Maskとデフォルトシェーダのような共通プロパティを作成した各オブジェクトに追加するという事実があるので少し制限されています。つまり、すべてのオブジェクトは任意のLight Maskやチェーンの上位(例えば、カメラや出力ドライバ)に追加したデフォルトシェーダを上書きします。とはいえ、テクニカルディレクタは、新しいオブジェクトに追加されたデフォルトのプロパティのリストを編集することができます。以下の高度な使い方を参照してください。

プロパティの編集、追加、削除

技術的には、プロパティとはユーザーパラメータのことです。Edit Parameter Interfaceウィンドウを使ってプロパティをノードに追加することができます。

プロパティを追加する"レベル"の違いは上記の継承の章を参照してください。

  1. 編集したいノードを選択します。

  2. パラメータエディタで、ギアメニューを開き、 Edit Rendering Parameters を選択します。

プロパティの追加と削除の詳細は、Edit Parameter Interfaceウィンドウを参照してください。

レンダリングプロパティを一度追加してしまえば、パラメータエディタで値を編集することができます。

レンダリング可能なノード(例えば、オブジェクト)にレンダリングプロパティを追加することができます。また、Properties SHOPを使えば、プロパティを保持して、レンダリング可能なオブジェクトからプロパティを参照することができます。

Houdiniは、新しいオブジェクトに何のデフォルトプロパティ を作成するのか決めます。通常は、デフォルトよりも利用可能なプロパティがたくさんあります。プロパティを追加したり、またはインターフェースを整理するためにプロパティを削除することで、継承を許可したり、メモリを節約することができます。

プリミティブ単位のプロパティ

  • Propertiesシェーダは、任意のプロパティを追加することができます。Houdiniはシェーダのプロパティを、シェーダを使用するオブジェクトまたは プリミティブ に適用します。

  • Material Paletteを使って、プリミティブ毎にシェーダを適用します。Materialノードは古いShaderサーフェスノードを置き換えます。

使い方

プロパティシステムは、便利で強力な使い方がたくさんあります:

  • プリミティブレベルでオブジェクトシェーダを上書きします。

    • プロパティをプリミティブに設定するには、Properties SHOPで必要なプロパティを作成して、影響を与えたいプリミティブに割り当てます。他のプリミティブはオブジェクトのプロパティを継承します。

    • プリミティブ単位のシェーダとLight Mask

    • プリミティブ単位でのディスプレイスメント境界!これは、すごいパフォーマンスの向上が可能です。その理由は、大きく変位するプリミティブ上のディスプレイスメント境界プロパティの値を大きくするだけで済むからです。

  • ポイントインスタンス

    • プロパティをポイントにバインドすることができます。ジオメトリをポイント上にインスタンス化すると、インスタンス化されたジオメトリがポイントのプロパティを継承します。

    • 小惑星フィールドとしてインスタンス化されるScatterポイント。これは、個々のポイントにプロパティを設定してインスタンス化されたジオメトリの見た目を制御することができます。

    • プロシージャルシェーダを使ってジオメトリをポイント上にインスタンス化することができます。これは、ポイント上のプロパティがシェーダのオペレーションを制御することができます。

役立つ情報

  • 実用的なプロパティは最上位レベルで定義してください。プロパティを下位のレベルで設定するほど、何か変更したい時に編集しなければならない箇所が増えます。

高度な使い方

  • opparm HScriptコマンドのフラグを使ってプロパティをバイパス(要は、Houdiniがそのノード上にプロパティがないとみなす)にすることができます。

  • IFD/RIBを生成する役割を持つPythonスクリプトは、$HFS/Houdini/sohoにあります。

  • $HFS/Houdini/soho/parametersにあるダイアログスクリプトは、利用可能なプロパティすべてのリスト、さらには何のプロパティを新しいオブジェクトに追加するのか制御します。

    各ファイルは、parameters/scriptname.user.dsファイルをincludeしています。Houdiniパスにそのようなファイルがあれば、インポートされます。そのファイルは、親のスクリプトの操作を制御するパラメータ定義とdefineシンボルを上書きすることができます。

プロパティ

Houdini 17.5

はじめよう

Houdiniの使い方

  • ジオメトリ

    Houdiniがどのようにジオメトリを表現し、どのように作成・編集するのか説明します。

  • コピーとインスタンス

    コピー(実形状)とインスタンス(読み込みのみ、もしくはレンダリング時に作成される形状)の使い方。

  • アニメーション

    Houdiniでのアニメーションの作成とキーフレームの方法。

  • キャラクタ

    Houdiniでのキャラクタのリグとアニメーションの方法。

  • レンダリング

    3Dシーンから画像とアニメーションをレンダリングする方法。

  • マテリアル

    マテリアルの割り当てとシェーディング用のカスタムマテリアルを作成する方法。

  • コンポジット

    Houdiniのコンポジットネットワークはレンダーなどの画像を作成し処理することができます。

  • デジタルアセット

    デジタルアセットは既存ネットワークから再利用可能なノードとツールを作成することができます。

  • インポートとエクスポート

    Houdiniでのシーン、オブジェクト、他のデータのインポートとエクスポートの方法。

  • TOPsを使ってプロシージャルディペンデンシーグラフ(PDG)を構築する方法

    TOPノードは、データをネットワークに送り込んで"ワークアイテム"に変換し、色々なノードでそれを制御するワークフローを定義します。たいていノードは、ローカルマシンまたはサーバーファーム上で実行可能な外部プロセスを表現しています。

  • MPlayビューア

    Houdiniのスタンドアローン画像ビューアの使い方。

ダイナミクス

  • パーティクル

    パーティクルシミュレーションの作成方法。

  • ダイナミクス

    Houdiniのダイナミクスネットワークを使用したシミュレーションの作成方法。

  • Pyro

    煙、炎、爆発のシミュレーションの方法。

  • 流体

    流体とオーシャンのシミュレーションをセットアップする方法。

  • Grains(粒)

    (砂のような)粒状の材質をシミュレーションする方法。

  • 群衆シミュレーション

    Houdiniでのキャラクタの群衆の作成とシミュレーションの方法。

  • HairとFur

    ヘアーとファーを作成、スタイリング、ダイナミクスを追加する方法。

  • Finite Elements(有限要素)

    変形可能なオブジェクトを作成してシミュレーションする方法。

ノード

  • OBJ - オブジェクトノード

    オブジェクトノードはシーン内で、キャラクタ、ジオメトリオブジェクト、ライト、カメラなどのオブジェクトを表示します。

  • SOP - ジオメトリノード

    ジオメトリノードはGeoオブジェクト内で存在し、ジオメトリを生成します。

  • DOP - ダイナミクスノード

    ダイナミクスノードは物理シミュレーション用に条件とルールを設定します。

  • VOP - シェーダノード

    VOPノードは、ノード同士を接続することで(シェーダなどの)プログラムを定義することができます。そしてHoudiniは、そのノードネットワークを、実行可能なVEXコードにコンパイルします。

  • ROP - レンダーノード

    レンダーノードは、シーンをレンダリングしたり、レンダーディペンデンシーネットワークをセットアップします。

  • CHOP - チャンネルノード

    チャンネルノードは、チャンネルデータの作成、フィルタリング、制御をします。

  • COP2 - コンポジットノード

    コンポジットノードはフィルターを作成し、画像データを操作します。

  • TOP - タスクノード

    TOPノードは、データをネットワークに送り込んで"ワークアイテム"に変換し、色々なノードでそれを制御するワークフローを定義します。たいていノードは、ローカルマシンまたはサーバーファーム上で実行可能な外部プロセスを表現しています。

リファレンス

  • メニュー

    メインメニュー内のそれぞれの項目について説明します。

  • ビューア

    ビューアペインタイプ。

  • ペイン

    色々なペインのオプションを説明します。

  • ウィンドウ

    色々なユーザーインターフェースウィンドウのオプションを説明します。

  • スタンドアローンのユーティリティ

    Houdiniには便利なコマンドラインユーティリティプログラムがたくさんあります。

  • Pythonスクリプト

    PythonとHoudini Object Modelを使用してHoudiniのスクリプトを記述する方法。

  • エクスプレッション関数

    エクスプレッション関数は、パラメータの値を計算することができます。

  • HScriptコマンド

    HScriptはHoudiniのレガシースクリプト言語です。

  • VEX

    VEXはシェーダの記述などのHoudiniのほとんどの場所で使われているハイパフォーマンスなエクスプレッション言語です。

  • プロパティ

    プロパティはレンダリング、シェーディング、ライティング、カメラといったパラメータを柔軟で強力な階層構造でセットアップすることができます。

  • Pythonパネル

    Pythonを使用したカスタムペインタイプのスクリプトによって独自のUIを作成することができます。

  • ギャラリー

    Houdiniに含まれている既製マテリアル。

  • Houdiniパッケージ

    プラグイン、ツール、アドオンが異なる環境変数定義ファイルを複数作成して、それらを組み合わせる方法。

  • 環境変数一覧