平成 25 年度 卒業論文

固体群操作モデルの麺形状物体操作を対象とした
VR 調理学習システムへの応用

指導教員
舟橋

名古屋工業大学

工学部

平成 22 年度入学

布目

情報工学科

22115112 番

貴大

健司

准教授

i

目次

第 1 章 はじめに

1

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

32.1

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

32.2

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

5

2.3

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

5

2.3.1

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

5

2.3.2

半楕円体形状の変形曲面 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.3.3

負の変形曲面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.4

容器外へのこぼれの表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.5

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

12

2.6

テクスチャスライディング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

2.7

剛体による固体群操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

2.7.1

調理器具の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

2.7.2

調理器具と固体群の干渉判定. . . . . . . . . . . . . . . . . . . . . . . . .

15

2.7.3

調理器具の軌跡と固体群の変形 . . . . . . . . . . . . . . . . . . . . . . . .

16

2.7.4

調理器具の正の変形曲面 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

第 3 章 麺形状物体によるアニメーション作成とマッピング

20

3.1

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

20

3.2

麺の表現方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

3.3

質点に作用する力の計算処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

3.4

麺同士の干渉 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

3.5

アニメーション生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

3.6

固体群形状に応じたアニメーションマッピング . . . . . . . . . . . . . . . . . . . .

26

3.6.1

ビデオテクスチャマッピング. . . . . . . . . . . . . . . . . . . . . . . . .

26

3.6.2

固体群の形状変化によるアニメーションの描画速度 . . . . . . . . . . . . .

26

3.6.3

テクスチャスライディングを用いた麺の移動表現 . . . . . . . . . . . . . .

27

3.6.4

エンドレスなアニメーション

28. . . . . . . . . . . . . . . . . . . . . . . . .

ii

第 4 章 実験

30

4.1

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

30

4.2

処理速度についての評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

4.3

挙動の自然さについての評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

第 5 章 むすび

35

謝辞

36

参考文献

37

1

第1章

はじめに

バーチャルリアリティ(以下，VR) とは，現前していないにもかかわらず，そこにあるものと同一の表象を生じさせるようなものである．[1] すなわち，実体は伴わないが機能としての本質は同じであるような環境をコンピュータ上に作り出し，あたかもそこにその環境や物体があるかのよ
うな現実感を感じさせる技術である．VR の用途は多岐に渡り，医療や製造，科学，デザイン，エンターテイメントなど数多くの分野で利用されている．その具体例として，手術に関するシミュ
レータ [2]，教育に関するシミュレータ [3] [4]，没入体感型エンターテイメントシステム [5]，3D
プレゼンテーションシステム [6] などが挙げられる．このような VR を用いたシステムを利用することで，実際に必要となる機材を準備するコストの削減，実体験を必要とする訓練の効率の向上，現実で起こりうる危険の回避などが可能となる．しかし，VR 技術を用いたシステムを実現する装置は非常に高価であったり，大規模な装置を必要とするものが多いため，一般家庭への普及はあまり進んでいるとは言えない．
近年では，技術の進歩に伴い，これまで高価で手に入れることが困難だった直観的な操作が可能な機器が，安価に手に入れることが可能になり，一般家庭でも導入可能な VR システムやデバイスが身近な存在になりつつある．任天堂株式会社から発売されている「Wii」[7] では，入力装置である「Wii リモコン」と呼ばれるデバイスを用いて直観的な操作を可能としている．このような機器が普及するにしたがって，一般家庭向けの新たなコンテンツの可能性が広がってきている．ところで，近年の少子化，核家族化により，以前よりも自分自身で料理をしなければならな
い状況が増えているため，それに伴い，料理経験の少ない人を中心に調理に関する学習・訓練のためのシステムの需要が高まってきている．こうした背景から，一般家庭を対象とした調理学習
支援システムに関する研究 [8] が進んでいる．実際に提供されているコンテンツとしては，株式会社タイトーから発売されている「クッキングママ」[9] が挙げられる．これはゲーム内でユーザが食材を切る，炒めるなどの調理操作を行うことで，料理手順を学びながら楽しむことができるものとなっている．
当研究室でも，一般家庭を対象としたコンテンツとして料理をとりあげ，VR 調理学習システム「バーチャルお料理教室」の開発を行っている．前述した「クッキングママ」との違いとして，実際の調理と同じような感覚で料理の手順を行うことで，より効果的に料理の手順を学ぶことができる点である．ここでいう料理の手順とは，食材の用意から加工・調理・盛り付けなどの料理における一連の作業を指す．

第 1 章 はじめに

2

当研究室ではこれまでに，調理工程において，米や食材片などの，複数の小さな固体が集まったものに対する対話操作の研究を行ってきた．このような小さな固体の集まりについては，溶岩 [10]や砂 [11] などを対象とした対話操作に関する研究がある．文献 [10] では，粒子法を用いて対話操作を行う．しかし，個々の小さな固体に作用する力の計算を行っているので，計算に膨大な時間を要し，挙動をリアルタイムに表現する必要のある対話操作には向かない．また，文献 [11] では，粒子法の代わりにハイトフィールドに基づいたモデルを用いているが，対話操作が行えるほどの処理時間には達していない．これらのモデルに対して，当研究室では「複数の小さな固体が集まって，全体で一つの集合体として認知されるもの」を固体群と称し，一つの操作対象として扱うことで，リアルタイムでの対話操作が可能な固体群操作モデル [12] を提案している．この手法では，
粒子法のような個々の固体に対する厳密な計算を行っていないが，ユーザが固体の集まりであると認識できる挙動を実現しながら，リアルタイムでの対話操作を可能とする．この固体群操作モ
デルでは，調理容器の底面に二次元格子を設定し，その格子一つ一つに高さ情報を持たせる，すなわち，ハイトフィールドを用いることにより，調理容器内の固体群の挙動を表現している．
「バーチャルお料理教室」では，これまで調理容器内の食材として炒飯のような固体群について考えてきた．すなわち，固体群操作モデルにより固体群の挙動を計算するとともに，描画時にハイトフィールド上に炒飯等のテクスチャをマッピングすることにより視覚的に炒飯らしさを表現している．本研究では新たに麺形状物体の対話操作を検討する．スパゲッティなどの麺形状物
体は複数が互いに絡まり合うように複雑な挙動を示すため，直接的に挙動を計算することは困難である．一方，糸や布の挙動に関する研究は行われており [13] [14] [15] [16]，バネ質点系による計算は書籍等にも記載されている [17]．本論文で提案する手法では，まず非リアルタイムにスパゲッ
ティのアニメーションを作成しておく．システム利用時には，フライパン内のスパゲッティの集
まりの概略表面を固体群操作モデルと同様に決定し，この表面にスパゲッティのアニメーション
をビデオテクスチャとしてマッピングすることで，麺形状物体の対話操作を実現する．これにより，本来麺一本一本の挙動計算に必要な膨大な時間を考慮することなく，リアルタイムで麺という新たな調理食材を「バーチャルお料理教室」で表現することが可能となる．
第 2 章において，従来の固体群操作モデルの概略を説明し，第 3 章でバネ質点系を用いた麺形
状物体のアニメーション作成と本システムへの応用に関する提案モデル，第 4 章で実験の手法と結果，第 5 章にむすびを述べる．

3

第2章

2.1

従来の研究固体群操作モデル

固体群操作モデルの概要

本章では，これまでに当研究室で提案してきている従来の固体群操作モデルについて説明する．
この固体群操作モデルでは，個々の固体にかかる力を計算するのではなく，固体群を全体で一つの操作対象物体とみなして処理することで計算時間の削減を行うとともに，対話操作を実現している．操作者はフライパンのような形を想定した調理容器を傾ける，振るといった操作を行うことで調理容器内の固体群の形状変化を起こすことができる．本モデルでは，固体群全体を一つの操作対象とみなし，固体群全体に作用する力による固体群の挙動を曲面により近似して表現している．このような固体群を表現する際に用いられる曲面を，「変形曲面」と呼称する．図 2.1 において調理容器を傾けた際のある時刻 t から時刻 t + ∆t における容器内に存在する固体群の形状変化を，固体群の断面図を例に説明する．

1

2

3

増加

減少
時刻t

曲面を生成・加算

時刻‫ ݐ‬+ ∆‫ݐ‬

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

1. 重力により容器内に存在する固体群は容器下方向に移動する．
2. 変形曲面を発生させ，固体群の体積を増加，減少させる．
3. 時刻 t + ∆t において固体群が時刻 t よりも下の位置に移動する．
このような処理を行うことで固体群の移動を表現することができるが，実際に図 2.1.2 のような体積の増減を行うための変形曲面の形状を求めることは困難である．そこで，段階的に分けて代替

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

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

1

2

3

4

݃
時刻‫ݐ‬

時刻‫ ݐ‬+△ ‫ݐ‬

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

1. 重力により容器内に存在する固体群は容器下方向に移動する．
2. 固体群の移動方向に正の変形曲面を生成し，固体群の体積に加算する．
3. 容器内の固体群の体積と，曲面加算の体積が等しくなるように体積を修正する．
4. 時刻 t + ∆t において固体群が時刻 t よりも下の位置に移動する．
また，図 2.2 において生成する正変形曲面の形状には，計算量を削減するために図 2.3 のような半楕円柱を用いる．

図 2.3: 半楕円柱形状の変形曲面

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

5

‫ݖ‬
Ｚ
y

‫ݔ‬

図 2.4: 円柱形状の容器の中に固体群が存在している様子

2.2

調理容器と固体群表現

固体群操作モデルでは，調理容器内に存在する固体群を一つの操作対象として扱っている．固体群に作用する力を近似的に計算することで挙動を表現する．固体群は図 2.4 に示すように調理容
器内に定義したハイトフィールドによって表現する．
ハイトフィールドの格子 (xi , yj ) に存在する体積 V (xi , yj ) は，その格子が持つ値 f (xi , yj ) と，その格子の面積 S(xi , yj ) を用いて次のように表すことができる．

V (xi , yj ) = S(xi , yj )f (xi , yj )(2.1)

したがって，調理容器内に存在する固体群の総体積 Vc は，調理容器内にあるハイトフィールドの格子数 N を用いて次のように求まる．

Vc =

N
∑

V (xi , yj )(2.2)

ハイトフィールドの各格子の値を変化させることで，調理容器内の固体群の挙動を表現する．

2.3

変形曲面

2.3.1

変形曲面の形状固体群操作モデルで生成する正の変形曲面は半楕円柱であり，以下のパラメータを定めることで生成する半楕円柱の形状を決定する．

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

6

b

oD

a
LD

rD

図 2.5: 半楕円柱の形状決定• 調理容器底面に平行な楕円の長半径 a• 調理容器底面に垂直な楕円の短半径 b• 調理容器内での位置 oD• 楕円柱の中心軸 LD• 楕円柱の長さ rD
調理容器を振ったり，傾けるなどの動作を行うことにより，調理容器内の固体群に，調理容器底面に対して平行な力 Fb がかかるとする (図 2.6)．この時，固体群は重心 Gc に集まっていると仮定
し，変形曲面の生成位置を重心 Gc から力 Fb の方向に位置するように設定する．半楕円柱の生成
位置 oD は次のように求めることができる．

oD = G c +

Fb
νa
|Fb |

(2.3)

ここで，Gc はハイトフィールドの重心であり，以下のように求められる．

1 ∑
Gc =
f (xi , yj )mij
Vc
N

(2.4)

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

7ܽ‫ܨ‬௕ = ݉݃ sin ߠ‫ܨ‬௕ = ݉ܽߠ݃݃
図 2.6: 容器を振る，傾ける場合に固体群に働く力

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

mij はハイトフィールドの格子の座標であり，ν は任意の定数である．
半楕円柱の断面となる楕円の長半径 a は，固体群操作モデルにおいて固体群の移動距離と移動する体積量の双方に関するパラメータである．a = 0 のとき，半楕円柱は存在しないことになり，固体群は移動しない．固体群は剛体とは異なり，図 2.7 のように容器端に達しても移動し続ける．
そのため，固体群の大部分が容器端まで移動し終えるまで a > 0 とする必要がある．
そこで，長半径 a は調理容器の端に接している固体群の量に対して減少するように設定する．

{
a=

′

′

T1 − |FN | (T1 ≥ |FN |)′0(T1 < |FN |)

(2.5)

′

ここで，T1 は定数，FN は調理容器の側面からの抗力 FN の Fb に対して平行な成分である．固体群操作モデルでは，FN を容器の側面に接する固体群の量とその重心から近似的に求める．ここで，′FN と Fb のなす角を ϕ とすると，FN は以下のように求められる．

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

8′

FN = −|FN | cos ϕ

Fb
|Fb |

(2.6)

cos ϕ は以下の Fb と FN の内積で表すことができ，次のようになる．

FN · Fb|FN ||Fb |cos ϕ =

(2.7)

また，FN は以下のように求められる．

FN = T2 Vcside

Gside
c|Gsidec |(2.8)

ここで，T2 は定数，Vcside は調理容器の側面に接している格子の体積の総和，Gside
は調理容器のc
側面に接している固体群の重心であり，それぞれ以下のように求められる．

Vcside =

Gside
=
c

N
side
∑

1

′

N
side
∑

Vcside′f (xi , yj )

′

′

(2.9)

′

f (xi , yj )mij

(2.10)式 (2.9)，式 (2.10) における，Nside は調理容器内に定義されたハイトフィールドの格子のうち，調
′

′

′

′

′

理容器の側面に接している格子 (xi , yj ) の総数であり，mij は格子 (xi , yj ) の座標である．
長半径 a は固体群が容器の側面から受ける抗力を考慮して定義されたパラメータであるが，固体群にかかる力や固体群の体積による影響があまりない．よって，これらを補うために半楕円柱の短半径 b を以下のように設定する．

{
b=
′

′

T2 |Fb | − µ0′√Vc (|Fb | ≥ µ)(|Fb | < µ)(2.11)′

T2 は定数，µ は最大静止摩擦力，µ は動摩擦力を表すパラメータである．
半楕円柱の姿勢は，楕円柱の芯となる直線 LD で定義される．LD は oD を通り，Fb と直交するベクトルであるので，実数 t とベクトル lD を用い，次のように表される．

LD = oD + tlD
lD は以下の条件を満たすベクトルである．

(2.12)

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

9

lD ·

Fb
=0
|Fb |

(2.13)

楕円柱の長さ rD は，調理容器の底面を構成する平面図形と直線 LD の交点を結んだ線分の長さに等しくなるように設定する．
決定した変形曲面のパラメータより，正の変形曲面である半楕円柱を生成して固体群に加算する．
変形曲面による加算は，加算する対象の格子 (xi , yj ) の座標 mij と直線 LD との距離 lij が lij ≤ aとなる格子に行う．正の変形曲面により加算された格子 (xi , yj )add が持つ値 f (xi , yj )add は以下のように求められる．

{f (xi , yj )add =√lf (xi , yj ) + b 1 − ( aij )2 (lij ≤ a)f (xi , yj )(2.14)(lij > a)変形曲面による各格子の値の変化分を決定し，固体群の体積を増加させる．

2.3.2

半楕円体形状の変形曲面

半楕円体形状の変形曲面を定義する変数を以下に示す．

• 半楕円体の赤道半径 a′′• 半楕円体の極半径 b′• 調理容器内での位置 oD′

赤道半径 a は体積により変化させるため，次のように求められる．

′′

a = T1√Vc(2.15)′

T1 は任意の定数，Vc は容器内に存在する固体群の体積を表すパラメータである．固体群の体積を軸の計算に用いる場合は，計算の簡略化のために平方根に定数をかけることで近似する．極半径′b には固体群に作用する力や容器内固体群の総体積，容器曲面から固体群が受ける摩擦力を考慮
し，次のように決定する．

{
′

b =

′
′√
(|Fb | − µ )T2 Vc (|Fb − µ ≥ µ)0(|Fb − µ < µ)(2.16)

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

10

T2 は任意の定数，外力 Fb は容器操作によって作用する力 Fb と容器形状により作用する力 Fc の合
力，µ，µprime は固体群が容器から受ける最大静止摩擦力および動摩擦力である．Vc は容器内に′存在する固体群の体積である．変形曲面の生成位置 oD は固体群の重心 Gc から固体群が受ける力′′

Fb の向きに移動させた位置に決定する．oD は定数 υ を用いて次のように表される．

′

oD = G c + υ

′

Fb
|Fb |

(2.17)′′

ある座標 (xi , yj ) における半楕円体形状の変形曲面の高さ f (xi , yj ) は，変形曲面の生成位置 oD か′ら (xi , yj ) の距離を lij とすると，√′′

f (xi , yj ) = b
′

′

1−(

lij
a′

)2

(2.18)′となる．ただし l ≤ a である．変形曲面による各格子の値の変化分を決め，固体群の体積を増加
させる．

2.3.3

負の変形曲面

前述した正の変形曲面を適用しただけでは固体群の体積は増加してしまう．そこで，変形曲面を適用する前の固体群の体積と等しくするために体積を減少させる負の変形曲面を適用する．負′の変形曲面を適用した後の格子 (xi , yj ) に設定された値 f (xi , yj ) は，′f (xi , yj ) =Vc
f (xi , yj )add
Vcadd

(2.19)となる．f (xi , yj )add は体積を増加させる変形曲面を適用した後の格子の値であり，加算後の固体
群全体の体積 Vcadd は次のように求められる．

Vcadd =N∑′f (xi , yj )(2.20)

この処理によって，固体群全体の体積を維持しながら固体群の挙動を表現することができる．

2.4

容器外へのこぼれの表現

調理容器外の固体群の表現として「こぼれ」の表現と「舞い上がり」の表現 ([18]) が実装されているが，本節では「こぼれ」の表現に関して説明する．従来の固体群操作モデルに計算コストを

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

11

図 2.8: 固体群のこぼれ境界

抑えた粒子を導入することで，容器内の固体群が容器外へ落下する様子を表現する．容器内には固体群操作モデルにより表現されたまとまった一つの固体群と，各格子に確率的に存在する固体群粒子である「存在確率粒子」により表現されている．存在確率粒子は，各格子の高さ情報から粒子の存在する確率を求め，その確率に基づき粒子の描画を制御する．存在確率粒子により容器
内の固体群の固体らしさや自然な移動過程を表現できる．また図 2.8 は，容器外へこぼれが発生する条件を定義するために設定するこぼれ境界を示している．

A 境界は容器を傾けた際に固体群がこぼれる高さの境界であり，B 境界はヘラなどの調理器具により押し出されることで固体群がこぼれる高さの境界である．なお，θ は積み上がった固体群が自発的に崩れることなく安定を保つ斜面の角度とする．固体群は二つの境界のどちらかを越えた部分に対して，存在確率粒子を自由落下のみを行う「自由落下粒子」に変換し，容器外の空間へ落とすことでこぼれの挙動を実現する．そして，境界を越えた高さから容器外へのこぼれによって減少する固体群の体積を求め，こぼれる前の容器内の固体群から減算することでこぼれた後の体積を求める．

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

2.5

12

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

固体群が高く積み上げられた状態で，調理容器を扱うことで生じる力が作用していない場合において，限定された範囲における崩れが起こる．そこで，崩れる固体群全体，あるいはその一部分を一体的に扱うことで，変形曲面による崩れを表現する．このモデルでは，適切なパラメータを設定することで，固体群の崩れを任意のステップで行うことが可能となる．図 2.9 では，固体群の崩れ挙動を断面図を用いて示す．

1

2

3

増加

減少
時刻t

曲面を生成・加算

時刻‫ ݐ‬+ ∆‫ݐ‬

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

1. 急な斜面を形成するように積み重なった固体群が崩れると判定する
2. 変形を表現するための曲面を定義し，体積を増加，減少させる
3. 崩れる前よりも緩やかな斜面を形成する
始めに崩れが起こる位置を求め，続いて崩れが及ぶ範囲を求め，次に，円錐状の崩れ領域を定義す
る．崩れ領域は積み重なった固体群が安定する形状を基に作成する．崩れ領域の体積と固体群の体積を比較し固体群の形状を推定することで，崩れが起こるかを最終的に判定する．生成する変形曲面に用いられるパラメータを適切に設定することで，任意のステップでの崩れが表現できる．

2.6

テクスチャスライディング

容器内の固体群は描画時にテクスチャマッピングを行うことにより表現するが，固体群操作の臨場感向上のため，文献 [11] のテクスチャスライディングを容器内の固体群の描画に取り入れる．
文献 [11] におけるテクスチャスライディングは，固体群の全体的な移動を視覚的に表現するための手法である．ハイトフィールドの 4 つの格子点からなるポリゴンメッシュに定義したテクスチャ

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

13

座標を，ハイトフィールドの変化にしたがって変化させることにより，固体群の挙動を視覚的に表現することができる．テクスチャスライディングを適用するにあたって，容器内に定義された
ハイトフィールドに，(xi , yj ), (xi+1 , yj ), (xi , yj+1 ), (xi+1 , yj+1 ) の 4 つの格子点からなるポリゴン
メッシュ(xI , yJ ) を定義し，ポリゴンメッシュごとに，テクスチャ座標 TIJ とテクスチャ座標更新
速度 vIJ を記憶させる．毎フレーム各ポリゴンメッシュのテクスチャ座標 TIJ (t) を以下のように更新する (図 2.10)．

TIJ (t) = TIJ (t − 1) + DOT vIJ (t)(2.21)DOT は内部固体群の挙動方向にテクスチャスライディングを行うための制限で以下のように求
める．

{
DOT =

1 (vIJ (t) · (Gc (t) − Gc (t − 1)) > 0 のとき)
0 (vIJ (t) · (Gc (t) − Gc (t − 1)) ≤ 0 のとき)

(2.22)Gc (t) はハイトフィールドの重心座標である．さらに，テクスチャ座標更新速度についても以下のように更新を行う．

vIJ (t) = λvIJ (t − 1) + ∆vIJ

(2.23)

λ は更新速度を減衰させるためのパラメータであり，0 < λ < 1 である任意の定数とする．∆vIJ
は以下のように求める．
′∆vIJ = −(∆f (xi , yj )mij′

+ ∆f (xi+1 , yj )m(i+1)j′(2.24)+ ∆f (xi , yj+1 )mi(j+1)′+ ∆f (xi+1 , yj+1 )m(i+1)(j+1) )′∆f (xi , yj ) は各格子が持つ値の変化，mij はポリゴンメッシュの重心から各格子点座標 mij までの相対ベクトルであり，以下のように求める．

1′
mij = mij − (mij + m(i+1)j + mi(j+1) + m(i+1)(j+1) )4(2.25)

以上により決定したテクスチャ座標 TIJ ，テクスチャ座標更新速度 vIJ を用いて，重心座標 Gc の変化に応じた描画処理を実現する．

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

14

ハイトフィールドの重心座標‫ܩ‬௖ (‫ ݐ‬− 1)‫ܩ‬௖ (‫)ݐ‬

テクスチャ
座標

ܶூ௃ (‫ ݐ‬− 1)

時刻 − 1‫ݐ‬ܶூ௃ (‫)ݐ‬

重心位置
の移動

図 2.10: テクスチャスライディング

時刻

‫ݐ‬

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

図 2.11: 凸包の例

2.7剛体による固体群操作

2.7.1

調理器具の定義

調理容器を傾ける，移動するといった操作で，固体群を間接的に操作することは可能であるが，固体群を局所的に操作することは困難である．この節では，剛体の調理器具による局所的な操作を可能にするためのモデルについて説明する．フライパンなども調理器具の一種であるが，これらは調理容器と呼び，ヘラなどを調理器具と呼称することにする．このモデルでは，剛体とは固体群と接触する部分 (以下，固体群操作面と呼称) が 1 つ以上の長方形からなるものとする．調理
器具は固体群操作面が鉛直となる姿勢で，水平方向と上下方向の平行移動と，面の向きを鉛直軸により回転する移動を行うものとする．

2.7.2

調理器具と固体群の干渉判定

本モデルでは，調理器具の水平方向と上下方向の移動に加えて，面の向きの鉛直軸による回転を行う．そこで，調理器具の固体群と接触する部分を構成する頂点により構成される三次元凸包を考え，その凸包と固体群の干渉を調理器具と固体群の干渉として扱う．図 2.11 は凸包の例である．
調理器具は三次元空間上を自由に平行移動させることができるため，凸包を構成する点は三次元座標で表す．そこで，ある格子 (xi , yj ) 上の固体群の高さが f (xi , yj ) で表されるとき，点(xi , yj , f (xi , yj )) を Pijh とし，同様に点 (xi , yj , 0) を Pijz とする．このとき，以下の 2 つの条件を満たす場合，固体群は凸包 Hch と干渉していると判定する．

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

16

′௛௜௝


௜௝௛

′
’



′
′



௭
′௜௝

௜௝௭



௭௛

′௭௛

図 2.12: 直線 lzh が鉛直になるようにアフィン変換

1. 凸包 Hch をハイトフィールドの格子の平面 (以下，格子座標平面と呼称) に正射影した平面′′

図形 Hch と，ハイトフィールドの格子 pij = (xi , yj ) が，pij ⊂ Hch である．

2. Pijz と Pijh を通過する直線 lzh と凸包 Hch の交点 Pij が存在するとき，Pijz と Pij の距離が，ハイトフィールドの格子の値 f (xi , yj ) よりも小さい．
凸包を構成する三角形 Sk の 3 つの頂点 Ak ，Bk ，ck を，直線 lzh が鉛直となるようにアフィン変
′

′

′

′

換したものを，Ak ，Bk ，ck とする．また，鉛直となるように変換した直線は lzh とする．三角形
′

′

′

′

′

z の値は以下のように求め
Sk と直線 lzh の交点を Pijk とすると，Pijk = (xi , yj , zijk ) であり，Pijk

られる．

′

′

z
Pijk
= Akz −
′

′y
′y
′y
1
′x
′x
′x
′ z {nk (Pijk − Ak ) + nk (Pijk − Ak )}nk(2.26)′

なお，nk は三角形 Sk の法線ベクトルである．
ここで，凸包と直線が干渉している場合，2 つの交点を持つことが凸包の定義より明らかなので，2 点を区別するため，ハイトフィールドの格子 (xi , yj ) において凸包と干渉している高さ zijk が低い方の高さを hlow (xi , yj ) とする (図 2.13 参照)．

2.7.3

調理器具の軌跡と固体群の変形

調理器具の固体群操作面の移動軌跡より上部に存在していた固体はその下に存在する固体群との摩擦により，ある程度の量が引きずられるように動く (図 2.13 参照)．そこで，固体群操作面と

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

17ℎ௛௜௚௛ (‫ݔ‬௜ , ‫ݕ‬௝ )ℎ௟௢௪ (‫ݔ‬௜ ,‫ݕ‬௝ )(‫ݔ‬௜ , ‫ݕ‬௝ )

図 2.13: 凸包と直線の交点

sub を以下のように求める．
ある格子 xi , yj が干渉している場合に，その格子から減らす値 vij0(f (xi , yj ) < hlow (xi , yj )) f (x , y ) − hlow (x , y )(hlow (xi , yj ) ≤ f (xi , yj ) ≤ hhigh (xi , yj )
i j
i j
sub
vij
=
(2.27)
f (xi , yj ) − (hhigh (xi , yj ) − hlow (xi , yj ))) f (xi ,yj )−hhigh (xi ,yj )−(f (xi , yj ) > hhigh (xi , yj )2
これにより，減算される体積の総和 V sub は，ハイトフィールドの全格子数 N を用いて，以下のよ
うに求められる．

V

sub

=

N
∑

sub
vij

(2.28)

格子 (xi , yj ) から Vijsub を減算することで，固体群が調理器具の移動軌跡との干渉により変形する挙動を表現する．

2.7.4

調理器具の正の変形曲面

調理器具と固体群との干渉によって生成される正の変形曲面は四分楕円柱とし，変形曲面を定義する変数は以下のようにする (図 2.15 参照)．

• 四分楕円柱の断面となる楕円の長半径 a

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

18

減算する体積凸包

調理器具干渉前

調理器具干渉後

図 2.14: 凸包と固体群の干渉• 四分楕円柱の断面となる楕円の短半径 b• 四分楕円柱の長さ c• 空間上の位置 oC• 楕円の短軸と長軸に直行する直線 LC
空間上での位置 oC は固体群操作面上に設定する基準点を用いて決定する．楕円柱の高さ c は固体群操作面の幅 d を設定する．楕円の短軸と長軸に直行する LC は固体群操作面の法線と平行であり，点 oC を含む直線とする．固体群操作面の一番下の部分である辺を固体群操作面の底辺と呼ぶと，長半径 a の方向を固体群操作面の面法線に対して平行に設定し，短半径 b の方向は固体群操作面に対して平行，かつ固体群操作面の底辺と垂直に設定する．長半径 a は調理器具の移動速度v と固体群操作面の面法線 n を用いて，以下のように設定する．

a = T3 |v · n|

(2.29)

ここで，T3 は定数である．この四分楕円柱によって格子に加算する値は 2.8.3 節で求めた．減算す
る体積の総和 V sub より求めるため，短半径 b には定数を設定する．

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

19

固体群操作面

௖
௖












図 2.15: 四分楕円柱のパラメータ

調理器具の移動軌跡との干渉によって減算した体積と同体積の四分楕円柱を生成し，格子に値を加える．しかし，固体群の形状を格子により表現しているため，離散化した値を用いているため体積が保持されるとは限らない．そこで，減算した体積と正の変形曲面により加算する体積を同じにするため，格子に加算する値に対して修正を行う．正の変形曲面により格子の値を増加させる体積の総和 V add は，次のように求められる．

V

add

=

N
∑

add
vij

(2.30)′

格子 (xi , yj ) が正の変形曲面を加算する前の値を G(xi , yj ) とすると，加算後の持つ値 G (xi , yj ) は，
次のように求められる．

′

G (xi , yj ) = G(xi , yj ) +V add addv
V sub ij

(2.31)

20

第3章

3.1

麺形状物体によるアニメーション作成とマッピング

提案モデルの概要

当研究室で開発を行っている「バーチャルお料理教室」では，描画時にハイトフィールド上に炒飯等のテクスチャをマッピングすることで視覚的に炒飯らしさを表現している．本研究では新たに麺形状物体の対話操作を検討する．スパゲッティのような麺形状物体は複数が互いに絡まり合うような複雑な挙動を示すため，直接的に挙動を計算することは困難である．麺形状物体をバ
ネ質点系を用いて近似的に表現し，絡まり合うような複雑な挙動をその麺形状物体同士の干渉として逐次的に計算処理をすることが考えられるが，これでも実時間による処理は難しい．そこで，
まず非リアルタイムにバネ質点系により表現した麺形状物体のアニメーションを作成しておく．その上で，システム実行時には，フライパン内のスパゲッティの集まりの概略表面を固体群操作モデルと同様に決定し，この表面にスパゲッティのアニメーションをビデオテクスチャとしてマッピングすることで，麺形状物体の対話操作を実現する．これにより，本来麺一本一本の挙動の計算にかかる膨大な処理時間を考慮することなく，リアルタイムでの麺という新たな調理食材のシス
テムへの導入を可能とする．
麺形状物体によるアニメーション作成プログラムの流れを図 3.1 に示す．これらの処理に関しては 3.2-3.5 節において説明する．また，3.6 節において作成したアニメーションの本システムでのマッピング手法について説明する．

3.2

麺の表現方法

麺形状物体を表現するために，バネ質点系モデルを採用する．このモデルは，ひも状物体などを表現する際に用いられる手法であり，構造や物理的な性質を厳密には考慮していないが，現実にある線状物体に近いものを実現することができる．さらに，視覚的に麺を表現するために，描画時にこの質点間 (以下，セグメントと呼称する) を円柱で繋げる (図 3.2)．そして，三次元空間の任意の位置に麺を複数配置することで表現する (図 3.3)．以下，ある時刻 t における質点 Pi の持
つ速度と座標をそれぞれ Vi (t)，Ri (t) として表し，質点の質量はすべて M とする．

第 3 章 麺形状物体によるアニメーション作成とマッピング

調理器具の移動
質点に作用する力の計算
麺同士の干渉判定
フライパン底面との干渉判定
調理器具との干渉判定
描画
図 3.1: アニメーション作成プログラムの流れ

図 3.2: 麺の表現

21

第 3 章 麺形状物体によるアニメーション作成とマッピング

22

‫ݖ‬
‫ݕ‬

‫ݔ‬
図 3.3: 麺の表現の全体像

3.3

質点に作用する力の計算処理

麺形状物体の挙動を表現するために，質点に作用する力を計算する．質点 Pi に作用する力を以下に示す．

1. 質点間に働く弾性力 FS
2. セグメント間の曲り復元力 FR
3. ダンパによる摩擦力 FD
4. 重力 FG
1 は，質点間に働く力であり，外力によって質点間の距離が変化した際に働く力である (図 3.4)．
麺を表現する際は硬いバネで繋がっていると想定しパラメータを決定する．2 は隣り合う二つのセグメント間をバネで繋げることで，麺が曲がった際に元に戻ろうとする向きに曲り復元力 FR が働く (図 3.5)．Pi に曲げ復元力 FR が働くとき，Pi+1 には作用反作用の法則より，−FR の力が働く．

3 に関しては，弾性力，曲り復元力によるバネの固有振動を吸収する役割を果たす．4 は z 軸負の向きに常に働く力とする．結果として，1-4 の力の合力 Fi が質点に作用する力となる．以下，ある時刻 t から質点に作用する力により質点の座標と速度を更新した後 (∆t 秒後) の時刻を t + ∆tとする．
時刻 t におけるこの合力 Fi (t) を運動方程式に適応すると，加速度 ai (t) は以下のように求められる．

ai (t) =Fi (t)
M(3.1)

オイラーの法則を用いることで，微小時間 ∆t 秒後，すなわち，次フレームの質点の速度 Vi (t + ∆t)と座標 Ri (t + ∆t) を計算できる．オイラーの法則は以下のようになる．

第 3 章 麺形状物体によるアニメーション作成とマッピング‫ܨ‬ௌ
ここに数式を入力します。
ܲ௜

23

P
ܲ
௜ାଵ

spring

図 3.4: 質点間の弾性力

‫ܨ‬ோ

ܲ௜ାଵ
ܲ௜

springܲ௜ାଶ

図 3.5: セグメント間の曲り復元力

Vi (t + ∆t) = Vi (t) + ∆t · ai (t)(3.2)

Ri (t + ∆t) = Ri (t) + ∆t · Vi (t)(3.3)

以上の計算処理を毎フレーム行い，質点の座標と速度を更新することで麺形状物体を表現することができる．

3.4

麺同士の干渉3.3 節では，質点にかかる力の計算処理について説明した．本節ではある時刻 t から 3.3 節で述
べた質点の座標と速度の更新後の時刻 t + ∆t に発生する麺同士の干渉について考える．複数の麺が存在するとき，麺同士が互いに絡まり合うような複雑な挙動を見せる．これは麺同士が干渉，すなわち，接触することによってお互いに力を及ぼしあうからであると考えられる．そこで，本手法では，セグメントを基準としてあらゆる二つのセグメント間において干渉を判定し，干渉していれば逐次的に衝突処理を行うことで麺の干渉を表現する．
まず，干渉の判定方法について説明する．干渉の判定は前述した時刻 t から t + ∆t にかけて異なる 2 つのセグメント間の最短距離 d(t) と d(t + ∆t) を用いて考える．以下に干渉する条件を示す(図 3.6)．

第 3 章 麺形状物体によるアニメーション作成とマッピング

24d(t + ∆‫)ݐ‬

d(t)

時刻t

時刻t+Δt

干渉処理後

図 3.6: 2 つのセグメント間の干渉処理

d(t + ∆t) < d(t)(3.4)

d(t + ∆t) ≤ D(3.5)

ここで，D は麺の太さを考慮した任意の定数とする．時刻 t から t + ∆t にかけて 2 つのセグメン
トの距離が近づいている (式 (3.4))，かつ，2 つのセグメントが接触するような距離 D 以下である(式 (3.5)) とき干渉したと判定する．
このようにして，ある 2 つのセグメントが干渉していると判定されたとき，その 2 つのセグメン
トにおいて弾性衝突による計算処理を行う．厳密には干渉が起きた点で衝突処理を行う必要があるが，本手法ではバネ質点系モデルを用いているため近似的に表現する必要がある．そこで，セグメントの速度と質量をそのセグメントを構成している 2 つの質点の平均とし，弾性衝突の処理をすることで，厳密な計算ではないが代替的に干渉処理を行う．質点 Pi ，Pi+1 で構成されたセグ
メント Si,i+1 の速度 Vi,i+1 は次のように求められる (図 3.7)．

Vi,i+1 =Vi + Vi+1
2(3.6)

第 3 章 麺形状物体によるアニメーション作成とマッピング

25

ܸ
ܲ௜

ܸ,

ܲ௜ାଵܸ
図 3.7: セグメント全体の速度

また，セグメントの質量はそれを構成する 2 つの質点の質量の平均となるので同様に M となる．
以上のように求めた干渉時のセグメント Si,i+1 と Sj,j+1 の速度 Vi,i+1 (t + ∆t)，Vj,j+1 (t + ∆t) を′′用いて，干渉による弾性衝突の計算処理後のセグメントの速度 Vi,i+1 (t + ∆t)，Vj,j+1 (t + ∆t) を運動方程式と反発係数 e により求めると(1 − e)Vi,i+1 (t + ∆t) + (1 + e)Vj,j+1 (t + ∆t)2(1 + e)Vi,i+1 (t + ∆t) + (1 − e)Vj,j+1 (t + ∆t)′
Vj,j+1 (t + ∆t) =2′

Vi,i+1 (t + ∆t) =

(3.7)
(3.8)

′

となる．そして，速度 V (t + ∆t) をそれぞれのセグメントを構成する質点の速度 V (t + ∆t) として設定することで，それぞれの質点の座標 R(t + ∆t) を再計算する．

3.5

アニメーション生成

3.2-3.5 節において麺の挙動について説明してきた．これらの処理に加え，麺は重力によりフライパン底面などの水平面上に制限されている．また，アニメーションを作成する上で，箸などの調理器具による麺との干渉によって麺が動く様子についても考える必要がある．そこで，図 3.8 のように麺を配置した三次元空間内に xy 平面に垂直なセグメントを用意する．このセグメントを xy
平面に垂直に限定して xy 平面上を移動させ，麺と干渉した場合には 3.4 節で説明した処理と同様にして箸のセグメントと麺のセグメントにおける干渉によって麺の移動を行う．以上の処理を行うことで，箸などによる調理器具を用いて，フライパンなどの調理容器上での麺の移動を再現したアニメーションを作成することができる．本手法では，汎用性を重視したアニメーションの作成を行う．ゆえに，調理器具による麺の動きは雑然としたものを考慮している．

第 3 章 麺形状物体によるアニメーション作成とマッピング

箸のセグメント26

フライパン底面

‫ݖ‬
‫ݕ‬

‫ݔ‬
図 3.8: 三次元空間内での調理器具，調理容器の導入

3.6

固体群形状に応じたアニメーションマッピング

3.6.1

ビデオテクスチャマッピング

3.3-3.5 節において，麺形状物体によるアニメーション作成手法について説明した．3.6 節では作成したアニメーションを本システムの調理容器内のハイトフィールドにマッピングする手法について説明する．従来のモデルでは，描画時にハイトフィールド上に炒飯等のテクスチャをマッピ
ングすることで，固体群表面に食材のテクスチャが描画され視覚的な炒飯らしさの表現を可能にしている．本手法では，フライパン内のスパゲッティの集まりの概略表面を固体群操作モデルと同様に決定し，作成した麺形状物体によるアニメーションをビデオテクスチャとしてマッピングすることで，フライパン内でのスパゲッティのような麺形状物体によるアニメーションの描画を行う．ビデオテクスチャとは，テクスチャ上で動画を再生する手法であり，文献 [19] などの研究が行われている．また以下で説明する処理を行うことで，麺形状物体の対話操作を実現する．

3.6.2

固体群の形状変化によるアニメーションの描画速度

前節において，アニメーションのハイトフィールドへのマッピングについて説明した．しかし，操作者の操作と無関係にアニメーションを表示すると，操作者に違和感を与えてしまう．そこで，ある時刻間での調理容器内のハイトフィールドに設定されている高さの変化に応じてアニメーショ
ンの描画速度を変更する．まず，時刻 t におけるある格子座標 (xi , yj ) の持つ値を f (xi , yj )(t) とする．このとき，時刻 t-1 から時刻 t にかけてハイトフィールドの全ての格子の値における変化量

Vvar は以下のように求められる (図 3.9)．

第 3 章 麺形状物体によるアニメーション作成とマッピング

27

減少
ܸ௩௔௥
増加
݂(‫ݔ‬௜ , ‫ݕ‬௝ )(t-1)

時刻‫ ݐ‬− 1݂(‫ݔ‬௜ , ‫ݕ‬௝ )(t)時刻‫ݐ‬

図 3.9: 固体群の変化量

Vvar =N∑|f (xi , yj )(t) − f (xi , yj )(t − 1)|(3.9)

N はハイトフィールド上の全格子数を表す．さらに，時刻 t においてアニメーションの描画速度を上げる必要があるような固体群の形状変化が起きたと判定する式は以下のように決定する．

Vvar > τ(3.10)

ここで，τ は任意の定数であり，τ が小さいほど少しの形状変化によってアニメーションの描画速度を上げるように設定する．
以上より，操作者によって調理容器を傾けたり，調理器具によって押し出すなどの操作によって固体群の形状が変化したときにアニメーションの描画速度を上げる．これにより，固体群の形状変化，すなわち食材の移動によって食材を調理しているという認識を操作者に与えるとともに，操作しているという臨場感を出すことができる．

3.6.3

テクスチャスライディングを用いた麺の移動表現

3.5 節で述べたアニメーションは雑然とした動きを考慮しているが，調理容器を傾けたり調理器
具によって押し動かすことにより，固体群が調理容器の片側に寄るように移動した場合の麺の移動は考慮していない．そこで，テクスチャスライディングを用いた麺全体の移動を考える．テク
スチャスライディングは 2.6 節で述べたように固体群の全体的な移動を視覚的に表現する手法であり，この手法を本モデルに適用することで麺全体の移動を表現する．まず，アニメーション作成時に麺の重心位置を中心位置に設定しておく．そして，アニメーションの重心位置とハイトフィー
ルド上の固体群の重心位置を合わせることで，固体群の移動に合わせた麺の移動を表現する．図第 3 章 麺形状物体によるアニメーション作成とマッピング

28

固体群の
重心位置

重心

アニメーションの描画位置

図 3.10: テクスチャスライディングを用いた麺の移動表現

3.10 は固体群の重心位置の変化により麺のアニメーションの描画位置が移動している様子を表している．このようにテクスチャスライディングを利用することで，固体群の重心位置の移動による視覚的な麺の移動を表現することが可能となる．

3.6.4

エンドレスなアニメーション

アニメーションを用いた描画を行う上で，操作者が違和感を感じないようにアニメーションを構成するコマは常に連続したものである必要がある．しかし，図 3.11 のように一般的なビデオテ
クスチャの手法ではアニメーションの終端 (時刻 t=n) に達すると，また始端から描画されてしま
うため t=n から t=0 の区間において不連続なアニメーションとなってしまう．そこで，図 3.12 に示すように，アニメーションが終端 (t=n) に達すると同時に終端から始端に向けて逆再生させる．
これにより，アニメーションの連続性を維持しながら違和感のないアニメーションを描画することが可能となる．

第 3 章 麺形状物体によるアニメーション作成とマッピング

29

再生

t=0
t=n
不連続
t=2
t=1
時刻t = 0

図 3.11: 一般的なアニメーション

再生

t=n

t=3
t=2
t=1
時刻t = 0

図 3.12: エンドレスなアニメーション

逆再生

30

第4章

4.1

実験

実験システム

前述した提案モデルを用いて実験システムを構築した．この研究は，一般向けの調理学習シス
テムを目標にしている．ゆえに，本実験では，安価な入力デバイスとして，任天堂株式会社より発売されている「Wii リモコン」を用いた．Wii リモコンには加速度センサと赤外線センサ，ジャイロセンサが搭載されている．今回の実験システムでは赤外線センサは使用せず，加速度センサ
で調理容器の平行移動，ジャイロセンサで回転を行うように設計した．以下の構成の計算器で実験システムを構築した．

• CPU: Intel(R)Core(TM)i5-2400 CPU 3.10GHz• RAM: 4GB
実験システムでは，調理容器を直径 32.5cm，側面の高さ 6.4cm のフライパン，そして固体群をス
パゲッティと想定している．調理容器内の固体群は作成したアニメーションをビデオテクスチャ
により描画する．図 4.1 に実験の様子を示す．操作者は，Wii リモコンを操作することで調理容器を動かし，容器内の固体群を動かすことができる．
図 4.2，4.3 は調理容器を操作することで麺を移動している様子である．調理容器を傾けることで麺が移動している様子がわかる．

4.2

処理速度についての評価

実験システムを用いて，本提案モデルを含めた各プロセスの 1 描画フレームを決定するために必要な計算時間を計測した．容器内のハイトフィールドの格子数は 317 点に設定している．調査
項目は調理容器操作による変形曲面の決定，調理器具操作による変形曲面の決定，崩れの変形曲面の決定，粒子による固体群の挙動計算，ビデオテクスチャを用いたアニメーションマッピング，
変形曲面適用，描画，Wii リモコン・PATRIOT による動作入力，キー・マウスによる動作入力，その他の計 10 項目である．なお，キー・マウス入力処理は動作確認などを目的としている．表 4.1に実験結果を示す．

第 4 章 実験31

図 4.1: 実験の様子

図 4.2: フライパンを傾けた時の麺の移動の様子

第 4 章 実験

32

図 4.3: フライパンを振った時の麺の移動の様子

第 4 章 実験

33

処理

処理時間 [sec]変形曲面決定 (調理容器操作)

約 4.0 × 10−5変形曲面決定 (調理器具操作)

約 2.5 × 10−5変形曲面決定 (崩れ)

約 2.5 × 10−5粒子による固体群の挙動計算

約 3.0 × 10−5変形曲面適用約 2.0 × 10−4

アニメーションのマッピング

約 1.5 × 10−3

描画

約 2.0 × 10−3

動作入力 (キー・マウス)

約 2.0 × 10−4

動作入力 (Wii リモコン・PATRIOT)

約 7.0 × 10−3

その他

約 1.5 × 10−4

表 4.1: 処理速度についての実験結果

表 4.1 より，本モデルの処理時間はわずかであると言える．入力装置に Wii リモコン点 PATRIOTを用いた場合，キー・マウス入力処理時間を除いたすべての合計時間約 0.0095 秒が 1 フレームの計算に必要であるため，約 105FPS での実行が可能である．一般的に対話操作システムには 10〜

12FPS 程度の処理速度が必要だと言われているため，対話操作を行うのに十分な処理速度を得られているだけでなく，他のシステムとの併用も可能であると言える．
また，アニメーションは 1 秒当たり 28 フレームで構成し，約 10 秒間の長さで作成した．麺 1 本を構成する質点数は 6 であり，各麺のセグメント数は 5 である．実験システムの視認性も考慮し，
麺 50 本でアニメーションを作成した．計算時間は，前述と同じ PC で約 3 時間を要した．

4.3

挙動の自然さについての評価提案モデルの麺形状物体による挙動の自然さを評価するために，実際に本システムを体験してもらい，簡単なアンケートを行った．まずシステムの概要と操作方法を説明し，麺形状物体による挙動の自然さを 7 段階で評価してもらう．自然さの目安として，「評価 1」では「全く自然に感じられない」，「評価 4」では「VR システムとしての実用に耐えうる程度」，「評価 7」では「現実と同じように感じられる」，とした．図 4.4 に評価結果を示す．
提案モデルの評価平均は 4.33 となり，「VR システムとしての実用に耐えうる程度」を超えている．
実験後にアンケート調査を行った結果，「フライパン内での麺の移動する様子がわかる」という積極的な意見を得られた．このことから，麺形状物体のアニメーションを用いることで従来の炒飯以外の食材を表現することが可能であるとともに，アニメーションによるマッピング手法を用いることで麺以外の食材への応用も可能であると考えられる．一方で，「移動の様子は認識できるが，麺というよりはチーズのようなものが移動しているように見える」という意見も指摘された．こ第 4 章 実験

34

れに関しては，アニメーションを作成する際に麺に陰影を付けるなど，麺自体の表現方法について検討していく必要があると考えられる．

4
3
人 2
数
1
0
1

2

3

4
評価点

5

6

図 4.4: 挙動の自然さについての評価

7

35

第5章

むすび

本研究では，従来のモデルで対象としていた炒飯などの固体群とは異なる，スパゲッティのよ
うな麺形状物体を表現する手法を提案した．本提案手法では，挙動計算に膨大な時間を要する麺
形状物体を事前にアニメーションを作成することで，処理時間を考慮することなく取り扱うことを可能にした．麺の表現にはバネ質点系を用いた計算処理を行い，絡まりのような複雑な挙動はセグメント間の干渉として処理することで麺の挙動を表現した．そして，作成したアニメーショ
ンをシステム利用時には，調理容器内の固体群の表面にビデオテクスチャとしてマッピングすることでフライパン内での麺の表現を行った．また，テクスチャスライディングを利用した麺の移動表現を行うとともに，ハイトフィールド上の固体群の形状変化によってアニメーションの描画速度を決定することでアニメーションによるさらなる麺らしさの表現を行うことで，麺の対話操作を可能にした．
今後の課題として，具体的な挙動のアニメーションを複数種類，事前に準備することによる麺表
現が挙げられる．すなわち，システム利用者の操作によって変化する様々な固体群の形状変化に対応できるようなモデルの提案である．本研究では，汎用性を持たせるため麺のアニメーション
は雑然とした移動としている．フライパンを大きく左右に振ったり，円を描くようにかき混ぜるといった操作による形状変化に合ったアニメーションを事前に準備しておいて用いることで，視覚的により麺らしさを表現することができると考えられる．
本研究の最終目標は調理における一連の手順をすべて再現可能な「VR 調理学習システム」の構築であるため，現在研究している「調理」に加えて，将来的には食材の「準備」，
「加工」，
「盛り付
け」といった操作の実現に向けて研究を進めていく．

36

謝辞

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

准教授，伊藤宏隆

助教，山本大介

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

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

岩堀研究室

37

参考文献

[1] 舘 日章，佐藤 誠，廣瀬 通孝:“バーチャルリアリティ学”，工業調査会，2010．

[2] 向井 信彦，西村 律郎，小杉 信: “手術シミュレータ向け出血表現の高速化手法”，日本バーチャルリアリティ学会論文誌，Vol.11，No.3，pp.371-376，2006[3] 瀬戸崎 典夫，森田 裕介，武田 仰: “ニーズ調査に基づいた多視点型 VR 教材の開発と授業実
践”，日本バーチャルリアリティ学会論文誌，Vol.11，No.4，pp.537-543，2006[4] 渡部 直人，田邉 亨，原田 哲也: “ヒューマンエラー誘発機能など特徴的な機能を実装した VR 訓練システムの開発と評価”，日本バーチャルリアリティ学会論文誌，Vol.11，No.4，pp.497-504，

2006.
[5] 株式会社 4D ブレイン IDE，
http://4dbrain.com/ja/ide.html[6] ソリッドレイ研究所 3D ショールーム，
http://www.solidray.co.jp/product/3Dshowroom/3Dshowroom.html[7] 任天堂株式会社 Wii，
http://www.nintendo.co.jp/index.html[8] 加藤 史洋，長谷川 晶一: “料理シミュレーションのためのリアルタイム熱伝達・伝導シミュレーション”，Computer Entertainment Developers Conference，2012．

[9] 株式会社スクウェア・エニックス クッキングママ，
http://www.square-enix.com/jp/archive/wii_cookmama[10] 小田 康行, 村岡 一信, 千葉 則茂: “溶岩流の粒子ベース・ビジュアルシミュレーション”, 芸
術科学会論文誌, Vol.2, No.1, pp.51-60, 2003.

[11] 西田 友是, 尾上 耕一: “Virtual Sandbox”, Proceedings of IEEE 2003 Paciﬁc Conference on
Computer Graphics and Applications, pp.252-259, 2003.

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

ROM) 1E2-1，2008.
[13] Cem Yuksel，Jonathan M. Kaldor，Doug L. James，Steve Marschner: “Stitch Meshes for
Modeling Knitted Clothing with Yarn-level Detail”，SIGGRAPH，Vol.31，No.37，2012.
[14] 岡本 太一，藤澤 誠，三浦 憲二郎: “ユーザインタラクティブ凧シミュレーションシステムの開発”，グラフィックスと CAD/Visual Computing 合同シンポジウム 2009 予稿集，2009.

[15] 田川 和義，林 宏卓，木島 竜吾: “布挙動シミュレーションと真空実験による評価”，日本バーチャルリアリティ学会論文誌，Vol.8，No.3，pp.263-269，2003.

[16] 須藤 克仁，角所 考，美濃 導彦: “現実物体の観測に基づく線状柔軟物体の操作時の形状のモデル化”，情報処理学会論文誌，Vol.43，No.12，pp.3632-3642，2002.

[17] 藤澤 誠: “CG のための物理シミュレーションの基礎”，マイナビ，2013.
[18] 森井 敦士，上垣内 翔太，山本 大介，舟橋 健司: “VR 調理学習システムのための存在確率に基づく粒子による固体群の上下動の表現”，日本バーチャルリアリティ学会論文誌，Vol.16，

No.4，pp.539-549，2011.12[19] A. Schodl，R. Szeliski，D.H. Salesin，I. Essa，“VIdeo textures”，Proc. SIGGRAPH’00，
pp.489-498，2000.