概要
実世界モデリングチームでは,複雑な構造や挙動を示す実世界の物象を選び,それを効率的かつ効果的にビジュアルシミュレーションする手法を模索してきました.なかでも流体は,映像やゲーム制作の現場に欠かすことのできない普遍的な対象として,研究室創設以来継続的に採り上げてきた題材のひとつです.基礎となる粒子ベース近似スキームは,火炎や砂塵,雪,血液,塗料などの具体的な対象ごとに柔軟に選択してきましたが,ここでは物理的妥当性と計算の容易さがうまくバランスしたSPH(Smoothed Particle Hydrodynamics)法に限定して,その代表的な高度化と適用の成果をお見せします.
高速化と安定化
プリビズでの利用を考えるとき,流体シミュレーションの高速化は必須の達成項目のひとつです.まず,ろうそくやバーナーのような,日常的に目にすることの多い,安定的に形成される比較的小規模な火炎の再現に主眼をおいたリアルタイムSPHソルバを実現しました[1, 2].ここでは,支配方程式であるナビエ・ストークス方程式の外力として,シンプルな化学反応モデルから発生した熱による浮力項を加えているのが特徴です.すなわち,提案ソルバは既存のSPHコードとも十分な互換性を保持しているため,より多元的な物理シミュレーションを一元的に管理することができるようになります.また,火炎の周辺に粒子が集中するように効果的にリサンプリングすることで計算コストを大幅に抑えています.

火炎シミュレーションの結果 [2]
[2]間淵 聡,藤代 一成,大野 義夫:「SPHベースリアルタイム火炎シミュレーション」,情報処理学会論文誌,vol.52,no.10,pp.2965–2972,2011年10月
粘性流体を数値的に安定してシミュレーションするために,陽解法による粘性積分を用いると時間幅が厳しく制限され,極端に長い計算時間が必要となってしまいます.そのような制限を打開するため,ポジションベース拘束を用いた粘性流体SPHシミュレーション法を提案しました.この拘束を管理することによって,物質の弾性変形が生成できるだけでなく,物質の相転移が熱伝導により生じる物性の変化も取り扱うことができるようになりました[3].

熱した粘性流を傾いた冷板に流すシミュレーションの連続体ビュー(上段)と粒子ビュー(下段)[3]
さらに,陰解法による粘性積分により,粘性流特有のバックリングやコイリングといった現象を安定的に再現することにも成功しています[4].

コイリング現象の再現[4]

バックリング現象の再現[4]
物理的忠実性の再現
上記の拘束は,体積保存性を考慮した粘弾性体のビジュアルシミュレーションの実現[5]にも役立ちました.

体積保存性を考慮した粘弾性体のビジュアルシミュレーション:初期状態(左),従来手法(中),提案手法(右)[5]
一方,ウォータークラウン現象や,平板に打ちまかれる塗料,水溜まりに落ちる雨のような日常的なシーンで,跳ね返った飛沫が織り成す複雑なテクスチャを再現することは,液体だけをモデリングの対象とする従来のSPH法では不可能でした.ところが,比較的近年の物理実験により,目に見えない空気層の存在がこの副次的な飛沫生成に大きな役割を果たしていることがわかったのです.そこで,空気分子からの圧力も考慮に加えたSPH近似を考案し,これらの現象をシンプルに再現することに成功しました[6].

飛散する着色塗料の液滴シミュレーション結果[6]
監督可能性
プリビズでの利用時に必要となるもうひとつの重要な性質は,監督可能性(directability)です.粒子ベース流体シミュレーションの実行に必要な多数の制御パラメータ値を適正化する作業は膨大な手間を要します.極論すれば,コードの開発者しかパラメータを調整できない可能性すらあるのです.
これを解決するアプローチとして,まず対象の対話的制御を目的とした仮想粒子の導入が挙げられます.例えば,戦闘シーンで頻出する流血のビジュアルシミュレーション[7]においては,出血量や血圧の変化を考慮したin-vivo粒子や,傷口から外界に流出して,皮膚に吸着して伝い,筋状の血痕を構成するflow粒子,凝固した血液成分を表現するadhered粒子に加えて,物理法則を無視してもディレクタがほしい位置に血痕を誘引する働きをするguiding粒子を設けて,監督可能性を緩やかに実現しています.

流血シミュレーションの結果[7]
また,映像制作を目的とした,砂塵のインタラクティブなユーザ操作にも取り組みました[8].そこでは,砂塵の軌跡制御に加えて,物体とのインタラクションや地面の状態による影響を考慮しています.剛体を複数の粒子の集合であると仮定することで,砂塵による物体の回転や変形,物体による砂塵の変形をシミュレーションしています.さらに,専用のインタフェースの開発によってユーザによる映像制作をサポートしています.

物体とのインタラクションを考慮した砂塵のビジュアルシミュレーション結果[8]
さらに,流体シミュレーションおよび流体制御に用いるパラメータ調整を,特定のモーションデータに対応させた直接操作によって直観的に行う試みも進めています[9].そこではLeap Motionを使い,両手のモーションデータを取得後,特定のモーションデータをジェスチャとして識別し,3次元空間内でジェスチャに応じた流体シミュレーションを実行します.
これにより,数値流体力学の詳細な知識を必要とせず,3次元流体の形状を意のままに制御することが可能となりました.

複数のハンドジェスチャーを用いた流体の動きの直接制御[9]