Houdini 20.5 ネットワークとパラメータ

ランプパラメータ

ランプパラメータを使ったテクニックの説明。

On this page

概要

HoudiniはRGBカラーランプと浮動小数点(スプライン)ランプをサポートしています。 カラーランプは、長さに沿ってカラーを徐々に変化させ、浮動小数点ランプは曲線を描きながら値を変化させていきます。

Tip

カーブを滑らかにするには、制御点を均等に配置してください。

Interpolation for all points

以下のランプは、すべてのポイントに同じ補間タイプを設定し、ポイント間でHoudiniがどのように値を埋めるのかを制御します。

Constant

一定 カーブの形状のランプを作成します。

Linear

直線形状のランプを作成します。

Catmull-Rom

Catmull-Rom カーブの形状のランプを作成します。

Monotone Cubic

単調3次 カーブの形状のランプを作成します。

Bezier

Bezier カーブの形状のランプを作成します。

B-spline

B-スプライン カーブの形状のランプを作成します。

Hermite

Hermite カーブの形状のランプを作成します。 Hermiteランプでは、カーブは 奇数 の制御点を通過し、 偶数 のポイントは前のポイントの接線を制御します。

Reverse Domain

ランプ内のポイントを横軸で反転させます。

Complement Ramp

ランプ内のポイントを縦軸で反転させます。

Presets

ランプに適用可能なプリセット設定。

Grayscale View

浮動小数点ランプにグレースケールの背景を表示します。 この背景のカラーは、そのポイントにおけるランプの値に一致します。 このモードでは、カラーエディタを開いて、そのランプのポイントの値を編集することができます(ランプパラメータの使い方を参照)。

Point No.

選択されているポイントの番号。

Position

選択されているポイントのランプ内の位置。

Color

選択されているポイントのカラー。 カラーランプのカラーエディタの開き方に関する詳細は、ランプパラメータの使い方を参照してください。

Value

選択されているポイントの値。

Interpolation

ランプの補間はポイント単位で設定します。 これは、選択されているポイントから次のポイントまでの間でHoudiniがどのように値を埋めるのかを制御します。 この方法の代わりに、すべてのポイントに対して同じ補間タイプを設定することを推奨します( Interpolation for all points を参照)。

ランプパラメータの使い方

To...Do this

既存のポイントを選択する

ランプの下にある選択したいポイントの矢印のハンドルをクリックします。

Tip

浮動小数点ランプの場合、ランプ内のをクリックすることでもポイントを選択することができます。

または

Point No. パラメータに、選択したいポイントの番号を設定します。

ポイントを作成する

新しいポイントを作成したいランプ領域をクリックします。

または

Add Pointボタンをクリックします。 現在選択されているポイントの後にポイントが追加されます。

ポイントを削除する

ポイントを選択してから、 Remove Pointボタンをクリックします。

ポイントの位置を変更する

ポイントを選択してから、 Position パラメータに位置を設定します。

または

矢印のポイントハンドルを左または右にドラッグしてそのポイントを移動させます。

Tip

浮動小数点ランプの場合、ランプ内でもを左または右にドラッグすることができます。

浮動小数点ランプ内のポイントの値を変更する

ポイントを選択してから、 Value パラメータに値を設定します。

または

を上または下にドラッグしてそのポイントの値を調整します。

ランプのカラーエディタを開く

  • カラーランプのカラーエディタを開くには、ランプの下にある矢印のポイントハンドルをダブルクリックするか、または、 Color パラメータのカラースウォッチをクリックします。 カラーエディタの詳細は、カラーエディタを参照してください。

  • 浮動小数点ランプのカラーエディタを開くには、以下の操作をします:

    1. 浮動小数点ランプの右側にある Grayscale Viewボタンを有効にします。

    2. ランプのポイントのどれかの矢印のカラースウォッチをダブルクリックします。 単調カラーエディタの詳細は、単調カラーエディタを参照してください。

パラメータを非表示/表示する

  • パラメータを非表示にし、ランプのみを表示するには、 Hide Controlsボタンをクリックします。

  • ランプ下のパラメータを表示するには、 Show Controlsボタンをクリックします。

浮動小数点ランプを最大化/最小化する

  • 浮動小数点ランプを最大化するには、 Maximize Rampボタンをクリックします。

  • 浮動小数点ランプを最小化するには、 Minimize Rampボタンをクリックします。

ランプパラメータの読み込み

エクスプレッション言語

エクスプレッションでランプパラメータの値を読むには、chrampchramptchrampf関数を使います。

現在の時間でのランプの値を読むには:

chramp(‹ramp_path›、‹position›、‹component_index›)

ramp_path›には読みたいランプパラメータのパス、‹position›は読みたいランプの位置(0から1で指定)。カラーランプでは、‹component_index›も指定する必要があります。赤 = 0、緑 = 1、青 = 2を意味します。スプラインランプでは、3つ目の引数には0を使います。

chramptは指定した時間でのランプの値を読みます。chrampfは指定したフレームでのランプの値を読みます。

HOM

ランプパラメータの値を読むには:

  1. パラメータを意味するhou.Parmオブジェクトの参照を取得します。

  2. オブジェクトのtupleメソッドをコールして、hou.ParmTupleの値を取得します。

  3. ParmTupleオブジェクトでevalevalAsRampevalAsRampAtFrameのどれかをコールして、hou.Rampオブジェクトを取得します。

ParmオブジェクトのparmTemplateメソッドをコールして、パラメータに関するメタデータ(つまりデフォルト値)を含んだhou.RampParmTemplateオブジェクトを取得することもできます。

# ランプパラメータの参照を取得します。
# これは、他のパラメータと同様にhou.Parmオブジェクトです。

>>> r = hou.parm("/obj/my_character/gradient")
>>> r
<hou.Parm gradient in /obj/my_character>

# このパラメータの"parmタプル"を取得して、
# 現在の時間のparmタプルを評価します。
# 浮動小数点のパラメータを評価すると、浮動小数点値を返します。
# テキストボックスを評価すると、文字列を返します。
# ランプパラメータを評価すると、hou.Rampオブジェクトを返します。

>>> ramp = r.eval()
>>> ramp
<hou.Ramp is_color=True num_keys=2 ... >

# lookup()メソッドを使ってランプから値を取得することができます。
# これはランプのタイプ次第でタプルかfloatを返します。

>>> ramp.isColor()
True

>>> ramp.lookup(0.5)
(0.1、0.5、0.8)

VEX

以下のVEXシェーダのランプパラメータを参照してください。

ランプパラメータをノードに追加

カラーと浮動小数点のランプパラメータタイプは、デジタルアセット定義を編集する時、または単一ノードのパラメータインターフェースを直接編集する時にRamp (Color)Ramp (Float)として、利用可能パラメータタイプリストに表示されます。

デジタルアセットの編集の方法またはノードのパラメータインターフェースの編集の方法を参照してください。

VEXシェーダのランプパラメータ

VOPネットワーク内

VOPネットワーク内のシェーダにランプパラメータを追加するには:

  1. Ramp Parameterノードを作成します。

  2. パラメータエディタで、 Ramp Type (RGB ColorランプまたはSplineランプ)を選択します。

  3. floatタイプの出力をRamp Parameterノードの入力に接続します。入力は、出力するランプの位置を制御します。

    例えば、Global Variablesノードを作成して、そのs出力をランプの入力に接続すると、Ramp Parameterノードの出力はサーフェスのS方向に沿って変化します。

  4. Ramp Parameterノードの出力を、他のノードのColorまたはVectorの入力(RGBランプ用)またはFloat入力(Splineランプ用)に接続します。

VEXコード内

ramp_rgbとramp_fltのpragmaは3つの引数をシェーダ関数に渡すUIにランプパラメータを作成します。

  • 各キー間の補間方法を意味する文字列の配列。

  • ランプ沿いの各キーの位置を意味する浮動小数点の配列。

  • 各キーの値を意味するvector(RGBランプ用)またはfloat(Splineランプ用)の配列。

VOPで生成したコードを見ると、"solvelinear"キーワードとインデックス(以下のコードでは0.5)を設定したsplineを使ってキーを線形化し、 配列と“均一化した”インデックスをspline関数に渡しています。

(あなたの独自のコードで、もし均一なキーポジションを保証しているなら、""をpragmaへのキーポジション引数として使うことができます。そして、“solvelinear”の工程を飛ばして、インデックスを外部のsplineコールへの2番目の引数として使います)

#pragma ramp_rgb ramp2 ramp2_the_basis_strings ramp2_the_key_positions ramp2_the_key_values
#pragma label ramp2 Gradient
#pragma parmtag ramp2 rampbasisdefault catmull-rom

surface
vopsurface1(string ramp2_the_basis_strings[]={"linear","linear"}; float ramp2_the_key_positions[]={0,1}; vector ramp2_the_key_values[]={{ 0, 0, 0 },{ 1, 1, 1 }})
{
    vector      ramp21;

    // rampparm1で生成されたコード
    ramp21 = spline(ramp2_the_basis_strings, spline("solvelinear", 0.5, ramp2_the_key_positions), ramp2_the_key_values);
...

ネットワークとパラメータ

ネットワーク

パラメータの編集

次のステップ

エクスプレッション

導師レベル

リファレンス