Doc:JA/2.6/Manual/Physics/Fluid/Domain
Page status (reviewing guidelines)
Text
todo: review the viscosity table commented text
|
流体ドメイン
ドメイン(Domain)オブジェクト
このオブジェクトのバウンディングボックスがシミュレーションの境界として使われます。流体オブジェクトはすべてこの中になければいけません。ドメインの外の流体はベイクされません。ほんのしずくでもドメインの中から外には出られません。見えない壁に囲まれているような感じです。シーンの中にはドメインはひとつだけ存在できます。
ドメインはつねに箱型として扱われるので、オブジェクトの形状は関係ありません(バウンディングボックスの寸法は関係ありますが)。よって、通常は箱型以外の形状にする理由はありません。他の形状の障害物や境界を使いたい場合は、このドメインの内部にそれを作って配置してください。
このオブジェクトはシミュレーションの際に流体に置き換えられます。
ドメインオブジェクトにベイクされます! | |
流体シミュレーションを計算すると、シミュレーションはドメインオブジェクトに対してベイクされます。したがって、ベイクに関するオプションはドメインオブジェクトが選択されているときのみ表示されます。
ベイクに関するオプションについてはこのページのベイクのセクションを参照してください。 |
オプション
- Bake ボタン
- ベイクに関するオプションについてはこのページのベイクのセクションを参照してください。
- Resolution
- Render resolution
- シミュレーションする際の細かさです。これはおそらく最も重要な設定項目でしょう。この値によって流体の細部の緻密さ、メモリとディスクの使用量、計算時間が決まります。
- 数値を上げると使用メモリは急激に増えるので注意してください。解像度が32では約4MB、64で約30MB、128では230MB以上になります。クラッシュやフリーズを避けるため、コンピュータのメモリの量に対して十分に低い解像度にとどめるように気をつけてください。また覚えておかなくてはいけないのは、多くのオペレーティングシステムでは1つのプロセス("Blender"など)が使えるメモリの量を制限しているということです。実際にはもっと搭載していてもです。自分のコンピュータにおける制限を調べておきましょう。
解像度とドメインのサイズ
現実世界におけるドメインの大きさにふさわしい解像度にしましょう(現実世界での大きさについてはDomain Woldパネルを参照)。ドメインが立方体でない場合、解像度は最も長い辺に対して計算されます。他の辺に対しては長さに応じて解像度が下がります(つまり、解像度が同じなら直方体のほうが使用メモリは少なくなるということです)。
|
- Preview resolution
- 生成されるプレビューメッシュの解像度です。よってこれはシミュレーションそのものには影響しません。一見何も見えなくても、プレビューの解像度では見えないだけで実際にはわずかな流体が存在しているという場合もあります。
- Display quality
- ベイクしたシミュレーションを3Dビューで表示(Viewport Display)、およびレンダリング(Render Display)するときの描画の種類。
- Geometry: オブジェクト本来(シミュレーションする前)の形状を使います。
- Preview: オブジェクト本来の形状を使います。
- Final: 最終的な高精度のメッシュを使います。
- ベイクデータが見つからない場合、デフォルトで本来の形状が使われます。
- ドメインをベイクすると、3Dビューには(通常は)プレビューメッシュが表示されます。本来のドメイン形状を見たい場合はドロップダウンリストからGeometryを選んでください。
- Time
- Start
- シミュレーションの始まる時間(秒)。
- この値を変えることで、シミュレーションの計算を途中の時間から始めることができます。その時間以前のドメイン変形や流体の動きは保存されません。
- たとえば、シミュレーションが始まって4秒たった時点から実際のフレームが始まってほしい場合、4.0と入力します。
- End
- シミュレーションが終わる時間(秒)。
StartとEndはベイクされるフレーム数とはまったく関係ありません | |
Startを3.0、Endを4.0に設定したとすると、1秒間ぶんのシミュレーションが行われます。この1秒間が、フレーム1からアニメーション終了フレームまで引き伸ばされます。 つまり、たとえばBlenderを25fpsで250フレーム再生する設定にしていた場合(Sceneコンテキスト → Renderサブコンテキスト → AnimおよびOutputパネル)、すでに3秒間経っているような状態で流体のシミュレーションが始まり、そこからスローモーション(通常の1/10のスピード)で流れます。1秒間のシミュレーションが10秒間のビデオとして生成されるからです。これを正しくするには、終了時間を3.0+10.0=13.0として、250フレームを25fpsで再生したときの秒数と合わせます。これでシミュレーションは現実どおりの時間で流れます。10秒間のシミュレーションが10秒間のアニメーションとして生成されるわけです。このようにしてシミュレーションのスピードをコントロールできます。 |
- Generate Speed Vector
- このボタンを押すと、速度ベクトルが生成されません。デフォルトでは速度ベクトルが生成されディスクに保存されます。このベクトルはコンポジティングノードでモーションブラーをかける際に使用されます。
- Reverse fluid frames
- シミュレーションが逆向きに計算されます。
- Bake directory
- ベイクに関するオプションについてはこのページのベイクのセクションを参照してください。
Domain World
- Viscosity(粘度)
- 流体の「とろみ」のようなものです。具体的には、ある表面上である速度でオブジェクトを動かすのに必要な力の大きさです。数値を入力することもできるし、プリセット(はちみつ、油、水など)から選ぶこともできます。
- 自分で入力する場合に覚えておくべきこととして、通常、現実世界の粘度(いわゆる動的粘性率 dynamic viscosity)はパスカル秒(Pa・s)またはポアズ(P、1P=0.1Pa・s、粘性流体の層流に関する法則を発見したフランスの物理学者ジャン=ルイ・ポアズイユに因んだ単位)、また一般的にはセンチポアズ(cP、1cP=0.001Pa・s)という単位で測られます。一方Blenderでは、動粘度 kinematic viscosity(動的粘性率Pa・sを密度kg・m3で割ったもの。単位
m2・s-1
)という指標を使っています。下記の表ではいくつかの流体の動的粘性率および動粘度を示しています。 - 入力は浮動小数点実数と指数で行います。このような方法(科学的表記法)は非常に小さな数値から非常に大きな数値まで簡単に表せます。室温の水の粘度は1.002 cP、すなわち0.001002 Pa・sで、密度は約1000 kg・m-3です。ここから動粘度を計算すると0.000001002 m2・s-1、すなわち1.002に10の6乗をかけたもの(科学的表記では1.002×10-6)となります。溶けたガラスや鉄も流体ですが、粘度は非常に高いです。動粘度1.0×100(=1.0。また動的粘性率でいえば1.0×106 cP)くらいを入力しないといけないでしょう。
- 注意してほしいのは、このシミュレーターは非流体、つまり「流れる」ということがない物体には向いていないということです。単純に非常に大きな粘度を入力しても剛体の振る舞いをするわけではなく、不安定になるだけでしょう。
粘度は変化します
Blenderのプリセットの粘度は、それぞれの流体に典型的で、アニメートしたときにそれらしく見えると思われる値を設定してあります。しかし、現実にはいくつかの流体、たとえばチョコレートシロップやはちみつのように糖分を含んだ流体などは、温度と濃度に応じて粘度が変わります。オイルの粘度はSAE値(米国自動車技術者協会による粘度分類)によって様々です。室温のガラスは基本的に固体ですが、1500℃ではほぼ水のように流れます。
|
Fluid | dynamic viscosity (in cP) | kinematic viscosity (Blender, in m2.s-1) |
---|---|---|
Water (20°C) | 1.002×100 (1.002) | 1.002×10-6 (0.000001002) |
Oil SAE 50 | 5.0×102 (500) | 5.0×10-5 (0.00005) |
Honey (20°C) | 1.0×104 (10,000) | 2.0×10-3 (0.002) |
Chocolate Syrup | 3.0×104 (30,000) | 3.0×10-3 (0.003) |
Ketchup | 1.0×105 (100,000) | 1.0×10-1 (0.1) |
Melting Glass | 1.0×1015 | 1.0×100 (1.0) |
- Realworld-size
- 現実世界におけるドメインの大きさ(メートル)。コーヒーカップなどを作るなら10cm(0.1m)、スイミングプールだったら10mなどでしょう。この長さはドメインの一番長い辺の長さとして計算されます。
- Optimization
- Gridlevel
- シミュレーションでいくつの適応的グリッドレベルが使われるかを決めます。-1にしておくと自働的に選択されます。
- Compressibility
- 大きくて縦に長い流体の領域を高解像度でシミュレーションする際に問題が起こる場合は、この値を下げるといいかもしれません(そうすると計算時間は増すので注意してください)。
Domain Boundary
ここですべり具合と滑らかさの設定をします。
テンプレート:Doc:JA/2.6/Manual/Physics/Fluid/split type
- Surface
- Surface Smoothing
- 流体の表面のスムース化の度合いです。1.0が標準、0が無効です。大きくするほど滑らかになります。
- Subdivisions
- シミュレーション内で直接的に高解像度に再分割された表面を生成します(逆に、モディファイアなどを使うとシミュレーションの後で再分割することになります)。1は再分割をしない設定で、数値をあげるごとに流体のボクセルが一段階ずつ再分割されます。その結果メッシュデータは大きくなり、必要なディスクスペースも増します。あまり大きな値にすると表面を生成するのに時間がかかるので注意してください。
- Hide fluid surface
Domain Particles
視覚的効果を高めるために、シミュレートした流体にパーティクルを加えることができます。
- Tracer Particles
- シミュレーションする際に流体の中に配置するトレーサーパーティクルの数。これを表示するには後述のパーティクルタイプのオブジェクトを作成します。このベイクにはドメインと同じディレクトリが使われます。
- Generate Particles
- 生成する流体パーティクルの量(0=無効、1=標準、>1=それ以上)。これを使うにはSubdivisionsを2以上にしてください。
ベイク
ベイクボタン(BAKE)
シミュレーションを実行します。Blenderは通常通りに動き続けますが、ウィンドウの上部、レンダリングメニューの隣に、ステータスバーが表示されます。その横でEscまたはXを押すとシミュレーションを中止できます。シミュレーションが終了すると、指定したディレクトリ内に2つの“.bobj.gz”ファイル(プレビュークオリティと最終クオリティ)と1つの“.bvel.gz” ファイル(最終クオリティ)が各フレームに対して作られます。
ベイクディレクトリ
必須!
ベイクしたメッシュを保存するためのディレクトリおよびファイルの接頭語です。
アニメーション出力の設定に似ていますが、ファイルの選択の仕方だけ少し違います。以前に生成したメッシュ(たとえば“untitled_OBcube_fluidsurface_final_0132.bobj.gz”)を選択した場合、接頭語(ここでは“untitled_OBcube_”)の設定に自動的に反映されます。このようにしてシミュレーションを違った設定で何度か行い、そのデータ群を簡単に切り替えられます。
デフォルトのディレクトリ“/tmp/”はおそらく望ましくないでしょう。適切なディレクトリ名およびファイル名接頭語を設定すると、それに応じた場所とファイル名でデータが保存されます。たとえば二つのシミュレーションデータが互いにぶつかったりせずにすみます(ディレクトリ名だけを指定したい場合は、最後に“/”をつけるのを忘れないようにしてください)。
注意
- ドメインは1つだけ
- シーン同士の間にまたがったりリンクしたりする可能性のため、存在できるドメインはひとつの.blendファイルにつきひとつだけです。
- ベイクドメインを選択する
- ベイクしたドメインは流体メッシュに変わります。変更を加えて再度ベイクするためにドメインを選択したい場合は、どのフレームでもいいのでRMB で流体メッシュを選択してください。そしてベイクボタンを押せば再計算が始まります。
- ベイクはつねにフレーム1から始まります
- 流体シミュレーションはAnimパネルのSta設定に関係なく常に1フレーム目から始まります。
- シミュレーションをもっとあとのフレームから始めたいときは、ドメインの中で流体のアニメーションキーを記録して、目的のフレームまで静止させておく必要があります。詳しくは流体のプロパティをアニメートするを参照。
- ベイクはつねにAnimパネルのEndで設定されたフレームで終わります
- 仮にフレームレートが25fpsで、シミュレーションの終了時間が4.0秒(そして開始時間は0.0 秒)の場合、アニメーションは4.0 × 25 = 100フレーム目で終わるようにしてください。
- 以前のベイクデータを開放する
- ベイクディレクトリの中身を削除するという破壊的な手段でこれを実行できます。二つ以上のシミュレーション結果が同じディレクトリ内にあるときは注意してください(違うファイル名を使っていることを確認してください。そうでないとどんどん上書きされます)。
- ベイクデータを再使用する
- 以前にベイクに使ったディレクトリおよびファイル名を入力すれば、シミュレーションの内容を切り替えられます。このようにして以前のベイクデータをまた使うこともできます。
- ベイクにかかる時間
- ベイクには「多大な」演算パワー(および時間)を使います。シーンの内容によっては、ベイクは夜中にかけて行うのがいいでしょう。
- メッシュにモディファイアが設定されている場合、流体の計算にはレンダリング用の設定値が使われます。その設定によっては計算時間とメモリは指数関数的に増大します。たとえばSubsurfされたメッシュを動く障害物に使う場合、Subsurfを無効または低いレベルにすると計算時間を減らす役に立ちます。正しく準備すれば、リアルな結果を生み出す方法はいつだって他にもあるものです。