平成 27 年度 卒業論文

VR 科学実験システムのための仮想液体操作モデル
における固体溶解時の色表現

指導教員
舟橋

名古屋工業大学

工学部

平成 21 年度入学

情報工学科

21115090 番

田中裕士

健司

准教授

i

目次
第 1 章 はじめに

1

第 2 章 粒子・体積に基づく仮想液体の表現
2.1 液体の状態とモデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 仮想容器のモデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 仮想容器の表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 液体の流出点及び液位 . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 容器と液体との相互作用モデル . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 自由落下状態の液体と容器 . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 容器内状態の液体と容器 . . . . . . . . . . . . . . . . . . . . . . . .
2.3.3 液面の上昇 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.4 液体の流入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.5 容器からの液体の流出 . . . . . . . . . . . . . . . . . . . . . . . . .

3
3
4
4
6
7
7
7
7
8
8

第 3 章 固体溶解時の色表現
3.1 拡散方程式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 底面での色の拡散 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 色の拡散モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2 ３次元拡散方程式 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 側面での色の拡散 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 DCS バッファ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2 側面での色の拡散 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 固形物の液体への投入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 固形物の操作・挙動 . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.2 固形物の液体との干渉 . . . . . . . . . . . . . . . . . . . . . . . . .

9
9
10
10
11
12
12
14
15
15
15

第4章
4.1
4.2
4.3

16
16
18
23

実験とその結果
実験システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
実験の様子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
実験の結果・評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

第 5 章 むすび

24

謝辞

25

参考文献

26

1

第 1 章 はじめに
近年, バーチャルリアリティ（ Virtual Reality:以下,VR ）に関する研究が数多くされてており我々の生活においても身近な場面で新たな役割を持ちつつある. 我々の生活においてより身近で , かつ新たな役割を持ちつつある. VR 技術とは , 人工的に我々の視覚や聴覚といった五感に与えた情報で仮想の物体や環境を現実に存在するかのように体験者に感知させる技術である [1]. VR 技術において, 体験者が実際の環境で感じる感覚と同等の経験を得られるかど うかは非常に重要なことである．身近な例を上げればアミューズメント
パークやゲームなどでは積極的に VR 技術を取り込んでおり, より多くの刺激や没入感を実現してきた.
VR 技術のメリットとして再現する対象が実際に行おうとすれば大掛かりにならざるを得ない程コストを縮小させることが可能となり, かつそれを簡単に映像ファイル等のデー
タに変換したり, 短い期間繰り返し行うということもできる. また, 環境さえ整えば誰でも体験することが可能であり, もちろん現実では困難な体験を手軽に経験することができた
り, ロボットを通じて困難な作業を成功させることもできる. 前者のメリットに注目してVR 技術が使われている例として自然災害時の避難や飛行機でのトラブル時の訓練や実際に起きた事故の再現データから原因を推測するのに使われたりする [2]. そして後者のメリットから前述した娯楽分野にて使用されるのはもちろん医学分野において問診や触診によってフィジカルアセスメントの需要の増大からリアルタイムでの医療学習シミュレータ
や, 重病の子供が病室で体験できる学習シミュレータなどである. またロボットを通じて危
険の多い場所でのロボットを通じて行う作業もある [3]. これらでは特にリアルタイム性が重要視される。
これらの理由のために VR システムを実現するための対話操作の研究もされており, 特に剛体や弾性体といった物体の挙動の再現のための研究は非常に多い．他にも我々の生活の中で身近なものとして , 液体があげられる．液体は流動的で , 連続的に変化しやすい性質をもつため, その挙動を再現するのは剛体と比較して難しい．しかし , 料理や化学実験などのシミュレータを VR 技術を用いて実現するためには , 液体を仮想的に扱う必要がある．
液体の対話操作の研究の一つに Smooothed Particle Hydrodynamics（以下 SPH 法）[4][5] [6] [7] という手法に関する研究がある．SPH 法では , 液体を粒子の集合と考え , その粒
子一つ一つに速度や密度などの物理量を与え , それら全ての粒子に物理法則を用いた計算をすることで , 対話操作を実現している．流体の表面に衝突する円板について, この SPH法を用いてシミュレーションを行った研究 [6] や, 仮想流体の対話操作 [8] などで再現性の高い結果を得ることができている. しかし , これらの研究では , 正確な挙動が再現出きるが ,そのために膨大な計算が必要となり, 性能の高い計算機が必要となる．さらに流体のみでなく, 他物体との干渉も考慮する必要がある場合には , この方法を用いることは難しいのではないかと考えられる.

第 1 章 はじめに2

ところで ,VR 技術の研究においては , 主に以下の二つの点のど ちらかに重点をおくことが多い. 一つ目は , どれだけ現実の挙動に近く厳密に再現できるかという点である. 液体の対話操作に関しては ,SPH 法がこれにあたり, 水しぶきや対流などを厳密に再現することができる. しかし , これには膨大な計算必要となるため, 処理速度の低下は避けられず , 対話操作には向いていない. 二つ目は , 対話操作に重点をおき, 操作者の操作に対してすぐに反応し , 挙動できるかという点である. こちらは , 厳密な挙動を再現することはできないが ,非常に高速な処理速度に重点をおいているため, 操作者は臨場感のある操作ができる. 当研究室では , 液体の対話操作に重点をおいた粒子・体積ベース仮想液体モデルを提案している. これは仮想液体の対話操作に重点を置いた研究であり非常に速い処理速度で仮想液体の対話操作を実現している [9][10].
本モデルでは , 液体を自由落下状態と容器内状態の二つに分け , 前者の状態であれば粒子として, 後者の状態であれば体積に基づいて表現している. この粒子の状態では , 互いに干渉しないものと考えることによって, 計算の高速化をしている. これら二つの状態を組み合わせることによって, 操作者は液体を容器に入れる, 容器から液体をこぼす, 容器から液体をすくうなどといった, 我々が液体に対して行う基本的な動作を高い臨場感で行うことができる. また, 液面に波や渦, 色の変化などの表現を行うことで , より高い液体らしさを表現している. この仮想液体モデルを用いて, 小学生程度の子供を対象とした VR 化学実験システムの開発をしている．このシステムでは , 理科の実験で行われる液体と液体の混合による色の変化を仮想的に行うことができる. これにより理科の授業で行われるような , 試
薬としての液体同士の混合による化学反応を , 仮想的に体験することができる. これにより, 入院などにより学校へ通えない子供達でも体験を通じた学習が可能となる.
これまでは , 液体同士の混合のみを対象としていたが , 理科の実験では固形物を液体内に投入して溶解させることで , 色が変化したり気泡が生じたりする反応もある. 液体同士のみを対象としていたため, 混合時の色の変化は容器内の液体上方, 液面上面付近から起こるものとしていた. また容器下方から覗き込むことは想定せず , 底面の描画は行っていなかった. 固形物投入時は , 固形物が速やかに沈み, 底面付近から色の変化が起こることが想定される. そこで本研究では , 上面における色変化の表現法を基に底面での色変化を表現する. また側面における色変化の方向を下から上へとし , 最終的に上面の色も変化させる. 投入時には上面を波立たせることで , 液体内への固形物の投入、溶解を伴う化学実験を高い臨場感で体験可能とする。
以下,2 章では当研究室での従来研究である粒子・体積モデルの概略を説明する．そして3 章では底面の描画と色の拡散、側面の下から上への色の変化などについて述べる. 4 章
では , 実験及び結果,5 章は本研究のまとめを述べる．

3

第 2 章 粒子・体積に基づく仮想液体の表現
本章では , 当研究室でこれまでに提案されている粒子・体積ベースの仮想液体モデルの概要を説明する（ 詳しくは文献 [11][12] を参照されたい）. 粒子・体積モデルでは，仮想液体を自由落下状態と容器内状態の 2 つの状態に分けて考える. 自由落下状態では粒子として, 容器内状態では体積に基づいて表現する. 液体を全て粒子で表現するわけではないため, 非常に速い処理速度での対話操作を可能としている. このモデルでは , 操作者が液体を扱う上での基本的な操作が可能である [15].

2.1液体の状態とモデル

粒子・体積ベースの仮想液体モデルでは , 液体の状態を以下の 2 つに分けて考える.

(1) 自由落下状態 (水道の蛇口からこぼれ落ちる液体)(2) 容器内状態 (コップなどの容器内に溜まっている液体)(1) の状態では , 粒子に基づく表現を行う. ここでは液体の厳密な挙動の再現ではなく, 対話
操作を第一の目的としているため, 各粒子の大きさは考慮しないものとし , 粒子同士の衝突などの干渉はおこらないものとする. 各粒子の 3 次元仮想空間内での時刻 t における座標
を Pi (t)(i = 1, 2, …, N ; N : 粒子数) とし重力, 慣性に従って移動する. これより Pi (t) は式(2.1) により決定される.
Pi (t) = 2Pi (t − ∆t) − Pi (t − 2∆t) + g∆t2

(2.1)

ここで , g は下向きの重力加速度ベクトルであり, ∆t は描画更新間隔, すなわち描画更新
レート (frames/sec.) の逆数である. 空気抵抗などによる広がりを表現する場合は , 式 (2.1)の右辺に微小乱数値 Ri (t) を加える. (2) の状態では , 容器内の対流などは考慮せずに静止しているものとして扱い, 体積に基づき表現を行う. すなわち, ある時刻 t において液体が仮想空間内に定義された容器の中に存在する場合, その容器の中に V (t) の液体が存在していると表現する. このとき, 上述した粒子としての液体の性質は考慮しない. 2 つの状態間で状態の遷移は , 換算比 N [粒子数/体積] によって換算を行う. 例えば , 容器を傾けることにより体積 V の液体を全て落下させた場合は , 容器内の液体の体積は 0 となり, 自由落
下状態の液体の粒子数は N V だけ増加する.

第2章

粒子・体積に基づく仮想液体の表現

2.2

仮想容器のモデル4

仮想空間内に定義すべき液体との相互作用を考慮する仮想容器についての説明をする.
容器は操作者が移動できるものと , 仮想空間内に固定されたものの 2 つがある. ここでは 2つを同様に扱い. また容器は凸形状であるものとする．

2.2.1

仮想容器の表現

まず , 図 2.1 に示すように , 容器を内包する球を考える. この球の中心座標を C, 半径を rとする. 容器の 3 次元空間における位置はベクトル C に基づいて表現する. 次に容器の回転について考える. 図 2.2 に示すように C を原点とする容器座標系 (軸 xc , yc , zc ) を設定する. 容器の傾きは 軸 yc と球との交点 (図 2.2 中 d1 ) の位置の変化 (極座標的な表現) により表現する．具体的には xc を軸として点 d1 が点 d2 に移動するように容器を角度 φ だけ回転し , さらに zc を軸として点 d2 が点 d3 に移動するように容器を角度 θ だけ回転する．これにより,2 つのパラメータ θ,φ で容器の傾きを表現することができる.2 つの値が 0 の時,
容器は傾いていない状態である. また, 容器の方向の変化として, yc を軸として角度 ψ だけ回転行う. この回転による容器内に満たし得る液量の変化はない. これら C, θ, φ, ψ は , そ
れぞれの容器ごとに設定されており, 移動する容器については時刻 t の関数として表す.

第2章

粒子・体積に基づく仮想液体の表現

図 2.1: 容器モデル (1)図 2.2: 容器モデル (2)

5

第2章

粒子・体積に基づく仮想液体の表現

2.2.2

液体の流出点及び液位6

容器内に存在する液体の体積が容器内に入り得る液体の最大容積を超えた場合, 液体は溢れ出る. そのときの仮想容器の各パラメータを図 2.3 に示す. この液体が溢れ出す容器の点を流出点 F と定義する. 厳密には , 液体が溢れ出す箇所は線分で表される場合があるが ,本モデルでは液体は一点の流出点から溢れ出すものとする. 流出点 F を容器を内包する球の中心点 C を基準とする相対的なベクトル F として次式 (2.2) にて表す．

F = f (θ, φ, ψ)(2.2)

容器内で静止している液体の液面の高さを液位と呼ぶ. 本モデルにおいて, 容器内状態にある液体の液面を基準とし , この液面を基準液面と呼ぶ. 液位および液面が容器の最上部に達したときの体積を最大容積 Vm とする. 液位 H は , 容器内の体積 V (V ≥ 0) であるとき，球の中心点 C から鉛直方向 H の位置に存在するものとし , 次式 (2.3) にて表す．

H = h(θ, φ, V )(2.3)

液位 H の存在範囲は , 容器を内包する球の半径が r であることにより‐r < H < r であるが , 容器の形状や傾きのよっては更に狭い範囲に存在する. また, 式 (2.3) を体積 V について変型することにより, 次式 (2.4) を得る．

V = v(θ, φ, H)(2.4)

式 (2.4) において, 容器より下方の H を与えた場合は V = 0 流出点 F よりも上方の H を与えた場合は , V = v(θ, φ, Fy ) = Vm (θ, φ) とする. このとき, Fy は F の鉛直方向の座標であるため, 角度 ψ には依存しない. また, 液位 H のときの液体の体積に , 液面よりも下方に存在する容器の厚みを加えた体積を次式 (2.5) にて表す. 容器の厚みを考慮しない場合は ,V = V + とする．
V + = v + (θ, φ, H)(2.5)

図 2.3: 容器内の液体モデル

第2章

粒子・体積に基づく仮想液体の表現

2.3

容器と液体との相互作用モデル

7

本節では，自由落下状態と容器内状態の 2 つの状態における液体と容器の液体との相互作用のモデルについて説明する．

2.3.1

自由落下状態の液体と容器

自由落下状態の液体が各容器の流出点を通過した場合, その液体を状態 (1) から状態 (2)に変える. すなわち, 粒子としては消滅させ, 換算比をもとに体積に変換させる必要がある.
ある容器の流出点を通過した粒子が n 個 (n ≥ 0) の場合, その容器内の時刻 t における液体の体積 V (t)(0) は，次式 (2.6) で表す.

V (t)(0) = V (t − ∆t) + n/N(2.6)

次節で述べる容器内状態の液体と容器との干渉がなければ , 時刻 t における容器内の液体の体積を V (t)(1) = V (t)(0) とし , 液位 H(t) を次式 (2.7) で決定する.

H(t) = v + h(θ, φ, V (t)(1) )

2.3.2

(2.7)

容器内状態の液体と容器操作者が自由に移動, 回転が可能な容器を容器 1, 固定されている容器を容器 2 とする．
各記号の添字 1,2 は各容器 1,2 に対応している.2 つの容器と液体との相互作用について述べる. 時刻 t において, 次式 (2.8) が成り立つ場合, 容器 1 と容器 2 内の液体は互いに干渉しているものとする.
(0)
C1 y − r1 < C2 y + H2 (θ2 , φ2 , V2 )(2.8)
式 (2.8) において, Cj y は容器 j の位置の Cj の鉛直方向の座標である. このとき, 容器 2 内の液体の液位が容器 1 によって上昇させられている体積を U21 ≥ 0 を次式 (2.9) にて表す.
U2 = Σ jU2j (2.9)
U2 = Σj U2 j
(2.9)
容器と液体が干渉しており, かつ次式 (2.10) が成立するとき, 容器 1 の流出点よりも下の部
分と容器 2 の液面が干渉している.
(0)

C2 y + h2 (θ2 , φ2 , V2+
) < C1 y + F1 y
+ Vm1

(2.10)式 (2.10) が成立しないときは , 容器 1 に容器 2 の液体が流出する.

2.3.3

液面の上昇

容器と液面が干渉しているとき, 容器 1 が容器 2 の液位を上昇させている. このとき, 容
器 2 の液位 H2 は式 (2.11) を満たすように設定している.
(0)

H2 = h2 (θ2 , φ2 , V2

+ U21 )

(2.11)

第2章

粒子・体積に基づく仮想液体の表現

8

U21 = V1 + (θ1 , φ1 , C2 y + H2 − C1 y)(1)

また, それぞれの容器内の液体の体積を Vj
する.

2.3.4

(0)

= Vj

(2.12)とし , 容器 1 の液位を式 (2.7) で決定

液体の流入

容器 1 に容器 2 の液体が流入する場合, さらに次式 (2.13) が成立するとき, 液体の流れ込
みは容器 2 の液面が容器 1 の流出点に達した時点でとまる.
(0)

V2

(0)

= U21 − v2 (θ2 , φ2 , C1 y + F1 y − C2 y) < Vm1 − V1

(2.13)

この場合, 容器 2 の液位が容器 1 の流出点となるように次式 (2.14) により設定する．

H2 = (C1 y + F1 y) − C2 y

(2.14)

これに合わせて各容器の体積を計算する．
(1)= v2 (θ2 , φ2 , H2 ) − U21

(1)

+ V2

V2

V1

(1)

(0)

= V1

(0)

+ V2

(2.15)(2.16)式 (2.13) が成立しないとき, 容器 1 の流出点よりも上方に容器 2 の液面が存在することに(1)
なる. このとき, 容器 1 の液体の体積 V1 を最大液量 Vm 1 に , 液位 H1 を r1 とし , 液面は考
慮しないものとする. 容器 2 の液体の体積と液位は式 (2.16) および次式 (2.17) にて表す.
(1)

H2 = h2 (θ2 , φ2 , V2

+ U21 )

(2.17)

以上のように設定しておくことで , 時刻 t + ∆t において 2 つの容器間での液体の移動がなくなった場合, 液体をすくい取る操作が可能となる.

2.3.5

容器からの液体の流出

容器同士の干渉や容器の傾きにより, 時刻 t おいて次式 (2.18) をみたす場合は , 液体が容器から流出する．
V (1) + U > Vm
(2.18)
容器内の体積で表現されている液体の一部を N (V (1) + U‐Vm ) 個の粒子として流出させる．このときにおける容器内の体積を次式 (2.19) で表す．

V (t) = Vm − U
式 (2.18) を満たさない場合は , 液体粒子の流出はなく,V (t) = V (t)(1) とする．

(2.19)

9

第 3 章 固体溶解時の色表現
本章では , 液体 (溶液) の中に固体 (固形物) を投入し , 底まで沈んで溶解したときに , 容
器下方の底面から上方へと液体の色が変化していく様子を表現する手法について述べる.
具体的には , これまでに提案している液体上面と側面における色の表現法 [13][14] を基に、モデルを提案する.

3.1

拡散方程式

本節において色の自然拡散の表現に使われる拡散方程式を説明する. 自然界において静止状態の水の中に静かに別の液体, もしくは水溶性の高い固体の物体が流入した場合, その物質は時間と共に混ざ り合いながら液体全体に広がり, やがて均一な状態になる. これは流入液体内の微小粒子や溶媒内の微小粒子が衝突を繰り返しながら , ランダムに熱運動し ,溶媒中に広がっていくためである. このような現象は拡散現象と呼ばれ , それを数学的に記述した式が拡散方程式である. 拡散方程式は , 物質中における温度の伝わり方のシミュ
レーションなどにも用いられる. 次式に ,2 次元拡散方程式を示す.

δ 2 Q(x, y, t) δ 2 Q(x, y, t)δQ(x, y, t)
= D(
+
)
(3.1)
δt
δx2
δy 2
ある多量の粒子が時刻とともに拡散していく状態を考えると , Q は時刻 t の x, y 平面上における粒子の濃度分布, D は拡散係数と言い粒子が拡散する速度を調整する定数である.
この式 (3.1) を , 格子点間隔 d を用いて中央差分で近似することで式 (3.2) を得る.
(Q[i][j](t + ∆t) − Q[i][j](t))/∆t =((Q[i + 1][j](t) + Q[i − 1][j](t) + Q[i][j + 1](t) + Q[i][j − 1](t)− 4Q[i][j](t))D/d2 )(3.2)

ここで ∆t について,

D∆t
= D0
2
d
とおき、簡略化した式を整理することで次式の漸化式を得る.

(3.3)

Q[i][j](t + ∆t) =Q[i][j](t) + (Q[i + 1][j](t) + Q[i − 1][j](t) + Q[i][j + 1](t) + Q[i][j − 1](t)− 4Q[i][j](t))D0
D0 を調節することで Q の値が拡散する速度を調節できる.

(3.4)

第3章

固体溶解時の色表現

3.2

底面での色の拡散

10

まず「底面」を改めて定義する. 仮想容器の形状は凸型多面体と限定して考え , かつ固定容器という前提で液体の挙動を考える. そしてこの場合の「底面」とは上面と反対側にある面であり, 上面が容器内の液体の体積から算出される液位という容器内で最も高い高さに描写されるのに対して, 底面は常に容器の最も低い位置に描画され 、上がったり下がったりはしない.

3.2.1

色の拡散モデル

液体の上面と同じように二次元拡散方程式に基づいて色を拡散させる. 液体の上面での色の拡散は上記の式 (3.4) を使い実装している. また式 (3.4) の Q を伝搬を実現するための密度を表す変数 P として考え , 同じ構造体に色のベクトル値 C(RGBA 値) を共に格納する.
自由落下状態の固形物が底面に達した場合の色の拡散の開始地点の位置座標は t − ∆t の
位置座標を容器座標系に変換して求めた上で , 色とその密度を更新する. 底面での色の拡散は図 3.1 のように液面を格子状に分解し , その各格子点上に色の情報として色のベクト
ル値 C(RGBA 値) と , 色の伝播を実現するための重みを表す変数 P を与え液面での色描写を実現する [15].

図 3.1: 液体の色の拡散の計算方法

第3章

固体溶解時の色表現

3.2.2

３次元拡散方程式

11

リアリティの高い描画のために液体内部に等間隔の数枚の液面を想定して計算する. 計
算速度の関係から実装するのは 3 枚で以下の図 3.2 のように設定する.
前述の２次元拡散方程式を拡張した次式の３次元拡散方程式より液面の色描写を行う.

図 3.2: 液体の 3 次元の色の拡散δP (x, y, z, t)δ 2 P (x, y, z, t) δ 2 P (x, y, z, t) δ 2 P (x, y, z, t)
= D(
+
+
)
δt
δx2
δy 2
δz 2

(3.5)

実際には描写される液面の下にもう２枚あると考え , ３枚の液面を想定して色の描写をすることからこれを中央差分により近似し簡略化する.

(P [i][j][k](t + ∆t) − P [i][j][k](t))/D0 =P [i + 1][j][k](t) + P [i − 1][j][k](t) + P [i][j + 1][k](t) + P [i][j − 1][k](t)+(3.6)

P [i][j][k + 1](t) + P [i][j][K − 1](t) − 6P [i][j][k](t)また, 各格子点には初期状態では色のベクトル値の初期値と , 容器内に存在する体積としての液体を換算比 N[粒子数/体積] で粒子数に直したものを容器内の格子点数で割った値を
重み P の初期値として用いている. 重み P の拡散に伴い各格子点の色の情報も変化させ第3章

固体溶解時の色表現12る必要がある. 次式により各格子点の時刻 t + ∆t における色の値 C を決定する.

(C[i][j][k](t + ∆t) − C[i][j][k](t)) × P [i][j][k](t + ∆t)/D0 =C[i + 1][j][k](t)P [i + 1][j][k](t) + C[i − 1][j][k](t)P [i − 1][j][k](t)C[i][j + 1][k](t)P [i][j + 1][k](t) + C[i][j − 1][k](t)P [i][j − 1][k](t)(3.7)

C[i][j][k + 1](t)P [i][j][k + 1](t) + C[i][j][k − 1](t)P [i][j][k − 1](t) − 6P [i][j][k](t)各格子点の色の時刻 t + ∆t における値は , 式 (3.7) により求めた時刻 t + ∆t の重み P の値と , 時刻 t における近傍格子点の色 C および重み P の値により表される. 毎フレームごとに , 重み P を求め, それに合わせて色 C を生成し液面に表示させることで , 液面の色が徐々に拡散していく様子を表現することができる. また拡散が進み, 各格子点に重み P の値が均等に分布し , 格子点間の重みの勾配が小さくなった場合および初期状態においては ,拡散は行われるが , 重み P の値が平衡状態に近くなるため液面の色は変化していないように見える. この底面での色描写である程度アルファ値を調整すれば , 底面のある一点からの色の拡散を描写できる.

3.3

側面での色の拡散側面の描写は容器の形状によっては一枚の面上で色の拡散表現を行えない. そこで側面での色の拡散においては上面と同様の色の拡散モデルに加えて , 仮想容器を内包する球の半径 r から πr × πr の大きさを持つ DCS(the Diﬀusion of Color in the Sides) バッファを定義し , そのバッファ内で色の拡散に関する計算を行う. その後、その結果を描画する.

3.3.1

DCS バッファ

具体的にはこの DCS バッファを容器側面にあわせて分割し , 後述の様に適切な位置に液体側面として貼り付けることで反映を行う. 詳しい計算方法については参考文献 [13][14]を参照されたい. DCS バッファの大きさは仮想容器を内包する球の半径 ｒ として πr × πrの大きさを持つ正方形であると定義する (図 3.3,3.4).

第3章

固体溶解時の色表現

13

図 3.3: 仮想容器と球のモデル

図 3.4: DCS バッファ

第3章

固体溶解時の色表現

3.3.2

側面での色の拡散

14

そしてその DCS バッファの格子点に色情報値をもたせ, 拡散方程式を用いて色を拡散させる. ここにおいても式 (3.1) の拡散方程式を使う. 各格子点の色の時刻 t + ∆t における
値は , 時刻 t + ∆t での重み P と , 時刻 t における近傍格子点の色 C および重み P の値により表される. 以上の手法により, 時刻 t において固形物が溶解する時の DCS バッファにおける色拡散の開始点を求め, 色の拡散に関する計算を行う (図 3.5,3.6). DCS バッファで色の計算を行った後, 図 3.7 のように分割して仮想容器の側面に描画する. 実際には , 固形
物と底面との接点の座標をもとに DCS バッファで色を変更を開始する箇所を決定し , 色の計算を行う. これにより底面側からの色の拡散を実現する.

図 3.5: 容器と DCS バッファの対応

図 3.6: DCS バッファ内での拡散第3章

固体溶解時の色表現

15

図 3.7: DCS バッファの分割

3.4

固形物の液体への投入

固形物には , 色情報を位置情報を設定する. この固形物が容器内の液体に投入され , 下まで沈むと , 底面からの色の拡散を開始させる.

3.4.1

固形物の操作・挙動

対話操作により固形物を落下させると , 重力に従い容器液体内へと投入される. 固形物の落下運動は水の粒子よりも緩い等速度で直線上に落下する. M y を固形物の Y 座標, gを重力加速度と定義すれば , 固形物は次式のように落下させる.

My= g ∗ 0.01

(3.8)

また, 固形物が容器内の液体に入った場合波を発生させる [16].

3.4.2

固形物の液体との干渉

固形物の当たり判定は液体の粒子と同様のモデルを使っている. 液体の粒子が液面に落ちる場合波の高さは液体の粒子の数に比例させている.

h = −q ∗ 0.05;(3.9)

h は粒子が接触した液面の格子点の高さ,q は粒子の数である. 固形物の場合には , 便宜的に固形物の大きさや重さを表す定数を波の高さの値とすることで波を発生させる. そして
固定容器との接触判定により底面に接触すると , そこを色変化の開始点として色の拡散を始める. これにより VR 科学実験システムで苛性ソーダ等の固体の薬品を用いた実験を体験することが可能となる.

16

第 4 章 実験とその結果
当研究室にて提案している粒子・体積ベース仮想液体システムを基本とした VR 化学実
験システムにおいて, 本研究では容器内の液体と固形物との反応を表現するモデルを提案した. 本章では , 提案モデルが化学実験体験システムとして実用的であるかど うかを検証
する.

4.1

実験システム本研究で提案された手法に基づいた仮想液体の対話操作の為の実験システムを• CPU:Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz
上で C 言語により実装した. 本実験システムでは , 仮想容器として操作者が移動可能である移動容器と , 操作および移動が不可能な固定容器の 2 種類を実装する. 移動容器の位置と傾きは低周波の磁界を利用したモーションセンサまたはマウスによって入力される.

図 4.1: システムの外観

第4章

実験とその結果

17

固定容器には初期状態で 3500cc 相当の仮想液体が入っているものとし , 各仮想容器の形状は図 4.2,4.3 に示す形に設定する. また, 画面右上の蛇口から水や他の液体が 1frame あたり 1cc 相当で無限に流出しており床面の下で消滅させている. 本システムでは , 液体に投入する固形物は立方体により表現している. 実験では , 固形物を液体に投入することで底面から色の拡散が起こり, その表現が体験者にとって違和感のないことを確認する.

図 4.2: 固定容器

図 4.3: 移動容器

第4章

実験とその結果

4.2

実験の様子

18

まず , 仮想固形物の操作を行い, 容器内の液体に向けて投入する. 固定容器内の液体に波が起こり, 固定容器内に入り, 固定容器の液面と液体側面の色が変化する様子を示す (図4.4). 固形物が重力に従い落下していく様子, 固形物が液体に入ることで底面からの色変化が起きていく様子を順に図 4.4-4.8 に記す. 固形物投入時には液面上面が波立つ (図 4.9).
上面まで色変化が起こっている様子を順に図 4.10-4.12 に示す.

図 4.4: 固形物投入

図 4.5: 固形物落下

第4章

実験とその結果

19

図 4.6: 底面からの色変化の様子

図 4.7: 側面の色変化の様子

第4章

実験とその結果

20

図 4.8: 側面全体の色が変化した様子

図 4.9: 固形物による水面の波第4章

実験とその結果

21

図 4.10: 底面からの色変化の様子

図 4.11: 側面からの色変化の様子

第4章

実験とその結果

22

図 4.12: 上面の色が変化している様子

第4章

実験とその結果

4.3

実験の結果・評価

23

本研究における底面と側面の色の拡散を表現した手法と , 従来の手法での処理速度を描
画更新速度 (fps) より比較した. より細かい面での変化を測るために , システムを操作せず待機させている状態とシステムで実際に操作をしている状態でそれぞれ計測した. また,計測する動作は従来研究のシステムでは , 移動容器に入れた液体を傾けて自由落下させるというもので , 当研究のシステムではそこに加えて固形物の操作を同時に行うというものである. そして , 計測したの中で最も少ないもので比較することにするその結果をその結
果を表 4.1 に示す.

実験結果
待機時
操作時

当研究
100.5
73.3

従来研究
104.4
78.3

表 4.1: FPS の比較

この結果からもわかるように粒子・体積ベースの液体操作モデルの対話操作性を損なうことなく新たな機能を追加できていることがわかる. 一般に , 対話操作には約 15fps 以上の処理速度が必要とされているが本手法ではそれがしっかりと確保されていることが実験よりわかった. また, 数名の被験者に実際に固形物の仮想液体への溶解の対話操作体験
してもらったところ, 固形物の溶解と色の拡散に違和感をほとんど 感じることが無かったなど 肯定的な意見をいただいた. 固形物の挙動に違和感は無いといった感想が多かったた
め, 液体への固形物の投入をともなう VR 科学実験体験システム構築の目的は達成された
といえる.

24

第 5 章 むすび
当研究室で提案している仮想液体対話操作モデルにおいて , 波の発生, 液体の上部と側面での色の拡散, 視点を考慮した側面の色の拡散など 様々な研究を行ってきた. 今回の研究ではそれらの研究成果に加えシステム内に固体と液体の反応による色の変化を導入した. 固体との反応で起きる液体の内部からの, つまり底面からの色の変化を実現するために , 側面の下からの色の拡散や底面での色の拡散など 色の描画の拡張に重点を置いて研究を行った. 本研究の提案モデルにより VR 科学実験システムにおいて薬品と固形物質による反応で起きる水溶液の性質の変化の描写が可能になった. これによって VR 科学実験システムで利用できる機能が増えた. 具体的な例を上げればホウ酸の溶解実験や苛性ソーダと酸性水容液との反応などが考えられる. また, 水溶液を熱したり, 時間経過させるなどに
より固形物として結晶が現れるということも出来るようにしたい.
今後の課題として以下のようなものが挙げられる.

• 容器の底面から見た色の表現
容器を下側から見た時の色の拡散の表現方法にはまだ改善の余地がある.
• 固体の挙動の拡張
固定容器が置いてあるテーブルに固形物がシャーレなどに入って置いてあるとより
実際の科学実験を体験しているように思われる. さらに固形物をテーブル上で転がせたり, より陰影のある描写をするなどシステムの臨場感の向上を目指す. また、空の容器内で転がる固形物などの挙動を表現したい.
• 気泡の描写
沸騰させたり液体と固形物が沈むときや液体との反応時に発生する気泡を表現する
ことで , システムの臨場感の向上を目指す.

25

謝辞
本研究を進めるにあたって, 日頃から多大なご尽力を戴き, ご指導を賜った名古屋工業大学 舟橋健司 准教授に心から感謝いたします.
また, 本研究だけでなく生活等の様々な面でもお手伝いいただいた名古屋工業大学学生
相談室の方々にも心から感謝いたします.
最後に , 本研究を進めるにあたり多大な協力を頂いた舟橋研究室諸氏に心から感謝致し
ます.

26

参考文献
[1] “日本バーチャルリアリティ学会” http://www.vrsj.org/main.html,[2] 竹下大樹, 太田真, 田村真智子, 藤本忠博, 村岡一信, 千葉則茂, “爆発火炎の粒子ベース
ビジュアルシミュレーション法” , 芸術科学会論文誌,Vol.3, No.2, pp.0159.
[3] ものづ くり情報通信技術融合化支援セン ター “Hint to Hint”http://www.hyogokg.jp/pdf/usr/default/r5e-b-n-1.pdf[4] Matthias Muller, Simon Schirm, Matthias Teschner, “Interactive Blood Simulationfor
Virtual Surgery Based on Smoothed Particle Hydrodynamic”s, ACM Technologyand
Health Care, Vol. 12, No. 1, pp. 25-31, 2004.
[5] 井村誠孝, 天田崇, 安室喜弘, 眞鍋佳嗣, 千原國宏, “複合現実環境における仮想流体とのインタラクション ”, 日本バーチャルリアリティ学会第 10 回大会論文, p549-p552,
2005.
[6] Frank Losasso, Jerry O. Talton, Nipun Kwata and Ron Fedkiw, “Two-Way CoupledSPH and Particle Level Set Fluid Simulation”, IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, VOL. 14, NO. 4 pp.797-804, 2008.
[7] Markus Becker, Hendrik Tessendorf, Matthias Teschner, “Direct Forcing for Lagrangian Rigid-Fluid Coupling”, IEEE TRANSACTION ON VISUALISATION ANDCOMPUTER GRAPHICS, VOL. 15, NO. 3, 2010.
[8] 井村誠孝, 天田崇, 安室喜弘, 眞鍋佳嗣, 千原國宏, “複合現実環境における仮想流体とのインタラクション ”, 日本バーチャルリアリティ学会第 10 回大会論文,p549-p552,2005.
[9] 棚橋拓也, 舟橋健司,“粒子体積モデルに基づく仮想液体操作システムにおける波の表現”, 平成 19 年度名古屋工業大学卒業研究論文,2008.
[10] Takuya Tanabasi,Hirotaka Itoh,Kenji Funahashi,YujiIwahori, “Representation of
Wave Surface on Virtual Water Manipulation”,pp.1460-1465,2008.
[11] 舟橋健司, 岩堀裕之, “仮想容器による仮想液体の対話操作モデルと一実現方法”, 日本
バーチャルリアリティ学会論文誌,Vol.5,No.4, pp.1087-1094,2000.
[12] K. FUNAHASHI, Y. IWAHORI, “Representation of Swinging Liquid on Virtual Liquid Manipulation”, Proc. ICAT2001, pp.179-184, 2001.

27[13] 菅瀬 和弘 “VR 科学実験システムのための仮想液体モデルにおける側面描写”, 平成
21 年度名古屋工業大学卒業研究論文,2010.
[14] 蒲 将寛 “粒子・体積モデルに基づく仮想液体操作システムにおける色の表現”, 平成
20 年度名古屋工業大学卒業研究論文,2009.
[15] 中井 恒汰 “VR 化学実験システムのための仮想液体モデルにおける視点位置を考慮した側面描画”, 平成 25 年度名古屋工業大学卒業研究論文,2013.
[16] 棚橋 拓也 “対話性を重視した仮想液体操作モデルにおけるかき混ぜ動作の実現”, 平
成 21 年度名古屋工業大学 大学院 博士前期課程 修士学位論文,2010.