On this page | |
Since | 12.0 |
-
このソルバは、低解像度の煙、炎、液体のシミュレーションを高解像度のコンテナへ スケール することができます。 乱流ノイズを使えば、煙の大きなスケールの動きに影響を与えないほど十分に小さなスケールでディテールを加えることができます。
これによって、低解像度のシミュレーションの全般的な動きをセットアップして、元の低解像度ネットワークを維持しながら高解像度シミュレーションを作成することができます。
-
このソルバは、全般的な動き(Velocityベクトル)以外の元のシミュレーションの外観のほとんどを 修正 することもできます。例:
-
ソースの変更または追加
-
Flame Height の上書き
-
Dissipation の上書き
-
Combustion 設定の変更
-
Simulation Speed の変更
Up-resの使い方 ¶
-
Up-resしたい流体コンテナオブジェクトを選択します。
-
Fluid Containers シェルフタブの Up-res Containerをクリックします。
このツールは、選択したコンテナの解像度を上げるノードを含んだDOPネットワークを新しく作成します。
Up-res(高解像度化)ネットワーク ¶
シェルフツールを使用してコンテナを高解像度化すると、高解像度のコンテナとソルバが自動的にセットアップされます。 そのツールは、 新しいDOPノードネットワーク 内にノードを作成して、“ベース”ネットワークと“up-res(高解像度化)”ネットワークを別々に保持します。
ゼロからup-res(高解像度化)ネットワークをセットアップする場合、ベースのシミュレーションで使用した 同じオブジェクト (Smoke object DOPまたはFluid object DOP)を使用します。 Up Res Solverは、知られているすべてのコンテナタイプで動作します。ベースシミュレーション設定(例えばスケール)を参照またはコピーしても、分割サイズ(解像度)は変更してください。
このソルバは、オブジェクト上の色々なフィールドサブデータを利用します。必要なフィールドは、シミュレーションタイプによって異なります。
-
煙(PyroまたはSmoke)のベースシミュレーションに関しては、オブジェクトには煙の密度である
density
スカラーフィールドを持たせてください。 -
炎(Pyro)のベースシミュレーションに関しては、オブジェクトには炎に対しては
heat
スカラーフィールドを、煙に対してはdensity
スカラーフィールドを持たせてください。 -
液体のベースシミュテーションに関しては、オブジェクトには液体の表面を意味する
surface
スカラーフィールドを持たせてください。 -
オブジェクトには、ボクセル毎にVelocityである
v
ベクトルフィールドを持たせてください。 -
オプションで、オブジェクトに内部浮力と点火計算用に
temperature
スカラーフィールドを持たせることができます。
前のバージョン ¶
Houdini 12では 新しい高解像度化ワークフローを取り入れました。12以前のバージョンでは、Up Res Objectは、修正された煙、炎、液体を表現するために使われていました。 Houdini 12では、デフォルトのコンテナタイプをUp Res Solverへの入力オブジェクトとして使用します。
パラメータ ¶
Simulation ¶
これらのパラメータは、Up-res(高解像度化)されるシミュレーションをどのように展開させるかをベースシミュレーションのVelocityフィールドに基づいて制御します。
Use Lower Source Resolution
ベースシミュレーションのソースを高解像度で再計算するのではなく、元のソース解像度を使用して、他のすべてを高解像度で再シミュレーションします。これは速くて、また元のソースの“不明瞭さ”を維持します。 これを無効にすれば、ソースが高解像度で再計算され、煙の効果がより明瞭になります。
Source From Imported Fields
(例えば)煙の消散や炎の点火を計算するために、既にシミュレーションされたSourceフィールドを使用します。これは速いですが、サンプリングの乱れが発生する可能性があります。通常ではこれを無効のままにしてください。
Tip
元のソースオペレータをコピーして使用してください!それらのオペレータをUp Res Solverの5番目(sourcing)入力へ接続するだけ済みます。
これは、Up Res Container
シェルフツールを使用した時にデフォルトで行なわれます。
Note
Up Res Solverに指定するフィールドの種類は、Source From Imported Fieldsが有効かどうかで大きく異なります。 無効(デフォルト)な時は、ベースシミュレーションのソース計算で使用されているフィールドと同じフィールドが必要になります。 有効な時、ベースシミュレーションの既に計算されたフィールドが自動的に読み込まれてリンクされるので、初期フィールドは不要です。 これは時間を節約することができますが、低解像度のシミュレーションオブジェクトでサンプリングの乱れが起こる可能性があります。
最終結果(例えば、熱、密度、液体の表面)と見なさないフィールドの形式で、煙や炎のシミュレーションを扱う時のSource Fieldとして指定することが多いです。 Temperatureフィールドは、燃料の点火または浮力の制御に使いますが、煙としてレンダリングしません。このフィールドは、ベースシミュレーションからインポートしても構いません。 燃料へ適用する同じフィールドは、炎を(Temperatureと一緒に)点火するのに使いますが、炎としてレンダリングしません。このフィールドもベースシミュレーションからインポートしても構いません。
Initial Data ¶
このタブのパラメータは、Up Resシミュレーションのベースとして使用されるデータの制御と指定を行ないます。
Fluid Type
指定したシミュレーションタイプ用のフィールドの名前と読み込みを制御します。
Source
オブジェクトがベースシミュレーションを検索する場所。 これは、SOP Path内の名前付きボリュームの集合体を指定したり、直接.bgeoシーケンスから読み込むことができます。
Note
ベースシミュレーションのDop IOノードは、一般的には必要ファイルの取得に使われます。
Low Res Group
インポートするジオメトリの特定のグループを指定します。
Links ¶
これらのパラメータは、ベースシミュレーションのSolver上のパラメータと同様で、優先的にリンクされます。 これらのパラメータを変更すると、シミュレーションのルックが変わります。利用可能なパラメータは、Velocityに影響を与えないパラメータです。
Show Simulation Links
リンクされたシミュレーションパラメータを可視化します。
Combustion ¶
このタブのパラメータは、Pyro Solverのパラメータと同様です。 シェルフを使用する時、見つかったソルバがPyro SolverでCombustion(燃焼)が有効な場合に、それらのパラメータが参照されます。 パラメータを参照することで、同じ出力を保証することができます。 Show Simulation Linksを参照してください。 このパラメータを変更することで、実際のCombustion(燃焼)を修正することができます。
Shape ¶
Pyro SolverのShapeタブにあるShape Operatorsと同様です。 ソースVelocityは挙動の制御に使われますが、Turbulence(乱流)を追加すれば、本質的なディテールを加えることができます。 この段階ではフォースを追加しない方が賢明です。
Dissipation ¶
見つかったソルバがPyro Solverであれば、デフォルトでは、Dissipation(消散)が参照されます。 パラメータを参照することで、同じ出力を保証することができます。 Show Simulation Linksを参照してください。 Dissipation(消散)パラメータを変更することで、煙(または指定したフィールド)の減衰を変更することができます。
Turbulence ¶
Turbulence(乱流)は、煙の体部分の動きに影響を与えないのに十分小さいスケールで適用された乱流ノイズを使用してディテールをシミュレーションに加えます。 その振幅と位置は、ベースシミュレーションからサンプリングされた情報で定義され、Turbulence Sourceを使って設定されます。
Enable Turbulence
Turbulence(乱流)を有効にします。
Turbulence Scale
追加されるTurbulence(乱流)の全体的なスケール。
Source
Turbulence(乱流)フィールドを構築する方法を制御します。Turbulence(乱流)フィールドは、Turbulence(乱流)の量に対するボクセル毎のスケールを定義して、Upresシミュレーションに追加します。
Constant
特別なTurbulenceスケール計算が行なわれません。 しかし、Turbulence Scaleフィールドを指定すると、それが振幅と乗算されます。 これによって、空間に応じてTurbulence(乱流)を調整することができます。
Wavelets
ウェーブレットの分解は、低解像度Velocityフィールドに対して、Turbulenceを乗数とした最高ディテール係数の二乗を実行します。 これにより、粗い煙のシミュレーション部分にのみTurbulence(乱流)を導入し、滑らかな領域は滑らかなままに保持されます。
Curl
VelocityフィールドのCurl(渦巻き)の大きさを使用して、Turbulence(乱流)をスケールします。 これは、例えば Vortex Confinement で使用するスケールに一致するので、Vorticleが検出された箇所に余分なTurbulence(乱流)を追加します。
Compute Frequency Cutoff
Upresステージのゴールは、低解像度シミュレーションに影響を与えないことであるので、 この自動的な周波数カットオフは、ソルバに何の周波数がベースシミュレーションの挙動を変えずにディテールを追加するのか適切に判断させることができます。
Blur Radius
Turbulence(乱流)の振幅内の急な変化は、その結果のVelocityフィールドに捻じれが発生します。 Blur Radius は、指定したワールド距離によってTurbulence(乱流)フィールドを平滑化することができます。
Noise Frequency ¶
追加されるノイズのサイズ(Swirl Size/Frequency)を指定します。これは、元のシミュレーションに基づくかまたは手動で設定することができます。
Size
低解像度の煙のサイズ。これは、カットオフ周波数の計算にのみ使われます。
Low Res Division Size
低解像度の煙の分割サイズ。これは、Turbulence(乱流)ノイズに対するカットオフ周波数の決定に使われます。
Frequency Scale
計算された周波数は、このスケールで乗算されます。 1未満の値は、より低い周波数(より大きなSwirl:旋回)になり、可能であればベースシミュレーションの既存の周波数を上書きします。 しかし、数値的な拡散は、それらの既存の周波数を減衰させようとするので、ベースシミュレーションとUpresシミュレーション間での はっきりとした周波数のギャップやLacunarity(空隙性、空間密度)避けるために、これを0.7に下げると役に立つことが多いです。
Temporal Frequency
Turbulence(乱流)が時間と共に変わる速さを制御します。
Absolute Frequency
Compute Frequency Cutoffがオフの時のみ利用可能です。 ユーザは元のシミュレーションの分割サイズに関係なく、またはそれに基づいて周波数を指定することができます。 Compute Frequency Cutoffを有効にして、 Frequency Scale パラメータで周波数を制御する方が賢明です。
Noise Settings ¶
ノイズタイプの詳細を指定します。
Noise Type
Curl(渦巻き)ノイズに使用する基本ノイズの形式。
Turbulence
追加するノイズのオクターブ数(反復数)を制御します。 各オクターブは、グリッドの有効解像度を倍にするので、これを倍数に設定してください。 例えば、ベースの煙が32^3で高解像度の煙が128^3の場合、2回にかけて倍にするので、オクターブ数が2になります。 Frequency Scale が0.5の場合、それを考慮するようにさらに倍増が必要になります。 この量を超えるTurbulence(乱流)は、最高ディテールレベルで荒れたようになり、あなたが求めているものになったりならなかったりします。
Roughness
Turbulence の追加されるバンドの影響力で、初期 Frequency を基準にします。
Attenuation
コントラストを制御します。
Step Size
ノイズの生成に使用されるcurl関数の解像度を制御します。値が低いほど、ノイズ内の螺旋がより細かくなります。
Turbulence Settings ¶
Turbulence(乱流)が適用される箇所を制御します。元のTurbulence(乱流)は、Turbulence Sourceで指定されたメソッドを使用して始めに計算されます。 その結果の出力は、ここで指定した設定によって流体にマッピングされます。
Remap Turbulence Scale
Turbulence(乱流)フィールドは、このマッピングを通して、最終的な振幅を取得します。 これにより、フォールオフ(減衰)をスカルプトしたり、エッジ検出を実行することができます。
Turbulence Range
計算されたTurbulenceの最小/最大の値を正規化します。
Tip
これらの設定を色々いじってみてください!まず最初に右側の範囲を理解して、実際の値を再マップします。 Turbulence(乱流)フィールドは、Visualizationで利用可能なパラメータを使って可視化することができます。 計算されるTurbulence(乱流)フィールドは、どの形式も受け取ることができますが、一般的には10-20の最大値あたりで落ち着きます。
Turbulence Field Ramp
前に計算されて正規化されたTurbulence(乱流)フィールドを再マップします。
Control Settings ¶
このタブのコントロールでは、フィールドの値に基づいてコンテナ内のTurbulence(乱流)の量を変化させることができます。
Control Field
有効な時、実行されるフォースが、このフィールドの内容でスケールされます。
Control Influence
Control Filed のその効果に対する影響力を制御するスケール係数。0
の値にするとフィールドが影響を持たなくなります。
Control Range
Control Filed のこの値の範囲からマップします。
Remap Control Field
Control Filed ランプを有効または無効にします。
Control field ramp
ランプの垂直軸が Turbulence(乱流)の量 で、水平軸が Control Fieldの値 です。 例えば、デフォルトのランプの形状では、左側が低く、右側が高く、Densityフィールドが高い箇所ほどTurbulence(乱流)が多く追加されます。
Visualization ¶
この効果によってVelocityフィールドに適用されているフォースをビューポートで可視化するには、これをオンにします。
Relationships ¶
Houdini 12以前では、Pyroソルバは、ソース、ポンプ、シンク、衝突ジオメトリを流体コンテナと関連付けるためにDOPリレーションシップを使用し、 Merge DOPやApply relationship DOPを使ってリレーションシップを作成していました。 Houdini 12以降で推奨されるメソッドは、SOPネットワークを使用してソース、ポンプ、シンク、衝突ジオメトリを作成して、それらをSource volume DOPを使って取り込むことです。
古いリレーションシップメソッドを使用してソース、シンクなどをセットアップしたい場合は、このタブのパラメータを使うことでリレーションシップを有効にすることができます。 デフォルトでは、リレーションシップがオフになっていて、ソルバはリレーションシップデータを無視します。
両方のメソッド(SOPジオメトリを取り込んで、それをソルバの“sourcing”入力に取り付け、さらにDOPオブジェクトリレーションシップをセットアップします)を使用することができます。 リレーションシップが有効な時、ソルバは、両方のメソッドからソース、シンクなどを結合します。
Enable Relationships
オブジェクトリレーションシップデータを使用して、ソース、ポンプ、シンク、衝突ジオメトリをシミュレーションに追加します(もしあれば取り込まれたデータがsourcing入力に接続されます)。
Advanced ¶
一般的には、これらのパラメータを変更する必要はありません。
Frames Before Solve
完全にSolveサイクルが計算される前に待つフレーム数を指定します。 それらのフレームでは、最後のソルバの入力(ソース)に適用されたオペレーションのみが計算されます。 これは、実際に最大グリッド上の完全Solveを計算せずに、データのソーシングとサイズ変更を有効にします。
Rest ¶
Auto Regenerate Rest Field
Turbulence(乱流)はRest(安定)フィールドを必要とするので、自然に煙と一緒に追従します。 あるオプションでは、ベースシミュレーションからRest(安定)フィールドを使用します。その場合は、これをオフにしてください。 これをオンにすると、新しいRest(安定)フィールドが作成されます。 このRest(安定)フィールドは、要求に応じて部分的に更新されるので、シェーディング目的には役に立ちません。
Rest Regeneration Threshold
Rest(安定)フィールドをリセットする前にどのように伸張させることができるのか。 これをほぼ1にするだけで、Restフィールドが常にリセットされます。
Rest Advection Speed
Rest(安定)フィールドが流体シミュレーションのRest(安定)フィールドと比較して移動する速さ。 Rest(安定)フィールドを遅くすることで、その伸張レートが小さくなりますが、Turbulence(乱流)が粘着性を持ったり、または遅延させることができます。
Advection ¶
Advection Type
フィールドの移流に使用するアルゴリズム。
Single stage
Gas Advect DOPと同等です。各ポイントが、一度Velocityフィールドを辿って、新しいボクセル値を探します。
BFECC and Modified MacCormack
2番目の基本Advection(移流)ステージを実行し、あまり分散しない、より鮮明な流体にします。
Clamp Values
BFECC and Modified MacCormack の移流タイプのエラー訂正は、コンテナの外部へボクセル値を動かすことができ、マイナスの密度といった変わったエフェクトを表現することができます。 このパラメータは、この問題を回避するためのメソッドを選択することができます。デフォルトは、“Revert”です。
None
エラー訂正が値をコンテナ外部へ動かさないように試みません。
Clamp
各ボクセルを可能な限り指定した8個の元の値の範囲に制限します。
Revert
エラー訂正されたボクセルが範囲外なら、それを単一ステージの値に戻します。
Revertは、エラー訂正が分析した箇所のチェック柄の画像の乱れを回避することができます。
Blend
移流フィールドがクランプ制限に到達した時に、非クランプ値とクランプ値間で滑らかなブレンドを適用します。 特に Revert オプションでは、小さな量の Blend (例 0.05 - 0.1)を適用すると、フィールドの滑らかさがなくなりますが、 移流フィールド内のグリッド状の乱れを軽減することができます。
Vel Advection Type
Velocityフィールドの移流に使用するアルゴリズム。リストのより上のタイプほど、フィールドの明白なViscosity(粘度)を少なくしますが、エネルギーが増え、サラサラになります。
Advection Method
パーティクルのトレースを制御します。
Single Step
各ボクセルでVelocityを受け取り、そのタイムステップに対して、その方向で単一ステップを作成します。 これが最も高速で、Velocityフィールドの速度とは無関係ですが、大きなタイムステップに対しては壊れ始めます。
Trace
バックトラックは、そのVelocityが更新される前に単一ボクセルよりも大きく動かさないので、より大きなタイムステップが可能です。
Trace Midpoint
Trace と同様ですが、2次の移流を使用して精度を出すので、シミュレーションが遅いです。
HJWENO
非ラグランジュインテグレータ。これは、理論的には分散フィールドのより正確な移流が可能です。残念ながら、サブステップが大きすぎると、爆発します。
Upwind
高速ですが、精度が良くない非ラグランジュインテグレータ。
Trace RK3
Trace と同様ですが、3次の移流を使用して精度を出すので、シミュレーションが遅いです。
Trace RK4
Trace と同様ですが、4次の移流を使用して精度を出すので、シミュレーションが遅いです。
Advection CFL
パーティクルをトレースする時、これは、パーティクルが一回の反復で移動可能なボクセル数を制御します。値が高いほど、トレースと移流が速くなりますが、エラーが多くなります。
Bindings ¶
あなたが行なっている事を本当に分かっていない限りは、このタブの値を変更しないでください。
Clear Fields ¶
Fields to Clear
Solveステップの後に指定したタイプのフィールドをゼロにします。これは、シミュレーションの完全な状態を保存した.sim
が余計な情報を持たないようにして、.sim
のサイズと保存時間を軽減します。
None
フィールドをクリアしません。
Static
次のタイムステップで不要なフィールドをクリアします。これらのフィールドのいくつかはガイドを持ち、それらのガイドは、大元のフィールドがクリアされているので、ゼロの値を表示し始めます。
Additional
各計算の後にクリアするスペース区切りのフィールドのリスト。
出力 ¶
First Output
この出力のオペレーションは、このノードに接続している入力に依存します。 オブジェクトストリームがこのノードの入力であれば、その出力も入力と同じオブジェクトを含んだオブジェクトストリーム(しかし、取り付けられたこのノードのデータを持ちます)です。
オブジェクトストリームをこのノードに接続しなかった場合、その出力はデータ出力になります。 このデータ出力をApply Data DOPに接続したり、他のデータノードのデータ入力に直接接続することで、 このノードのデータをオブジェクトや他のデータに取り付けることができます。
ローカル変数 ¶
channelname
このDOPノードはData Optionsページの各チャンネルとパラメータに対して、チャンネルと同じ名前のローカル変数を定義します。 例えば、ノードにPositionのチャンネル(positionx、positiony、positionz)とオブジェクト名のパラメータ(objectname)があるとします。
そのノードには、positionx、positiony、positionz、objectnameの名前を持つローカル変数も存在します。これらの変数は、そのパラメータに対する前の値を評価します。
この前の値は、処理されているオブジェクトに追加されたデータの一部として常に保存されています。 これは、本質的には以下のようなdopfieldエクスプレッション関数のショートカットです:
dopfield($DOPNET, $OBJID, dataName, "Options", 0, channelname)
データがまだ存在しないなら、ゼロの値または空っぽの文字列が返されます。
DATACT
この値は、現在のデータが作成されたシミュレーション時間(変数STを参照)です。 このノードが新しいデータを作成せずに既存データを変更していれば、この値は現在のシミュレーション時間と同じにはなりません。
DATACF
この値は、現在のデータが作成されたシミュレーションフレーム(変数SFを参照)です。 このノードが新しいデータを作成せずに既存データを変更していれば、この値は現在のシミュレーションフレームと同じにはなりません。
RELNAME
この値は、データがリレーションシップ(例えば、Constraint Anchor DOPがConstraint DOPの2番目、3番目、4番目の入力に接続されている時)に追加されている時だけ設定されます。
この場合では、この値は、データが追加されているリレーションシップの名前に設定されます。
RELOBJIDS
この値は、データがリレーションシップ(例えば、Constraint Anchor DOPがConstraint DOPの2番目、3番目、4番目の入力に接続されている時)に追加されている時だけ設定されます。
この場合では、この値は、データが追加されているリレーションシップのAffected Objectsすべてに対するオブジェクトIDをスペース区切りにしたリストの文字列に設定されます。
RELOBJNAMES
この値は、データがリレーションシップ(例えば、Constraint Anchor DOPがConstraint DOPの2番目、3番目、4番目の入力に接続されている時)に追加されている時だけ設定されます。
この場合では、この値は、データが追加されているリレーションシップのAffected Objectsすべてに対するオブジェクト名をスペース区切りにしたリストの文字列に設定されます。
RELAFFOBJIDS
この値は、データがリレーションシップ(例えば、Constraint Anchor DOPがConstraint DOPの2番目、3番目、4番目の入力に接続されている時)に追加されている時だけ設定されます。
この場合では、この値は、データが追加されているリレーションシップのAffector Objectsすべてに対するオブジェクトIDをスペース区切りにしたリストの文字列に設定されます。
RELAFFOBJNAMES
この値は、データがリレーションシップ(例えば、Constraint Anchor DOPがConstraint DOPの2番目、3番目、4番目の入力に接続されている時)に追加されている時だけ設定されます。
この場合では、この値は、データが追加されているリレーションシップのAffector Objectsすべてに対するオブジェクト名をスペース区切りにしたリストの文字列に設定されます。
ST
ノードが評価されるシミュレーション時間です。
この値は、変数Tで表現される現在のHoudiniの時間と同じではなく、DOP Networkの Offset Time と Scale Time のパラメータの設定に依存しています。
STは、シミュレーションの開始時間がゼロになるようになっています。
つまり、シミュレーションの最初のタイムステップをテストする時は、$T == 0
や$FF == 1
を使うのではなくて、$ST == 0
のようなテストを使うのがベストです。
SF
ノードが評価されるシミュレーションフレーム(正確には、シミュレーションタイムステップ番号)。
この値は、変数Fで表現される現在のHoudiniのフレーム番号と同じではなく、DOP Networkパラメータの設定に依存しています。 代わりに、この値は、シミュレーション時間(ST)をシミュレーションタイムステップサイズ(TIMESTEP)で割算した値と同じです。
TIMESTEP
シミュレーションタイムステップのサイズ。 この値は、1秒あたりのユニットで表現した値をスケールするのに役に立ちますが、タイムステップ毎に適用されます。
SFPS
TIMESTEPの逆数。 シミュレーション時間の1秒あたりのタイムステップ数です。
SNOBJ
シミュレーション内のオブジェクトの数。 Empty Object DOPなどのオブジェクトを作成するノードでは、SNOBJは、オブジェクトが評価される度に値が増えます。
固有のオブジェクト名を確保する良い方法は、object_$SNOBJ
のようなエクスプレッションを使うことです。
NOBJ
このタイムステップ間で現行ノードで評価されるオブジェクトの数。 この値は、多くのノードがシミュレーション内のオブジェクトすべてを処理しないので、SNOBJとは異なります。
NOBJは、ノードが各オブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJ
ノードで処理される特定のオブジェクトのインデックス。 この値は、指定したタイムステップで常にゼロからNOBJ-1まで実行されます。 この値は、OBJIDやOBJNAMEなどのシミュレーション内の現行オブジェクトを識別せず、現在の処理順でのオブジェクトの順番を識別します。
この値は、オブジェクト毎に乱数を生成するのに役に立ちます。他には、処理別にオブジェクトを2,3のグループに分けるのに役に立ちます。 この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら-1を返します。
OBJID
処理されているオブジェクトの固有ID。 すべてのオブジェクトは、すべての時間のシミュレーション内のオブジェクトすべてで固有な整数値が割り当てられています。たとえオブジェクトが削除されても、そのIDは決して再利用されません。 オブジェクトIDは、オブジェクト毎に別々の処理をさせたい場面(例えば、オブジェクト毎に固有の乱数を生成したい)で非常に役に立ちます。
この値は、dopfieldエクスプレッション関数を使って、オブジェクトの情報を検索するのにベストな方法です。
OBJIDは、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら-1を返します。
ALLOBJIDS
この文字列には、現行ノードで処理されているオブジェクトすべての固有のオブジェクトIDをスペース区切りにしたリストが含まれています。
ALLOBJNAMES
この文字列には、現行ノードで処理されているオブジェクトすべての名前をスペース区切りにしたリストが含まれています。
OBJCT
現行オブジェクトが作成された時のシミュレーション時間(変数STを参照)。
そのため、オブジェクトが現在のタイムステップで作成されたかどうかチェックするには、$ST == $OBJCT
のエクスプレッションが常に使われます。
この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJCF
現行オブジェクトが作成された時のシミュレーションフレーム(変数SFを参照)。
この値は、OBJCT変数にdopsttoframeエクスプレッションを使ったものと等価です。この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJNAME
処理されているオブジェクトの名前を含んだ文字列値。
オブジェクト名は、シミュレーション内で固有であることが保証されていません。 しかし、オブジェクト名が固有になるように注意して名前を付けていれば、オブジェクトの識別は、オブジェクトIDよりも、オブジェクト名を指定するほうが簡単です。
オブジェクト名は、同じ名前を持つオブジェクトの数を仮想グループとして扱うこともできます。
“myobject”という名前のオブジェクトが20個あれば、DOPのActivationフィールドにstrcmp($OBJNAME, "myobject") == 0
を指定すると、DOPがその20個のオブジェクトのみを操作します。
この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら空っぽの文字列を返します。
DOPNET
現在のDOP Networkのフルパスを含んだ文字列値。 この値は、ノードを含むDOP Networkのパスを知りたりDOPサブネットのデジタルアセットで非常に役に立ちます。
Note
ほとんどのダイナミクスノードには、そのノードのパラメータと同じ名前のローカル変数があります。 例えば、Position DOPでは、以下のエクスプレッションを記述することができます:
$tx + 0.1
これはオブジェクトをタイムステップ毎にX軸方向に0.1単位分移動させます。
Examples ¶
UpresRetime Example for Gas Up Res dynamics node
このサンプルでは、Up Res Solverを使って、既存のシミュレーションの時間を再調整する方法を説明しています。 このメリットは、シミュレーションの見た目に影響を与えずに簡単に速度を調整できることです。 Up Res Solverには、Timeタブがあり、シミュレーションの速度を変更する色々なコントロールがあります。