On this page |
オプションでジオメトリをノードの入力に接続すると、カーブはそのジオメトリのポイントにスナップします。 Keep Input Geometry を使えば、そのスナッピングテンプレートを、このノードの出力ジオメトリに含めることができます。
カーブの配置
-
Create タブのCurveシェルフをクリックします。
-
オペレーションコントロールツールバーの Primitive Type メニューからPolygon, NURBS, Bezierのどれかを選択します。
-
シーンビューにカーソルを移動して、ポイントを配置する場所をクリックします。
ポイントは基準平面上に配置されます。⇧ Shiftを押しながらカーソルを動かせば基準平面からカーブを離すことができ、また⌃ Ctrlを押しながらカーソルを動かせば、45度ピッチでポイントを拘束することができます。
カーブを描く前に完全に基準平面の向きを変更することもできます。
-
カーブの描画を終了するには、Enterまたは⇧ Shift + クリックします。
To... | Do this |
---|---|
最後に配置したポイントを削除する |
⌦ Delを押します。 |
カーブのポイントを動かす |
カーブを作成した後に、それらのポイントをクリックしてドラッグします。 Note ジオメトリレベルでのみ個々のポイントを動かすことができます。オブジェクトレベルでは、カーブ全体を動かすことができます。 |
既存カーブにポイントを挿入する |
カーブ上で⇧ Shift + クリックします。 |
カーブの最初と最後のポイントを接続する |
オペレーションコントロールツールバーの Close チェックボックスをオンにします。 NOTE 閉じたカーブは、シェーディングモードでサーフェスとして表示されます。 |
NURBSとBezierのOrder(階数=次数+1)を変更する |
オペレーションコントロールツールバーで設定します。 |
NURBSとBezier
Curveシェルフツールでは、NURBSまたはBezierのカーブを作成することができます。それらのタイプのカーブでは、オペレーションコントロールツールバーのMethodメニューからCVs、Breakpoints(ノット)、Freehandを選択することができます。NURBSは自動的にカーブの開始点と終了点が決まるのに対して、Bezierカーブは、1番目のポイントを開始点、2番目の3番目のポイントをコントロールポイント、4番目のポイントを終了点として認識します。Bezierカーブに5つ以上の点を指定すると、4番目のポイントは次のポイントセットの開始点としても認識されます。
NURBS Curve |
|
Bezier Curve |
ポリゴン
Curveシェルフツールでポリゴンを作成することもでき、オペレーションコントロールツールバーのMethodメニューからCVs、Breakpoints(ノット)、Freehandを選択します。しかし、ポリゴンを作成する時は、CVsとBreakpointsは、どちらとも同じ動作をします(シーンビューにポイントを配置することができます)。
NURBS Curve |
パラメータ
Primitive Type
作成するジオメトリのタイプ。
Polygon
ポリラインを作成します。
NURBS
NURBSカーブを作成します。
Bezier
Bezierカーブを作成します。
Method
描画方法(ビューア内でのマウスクリックと以下のフィールドの座標を解釈する方法)。
CVs
クリックすると制御頂点が配置されます。 Primitive Type が"Polygon"の時、これは単にポリゴンの頂点を配置します。
Breakpoints
クリックするとブレークポイントが配置され、Houdiniは制御頂点の位置を計算します。 Primitive Type が"Polygon"の時、これは単にポリゴンの頂点を配置します。
Freehand
ドラッグすると複数ポイントの線が描画されます。Houdiniは、 Fitting Properties タブのオプションでカーブをフィットさせます。
Coordinates
通常では、ビューアでクリックして単に座標を指定しますが、このフィールドでは、スペース区切りの座標のリストを使ってポイントを指定することもできます。
座標は、以下の書式で指定することができます:
|
デフォルトのウェイトが1の絶対3D座標。 |
|
絶対3D座標とウェイト。 |
|
リスト内の前のポイントから相対的な3D座標。 |
|
リスト内の前のポイントから相対的な3D座標とウェイト。 |
|
入力ジオメトリ内のポイント番号nの座標を参照します。 |
|
入力ジオメトリ内のポイント番号nの座標をコピーします。 |
|
例えば、 |
|
例えば、 |
Curve Properties
Close
自動的にカーブを閉じます。
Reverse
反対方向にカーブを構築します。これは、頂点の順番を逆にしますが、ポイントの順番には影響を与えません。
Normalize Basis
カーブの基底を正規化します。
Order
NURBS/Bezierのカーブの階数。階数を上げると制御頂点が増え、ブレークポイント間のカーブ補間が滑らかになります。
Fitting Properties
これらのパラメータは、 Method が"Freehand"の時に描いたポイントへのカーブの適応性を制御します。
Parameterization
U値をブレークポイントに割り当てる方法を設定します。これは主に後でカーブで作成したサーフェスへのテクスチャマッピングに影響を与えます。
Uniform
各ブレークポイントが連番の整数のU値を持つようにします。 つまり、1番目のブレークポイントはU=1.0、2番目のU=2.0というようになります。
これは、U値をブレークポイントの位置と関連付けしやすくなりますが、カーブ沿いのU値が不均等分布になります(ブレークポイント間の距離が短いときはU値が集約し、長い時はU値が広がります)。
Chord length
基点からカーブ沿いの実際の距離に基づいてU値を割り当てます。 つまり、ブレークポイントは、カーブ沿いの距離に応じて任意のU値を持ちます。
これは、カーブ沿いに均等にU値を分布するので、U値とカーブ上の位置を関連付けしやすいです。
Centripetal(求心性)
"Chord length"と同様ですが、U値がブレークポイント間の距離に比例しません。U値は、距離の平方根に比例します。
Tolerance
描画したポイントにカーブをフィットさせる近接度を指定します。 値を大きくすれば緩くフィットしますが、より効率的なカーブになります。反対に値を小さくすれば、より厳しくフィットしますが、重くなり、複雑なカーブになります。
Smoothness
フィットしたカーブをさらに平滑化します。これを使えば、凸凹としたパッチを平滑化することができます。
Preserve Sharp Corners
フリーハンドで描いたポイントの鋭角なコーナーの保持を試みます。
Keep Input Geometry
このノードの出力に入力ジオメトリを含めます。
Examples
CurveHood Example for Curve geometry node
このサンプルではCurve SOPを使って車のフードを作成する方法を説明しています。
あるカーブのポイントに依存して新しいカーブ上にポイントを作成しています。これによって、あるカーブ上のポイントを動かして他のカーブに影響を与えることができます。
The following examples include this node.
BridgeCollapse Example for Apply Relationship dynamics node
このサンプルでは、Apply Relationship DOPを使って、自動的に拘束を伝搬させて、崩壊する橋のRBDシミュレーションを作成する方法を説明しています。
FootLocking 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です。
FillGlass Example for Fluid Object dynamics node
他のRBDオブジェクトからのシミュレーションをソースとした流体でRBDコンテナを満たします。
RiverBed Example for Fluid Object dynamics node
単純な河床に流体ソースと流体シンクをセットアップすることで、液体が川のように急流します。
このサンプルでは、RBDオブジェクトで押しつぶされる草をシミュレーションしています。 Furオブジェクトで草の葉を表現し、Wireオブジェクトで動きをシミュレーションしています。 単一のFurオブジェクトで草を表現し、その近辺の草の葉がそれに合わせて動きます。 硬さが異なるオブジェクトを追加すれば、不均一な動きを表現することができます。 "Complex Mode"を有効にすると、2つのオブジェクトを使って草が表現されます。 それぞれのカーブに設定した硬さは、Wireオブジェクトの"Angular Spring Constant"と"Linear Spring Constant"パラメータで調整することができます。
FluidGlass Example for Particle Fluid Solver dynamics node
このサンプルでは、グラスに注がれた滑らかな流体の流れを作成する方法を説明しています。
CurveForce Example for POP Curve Force dynamics node
このサンプルでは、POP Curve Forceノードを使って、パーティクルシミュレーションとFLIP流体シミュレーションの流れを制御する方法を説明しています。
ReferenceFrameForce Example for Reference Frame Force dynamics node
水で満たされたRBDの花瓶を使って、花瓶の参照フレーム内で水のシミュレーションをします。
FractureExamples Example for Voronoi Fracture Solver dynamics node
このサンプルでは、実際にHoudiniでボロノイ破壊を使う7つの方法を含んでいます。 特に、破壊シミュレーションでVoronoi Fracture SolverとVoronoi Fracture Configure Objectのノードの使い方を説明しています。 アニメーションを再生するなら、それらのサンプルのディスプレイフラグをオンにし、セットアップをテストするなら、各サンプルの中に入ってください。
SimpleVortex Example for Vortex Force dynamics node
このサンプルでは、何個かのボールを使って、Vortex Force DOPで生成したフォースを可視化しています。
Down Hill Lava Flow Example for Material shader node
このファイルでは、傾斜が低い箇所にCrust(地殻)が集まって硬化する溶岩の流れを作成しています。このアニメーションは、シェーダで作成していて、ジオメトリそのものはアニメーションしていません。
Note
Lava(溶岩)マテリアルのパラメータのほとんどを、サーフェスノードで作成したPointアトリビュートで上書きしています。
CurveTexturing Example for Attribute Create geometry node
AttribCreate SOPは、色々なオブジェクト固有のアトリビュートを作成する時に使用します。新しく作成したアトリビュートにはラベルと値を設定することが可能です。
このサンプルでは、レンダリング時のカーブの幅を設定するためにAttribCreate SOPで線幅アトリビュート名の"width"を作成しています。Switch SOPで以下の2つのバージョンを切り替えることができます。
-
1つ目のAttribCreate SOPでは、X軸方向に一定幅のアトリビュートを作成しています。
-
2つ目のAttribCreate SOPでは、エクスプレッションでカーブの幅を調整することで先細りの効果を表現しています。
このアトリビュートはレンダリング時にMantraで使われます。結果を確認するには、ビューポートのレンダリングアイコンを右クリックして、"render_example"を選択してください。
PolyBlend Example for Blend Shapes geometry node
Blend Shapes SOPを使って、入力ジオメトリから形状とアトリビュートをブレンドしています。
この場合では、3つの入力を変形する対象としてBlendShapes SOPに接続して、DifferencingとBlend Positionオプションにチェックを付けています。
ブレンド値が特定の効果を出すようにキーフレームしています。アニメーションを再生して、その結果を確認してください。
CurveToPrimCircle Example for Convert geometry node
このサンプルでは、カーブをプリミティブの円に変換する方法を説明しています。
NURBSまたはBezierの閉じたカーブをプリミティブの円に変換するには、最初にポリゴンに変換する必要があります。
閉じたポリゴンカーブに変換してしまえば、カーブをプリミティブの円に変換することが可能です。
Potatochip Example for Convert geometry node
このサンプルでは、Convert SOPを使って閉じたカーブをサーフェスに変換する方法を説明しています。
サンプルには2つのバージョンがあります。1つ目は、カーブがサーフェスに上手く変換されています。 2つ目は、元のカーブの形状が凹んでいるので上手くサーフェスに変換されていません。
シェーディングモードで表示すると分かりやすいです。
CreepBlob Example for Creep geometry node
このサンプルでは、メタボールをサーフェス上に這わせる方法を説明しています。 このケースでは、サーフェスは捻じ曲がったチューブで、メタボールは管を通過して押し出される"ブロッブ"のように見えます。
チューブは、メタボールを這わせるために作成しています。 円は同じチューブからプロファイルを抽出して作成しています。 円はCreep SOPでチューブに沿ってアニメーションしています。
メタボールは抽出した円のポイントに接続して"ブロッブ"を作成しています。
CreepParticleTubeA Example for Creep geometry node
このサンプルでは、パーティクルがサーフェス上を這う2通りの方法を説明しています。このケースでは、サーフェスは捻じ曲がったチューブです。
1つ目がサーフェスの内側にパーティクルを這わせる方法、2つ目がサーフェスの外側にパーティクルを這わせる方法を説明しています。これはCreep SOPのz scaleを変更することで、サーフェス法線方向にパーティクルをオフセットしています。
パーティクルはチューブから抽出した円から発生しています。
CreepText Example for Creep geometry node
このサンプルでは、テキストジオメトリがアニメーションサーフェスに沿って這います。
サーフェスは、Sequence Blend SOPでアニメーションするカーブを2つ使ってスキンしています。Creep SOPでジオメトリを這わせるにはカーブではなくサーフェスが必要です。
CurveHood Example for Curve geometry node
このサンプルではCurve SOPを使って車のフードを作成する方法を説明しています。
あるカーブのポイントに依存して新しいカーブ上にポイントを作成しています。これによって、あるカーブ上のポイントを動かして他のカーブに影響を与えることができます。
EdgeCuspStairs Example for Edge Cusp geometry node
Edge Cusp SOPは、簡単にレンダリング時にモデル上に明確なエッジを作成することができます。 Edge Cuspは、共有エッジを個別化し、ポイント法線を再計算してエッジを作成します。
FacetVariations Example for Facet geometry node
このサンプルでは、Facet SOPを使って、指定したオブジェクトを滑らかにしたり、多角化したりする方法を説明しています。 また、ポイントが結合できることも説明しています。
右矢印キー(次のフレームに移動)を押すと、各サンプルが表示されます。
PathAnalysis Example for Find Shortest Path geometry node
これは、FindShortestPathとAttribWrangleによる測定に基づいた"中心軸"パスを優先にする高度なサンプルです。これは、壁への近接を回避するのに役に立ちます。
空間内でもっと簡単に確認するには、Display OptionsダイアログのOptimizationタブにあるCulling > Remove Backfacesをオンにします。 Switchノードを使って別の中心軸測定を可視化してみてください。パスの中心軸を考慮しない同じサンプルを、違いがわかるようにSOPネットワーク内の端に置いています。
FitCurves Example for Fit geometry node
このサンプルでは、Fit SOPを使ってNURBSカーブを基本ポリゴンカーブにフィットさせる方法を説明しています。
Fit SOPは、入力ジオメトリのポイントを通過するNURBSまたはBezierカーブを新しく構築します。
フィッティングには方法が2通りあります:
Interpolationは、入力カーブ(元のポリゴンカーブ)と同じCVの数を出力します。
Approximationは、CVの数を減らすと同時に、入力ポイントを通過するカーブを近似します。
アニメーションを再生して、これら2つの方法がカーブに与える影響の違いを確認してください。
FuseHood Example for Fuse geometry node
このサンプルでは、Fuse SOPを使って独立したカーブ間のポイントを結合する方法を説明しています。
車のフードの3つのパネルを作成してFuse SOPを使って1つに結合しています。
FlutteringLeaves Example for Particle geometry node
このサンプルでは、Particle SOPを使って、ひらひらと舞う葉っぱのシミュレーションの作成方法を説明しています。
また、Point SOPでポイント法線を修正することで、パーティクルの速度と方向に影響を与える方法を説明しています。 パーティクルとは実際には空間内のポイントなので、パーティクルのアトリビュートを制御するにはPoint SOPを使用するのが効果的な方法です。
再生ボタンを押してシミュレーションを確認してください。
ParticleExamples Example for Particle geometry node
このサンプルでは、Particle SOPの色々な使い方を5つの説明しています。
-
Creep Creep SOPを使ってサーフェス沿いにパーティクルを這わせます。
-
Group サーフェス上のポイントのグループからパーティクルを発生します。
-
Bounce パーティクルを跳ね返らせます。
-
Split 接触時にパーティクルを分割します。
-
Collide 衝突オブジェクトからパーティクルを発生します。
-
Moving Object 移動オブジェクトからパーティクルを発生します。
-
Force メタボールを使ってパーティクルに力を加えます。
ParticleFountain Example for Particle geometry node
このサンプルでは、いくつかのParticle SOPと基本モデルから噴水を作成する方法を説明しています。
法線オフセット、速度の多様化、衝突時の動作を設定して、パーティクルの動きと見た目を設定する方法がわかります。
ParticleTube Example for Particle geometry node
Particle SOPはSOPレベルでパーティクルを作成することができ、そのパーティクルを直接ジオメトリと作用させることが可能です。 さらに、パーティクルは次々とポイントジオメトリとして扱われます。
このサンプルでは、チューブオブジェクト上を這うパーティクルとチューブオブジェクトに衝突するパーティクルがあります。 そのオブジェクトのポイント法線(パーティクルの法線を含む)を調整してSOP内のパーティクルを制御することも可能です。
PolyCutBasic Example for PolyCut geometry node
このサンプルでは、PolyCut SOPを使って、アトリビュートに応じてカーブを分解する方法を説明しています。
PolySplitHood Example for PolySplit geometry node
このサンプルでは、PolySplit SOPでポリゴンを分割して車のフードのジオメトリを改良する方法を説明しています。
PolywireModel Example for PolyWire geometry node
このサンプルでは、Poly Wire SOPを使ってポリゴンの枠にポリゴンを作成する方法と、パラメータをローカル変数でカスタマイズできることを説明しています。
PrimCenter Example for Primitive geometry node
このサンプルでは、Primitive SOPを使って正しくプリミティブをカーブに沿わせる方法を説明しています。
Sweep SOPはデフォルトでは、プリミティブの原点をカーブ上に配置します。 プリミティブの重心が原点から離れていると、プリミティブもカーブから離れて配置されます。
正しくプリミティブの重心をカーブに配置するには、その重心を原点にしなければなりません。 それをするために、Primitive SOPを使用しています。
BasicRail Example for Rails geometry node
このサンプルでは、Rail SOPで単純なカーブを指定して、そのカーブに基づいてサーフェスを作成しています。
単にSOPのパラメータを変えるだけで、色々なサーフェスを作成することができます。 最終的にはカーブが消えてサーフェスが残ります。
BasicRefine Example for Refine geometry node
このサンプルでは、Refine SOPを使って、たくさんのタイプのサーフェスからディテールを追加・削除する方法をいくつか説明しています。
ResampleLines Example for Resample geometry node
このサンプルでは、3つのタイプのカーブ(Polygon, NURBS, Bezier)に対してResample SOPを使う方法を説明しています。
Resample SOPは、カーブをポリゴンラインのセグメントに変換することでカーブを再構築します。
カーブは"Along Arc"や"Along Chord"で再構築されます。 "Along Arc"は再構築の基準としてHull情報を使用し、Maximum Segment LengthやMaximum Segmentの数で定義することができます。 "Along Chord"はMaximum Segment Lengthだけで定義することができます。
Maximum Segmentの数に基づいてカーブを再サンプリングすると、カーブの始点から終点までの長さを測定して、カーブを等間隔のセグメントのラインに分割されますが、長さは指定できません。 ラインのディテールはセグメントの数に比例しています。
Maximum Segment Lengthに基づいてカーブを再サンプリングすると、全体のカーブが最後のセグメント以外は同じ長さのセグメントのラインに分割されます。 Maintain Last Vertexオプションをオンにすると、最後のセグメントの長さは終点までの距離を保持するのでMaximum Segment Lengthの値以下になります。 オプションをオフにすると、最後のセグメントの長さは終点までの距離が無視され、他のセグメントと同じ長さになります。
ディスプレイツールバーのPointsを有効にして、Resample SOPがどのようにラインセグメントを再リサンプリングしているのか確認してください。
BasicRevolve Example for Revolve geometry node
このサンプルでは、Revolve SOPに指定した軸でカーブやサーフェスを回転させてジオメトリを作成する方法を説明しています。 トーラスや花瓶のような単純なオブジェクトはRevolve SOPとユーザー定義の入力で生成します。
ここでは、ジオメトリタイプ毎のRevolve SOPのパラメータの違いを確認してください。
Birdy Example for Sequence Blend geometry node
同じポイントの数で同じポイントの並びで作成したジオメトリを3つ用意しています。 各ジオメトリをSequence Blend SOPに接続しています。 Sequence Blend SOPのBlend Factorパラメータにエクスプレッションを使うことで、3つの入力からモーフィングアニメーションを作成しています。
BlendPointAttributes Example for Sequence Blend geometry node
このサンプルでは、Sequence Blend SOPを使ってPointアトリビュートをブレンドする方法を説明しています。
BlendVertexAttributes Example for Sequence Blend geometry node
このサンプルでは、Sequence Blend SOPを使ってVertexアトリビュートをブレンドする方法を説明しています。
SkinCurves Example for Skin geometry node
このサンプルでは、Skin SOPを使って、1本のカーブにサーフェスを作成する方法、6本のカーブに対して2本のカーブ毎にサーフェスを作成する方法、三角状に配置された3本のカーブに対してサーフェスを作成する方法を説明しています。
SkinShip Example for Skin geometry node
このサンプルでは、宇宙船の作成でSkin SOPを使用する方法を説明しています。
最初にCurve SOPでカーブを作成します。 次に、Skin SOPで個々のカーブを指定してサーフェスを作成します。
SweepBasic Example for Sweep geometry node
このサンプルでは、Sweep SOPでジオメトリをカーブ上のポイントにコピーする方法を説明しています。
Sweep SOPは、コピーするジオメトリをコピー先のカーブ上のポイントに自動的に垂直に配置することができる独特な使い方ができます。 コピーしたジオメトリのスケールにバリエーションを加えるためにエクスプレッションを使っています。
SweepCurve Example for Sweep geometry node
このネットワークには、Sweep SOPのサンプルがあります。NURBSのカーブとNURBSの円をそれぞれSweep SOPのBackboneの入力に使用しています。
Sweep SOPのCross Sectionのスケールを制御することで色々な効果を表現することができます。 最後に、Sweep SOPで作成したジオメトリにSkin SOPを使ってサーフェスを張っています。
PlateBreak Example for TimeShift geometry node
このサンプルでは、TimeShift SOPを使って破壊シミュレーションでスローモーションのエフェクトを表現する方法を説明しています。
volumefeather Example for Volume Feather geometry node
このサンプルでは、Volume Feather SOPでシャープなボリュームを単純に外側または内側方向に平滑化する方法を説明しています。
Fuzzy Logic Obstacle Avoidance Example Example for Fuzzy Defuzz VOP node
このサンプルでは、Fuzzy Logicコントローラを使用して実装されたエージェントの障害物回避とパスへの追従を説明しています。
See also |