平成 22 年度 卒業論文

VR 調理学習システムのための存在確率に基づく粒子による固体群操作モデルの改良

指導教員
舟橋

名古屋工業大学

工学部

情報工学科
平成 19 年度入学

上垣内

19115040 番

翔太

健司

准教授

i

目次

第 1 章 はじめに

1

第 2 章 従来の固体群操作モデル

32.1

固体群操作モデルの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2.2

調理容器の定義及び固体群表現 . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.3

変形曲面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

2.4

曲面加算後の処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

第 3 章 存在確率に基づく粒子による固体群操作モデル

11

3.1

存在確率に基づく粒子による固体群操作モデルの概要 . . . . . . . . . . . . . 11

3.2

本手法での粒子サイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3

粒子存在確率に基づく粒子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.4

3.3.1

固体群表面上の移動を表現する存在確率粒子 . . . . . . . . . . . . . . 13

3.3.2

調理容器上での固体の移動を表現する存在確率粒子 . . . . . . . . . . 13

3.3.3

存在確率に基づく粒子の静止表現 . . . . . . . . . . . . . . . . . . . . 14

こぼれの表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.4.1

こぼれの境界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.4.2

粒子変換境界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.4.3

固体群のこぼれ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

第 4 章 実験

20

4.1

実験システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.2

処理速度についての実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.3

4.2.1

結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.2.2

考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

挙動の自然さについての実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

第 5 章 むすび

28

謝辞

29

参考文献

30

1

第1章

はじめに

VR(バーチャルリアリティ) とは、「現前しないが現前するのと効果としては同等の表象を生じさせたり想像表象を具現化し、行動空間を構成して、そこでの行動を可能とすること」である [1–4]。すなわち、実体はないが本質的には同じ性質を持っている人工的な環境や物体をコンピュータ上に作り出し、ユーザにあたかもそこにその環境や物体が存在しているかのような感覚を与える技術のことである。VR の使用用途は多岐に及び、医療、製造、科学、デザイン、エンターテイメントなど幅広く応用されている。例としては、小学校での理科の教材 [5] や手術に関するシミュレータ [6] [7] といった教育、訓練を目的としたシミュ
レータなどがある。バーチャルリアリティを応用したシステムを使用する利点としては、危険な作業の手順確認が安全に行える、より直感的に理解を深める事が出来る、試行錯誤にかかるコストを低減する事が出来る、などが挙げられる。しかし、それを可能にする装置が高価であったり、大規模なものが多いため、前述したような教育、訓練を目的とした研究は進んでいるが、一般家庭への普及はあまり進んでいないというのが現状である。
しかし近年では、任天堂株式会社から発売されているビデオゲーム機の「Wii」[10] では「Wii リモコン」という安価なハードウェアを用いることで、体感的な操作が実現出来る。このような、安価である程度性能が良いハードウェアの開発によって、一般家庭向けの新たなコンテンツの可能性が広がってきている。また近年、核家族や単身世帯が増加に伴い調理シ
ステムの需要が高まっている。こういった状況の中で、一般家庭への普及を目的とした調理習得を支援するシステムに関する研究が進んでいる [8] [9]。また、一般家庭を対象に既に販売されている調理に関連するコンテンツとして、株式会社スクウェア・エニックスから発売されている「クッキングママ」[11] というゲームがある。ゲーム内で「料理」を簡易的な表
現のもとで体験することにより、料理の手順を学ぶことが出来る。
当研究室でも、一般家庭を対象としたコンテンツの一つとして料理をとりあげ、VR 調理
学習システム「バーチャルお料理教室」の開発を行っている。この「バーチャルお料理教室」
では、前述した「クッキングママ」のようなコンテンツとは異なり、高い臨場感によって現
実世界により近い感覚で料理の手順を学習するためのものである。最終的には、調理を行う
台所全体を用意し、食材の用意から、「食材の切断」といった加工、「炒める」などの調理、盛り付けといった料理における一連の手順を学習できるコンテンツの作成を目指している。
そのために、学習中に直接的もしくは間接的に操作できるものはすべて、挙動をリアルタイ
ムに表現出来る必要がある。「バーチャルお料理教室」の開発ではこれまでに、調理の場面における、ご飯や具材などのような、複数の固体が集まったものの操作モデルの研究を進め

第1章

はじめに

2

てきた。本稿では、このような「ご飯などの、複数の固体が集まって１つのものであるのように振る舞う物」を固体群と称する。
固体群挙動に関する研究として、溶岩流 [12]、砂 [13] などがある。文献 [12] の研究では粒子法を用いており、固体群の挙動を厳密に表現しているが、固体個々の衝突や重力の影響を計算しているため計算時間が大きく、対話操作には向かない。文献 [13] では粒子法を用いていないが、対話操作が行えるほど十分高速ではない。
これらのモデルに対して、当研究室では固体群の対話操作を実現するような、「固体群操作モデル」の研究を行っている。当研究室での固体群操作モデルの研究では、固体群の挙動を個々の動きを計算して求めるのではなく、固体群全体を一つの対象として扱う、格子モ
デルと呼んでいる固体群全体を一つの対象として扱うモデルにより対話操作を実現している [14]。格子モデルとは、一様な正方格子の各セルに高さ情報を設定設定し、いわゆるハイ
トフィールドとして扱い、各高さ情報を適切に変化させることで固体群の挙動を表現するものである。この固体群操作モデルでは、容器内にあるハイトフィールドで表現された固体群
を、容器を傾けたり左右に振ることで操作することができる。しかし、固体群の動きは容器内のみに限定されていた。
そこで本研究では、従来のハイトフィールドで表現された格子モデルベースの固体群操作
モデルに、粒子間の衝突を考慮しない計算コストを抑えた粒子モデルを導入し、この粒子によって固体群を容器外へ出す「こぼれ」の挙動を表現する。しかし、格子モデルで表現されていた固体群がある時点で、急にこの「こぼれ」の粒子による表現に変化することにより、固体群表現に違和感が生じる恐れがある。また従来の格子モデル自体にも、高さ情報が極めて低い場合に固体群挙動が不自然になる問題点も残されている。そこで、ハイトフィールドで表現された固体群の一部を、確率に基づいて描画を制御する粒子で表現することで、計算的にも視覚的にも効率良く「こぼれ」や固体群挙動の自然さの向上を図る。以下ではこの描画を制御する確率のことを存在確率と呼ぶ。
第 2 章において、従来の格子表現による固体群操作モデルの概略を説明する。また第 3 章
において、存在確率に基づく粒子による固体群操作モデルについて説明する。第 4 章については、実験システムについて、または実証実験、提案手法の有用性について述べる。

3

第2章

従来の固体群操作モデル

本章では、当研究室において提案された従来のハイトフィールドで表現された格子モデル
ベースの固体群操作モデル [14] の概要を説明する。この固体群操作モデルは、複数の固体が集まって出来ている固体群全体を、1 つのまとまった操作対象として扱う事で、計算時間を削減し、対話操作を実現したモデルである。この手法は開発途中であるため、固体群の動きが調理器具内に限定されている。しかし、使用者に操作している物が食物片であるという一定の認識をさせることを可能にしている。

2.1

固体群操作モデルの概要

格子モデルベースの固体群操作モデルでは、応用対象の一例として、フライパンなどの調理器具内の食材片を挙げている (以下、フライパンなどを調理容器、または容器と呼称する)。容器を傾けたときや、容器を水平方向へ振ったとき等に、これらの固体群に働く、力は一様である。しかし、各固体が互いに及ぼし合う力や、重力による影響など、全ての合力について計算しようとすると計算量が多く、全ての計算が終わるまでに時間がかかり、対話操作が実現出来なくなってしまう。
そこでこのモデルでは、固体個々の単位で力の計算をせずに、固体群全体をひとつとして捉えて、全体にかかる力による変化を曲面で近似表現することにより、固体群全体の挙動計
算を実現している。このような固体群挙動を表現するために生成する曲面を、変形曲面と称する。容器内に存在する固体群の断面図である図 2.1 を例に、ある時刻 t から (t + ∆t) における固体群全体の挙動計算の概要を示す。

第2章

従来の固体群操作モデル

4

図 2.1: 変形曲面による固体群変形の過程

図 2.1 において、以下のような手順で計算を行う。

⃝
1 時刻 t の状態では固体群は容器の底面に沿って下に移動すべきである。
⃝
2 曲面を発生させて固体群体積を増加 (図 2.1-2 a)、減少 (図 2.1-2 b) させる。
⃝
3 結果、時刻 (t + ∆t) において固体群が以前よりも下の部分に移動する。
このような単純な処理によって、高速に固体群の挙動が計算できる。しかし、実際に図 2.1-2のような変形曲面の形状を求めるのは困難である。そこで、図 2.2 のように図 2.1-2 を段階的に分け、代替の処理を行うことで図 2.1 の計算を近似的に行う。この代替の処理を図 2.2に示す。

図 2.2: 体積を増加させる変形曲面を用いた代替処理

図 2.2 において、以下のような手順で計算を行う。

⃝
1 時刻 t の状態では固体群は容器の底面に沿って下に移動すべきである。
⃝
2 (図 2.2-2 矢印) のような、体積を増加させる曲面を発生させて固体群に加算する。
⃝
3 調理容器の各地点に存在する固体群体積に、加算前の体積と等しくなるような処理を行う。
⃝
4 結果、時刻 (t + ∆t) において固体群が以前よりも下の部分に移動する。

第2章

従来の固体群操作モデル

5

図 2.2 で発生させる変形曲面に使用する関数としては、ガウス曲線、放物線、半楕円、などが考えられるが、この実験システムでは計算量の削減を行うために、図 2.3 のように半楕円柱を用いる。

図 2.3: 調理器具を傾けたときに発生する変形曲面

2.2

調理容器の定義及び固体群表現

この研究では容器上の固体群の挙動を扱っており、容器として次のようなものを定義している。

• 容器の底部: 凸多角形の平面図形• 容器の側面: 底部に対して垂直, 高さを KS とする
なお今回は、「調理」の中で使用する、フライパンなどの調理容器を想定している。また、固体群の挙動については、調理容器を傾けるもしくは水平方向へ振った時の、固体群の挙動を対象としている。固体群は図 2.4 のように、調理容器内の固体群積載部上に、平面の格子状になるよう配置された頂点群に高さを持たせる、ハイトフィールドによって表現する。このハイトフィールドによって表現された調理容器内に存在する固体群の総体積 V は xz 平面の (xi , zj ) の座標に位置する格子の高さを f (xi , zj )、固体群が存在する頂点の総数を N とす
ると、

V =

N
∑

f (xi , zj )

(2.1)

第2章

従来の固体群操作モデル

6と表すことができる。

図 2.4: 調理容器上での固体群表現

2.3

変形曲面

変形曲面は半楕円柱とする。変形曲面を定義する変数は以下の通りである。

• 楕円の長半径• 短半径• 3 次元空間上での位置• 3 次元空間上での向き• 楕円柱の長さ
なお、調理容器の固体群積載部に平行な半径を長半径、垂直な半径を短半径とする。
まず、楕円柱の 3 次元空間上での向きであるが、固体群に外力が働いた際、その力が働いている方向へと移動していくため、外力の方向と同じように設定する。

3 次元空間上での位置については、固体群が重心に集まっていると仮定し、その重心から、楕円柱の向きに平行移動させた位置に設定する。平行移動の距離は、後述する楕円柱の長半径 a の距離に比例するように設定する。図 2.4 のような座標空間にある固体群の重心

G = (xG , zG ) は調理容器内に存在する固体群の分布と格子座標によって求められ、固体群
全体の体積を V 、xz 平面の (xi , zj ) の座標 mij に位置する格子の高さを f (xi , zj )、固体群が存在する頂点の総数を N とすると、

第2章

従来の固体群操作モデル

71 ∑(xG , zG ) = (f (xi , zj )mij )
V
N

(2.2)

と表すことができる。

xz 平面において、固体群が受ける力 F の x 成分を Fx 、z 成分を Fz とすると、F の xz 平
面での角度 α は、

α = arctan(

Fz
)
Fx

(2.3)

である。また、固体群が受ける力の方向 S は上述の α によってあらわされ、S = (cos(α), sin(α))

(2.4)

となる。
よって、楕円柱の発生位置 D は、固体群が受ける力の方向 S を使ってD = G + Sa

(2.5)

と表すことができる。

a は楕円柱の長半径の長さを表し、固体群の移動距離に関係する変数である。a = 0 ならば、変形曲面は存在しなくなり、固体群は移動しない。a を設定するには、固体群の挙動を考慮しなければならない。固体群は剛体とは違い、図 2.5 の様に調理容器の端に達しても、移動し続ける。よって固体群の大部分が調理容器の端まで移動し終えるまで、a > 0 にする
必要がある。
そこで、a は調理容器の端に接している固体群の量に対して減少するように、調理容器の側面から固体群に対する、垂直抗力 Ns を考慮して設定する。このモデルでは、Ns を図 2.5のような固体群の挙動に合わせるため、以下のように定義し、近似的に求めている。

• Ns の大きさは、調理容器の側面に接している面積に比例する。
• Ns の向きは、接している箇所についての重心を求め、その重心から調理容器中心への向きと同じとする。
この定義に基づき、Ns は次のように求めることができる。

第2章

従来の固体群操作モデル

8

図 2.5: 固体群の調理容器の端での動き

Ns = −|Vs |

Gs
|Gs |

(2.6)

式 2.6の Vs は調理容器側面に隣接している格子が持つ値の総和 Vs であり、

Vs =

ns
∑

f (x′i , zj′ )(2.7)となる。f (x′i , zj′ ) は調理容器側面に接している格子が持つ高さの値であり、ns は調理容器
側面に接している高さが 0 以上の格子の数である。また、式 2.6 の Gs は調理容器に接している固体群の重心であり、次のように表せる。
s1 ∑f (x′i , zj′ )m′ij
Vs

n

Gs =

(2.8)

m′ij は (x′i , zj′ ) の座標である。
ただし、必要な抗力は図 2.6 のように、調理容器内固体群にかかる外力 F と逆方向の成分

Ns′ のみなので、その力を次のように求める。
|Ns′ | = |Ns |T cos(π − ϕ + ψ) (T : 定数)(2.9)

ここで ϕ は、Ns の xz 平面での角度であり、Ns の x 成分を Nsx 、z 成分を Nsz とすると

ϕ = arctan(

Nsz
)
Nsx

(2.10)

第2章

従来の固体群操作モデル

9となる。また、ψ は固体群にかかる外力の xz 平面の角度である。

図 2.6: 抗力の分解以上で求めた Ns′ を用いて、a を次のように設定する。

(a=T − |Ns′ | (T ≥ |Ns′ | のとき、T : 定数)0(T < |Ns′ | のとき)

(2.11)

a は固体群が調理容器の側面から受ける垂直効力を考慮に入れて定義されたものであるが、固体群にかかる力 F や、調理容器内固体群の総量による影響が少ない。よってこれらを補うために短半径 b は以下のように設定する。

(
b=√(F − Fk′ ) T V (F ≥ Fs′ のとき、T : 定数)0(F < Fs′ のとき)

(2.12)

なお、固体群全体の体積を V 、動摩擦力を Fk′ 、静止摩擦力を Fs′ とする。
これらの変数により、楕円柱 (変形曲面) を定義して固体群に加算する。変形曲面による加算は、対象の格子が生成された楕円柱の長半径以内にあるかどうかの判断で行われる。式

2.5 より楕円柱の中心軸は、xz 平面格子の中心を原点としたとき、

sin(α)x − cos(α)y − sin(α)(xG + acos(α)) + cos(α)(zG + asin(α)) = 0(2.13)

第2章

従来の固体群操作モデル

10となる。A = sin(α), B = −cos(α)、C = −sin(α)(xG + acos(α)) + cos(α)(zG + asin(α))とすると xz 平面のある点 P (xp , zp ) と中心軸との距離 L は以下のようにして求められる。

L=| Axp + Bzp + C |√=| Axp + Bzp + C |A2 + B 2(2.14)

点Ｐが楕円柱の中に存在するとき、楕円柱による、高さの変化 Y は

(√
Y =

L
1 − ( )2a)×b

(2.15)となり、以前の高さに Y を加算した後、体積補正をした値が点 P における高さとなる。

2.4

曲面加算後の処理

変形曲面により固体群の挙動を表現する際、変形曲面による加算によって、本来固体群がもつ体積が変化してしまう。そこで、変形曲面によりハイトフィールドへ加算した後に、本来の固体群体積を維持するような処理を全格子のハイトフィールドに対して行う。変形曲面
により加算した後の固体群全体の体積 V ′ は、変形後の各格子点の高さ f (x, z) を単位面積あたりの部分体積と、とることができるので、

V′ =

∑

f (x, z)(2.16)となる。この V ′ と、変形曲面による加算前の固体群全体の体積 V を用いて、処理を行った
後の各格子点の高さ f (x, z)′ は、

f (x, z)′ =Vf (x, z)V′

(2.17)となる。このような処理を行うことで、体積を維持しながら固体群の挙動を表現できる。

11

第3章

3.1

存在確率に基づく粒子による固体群操
作モデル

存在確率に基づく粒子による固体群操作モデルの概要

当研究室において提案された、従来のハイトフィールドで表現された格子モデルベースの固体群操作モデルは、計算コストをかけずに固体群を操作する事を可能としている。しかし、このモデルは開発途中であり、容器外へこぼれるなどといった挙動はまだ考慮していない。
本論文で提案する手法では、従来の格子モデルにおいて、ハイトフィールドで表現がなされていた調理容器内固体群の一部を、粒子で描画することで表現する。この粒子により表現された固体群は、調理容器内では動かず、確率に基づいた描画の有無によって固体群の移動を表現する。そのため、他の粒子で表現された固体群や容器との衝突や、重力による影響を考慮する必要がなく、少ない計算量で固体群の移動過程や、固体群中にある固体一つ一つの固体「らしさ」を表現できる。さらに、容器内固体群を一定の条件で自由落下する粒子へ変換し容器外へ出し、同時にその容器外へ出した粒子がもつ体積と同じ体積を容器内の固体群
体積から減らすことにより「こぼれ」を表現する。また、粒子により表現され容器外へ出た固体群は、計算コストをかけないために、他の粒子で表現された固体群との衝突を考慮しないものとする。
以後、従来のハイトフィールドで表現された格子モデルベースの固体群操作モデルにおいて、平面格子の高さによって表現されている固体群を「格子表現による固体群」、本研究で新たに提案する、調理容器内で確率に基づいて表現される固体群を「存在確率粒子表現による固体群」、容器外へこぼれて自由落下していく粒子を「自由落下粒子表現による固体群」と呼ぶ。
また、本論文で提案する手法で扱う挙動は、調理容器内の格子表現にる固体群と、こぼれの表現に限定しており、調理容器上部への舞い上がり等の挙動については、文献 [15] で研究されている。

3.2

本手法での粒子サイズ

従来のハイトフィールドで表現された格子モデルベースの固体群操作モデルにおいて、格子表現による固体群には、最小サイズというものを定めている。これは、取り扱う物体が固体群であるため、固体ひとつの高さの下限があるはずであり、この高さの下限をこの固体群

第3章

存在確率に基づく粒子による固体群操作モデル

12

操作モデルでは、固体群の最小サイズと定義している。本研究では、この固体を粒子として扱うため、提案するモデルにおいて、粒子の直径にこの最小サイズをもちいるものとする。
また、高さが最小サイズの格子表現による固体群を粒子へ変換した際に、外見上の体積をある程度保存するため、格子の間隔を最小サイズと同じ長さで定義するものとする。

3.3

粒子存在確率に基づく粒子

本モデルでは、粒子同士や他の物体との衝突や、重力による影響を考慮しない、存在確率に基づく粒子を格子モデルに導入する。存在確率に基づく粒子とは、確率に基づいて粒子の存在や描画、非描画を制御することによって固体群の移動を表現するものである。この粒子を用いることで、調理容器内での固体群の動きや、描画された固体がそのまま調理容器外部へとこぼれていくような挙動を、少ない計算量で表現する。
この、存在確率に基づく粒子を、固体群操作における図 3.1 のような 1、2 の二箇所へ導入する。

図 3.1: 存在確率に基づく粒子の導入箇所
また、1、2 はそれぞれ以下のような働きをもつ。

1. 格子表現による固体群表面上の固体の移動表現
2. 調理容器上での固体の移動表現
なお、調理容器表面上において、粒子で固体を表現することを考慮し、2 の部分を高さが最小サイズ以下の格子群、1 の部分を高さが最小サイズよりも大きい格子群とする。以下、それぞれの特徴に合わせた、異なった存在確率の導出方法を説明していく。

第3章

存在確率に基づく粒子による固体群操作モデル

3.3.1

固体群表面上の移動を表現する存在確率粒子13

図 3.1 における 1 の部分の特徴として、格子のもつ値が大きく、値の変化の量も大きい、ということが挙げられる。そこでこの格子群では、高さの変化量を利用して、存在確率粒子を導入していく。
最小サイズ以上の格子 (xi , zj ) において、t 時刻での格子の高さを f (xi , zj )t 、(t − 1) 時刻
での格子の高さを (xi , zj )t−1 、また、最小サイズを Hm としたとき、粒子存在確率 Ph を次のように定義する。

 |f (xi , zj )t − f (xi , zj )t−1 |
Ph =
Hm

1

(|f (xi , zj )t − f (xi , zj )t−1 | < Hm )(3.1)(|f (xi , zj )t − f (xi , zj )t−1 | ≥ Hm )これにより、Ph の確率で粒子が存在し、(1 − Ph ) の確率で粒子が存在しないという判定を行う。存在すると判定された格子表現による固体群は、高さ f (xi , zj )t から (f (xi , zj )t − Hm )までの固体群を粒子として表現し、高さ (f (xi , zj )t − Hm ) から 0 までを格子表現で固体群を表現する。また、存在しないと判定された格子表現による固体群は、f (xi , zj )t すべてを格子表現で固体群を表現する。

3.3.2

調理容器上での固体の移動を表現する存在確率粒子

続いて、図 3.1 における 2 の部分おいての存在確率粒子について説明する。従来の格子モ
デルベースの固体群操作モデルでは、最小サイズ未満の格子については、その近傍点の格子の高さを集約させることにより、最小サイズ未満の固体群を表現していた。そこで本モデル
では、この最小サイズ未満の格子の高さの値を存在確率に反映させることで、固体群の調理
容器上での固体群移動を、より自然に表現する。
最小サイズ以下の格子 (x′i , zj′ ) において、格子の高さを f (x′i , zj′ )、最小サイズを Hm としたとき、粒子存在確率 Pl を次のように定義する。

f (x′i , zj′ )
Pl =
Hm

(3.2)

これにより、Pl の確率で粒子が存在し、(1 − Pl ) の確率で粒子が存在しないという判定を行
い、描画を行う。粒子が存在すると判定された場合は、格子表現による固体群は用いず、容器表面上に粒子を描画する。また、粒子が存在しないと判定された場合は何も描画しない。
確率によって固体群の描画を行うため、ある時刻のフレームに着目したとき、固体群の体積と実際に描画された固体群の体積が一致しない可能性がある。しかし、対話操作を行う際の、全フレームに着目したとき、ある格子 (x′i , zj′ ) で描画される粒子固体群体積の期待値 Eij
は第3章

存在確率に基づく粒子による固体群操作モデル

Eij = Hmf (x′i , zj′ )Hm= f (x′i , zj′ )

14

(3.3)

となり、体積が保存されることがわかる。
この存在確率粒子を用いることで、従来の格子モデルベースの固体群操作モデルでは表現されていなかった、容器端から端への固体群操作を行う際の容器中央部における固体群の移動過程を表現する。本来、この移動過程は複雑な変形曲面を用いることで表現できるが、文
献 [14] にもあるように計算量が問題となってしまう。そこで、存在確率粒子と図 3.2 のような高さ Hm 以下の板状変形曲面を用いる。これにより固体群の移動過程において容器中央部に存在確率粒子が描画され、少ない計算量で移動過程を表現できる。

図 3.2: 存在確率粒子による移動過程の表現

3.3.3

存在確率に基づく粒子の静止表現

3.3 で前述したように、存在確率に基づく粒子は、確率に基づいて描画、非描画を繰り返し行うことで、固体群の移動を表現する。しかしこのため、容器を傾けていない時のような、固体群に力がかかっていない状態でも、粒子の描画、非描画の繰り返しが行われるため、不自然に見えてしまう。そこで、一定の条件で存在確率粒子を描画の有無を前時刻から引き継ぐことにより、固体の静止状態を表現する。
格子表現による固体群では、力がかかっている場合、変形曲面により各格子の高さが変動する。よって、存在確率粒子の静止条件を、前時刻からの格子の高さ変化量が一定の閾値を越えた場合、として設定する。この条件を満たした場合、前時刻における存在確率粒子の描
画、非描画を現時刻に引き継ぐ。満たさなかった場合は、再び存在確率を導出、粒子の存在判定を行う。

第3章

存在確率に基づく粒子による固体群操作モデル

3.4

こぼれの表現3.4.1

こぼれの境界15従来の格子モデルベースの固体群操作モデルでは、固体群の動きが容器内に限定されていた。これに対して本モデルでは、固体群のこぼれを表現するために、固体群が調理容器外へこぼれる条件を設定する。なお、ここでは調理容器を凸多角形の容器と想定しているため、容器の縁、及び、容器の端の各辺は、直線の方程式で表すことができるものとする。固体群
が調理容器外へこぼれる条件は様々なものが考えられるが、本研究では調理容器上部への舞
い上がり等は考慮していないため、図 3.3 のように、固体群全体が力を受けてこぼれる A の場合と、調理器具などの剛体によって固体群の一部が押し出されてこぼれる B の場合の、大きく二つに分けるものとする。

図 3.3: 固体群がこぼれる 2 つの場合

図 3.3 における A は、固体群全体に力がかかった結果、容器外へとこぼれる場合であり、左側は重力の分力が、右側は加速度 a で容器を動かした際の慣性力がそれぞれ固体群にかかっている。また、図 3.3 における B は、固体群の一部を剛体によって押し出した結果、容器外へとこぼれる場合である。この 2 つの場合に対応するために、図 3.4 のような 2 種類のこぼれの境界というものを考え、この 2 種類のうち、どちらかの境界を越えた固体群をこぼれたものとする。また、図 3.4 で用いている θ は、その固体を積み上げたときに、自発的に崩れることなく安定を保つ斜面の角度である「安息角」を用いる。

第3章

存在確率に基づく粒子による固体群操作モデル

16

図 3.4: 2 種類のこぼれの境界

図 3.3 における A のように、固体群全体に力をかけてこぼす際、多くの場合は容器の傾きが影響するため、最も低い位置にある容器の縁から固体群がこぼれだす。このことをモデルに適用するため、最も低い位置にある容器の縁を、凸多角形容器の各辺の中で、中点がワールド座標系で最も低い位置にある辺とする。図 3.4 の A 境界は、容器の最も低い位置にある縁の中点を含み、ワールド座標系の水平方向となす角度が θ の無限平面とする。この境界により、調理容器を傾けていくと、調理容器内に固体群が存在できる領域を狭めることができるので、傾けた容器内固体群の体積の減少を表現できる。ある格子 (xi , zj ) における、図 3.4の A 境界の高さ Aij は、次の手順で求めることができる。

xz 平面の (xi , zj ) に位置する格子と、傾いている容器の最も低い位置にある、方程式 ax +bz + c = 0 で表される容器端（直線）との距離 Lij は、
Lij =|axi + bzj + c|√
a2 + b2(3.4)となる。また、xz 平面において固体群が受ける力 F の方向 S は 2.3 の式 2.3 と式 2.4 によって求められる。F と xz 平面がなす角度 β は S を用いて、

β = arcsin(S)となる。容器の高さを KS とすると、ある格子におけるこぼれの境界の高さ Aij は、

(3.5)

第3章

存在確率に基づく粒子による固体群操作モデル

Aij = Lij tan(θ − β) + KS

17

(3.6)

で求めることができる。
一方、図 3.4 の B 境界は、図 3.3 の B の操作による固体群のこぼれを表現するため、容器内で閉じた境界を作る必要がある。ある格子 (xi , zj ) における、図 3.4 の B 境界の高さ Bij
は、次の手順で求めることができる。xz 平面の (xi , zj ) に位置する格子と、その格子から最短距離に位置する、方程式 dx + ez + f = 0 で表される容器端（直線）との距離 Dij は、

Dij =|dxi + ezj + f |√d 2 + e2(3.7)

となる。容器の高さを KS とすると、ある格子におけるこぼれの境界の高さ Bij は、次のように求めることができる。

Bij = Lij tan(θ) + KS

(3.8)

以上で求めた A 境界、及び、B 境界のどちらかの境界を越えた固体群をこぼれたものとする。したがって、(xi , zj ) に位置する格子における、最終的に決定するこぼれの境界の高さ

Kij は、{
Kij = min

Aij
Bij

(3.9)

となる。

3.4.2

粒子変換境界存在確率粒子の描画によって、格子表現による固体群から自由落下粒子への変換をある程
度自然に行える。しかし、容器の縁などのこぼれ出す場所を局所的に見ると、場合によっては存在確率粒子粒子が描画されていないこともあり得る。そこで、固体群の一部をあらかじ
め、必ず存在確率粒子で描画しておくことにより、粒子で描画された固体が、そのまま調理
容器外へこぼれ落ちていく様子を自然に表現する。この、事前に存在確率粒子へ変換する境
界を粒子変換境界と称する。
粒子の直径に、この最小サイズを用いるため、こぼれの境界と、粒子変換境界との間の距離を最低でも最小サイズは確保する必要がある。そのため、最小サイズを Hm 、ある格子

第3章

存在確率に基づく粒子による固体群操作モデル

18(xi , zj ) におけるこぼれの境界の高さを Kij としたとき、ある格子の粒子変換境界の高さ MijをMij = Kij − Hm

(3.10)と定義する。
ある格子 (xi , zj ) の格子の高さ f (xi , zj ) がこぼれの境界の高さ Kij を越えた場合、図 3.5のように、a,b,c の 3 つに格子の高さで分けて固体群を表現する。

図 3.5: f (xi , zj ) > Kij での粒子変換
図 3.5 の a, b, c は、それぞれ以下のような処理を行う。

a 自由落下粒子へ変換 : f (xi , zj ) から Kij までの固体群
b 存在確率粒子で描画 : Kij から Mij までの固体群
c 格子表現で描画 : Mij から 0 までの固体群
また、f (xi , zj ) が Kij ≥ f (xi , zj ) ≥ Mij であった場合は図 3.6 のように、b,c の 2 つに格子の高さで分けて固体群を表現する。

第3章

存在確率に基づく粒子による固体群操作モデル

19

図 3.6: Kij ≥ f (xi , zj ) ≥ Mij での粒子変換
図 3.6 の b, c は、それぞれ以下のような処理を行う。

b 存在確率粒子で描画 : f (xi , zj ) から (f (xi , zj ) − Hm ) までの固体群
c 格子表現で描画 : (f (xi , zj ) − Hm ) から 0 までの固体群

3.4.3

固体群のこぼれ

容器内にある固体群のうち、こぼれの境界の高さ Kij を越えた固体群をこぼれたものとみなし、自由落下粒子へと変換して容器外へと出す。固体群をこぼす際、多くの固体群は調理容器の端付近に寄った後にこぼれの境界を越える。よって、自由落下へ変換された粒子の発生位置を、こぼれの境界を越えた格子点 (xi , zj ) に設定することで、固体群がこぼれ落ちる
挙動を表現する。
この時、容器内の固体群の総体積を減少させる必要がある。xz 平面の (xi , zj ) に位置する格子の高さを f (xi , zj ) としたとき、格子の高さのうち、こぼれたとみなされる高さ Oij は

Oij = f (xi , zj ) − Kij(f (xi , zj ) > Kij )(3.11)となる。このとき, こぼれた後の格子表現による固体群の総体積 V ′ はこぼれる前の総体積

V と Oij を用い、次のように表わされる。
V′ =V −∑

Oij

(3.12)

20

第4章

4.1

実験

実験システム本実験では、前述の提案モデルを用いて実験システムを構築し、処理速度と挙動の自然さの 2 方面について実証実験を行った。実験システムでは以下の構成の計算機を用いた。

• CPU : Pentium(R) Dual-Core CPU E5200 2.50GHz• MEM : 1024MB• GPU : NVIDIA GeForce 9500 GT• OS : Microsoft Windows XP
なお、描画には DirectX を利用している。また今回の実験では、比較的安価な入力デバイスとして任天堂株式会社から発売されている「Wii リモコン」と「Wii モーションプラス」を採用した。「Wii リモコン」では、加速度センサーにより Wii リモコンに働く力の大きさと角度（向き・傾き）の取得が、また、赤外線センサーにより 3 次元空間上での位置の取得が可能である。「Wii モーションプラス」では、ジャイロセンサーにより移動量の取得が可能である。今回の実験では、「Wii リモコン」の赤外線センサーは使用せず、調理容器の平行、回転移動が行えるように設計した。
実験システムでは調理容器を、直径が 32.5cm, 側面の高さが 6.4cm の円柱形状のフライ
パン、また、固体群を炒飯と想定している。調理容器内にある固体群は、テクスチャマッピ
ングと存在確率粒子の描画で表現し、調理容器外の固体群は自由落下粒子の描画で表現している。
図 4.1 に実験の様子を示す。予備調査では、ハイトフィールドの頂点数が 331 点で固体群挙動が十分自然に感じられるとの評価が得られたため、ハイトフィールドの頂点数を 331 点に設定した。本実験システムでは、体験者は Wii リモコンを操作することで以下のような固体群操作を行うことができる。

• 調理容器を動かして容器内の固体群を滑らせる• 調理容器を動かして固体群を容器外へ落とす

第4章

実験

21

図 4.1: 実験の様子

図 4.2 に、固体群の描画の様子を示す。図 4.2 の A、B ではそれぞれ「A：文献 [14] の格子モデルベースの固体群操作モデル」、「B：提案モデル」を用いている。提案モデルである
図 4.2 の B では存在確率粒子によって、図 4.2 の A よりも、固体群の固体「らしさ」が感じられる。
図 4.3 に、固体群を容器端から端へ移動させている様子を示す。図 4.3 の A、B ではそれ
ぞれ「A：文献 [14] の格子モデルベースの固体群操作モデル」、「B：提案モデル」を用いている。図 4.3 の A では、容器中央部において固体群が移動する様子が表現できていないことがわかる。一方、提案モデルである図 4.3 の B では固体群が容器端から端へと滑り落ちて移動している様子が表現できている。
図 4.4 に、容器内固体群を自由落下粒子へ変換し、容器外へこぼす様子を示す。図 4.4 は、調理容器を傾けていくにつれて、こぼれの条件をみたした固体群が、調理容器外へと落下していく様子である。固体群がこぼれていき、調理容器内の固体群体積が減少していく様子がわかる。また、粒子変換境界及び存在確率によって存在確率粒子で表現された固体群により、格子表現による固体群から自由落下粒子への変換が違和感無く行われている事がわかる。

第4章

実験

図 4.2: 「A：文献 [14] のモデル」、「B：提案モデル」をそれぞれ用いた固体群の表現

22

第4章

実験

23

図 4.3: 「A：文献 [14] のモデル」、「B：提案モデル」をそれぞれ用いた固体群移動の表現

第4章

実験

24

図 4.4: 容器内固体群を容器外へこぼす様子

第4章

実験

4.2

処理速度についての実験

25

この実験では、システムの「描画頂点数」と、描画更新速度との関係を調べた。描画頂点数が多くなるほど格子間隔は狭く、粒子表現の固体群は小さくなり、より細かい固体群の表現が可能になる。今回は、予備調査で自然な挙動を得られると評価を得た頂点数 331 点から数を増やしていき、同一の固体群操作を行ったときの描画更新速度を測定することで実験を行った。またこの際、実験中に行う固体群操作の挙動計算の違いによって測定値が変化する
ため、操作データを一つ記録しておき、そのデータを用いて各頂点数に対して実験を行った。

4.2.1

結果

結果は表 4.1 のようになった。なお、頂点群が格子状であるにも関わらず、頂点数が 2 乗の値ではないのは、容器が円形状をしているためである。
表 4.1: 処理速度についての実験結果

4.2.2

頂点数

FPS(平均)

331
817
1387
2107

438
224
134
87

考察

対話操作のシステムとして利用する場合、一般的に 10FPS から 12FPS 以上必要であると言われている。表 4.1 より、本モデルでは描画頂点数が 331 において 438FPS(平均) である
ので、対話操作を行うのに十分な処理速度であり、このシステムに新たな要素を追加することも十分可能だということがわかる。

4.3

挙動の自然さについての実験

本提案モデルの固体群挙動の自然さを評価するため、被験者 10 人に実験システムを体験してもらい、簡単なアンケートを行った。ハイトフィールドの頂点数を 331 点に設定した実験システムを用いて以下のような手順で実験を行った。

1. 被験者にシステムの概要と操作方法を説明し、数分間自由に操作を行ってもらう。

第4章

実験

26

2. 被験者に「こぼれ」の操作を行ってもらい、存在確率粒子での表現や挙動の自然さについて 7 段階評価のアンケートに答えてもらう。

3. 被験者に「こぼれ」及び存在確率粒子を含む全体的な固体群操作を行ってもらい、挙動の自然さについて 7 段階評価のアンケートに答えてもらう。

7 段階評価の評価点の目安はどちらも
1: 全く自然に見えない:
4: VR システムとして実用に耐え得る自然さ:
7: 現実と同程度の自然さとした。図 4.5 に「こぼれ」の挙動の評価結果、図 4.6 に全体的な固体群挙動の評価結果を示す。

図 4.5: 「こぼれ」の挙動の評価結果

図 4.5 より、「こぼれ」の挙動に対して 9 割もの被験者から評価点 4 以上の高い評価を得ている。このことから、VR システムとしてある程度の実用に耐えることが可能だと考えられる。しかし、高い評価点をした被験者から「落下している粒子の大きさにバラつきがほしい」という意見を頂いた。現実世界で固体群をこぼす際、「固体」と「固体群」が混じった状態で落下していく。この意見を参考にすることで「こぼれ」挙動の自然さを向上できるものと思われる。また、数人の被験者から「少しこぼした時の挙動に違和感を感じた」という意見も頂いた。これは、少し容器を傾けた状態だと自由落下粒子の発生地点がほぼ 1 点に集

第4章

実験

27

まってしまうことが原因だと考えられる。現実世界において、少し容器を傾けて固体群をこぼす場合、こぼれ出す場所に多少バラつきや広がりが発生する。この違いによって違和感を感じたものと思われる。

図 4.6: 全体的な固体群挙動の評価結果

図 4.5 においても、全体的な固体群挙動に対して 9 割もの被験者から評価点 4 以上の高い評価を得ている。これは、存在確率粒子、自由落下粒子といったように、粒子によって固体群の「固体」を表現したことが理由と考えられる。本来固体群は複数の固体の集まりであり、従来の格子モデルベースの固体群操作モデルではその固体「らしさ」を表現することができなかった。提案モデルでは存在確率粒子を用いることでその「らしさ」を表現、また、「こぼれ」挙動での自由落下粒子へ違和感なく変換することで固体群挙動に自然さを感じたものと考えられる。
以上より、本提案モデルは違和感の少ない「こぼれ」挙動の実現、また、存在確率粒子を導入することによって格子モデルベースの固体群操作モデルと「こぼれ」を自然に組み合わせることができたと言える。しかし、いくつかの消極的な意見が得られたので、今後の研究の参考とし、モデルの改良を行っていきたい。

28

第5章

むすび

本研究では、従来の格子モデルベースの固体群操作モデルに、物体間の衝突を考慮しない、計算コストを抑えた粒子モデルを導入した。この粒子モデルでは、容器内固体群の一部に、確率に基づいて描画を制御する粒子を用いることで、計算コストを抑えつつ視覚的な固体群挙動の自然さの向上を図った。また容器内固体群の一部を状況に応じて、自由落下を行う粒子へ変換して容器外へ出すことにより、こぼれの表現も実装している。
本モデルを用いた実験システムでは、従来の格子モデルベースの固体群操作モデル同様、調理容器内の固体群を容器を傾けることにより操作できるだけでなく、固体群を容器外へこぼす操作も可能である。また、格子モデルによる固体群表現に存在確率粒子を導入すること
で、固体一つ一つの固体「らしさ」を表現できる。さらに、この存在確率粒子と板状の変形
曲面を用いることで、格子モデルベースの固体群操作モデルにおいて表現が不十分であった
容器の端から端までの固体群移動を、自然に表現することが可能である。
今後の課題としては、変形曲面の拡張を行うことが挙げられる。挙動の自然さについての実験で、少し傾けた際にほぼ一点からしかこぼれないという意見があり、固体群にかかっている力や広がりなどを考慮した固体群の崩れを、変形曲面によって表現することにより、こぼれの表現、及び全体的な固体群挙動の自然さ向上に繋がると考えられる。また、「へら」な
どの調理器具を用いた固体群の「すくい上げの挙動」等を表現することにより、一連の「盛り付け」の操作を行えるようにすることが挙げられる。文献 [15] で研究されている、固体群の上下動表現モデルと統合し、「舞い上がり」のような容器上部の空中に固体群を移動させるような挙動と「こぼれ」の挙動を合わせた全体的な固体群操作の自然さ、及び処理速度を実験により評価する必要がある。
本研究の目標は調理学習システムの完成であり、調理における手順をすべて再現できる調理学習システムの構築のため、将来的には、「調理」の他に、「材料を洗う」、「材料を切る」という他の操作を行うモデルを提案し、本モデルと統合を行っていく予定である。

29

謝辞

本研究を進めるにあたって、日頃から多大な御尽力を頂き、ご指導を賜りました名古屋工業大学、舟橋健司

准教授、伊藤宏隆

助教、山本大介

助教に心から感謝致します。

また、本研究に対して御討論、御協力頂きました名古屋工業大学 中村研究室の皆様ならびに中部大学 岩堀研究室の皆様に深く感謝致します。
最後に、本研究に多大な御協力を頂きました舟橋研究室諸氏に心から感謝致します。

30

参考文献

[1] 舘日章、”バーチャルリアリティの基礎 1 人工現実感の基礎”、2000[2] 舘日章、”バーチャルリアリティの基礎 2 人工現実感の設計”、2000[3] 舘日章、”バーチャルリアリティの基礎 3 VR 世界の構成手法”、2000[4] 舘日章、”バーチャルリアリティの基礎 4 人工現実感の評価”、2000[5] 瀬戸崎典夫、森田裕介、武田仰、”ニーズ調査に基づいた多視点型 VR 教材の開発と授業実践” 、日本バーチャルリアリティ学会論文誌 Vol.11、No.4 pp.537-544、2006[6] 向井信彦、 西村律郎、 小杉信、”手術シミュレータ向け出血表現の高速化手法” 、日本バーチャルリアリティ学会論文誌 Vol.11、No.3 pp.371-376、2006[7] 橋本宣慶、 加藤秀雄、 松井恭平、 石田洋子、 王亮、”シミュレータによる歯石除去の訓練─シミュレータの構築と人口歯石除去による訓練効果の検討─” 、日本バーチャル
リアリティ学会論文誌 Vol.11、No.4 pp.453-458、2006[8] 山肩洋子、角所考、美濃導彦、”調理コンテンツの自動作成のためのレシピテキストと調理観測映像の対応付け”信学論 (D)、vol.J90-D、no.10、pp.2817-2829、2007[9] 福田司、中内靖、野口勝則、松原隆、”自律移動ロボットとタッチパネルを利用した調理作業支援システム”、日本機械学会論文集、C 編、vol.72、no.716、pp.1215-1222、2006[10] 任天堂株式会社 Wii、
http://www.nintendo.co.jp/index.html[11] 株式会社スクウェア・エニックス クッキングママ、
http://www.square-enix.com/jp/archive/wii_cookmama/[12] 小田康行、村岡一信、千葉 則茂、”溶岩流の粒子ベース・ビジュアルシミュレーション”、芸術科学会論文誌、Vol.2、No.1 pp.51-60、2003[13] 西田友是、尾上耕一、”Virtual Sandbox”、Proceedings of IEEE 2003 Paciﬁc Conference
on Computer Graphics and Applications、pp.252-259、2003

31[14] 舟橋健司、小栗進一郎、”家庭での利用を目的とした VR 調理学習システムのための固体群操作モデルの検討”、日本バーチャルリアリティ学会第 13 回大会講演論文集、pp.171-

172、2008[15] 森井敦士、 山本大介、 舟橋健司、”VR 調理学習システムのための存在確率の遷移に基づく固体群の上下動の表現”、平成 22 年度

名古屋工業大学大学修士学位論文、2011