On this page |
パラメータ
Primitive Type
作成するジオメトリタイプ。
Pointsの場合では、ジオメトリは作成されません。その代わりに、ジオメトリを作成した時と同じ順番で自由に浮いた状態のポイントが作成されます。
Origin
直線の始点。
Direction
直線の方向。
Length
直線の長さ。
Points
直線を構成するポイントの数。
Order
NURBS/Bezierカーブの階数(次数+1)。
Examples
LineDirection Example for Line geometry node
このサンプルでは、Line SOPを使ってラインを生成する方法を説明しています。
The following examples include this node.
BlendPoseBasic Example for Blend Pose channel node
このサンプルでは、BlendPose CHOPでランダムなトラッカーポイントポジションを使ってジオメトリを変形させる方法を説明しています。
DynamicLights Example for Dynamics channel node
このサンプルでは、Dynamics CHOPを使って、DOPシミュレーションからインパクトデータを抽出して、そのデータを修正して、シーンのライトを制御する方法を説明しています。
ExpressionLine Example for Expression channel node
このサンプルでは、Expression CHOPでエクスプレッションを使う方法を説明しています。
HoldLight Example for Hold channel node
このサンプルでは、Hold CHOPとDynamics CHOPを使って、新しいインパクトが発生するまで、DOPシミュレーションのインパクトの位置にライトを固定する方法を説明しています。
Keyboard Example for MIDI Out channel node
このサンプルでは、MIDI Out CHOPを使ってMIDIデータを書き出し、MIDI In CHOPを使ってMIDIデータを読み込む方法を説明しています。 書き出したMIDIは、ジオメトリベースになっていて、読み込んだMIDIは他のジオメトリを制御しています。
ApplyRelationship Example for Apply Relationship dynamics node
このサンプルでは、Apply Relationship DOPを使って、Pin拘束をワイヤーオブジェクトに追加する方法を説明しています。
BridgeCollapse Example for Apply Relationship dynamics node
このサンプルでは、Apply Relationship DOPを使って、自動的に拘束を伝搬させて、崩壊する橋のRBDシミュレーションを作成する方法を説明しています。
AngularMotorDenting Example for Constraint Network dynamics node
このサンプルでは、Angular Motorをピン拘束と一緒に使用して、凹みの効果を作成する方法を説明しています。
Chains Example for Constraint Network dynamics node
このサンプルでは、Pin拘束でオブジェクトをチェーン状に接続する方法を説明しています。
Hinges Example for Constraint Network dynamics node
このサンプルでは、ピン拘束でオブジェクト間にヒンジを作成する方法を説明しています。
PointAnchors Example for Constraint Network dynamics node
このサンプルでは、ポイントアンカーを使った基本的なConstraint Networkの作成方法を説明しています。
AnimatedStaticAgents Example for Crowd Solver dynamics node
このサンプルでは、Crowd Solver向けに"アニメーションする静的な"エージェントをセットアップする方法を説明しています。 このようなエージェントは、SOPレベルのアニメーションに追従し、これを障害物として使用したり、ラグドールに変換することができます。
FollowTerrain Example for Crowd Solver dynamics node
このサンプルでは、地形の法線方向にエージェントが向く群衆シミュレーションのセットアップの方法について説明しています。
PartialRagdolls Example for Crowd Solver dynamics node
このサンプルでは、部分ラグドールのセットアップ方法について説明しています。エージェントのジョイントのサブセットがBullet Solverによってアクティブオブジェクトとしてシミュレーションされ、残りのジョイントがアニメーションします。
PinnedRagdolls Example for Crowd Solver dynamics node
このサンプルでは、ラグドールを外部オブジェクトに取り付ける拘束のセットアップ方法と、モーターを使ってアニメーションクリップを持つアクティブラグドールを駆動させる方法について説明しています。
Formation Crowd Example Example for Crowd Solver dynamics node
変化する編成のセットアップを説明した群衆サンプル
このセットアップではエージェントの部隊を作成しています。ここでは2つのパスが作成されています。 部隊の中央部分から動き始め、2つの編成に分かれます。 1つが左側に、もう1つが前方に行進して、ゆっくりとその編成が、くさび形に変わります。
エージェントを編成内に維持させるために、独自のジオメトリ形状を使用しています。 その形状は、個々のエージェントに対してゴールとして使用されるポイントです。 その形状をブレンドシェイプさせることで、別の編成に変化させることが可能です。 crowdsourceオブジェクトの中に入って、その構造を確認してください。
Note
アニメーションクリップは、シーンを再生する前にベイクするのに必要です。これは、サンプルをCrowdsシェルフから作成した場合に自動的に行なわれます。 そうでない場合は、シーンファイルを希望の場所に保存し、'/obj/bake_cycles' ROP NetworkのRenderをクリックして、ファイルを書き出します。 それらのファイルのデフォルトのパスは、${HIP}/agentsです。
Street Crowd Example Example for Crowd Solver dynamics node
2つのエージェントグループによるストリートのセットアップを説明した群衆サンプル。
このセットアップは、2つのエージェントグループを作成します。 黄色のエージェントがゾンビで、ストリートのパスに沿います。青色のエージェントがぶらついている歩行者で、ゾンビが近づくと走ります。
エージェントの状態を変更するトリガーは、crowd_sim DOPNETでセットアップします。 ゾンビのグループは、信号との距離と信号の色を使用し、信号が赤になると停止状態に変わります。 生存者のグループは、ゾンビが近づくと走行状態に変わります。
Note
アニメーションクリップは、シーンを再生する前にベイクするのに必要です。これは、サンプルをCrowdsシェルフから作成した場合に自動的に行なわれます。 そうでない場合は、シーンファイルを希望の場所に保存し、'/obj/bake_cycles' ROP NetworkのRenderをクリックして、ファイルを書き出します。 それらのファイルのデフォルトのパスは、${HIP}/agentsです。
CrowdTriggers Example for Crowd Trigger dynamics node
このサンプルでは、Crowd Trigger DOP用のビルトインのトリガータイプの使い方を説明しています。
FlipFluidWire Example for FLIP Solver dynamics node
このサンプルでは、Flip SolverとFluid Force DOPの使い方を説明しています。 Fluid Force DOPを使って、FLIP流体の動きに応じてワイヤーオブジェクトに力を加えています。 流体オブジェクト内に存在する流体の箇所にのみDragフォースを適用しています。
FluidWireInteraction Example for Fluid Force dynamics node
このサンプルでは、Fluid Force DOPの使い方を説明しています。 Fluid Force DOPによって流体オブジェクトの動きに応じてワイヤーオブジェクトにDrag(抵抗)フォースを加えます。 流体オブジェクト内に存在する流体の箇所にのみDragフォースを適用しています。
このサンプルでは、RBDオブジェクトで押しつぶされる草をシミュレーションしています。 Furオブジェクトで草の葉を表現し、Wireオブジェクトで動きをシミュレーションしています。 単一のFurオブジェクトで草を表現し、その近辺の草の葉がそれに合わせて動きます。 硬さが異なるオブジェクトを追加すれば、不均一な動きを表現することができます。 "Complex Mode"を有効にすると、2つのオブジェクトを使って草が表現されます。 それぞれのカーブに設定した硬さは、Wireオブジェクトの"Angular Spring Constant"と"Linear Spring Constant"パラメータで調整することができます。
StackedBricks Example for RBD Fractured Object dynamics node
このサンプルでは、1個のSOPからたくさんのRBDオブジェクトを作成する方法を説明しています。 さらに、Velocity Pointアトリビュートを使って、オブジェクトの初期速度を設定する方法も説明しています。
VisualizeImpacts Example for SOP Solver dynamics node
このサンプルでは、SOP SolverでカスタムガイドジオメトリをRBDオブジェクトに追加することで、RBDシミュレーション内のImpactデータを可視化する方法を説明しています。
このサンプルでは、Impactの位置と強さを示す緑の線を持つ3つのトーラスがグリッドに落下します。 フォースを可視化するために、補助的なジオメトリデータとして実際のトーラスに追加しているので、RBD Solverは完全にそのエフェクトを無視します。 SOP Solverを独立したSOP Networkとして使うことで、RBDオブジェクトからImapctの可視化を抽出することもできます。
AnimatedSkin Example for Wire Glue Constraint dynamics node
このサンプルでは、Wire Glue Constraint DOPを使ってワイヤーオブジェクトをアニメーションジオメトリに拘束する方法を説明しています。
BeadCurtain Example for Wire Solver dynamics node
このサンプルでは、Wire Solverを使ってビーズカーテンをシミュレーションする方法を説明しています。 RBDボールがカーテンを通過して、カーテンからの反応を反映して、ボールが相互に衝突で影響し合います。
BreakWire Example for Wire Solver dynamics node
このサンプルでは、ポイント単位でワイヤー拘束を壊す方法を説明しています。 Wire Solverで、'pintoanimation'という名前のアトリビュートを持つポイントを拘束するようにセットアップしています。
CurveAdvection Example for Wire Solver dynamics node
このサンプルでは、Pyroシミュレーションに基づいて、カーブを移流させる方法を説明しています。 Attribute Wrangle SOPを使って、ボリュームのVelocityをサンプリングして、それをワイヤーオブジェクトに適用しています。
Pendulum Example for Wire Solver dynamics node
このサンプルでは、拘束ポイントにあるオブジェクトと振り子の玉にあるオブジェクトを相互に影響を与え合う方法を説明しています。
このサンプルでは、2 Point Muscleを使って、オブジェクト空間内で筋肉の揺れを作成する方法を説明しています。
Volume Rendering - ファイル参照の煙 Example for Mantra render node
ボリュームレンダリングは、高品質な煙、雲、飛沫、炎などのボリュームエフェクトを統合したレンダリングを可能にするレンダリング手法です。
ボリュームレンダリングは、多くのタイプのボリュームエフェクトのレンダリングに適しています。Mantraボリュームによるレンダリングが特に適したシーンは以下のとおりです:
-
詳細な"hero"(メインとなる)の雲、煙、炎
-
インスタンス化した雲、煙、炎のフィールド(視界)
ボリュームレンダリングがまったく適さないシーンは以下のとおりです:
-
単一の均一なフォグを持つシーン
この特化したサンプルでは、bgeoファイル(1フレームのみ)を煙の流体シミュレーションからエクスポートして、それをFile SOPを使って参照しています。VEX Volume Cloudを使ったマテリアルを、Volume Objectのトップレベルで、このボリュームデータに割り当てています。シェーディングモードでこのシーンを見るには、環境変数の HOUDINI_OGL_ENABLE_SHADERS を1に設定します。
品質/パフォーマンスの制御
ボリュームレンダリングは、Ray Marchingを使って、ボリューム内に入り込みます。Ray Marchingは、画像内の各ピクセルに対して均一に光線に沿って入り込むことで、ボリューム内にシェーディングポイントを生成します。ボリュームのRay Marchingの品質と速度を変更する方法が2つあります:
-
Mantra ROPの Properties タブの Sampling サブタブの Pixel Samples パラメータ。 Pixel Samples を増やせば、ピクセル内にRay Marchingを増やすことができるので、品質が良くなります。さらに、ボリュームに対してアンチエイリアスとモーションブラーの品質が良くなります。
-
Mantra ROPの Properties タブの Sampling サブタブの Volume Step Rate パラメータ。 Volume Step Rate を上げれば、ボリューム内部のサンプルが増えるので、品質が良くなりますが、パフォーマンスが悪くなります。別々のシャドウ品質をシャドウに使うことができます。
変更すべきパラメータは、ピクセルのアンチエイリアスで必要な品質に依存します。 Pixel Samples を増やすよりも、 Volume Step Rate を小さくする方が良いです。なぜなら、 Volume Step Rate が小さいほど正確なレンダリングができるからです。
以下のレンダリングでは、 Pixel Samples を2×2、 Volume Step Rate を1にしています。シャドウの細部に注目してください。
以下のレンダリングでは、 Pixel Samples を4×4、 Volume Step Rate を0.25にしています。シャドウの細部が消えて、ボリュームが少し透明になっています。品質レベルは、ほぼ同じです。
Down Hill Lava Flow Example for Material shader node
このファイルでは、傾斜が低い箇所にCrust(地殻)が集まって硬化する溶岩の流れを作成しています。このアニメーションは、シェーダで作成していて、ジオメトリそのものはアニメーションしていません。
Note
Lava(溶岩)マテリアルのパラメータのほとんどを、サーフェスノードで作成したPointアトリビュートで上書きしています。
CombGrass Example for Comb geometry node
このサンプルでは、Comb SOPを使ってインタラクティブに法線上を"ペイント"することでポイント法線の方向を変更する方法を説明しています。
2つのComb SOPを使って、別々の方向を向いたグリッドの法線の方向を整えています。 Sequence Blend SOPで2つのComb SOPをブレンドすることで法線が揺れているように見せています。
単純なラインジオメトリをそれらのポイントに接続しています。
Comb SOPは髪の毛や草原などのアニメーションに使うことができます。
CreepSpiral Example for Creep geometry node
このサンプルでは、Creep SOPを使ってラインをチューブの上に螺旋状に巻きつける方法を説明しています。
FurBall Example for Fur geometry node
このサンプルでは、Fur SOPがガイドカーブとスキンジオメトリに応じて髪の毛のようなカーブを作成する方法を説明しています。
FurBallWorkflow Example for Fur geometry node
このサンプルでは、Fur SOPとMantra Fur Procedural SHOPをアニメーションするスキンジオメトリに適用する方法を説明しています。 CVEXシェーダを使って、ジオメトリに割り当てられたアトリビュートに応じて髪の毛の見た目を定義しています。
FurRandomScale Example for Fur geometry node
このサンプルでは、CVEXシェーダを使ってプロシージャルなエフェクトをFur SOPで生成したカーブに適用する方法を説明しています。 Fur SOPのガイドジオメトリとスキンジオメトリの入力からのアトリビュートすべてをCVEXシェーダで利用可能です。 CVEXシェーダは、各カーブの固有IDを示す"fur_id"と各ポイントの位置を示す"P"のアトリビュートを使用します。
FurTextureMap Example for Fur geometry node
このサンプルでは、テクスチャマップを使ってファーに色を付ける方法を説明しています。
このサンプルでは、Layer SOPとVEX Layered Surface SHOPを使用することで、別々のUVセットに複数のシェーディングレイヤーを持たせる方法を説明しています。
LineDirection Example for Line geometry node
このサンプルでは、Line SOPを使ってラインを生成する方法を説明しています。
PaintPoints Example for Paint geometry node
このサンプルでは、領域単位でポイント数を設定して、ジオメトリ上にペイントでポイントを撒き散らす方法を説明しています。
PointSpiral Example for Point geometry node
このサンプルでは、Point SOPを使って直線を螺旋に変換する方法を説明しています。
ここでは2つの方法があります。 1つ目が直線のポイント番号を使ってエクスプレッションで定義する方法です。 2つ目が直線の境界ボックスのポイントの位置を使ってエクスプレッションで定義する方法です。
PolyPatchDNA Example for PolyPatch geometry node
このサンプルでは、Poly Patch SOPを使ってプロシージャルに複雑なモデルを作成する方法を説明しています。
ここではDNAモデルを作成しています。
RayWrap Example for Ray geometry node
Ray SOPは、あるサーフェスを他のサーフェス上に投影します。
これは、投影元のサーフェスの法線と投影先のサーフェスとの衝突を計算しています。
このサンプルでは、Ray SOPでGridサーフェスをSphereサーフェス上に投影しています。 Facet SOPは、投影したGridの法線を修正しています。
BasicRest Example for Rest Position geometry node
Rest Position SOPは、変形するサーフェスにシェーダを密着させるために、サーフェス法線に基づいたアトリビュートを作成します。
すべてのプリミティブがrest
アトリビュートをサポートしていますが、二次曲線/曲面のプリミティブ(円、チューブ、球、メタボール)に関しては、Rest Position(静止位置)の移動のみサポートしています。
つまり、Rest Normal(静止法線)は、それらのプリミティブタイプでは正しく動作しません。
ジオメトリを変形したり、ボリュームまたはソリッドのマテリアル/パターンをシェーダに割り当てる時のみ、Rest Position SOPを使用してください。
Mantraでポリゴンやメッシュに対してFeathering(境界ぼかし)を使う場合は、Rest Normal(静止法線)が必要になります。 NURBS/Bezierは、Rest Position(静止位置)を使って正しいRest Normal(静止法線)を計算します。
その効果を確認するために、レンダリングをセットアップする必要があります。
Rest適用なし Rest適用あり
SpringHair Example for Spring geometry node
このサンプルでは、Spring SOPで動的な髪の毛を作成する方法を説明しています。
ラインを球のポイント上にコピーして、それらをソースとしてSpring SOPに接続しています。 そして、Metaball SOPとForce SOPを髪の毛のモーションエフェクトとして接続しています。
SpringLine Example for Spring geometry node
このサンプルでは、Spring SOPで直線をラバーバンドのような特性を追加しています。 Xform SOPと組み合わることで、ラバーバンドが床の上を跳ねます。
ModulusTransform Example for Transform geometry node
このサンプルでは、Transform SOP、Group SOP、剰余演算(%)を使って、周期的なアニメーションを作成する方法を説明しています。
PointCloudLookup Example for Point Cloud Iterate VOP node
このサンプルでは、pcfilterとpciterateを使って、ボリュームに対してポイントクラウド検索を実行する方法を説明しています。 また、ループの方法と検索で返された値を取り込む方法も説明しています。
RaytraceVopShader Example for Ray Trace VOP node
このサンプルでは、VOP VEXネットワークを使って、単純なレイトレースシェーダについて説明しています。 シェーダプロパティを修正するには、マテリアル内にPropertiesシェーダを作成して、Outputシェーダノードに接続します。 そして、レンダリングパラメータをPropertiesノードに追加します。 例えば、反射の数を制御するには、reflect limitパラメータを追加します。