平成 23 年度 卒業論文

VR 調理学習システムのための変形曲面による固体群の崩れ表現

指導教員
舟橋

名古屋工業大学

工学部

平成 20 年度入学

栗本

情報工学科

20115055 番

雄多

健司

准教授

i

目次

第 1 章 はじめに

1

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

32.1

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

32.2

調理容器と固体群の表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.3

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

6

2.3.1

変形曲面の形状 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

2.3.2

変形曲面の適用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.3.3

変形曲面適用後の処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92.4

固体群の崩れの表現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.5

容器外の固体群の表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

第 3 章 変形曲面による固体群の崩れ表現

12

3.1

提案モデルの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

3.2

変形曲面の形状 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

3.3

崩れの中心となる候補点の探索 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

3.4

候補点の削減 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

3.5

最終候補点の崩れ判定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

3.6

変形曲面の適用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

第 4 章 実験

224.1

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

22

4.2

処理速度と評価実験

25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

第 5 章 むすび

26

謝辞

27

参考文献

28

1

第1章

はじめに

VR(バーチャルリアリティ) とは，現前していないにもかかわらず，同一の表象を生じさせる技
術やシステム [1] である．VR によって，本質的には現実空間と同じ性質を持った環境が提供されるため，ユーザはその環境があたかも現実の空間に存在しているような感覚を得ることが可能である．VR を用いたシステムを利用することの利点は安全性の確保，使用する物品のコスト削減，
意図的に体験したい状況を作り出せることなどである．VR の用途は多岐に及び，デザイン，医療，製造，科学，エンターテインメント，報道，景観計画，都市計画，防災などでの導入が実施，検討されている．例としては手術に関するシミュレータ [2][3] や，製造に関するシミュレータ [4]などが挙げられる．ユーザはこれらのシステムを利用することで多大な恩恵を受けることが可能であるが，用いる装置が巨大であったり高価であったりするため，一般家庭でも導入可能な VR シ
ステムやデバイスの普及は進んでいないと言える．
しかし，近年では「Wii リモコン」[5] のような直観的な操作を行うことの出来るハードウェア
が安価で手に入るようになってきており，一般家庭における高性能なデバイスの普及が期待される．また，一般家庭への普及を目的とした学習システムとして，調理学習を支援するシステムの研究が行われている [6][7]．近年の少子化や核家族の増加によって調理に関する知識，技術不足が懸念されるため，調理学習を目的としたコンテンツの需要が高まっている．実際に提供されているコンテンツとしては「クッキングママ」[8] が挙げられる．これは料理の手順を学びながら楽しむことを目的としたゲームであり，ユーザは食材を切る，炒める，盛り付けるといった操作を行う．
当研究室では，一般家庭を対象としたコンテンツの一つとして料理を採り上げ，VR 調理学習シ
ステム「バーチャルお料理教室」の開発を行っている．このシステムでは，操作者自らが体を動かして体験することにより，料理の手順を学習することを目的としている．最終的には，調理場の用意，食材を洗う，切る，炒める，盛り付けるといった料理の基本的な手順を学習できるコン
テンツの作成を目指している．当研究室ではこれまでに，調理工程の一例として，複数の固体が集まったものの操作モデルの研究が進められてきた．調理工程で操作の対象となるものはフライ
パンや鍋など（以下，調理容器，または容器），包丁やへらなど（以下，調理器具），食材，液体などが考えられる．これらを表現するには剛体，流体，弾性体などの挙動を表現する必要がある．
一方で，操作者が臨場感を得るためには，操作するものの挙動がリアルタイムに表現されていることが必要である．
ところで調理工程を体験するためには，米や様々な食材片などの小さな固体の集合に対する対
話操作を実現する必要がある．これらはその構成要素である粒子の大きさや粘性，弾性など様々な特徴によって挙動が変化する．関連する研究として，溶岩流 [9] や砂 [10][11] などの研究が行われている．文献 [9][10] では粒子法が用いられており，厳密な挙動を表現しているが，固体一つ一第 1 章 はじめに2つに作用する衝突や重力の影響を計算しているため，計算時間が大きく，対話操作には向いていないと言える．また，文献 [11] では粒子法を用いないモデルであるが，対話操作が可能なほど計算速度が高速ではない．
これらのモデルに対して当研究室では，「複数の固体で構成されるが，全体として一つの集合体であると一般に認知される物」を固体群と呼び，一つの操作対象として処理することにより，対話操作を可能とする固体群操作モデルを提案してきた [12]．この手法では，固体群を構成する個々の固体に関する挙動は考慮せず，固体群全体を一つの操作対象とすることで高速な挙動計算を行っている．具体的には固体群を粒子により表現するのではなく，２次元格子上のハイトフィールド
によって表現している．この手法では厳密な挙動を再現することは困難であるが，一般にそれが固体群であると認識される挙動を高速な計算で表現可能である．以降は，このモデルを格子法モ
デルと呼称する．また，開発開始当初の格子法モデルでは，固体群の挙動は調理容器内に限定されていたため，文献 [13] において固体群の調理容器外での挙動を表現した固体群操作モデルを提案している．このモデルでは固体群が存在する存在確率フィールドを「内部領域」「上部領域」「外部領域」に分け，それぞれの領域で固体群の挙動を計算することで，「舞い上がり」と「こぼれ」を表現する．しかし，これは操作者が調理容器を振ったり傾けたりすることによって固体群に力が作用する場合に限定している．調理容器を静止させた状態で固体群が崩れる挙動の表現は局所的な計算で簡易に行っている．そのため，1 ステップで処理される崩れ挙動は局所的なものであり，挙動が全体に影響するには相当な時間が必要である．
そこで，本研究では調理容器を静止させた状態において固体群が崩れる様子を，これまでの固体
群操作モデルにおける挙動計算法に準じた計算手法により表現することを目的とする．即ち，個々の固体の移動計算を行うことにより崩れを表現するのではなく，全体（限定的な領域）において「崩れ」という挙動そのものを表現するためのモデルを提案する．本モデルにより高速な計算速度を保ちつつ固体群を構成する個々の固体の性質による崩れ方の違いを表現し，崩れ表現に汎用性を持たせることを可能にする．第 2 章において，従来の格子法モデルベースの固体群操作モデルの概略を説明する．第 3 章では提案モデル，第 4 章では提案モデルの実験と結果について述べる．

3

第2章

2.1

従来の固体群操作モデル

固体群操作モデルの概要

本章では，これまでに当研究室で提案している従来の固体群操作モデルについて説明する．この固体群操作モデル，即ち格子法モデルでは，固体群を構成する個々の固体に関する挙動は計算
せず，固体群全体を一つの操作対象とみなすことによって高速な挙動計算を可能にするとともに，固体群のある程度自然な挙動を表現している．格子法モデルベースの固体群操作モデルでは，調理容器内の食材片の集まりである固体群の挙動を表現している．調理容器を傾けたり，振ったりすることによって容器内の固体群は力を受ける．この力は厳密には固体群を構成する個々の固体に働く重力や摩擦力などであるが，これらを全て考慮すると計算時間が増加し，対話操作性が損なわれてしまう．そこで，本モデルでは固体群全体を一つの操作対象とみなし，全体に作用する力による固体群の挙動を曲面で近似表現している．このような固体群挙動を表現する際に用いる
曲面を，変形曲面と呼称する．ある時刻 t から時刻 t + ∆t における容器内の固体群の挙動を固体
群の断面図を用いて図 2.1 に示す．

1

2

3

増加
減少

時刻 t

曲面を
生成・加算

時刻 t + ∆t

図 2.1: 曲面による固体群の移動表現

1. 固体群は傾けられた容器の底面に沿って下に移動すると考えられる．
2. 変形を表現するための曲面を定義し，固体群の体積を増加，減少させる．
3. 時刻 t + ∆t において固体群が前時刻よりも下に移動する．
図 2.1 のような処理をすることで固体群の移動が表現できるが，体積を増加または減少させる図

2.1 のような変形曲面の形状を求めることは困難である．そこで，実験システムでは代替の処理を

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

4

段階的に行うことで，固体群の挙動を近似的に表現している．この代替的な処理を図 2.1 と同様に固体群の断面図を用いて図 2.2 に示す．

1

2

3

4

g
時刻 t + ∆t

時刻 t
図 2.2: 正の変形曲面を用いた代替処理

1. 固体群は傾けられた容器の底面に沿って下に移動すると考えられる．
2. 固体群が移動する方向に曲面を定義し，固体群の体積に加算する．
3. 容器内の固体群の体積が曲面加算前の体積と等しくなるような処理を行う．
4. 時刻 t + ∆t において固体群が前時刻よりも下に移動する．

図 2.3: 調理容器を傾けたときに定義される変形曲面

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

2.25

調理容器と固体群の表現

格子法モデルベースの固体群操作モデルでは，調理容器内の固体群の挙動を表現している．調理容器の定義を以下に示す．

• 容器底面:凸多角形の平面図形• 容器側面:底面に対して垂直であり，高さを h とする
調理容器底面には格子状の頂点群を定義し，固体群が存在する頂点に高さを設定するハイトフィー
ルドで図 2.4 のように固体群を表現する．ハイトフィールドによって表現された固体群の総体積 Vと各頂点の高さ h(xi , zj ) の関係は，

V =

N
∑

h(xi , zi )(2.1)

と表すことができる．

zyx
図 2.4: 調理容器内の固体群表現

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

2.3

変形曲面

2.3.1

変形曲面の形状6

図 2.2 に示した固体群の加算に用いる変形曲面は，計算量の削減のため半楕円柱とする．変形曲面を定義する変数を以下に示す．

• 調理容器底面と平行である楕円の長半径 a• 調理容器底面と垂直である楕円の短半径 b• 調理容器内での位置 oD• 楕円柱の中心軸 LD• 楕円柱の長さ rD

oD

b

a
LD

rD
図 2.5: 楕円柱の変形曲面

調理容器内の固体群が，外力によって移動する様子を，変形曲面を適用することで表現する．調理容器を振ったり傾けたりすることで固体群は容器底面と平行な力 Fb が作用するとすると，Fb の向きと固体群が移動する向きは等しいため，楕円柱の向きは Fb と同じとする．また，半楕円柱の生成位置は固体群の重心から Fb の向きに平行移動させた位置とする．平行移動させる距離は調理
容器と平行である楕円の長半径に比例させる．固体群の重心 G = (xG , zG ) は調理容器内のハイトフィールドの重心であるため，mij をハイトフィールドの格子座標とすると，

1 ∑h(xi , zj )mij
V
N

G=

(2.2)

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

7で求められる．よって，半楕円柱の生成位置は，

oD = G +Fbva（v : 任意の定数）| Fb |(2.3)となる．楕円柱の長半径である a は固体群の移動距離に関する変数である．つまり，a = 0 であれ
ば変形曲面は適用されず，固体群は移動しない．a の設定には，固体群の挙動を考慮する必要がある．固体群は剛体とは異なり，図のように容器端に固体群が到達した場合でも移動し続けるため，
固体群の大部分が容器の端に移動し終えるまで a > 0 とする必要がある．そこで，調理容器の側図 2.6: 調理容器端での固体群の挙動

面から固体群に作用する垂直効力 FN を考え，a は調理容器の端に接している固体群の量に対して減少するように設定する．FN の定義を以下に示す．

• FN の大きさは，固体群が調理容器の側面に接している面積に比例する．
• FN の向きは，側面に接している箇所の重心から調理容器中心への向きと同じとする．
この定義により，FN は，

FN = − | Vs |Gs
| Gs |(2.4)と表される．式 2.4 中の Vs は調理容器側面に接している格子が持つ高さの総和 Vs であり，

Vs =

Ns
∑

h(x′i , zj′ )(2.5)となる．h(xi , zj ) は調理容器側面に接している格子が持つ高さであり，Ns は調理容器側面に接している高さが 0 以上の格子の数である．また，式 2.4 中の Gs は調理容器に接している固体群の重心であり，m′ij を (x′i , zj′ ) の座標とすると，
s
1 ∑
Gs =
h(x′i , zj′ )m′ij
Vs

N

(2.6)

となる．ただし，必要な抗力は図のように固体群に作用する外力と逆方向の成分であり，調理容
器の側面から中心への向きと同じである．この力を Fn′ とすると，| Fn′ |=| Fn | T cos(π − ϕ + ψ)(T : 定数)(2.7)

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

8

ϕ は Fn の xz 平面での角度，ψ は固体群に作用する外力と xz 平面との角度である．Fn の x 成分
を Fnx ，z 成分を Fnz とすると，(
ϕ = arctan

Fnz
Fnx

)
(2.8)

となる．以上で求めた Nn′ を用いて，a を以下のように設定する．

(a=T − | Fn′ | (T ≥| Fn′ | ，T : 定数)0(T <| Fn′ |)(2.9)

a は固体群が調理容器側面から受ける抗力を考慮に入れて定義されたものであるが, 固体群に作用する力や固体群の体積による影響が少ない．よってこれらを補うために調理容器底面と垂直な楕円の短半径 b を次のように設定する．
(√(µ − µ′ )T Vb=0(µ ≥ µ′ , T : 定数)(µ < µ′ )(2.10)

なお，µ は動摩擦力，µ′ は静止摩擦力，V は固体群全体の体積である．また，式 2.3 より，楕円柱の中心軸 LD は，xz 平面の中心を原点としたとき，sin(α)x − cos(α)y − sin(α)(xG + acos(α)) + cos(α)(zG + asin(α)) = 0(2.11)

となる．

2.3.2

変形曲面の適用

第 2.3.1 節で定義した変形曲面を生成，加算し，体積を一定に保つ処理を行うことで固体群の移動を表現する．変形曲面による加算は，楕円柱の長半径によって作られる範囲と調理容器内の各格子との内外判定によって行われる．式 2.11 より，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

点 P が楕円の長半径が作る範囲内に存在するとき，楕円柱による高さの変化 Yp は，
√

( )2
L 
Yp =  1 −×ba(2.12)(2.13)であるため，曲面加算後の P の高さ h′ (xp , zp ) は，h′ (xp , zp ) = h(xp , zp ) + Ypとなる．

(2.14)

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

2.3.3

9

変形曲面適用後の処理

格子モデルでは，変形曲面によって固体群の挙動を表現するが，変形曲面を加算することで固体群の体積が増加してしまう．そこで，変形曲面加算後の体積が加算前の体積と等しくなるような処理を行う．変形曲面加算後の体積を V ′ ，各頂点の高さを h(xi , zj ) とすると，

V′ =

∑

h(x, z)(2.15)となる．よって，体積を等しくする処理を行った後の各頂点の高さ h′ は，

h′ (x, z) =Vh(x, z)V′(2.16)となる．この処理を行うことで，体積を変化させることなく固体群の挙動を表現することが可能
である．

2.4

固体群の崩れの表現

固体群は操作者が調理容器を扱うことによって生じる力が作用しない場合でも崩れることがある．この挙動を表現するために，ある頂点 (x, z) と，容器中心方向の近傍の二頂点 s1 (x, z)，s2 (x, z)との高さの差 hs1 ，hs2 をそれぞれ求め，その値がしきい値 t より大きい場合，頂点間の高さをそれ
らの平均値として再設定する．点 (x, z) と近傍の 2 頂点との大小関係と，そのときの点 (x, z) の高さの変化を以下に示す．

• hs1 > t，hs2 > t のとき，h(x, z) = 31 (h(x, z) + s1 (x, z) + s2 (x, z))• hs1 > t，hs2 ≤ t のとき，h(x, z) = 21 (h(x, z) + s1 (x, z))• hs1 ≤ t，hs2 > t のとき，h(x, z) = 21 (h(x, z) + s2 (x, z))• hs1 ≤ t，hs2 ≤ t のとき，h(x, z) = h(x, z)
この処理は 1 フレームにおいて有限回実行さるため，高さの変化は徐々に広がっていき，固体群が崩れていく挙動が表現される．

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

2.5

10

容器外の固体群の表現開発開始当初の格子法による固体群操作モデルでは，固体群の挙動は容器内に限られていた．文献 [13] では従来の固体群操作モデルを拡張し，容器外の挙動の一つとして挙げられる「こぼれ」を表現した．この手法では，調理容器内に固体群が存在可能な境界を設定する（図 2.7）． 容器の傾

A境界

B境界

θ

θ

θ

θ

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

きなどで固体群に力が作用してこぼれる様子を表現するために A 境界を設定する．A 境界では容器の縁のうち，最も低い点を含み，水平方向との角度が θ の無限平面を定義する．θ は積み上がった固体が自発的に崩れることなく安定を保つ斜面の角度である．傾いている調理容器の最も低い
格子 (xl , zl ) と, ある格子 (x, z) との距離を Lxz ，ワールド座標系水平方向と調理容器がなす角度を

β ，調理容器の高さを h とすると，格子 (x, z) におけるこの境界面の高さ a(x, z) は，a(x, z) = Lxz tan(θ − β) + h(2.17)

で求められる．
また, 調理器具によって押し出された固体群がこぼれる挙動を表現するために B 境界を設定する．B 境界では，容器の縁を含む平面との角度が上述の θ となる角錐状の境界を定義する．格子(x, z) におけるこの境界面の高さ b(x, z) は，b(x, z) = Lxz tan(θ) + hで求められる．よってある格子 (xi , zj ) におけるこぼれの境界 k(xi , zj ) は，{a(xi , zj )k(xi , zj ) = minb(xi , zj )(2.18)(2.19)

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

11となり，この境界を越えた固体群を調理容器からこぼれたとする．k(x, z) < h(x, y) が成り立つ場
合，こぼれる固体群の体積 Vs (x, z) は，Vs (x, z) = k(x, z) − h(x, y)(2.20)

で表されるため，Vs (x, z) 容器内の固体群全体の体積 V から減算する．よって，こぼれた後の固体群全体の体積 V ′ は，

V′ =V −∑Vs (x, z)(2.21)となる．なお，フライパンを振り上げるなどの動作による固体群の「舞い上がり」については文
献 [13] を参照されたい．

12

第3章

3.1

変形曲面による固体群の崩れ表現

提案モデルの概要

当研究室で提案されてきた格子法モデルでは，固体群全体を一つの操作対象とすることで計算時間を削減し，ある程度の自然な挙動の表現と対話操作を可能にしている．この手法では，固体群が外力を受けた場合の挙動は変形曲面を用いることで表現している．しかし，変形曲面を用いた固体群の容器上での挙動表現は，操作者が調理容器を扱うことによって生じる力が作用した場合に適用しており，それらの力が作用しない状況において，積み重なった固体群が崩れる場合には対応していない．また，2.4 節で述べた通り既存の格子法モデルにおける簡易的な崩れの表現は，ある格子とその近傍の格子の頂点の高さの差を求め，その値がしきい値を越えていればそれらの頂点の高さをそれらの平均値として再設定する，というものであった．この処理では，崩れによって変化する各格子の高さは隣接する格子の高さのみに影響されるため，崩れ方は固体群は積み重なり方によって一意に決定される．固体群を構成する個々の固体の密度や粘性のような性質によって崩れの進行速度は変化するべきである．本研究で提案する手法では，崩れる固体群全体（あるいはその一部分）を一体的に扱うことにより，従来の崩れ表現では例えば N ステップかかる処理を，適切なパラメータを設定することで任意のステップで行うことが可能となる．これによって，崩れの進行速度の違いを表現し，崩れの表現に汎用性を持たせることが可能である．従来手法の崩れの表現と提案手法の崩れの表現の比較を図 3.1，3.2 に示す．

1ステップ 2ステップ

Nステップ

図 3.1: 従来の崩れ表現

任意のステップ（適切なパラメータ）
図 3.2: 提案手法の崩れ表現

第 3 章 変形曲面による固体群の崩れ表現

13以降では，従来の固体群操作モデルで提案された，調理容器内の固体群が移動する挙動を表現した変形曲面を「従来の変形曲面」，本研究で新たに提案する崩れを表現した変形曲面を「崩れの変形曲面」と呼称する．ある時刻 t から t + ∆t における固体群の崩れの挙動計算を，固体群の断面図を用いて図 3.3 以下に示す．

1

2

増加

3

減少
曲面を
生成・加算

時刻 t

時刻t + ∆t

図 3.3: 曲面による固体群の崩れ表現

1. 急な斜面を形成するように積み重なった固体群が崩れると判定する
2. 変形を表現するための曲面を定義し，体積を増加，減少させる
3. 崩れる前よりも緩やかな斜面を形成する
固体群全体（あるいはその一部分）を一つの操作対象とするため，まず始めに固体群の崩れが起こる位置を求め，続いて崩れが及ぶ範囲を求める．崩れが起こる位置とは，固体群が崩れる積み
重なり方をしている箇所であり，崩れが及ぶ範囲とは，崩れによって格子の持つ高さが変化する範囲である．これらは，調理容器底面に定義された 2 次元格子の座標とその格子が持つ高さを用いて求める．提案モデルでは，崩れが起こる範囲内の最も高い頂点から崩れ始めるとし，この頂点を崩れの中心点と呼称する．中心点の位置は，調理容器内の格子座標と，その格子が持つ高さによって表される．また，崩れが及ぶ範囲は，崩れの中心点の高さと固体群の積み重なり方を考慮する必要がある．ある候補点で起こる崩れの影響が及ぶ範囲を求めるために，図 3.4 に示すような安息角 θ を用いた領域を用いる．

第 3 章 変形曲面による固体群の崩れ表現

14

θ

y z

x
図 3.4: 安息角を用いた円錐状の領域

以降，安息角を用いた領域を，「崩れ領域」と呼称する．安息角は固体群が安定を保つ角度である．即ち，安息角を越えて積み重なっている固体群は崩れが起こるとし，また，その崩れは崩れ
領域底面の円の範囲に含まれる格子の高さに影響を及ぼすとする．提案モデルの全体像を図 3.5 に示す．以降では，変形曲面の定義と図 3.5 の各処理の詳細を述べる．

崩れの表現
崩れの中心となる候補点の探索
候補点の削減最終候補点の崩れ判定
変形曲面の適用
図 3.5: 提案モデルの全体像

第 3 章 変形曲面による固体群の崩れ表現

3.2

15

変形曲面の形状

固体群は安定を保てない積み重なり方をした場合に崩れる．重力以外に外力が作用しない状況下において，崩れが起こった固体群は安定するまで崩れ続けるため，崩れる前よりも緩やかな斜面を形成する．崩れの表現に用いる変形曲面の形状は，2 次元のガウス曲線（図 3.6，3.7）を固体群の断面図として見立て，崩れる前後の固体群の変化を考慮し，これらの曲線の差分を取り，得られた曲線を 3 次元表現した曲面を変形曲面とする．変形曲面を図 3.8 に示す．変形曲面 T を定義する変数は以下の通りである．

• 調理容器内での位置 Gc （以下，変形曲面の中心点）• xz 平面に投影した変形曲面の半径 rc

図 3.6: 崩れる前の固体群のイメージ

図 3.7: 崩れた後の固体群のイメージ

Gc

hc > 0hc ≤ 0

rc
y z

Gc

x

z

y
図 3.8: 変形曲面x

図 3.9: xz 平面に投影した変形曲面

第 3 章 変形曲面による固体群の崩れ表現

3.3

16

崩れの中心となる候補点の探索

始めに，崩れの中心点を求める．そのために，ある格子の頂点が崩れの中心点となるために少なくとも満たすべき条件を考える．固体群は 2 次元格子の座標と格子の持つ高さによって表現されるため，格子間の高さを比較することで局所的な積み重なり方を調べることが可能である．したがって，提案手法では，ある格子 (x, z) の頂点を注目点とした場合，その 4 近傍の格子の頂点との高さを用いた判定を行うことで，注目点が崩れの中心として考えられるかを判定する．以下，
崩れの中心点と考えられる頂点として求められた注目点を「崩れの候補点」，または単に「候補点」と呼称する．

i −1

z

i +1
j +1

i

j

注目点

j −1

x

y

図 3.10: 注目点と 4 近傍の頂点

y

注目点

h

i −1 izx
i +1

図 3.11: 注目点と，x 軸に関する 2 近傍（z 軸に関しても同様）

注目点の頂点の高さ hP と，x 方向，z 方向の 2 近傍の格子の頂点の高さの平均をそれぞれ hx，hz とすると，h(xi−1 , z) + h(xi+1 , z)2h(x, zj−1 ) + h(x, zj+1 )
hz =
2
hx =

(3.1)
(3.2)

第 3 章 変形曲面による固体群の崩れ表現

17となる．図 3.12，図 3.13 に示すように，注目点の高さ h と近傍 2 頂点の平均の高さ have の大小関係を h > have と h ≤ have 2 通りに分ける．

注目点

y

y
注目点

x

x

z

i −1 ii +1

i −1 iz

i +1

図 3.13: h ≤ have の場合

図 3.12: h > have の場合

hP ，hx ，hz の大小関係とそのときの各頂点の様子を例を用いて図 3.14 に示す．
1. hp > hx ，hp > hz
2. hp ≤ hx ，hp > hz
3. hp > hx ，hp ≤ hz
4. hp ≤ hx ，hp ≤ hz
4. の条件を満たしたとき，注目点を崩れの候補点とする．

1

2

y z

y z

x

x

3

4

y z

y z

x

x
図 3.14: 注目点と 4 近傍の位置関係

第 3 章 変形曲面による固体群の崩れ表現

3.4

18

候補点の削減第 3.3 節の処理では，近傍の格子間の頂点の高さを比較し，小さな領域で固体群の積み重なり方を考えることで崩れの候補点を求めた．しかし，候補点は固体群の体積や積み重なり方によっては数多く検出され，一つ一つの候補点を崩れの中心点として扱うには計算時間が増加してしまう．
また，崩れる固体群全体を操作対象とするためには，より大きな領域を扱う必要がある．そこで，候補点を削減するために，ある候補点で起こる崩れの及ぶ範囲が，他の候補点を含む場合を考える（図 3.15）．

P

P

Q

Q

図 3.15: 崩れの及ぶ範囲に含まれる頂点

点 Q は点 P による崩れの影響を受け，安定するまで崩れる．P によって作られる崩れ領域内に含まれる他の候補点 Q は，P の崩れに含まれるとする．よって，領域内の Q は候補点から除外し，Q を中心とする崩れは表現しないものとする．処理の流れを示す．

領域外

領域外
領域内

領域内

y

θ

y z

z

x
図 3.16: 候補点の崩れ領域に対する内外判定θx

図 3.17: 候補点の崩れ領域に対する内外判定（xy
平面に投影）

1. 候補点 P を頂点とする円錐状の崩れ領域を作成
2. P の崩れ領域に対する内外判定
3. 領域内の候補点を除外得られた候補点のうち，格子の持つ高さが最も大きい頂点 P1 を崩れ領域の頂点とする．以降，頂点を P とする円錐状の崩れ領域を「点 P が作る崩れ領域」と呼称する．他の候補点の，点 P1 が作
る崩れ領域に対する内外判定を行い，領域内部に含まれる場合は候補点から除外する．また，P1

第 3 章 変形曲面による固体群の崩れ表現

19

は 3.5 で述べる崩れが起こるかの判定を行う点として記録する．このように記録された候補点を「最終候補点」と呼称する．すべての候補点の，点 P1 が作る崩れ領域に対する内外判定を終えた
後，残る候補点に対して最も高さが大きい点 P2 を定め，同様に各候補点に対する内外判定を行う．
この処理は，全ての候補点が最終候補点として記録される，あるいは候補点から除外されるまで続けられる．点 P = (x, z) が作る崩れ領域とある候補点 K(xk , zk ) の内外判定は，格子間の距離

Lp (xk , zk ) を用いる．点 P が持つ高さを h(xp , zp )，安息角を θ とすると，点 P が作る崩れ領域底面部の円の半径 rp は，

rp =

hp
tanθ

(3.3)

であり，rp ≥ Lp (xk , zk ) を満たす格子が持つ領域の高さ hb (xk , zk ) は，

hb (xk , zk ) = (rp − Lk (xk , zk ))tanθ(3.4)

で表される．したがって，ある候補点 k は次のようにして内外判定を行う．

• h(xk , zk ) < hb (xk , zk )のとき，k は領域内

• h(xk , zk ) ≥ hb (xk , zk )のとき，k は領域外全ての候補点を最終候補点とする，あるいは候補点から除外されるまでこの処理を続けることで候補点を削減する．最終候補点で崩れが起こるかの判定を次節に述べる処理で行う．

3.5

最終候補点の崩れ判定

第 3.4 節では，崩れの影響によって格子の高さが変化する領域を考えた．ここでは，候補点が崩れを起こすか，即ち，変形曲面を適用するかどうかの判定を行う．斜面の角度が一様に安息角であるような固体群が存在する場合，固体群全体の形は円錐である．ここで，崩れ領域内の固体群の体積が減少したとすると，それは固体群のある箇所で安息角を越えて積み重なっていることを表す．このことを崩れが起こる判定基準とし，安息角 θ を用いた円錐の体積と固体群の体積の比較を行う．点 P の作る崩れ領域の体積 VP と，領域底面部の円 o に含まれる格子の持つ崩れ領域内の高さ hs を比較することで点 P を中心とした崩れが起こるかを判定する．崩れ領域の体積 Vp は，

Vp =

np
∑

k(x, z)(3.5)

x,z∈(c,o)で表される．np は調理容器 c の内部かつ崩れ領域底面部 o に含まれる格子数，k(x, z) は格子 (xk , zk )における崩れ領域の高さである．また，領域底面部の格子が持つ崩れ領域内の高さ hs は以下の通
りである．

{
hs =

hb (xk , zk ) (h(x, y) ≥ hb (xk , zk ))h(x, y)(h(x, y) < hb (xk , zk ))したがって，崩れ領域に存在する固体群の体積 Ve は，(3.6)

第 3 章 変形曲面による固体群の崩れ表現

20

VP

各格子の頂点の
高さの和

θ

y z

o

x
図 3.18: 崩れ領域の円錐の体積(xp , z p )
y

格子の高さ

VP
h

hb

o
z

崩れ領域の高さx

2 rP
図 3.19: 崩れ領域と領域内の体積

Ve =

ne
∑

hs

(3.7)

である．よって，点 P を中心とした崩れが起こる条件は以下の通りである．

Vp > Ve(3.8)

式 3.8 を満たしたとき，最終候補点 P が作る崩れ領域で崩れが起こるとし，最終候補点 P を変形
曲面の中心点として設定する．これらの処理は第 3.4 節で得られた最終候補点全てに対して行わ
れる．

3.6

変形曲面の適用

固体群は積み重なり方によって崩れ方が異なる．固体群の斜面の角度が安息角より僅かに大きい場合は緩やかな崩れが起こることが考えられるため，1 ステップで崩れによってもたらされる格子の高さの変化を小さくする必要がある．一方，安息角を大きく越えている場合は急激な起こる

第 3 章 変形曲面による固体群の崩れ表現

21

ことが考えられるため，1 ステップで崩れによってもたらされる格子の高さの変化を大きくする必要がある．これらを変形曲面で表現するために，固体群の体積と崩れ領域の作る体積を比較して固体群の積み重なり方を近似的に推定する．推定には以下に示す体積の比率 R を用いる．

R=Ve(0 < R ≤ 1)
V

(3.9)

R と固体群の積み重なり方のイメージを図 3.20 に示す．適用する変形曲面の半径 rc は R を用い

V

Ve
θ

θ

θ

0 < R ≤11

図 3.20: R と固体群の積み重なり方の推定て以下のように決定される．

rc =

hp
R
tanθ

(3.10)

したがって，変形曲面による格子の高さの変化 Yc は，

Yc = BhP Trc (Lp (xk , zk ))（B : 任意のパラメータ）(3.11)となる．この処理を全ての最終候補点に対して行い，崩れの変形曲面を適用することによって固体群全体（あるいはその一部分）を一つの操作対象とした崩れを表現する．式 3.11 より，Yc は変形曲面 T ，任意のパラメータ B によって決定される．T は任意のガウス関数によって定義される
ため，任意に設定することが可能である．また，B によって各格子の高さの変化を調整し，崩れの進行速度の違いを表現する．以上より，B と T を適切に設定することで固体群の崩れを任意のステップで行うことが可能である．

22

第4章

4.1

実験

実験システム

前述した提案モデルを用いて実験システムを構築し，処理速度と挙動の自然さの二方面から実証実験を行った．本実験では，安価な入力装置として，任天堂株式会社より発売されている「Wiiリモコン」と「Wii モーションプラス」を用いた．Wii リモコンには加速度センサと赤外線センサ
が，Wii モーションプラスにはジャイロセンサが搭載されている．今回の実験システムでは，赤外線センサは使用せず，加速度センサで調理容器の平行移動，ジャイロセンサで回転を行うように設計した．描画には DirectX を利用し，以下の構成の計算機で構築した．

• CPU : Pentium(R)Dual-Core E5200 2.50GHz• MEM :1.00GB• GPU : NVIDIA GeForce 9500 GT• OS : Microsoft Windows XP
実験システムでは調理容器を直径 32.5cm，側面の高さ 6.4cm のフライパン，固体群を炒飯と想定している．調理容器内の固体群はテクスチャマッピングにより描画する．図 4.1 に実験の様子を示す．本実験システムでは，体験者は Wii リモコンを操作することで調理容器を動かし，容器内の固体群を動かすことができる．
図 4.2 ∼ 図 4.4 に固体群の描画の様子を示す．なお，今回の実験では固体群が崩れる様子を明瞭に表現するために，第 2.5 で述べた固体群がこぼれる挙動は表現しないものとする．図 4.2 は安息
角を越えて積み重なった固体群が崩れる様子である．固体群が崩れていく様子が確認できる．図4.3，図 4.4 に調理容器を水平な状態から傾けて固体群を容器端に寄せ，再び調理容器を水平に戻したときの様子を示す．容器端に寄せられた固体群が徐々に崩れていく様子が確認できる．本提案モデルではパラメータを設定することで崩れの進行速度を変化させることが可能であり，図 4.3と図 4.4 で崩れ方の違いが確認できる．

第 4 章 実験

23

図 4.1: 実験の様子

図 4.2: 安息角を越えて積み重なった固体群が崩れる様子

第 4 章 実験

24

図 4.3: 緩やかな崩れ

図 4.4: 急激な崩れ

第 4 章 実験

4.2

25

処理速度と評価実験

本提案モデルの処理速度を，描画更新速度により評価した．調理容器底面に定義された 2 次元
格子の格子数が多くなるほど格子間隔が狭くなり，より細かい固体群の表現が可能となる．今回の実験では，同一の固体群操作を行ったときの格子数と描画更新速度の関係について調べた．実験中に行う固体群操作の挙動計算の違いによって測定値が異なるため，予め操作データを記録しておき，その入力データの下で各格子数を変更して行った．結果を表 4.1 に示す．
表 4.1: 処理速度についての実験結果
格子数

fps

317
529
901
1343

1015
620
393
203

一般に，対話操作を行うシステムには 10-12fps 以上の処理速度が必要であると言われている．表

4.1 より，本提案モデルの処理速度は対話操作に十分であるだけでなく，本実験システムのような基本モデルに加え様々な処理が必要な応用システムにおいても問題ないと判断できる．
実際に数名の被験者に本提案モデルの崩れの表現を行った場合と従来モデルの崩れの表現を行った場合のシステムをそれぞれ体験してもらった．また，本提案モデルでは図 4.3 と図 4.4 に示すような崩れ方の違いも体験してもらった．これらについてアンケート調査を行った結果，提案モデルを用いたシステムでは，固体群の緩やかな崩れや急激な崩れの様子の違いが感じられるという意見をいただくことができた．よって，変形曲面を崩れの処理に適用することで固体群を構成す
る個々の固体の性質による崩れの違いを表現可能であると言える．一方で，崩れ方に固体群の「固体らしさ」を感じられないという意見もいただいた．これは，固体群を一体的に扱って挙動計算をしているためであると考えられる．以上より，本提案モデルは固体群の崩れの進行速度を適切なパラメータで設定可能であると言える．しかし，挙動の自然さについて不自然に感じられるという意見が得られたため，今後の研究の参考とし，モデルの改良を行っていきたい．

26

第5章

むすび

本研究では，従来の格子法ベースの固体群操作モデルにおいて変形曲面による表現を行っていなかった固体群の崩れの挙動に対し，変形曲面を適用するモデルを提案した．本提案モデルでは固体群全体（あるいはその一部分）を一つの操作対象とするために，始めに崩れが起こる可能性のある箇所を求める．次に，安息角を用いた領域によって崩れが及ぼす影響を考え，崩れが起こるかを判定する．そして，固体群が崩れる前後の積み重なり方を想定した変形曲面を適切に設定
し，固体群に適用することで崩れを表現する．変形曲面を用いて崩れを表現することで，固体群を構成する個々の固体の性質によって生じる崩れの進行速度の違いを，適切なパラメータを設定することで表現可能となる．
今後の課題点としては，調理容器形状の拡張や，「へら」等の調理器具と固体群の干渉における変形曲面を用いた挙動の拡張が挙げられる．実験システムでは調理容器としてフライパンを想定しているが，調理工程では様々な形状の調理容器を扱うことが考えられる．現在当研究室で別途
開発途中である，調理容器底面及び側面を構成する面が平面でない「中華鍋」を想定した調理容器を利用した固体群操作を実現することで，操作者にさらなる臨場感を与えることが可能になると考えられる．また，調理器具と固体群の干渉モデルも別途開発中である．これらのモデルと本モデルを統合することで，様々な状況での固体群操作が可能となる．本研究の最終目的は VR 調
理学習システムを完成させることである．このシステムは操作者が自ら体を動かして基本的な調理の手順を学習することを想定しているため，「食材を洗う」，「食材を切る」といったような工程を対象としたモデルを提案し，システム全体の構築を進めていく予定である．

27

謝辞

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

准教授，伊藤宏隆

助教，山本大介

究に対して御討論，御協力頂きました本学

助教に心から感謝致します．また，本研

中村研究室の皆様ならびに中部大学皆様に深く感謝致します．
最後に，本研究に多大な御協力頂きました舟橋研究室諸氏に心から感謝致します．

岩堀研究室の28

参考文献[1] 舘 日章，佐藤 誠，廣瀬 通孝，「バーチャルリアリティ学」，工業調査会，2010．
[2] 橋本 宣慶，加藤 秀雄，松井 恭平，石田 洋子，王 亮，”シミュレータによる歯石除去の訓練─
シミュレータの構築と人口歯石除去による訓練効果の検討─”， 日本バーチャルリアリティ学会論文誌 Vol.11，No.4，pp.453-458，2006．

[3] 向井 信彦，西村 律郎，小杉 信，”手術シミュレータ向け出血表現の高速化手法”，日本バーチャルリアリティ学会論文誌 Vol.11，No.3，pp.371-376，2006．

[4] 小林 一彦，加藤 秀雄，島本 聡，”保護面型 HMD と疑似溶接棒を用いた手溶接作業の訓練システム”，精密工学会誌論文集，vol.72，No.2，pp.249-253，2006．

[5] 任天堂株式会社 Nintendo Ds、Wii
http://www.nintendo.co.jp/index.html[6] 生井 みづき，瓜生 大輔，徳久 悟，柏樹 良，稲見 昌彦， 奥出 直人，”panavi : センサ・アク
チュエータ・無線通信機能を内蔵するフライパンを中心とした、料理スキルの習得を支援するシステム (生活メディアセッション, 生活メディア) ”，電子情報通信学会技術研究報告. MVE,
マルチメディア・仮想環境基礎，Vol.109，No.281， pp.41-46, 2009．

[7] 加藤 史洋，三武 裕玄，長谷川 晶一，”体験型料理シミュレータ”，日本バーチャルリアリティ学会第 15 回大会講演論文集，2D2-2(DVD-ROM)，2010．

[8] 株式会社タイトー クッキングママ
http://www.taito.co.jp/csm/title/2007/cooking_mama/wi_mama/index.html[9] 小田 泰行，村岡 一信，千葉 則茂，”溶岩流の粒子ベース・ビジュアルシミュレーション”，芸術科学会論文誌，Vol2，No.1，pp.51-60，2003．

[10] Rahul Narain, Abhinav Golas, and Ming C. Lin, ” Free-Flowing Granular Materials with
Two-Way Solid Coupling” In ACM Transactions on Graphics (Proceedings of SIGGRAPH
Asia), vol. 29, no. 6, pp. 173:1-173:10 ，2010．
[11] 西田 友是，尾上 耕一，”Virtual Sandbox”、Proc. of Paciﬁc Graphics 2003 (The 11th Paciﬁc
Conference on Computer Graphics and Applications), pp. , 2003-10．

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

ROM) 1E2-1 (2008.9，奈良先端科学技術大学院大学)．
[13] 森井 敦士, 上垣内 稍太, 山本 大介, 舟橋 健司，”VR 調理学習システムのための存在確率に基づく粒子による固体群の上下動の表現”日本バーチャルリアリティ学会論文誌, Vol.16, No.4,

pp.539-549, 2011.12．