On this page |
デフォルトでは、Vellum SolverはVellumオブジェクトとVellum拘束を開始フレームでのみソーシングします。 蛇口から水を放出してグラスを満たしたいとしましょう。 この場合、特定のフレームで止めることが可能な途切れないパーティクルの流れが必要になります。 他には、位置などのアトリビュートを使って放出を発動させるメソッドもあります。 さらには、散乱したポイントなど、別のソースからパーティクルを作成したいことでしょう。 以下の章では、様々な放出とソーシングのワークフローを説明します。
Note
ここで説明している方法は、Vellum Gainsでも有効です。
Emission Typeパラメータ ¶
放出メソッドは、Vellum Source DOPノードを介して制御します。 Vellum Source DOPの場所は、シミュレーションネットワークの作成方法(DOP/シェルフツールまたはSOP)で異なります。 Emission Type パラメータには4つのオプションが用意されています。
-
Only Once 。パーティクルは
1
フレームだけで生成され、その後ソースオブジェクトから放出されます。 -
Each Frame 。フレーム範囲全体で、新しいパーティクルが連続して生成されます。このタイプではサブステップが考慮されないため、途切れが発生してしまう可能性があります(特に、パーティクルの速度が速い場合がそうです)。
-
Each Substep 。ソーシングはVellum Solverの Substeps の数によって決まり、フレーム範囲全体で実行されます。Vellum Fluidsには
10
、Vellum Grainsには5
が最も使われる値です。サブステップ数を増やすほど、より多くのパーティクルが放出され、より自然な感じの放出になります。このタイプでは、シミュレーション時間とRAM使用量が増えてしまうことに注意してください。20
以上の非常に高いサブステップは、Vellum Fluids/Vellum Grainsがもっと堅くなるので避けましょう。ソルバの Constraint Iterations は流体の堅さに影響し、サブステップ毎に適用されます。 -
Instance on Points 。 Each Frame と同様に、DOPがアクティブである限りフレーム毎にジオメトリが追加されます。ただし、
orient
やN
といったアトリビュート付きのポイントジオメトリが作成されます。ジオメトリとアトリビュートはインスタンス化に使用し、Copy to Points SOPの動作と合わせることができます。
DOPネットワークのEmission Type ¶
Vellum Grainsシェルフツールでセットアップを作成した場合など、 DOPベース のネットワークは、AutoDopNetwork
ノードをダブルクリックして開きます。そこで、Vellum Source DOPを選択します。パラメータエディタで、 Emission Type を探します。
SOPネットワークのEmission Type ¶
SOPベース のネットワークでは、Vellum Source DOPはロックがかかったVellum Solver SOP内部の深いところにあります。 Vellum Source DOPに直接アクセスできるようにするには、いくつかの手順が必要です。
-
Vellum Solver SOPの最初の2つの入力が別のノードに接続されている場合は、それらの接続を解除します。ネットワークエディタで、Yキーを押したままにします。するとカーソルがハサミに変わり、接続を解除することができます。
-
Vellum Configure Grain SOPの3番目の出力はVellum Solver SOPの3番目の入力に接続されたままにします。
-
⇥ Tabを押してTABメニューを呼び出し、
null
と入力します。2個のNull SOPを作成します。 -
1つのNullの名前を
GEO
に変更し、それをVellum Configure Grain SOPの 1番目 の出力( Geometry )に接続します。 -
もう1つのNullの名前を
CON
に変更し、それをVellum Configure Grain SOPの 2番目 の出力( Constraints )に接続します。 -
Vellum Solver SOPをダブルクリックして中に入ります。
-
Vellum Source DOPを追加し、それを
SOURCE
Output DOPの入力に接続します。 -
Vellum Source DOPのパラメータエディタで、 Source ▸ SOP Path に移動し、アイコンをクリックしてノード選択ダイアログを開きます。そのノード選択ダイアログで、
GEO
を探して Accept をクリックします。 -
Source ▸ Constraint SOP Path でも同じことを実行しますが、今回は
CON
ノードを選択します。 -
これで、Vellum Source DOPによって Emission Type パラメータに直接アクセスできるようになりました。
geo1 レベルに戻ると、Vellum Solver SOPの最初の2つの入力は必須であるにも関わらず空っぽまでも大丈夫なのがわかります。 この場合にVellum Configure Grain SOPの1番目の出力をVellum Solver SOPの1番目に接続してしまうと、ソースが 2つ 追加されてしまうので、パーティクル数が2倍になります。 正確な数のパーティクルを作成するには、ソルバの入力を接続する方法とVellum Source DOPを追加する方法のどちらか1つを使用してください。
基本的なセットアップは以下のようになります。
エクスプレッションを使用して放出を制御する ¶
どのEmission Typeもフレーム1
から始まります。
Only Once は即座に停止し、他のタイプはシミュレーションの最終フレームで停止します。
アニメーションキーまたはエクスプレッションを使用してVellum Source DOPの Activation パラメータをアニメーションさせることで、ソーシングを制御することができます。
ここでのエクスプレッションは、 Activation をオン(1
)または(0
)オフにするスイッチのように機能させます。
HScriptエクスプレッションを使用したパラメータは緑、Pythonを使用したパラメータは紫で表示されます。
以下に、いくつかの一般的なソーシングタスクと、それに対応するエクスプレッションを載せています。
To... | Do this |
---|---|
ソーシングを特定のフレームに制限する |
|
ソーシングを特定のフレームで開始する |
|
ソーシングを特定のフレームで停止する |
|
ソーシングを特定のフレーム範囲に制限する |
|
Pythonを使用してソーシングを複数のフレーム範囲に制限する |
HScriptの代わりに、Pythonでパラメータエクスプレッションを記述することもできます。
ここでは、ソーシングはフレーム
activate = 0 if (frame() > 4 and frame() < 11): activate = 1 elif (frame() > 20 and frame() < 25): activate = 1 return activate Houdiniの Activation パラメータの内部名は |
相対参照を使用してソーシングを発動する |
参照を使用してソーシングを開始させることができます(アニメーションするオブジェクトが特定の位置に到達した時)。
ボックスをX軸に沿ってアニメーションさせるとしましょう。
ボックスがX = 2に到達すると、 Activation が
|
アニメーションキーを使用してソーシング範囲を定義する |
Activation をアニメーションさせる方法もあります。
|
ポイントソースの放出 ¶
パーティクルはボリュームから生成することができますが、他のポイントソースからでも作成することができます。 ポイントソースは、例えば散乱ポイントがそうですが、他にもカーブ上のポイントもそうです。 ポイントソースとマスク/画像を併用することで、パーティクルがソーシングされる場所とされない場所を正確に定義することができます。 以下のセットアップでは、Grid SOPにペイントしたマスクや散乱させたポイントを組み合わせて、独自のパーティクルエミッターを作成しています。ネットワーク全体のスクリーンショットを参照してください。
-
obj レベルで、⇥ Tabを押してTABメニューを呼び出します。
geo
と入力して、Geometry SOPノードを作成します。 -
そのノードをダブルクリックして中に入ります。
-
Grid SOPを追加し、 Size を
5 x 5
に設定します。 -
Center.Y を
2
、 Rotate.X を30
に変更します。 -
Rows と Columns を
200
に上げます。滑らかなマスクを描画するには、このようにする必要があります。
マスクは、グリッド上に直接ペイントすることができます。
-
Attribute Paint SOPを追加し、その入力をGridの出力に接続します。
-
そのAttribute Paint SOPを選択し、 Display/Render フラグをオンにします。既に描画モードになっているはずです。グリッドは紫で、3Dブラシが表示されているのがわかります。
-
そのブラシをスケールするには、を使用します。
-
Attribute Paint SOPのパラメータエディタで、 Soft Edge パラメータを
1
に設定します。 -
マスクを好きなように描画します。
マスクした領域にパーティクルを作成します。
-
Scatter SOPを追加し、上流のAttribute Paint SOPに接続します。
-
Force Total Count パラメータを
8000
に設定します。 -
Density Attribute チェックボックスをオンにして、デフォルトの
density
エントリをmask
に置換します。散乱させたポイントが、マスクした領域にのみ表示されます。
流体のセットアップ ¶
この例では、SOPベースの流体セットアップを作成します。 DOPネットワークとSOPネットワークの違いについては、Vellum Fluidのセットアップページを参照してください。
-
Vellum Configure Fluid SOPを追加します。このノードの説明から分かるとおり、これは実際にはVellum Configure Grain SOPです。その1番目の入力をScatter SOPの出力に接続します。
-
Create Points from Volume チェックボックスをオフにします。
-
Particle Size パラメータには、パーティクルを十分に分割できるくらいの小さい値を選択します。この例では
0.035
を使用します。
Note
次の手順では、パーティクルのジオメトリと拘束をVellum Solver SOPに接続する必要があります。 SOPネットワークでVellum Source DOPにアクセスするには、特定のセットアップが必要です。 このVellum Source DOPには Emission Type パラメータが用意されており、パーティクルのソーシングを1回のみ、フレーム毎、サブステップ毎のいずれで行なうかを選択することができます。 セットアップのガイドは、上記の’SOPネットワークのEmission Type'の章を参照してください。
-
Vellum Source DOPを選択したままにしておきます。
-
Emission Type を Each Frame に設定します。
-
Ground Position をオンにして、無限平面の衝突オブジェクトを作成します。
-
geo1 レベルに戻ります。
シーンをシミュレーションする準備が整いました。均一なルックを避けるために、以下の手順を実行します。
-
Attribute Noise SOPを追加して、Vellum Configure Fluid SOPと
GEO
Null SOPの間に配置します。 -
Attribute Names で、位置(position)を表わす
P
を追加します。Cd
はカラー(color)
を表わし、パーティクルを様々な色にしたい場合はそのままにしておいて構いません。アトリビュートはスペースで区切る必要があります。 -
Amplitude パラメータに
1.5
と入力し、より大きく変位させます。 -
Animation セクションを展開し、 Animate Noise チェックボックスをオンにします。
-
ボタンを押してシミュレーションを開始します。
シミュレーションは以下の動画のようになります。
ポリゴン選択からの放出 ¶
マスクをペイントする代わりに、パーティクルソーシングをオブジェクト全体でなく、選択したポリゴンに限定することもできます。 これを行なうには、Group Expression SOPなどを使用して、放出に使用するポリゴンをグループ化する必要があります。 このノードは、パーティクルソースとして使用したいポリゴンオブジェクトの直後に配置しなくてはなりません。 以前のセットアップ(上記のネットワークのスクリーンショットを参照)にいくつか変更を加えたものを使用すると良いでしょう。
-
Grid SOPを、Rubber Toy SOPなど他のオブジェクトに置換します。
-
Attribute Paint SOPとAttribute Noise SOPを削除します。
-
scatter1
を選択し、 Density Attribute チェックボックスをオフにします(ここではもう必要ないため)。
次は、パーティクル選択を作成するためのノードと設定です。
-
TABメニューからGroup Expression SOPを追加し、Rubber Toy SOPとScatter SOPの間に配置します。
-
Group Type ドロップダウンメニューが Primitives に設定されていることを確認します。
-
Group Name パラメータに
emission
などの名前を入力します。 -
VEXpression パラメータで、
fit01(@elemnum % 10 * @N.y,0,1)
などのエクスプレッションを入力します。このエクスプレッションは、法線のYコンポーネントに基づいてポリゴンを選択します。係数の10
を変更すると、選択されるポリゴンを増減させることができます。この係数は、整数でなければなりません。もちろん、ポリゴンを手動で選択したり、他のメソッドを使用することも可能です。 -
Scatter SOPで、 Group パラメータに
emission
と入力します。
Note
ソルバを選択したり、シミュレーションを開始した時に、パーティクルが消失することがあります。
この場合はvellumfluid1
に移動し、パーティクルが再び現れるまで、 Particle Size を下げます。
How to ¶
To... | Do this |
---|---|
パーティクルが途切れないようにする |
または、Drag(抵抗)フォースを追加して、パーティクルの速度を落とすこともできます。 その場合、DOPネットワークとSOPネットワークでは方法が異なります。
|
放出パターンを不規則にする |
|