平成 23 年度 卒業論文

VR 調理学習システムにおける調理容器の部分球形状への拡張

指導教員
舟橋

名古屋工業大学

工学部

平成 20 年度入学

石原

情報工学科

20115011 番

逸貴

健司

准教授

i

目次
第 1 章 はじめに

1

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

32.1

格子法モデルの概要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32.2

従来の容器形状と固体群表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

2.3

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

5

2.3.1

変形曲面の形状決定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.3.2

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

7

2.3.3

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

8

2.4

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

8

2.5

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

9

第 3 章 調理容器の部分球形状への拡張

10

3.1

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

10

3.2

部分球調理容器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

3.2.1

容器形状の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

3.2.2

容器形状の表現方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

3.2.3

容器内傾斜による固体群挙動. . . . . . . . . . . . . . . . . . . . . . . . .

13

部分球容器に対する変形曲面の適用 . . . . . . . . . . . . . . . . . . . . . . . . . .

15

3.3

第 4 章 実験

174.1

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

17

4.2

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

17

4.3

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

19

第 5 章 むすび

22

謝辞

23

参考文献

24

1

第1章

はじめに

バーチャルリアリティ(Virtual Reality,VR) とは「みかけや形は原物そのものではないが、本質的あるいは効果としては現実であり原物であるもの」を意味する [1]。VR 技術を利用することで擬似的な環境・物体により使用者の五感に刺激を与え、実際にそれらがそこにあると感じさせることができる。人間は VR 技術を利用することで様々な恩恵を得ることが可能である。具体的には、環境や物体を準備するためのコストの削減、反復訓練の効率化、危険性の回避などが挙げられる。以上の利点から VR は多くの分野で教育・訓練のためのシステムに利用されている。例として、医療の場における手術に関するシミュレータ [2] や、教育の場における小学校の理科実験教
材 [3] などがある。しかし VR 環境をつくりだす装置やシステムが高価であったり、大規模なものが多いことから一般家庭への普及は進んでいない状況にある。
近年の技術進歩により、一般家庭でも導入可能な安価な VR システムやデバイスが普及してきた。任天堂株式会社の製品である家庭用ビデオゲーム機「Wii」[4] の入力装置である「Wii リモコン」は、それ自体をゲーム内の様々なものに見立て、上下左右に振ることで直感的な操作を可能にしている。ところで、少子高齢化による共働きや一人暮らし、核家族が増えており、料理経験の少ない人が料理をする機会が増えている。
そのため料理 (調理) に関する情報やシステムの需要が高まっている。こうした理由から一般家
庭向けの料理手順の習得や訓練を目的とするシステムが開発されている。料理をテーマとしたシ
ステムとして、ゲーム分野では株式会社スクウェア・エニックスより販売されているゲームソフト「クッキングママ」[5] シリーズは、料理を簡略化された表現の元体験し手順を覚えながら楽し
むことができるものである。また、料理の訓練を目的とした調理体験シミュレータ [6] がある。
当研究室でも一般家庭へ向けたコンテンツとして料理をとりあげ、VR 調理学習システム「バーチャルお料理教室」の開発を行っている。この「バーチャルお料理教室」は、料理の手順を学習・訓練することを想定している。料理の手順とは具体的には食材の準備から加工・調理・盛り付けを指す。最終的にはこの料理手順の全工程を学習できるコンテンツの作成を目指している。
「バー
チャルお料理教室」ではこれまでに調理の場面における容器内の食材の操作に関するモデルの研究を進めてきた。ここでいう食材とは、ご飯や様々な食材片のような複数の小さな固体の集まりを想定している。こうした小さな固体の集まりに関する研究では、溶岩 [9] や砂 [8] などを対象とした対話操作に関するものがある。文献 [9] では、小さな固体ひとつひとつを粒子に近似して計算を行う粒子法を用いている。個々の粒子にかかる重力や粒子同士の衝突などをすべて計算しているため計算量が大きく対話操作に不向きである。文献 [8] では粒子法ではなくハイトフィールドに基第 1 章 はじめに2づいたモデルであるが、局所的な計算を全領域に及ぶよう繰り返し行うため計算量が大きい。こうした研究は、映画などの対話操作を想定しないコンテンツにおいて臨場感向上に利用されているが、ゲームなどの対話操作が必要なコンテンツには応用されていない。
これらのモデルに対し、当研究室では複数の固体が集まって全体で一つの集合体として認識されるものを、一つの操作対象として扱う。この操作対象をを固体群と呼び、対話操作が可能な固体群操作モデルの研究を進めている [7]。固体群の挙動はユーザが本物らしいと感じられる程度の正確さにとどめ、高速性を重視することで対話操作を可能にする。容器内の平らな底面上に 2 次
元正方格子を設定し、各格子に底面からの高さの情報を持たせたものをハイトフィールドと呼ぶ。
このハイトフィールドによって容器内に存在する固体群を表現する。以上の固体群操作モデルを「格子法モデル」と呼ぶ。格子法モデルは、文献 [9] と同様にハイトフィールドを用いるが、大域的に計算を行うことで更なる計算量削減を実現している。
格子法モデルでは、調理容器内の固体群挙動を対話操作的に表現することができる。しかしこのモデルでの容器形状は計算の簡略化のため一般的な加熱調理容器を想定した底部を平面に限定している。しかし例外として中華鍋のような底部全体が丸みを帯びた容器も存在する。また、将来的に「バーチャルお料理教室」で料理手順の「盛り付け」の工程を再現することを考慮すると皿などの食器も扱いたい。皿には様々な形状があるが一般的に丸みを帯びたものが多い。そこで、本研究では丸みを帯びた容器の形状を部分球と考えることで簡略化し、少ない計算量を保ちつつ部分球形状調理容器による固体群挙動モデルの実現を目指す。
第２章で従来の固体群操作モデルの概要を説明し、第３章で提案モデル、第４章で実験の手法と結果を述べる。

3

第2章
2.1

従来の固体群操作モデル

格子法モデルの概要

格子法モデルでは複数の小さな固体の集まりである固体群を、見かけと同様に一つの操作対象物体として扱うことで計算時間を削減している。使用者はフライパンのような形を想定した調理
容器を傾ける、左右に平行に振るといった操作によって固体群の形状変化を起こすことができる。
なおこのモデルでは固体群の存在は調理容器内に限定し、舞い上がりやこぼれといった容器外での挙動は考慮しないが、容器外の固体群表現への拡張として「こぼれ」の表現があるため、これについても概要を説明する。また容器外の挙動には「舞い上がり」の表現もあるが、これに関して
は文献 [10] を参照されたい。格子法モデルでは容器内の固体群をひとつの操作対象とみなし、重力などの力による形状変化を曲面によって近似することで表現する。

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

図 2.1 は容器内に固体群が存在している様子を断面図として表している。まず図 2.1-1 のように
時刻 t で固体群が存在している場合、重力によって容器底面にそって下向きに滑り落ちるべきである。この滑り落ちる様子を図 2.1-2 のような２つの曲面 (斜線部) を適用し、増加・減少することによって局所的な体積変化を表現する。このときの図 2.1-2 の左の曲面を正の変形曲面、図 2.1-2の右の曲面を負の変形曲面と呼ぶ。結果、時刻 𝑡 + Δ𝑡 で固体群は想定した通り下方向に移動する。
この単純な処理によって固体群の挙動を高速に計算することができる。しかし実際はこれらの変形曲面の形状はあらかじめ求めるのは困難であるため、実験システムでは処理を段階的に分けた代替の処理を行うことで容易に実現する。
図 2.1-1 と同様に時刻 𝑡 で固体群が図 2.2-1 のように存在している場合、図 2.2-2 のように容器

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

1

2

4

3

4

g
時刻 t + ∆t

時刻 t
図 2.2: 正の変形曲面による代替処理内の 1 地点に存在する正の変形曲面を適用し体積加算する。その後、負の変形曲面は用いず、図2.2-3 のように固体群全体の体積を減少させることで正の変形曲面による体積増加を修正する。その結果時刻 𝑡 + Δ𝑡 で固体群は下方向に移動する。ここで正の変形曲面の形状は図 2.3 のように幅や高さの値の変更が容易な半楕円柱とする。

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

2.2

従来の容器形状と固体群表現

格子法モデルで想定される調理容器はフライパンのような形を想定した多角柱形状である。容器底部は凸多角形の平面図形とし、容器側面は底部に対して垂直に立ち、高さ ℎ とする。
固体群の表現は図 2.4 のように調理容器内の底部平面を固体群積載部とし、その面に配置された
正方格子状の頂点群の高さの値を更新することで変化させるハイトフィールドを用いる。ハイトフィールドによって表された容器内固体群の総体積は各頂点の高さの総和とする。つまり平面格
子状の座標を 𝑥𝑧 平面とし、各座標の高さを 𝑓 (𝑥, 𝑧) と表すと、座標 (𝑥𝑖 , 𝑧𝑗 ) の高さは 𝑓 (𝑥𝑖 , 𝑧𝑗 ) と表すことができる。また、固体群が存在する頂点の総数を 𝑁 とし、総体積を 𝑉 とすると以下の式が

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

5

成り立つ。

𝑉 =

𝑁
∑

𝑓 (𝑥𝑖 , 𝑧𝑗 )(2.1)

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

2.3

変形曲面

2.3.1

変形曲面の形状決定

格子法モデルにおける半楕円柱形状の変形曲面の各パラメータを図 2.5 のように定義する。

図 2.5: 変形曲面の定義∙ 半楕円柱断面の楕円の長半径 𝑎∙ 半楕円柱断面の楕円の短半径 𝑏∙ 調理容器内での位置 𝒐𝑫

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

6∙ 3 次元空間上での向き 𝐿𝐷∙ 楕円柱の長さ 𝑟𝐷
なお、調理容器の底面に平行な半径 𝑎 を長半径、垂直な半径 𝑏 を短半径とする。まず、楕円柱の向きは固体群に働く外力と平行とする。こうすることでその力が働く方向へ滑り落ちる挙動を再現できる。楕円柱の位置は、固体群が重心に集まっていると仮定し、その重心を始点とし楕円柱の向きに平行移動させた位置に設定する。平行移動の距離は後述する楕円柱の長半径 𝑎 と比例する
ように設定する。固体群の重心はハイトフィールドの座標と各頂点高さによって求められる。固体群全体の体積を 𝑉 、𝑥𝑧 平面の (𝑥𝑖 、𝑧𝑗 ) の座標 を 𝑚𝑖𝑗 、その座標に位置する格子の高さを 𝑓 (𝑥𝑖、𝑧𝑗 )、固体群が存在する頂点の総数を 𝑁 とする。固体群の重心座標を 𝑮𝒄 = (𝑥𝐺 , 𝑧𝐺 ) は
𝑁

𝑮𝒄 =

1 ∑
𝑓 (𝑥𝑖 , 𝑧𝑗)𝑚𝑖𝑗
𝑉

(2.2)

と表される。
容器を傾けたり、素早く横に振るなどの「容器操作」によって固体群が受ける力を外力 𝑭𝒃 とする。外力 𝑭𝒃 の 𝑥 成分を 𝑭𝒃𝒙 、𝑧 成分を 𝑭𝒃𝒛 とすると、外力の 𝑥𝑧 平面での角度 𝛼 は

𝛼 = 𝑎𝑟𝑐𝑡𝑎𝑛(

𝑭𝒃𝒛
)
𝑭𝒃𝒙

(2.3)

となる。この角度 𝛼 により固体群が受ける力の方向 𝑆 は、

𝑺 = (𝑐𝑜𝑠(𝛼), 𝑠𝑖𝑛(𝛼))(2.4)

である。半楕円柱の位置 𝑜𝐷 は前述の固体群の重心 𝑮𝒄 と楕円の長半径 𝑎、力の方向 𝑆 によって

𝒐𝑫 = 𝑮𝒄 + 𝑺𝑎

(2.5)

と表すことができる。長半径 𝑎 固体群の移動距離にも関係する変数である。つまり 𝑎 = 0 のとき、変形曲面は存在しなくなり、固体群は移動しない。固体群は剛体とは違い、図 2.6 の様に容器の端に達しても、移動し続ける。よって固体群がある程度容器の端まで移動し終えるまで、𝑎 > 0 にする必要がある。そこで、𝑎 は容器の端に接している固体群の量に対して減少するように以下の様に設定する。部分球形状容器の側面から固体群に対する垂直抗力 ∣𝑭𝒏 ∣ を、以下のように定義し近似的に求める。

(
𝑎=𝑇1 − ∣𝑭𝒏 ∣ (𝑇1 ≥ ∣𝑭𝒏 ∣ のとき)
0 (𝑇1 < ∣𝑭𝒏 ∣ のとき)

(2.6)

𝑇1 は任意の定数である。長半径 𝑎 は固体群が容器の側面から受ける抗力を考慮に入れて定義されたパラメータであるが、固体群が受けた力や調理容器内に存在する固体群体積がパラメータの設第 2 章 従来の固体群操作モデル

7

図 2.6: 固体群の容器の端での動き
定に大きく影響しない。よって、これらを補うために短半径 𝑏 を以下のように設定する。
(√(∣𝑭𝒃 ∣ − 𝜇′ )𝑇2 𝑉𝑐 (∣𝑭𝒃 ∣ ≥ 𝜇のとき)𝑏=0 (∣𝑭𝒃 ∣ < 𝜇のとき)(2.7)

𝑇2 は任意の定数、𝜇 は最大静止摩擦力、𝜇′ は動摩擦力、𝑉𝑐 は容器内に存在する固体群の体積を表すパラメータである。半楕円柱の姿勢は、楕円柱の芯となる直線 𝐿𝐷 で定義される。𝐿𝐷 は 𝑜𝐷 を通り、方向ベクトルが 𝑙𝐷 である直線とする。𝑙𝐷 は以下の条件を満たす二次元ベクトルである。

𝑭𝒃⋅ 𝑙𝐷 = 0
∣𝑭𝒃 ∣

(2.8)

楕円柱の長さ 𝑟𝐷 は、調理容器底面を構成する平面図形と直線 𝐿𝐷 が交わってできる線分の長さに等しくなるように設定する。

2.3.2

変形曲面のハイトフィールドへの加算

2.3.1 節により求めた変形曲面をハイトフィールドに加算する。変形曲面による加算は、対象の格子 (𝑥𝑖 , 𝑧𝑗 ) の座標 𝑚𝑖𝑗 と変形曲面の中心軸である直線 𝐿𝐷 との距離 𝑙𝑖𝑗 が 𝑙𝑖𝑗 ≤ 𝑎 となる格子に行う。直線 𝐿𝐷 の式は 𝑥𝑧 平面格子の中心を原点としたとき、

𝑠𝑖𝑛(𝛼)𝑥 − 𝑐𝑜𝑠(𝛼)𝑦 − 𝑠𝑖𝑛(𝛼)(𝑥𝐺 + 𝑎𝑐𝑜𝑠(𝛼)) + 𝑐𝑜𝑠(𝛼)(𝑧𝐺 + 𝑎𝑠𝑖𝑛(𝛼)) = 0(2.9)となる。𝐴 = 𝑠𝑖𝑛(𝛼)、𝐵 = 𝑐𝑜𝑠(𝛼)、𝐶 = −𝑠𝑖𝑛(𝛼)(𝑥𝐺 + 𝑎𝑐𝑜𝑠(𝛼)) + 𝑐𝑜𝑠(𝛼)(𝑧𝐺 + 𝑎𝑠𝑖𝑛(𝛼)) とした
とき直線 𝐿𝐷 と座標 (𝑥𝑖 , 𝑧𝑗 ) の距離 𝑙𝑖𝑗 は

𝑙𝑖𝑗 =∣ 𝐴𝑥𝑖 + 𝐵𝑧𝑗 + 𝐶 ∣√=∣ 𝐴𝑥𝑖 + 𝐵𝑧𝑗 + 𝐶 ∣𝐴2 + 𝐵 2(2.10)

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

8となる。変形曲面によって加算が行われた後のハイトフィールドの格子 (𝑥𝑖 , 𝑦𝑗 )′ が持つ値は以下のように求める。

⎛
𝑓 (𝑥𝑖 , 𝑧𝑗 )′ = ⎝2.3.3

𝑓 (𝑥𝑖 , 𝑧𝑗 ) +(√𝑙
1 − ( 𝑎𝑖𝑗 )2)𝑏 (𝑙𝑖𝑗 ≤ 𝑎 のとき)

𝑓 (𝑥𝑖 , 𝑧𝑗 )(𝑙𝑖𝑗 > 𝑎 のとき)

(2.11)

曲面加算後の処理

格子法モデルでは、ハイトフィールドで表現された固体群の形状を変形曲面で変化させることにより、固体群の挙動を表現する。 変形曲面をハイトフィールドに加算するが、加算後、固体群
体積が曲面加算前に比べて増加するので、元の体積と等しくなるように、ハイトフィールドの全格子が持つ値に減算を行う。 減算後の格子 (𝑥𝑖 , 𝑧𝑗 ) が持つ値 𝑓 (𝑥𝑖 , 𝑧𝑗 )′ は以下のように求める。

𝑓 (𝑥𝑖 , 𝑧𝑗 )′ =𝑉𝑐𝑓 (𝑥𝑖 , 𝑧𝑗 )′𝑉𝑐′(2.12)

𝑉𝑐′ は、変形曲面を加算した後のハイトフィールドの持つ値の総和であり,
𝑉𝑐′ =

𝑁
∑

𝑓 (𝑥𝑖 , 𝑧𝑗 )′(2.13)のように求める。 𝑓 (𝑥𝑖 , 𝑧𝑗 )′ は、変形曲面を加算した後のハイトフィールドにおける格子 (𝑥𝑖 , 𝑧𝑗 )が持つ値である。 このように処理を行う事で、調理容器内の固体群体積を保存する。

2.4

固体群の崩れの表現

固体群は一般にはある程度積み上がったら崩れるものが多い。この現象を表現するために、ある頂点 (𝑥, 𝑦) の高さ ℎ(𝑥, 𝑦) と容器中心方向の近傍の 2 頂点の高さ 𝑠1 (𝑥, 𝑧)、𝑠2 (𝑥, 𝑧) の差 ℎ𝑠1 、ℎ𝑠2
をそれぞれ求め、その値が閾値 𝑡 より大きければ、頂点間の高さを、それらの平均値として再設定する操作を行う。この処理は、入力から出力の一連の処理において有限回行われる。リアルタイ
ムに動作するシステムにおいて、この処理は徐々に全体に広がっていき、自然な「崩れ」を表現する。

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

2.5

9

容器外へのこぼれの表現

調理容器外の固体群の表現としてこぼれの表現の実装がされている。従来の格子法モデルに計算コストを抑えた粒子を導入することで、容器内の固体群が容器外へ落下する様子を表現するものである。容器内には格子法モデルにより表現されるまとまったひとつの固体群と、各格子に確率的に存在する固体群粒子である「存在確率粒子」を表現する。この存在確率粒子というのは、各格子の高さ情報を元に粒子が存在する確率を求め、その確率に基づき粒子の描画を制御するものである。存在確率粒子によって容器内固体群の固体らしさや自然な移動過程を表現することができる。また、容器外へこぼれが発生する条件を定義するためにこぼれ境界を図 2.7 のように設定する。A 境界は容器を傾けた際に固体群がこぼれる高さの境界、B 境界はへらなどの調理器具によって押し出されることで固体群がこぼれる高さの境界である。固体群の高さのこれらのどちらかを越えた部分に対し、先述の存在確率粒子を自由落下のみを行う「自由落下粒子」に変換し、容器外の空間へ落とすことでこぼれの挙動を実現する。また、境界を越えた高さから容器外へのこぼれによって減少する固体群体積を求め、こぼれる前の容器内固体群体積から補正をすることでこぼれた後の体積を求める。

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

10

第3章
3.1

調理容器の部分球形状への拡張

提案モデルの概要

当研究室で提案している固体群操作モデルは、格子上に設定したハイトフィールドにより固体群を表現することで少ない計算コストで固体群操作を実現している。しかしこのモデルでは 2.2 節で述べたとおり、調理容器底部を単一平面としている。そのため容器底部が平坦でないものを扱えることができない。そこで本研究では、従来通りの固体群を表現するためのハイトフィールドに加え、調理容器の形状を表現するためのハイトフィールドを導入し、固体群操作を実現することで、容器形状モデルの拡張を行う。ところで、一般的な料理を想定すると、加熱調理において用いられる容器の形状はフライパンのような底部が平らであるものと、中華鍋のような丸みを帯びたものがある (図 3.1)。また、底部が平らであっても部分的に丸みを帯びていることが多い。こうした丸みを帯びた容器の形状を仮想空間内に再現することで、リアリティの向上が見込める。そこで本研究では、中華鍋を想定した部分球状の調理容器を扱えるようにする。現実世界の中華鍋などの調理容器は厳密な部分球とは言えないが、計算の簡略化のために再現する容器の形状を部分球とする。以降、従来モデルの容器を多角柱調理容器、提案モデルの容器を部分球調理容器と呼称する。

図 3.1: 一般的な加熱調理容器の例

第 3 章 調理容器の部分球形状への拡張

3.2

部分球調理容器3.2.1

容器形状の定義11

一般に調理容器の形を表す際には「広さ」や「深さ」という言葉がよく使われる。「広さ」は容
器の口の大きさを、「深さ」は容器の底部から口までの距離を大まかに表すことが多い。図 3.2 は部分球調理容器の概形を示している。図 3.3 はその部分球調理容器を真横から見た断面図であり、実線で部分球を、点線でその部分球を含む球を示している。図 3.3 に示した通り、半径 𝑅𝑠 の球をある高さ ℎ𝑠 で水平面によって切断した２つの立体のうちの下のものとする。高さ ℎ𝑠 は半径 𝑅𝑠 以
下とし、壺のような口がすぼまった容器に関しては扱わない。部分球の切断面の半径 𝑟𝑠 は、容器の口の広さを表すものだが、これを「調理容器の広さ」と呼ぶ。また、球を切断する水平面の高さ ℎ𝑠 は、容器の深さを表し、「調理容器の深さ」と呼ぶ。また、部分球殻の中心点を部分球の最低点 𝑜𝑠 と呼ぶ。

rs

Rs

hs

hs

図 3.2: 部分球調理容器

osrs

図 3.3: 部分球調理容器の断面図

実装システムにおいて、容器の広さ 𝑟𝑠 と容器の深さ ℎ𝑠 は任意であり、この値を変更することで部分球調理容器の深さ、口の広さ、大きさなどを変えることができる。球の半径 𝑅𝑠 は、広さ 𝑟𝑠 と深さ ℎ𝑠 から以下の式により求まる。

𝑅𝑠 =ℎ𝑠 2 + 𝑟𝑠 2
2ℎ𝑠

(3.1)

第 3 章 調理容器の部分球形状への拡張

3.2.2

12

容器形状の表現方法

部分球調理容器の形状をハイトフィールドによって表現するための方法を説明する。図 3.4 のように、3.2.1 節で述べた部分球の最低点 𝑜𝑠 との接平面に、部分球を投影した面を「基準面」と呼ぶ。基準面には図のように原点が部分球最低点 𝑜𝑠 となるようにローカル座標系を定義し、基準面座標系と呼ぶ。座標 (𝑥𝑖 , 𝑧𝑗 ) での部分球の高さを 𝑓𝑠 (𝑥𝑖 , 𝑧𝑗 ) とする。この基準面に容器形状と固体群形状を表すためのハイトフィールドを定義する。部分球容器形状はこの基準面の各座標の部分
球曲面の高さとして表現する。

ys

zs

xs
基準面

os
図 3.4: 基準面と基準面座標系
部分球形状を表す曲面の関数を 3.2.1 節で定めた各パラメータを用いて求める。基準面座標の 𝑥𝑧
平面に接するような半径 𝑅𝑠 の球の関数を求め、範囲によって部分球とし、容器形状とする。そのような球の関数は

𝑥2 + (𝑦 − 𝑅𝑠 )2 + 𝑧 2 = 𝑅𝑠2(3.2)となる。これを高さ、つまり 𝑦 について解くと

𝑦 = 𝑅𝑠 +√𝑅𝑠2 − 𝑥2 − 𝑧 2(3.3)となる。この式の 𝑦 < ℎ𝑠 の範囲が部分球曲面の高さとなるため、座標 (𝑥𝑖 , 𝑧𝑗 ) での容器形状 𝑓𝑠 (𝑥𝑖 , 𝑧𝑗 )は𝑓𝑠 (𝑥𝑖 , 𝑧𝑗 ) = 𝑅𝑠 +√𝑅𝑠2 − 𝑥2𝑖 − 𝑧𝑗2(3.4)となる。ただし 𝑓𝑠 < ℎ𝑠 である。また、基準面座標 (𝑥𝑖 , 𝑧𝑗 ) での固体群の高さ (量) の値を 𝑓 (𝑥𝑖 , 𝑧𝑗 )とする。部分球容器の内部に存在する固体群の高さ (表面) は図 3.5 のように 𝑓𝑠 (𝑥𝑖 , 𝑧𝑗 ) + 𝑓 (𝑥𝑖 , 𝑧𝑗 )で表される。

第 3 章 調理容器の部分球形状への拡張

13

f ( xi , z j )f s ( xi , z j )( xi , z j )図 3.5: 部分球容器内の固体群

3.2.3

容器内傾斜による固体群挙動

容器形状が部分球である場合、容器を傾ける、横に振るといった操作を行わない時でも、図 3.6のように位置によっては容器曲面の傾斜によって固体群が変形する場合がある。この挙動を再現するために、部分球容器の曲面による傾斜を考える。

図 3.6: 部分球容器の傾斜による固体群変形
固体群が受ける容器下向きへの力は、固体群の容器内の位置により変化する。この固体群が受ける力を外力 𝑭𝒄 と定義する。固体群が受ける力の総和 𝑭𝒔𝒖𝒎 は、外力 𝑭𝒄 と、2.3 節で述べた、容器を傾けたり移動させたりしたときに容器全体にかかる外力 𝐹𝑏 を足したものとなる。この分力 𝑭𝒄の方向は固体群が存在する曲面の最大傾斜方向によって定まり、大きさは曲面の最大傾斜角度によって定まる。ここで、最大傾斜方向とは、曲面上の物体が転がり落ちる方向であり、最大傾斜
角度とはその傾きである。しかし、固体群は粒子や質点のような体積を持たないものとは違うため曲面と一点で接していない。そのため最大傾斜角度と最大傾斜方向が一意に定まらない。そこ
で、固体群の重心点での容器曲面の最大傾斜方向と最大傾斜角度を用いる。図 3.7、図 3.8 のよう第 3 章 調理容器の部分球形状への拡張zs14( xG , zG )

ys

α'

os

接平面 β '

xs

(xG , zG )

基準面

os
基準面

図 3.8: 最大傾斜角度を定める角度 𝛽 ′

図 3.7: 最大傾斜方向を定める角度 𝛼′に固体群の重心点を基準面の xz 平面に投影した点 (𝑥𝐺 , 𝑧𝐺 ) における最大傾斜方向を角度 𝛼′ 、最大
傾斜角度を角度 𝛽 ′ と定義する。図 3.7 は容器を真横から見た断面図、図 3.8 は容器を真上から見た図である。角度 𝛼′ は 𝑥𝑠 𝑧𝑠 平面における、𝑥𝑠 軸と、点 (𝑥𝐺 , 𝑧𝐺 ) と原点 𝑜𝑠 を通る直線のなす角である。そのため

𝛼′ = 𝑎𝑟𝑐𝑡𝑎𝑛(

𝑧𝐺
)
𝑥𝐺

(3.5)

と表すことができる。また角度 𝛽 ′ は、図 3.8 中の部分球と固体群が重心点の容器上に投影した点を接点とする「接平面」の傾きとなる。この角度は、𝑦𝑠 軸と、接点と部分球をふくむ球の中心を結んだ半径となす角に等しくなる。そこで、角度 𝛽 ′ を 3.2.1 節で定義した 𝑅𝑠 を用いて以下のように計算する。

𝛽 ′ = 𝑎𝑟𝑐𝑡𝑎𝑛(

𝑥𝐺 2 + 𝑧𝐺 2
)
𝑅𝑠

(3.6)

これらの角度と、固体群にかかる重力 𝑚𝑔 を用いて 𝑭𝒄 の式を求めると、

𝑭𝒄 = 𝑚𝑔(𝑠𝑖𝑛(𝛽 ′ )𝑐𝑜𝑠(𝛼′ ), 𝑠𝑖𝑛(𝛽 ′ )𝑠𝑖𝑛(𝛼′ ))(3.7)となる。容器内の固体群にかかる合力 𝑭𝒔𝒖𝒎 は、

𝑭𝒔𝒖𝒎 = 𝑭𝒃 + 𝑭𝒄

(3.8)

である。この合力を固体群挙動の移動と変形に影響させることで、部分球調理容器内の固体群の自然な挙動を再現する。

第 3 章 調理容器の部分球形状への拡張

3.3

15

部分球容器に対する変形曲面の適用

これまでの多角柱形状調理容器では、2.2 節で述べたとおり、容器を傾けたり素早く平行移動したりすることによって容器内の固体群に一様な力が加わると考え、その力と平行な向きの半楕円柱形状の変形曲面を適切な位置に適用することで固体群の形状変化を表現していた。しかし、容器の底部が平面でない場合、容器内にかかる力は容器形状により局所的な違いが発生すると考えられる。部分球容器の傾斜方向により固体群は部分球形状容器内の一か所に集まるような挙動をすると想定できる。よって、この集まると仮定した点からの距離によって形状を決定した「半楕円体」形状の変形曲面を用いる。これ以降では従来の半楕円柱形状の変形曲面を半楕円柱変形曲面、本手法の半楕円体形状の変形曲面を半楕円体変形曲面と呼ぶ。
半楕円体変形曲面の形状には計算の簡略化のため「平面の楕円をその長軸もしくは短軸を回転軸として回転させた立体」である回転楕円体を用いる。回転楕円体の楕円の回転軸の半径を極半径、回転軸でない半径を赤道半径と呼ぶ。各パラメータを図のように設定する。

b'

a'

oD'

図 3.9: 半楕円体変形曲面∙ 半楕円体の赤道半径 𝑎′∙ 半楕円体の極半径 𝑏′∙ 調理容器内での位置 𝒐′ 𝑫
まず赤道半径 𝑎′ は体積によって変化させるため、以下の式を用いる。

𝑎′ = 𝑇1′

√

𝑉𝑐

(3.9)

第 3 章 調理容器の部分球形状への拡張

16

𝑇1′ は任意の定数、𝑉𝑐 は容器内に存在する固体群の体積を表すパラメータである。固体群体積を軸の計算に用いる際は従来手法どおり計算の簡略化のため平方根に定数をかけることで近似する。極半径 𝑏′ には固体群にかかる力や容器内固体群の総体積、容器曲面から固体群が受ける摩擦力を影響させることとする。よって以下の式を用いる。

(
′

𝑏 =

√
(∣𝑭𝒃 ∣ − 𝜇′ )𝑇2′ 𝑉𝑐 (∣𝑭𝒃 ∣ ≥ 𝜇のとき)
0 (∣𝑭𝒃 ∣ < 𝜇のとき)(3.10)

𝑇2′ は任意の定数、外力 𝑭𝒔𝒖𝒎 は 3.2.3 節で求めた固体群にかかる外力の総和、𝜇、𝜇′ は固体群が容器から受ける最大静止摩擦力および動摩擦力である。𝑉𝑐 は容器内に存在する固体群の体積を表す
パラメータである。半楕円体変形曲面の位置 𝒐′ 𝑫 は、従来通り固体群が重心に集まっていると仮定し、その重心から固体群が受ける力の向きに移動させた位置に設定する。固体群の位置 𝑮𝒄 と、
外力 𝑭𝒔𝒖𝒎 を用いて、変形曲面生成位置 𝒐′ 𝑫 を表すと、

𝒐′ 𝑫 = 𝑮𝒄 + 𝜈 ′𝑭𝒔𝒖𝒎∣𝑭𝒔𝒖𝒎 ∣

(3.11)となる。式中の 𝜈 ′ は定数である。
ある座標 (𝑥𝑖 , 𝑧𝑗 ) での半楕円体変形曲面の高さ 𝑓 (𝑥𝑖 , 𝑧𝑗 )′ は、変形曲面の位置 𝒐′ 𝑫 から座標 (𝑥𝑖 , 𝑧𝑗 )′ とすると、までの距離を 𝑙𝑖𝑗√
𝑓 (𝑥𝑖 , 𝑧𝑗 )′ = 𝑏′

1−(

′
𝑙𝑖𝑗

𝑎′

)2

(3.12)′ ≤ 𝑎′ である。この値を各座標の変形前の固体群に加算する。その後、2.3.3 でとなる。ただし 𝑙𝑖𝑗

述べた従来手法と同様に、固体群体積が変形前と同じになるよう、全ての座標における固体群の高さをその一定割合だけ減算することにより、体積の保存を行う。

17

第4章
4.1

実験

実験システム以上の提案モデルを用いて実験システムを構築した。この研究は、一般向けの調理学習システ
ムを目標にしている。そのため、利用可能な安価な入力デバイス、高速な処理速度、十分に自然な挙動などが要求される。そこで本実験では、入力デバイスとして任天堂の Wii リモコンを利用することとし、これを用いて処理速度と挙動の自然さの 2 方面について実証実験を行った。Wii リ
モコンには加速度センサと赤外線センサが搭載されているが、今回の実験システムでは赤外線センサは使用せず、加速度センサにより調理容器の回転を行うようにした。描画には DirectX を利用し、以下の構成の計算機で構築した。

∙ CPU : Pentium(R) Dual-Core CPU E5200 2.50GHz∙ MEM : 1024MB∙ GPU : NVIDIA GeForce 9500 GT∙ OS : Microsoft Windows XP
実験システムでは部分球形状調理容器として、容器の口の直径 36cm、容器の深さ 10cm の中華鍋を想定している。また、固体群を炒飯と想定する。調理容器内の固体群はテクスチャマッピング
により、調理容器は適切に値を設定したモデリングデータによって描画する。本実験システムで、体験者は Wii リモコンを操作することで調理容器を傾けることができ、容器内の固体群を動かすことができる。図 4.1 に実験の様子を示す。図 4.2 に、容器内固体群の挙動の様子を示す。図 4.2の左が従来の多角柱形状調理容器であり、右が本手法の部分球形状調理容器である。変形曲面の形状の違いによって、容器の傾きによる固体群挙動に違いが出ていることがわかる。図 4.3 に、部
分球形状調理容器内の固体群が傾斜によって変形する様子を示す。傾けた容器を静かに水平に戻した時、部分球の傾斜によって固体群が重力の分力を受け、容器中央方向に滑り落ちる様子が再現出来ている。

4.2

処理速度についての実験

この実験では、システムにおけるハイトフィールドの格子数と、描画更新速度 (FPS) の関係を調べた。実験中の操作を人間が行うと処理速度が異なるため、あらかじめ操作データを記録して

第 4 章 実験

18

図 4.1: 実験の様子

おき、その入力データを用いて実験を行った。結果を表 4.1 に示す。描画更新速度は小数点以下を四捨五入した値である。
表 4.1: 処理速度についての実験結果
格子数

FPS(平均)

317
529
901
1373

1563
1264
748
620

予備調査の結果、容器内のハイトフィールドの格子数は 317 点で固体群挙動が自然に感じられるとの評価が得られている。317 点よりも多い格子数を用いた時の処理速度の結果は、固体群量を増やしたり、複数の容器を使用することを考慮したものである。一般的に対話操作システムには

10〜12FPS 程度の処理速度が必要だと言われている。表 4.1 より、対話操作を行うのに十分な処
理速度であり、他のシステムとの併用も可能であると言える。

第 4 章 実験

19

図 4.2: 容器内固体群の挙動（左：多角柱形状調理容器、右：部分球形状調理容器）

4.3

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

本手法の操作システムによる部分球調理容器内の固体群挙動の自然さを評価するために、実際に本システムを体験してもらい、簡単な質問とアンケートを行った。まずシステムの概要と操作方法を説明し、部分球容器内の固体群挙動の自然さを 7 段階で評価してもらう。
自然さの目安は「評価 1」ならば「全く自然に感じられない」、「評価 4」ならば「VR システムとしての実用に耐えうる程度」、「評価 7」ならば「現実と同じように感じられる」、とした。なお、
描画頂点数は 529 と設定した。図 4.4 に実験の結果を示す。図の横軸は評価の点数、縦軸は人数である。平均値は 4.875 となり、「VR システムとしての実用に耐えうる程度」である 4 を越えている。これにより、部分球調理容器内の自然な固体群挙動を再現できていると言える。
アンケートによって、「固体群と容器の形状を表せている」、「固体群が部分球容器の形状に沿って動いている感じがする」という積極的な意見が得られた。また体験者のうちの数人に従来の多第 4 章 実験

20

図 4.3: 部分球容器内固体群の様子

角柱調理容器と本手法の部分球調理容器の固体群挙動を体験し、比べてもらったところ、「それぞれの容器形状に応じた固体群挙動が表現出来ている」という意見が得られた。しかし、「容器の縁での固体群の形状に違和感がある」という消極的な意見も得られた。また、容器を振り上げ、容器内の固体群を舞い上がらせようとする体験者が多かった。よって、変形曲面形状の拡張や、部
分球調理容器における固体群の上下動の実現などが今後の課題とする。

第 4 章 実験

21

（人数）
8
7
6
5
4
3
2
1
0

1

2

3

4

5

図 4.4: 実験の結果

6

7

（評価点）

22

第5章

むすび

本研究では従来の固体群操作モデルでは考慮していない丸みを帯びた調理容器による操作を実現することを目的とし、調理容器の形状を多角柱から部分球へ拡張した。容器形状も、固体群と同様に格子を基準としたハイトフィールドにより表現し、容器内の固体群の絶対的な位置を決定することで対話操作を可能としている。部分球容器の形状が固体群挙動に影響することを再現するため、従来の容器操作による外力に加え、容器内の局所的な傾斜を固体群が受ける外力の計算に取り入れた。また、固体群の変形には半楕円体形状の変形曲面を適用することで、固体群が容器内の一部にある程度集まる様子を表し、部分球容器内の固体群の様子を再現した。
今後の課題として、更なる容器形状の拡張を行うことが挙げられる。底部が複雑な形状（複数の平面および曲面によって構成される形状）の容器を扱うことによって、操作性・リアリティの向上が見込める。また、「バーチャルお料理教室」の「盛り付け」などの料理手順再現への応用も可能となる。他には、固体群の「広がり具合」を考慮することが挙げられる。固体群重心位置にどれだけ体積が集まっているかを考慮し、生成する変形曲面形状を変化することで、使用者に更なる臨場感を与えることができる。
本研究の目的は調理における一連の調理工程すべてを再現できる調理学習システムの構築である。将来的には現在研究中の「調理」の他に、
「準備」、
「加工」、
「盛り付け」といった操作も行えるように研究を進めていきたい。

23

謝辞
本研究を進めるにあたって, 日頃から多大な御尽力をいただき, ご指導を賜った名古屋工業大学
舟橋健司 准教授に心から感謝致します．また, 本研究に対してご検討, ご協力頂きました名古屋工業大学 山本大介

助教, 名古屋工業大学 伊藤宏隆

助教に心から感謝致します．また, 本研究に対して御討論, 御協力いただきました本学中村研究室の皆様ならびに中部大学 岩堀研究室の皆様に深く感謝致します. 最後に, 本研究に多大なご協力を頂いた舟橋研究室諸氏に心から感謝
致します.

24

参考文献
[1] 舘日章.”バーチャルリアリティの基礎 1 人工現実感の基礎”、2000[2] 向井信彦、西村律郎、小杉信.”手術シミュレータ向け出血表現の高速化手法” 日本バーチャル
リアリティ学会論文誌 Vol.11、No.3 pp.371-376、2006[3] 瀬戸崎典夫、森田裕介、武田仰.”ニーズ調査に基づいた多視点型 VR 教材の開発と授業実践”
日本バーチャルリアリティ学会論文誌 Vol.11、No.4 pp.537-544、2006[4] 任天堂株式会社 Wii
http://www.nintendo.co.jp[5] 株式会社スクウェア・エニックス クッキングママ
http://www.square-enix.com/jp/archive/wii_cookmama/[6] 加藤史洋、三武裕玄、長谷川晶一:

体験型料理シミュレータ , 日本バーチャルリアリティ学会第 15 回大会講演論文集, 2D2-2(DVD-ROM), 2010.

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

1E2-1 (2008.9、奈良先端科学技術大学院大学)[8] Onoue, K., and Nishita, T: Virtual Sandbox , In: Proc. of the 11th Paciﬁc Graphics,pp.252259, 2003.
[9] Stora D., Agliati P.O., Cani M.P., Neyret F., and Gascuel, J.D:

Animating lavaﬂows , In:

Proc. of the Graphics Interface, pp.203-210, 1999
[10] 森井敦士, 上垣内翔太, 山本大介, 舟橋健司:”VR 調理学習システムのための存在確率に基づ
く粒子による固体群の上下動の表現”, 日本バーチャルリアリティ学会論文誌, Vol.16, No.4,

pp.539-549, 2011.12