Bifröst 概要と概念

Bifröst は、FLIP(FLuid Implicit Particle)ソルバを使用して液体のシミュレーション エフェクトを生成できるプロシージャ フレームワークです。エミッタから液体を生成し、重力で落下させ、コライダを操作し、フローを制御し水しぶきを作成します。アクセレータを使用してジェットやその他のエフェクトを作成します。

Bifröst オブジェクト、ノードとアトリビュート

Bifröst シミュレーションのエフェクトは、シーン内のオブジェクトとノードの複数のアトリビュートによってコントロールされます。シミュレーションを編集して微調整していくと、いくつかの場所でアトリビュートを調整する必要があります。

シミュレーションに関連する 3 つの Bifröst オブジェクトがあります。
  • Bifrost オブジェクトには、Bifröst で生成されたデータの表現である bifrostShape ノード が含まれています。 ビューポート内でそのバウンディング ボックス上をクリックして選択することができます。ビューポート内での外観をコントロールすることができ、さらにこれを直接レンダーすることができます。このオブジェクトを動かすと、すべての計算はワールド スペース内で実行されるため、シミュレーションには効果がありません。
  • bifrostLiquid オブジェクトは、bifrostLiquidContainer ノードを保持します。このノードには、ボクセルの解像度や重力のベクトルなどのシミュレーションのためのグローバル コントロールが含まれています。これは、ビューポートに表示される小さいアイコンによって表されます。Bifrost オブジェクトと同様に、bifrostLiquid オブジェクトの移動は効果がありません。
  • bifrostMesh オブジェクトは、書き出しまたはその他の目的で、液体のサーフェスのポリゴン バージョンを保持することができるポリゴン メッシュです。既定では、メッシュをアクティブにするまでポリゴンを保持しません。その他の Maya メッシュと同様に移動することができます。

Bifröst オブジェクトに加えて、通常はシミュレーションに関連するいくつかの Maya メッシュがあります。これらは、たとえば、エミッタ、コライダなどシミュレーションに追加するメッシュです。シミュレーションにメッシュを追加する場合は、Bifrost 断面のシェイプ ノードに追加されます。 シミュレーションで特定のメッシュの効果をコントロールするには、これらのアトリビュートを変更することができます。

2 タイプのキャッシュ

Bifröst は 2 つの異なるタイプのキャッシュを使用します。
  • スクラッチ キャッシュは一時的なものです。これは、再生を高速化し、低から中の解像度(高いマスター ボクセル サイズ(Master Voxel Size))でシミュレーションのプレビューと調整を行うときに、前後にスクラブできるようにするために使用されます。スクラッチ キャッシュはオンザフライで生成され、シミュレーションを変更して最初のフレームに戻ると再生成されます。シミュレーション フレームは一時ファイル(既定でローカル ディスク上)に格納され、可能な限り多くのフレームがメモリに保存されます。一時ファイルはシーンを閉じたときに削除されます。スクラッチ キャッシュの使用に関する詳細については、「Bifröst シミュレーションをプレビューする」を参照してください。
  • ユーザ キャッシュは、設定の調整が終了した後に完了したシミュレーションを保存するためのものです。これは、シミュレーションをディスクから読み込むことができることを意味しており、再計算する必要がありません。通常、ユーザ キャッシュは低解像度シミュレーションのフロー全体に満足し、解像度を上げた(低いマスター ボクセル サイズ(Master Voxel Size))後に生成します。ユーザ キャッシュはファイルに格納され、既定ではプロジェクト フォルダ内の cache/bifrost/ フォルダのサブフォルダに格納されます。ユーザ キャッシュの詳細については、「Bifröst ユーザ キャッシュを使用する」を参照してください。

Bifröst 計算サーバ

Maya で別の Bifröst エフェクトを直接作成しますが、シミュレーション計算は Bifröst 計算サーバを使用して Maya の外部で実行されます。これにより、フレームがバックグランドで計算されている間 Maya をインターラクティブのままにでき、残りの処理が完了するのを待つ間、処理されたフレームで再生やスクラブが行えます。

実世界の単位と尺度

Bifröst は、速度と密度のような物理的で測定可能な数量の実世界の単位に基づいています。これにより、さまざまなシーン スケールおよび時間ステップにおいてリアルで期待どおりの結果を得ることができます。

既定の Bifröst アトリビュートは、1 メートルに等しい 1 グリッド単位のシーン スケールを前提としています。これは長さの基本 SI 単位になります。(SI は、単位の国際基準または、Système international を参照しています。)設定(Settings)にある作業単位(Working Units)セクションにあるリニア(Linear)設定は無視されます。たとえば、既定の重力による加速度は、m/s2 の SI 単位である実世界の値 9.8 です。異なるスケールを使用している場合は、この値およびその他の値を調整する必要があります。

たとえば、シーンが 1 センチメートルに等しい 1 単位のスケールにモデル化されている場合、bifrostLiquidContainer ノードの 重力マグニチュード(Gravity Magnitude) の値を 980(9.8m/s2 = 980cm/s2)に変更する必要があります。これにより、ボクセル サイズに関連する高い速度値に関係した問題を引き起こす可能性があります。トランスポート ステップの値を調整する必要がある場合があります(Bifröst シミュレーションの解像度と精度をコントロールするを参照)。

同じ方法で、エミッタの密度(Density) を変更する必要があります。 既定は、kg / m3 の SI 単位の水の密度に相当する 1000 です。1cm のスケールでは、0.001 (1000kg/m3 = 0.001kg/cm3 または 1g/cm3)に変更する必要があります。