平成 26 年度 卒業論文

VR 調理学習システムにおける調理器具による麺形状物体の対話操作モデル

指導教員
舟橋

名古屋工業大学

工学部

情報工学科

平成 23 年度入学23115130 番

名前

拓也

古田

健司

准教授

i

目次

第 1 章 はじめに

1

第 2 章 固体群操作モデル

52.1

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

52.2

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

5

2.3

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

6

2.3.1

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

6

2.3.2

変形曲面によるハイトフィールドの加算 . . . . . . . . . . . . . . . .

9

2.3.3

変形曲面のよるハイトフィールドの減算 . . . . . . . . . . . . . . . .

92.4

存在確率による固体群粒子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.5

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

2.6

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

2.7

2.6.1

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

2.6.2

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

2.6.3

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

2.6.4

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

. . . . . . . . . . . . . . . . . . . . . . 12

固体群モデルによる麺形状物体の操作 . . . . . . . . . . . . . . . . . . . . . . 15

2.7.1

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

2.7.2

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

2.7.3

アニメーションの描画 . . . . . . . . . . . . . . . . . . . . . . . . . . 18

第 3 章 麺形状物体の調理器具による対話操作. . . . . . . . . . . . . . . . . . . . . . 18

20

3.1

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

3.2

リアルタイム計算麺の発生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

ii

3.3

リアルタイム計算麺の移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.4

リアルタイム計算麺のサイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.5

リアルタイム計算麺の消去 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.6

リアルタイム計算麺の姿勢制御 . . . . . . . . . . . . . . . . . . . . . . . . . 27

第 4 章 実験

34

4.1

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

4.2

実験結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

第 5 章 むすび

39

謝辞

40

参考文献

41

1

第1章

はじめに

近年，医療や教育，エンターテイメントなどの多岐にわたる分野でバーチャルリアリティ（Virtual Reality，以下 VR）が利用されている．例えば，医療分野において人体の重要な器官である血管のリアルタイムの変形を，MPS 法をベースに作成された流体シミュレーショ
ンを用いた出血を伴わせて行う手術シミュレーションに関する研究 [1] が行われている．また教育分野においては，小・中学校教員の教員のニーズに合わせて，生徒が理解しがたいとされている天文分野について，ソフトスクリーンに投影した天体を偏光眼鏡で立体視して学習の手助けとするシステム [2] が利用されている．他にも，カナダ・モントリオール大学デザイン大学院で開発されている「HYVE・3D」[3] がある．これは，従来視覚的な VR シス
テムにおいて必要とされてきたもののひとつである，視界を覆うような眼鏡，あるいはヘッ
ドセットを用いる代わりに球体上の投影機を用いて 3D の映像を投影することができる装置である．これにより人数分の専用端末を必要とすることなく裸眼の状態で，複数人が同時に視覚的な共有が可能となる．ここで VR とは，「みかけは現実ではないが，現実の本質を有するもの」[4] である．臨場感や対話性の伴う VR 技術を用いることで，現実空間における人間の感覚にコンピュータが情報を提示して刺激し，体験者は現実空間と同等の環境を体感す
ることが可能である．また，VR システムを用いることで実際に準備しなければならない機材などのコストの削減や，実体験が必要な訓練効率の上昇，実際には起こるかもしれない危険の回避などが可能である．しかし，VR システムを利用した装置の実現には大規模であったり高価であったりするものが多く，一般家庭に VR 技術が広まっているとは言い難い．
近年では，技術の進歩によって今までは高価で入手が困難であった直感的な操作ができる装置が比較的安価に手に入れることが可能となり，それらを用いた一般家庭でも利用可能な

VR システムや装置の開発が行われている．VR システムへの利用が期待できる製品の例として，株式会社ハコスコから発売されている「ハコスコ」[5] がある．
「ハコスコ」は段ボールとレンズ，及びスマートフォンを用いて作成されるヘッドマウントディスプレイで，再生装

第1章

はじめに

2

置をスマートフォンやアプリケーションで代替しているため約 1000 円程の値段で提供されている．また，任天堂株式会社から発売されている「Wii」[6] には，付属の「Wii リモコン」と呼ばれるデバイスを用いることで直感的な操作が可能である．このような機器の普及で，一般家庭を対象とした新たな VR システムコンテンツの可能性が広がっていると言える．
ところで，核家族化や少子化などの影響により，近年自身が料理をしなければならない状況が増加している傾向にあるため，調理に関する学習，訓練の需要が料理を苦手としている人を中心に高まっている．しかし調理を学習もまた，火や刃物などを扱うなど危険性が伴い，繰り返し練習する上で環境を整えたり素材を用意するためのコストが伴う．このような背景から調理学習を行うための一般家庭向けの学習支援システムに関する研究が進んでいる．例
えば，「体験型料理シミュレータ」[7] では実際にフライパンなどの調理容器を用いながらも，仮想の食材を CG で表現し，調理容器の上で視覚的に焼き具合の変化を表現し調理学習を行うものである．また，株式会社タイトーから発売されている，食材を切ったり加熱したりするなどの料理の手順を楽しみながら学ぶことが可能なゲームである「クッキングママ」[8]も調理に関する学習支援のためのシステムといえる．
当研究室では一般家庭での利用をする上で，安価なシステムを用いてより自然らしい挙動を表現することを目的としたモデルを提案している．当研究室で扱う，一般家庭を対象とした VR コンテンツとして，料理を題材とした VR 調理学習システムである「バーチャルお料理教室」の開発を行っている．この「バーチャルお料理教室」では，専門的な調理ではな
く，調理における基本的な行程を学習し，調理経験の不足を解消するための学習を主としている．前述の「クッキングママ」とは，実際の調理の中で感じる感覚に近い感覚でインタラ
クティブに料理の手順を行い，より効果的に学習をすることができる点で異なっている．こ
こで料理の手順とは，具体的には食材の準備や加工，加熱，盛り付けといった料理の一連の手順のことを言う．
当研究室ではこれまでに，米や具材などの複数の小さな固体が集まっているものに対する
対話操作の研究を行ってきた．このような小さな固体の集合に関する研究は他にも溶岩 [9]や砂 [10] などを対象とした研究がある．これらのような研究では主に粒子法を用いて溶岩や砂の集合体の表現を試みているものが多いが，一つ一つの固体全ての挙動を計算していたり，局所的かつ逐次的な処理のために膨大な計算時間を要していたりするため，リアルタイ
ムな挙動が必要とされる対話操作に向いているとは言えない．これらのようなモデルに対

第1章

はじめに

3

して当研究室では「複数の小さな固体が集まり，全体として一つの集合体として認識されるもの」を固体群と呼称し，一つの操作対象として扱っている．これにより高速な対話操作が可能となった固体群操作モデルを提案している．このモデルでは粒子法のような個々の厳密な挙動計算を行う代わりに操作者が期待する挙動をリアルタイムな操作で可能としている．
固体群操作モデルでは調理容器の底面に配置した二次元格子に設定する各格子上での高さ
情報，つまり，ハイトフィールドを用いて調理容器内の固体群の形状や挙動の変化を表現している．これにより，固体群の高さの情報を各フレーム間で変化させて，固体群の挙動を少ない計算時間で表現する．また，調理容器以外にも，固体群の局所的な操作のために「バーチャルお料理教室」では，操作者はヘラなどの調理器具を用いることができる [11]．一般的にはフライパンもヘラも調理器具と呼称されるが，本論文では調理器具とは固体群を局所的に操作できるもののことを言う．調理容器上のハイトフィールドとは別に，調理器具にもハイトフィールドを定義して固体群をすくい上げたり [12]，固体群の形状を変形させたり [13]するなどのさらなる直感的な操作モデルの開発を行っている．
当研究室ではこれまで炒飯のような食材をを想定した固体群操作モデルを提案してきているが，近年はスパゲッティなどの麺形状物体に対する操作モデル [14] についても検討している．麺形状物体は複数の麺が互いに絡まり合うような複雑な挙動を示す．糸や布などの挙動をバネ質点系モデルにより計算する手法が広く利用されているが，多量の対象を性能の低いなコンピュータでリアルタイムで計算することは困難である．そのため我々は次のような手法を提案している．あらかじめスパゲッティのアニメーションを作成しておく．システムの稼働時には，固体群操作モデルによりスパゲッティの概略表面を決定した上で，ビデオテ
クスチャとしてこのアニメーションをマッピングする．アニメーションを適切に切り替える
ことで，麺全体の膨大な挙動計算を行うことなく対話操作を可能とした．この手法では，調理容器を動かすことによる麺形状物体の挙動を表現するために，あらかじめ用意した複数のアニメーションの中から調理容器を動かす方向に合わせて適切なものを選択しマッピングすることで，操作者が期待する違和感のない挙動をある程度達成できる．しかし調理器具の操作による麺形状物体の直接的な移動は，操作者が動かす調理器具の方向や調理容器内の位置の組み合わせが多数想定される．そのため多数のアニメーションを用意すること，及びそのアニメーションを組み合わせることで表現することは難しい．そこで本研究では，操作者の調理器具移動に合わせてリアルタイムで挙動計算を行う新たな麺形状物体の対話操作モデル

第1章

はじめに

4

を提案する．前述のように一般家庭で使用可能な性能の低いコンピュータを用いて，バネ質
点系モデルで作成された多量の麺形状物体を全てリアルタイムで挙動計算を行い表現することは難しい．そのため，まず従来の手法と同様に調理器具の挙動に対するビデオテクスチャを利用する．その上で少量の麺形状物体の挙動計算をリアルタイムで行い，それらの三次元の形状データをもとに調理容器内に麺を追加表示する．この方法により，各時点における調理器具の移動に合わせて，その周辺である局所的な範囲で，バネ質点系モデルによる状況に応じた適切な挙動を表現できる．
第 2 章において従来の固体群操作モデル及び麺形状物体操作モデルの概要について，第 3
章では調理器具を用いた麺形状物体操作モデルについて，第 4 章では実験と結果についてそれぞれ述べる．

5

第2章

2.1

固体群操作モデル

固体群操作モデルの概要

本章では，これまでに当研究室が提案してきた従来の固体群操作モデルについて説明する．
この固体群操作モデルでは，一つ一つの固体にかかる力を計算するのではなく，固体群全体
を一つの操作対象の物体として処理をすることで挙動計算の時間の削減を行うとともに，対話操作を実現することができる．操作者はフライパンのような形を想定した調理容器を傾ける，振るといった操作を行い調理容器内の固体群の形状を変化させることができる．また，ヘラのような調理器具を用いて，調理容器内の固体群の局所的な操作も可能である．固体群
操作モデルでは，固体群全体を一つの操作対象とみなし，固体群全体に作用する力により変形する固体群の挙動を曲面により近似して表現する．このような固体群の挙動を表現する際に用いる曲面を「変形曲面」と呼称する．ある時刻 t から時刻 t + ∆t における調理容器を傾けた際の変形曲面による固体群の形状変化を，固体群の断面図を例に図 2.1 に示す．このような処理を行うことで固体群の挙動を表現することができるが，実際に図 2.1 のような体積の変化を行うための変形曲面の形状を求めるのは困難である．そこで図 2.1 の代替の処理を段階的に分けて行うことで固体群の挙動を近似的に表現している．この代替の処理を図 2.2に固体群の断面図を用いて示す．また図 2.2 において生成する正の変形曲面の形状には，計算量を減らすために図 2.3 ような半楕円柱を用いている．

2.2

調理容器と固体群の表現

固体群操作モデルでは，調理容器内の固体群を一つの操作対象として扱い，近似的な固体群に作用する力計算して表現している．固体群操作モデル内で用いられている調理容器は，凸多角形の底面に対して垂直な側面を持つものである．固体群は図 2.4 のように調理容器内のハイトフィールドのよって決定する．ハイトフィールドの格子 (xi , yj ) に存在している体積 V (xi , yj ) は，その格子の持つ値 h(xi , yj ) と，面積 S(xi , yj ) を用いて，

第2章

固体群操作モデル

6

1

2

3

曲面を生成・加算

時刻ｔ

時刻t+Δt

図 2.1: 変形曲面による固体群の移動

1

2

3

時刻t

4

時刻t+Δt

図 2.2: 変形曲面による固体群の段階的な移動

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

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

Vc =

N
∑

V (xi , yj )(2.2)

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

2.3

変形曲面

2.3.1

変形曲面の形状固体群操作モデルで生成する正の変形曲面は半楕円柱である．半楕円柱は図 2.5 のような

第2章

固体群操作モデル7

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

oD = G c +

Fb
va
|Fb |

(2.3)

となる．ただし重心 Ge はハイトフィードの重心であり，ハイトフィールドの格子座標 mij
を用いて以下のように決定される．

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

(2.4)

第2章

固体群操作モデル8

図 2.4: 調理容器内のハイトフィールド

図 2.6 のように固体群は容器の端に到達した後も移動し続け，容器の端までおよそ全ての固体群が移動するまで a > 0 とする必要がある.

b

oD

a
rD

LD
図 2.5: 半楕円柱の形状

第2章

固体群操作モデル

912

図 2.6: 変形曲面による固体群の移動2.3.2

変形曲面によるハイトフィールドの加算

変形曲面を定義する変数のうち半楕円柱の長半径 a，短半径 b，調理容器内での位置 oD に
′ の距離にある，
対して，oD を通り Fb と直行する半楕円柱の芯となっている直線 LD から lij′ ≤ a の場合に限り
座標 (xi ，yj ) での半楕円柱の変形曲面の高さ h(xi , yj )′ は，lij√ah(xi , yj ) = b 1 − ( )2
lij
′

(2.5)

という値が加算される．

2.3.3

変形曲面のよるハイトフィールドの減算変形曲面による加算により固体群の体積は増加している．そこで固体群の体積が変形曲面による加算前と等しくなるように，ハイトフィールド全体の体積を減少させる負の変形曲面を適用する．正の変形曲面を加算した後の格子 (xi , yj ) の持つ値 h(xi , yj )add に対し，負の変形曲面を適用した後の値 h(xi , yj )′ は以下のようになる．

h(xi ，yj )′ =Vch(xi ，yj )add
Vcadd

(2.6)

ここで Vcadd とは変形曲面加算後のハイトフィールドの持つ値の総和，つまり加算後の固体
群全体の体積であり，以下のようになる．

Vcadd =N∑h(xi , yj )add

(2.7)

第2章

固体群操作モデル

2.4

存在確率による固体群粒子10

固体群操作モデルでは小さな粒子の集合をひとつの操作物体として操作しているが，現
実では固体群の最小構成要素である粒子は微小で有限の大きさ持つ．そこでハイトフィー
ルドによる固体群操作モデルと併用して，部分的に処理速度を抑えた粒子を表現することで，変形曲面による固体群挙動の自然さ，及び臨場感の向上を図っている．そこでハイト
フィールドの各格子に確率的に存在する固体群粒子を「存在確率粒子」とし，各格子の高さの情報を元に粒子がハイトフィールド上に存在する確率を求め，その確率に基づいて粒子の描画を制御する．粒子一つの直径を α とし，ある格子の座標 (xi , yj ) での高さ h(xi , yj ) がh(xi , yj ) < α を満たす場合，その格子での存在確率を以下のように決定する．
P (xi , yj ) =h(xi , yj )
α

(2.8)

また，h(xi , yj ) ≥ α の場合においても，その格子の値を h(xi , yj ) − α とし，ある時刻 t における前時刻との高さの値の変化量 htd (xi , yj ) が，htd (xi , yj ) ≥ α の場合には存在確率を 1 とし，それ以外の場合での存在確率を以下のように決定する．

P (xi , yj ) =ht d(xi , yj )
α

(2.9)

これら存在確率に基づく乱数を用いて，各格子に対して粒子の描画の有無を決定する．ただし，h(xi , yj ) > α の場合において，調理容器が静止している状態でも各時刻で描画の有無が反転しないように各格子での高さの変化量 htd (xi , yj ) が閾値以下の場合には，前時刻の存在
確率粒子の描画の有無をそのままの状態にしておく．存在確率粒子を併用することで固体群
表面での固体群らしさや，固体群の自然な移動過程を表現することが可能となる．

2.5

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

調理容器の移動による原因以外にも，固体群が高く積み上げられた状態で調理容器に対する操作が行われない場合に，限られた範囲内で固体群の崩れが生じる．その範囲の中で崩れる固体群全体，またはその一部分を一体的に扱い，変形曲面を用いて崩れを表現している．
このモデルでは適切なパラメータを用いてに任意のステップで固体群の崩れを行う．図 2.7のような固体群の断面図では

第2章

固体群操作モデル

11

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

2

時刻ｔ

曲面を生成・加算

3

時刻t+Δt

図 2.7: 変形曲面による固体群の崩れの断面図

2.6

剛体による固体群操作

2.6.1

調理器具の定義

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

第2章

固体群操作モデル

2.6.2

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

12

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

1. 凸包 Hch とハイトフィールドの格子の平面（以下，格子座標平面と呼称する）に正射′ と，ハイトフィールドの格子 p = (x , y ) が p ⊂ H ′影した平面図形 Hch
ij
i j
ij
ij

2. Pijz と Pijh を通過する直線 lzh と凸包 Hch の交点 Pij が存在するとき，Pijz と Pij の距
離がハイトフィールドの格子が持つ値 h(xi , yj ) よりも小さい場合凸包を構成する三角形 Sk の 3 つの頂点 Ak , Bk , Ck を直線 Lzh が鉛直となるようにアフィン変換したものを，図 2.9 のように A′k , Bk′ , Ck′ とする．また，鉛直となるように変換した直線′ としておく．三角形 S ′ と直線 l′ の交点を P ′ とすると P ′ = (x , y , z ) であり，は lzh
i j ijk
k
zh
ijk
ijk
′z の値は以下のようになる．
Pijk
′z
Pijk
= A′Z
k −

}
1 { ′x
′y
′y
′x
′z
(P
−
A
)
+
n
(P
−
A
)
ijk
k
k
ijk
k
nzk

(2.10)

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

hlow (xi , yj )，高いほうを hhigh (xi , yj ) とする．

2.6.3

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

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

第2章

固体群操作モデル13

図 2.8: 三次元凸包の例

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

V sub =

2.6.4

N
∑

sub
vij

(2.12)

調理器具の正の変形曲面

調理器具と固体群の干渉により生成される正の変形曲面は四分楕円柱であり，変形曲面を定義する定数は以下の 5 つのパラメータとする．

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

第2章

固体群操作モデル

14

′

′

′
’
′
′
′

図 2.9: アフィン変換の様子• 四分楕円柱の長さ c• 空間上の位置 oC• 楕円の短軸と長軸に直行する直線 Lc
固体群操作面上に設定する基準点を用いて oC を，c を用いて固体群操作部の幅である d をそれぞれ決定する．また，楕円の短軸及び長軸に直行する LC は固体群操作面の法線に対して平行であり，点 oC を含む直線である．さらに，固体群操作部の最も下にある辺を固体群
操作部の底辺と呼称し，a の方向を固体群操作部の面法線 n の方向に，b の方向を固体群操作部の面に対して平行かつ固体群操作部の底辺と垂直に設定する．a の長さは，n 及び，調理器具の移動速度 v を用いて以下のように設定する．

a = T3 |v · n|

(2.13)

ここで，T3 は定数である．この四分楕円柱によって格子に加算する値は 2．6．3 節で求めた，減算する体積の総和 V sub により求められるため，短半径 b には定数を設定する．格子に調理器具の移動軌跡との干渉によって減算した体積と同じ体積の四分楕円柱を生成し，値を加算する．しかし，固体群の形状は格子によって表現されているため，離散化した値となり体積が保持されているとは限らない．そこで，正の変形曲面により加算される体積と減算

第2章

固体群操作モデル

ℎ

15

( ,

)

ℎ
( ,

( , )
)

図 2.10: 三次元凸包と直線の交点

した体積が等しくなるように，格子の加算する値に対して修正を行う．正の変形曲面により格子を増加させる体積の総和 V add は，以下のように表現される．

V add =

N∑

Vijadd

(2.14)

格子 (xi , yj ) が正の変形曲面を加算する前の値を G(xi , yj ) とすると，加算後の格子が持つ値

G′ (xi , yj ) は，以下のように表現される．

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

2.7

固体群モデルによる麺形状物体の操作

2.7.1

麺の表現方法(2.15)

麺の表現にはバネ質点系モデルを採用し，三次元空間内の任意の位置に麺を複数配置する．描画時の質点間は図 2.12 のように円柱でつなげる．また，各質点には以下のような力

第2章

固体群操作モデル16＝

減算する体積＝凸包

調理器具干渉前

調理器具干渉後

図 2.11: 凸包と固体群の干渉が働く．

• 質点間に働く弾性力 FS• セグメント間の曲り復元力 FR• ダンパによる摩擦力 FD• 重力 FGFS は外力により変化した質点間の距離に応じて力が働き，FR は隣り合う二つのセグメン
トの間をばねでつないでいると想定したときの，曲がっている際に元に戻ろうとする向きに応じて力が与えられ，FD は弾性力や曲り復元力によるバネの固有振動を軽減する力が働き，FG は常に z 軸負の向きに働く．ある時刻 t におけるこれらの合力 Fi (t) に対して，質量 Mの各質点 Pi (t) の加速度 ai (t) は以下のように求められる．

ai (t) =Fi (t)
M(2.16)

第2章

固体群操作モデル

17

この時，各質点 Pi の速度 Vi (t) と座標 Ri (t) の変化量である，Vi (t + δt) と Ri (t + δt) はそれ
ぞれ以下のように決定される．

Vi (t + δt) = Vi (t) + ∆t · ai (t)(2.17)Ri (t + δt) = Ri (t) + ∆t · Vi (t)(2.18)

各質点で毎フレームこれらの計算を行い，座標と速度を更新して麺形状物体を表現する．さらに二つの麺が衝突する場合を考えたとき，時刻 t + ∆t において衝突する二つのセグメン
トの Si,i+1 (t + ∆t) と Sj,j+1 (t + ∆t) のそれぞれの速度を Vi,i+1 (t + ∆t) と Vj,j+1 (t + ∆t)′(t + ∆t) ととするとき，反発係数 e を用いて，以下のように各セグメントの速度を Vi,i+1′
Vj,j+1(t + ∆t) に修正する．

(1 − e)Vi,i+1 (t + ∆t)(1 + e)Vj,j+1 (t + ∆t)
2
(1
+
e)V
(t
+
∆t)(1
− e)Vj,j+1 (t + ∆t)i,i+1′Vj,j+1(t + ∆t) =2′
Vi,i+1(t + ∆t) =(2.19)(2.20)′′
これらの修正された速度 Vi,i+1(t + ∆t) と Vj,j+1(t + ∆t) を用いて，それぞれの質点の座標

R(t + ∆t) を修正し衝突を表現している．

図 2.12: 麺の表現

第2章

固体群操作モデル

2.7.2

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

18

固体群操作モデルと同様に，複数の麺のセグメントで構成されるバネ質点系モデルで作成された麺形状物体の全ての挙動計算を，VR 学習システムの稼働中にリアルタイムに行うことは難しく，対話操作を実現させることができない．そこであらかじめ作成された麺形状物
体のアニメーションを，固体群操作モデルと同様に決定した概略表面に，テクスチャとして動画を再生するビデオテクスチャとしてマッピングする．また，描画されるアニメーション
は，操作者が違和感を感じることのないように，アニメーションを構成するコマを常に連続したものとしている．図 2.13 アニメーションのコマの終端時刻 t = n に達したときに，アニメーションの終端時刻 t = n から始端時刻 t = 0 に向けて逆再生をすることで，アニメー
ションの連続性を維持しながらアニメーションの描画をすることが可能である．

再生
t=n

t=3
t=2

逆再生

t=1
t=0

図 2.13: 連続性のあるアニメーション

2.7.3

アニメーションの描画

操作者が違和感を持つことなく麺形状物体の操作を行うための一環として，まず，時刻 tの格子 (xi , yj ) が持つ値 h(xi , yj )(t) に対して，時刻 t から t + δt におけるハイトフィールドの高さの変化量 Vvar を以下のように設定する．

Vvar =N∑|h(xi , yj )(t + δt) − h(xi , yj )(t)|(2.21)

第2章

固体群操作モデル

19

この Vvar が一定の値を超えた場合に，アニメーションの描画速度を上昇させることで食材の移動を伴う操作の臨場感の向上を意図している．また，調理容器を傾けたり調理器具が押し動かすことにより固体群が調理容器の片側へ集中するような変形及び移動をする場合，図2.14 のように，固体群の重心位置に合わせてアニメーションの重心位置を移動させることによって，視覚的に麺形状物体の集合全体が調理容器内を移動する様子を表現することができる．

固体群の重心位置
重心
アニメーション
の重心位置

図 2.14: 麺の移動表現

20

第3章

3.1

麺形状物体の調理器具による対話操作

提案モデルの概要

従来の麺形状物体操作モデルでは，あらかじめアニメーションとしてビデオテクスチャを作成する．アニメーションは，バネ質点系モデルを用いて麺形状物体を表現し，挙動計算を行って作成されるものである．このアニメーションの挙動は，操作者がフライパンを傾けるといった操作や汎用性を考慮した雑然としたものであるが，ヘラなどの調理器具の局所的な操作では，調理容器内の概略表面の局所的な部分での麺形状物体の操作を行うことができな
い．また，操作者が調理器具を移動させた方向に関係なくあらかじめ作成したアニメーショ
ンの移動方向の挙動しか行うことができない．そのため，調理器具を移動することで操作者が意図する麺形状物体の操作ができない．
ところで，ハイトフィールドを用いた固体群操作モデルでは，2. 節で述べたように存在確率粒子を導入して高速な処理と高い臨場感の両方を実現している．操作者の行う調理容器や調理器具の操作に合わせた厳密な挙動ではないが，ハイトフィールド上にリアルタイムに表現される粒子により自然な挙動を感じさせることができる．
そこで，麺形状物体の操作においても，あらかじめ用意したビデオテクスチャのマッピン
グによる麺形状物体群（麺形状物体の集まり）の表現に加えて，調理器具の操作に対してリ
アルタイムで挙動計算を行う個々の麺形状物体を導入する．両者を併用することで，高い処理速度と臨場感の実現を目指す．本論文では，固体群操作モデルのハイトフィールド表面に
ビデオテクスチャとして表示する麺を「ビデオテクスチャ麺」と呼ぶ．アニメーション内の麺の挙動は非リアルタイムに事前に計算される．調理器具の挙動をもとに麺の三次元構造
データによりリアルタイムに挙動計算する麺を「リアルタイム計算麺」と呼ぶ．また、麺と面は発音が同じため、混乱を避ける必要があるときには「ヌードル (noodle)」と呼ぶことにする．このリアルタイム計算麺は，性能の高くない計算機によるシステムでも対話操作を可能とするために，扱う数を制限する．すなわち、調理器具による局所的な操作が一切行われ第3章

麺形状物体の調理器具による対話操作

21ていないときには，リアルタイム計算麺を存在させない．局所的な操作が行われるに従い，
適切な位置に適切なタイミングでリアルタイム操作麺を発生させていく．このとき，同等の量をビデオテクスチャ麺（ハイトフィールド）から減算しておくことで総量を維持する．局
所的な操作から外れたリアルタイム計算麺は，時刻の経過に伴い消滅させる．また操作に伴い一定以上のリアルタイム操作麺を発生させてしまうときには，優先順位の下方のリアルタ
イム操作麺から消滅させていく．さらに，リアルタイム計算麺は長さも可変とする．視覚的には、麺の端がビデオテクスチャ麺の中に埋まっている状況を想定しており．それが外に出てくる様子を表現する．リアルタイム計算麺の存在数やそれぞれの長さを適切に制御することで，計算時間を抑えながら臨場感の高い表現を実現する．続いて実際の挙動計算方法について述べる．まず，調理器具麺にはバネ質点系モデルと同様に各麺に対して挙動の計算や描画の基準となる複数の質点を等間隔に設定する．また，各質点の間を接続する部分を麺セグ
メントと呼称する．それぞれの麺セグメントが持つ質点には，ビデオテクスチャ麺との押し合いによって生じる力や，重力，質点間での弾性力などがかかる．これらの力は操作者が行う調理器具の移動経路や，それに伴って変化したそれぞれの格子におけるハイトフィールドの高さの値をもとに決定され，姿勢の制御を行う．まず，調理器具によって押される力が質点に与えられ位置が移動するという挙動を，調理器具によって押されることで質点が位置を移動すると考える．また，調理器具の移動に際して変化したその時のハイトフィールドの高さの値や隣接する質点からの弾性力を考慮して，その質点に配置する麺セグメントの姿勢を決定する．このようにリアルタイムに挙動計算の行われる麺セグメントの集合で表現された
対話操作を可能とする範囲の少量の本数のリアルタイム計算麺を調理器具の移動経路周辺を中心に配置し姿勢制御を行うことで，調理器具の移動に伴って麺形状物体が挙動し，さらなる臨場感の向上を図る．提案するリアルタイム計算麺の操作と，ビデオテクスチャマッピン
グを併用してさらなる臨場感のある麺形状物体操作を実現する．

3.2

リアルタイム計算麺の発生

操作者が調理器具を操作してハイトフィールドを変形させたとき，その移動経路中に既に存在している麺セグメントが存在していなければ，その調理器具の操作面に合わせて新たに
麺セグメントを発生させる．ここで，それぞれのリアルタイム計算麺一本ごとに，リアルタ
イム計算麺を構成するための麺セグメントを管理するためのリストを持つ．このリストの要

第3章

麺形状物体の調理器具による対話操作

22

素としてそれぞれ管理される麺セグメントは，図 3.1 のように麺セグメントの両端の接続位置の情報を持つ．リストの管理の都合上，便宜的にリストの先頭から近い麺セグメントに隣接するときの接続点を始点，リストの末尾に近い麺セグメントに隣接するときの接続点を終点と呼称する．麺セグメントの一方の終点の位置は，隣接する麺セグメントが持つ始点の位
置と同じ位置情報を持つことで，麺セグメント同士のなめらかな接続を行い，一本の麺形状
物体として接続しているように表現することができる．調理器具が移動，及びハイトフィー
ルドの変形の際に用いている三次元凸包を構成する面の中でも，調理器具がハイトフィールドを変形させるための面である操作面 2 つのうち，移動前に相当する面を移動前の操作面，
移動後に相当する操作面を移動後の操作面と呼称する．図 3.2 のように調理器具の移動前後の操作面を成す，三次元空間内の xy 平面に対して垂直な二つの直線上ある，ハイトフィー
ルドの高さの値に相当する点を以下，操作面の端点と呼称する．移動全土の操作麺において
操作麺端点のを結ぶ線分上に，図 3.3 のようにその線分の長さを超えないような本数の複数の麺セグメントを配置する．これは麺形状物体群を調理器具が押し進めた結果絡み合った麺の束の中から何本かの麺が調理器具に絡みついて押されてきた状態を表現している．このとき線分の長さを超えないような本数の麺セグメントを配置する際，リアルタイム計算麺のリストの先頭側に相当する面セグメントから順に配置していくが，先頭の麺セグメントの始点を移動後の操作面の端点のうち一方の位置に修正する．このとき修正された始点の位置を(xs , ys , h(xs , ys ))，移動後の操作面の端点をのうち始点を接続する側を (xb1 , yb1 , h(xb1 , yb1 ))，もう一方の移動後の操作面の端点を (xb2 , yb2 , h(xb2 , yb2 ))，移動後の操作面の端点間の距離
を D，麺セグメントの長さを N として麺セグメントの終点の位置 (xf , yf , h(xf , yf )) を以下の式のように決定する．

N(xb2 − xb1 ) + xsDN
yf = (yb2 − yb1 ) + ysDNh(xf , yf ) = (h(xb2 , yb2 ) − h(xb1 , yb1 )) + h(xs , ys )
D
xf =

(3.1)
(3.2)
(3.3)

同様の方法で隣接した麺セグメントの始点及び終点を決定し修正することで新たに麺セグ
メントを配置する．さらに移動後の両端点にそれぞれ凸包の外側に同様の方法で一つずつ操作面の両端点から麺セグメントを追加することで，視覚的に適度な麺セグメントが調理器具

第3章

麺形状物体の調理器具による対話操作

23に絡み付き押されているように見える．ただし図 3.4 のように，移動後の両端点間の長さを超えないように一方の端点から順に麺セグメントを順に配置していくと，連なった麺セグメ
ントと端点間の距離に微量な差が生じるが，麺セグメントの大きさに対する操作面の両端点間の長さが十分大きいものであれば，実際には問題は生じないと考える．また，2 本目以降のリアルタイム計算麺を新たに発生させる場合は，そのフレーム内で新しくリストを使用する麺が存在しない場合に限られる．すなわち，すでに調理容器内に存在しているものを除いて，新規に発生するリアルタイム計算麺は同時に一本までとする．さらに，一つ以上前のフレームから調理容器上に存在しているリアルタイム計算麺に，調理器具の移動軌跡がなす三次元凸包が進入する方向によって，移動後の操作面の両端点のうち始点や終点を配置する両端点を区別するために進入する方向とリアルタイム計算麺の始点側と終点側の方向の関係を保存する必要がある．そこで最初に麺セグメントの始点を配置する移動後の操作面の端点を，図 3.5 のように操作面の移動方向の右側の端点に始点を設けるものとする．またそれぞれのリアルタイム計算麺リストは，初めてリストに麺セグメントが追加された時の，操作麺の移動方向のベクトル V を記憶しておく．その後，調理容器内に一つ以上前のフレームから存在しているリアルタイム計算麺が，調理器具による干渉を受けた場合，そのときの操作
面の移動方向のベクトル V ′ と，あらかじめ保存してあった操作面の移動方向のベクトル Vの内積を取る．その内積 V · V ′ が V · V ′ ≥ 0 となるときは始点と端点の接続はそのまま行
われ，V · V ′ < 0 となるときは始点を移動方向の左側の端点に配置する．

3.3

リアルタイム計算麺の移動

一つ以上前のフレームからハイトフィールド上に存在し続けている麺は，調理器具の干渉を受けることで移動する．一本の麺を構成する麺セグメントのうち調理器具の移動に用いる三次元凸包の内側に存在する麺セグメントと外側に存在する麺セグメントを判定する．ここ
で調理器具の操作面は，初期の調理容器底面に対して鉛直となる向きで移動し，調理器具の水平方向，上下方向の移動，操作面の鉛直軸による回転を行う．従って，操作面の軌道が三次元凸包を場合は，凸包の z 軸方向における値，つまり凸包の高さは，調理器具の操作面の高さに相当し常に一定である．よってある点が三次元凸包の中に存在するかを判定するためには，判定する対象の点が凸包の高さの間にある状態のとき，操作面と鉛直をなす xz 平面と平行な三次元凸包の一つの面による二次元凸包平面を考え，図 3.6 のように二次元凸包平

第3章

先頭

麺形状物体の調理器具による対話操作

麺セグメント1
始点a
終点b
b

24

麺セグメント2
始点b
終点c

麺セグメント3
始点c
終点d

c
d

a

図 3.1: 麺セグメントのリスト構造面をなす隣り合う二つの点と，判定する対象の点がなすそれぞれの角度の合計が 2π となる
とき，判定する対象の点は三次元凸包内に存在するといえる．図 3.7 のように凸包の内側に存在すると判定された麺セグメントに隣接する麺セグメントのうち，外側に存在すると判定された麺セグメントを基準の麺セグメントとする．基準となった麺セグメント及び凸包の内側に存在していると判定された麺セグメントの位置は，図 3.8 のように二次元平面上で移動後に相当する二つの操作面の端点を結ぶ線分上に移動する．このとき，麺の一方から順に

3.2 節と同様に操作面の端点を結ぶ線分の長さを超えない本数の麺セグメントが配置されるため，凸包内と判定されたもののうち，これ以上配置することができない麺セグメントは消去される．また，この移動に際して基準となった麺セグメントは 3.7 節で示す方法で姿勢を変更される．基準となった麺セグメントの凸包外側に接続されているそれぞれの麺セグメン
トのハイトフィールド上での接続位置と，姿勢の補正を行った後の基準となる麺セグメントの接続点との最短となる線分の長さを超えないような本数の複数の麺セグメントを 3.2 節と同様に一方から順に図の 3.9 のように新たに配置する．これらの処理の結果，バネ質点系モ
デルで考えられる力のうち，三次元凸包内の麺セグメントは，各質点が外部から受ける力の中でも調理器具によって押されることで移動する力，及び引き伸ばされる過程で新たに配置する麺セグメントは，隣接する質点が移動することによって発生した弾性力の一部を受けた

第3章

麺形状物体の調理器具による対話操作

25

端点

操作面

調理容器底面
ハイトフィールド
図 3.2: 操作面の端点

挙動を代替的に表現している．これらの処理で凸包内の麺セグメント，基準となる麺セグメ
ント，及び新たに配置された麺セグメントの位置が確定し，3.6 節で後述する麺の姿勢制御
で残りの麺セグメントの位置や姿勢の変更が行われる．

3.4

リアルタイム計算麺のサイズ

これまで麺セグメントの発生について説明してきたが，際限なく麺セグメントを発生し続けてしまうと次第に性能の低いコンピュータ上で用いるシステムでは許容可能な挙動計算に必要な容量を超過してしまうため対話操作に支障をきたす可能性がある．また，長すぎる麺は自然とは言えない．そこでリアルタイム計算麺一本を構成するために必要な麺セグメントの本数を制限する．3.2 節や 3.3 節のような方法で麺セグメントが新たに発生する際，それぞれのリアルタイム計算麺一本を構成する麺セグメントの総数 Ni に対し，対話操作を考慮してあらかじめ設けた一定の本数の閾値 S を用いて，Ni > S となる場合において，一本のリアルタイム計算麺が新たに麺セグメントを新規に発生させようとした本数分，麺の両端に相当する麺セグメントを始点側，及び終点側を交互に一つずつ消去する．これにより設定した制限を超える本数の麺セグメントは相殺され，対話操作が可能な計算量に抑えることが可
能となる．

第3章

麺形状物体の調理器具による対話操作

26

操作面
調理容器底面
ハイトフィールド
図 3.3: 新しい麺セグメントの配置

3.5

リアルタイム計算麺の消去

3.4 節と同様に対話操作可能な挙動計算量を考慮するため，一定時間調理器具を用いて移動の行われないリアルタイム計算麺を消去する必要がある．そこで，それぞれの麺セグメン
トはその麺セグメントが最初に発生した時間，あるいは最後に調理器具によって位置の移動をした時間から，調理器具の移動の際に用いられる三次元凸包の干渉を受けず移動することのない時間を記憶する要素を持つことを考える．それぞれの麺セグメントは描画するフレー
ムごとに，調理器具による干渉を受けず，及びそれに伴う移動が行われなかった場合にカウントする変数 N M が，干渉を受けていない時間の閾となるフレーム数 H を上回った場合，
つまり H > N M となった場合，その麺セグメントは閾となる時間を超えて放置されていると判定される．このように条件のもとで，全ての麺セグメントが閾となる時間を超えて放置されていると判定されたリアルタイム計算麺を構成する麺セグメントは，判定された後のフレーム以降から調理器具が判定された麺に新たに干渉することなく，ハイトフィールドやほかのリアルタイム計算麺の形状を変形させたとき，そのフレームの更新の度に図 3.10 のよ
うにリアルタイム計算麺の両端に相当する麺セグメントの始点側、及び終点側を交互に消去される．このように操作者が長時間操作を行わなくなり調理器具の移動による臨場感の向上に重要な表現を行うとはいえなくなった麺セグメントを，フレームの更新ごとに順に消去
し，新たなリアルタイム計算麺やその他 VR 調理学習システムに必要な挙動計算を行う上で

第3章

麺形状物体の調理器具による対話操作

27

移動後の凸包操作面
終点側
始点側

図 3.4: 移動後の両端点を結ぶ線分と連なる麺セグメントの差

効率的な運用が可能となる．

3.6

リアルタイム計算麺の姿勢制御

3.2 節や 3.3 節の処理で新たに暫定的に配置したリアルタイム計算麺のそれぞれの麺セグ
メントを接続し，一本の麺形状物体のように表現するために位置や姿勢の修正を行う．3.2
節のように各麺セグメントは始点及び終点を持ち，隣接する麺セグメントの始点と終点を同じ位置にすることによって接続され一本の麺として表現される．ここで，麺セグメント
は調理器具の動作によってのみ移動し，移動が行われる場合には三次元凸包内の麺セグメ
ントが必ず存在している．3.4 節のように，まず三次元凸包内の麺セグメントの位置や姿勢が，調理器具の移動後の操作面の端点を結ぶ線分によって確定する．それらの両端の麺セグ
メントから続く暫定的な位置や姿勢をもつ基準となる麺セグメントの始点は，確定した両端の麺セグメントの終点の位置と同じになるように位置の情報が修正される．その後，基準となる麺セグメントの終点の位置 (xf , yf , h(xf , yf )) は，その始点の前フレームにおける位置 (xBs , yBs , h(xBs , yBs ))，その終点の前フレームにおける位置 (xBf , yBf , h(xBf , yBf ))，第3章

麺形状物体の調理器具による対話操作

28

三次元凸包

右手側

左手側

始点

終点

図 3.5: 移動方向による始点の配置の切り替え確定した隣接する麺セグメントの終点の位置に合わせるために修正したときの移動前後の始点の増加量 (∆x, ∆y, ∆z)，移動前の端点の位置 (xb , yb , h(xb , yb ))，移動後の端点の位置(xa , ya , h(xa , ya ))，移動前後の端点間の距離 D，及び操作面の幅 W を用いてそれぞれ以下の式によって決定する．

(

xf
yf

)

(
=

cos(−θ) −sin(−θ)
sin(−θ) cos(−θ))(

h(xf , yf ) = (h(xBf , yBf ) + ∆z)

xBf + ∆x − xa
yBf + ∆y − ya

)

(
+

xa
ya

)

h(xa , ya ) − h(xb , yb )
D

(3.4)

(3.5)

ただし θ は図 3.11 のように，(0 ≤ θ ≤ π − θ2 ) の条件のもと θ2 を用いて以下のように決定する．

θ=cos(θ2 ) =Dπ
2N(xBf − xBs )(xa − xb ) + (yBf − yBs )(ya − yb )
DW

(3.6)

(3.7)

これにより終点が確定した麺セグメントから続く位置にある新たに配置した麺セグメント
は，隣接する麺セグメントの確定した終点を始点とし，また，その始点，及び三次元凸包により移動を行わなかった残りの麺セグメントの始点を結ぶ線分上に終点を持つ．

第3章

麺形状物体の調理器具による対話操作

29

‫ݖ‬
‫ݔ‬
図 3.6: 判別対象となる点と隣り合う二つの点がなすそれぞれの角度

三次元凸包による移動を行わなかった残りの麺セグメントはの姿勢は，同様に始点の位置を確定した隣接する麺セグメントの終点に修正した後，変化前の位置を (xBnf , yBnf , h(xBnf , yBnf ))基準となる麺セグメントが行った位置の変化量を (∆xf , ∆yf , ∆h(xf , yf ))，隣接する麺セグ
メントの位置の変化量を (∆xr , ∆yr , ∆h(xr , yr ))，線分上に新たに配置された最後の麺セグ
メントからの隣接数を n とし，その隣接数に応じて角度の修正の変化量を小さくするように以下の式を用いて終点 (xnf , ynf , h(xnf , ynf )) の位置を決定する．

(

xf
yf

)

(
=

cos −θ
2n−θ
sin 2n−sin −θ2n−θsin 2n)(xBf + ∆x − xa
yBf + ∆y − yah(xn f, yn f ) = h(xB nf, yB nf ) + ∆h(xf , yf ) +)∆h(xr , yr )
2n

(3.8)
(3.9)

また，逆側の操作面の端点についても，同様の方法で終点及び始点を入れ替え，回転方向を+θ として同様に修正する．さらに，より自然に見せるための表現として，ハイトフィール
ドで表す麺形状物体群の中からこれらの麺形状物体が引っ張られているように出現しているように見せるために，各麺セグメントに働く力に対する位置と姿勢の決定が行われた後に全てのリアルタイム計算麺の両端に位置する麺セグメントの姿勢は，図 3.12 のように隣に麺セグメントを持たない方の麺セグメントの終点の高さの値が，その点の格子上に相当するハ

第3章

麺形状物体の調理器具による対話操作

30

三次元凸包

基準となる
麺セグメント
図 3.7: 基準となる麺セグメント

イトフィールドの高さの値を上回る場合にその高さの値になるように修正する．

第3章

麺形状物体の調理器具による対話操作

三次元凸包

図 3.8: 三次元凸包内の麺セグメントの移動

三次元凸包

図 3.9: 引きずられて発生する麺セグメント

31

第3章

麺形状物体の調理器具による対話操作

32

凸包

図 3.10: 消去すべき麺セグメント

θ2
θ

図 3.11: 姿勢を修正する角度

第3章

麺形状物体の調理器具による対話操作

‫ݖ‬

平面

‫ݕݔ‬

図 3.12: 両端の麺セグメントの高さの修正

33

34

第4章

4.1

実験

実験システム

前述の提案モデルを用いて，調理器具で麺の対話操作が実験システムを構築した．任天堂
株式会社より発売されている Wii リモコンを利用して調理容器の操作を行う．実験システム
により，処理速度についての評価実験を行った．なお，本実験システムは以下の構成の計算機で実験システムを構築し描画した．

• CPU：Intel(R)Core(TM)i5-2400 CPU 3.10GHz• RAM：4GB
実験システムでは，調理容器は直径 32.5cm，側面の高さ 6.4cm のフライパン，調理器具は
ヘラ，そして固体群はスパゲッティを想定している．調理容器内のビデオテクスチャ麺はア
ニメーションをマッピングし，リアルタイム計算麺は三次元形状データをもとに逐次，位置や形状を計算して描画する．図 4.1 は実験の様子である．操作者は，Wii リモコンを操作することで調理容器を動かすことができる．なお，これまでの実験システムでは調理器具を三次元モーションセンサにより操作したこともあるが，今回の実験ではキーボードを介して調理器具を操作する．また，操作者はキーボードを用いて調理器具を操作して調理容器内のス
パゲッティを動かすことができる．図 4.2 に調理容器，調理器具を用いた麺形状物体操作の様子を示す．図 4.2 の右側ではリアルタイム計算麺の確認を容易にするために赤く着色してある．操作者は調理器具を用いて，容器内の麺形状物体群を移動させることが可能である．
調理器具の移動によってビデオテクスチャ麺の中からリアルタイム計算麺が引っ張り出されているように観察できる．

第4章

実験

35

図 4.1: 実験の様子

第4章

実験

36

図 4.2: リアルタイム計算麺の様子

4.2

実験結果

実験システムを用いて，各プロセスの処理を行う 1 描画フレームの更新に必要な計算時間を計測した．ビデオテクスチャの麺の概略表面である調理容器内のハイトフィールドの格子数は，事前の実験を踏まえ 317 点に設定している．測定項目は提案部分であるリアルタイム
計算麺の挙動計算をはじめ，調理容器操作によるハイトフィールド変形のための変形曲面の決定，調理器具操作による変形曲面の決定，ハイトフィールドの自然な変形のための固体群
崩れ処理における変形曲面の決定，これら変形曲面の適用，ビデオテクスチャのマッピング
処理を含む麺の表示，動作の入力である．これらの状態でリアルタイム計算麺の本数の違い
による処理速度の違いを表 4.1 に示す．一般的に対話操作には 10∼12FPS ほどの処理速度が必要であると言われいる．実験システムにおいて，リアルタイム計算麺が 15 本のときでも，処理速度は約 86FPS で十分に対話操作が可能であり，また総合的なシステムとして完成させるために様々な処理を追加するための時間も残っているといえる．

第4章

実験

37

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

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

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

約 2.5 × 10−5変形曲面決定（崩れ）約 2.5 × 10−5変形曲面適用約 20 × 10−5変形曲面適用約 20 × 10−5

リアルタイム計算麺の挙動計算 (5 本)

約 16 × 10−5

リアルタイム計算麺の挙動計算 (10 本)

約 78 × 10−5

リアルタイム計算麺の挙動計算 (15 本)

約 127 × 10−5

描画（リアルタイム計算麺 5 本，ビデオテクスチャ麺を含む）

約 58 × 10−5

描画（リアルタイム計算麺 10 本，ビデオテクスチャ麺を含む）

約 97 × 10−5

描画（リアルタイム計算麺 15 本，ビデオテクスチャ麺を含む）

約 123 × 10−5

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

約 20 × 10−5

動作入力（Wii リモコン）約 700 × 10−5

その他

約 15 × 10−5

処理の総計算時間（キー・マウス利用，リアルタイム計算麺 15 本）

約 649 × 10−5

処理の総計算時間（Wii リモコン，リアルタイム計算麺 15 本）

約 1149 × 10−5

第4章

実験

38

39

第5章

むすび

本研究では，ビデオテクスチャにより麺の挙動を表現する手法と併用するための，調理器具を用いた局所的な操作により挙動の変化する麺の表現方法を提案した．操作者が行う調理器具の挙動に対して，少数の麺形状物体を適切に配置することで，調理器具により麺形状物
体群の中から数本の麺が引き出される様子を表現できる．この計算手法は性能の低いコンピュータでもリアルタイムで計算可能な方法である．調理器具により麺形状物体群の中から数本の麺が引き出されてくる様子を表現した．
現時点では問題点を明確にするために，調理器具の操作面を調理容器底面に対して鉛直方向に固定した状態で麺形状物体の挙動モデルを検討しただけである．今後の課題としては，調理器具の 6 自由度の操作に対しても少量の麺形状物体のリアルタイムな挙動計算を行うことで，操作者の期待する違和感のない調理器具の挙動を表現をする必要がある．また，ヘラ状の調理器具以外にも，箸やフォークなどのような形状の調理器具の操作による三次元凸包を考慮し，それらの調理器具の挙動に合わせた少量の麺形状物体のリアルタイムな挙動計算を行い，様々な調理器具での操作を可能とすることも考えたい．

VR 調理学習システムでは操作者が料理の基本的な様々な料理の一連の手順やを学習することを想定している．例えば，炒飯のようなこれまで考慮してきた固体群と麺形状物体を同時に扱うことも検討したい．さらに食材の形状の違いだけでなく，食材の弾力の違いによる
視覚的な挙動の変化を表現することで，より多様な食材の表現を可能としたい．

40

謝辞

本研究を進めるにあたって，日頃から多大な御尽力を頂き，ご指導を賜りました名古屋工業大学，舟橋健司 准教授，伊藤宏隆 助教に心から感謝致します．また，本研究に多大な御協力頂きました舟橋研究室諸氏に心から感謝致します．

41

参考文献

[1] カナダ・モントリオール大学デザイン大学院，”HYVE・3D”，http://www.hyve3d.com/．
[2] 舘日章，佐藤誠，廣瀬通孝， バーチャルリアリティ学 ，工業調査会，2010．

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

[4] 瀬戸崎典夫，森田裕介，竹田仰， ニーズ調査に基づいた多視点型 VR 教材の開発と授業実践 ，日本バーチャルリアリティ学会論文誌 Vol.11，No.4 pp.537-544，2006．

[5] 株式会社ハコスコ， ハコスコ ，http://hacosco.com/．
[6] 任天堂株式会社， Wii ，http://www.nintendo.co.jp/index.html．
[7] 加藤史洋，三武裕玄，長谷川晶一， 体験型料理シミュレータ ，日本バーチャルリア
リティ学会第 15 回大会講演論文集，2010．

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

[10] 西田友是，尾上耕一， Virtual Sandbox ，Proceedings of IEEE 2003 Paciﬁc Conference
on Computer Graphics and Applications，2003．
[11] 森井敦士，森愛絵，山本大介，舟橋健司， VR 調理学習システムのための剛体による固体群操作モデル ，日本バーチャルリアリティ学会第 15 回大会講演論文集，2010．

42[12] 佐東康平，舟橋健司， VR 調理学習システムにおける調理器具による押さえつけ動作とすくい上げ動作の考察 ，日本バーチャルリアリティ学会第 18 回大会講演論文集，

2013．
[13] 小塚太智， VR 調理学習システムにおける調理器具の移動範囲の拡張 ，平成 23 年度
名古屋工業大学卒業研究論文，2012．

[14] 布目貴大， 固体群操作モデルの麺形状物体操作を対象とした VR 調理学習システムへの応用 ，平成 25 年度名古屋工業大学卒業研究論文，2014．