我々が手に直接触れて、あるいは、道具を介して動かすなどの操作を行う対象は主に固体である。多くの研究者により剛体や弾性体の仮想空間におけるモデルが提案され、仮想物体操作が実現されてきた。しかし、実際には液体や気体に対する操作もある。流体の挙動シミュレーションやアニメーションに関する研究は行われているが、「操作」を考慮したものはない。そこで、新たな液体の表現モデルを考案し、仮想液体操作を実現した。これは挙動を厳密に再現するためのものではなく、操作に対する実際の挙動の特徴をリアルタイムに表現するものである。 |
| |
仮想液体操作を実現するにあたり、実際に液体を操作する場面、具体的な動作を基に重要となる要素を熟考し、液体との干渉を判定すべき仮想の容器を定義することにした。容器と液体との相互作用のみについて考え、現時点では液体と一般的な固体との相互作用については考慮しない。 |
| |
仮想空間内の液体の表現を、蛇口から流れ出る液体のような「自由落下状態」とカップの中にたまっている「静止状態」に分けて考える。それぞれの状態の液体を、粒子、および体積にのみ基づいて表現することにより対話操作に必要な計算速度を確保する。 |
| |
また各容器ごとに、容器の傾きによって変化する液面の位置と液体の体積を関係付ける関数を構築する。自由落下してきた液体粒子が容器の口を通過すると静止状態へと遷移し、変化した容器内の液体の体積に応じて液面を生成する。液体の体積が、満たし得る最大量を超えた場合には、容器の口の最も低い位置から粒子として流れ出す。容器と他の容器内の液体との干渉についても、前述の関数や容器の位置関係により適切に処理し、他の容器の液面の上昇や容器への液体の流入を実現している。 システムでは、体験者は落下してくる液体を容器で受け止めて、こぼすことができる。また、他の容器からすくうことも可能である。現時点では表示方法については重点をおいていないため、アニメーションや静止画として見るだけでは迫力に欠けるであろう。是非、自ら動かすコップによる、画面の中での水遊びを体験してもらいたい。 |
 |
| 講評 |
 |
 |
 |
| 液体の刻々と変化する動きを計算するのに複雑かつ大規模な計算が必要と思われたが、液体を細かい粒子として扱い、表現することで、高価なスーパーコンピューターを用いず、デスクトップ型ワークステーションでリアルタイムに液体の挙動の特徴を表現できたことは評価される。液体を扱う一連の作業が体験できることで、今後の液体を扱う分野のシミュレーションの応用に期待したい。 |