On this page |
Parameterノードは、シェーダのパラメータエディタインターフェースでユーザが設定できるパラメータの中の1つの値を表わします。 例えば、Balloonシェーダでは、Balloon Colorのパラメータを定義すると、ユーザがシェーダのカラーを制御できるようになります。
パラメータ
Name
VEX関数宣言、つまりVOPNETを使用するOPタイプの定義、およびVOPタイルの出力の両方での新しいパラメータの名前です。 この名前のパラメータがすでに存在する場合、このオペレータはそれを参照し、 Parameter Type や Parameter Label のような、ほとんどの独自のフィールドを無効にします。
この名前を予備キーワードにしないでください。
Prefix
パラメータ名の先頭に付けるオプションの接頭辞。 この接頭辞は、VEX関数宣言、VOPNETを使用するOPタイプの定義、VOPタイルの出力で、新しいパラメータの最終的な名前を変更します。
Postfix
パラメータ名の後尾に付けるオプションの接尾辞。 この接尾辞は、VEX関数宣言、VOPNETを使用するOPタイプの定義、VOPタイルの出力で、新しいパラメータの最終的な名前を変更します。
Label
読んで意味が理解できるこのパラメータのラベルです。 VOPタイル上の出力にマウスポインタを重ねると、親ノードのパラメータおよびツールチップに表示されます。
Show Label
所有者ノードのパラメータ内のパラメータラベルの表示をトグルします。
Type
新しいパラメータのVEXデータタイプを指定します。 また、OPダイアログでどのようにパラメータを表示するかを指定することができます。 例えば、VEXベクトルは、3つの浮動小数点値またはカラー値として表示することができます。
Default Values
選択したパラメータタイプにより、VEX関数およびこのVOPネットワークを使用するOPタイプでパラメータのデフォルト値を表わします。
Comment
パラメータの簡易説明。コメントは、生成されるコード内のパラメータ宣言の後に含まれます。
Use This Node to Set Parameter Attributes
いくつかのParameter VOPに同じParameter Nameがある場合、その中の1つだけのノードにより、パラメータのアトリビュートが制御されます。 Houdiniはユーザが定義した順序にしたがってすべてのノードを検索し、サブネット内を横断することで、使用するノードを決定します。 どのノードでもこのパラメータがオンになっていない場合、最初に見つかったノードによりパラメータのアトリビュートが設定されます。 このオプションがオンになっているノードが1つまたはそれ以上ある場合、(このオプションがオフになった)ノードが最初に見つかったとしても、このオプションを持つ最初のノードが使用されます。
Use Own Export Context
いくつかのParameter VOPまたはBind VOPが同じ Parameter Name を持っている時、他のノードによって、そのエクスポートコンテキストが決定されます。 しかし、それぞれのParameter VOPを別々のコンテキストにエクスポートしたいことがあります。 そのような場合、このパラメータを設定することで、第一定義ノードと関係なく、このノードをそれ独自のエクスポートコンテキストに指定することができます。
Use Input Value If Parameter Not Bound
Trueの場合、VEX関数パラメータにより、現在のVEXコンテキストのアトリビュート(例えばポイントカラー)にバインドするかどうかがチェックされます。 バインドしない場合、入力値はVEXパラメータに割り当てられます。 Surface VOPコンテキストでは、シェードがかかったジオメトリにVEXパラメータ名を持つアトリビュートがある場合、VEXパラメータがバインドされます。
Has Corresponding Connector
Trueの場合、このParameter VOPで定義されているシェーダノードに入力と出力のコネクタを持つことができる場合に限り、そのシェーダノードパラメータにも同等の入力コネクタを持つようになります。
Export
新しいパラメータを他のコンテキストにエクスポート(書き込みおよび読み出し)ができるかどうかを指定します。 Always または When Input is Connected に設定している場合、このオペレータは入力を取得します。 この入力に接続した値はエクスポートしたパラメータに割り当てられます。 Surfaceネットワークでは、エクスポートしたパラメータによりディープラスターを作成できます。 SOPネットワークでは、エクスポートしたパラメータは新しいジオメトリアトリビュートを作成します。
Never
パラメータをエクスポートしません。
Always
パラメータをエクスポートします。
When Input is Connected
ノードの入力が他のVOPに最終的に接続している場合のみパラメータをエクスポートします。
Export in Context
パラメータのエクスポート先となるコンテキスト。複数のコンテキストを指定する場合は、空白文字を区切り文字として使用します。
Invisible
シェーダのパラメータインターフェースでパラメータを表示しません。 パラメータ自体は存在し、シェーダ文字列の生成に使用されます。
Helpタブ
ユーザーがパラメータエディタ内のオペレータタイプのノードのヘルプボタンをクリックすると、テキストフィールドの内容がヘルプブラウザに表示されます。
このヘルプをHTMLまたは単純だけど強力なwiki形式で記述することで、ネイティブのHoudiniヘルプと同様の見た目のドキュメントを作成することができます。 wiki形式のヘルプの記述の方法を参照してください。
入力
Unbound or Export Value
Export Parameter のトグルが有効の場合、または Use Input Value If Parameter Not Bound が有効でパラメータをバインドしない場合、新しいパラメータに割り当てられる値です。
出力
Parameter
このVEX関数パラメータの値です。
Is Parameter Bound
Trueの場合、新しいパラメータをアトリビュートにバインドします。
Examples
RampParameter Example for Parameter VOP node
このサンプルでは、Ramp Parameter VOPノードを使って、PyroシミュレーションのTemperature(温度)アトリビュートでパーティクルの色を制御する方法を説明しています。
The following examples include this node.
CrowdHeightField Example for Crowd Solver dynamics node
このサンプルでは、Crowd SolverのTerrain AdaptationとBullet SolverのラグドールのコリジョンにHeight Fieldを使用する方法について説明しています。
Stadium Crowd Example Example for Crowd Solver dynamics node
スタジアムのセットアップを説明した群衆サンプル。
このセットアップは、スタジアムの群衆を作成します。 回転するcheer_bboxオブジェクトをエージェントの境界ボックスとして使用しています。 エージェントがそのオブジェクトの中に入ると、座っている状態から応援している状態へ推移します。 数秒後には、応援している群衆がまた座っている状態に戻ります。
Note
アニメーションクリップは、シーンを再生する前にベイクするのに必要です。これは、サンプルをCrowdsシェルフから作成した場合に自動的に行なわれます。 そうでない場合は、シーンファイルを希望の場所に保存し、'/obj/bake_cycles' ROP NetworkのRenderをクリックして、ファイルを書き出します。 それらのファイルのデフォルトのパスは、${HIP}/agentsです。
Tip
群衆の一部だけをもっと高速にプレビューしたいのであれば、/obj/crowdsource/switch_all_subsectionにSwitchノードがあります。 そのスイッチを0に設定すると、すべてのエージェントが表示され、1に設定すると、一部のみが表示されます。
Street Crowd Example Example for Crowd Solver dynamics node
2つのエージェントグループによるストリートのセットアップを説明した群衆サンプル。
このセットアップは、2つのエージェントグループを作成します。 黄色のエージェントがゾンビで、ストリートのパスに沿います。青色のエージェントがぶらついている歩行者で、ゾンビが近づくと走ります。
エージェントの状態を変更するトリガーは、crowd_sim DOPNETでセットアップします。 ゾンビのグループは、信号との距離と信号の色を使用し、信号が赤になると停止状態に変わります。 生存者のグループは、ゾンビが近づくと走行状態に変わります。
Note
アニメーションクリップは、シーンを再生する前にベイクするのに必要です。これは、サンプルをCrowdsシェルフから作成した場合に自動的に行なわれます。 そうでない場合は、シーンファイルを希望の場所に保存し、'/obj/bake_cycles' ROP NetworkのRenderをクリックして、ファイルを書き出します。 それらのファイルのデフォルトのパスは、${HIP}/agentsです。
DensityViscosity Example for FLIP Solver dynamics node
このサンプルでは、ソリッドオブジェクトと作用する異なる密度と粘度を持つ2つの流体について説明しています。
FlipColumn Example for FLIP Solver dynamics node
このサンプルでは、流体の色がStaticオブジェクトとの衝突で混色させる方法を説明しています。
DiffuseSmoke Example for Gas Diffuse dynamics node
このサンプルでは、Gas Diffuse DOPで煙シミュレーションの密度を拡散させる方法を説明しています。
このサンプルでは、RBDオブジェクトで押しつぶされる草をシミュレーションしています。 Furオブジェクトで草の葉を表現し、Wireオブジェクトで動きをシミュレーションしています。 単一のFurオブジェクトで草を表現し、その近辺の草の葉がそれに合わせて動きます。 硬さが異なるオブジェクトを追加すれば、不均一な動きを表現することができます。 "Complex Mode"を有効にすると、2つのオブジェクトを使って草が表現されます。 それぞれのカーブに設定した硬さは、Wireオブジェクトの"Angular Spring Constant"と"Linear Spring Constant"パラメータで調整することができます。
CurveForce Example for POP Curve Force dynamics node
このサンプルでは、POP Curve Forceノードを使って、パーティクルシミュレーションとFLIP流体シミュレーションの流れを制御する方法を説明しています。
2dfluid Example for Smoke Object dynamics node
2D流体をCOPにエクスポートして、それを画像シーケンスファイルとしてディスクに保存し、それをテクスチャマップ、変位マップなどに使う方法を説明しています。
BreakWire Example for Wire Solver dynamics node
このサンプルでは、ポイント単位でワイヤー拘束を壊す方法を説明しています。 Wire Solverで、'pintoanimation'という名前のアトリビュートを持つポイントを拘束するようにセットアップしています。
IndirectLightBox Example for Indirect Light object node
このサンプルでは、間接Diffuse照明用の間接光オブジェクトをセットアップする方法を説明しています。 シーンは、何回も押し出して作成したボックスと、光源とカメラで構成されています。 カメラの範囲に入るすべてのライトが、カメラに到達する前にシーン内で2度以上跳ね返るようにライトを配置しています。 間接光オブジェクトは、100万個のフォトンを生成するように設定されています。 フォトンマップを可視化するには、ライトのレンダリングモードを"Direct Global Photon Map"に変更します。 サンプリング品質を調整するには、Mantra ROPのPixel SamplesまたはRay Samplesを修正します。 このサンプルで使用するレンダリングエンジンは、PBRです。
StickyDonut Example for Sticky object node
このサンプルでは、グリッドサーフェス上を滑るStickyオブジェクトにドーナッツが引っ付いています。
MotionVector Example for Mantra render node
このサンプルでは、後でVelocityのコンポジットをするために、モーションベクトルレイヤーを生成する方法を説明しています。
サンプルを読み込んで、5フレーム分をレンダリングしてください。画像ビューアでは、C
(カラー)からmotion_vector
に切り替えると、その結果を見ることができます。
Volume Rendering - メタボールのボリュームレンダリング Example for Mantra render node
メタボールジオメトリは、Mantraでそのままボリュームとしてレンダリングすることが可能です。メタボールのレンダリングを有効にするには、ジオメトリオブジェクトの Render タブの Geometry サブタブの Metaballs as Volume パラメータをチェックします。メタボール上のPointアトリビュートは、Pointアトリビュートがメタボールサーフェスに対して補間されるのと同様に、シェーディングポジションで補間されます。
以下に、ランダムなポイントカラーアトリビュートを使ったサンプルを載せています:
シャドウ品質とパフォーマンスの制御
シャドウマップの生成には、 Pixel Samples と Shadow Step Size パラメータ(Mantra ROP内)を使って、サーフェスに対して使用するのとまったく同じ方法で、品質とパフォーマンスを制御します。ほとんどのボリュームは、柔らかいDiffuseシャドウを落とすので、ボリュームレンダリングの時は、低解像度のディープシャドウマップを使ってレンダリング時間を短くすることがほとんどです。シャドウマップの 解像度 は、Houdiniのライトの Shadow タブで変更することができます。
このサンプルでは、アニメーションするランプと参照ランプの使い方を説明しています。
Down Hill Lava Flow Example for Material shader node
このファイルでは、傾斜が低い箇所にCrust(地殻)が集まって硬化する溶岩の流れを作成しています。このアニメーションは、シェーダで作成していて、ジオメトリそのものはアニメーションしていません。
Note
Lava(溶岩)マテリアルのパラメータのほとんどを、サーフェスノードで作成したPointアトリビュートで上書きしています。
FirePit Example for Material shader node
Note
このファイルでは、ジオメトリはアニメーションしていません。 テクスチャをアニメーションさせることで、すべてのアニメーションを表現しています。
炎は、UVテクスチャを簡単に適用できるようにグリッドで作成し、Magnet SOPを使ってメタボール周辺を歪ませています。
炎には、黄色または青のFlameテクスチャのどれかを割り当てています。
Flamesのopacity mask wrapをDecalに設定することで、テクスチャがFlameジオメトリの上部で単一ピクセルリングを繰り返して表示するのを回避しています。
また、flameOpacMap.jpg
というマスクファイルを使って、上部にFlameの形状を調整しています。
noise offsetを$T
でY軸を強くアニメーションさせることで、Flameが上昇しているように見せています。これは、Noise jitterもY軸に対して大きくなります。
炭は、変形させたグリッドにCopy Stampを適用した球で表現しています。
Attribute CreateSOPを使えば、SOPレベルでLava(溶岩)のテクスチャのパラメータを上書きしてCopy Stampすれば、$BBY
などのローカル変数を使ってテクスチャをアニメーションさせることができます。
そうすれば、テクスチャのCrust(地殻)とその値だけを使って、炭の上部の形状を修正することができます。
これは、炭の下部で使用するテクスチャのLava(溶岩)のアスペクト比を保持します。熱を発する炭の下部の残り火を表現するために、Lava(溶岩)の強度(Kd
アトリビュート)をスタンプしてアニメーションしています。
StyleDisplacement Example for Material shader node
このサンプルファイルでは、2つの四角形で構成されたオブジェクトに対して、片方の四角形にはバンプマップを、もう片方の四角形にはTrue Displacementが適用されています。 そのオブジェクトが複製されており、2番目のコピーでは、スタイルシートを使用して、それらの2つの四角形に対してマテリアルの割り当てを逆にしています。
Basic RIS Shading Example Example for RIS Shader Network shader node
このファイルでは、私達はシンプルなジオメトリを作成し、そこにBxDFシェーダを割り当てています。 シェーディングネットワークは、BxDFシェーダに接続されたパターンシェーダで構成されています。
VolumeNoiseIso Example for Mantra: VEX Volume Procedural shader node
このサンプルでは、Mantraのボリュームレンダリング機能を使って、CVEXシェーダで定義したアイソサーフェスをレンダリングする方法を説明しています。 noiseフィールドをCVEXシェーダで生成し、それをVEX Volume Proceduralに接続しています。 密度が0のサーフェスを見つけて、法線を表示するSimple Surfaceシェーダを使ってシェーディングすることで、ボリュームをシェーディングします。
LayerVariations Example for Agent Layer geometry node
このサンプルは、いろいろなジオメトリのバリエーションを持ついくつかのレイヤーを作成して、 それらのレイヤーをエージェントにランダムに割り当てる方法を説明しています。
BlendAttr Example for Attribute Composite geometry node
このサンプルでは、Attribute Composite SOPを使ってアトリビュートをブレンドする方法を説明しています。
RandomMaterial Example for Attribute String Edit geometry node
このサンプルでは、Attrib String Edit SOPを使って、文字列Primitiveアトリビュートの修正と、
プリミティブ単位でグリッドのカラーをランダム化する方法を説明しています。
サンプルでは、material_override
Primitiveアトリビュートの文字列値にdiff_int
を修正しています。
FluffyTorus Example for Bake Volume geometry node
このサンプルでは、Bake Volume SOPをセットアップしてFogボリュームのシャドウによるライトフィールドを計算する方法を説明しています。 これによってMantraのConstantボリュームシェーダで適切にレンダリングするためのフィールドが出力されます。
PathAnalysis Example for Find Shortest Path geometry node
これは、FindShortestPathとAttribWrangleによる測定に基づいた"中心軸"パスを優先にする高度なサンプルです。これは、壁への近接を回避するのに役に立ちます。
空間内でもっと簡単に確認するには、Display OptionsダイアログのOptimizationタブにあるCulling > Remove Backfacesをオンにします。 Switchノードを使って別の中心軸測定を可視化してみてください。パスの中心軸を考慮しない同じサンプルを、違いがわかるようにSOPネットワーク内の端に置いています。
このサンプルでは、Fluid Source SOPを使って、新しいボリュームの色を煙のシミュレーションに加えて移流させる方法を説明しています。
Clumping Example for Fur geometry node
Fur SOPは髪の毛のようなカーブをインスタンス化するために使用します。
このケースでは、1つ目のFur SOPでクランプ(束)に適用するカーブを作成しています。 2つ目のFur SOPではクランプ(束)を定義しています。
FurBall Example for Fur geometry node
このサンプルでは、Fur SOPがガイドカーブとスキンジオメトリに応じて髪の毛のようなカーブを作成する方法を説明しています。
FurBallWorkflow Example for Fur geometry node
このサンプルでは、Fur SOPとMantra Fur Procedural SHOPをアニメーションするスキンジオメトリに適用する方法を説明しています。 CVEXシェーダを使って、ジオメトリに割り当てられたアトリビュートに応じて髪の毛の見た目を定義しています。
FurPipelineExample Example for Fur geometry node
このサンプルでは、カスタムシェーダを使ってFur SOPで生成したファーの外観を定義する方法を説明しています。
FurTextureMap Example for Fur geometry node
このサンプルでは、テクスチャマップを使ってファーに色を付ける方法を説明しています。
PaintPoints Example for Paint geometry node
このサンプルでは、領域単位でポイント数を設定して、ジオメトリ上にペイントでポイントを撒き散らす方法を説明しています。
AlphaOmega Example for Points from Volume geometry node
このサンプルでは、Points From Volume SOPでFLIPシミュレーション用のターゲットゴールを作成して、指定したジオメトリを満たすようにします。
UnpackWithStyle Example for Unpack geometry node
このサンプルでは、アンパックと同時にスタイルシート情報を評価することができるUnpack SOPの機能について説明しています。 Nested Packed Primitiveでは、スタイル情報を維持しつつも部分的にアンパックできることを説明しています。 このサンプルでは、Python SOPを使って、プリミティブ単位でスタイルシートから情報を抽出する方法も説明しています。
volumeanalysis_grad Example for Volume Analysis geometry node
このサンプルでは、Volume Analysis SOPでボリュームの勾配を計算し、その勾配からジオメトリのポイントを変位する方法を説明しています。
barycenter Example for Volume Reduce geometry node
このサンプルでは、Volume Reduce SOPで3Dオブジェクトの重心を計算する方法を説明しています。
volumesurface_explicitgrade Example for Volume Surface geometry node
このサンプルでは、Volume Surface SOPで、三角形のサイズを指定するための他のボリュームを使って、SDFをサーフェス化する方法を説明しています。
volumesurface_simple Example for Volume Surface geometry node
このサンプルでは、Volume Surface SOPで順応性のあるトライアングルサイズを使ってSDFをサーフェス化する方法を説明しています。
ImportVolumes Example for Volume VOP geometry node
このサンプルでは、複数のボリュームをVolume VOP SOPに取り込む方法を説明しています。
GroupPainted Example for Add Point to Group VOP node
このサンプルでは、アトリビュートをペイントする方法と、Add Point To Group VOPとCreate Point Group VOPを使って、 そのアトリビュートからポイントグループを構築する方法を説明しています。
VOPpointgroup Example for Add Point to Group VOP node
1つおきにポイントを新しいグループに追加するVOP SOPのサンプルを説明しています。
ポイントグループのみがVOPでサポートされています。
ここで使用しているVOPは、Add Point To Group VOP、Create Point Group VOP、Point In Group VOPです。
WornMetal Example for Curvature VOP node
このサンプルでは、Curvature VOPをシェーダネットワークに追加して、マテリアルに剥げやアンティーク調の見た目を追加する方法を説明しています。
このサンプルでは、If-Thenサブネットの外側からの"true"値、さらに外側からの"false"値も持つIf-Then Block VOPの使い方を説明しています。
Condition VOPは、"t" Global Variableに基づいて使われます。 "t"が0.5未満なら、If-Thenは、"false"になり、 "t"が0.5以上なら、"true"になります。
条件の結果がTrueなら、青いカラー、Falseなら赤いカラーが使われます。
このサンプルでは、If-Thenサブネットの外側からの"true"値、内側からの"false"値を持つIf-Then Block VOPの使い方を説明しています。
条件の結果がTrueなら、青いカラー、Falseなら赤いカラーが使われます。
このサンプルでは、If-Thenサブネットの外側からの"true"値、さらに外側からの"false"値も持つIf-Then Block VOPの使い方を説明しています。
条件の結果がTrueなら、青いカラー、Falseなら赤いカラーが使われます。
CrinkleSphere Example for Inline Code VOP node
このサンプルでは、Inline Codeノードを使って、VEXコードを直接シェーダやオペレータ定義に記述する方法を説明しています。
RampParameter Example for Parameter VOP node
このサンプルでは、Ramp Parameter VOPノードを使って、PyroシミュレーションのTemperature(温度)アトリビュートでパーティクルの色を制御する方法を説明しています。
PointCloudIterateAverage Example for Point Cloud Iterate VOP node
このサンプルでは、pciterate VOPを使ってpcopenで返されたポイントを平均化する方法を説明しています。 最初に、ZX平面上の円の内側を1に初期化した浮動小数点"check"チャンネルでポイントクラウドを生成します。 そして、pciterate VOPを使ってループでシェーダ内にポイントをフィルタリングして、"check"チャンネルの値を平均化します。 このサンプルで使われているポイントクラウドは、points.pcとしてアセット内に保存しています。
PointCloudLookup Example for Point Cloud Iterate VOP node
このサンプルでは、pcfilterとpciterateを使って、ボリュームに対してポイントクラウド検索を実行する方法を説明しています。 また、ループの方法と検索で返された値を取り込む方法も説明しています。
RaytraceVopShader Example for Ray Trace VOP node
このサンプルでは、VOP VEXネットワークを使って、単純なレイトレースシェーダについて説明しています。 シェーダプロパティを修正するには、マテリアル内にPropertiesシェーダを作成して、Outputシェーダノードに接続します。 そして、レンダリングパラメータをPropertiesノードに追加します。 例えば、反射の数を制御するには、reflect limitパラメータを追加します。
See also |