On this page |
概要 ¶
HoudiniはRGBカラーランプと浮動小数点(スプライン)ランプをサポートしています。 カラーランプは、長さに沿ってカラーを徐々に変化させ、浮動小数点ランプは曲線を描きながら値を変化させていきます。
Tip
カーブを滑らかにするには、制御点を均等に配置してください。
Interpolation for all points
以下のランプは、すべてのポイントに同じ補間タイプを設定し、ポイント間でHoudiniがどのように値を埋めるのかを制御します。
Reverse Domain
ランプ内のポイントを横軸で反転させます。
Complement Ramp
ランプ内のポイントを縦軸で反転させます。
Presets
ランプに適用可能なプリセット設定。
Grayscale View
浮動小数点ランプにグレースケールの背景を表示します。 この背景のカラーは、そのポイントにおけるランプの値に一致します。 このモードでは、カラーエディタを開いて、そのランプのポイントの値を編集することができます(ランプパラメータの使い方を参照)。
Point No.
選択されているポイントの番号。
Position
選択されているポイントのランプ内の位置。
Color
選択されているポイントのカラー。 カラーランプのカラーエディタの開き方に関する詳細は、ランプパラメータの使い方を参照してください。
Value
選択されているポイントの値。
Interpolation
ランプの補間はポイント単位で設定します。 これは、選択されているポイントから次のポイントまでの間でHoudiniがどのように値を埋めるのかを制御します。 この方法の代わりに、すべてのポイントに対して同じ補間タイプを設定することを推奨します( Interpolation for all points を参照)。
ランプパラメータの使い方 ¶
To... | Do this |
---|---|
既存のポイントを選択する |
ランプの下にある選択したいポイントの矢印のハンドルをクリックします。 Tip 浮動小数点ランプの場合、ランプ内の または
Point No. パラメータに、選択したいポイントの番号を設定します。 |
ポイントを作成する |
新しいポイントを作成したいランプ領域をクリックします。 または
|
ポイントを削除する |
ポイントを選択してから、 |
ポイントの位置を変更する |
ポイントを選択してから、 Position パラメータに位置を設定します。 または
矢印のポイントハンドルを左または右にドラッグしてそのポイントを移動させます。 Tip 浮動小数点ランプの場合、ランプ内でも |
浮動小数点ランプ内のポイントの値を変更する |
ポイントを選択してから、 Value パラメータに値を設定します。 または
|
ランプのカラーエディタを開く |
|
パラメータを非表示/表示する |
|
浮動小数点ランプを最大化/最小化する |
|
ランプパラメータの読み込み ¶
エクスプレッション言語
エクスプレッションでランプパラメータの値を読むには、chramp、chrampt、chrampf関数を使います。
現在の時間でのランプの値を読むには:
chramp(‹ramp_path›、‹position›、‹component_index›)
‹ramp_path›には読みたいランプパラメータのパス、‹position›は読みたいランプの位置(0から1で指定)。カラーランプでは、‹component_index›も指定する必要があります。赤 = 0
、緑 = 1
、青 = 2
を意味します。スプラインランプでは、3つ目の引数には0
を使います。
chrampt
は指定した時間でのランプの値を読みます。chrampf
は指定したフレームでのランプの値を読みます。
HOM
ランプパラメータの値を読むには:
-
パラメータを意味するhou.Parmオブジェクトの参照を取得します。
-
オブジェクトのtupleメソッドをコールして、hou.ParmTupleの値を取得します。
-
ParmTuple
オブジェクトでeval、evalAsRamp、evalAsRampAtFrameのどれかをコールして、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ネットワーク内のシェーダにランプパラメータを追加するには:
-
Ramp Parameterノードを作成します。
-
パラメータエディタで、 Ramp Type (RGB ColorランプまたはSplineランプ)を選択します。
-
floatタイプの出力をRamp Parameterノードの入力に接続します。入力は、出力するランプの位置を制御します。
例えば、
Global Variablesノードを作成して、その
s
出力をランプの入力に接続すると、Ramp Parameterノードの出力はサーフェスのS方向に沿って変化します。 -
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); ...