平成19年度

卒業研究論文一般家庭を対象としたVR調理学習システムのための固体群操作モデルの検討

指導教員
舟橋健司 准教授

名古屋工業大学 工学部 情報工学科
平成16年度入学 16115037番

小栗進一郎

ⅰ
目次
1. はじめに1

2. 調理学習システム

3

3. 固体群の表現モデル

5

3.1. モデルの考察にあたって

6

3.1.1. 曲線による近似表現モデル

7

3.1.2. 体積補正

83.1.3. 固体群の表現方法

8

3.2. モデルの全体像

93.3. 変形曲線柱の作成

10

3.3.1. 変形曲線柱を作成する上での前提

11

3.3.2. 固体群を１つの物体と見立てたときの力学

113.3.3. 力学的視点による楕円柱の算出

143.4. 変形曲線柱による変形

15

3.5. 固体群の追加

163.6. 崩れの表現

16

3.7. ノイズによる補正

173.7.1. ノイズの発生条件

173.8. 体積補正

193.9. 最小サイズの制限

20

3.10. 透明度の計算

20

4. 実験
4.1. 入力デバイス
4.1.1. デバイス値とモデルの結合

21
21
22

4.2. 実験システム

24

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

28

ⅱ
4.3.1. 結果

28

4.3.2. 考察

28

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

29

4.4.1. 結果

29

4.4.2. 考察30

5. むすび

31

謝辞

33

参考文献

34

1
1. はじめに
近年，コンピュータグラフィックスやヴァーチャルリアリティの技術の発展が進んでいる[1]．
ヴァーチャルリアリティ(Virtual Reality ：VR)とは，ある「もの」について，実際の形と異なる，もしくは実際には存在しないが，その本質的には同じであるようにその「もの」を表現し，ユーザーの感覚を刺激することでその「もの」を認知・操作できる環境を作り出す技術および体系のことを指す．
VRの応用例として，複合現実(Mixed Reality)やナビゲーション，シミュレーションなどがある．一般
家庭向けの中では，任天堂株式会社の「Wii」[2]等を代表とする「体感ゲーム」といわれる類の一部のゲームや，アップル社[3]の「QuickTime VR」等を用いた美術館のナビゲーションシステム等がある．

たとえば，シミュレーション(模擬実験)では，手術に関するシミュレータ[4][5]や，スポーツに関す
るシミュレータ[6]など，様々なシミュレータの研究・開発がされてきた．シミュレータならば，実物を用いて実験を行うと危険なことや，繰り返し実験するのが困難であること，あるいは非効率なことに対して，安全で効率的・効果的な訓練が可能である．
これらの研究は医療用などの一部の分野ではすでに実用化に向けて進んでいるが，一般家庭に向けてはあまり普及していない．
その原因のひとつが，高価なデバイスやコンピュータを使う点である．一般家庭向けを想定すると，安価なものでも利用できなくてはならない．それにより入力の精度が足りなかったり，そもそも入力の種類が少ない，また高負荷な演算を行うことができない等の制約が加わる．また，一般向けのコンテンツそのものが不足しているという点も挙げられる．

また，近年e-learning用のコンテンツが注目を浴びている．特に一般家庭に普及している例として
任天堂株式会社の「Nintendo DS」[2]がある．このゲーム機はいわゆる「脳トレ」を筆頭に，学習する要素を盛り込んだゲームソフトが大きな話題を呼んでいる．しかし，このハードウェアではさまざ
まなシミュレーションを行うには入出力が足りない．また先述の「Wii」はゲーム元来の娯楽の要素が強い．

一方，当研究室を含めさまざまな研究施設で，仮想物体操作モデルの研究・開発がなされてきている．その範囲は，剛体(固体で変形しないもの)[7]に始まり，弾性体，流体(液体・気体)[8]，固体(変形を認めるもの)や，粘性流体など多岐に渡る．その中で，溶岩流[9]や砂[10]などの固体群

2に関しての研究がある．（本稿では「単一の固体に対して，複数の固体が集まって１つのものであるかのように振る舞う，あるいは扱う」ものを「固体群」と称する．）しかしこれらは，粒子法を用いたモデルであり，そのため計算時間が大きく，一般向けのシミュレータとしては向かない．

そこで本研究では，固体群を，それを構成する複数の部分の集まりとして個々の挙動を基に全体の挙動を決定するのではなく，１つの対象として扱う固体群の対話操作モデルを考案することにより，計算時間の短縮を図る．ただしこのモデルは厳密な挙動を表現することを目的とするのではなく，体験者が「自然である」と感じられる程度のおおまかな挙動を表現することを目的とする．
本モデルの応用範囲は多岐にわたると考えるが，VR技術の一般への普及の現状を鑑み，家庭向けの調理学習用の料理シミュレータ「バーチャルお料理教室」を最初の応用対象として取り上げる．プロの料理人の技術養成を目的とした場合には様々な点において厳密さを追求していく必要があると考えられるが，本システムでは料理の手順などを体を動かして学習することを主目的とした，VR技術によるe-learningシステムの構築を目指す．この場合，固体群（調理器具の中の料理）の表現に求められることは，体験者（学習者）が不自然に感じないこと，リアルタイム処理が可能なこと，そして一般家庭で導入（購入）可能な機器で実現できることである．

本システムの構想の全体像を2章で詳しく述べる．また，固体群の対話操作モデルについては3
章で詳しく述べる．

構築する実験システムでは，一般家庭で導入できることを意識し，実験システムに用いる入力装置として市販のゲームコントローラを利用する．4章では，この実験システムについて，および，実証実験，提案モデルの有用性の検証について述べる．

3
2. 調理学習システム
本研究では，調理学習システムとは料理の手順の学習するためのものとしている．将来的には，台所全体を用意し，食材を洗うところから始め，食材を切る，調理器具に移す，調理する，盛り付けるといった一連の作業をさまざまな料理の調理法に適用し，学習できるコンテンツの作成を目標にしている(図2. 1)．そのためにはすべての工程で，直接もしくは間接的に操作できるものはすべて自然な挙動をリアルタイムに表現できる必要がある．

4
本稿では，このうちの「調理すること」に焦点を当てた．たとえば多数の食材片がひとつの調理器
具(鍋やフライパンなど)の中にに入っている状態である．その食材片を混ぜる等の操作をに表現するためには，多数の固体同士の干渉をすべて計算しなければならない．しかしこれはNP完全な問題なので，事実上不可能である．これに対して，状況にいくつかの制約を加えることでNP完全を回避する手法がある．しかしこの類の手法では制約により自由度が下がる．

ところで，当研究室では液体を粒子・体積ベースで表現するモデルの研究がすでにされている[11]．この手法は，容器に入っている液体を１つの物体として見立て，その形や挙動を体積をベースにして計算・表現したものである．こうすることによって液体の挙動の表現の高速化を図っている．
この考え方を参考に本研究では，容器(調理器具)の中の固体群(食材片の集まり)を１つのものとして見立てることで，高速に計算可能なモデルを提案する．

また本稿では，「調理」の中でも特に，フライパンを想定した容器とその中の炒飯を想定した固体群について，容器をを傾けるもしくは振りよせる動作についての挙動を対象とした(図2. 2)．

5
3. 固体群の表現モデル
本章では，固体群（例えばフライパンの中の食材）に対する対話操作モデル，固体群の挙動のモデルについて述べる．提案モデルは，実験システムにおいてかろうじてリアルタイム処理が可能なモデルであってはならない．なぜならば，「バーチャルお料理教室」システムの構築においては，
固体群の操作に限定せず様々な処理を行う必要がある．そのため，個々の表現モデルにおいて高速な処理が実現されている必要がある．本研究で提案するモデルは，挙動の厳密さではなく，体験者が違和感を感じない自然さと処理の高速さを重要視している．

以下，3.1.に提案モデルの大まかな構想を述べ，また3.2.以降では提案モデル全体についてより具体的に述べる．

6
3.1. モデルの考察にあたって
食材の入った調理器具等に対する操作において，容器を傾けることによって中の固体群をよせる，へら等の器具を用いて物体を押す，これら2つの動作は，どちらも固体群全体にとっては一方向への移動であると考えることができる．
この力の発生源は直線で表現できるが，それが影響を及ぼす範囲と，位置ごとの変化の大きさは計算が必要である．この計算を厳密に行うと固体群を構成する固体一つ一つについて計算が必要になり，計算量が多く，対話操作に向かない．
そこで固体群を固体単位ではなく固体群全体として捉えて，全体にかかる力による変化を曲線で近似表現するモデルを考えた(図3. 1)．この固体群を変形する曲線を，以下では変形曲線と呼ぶ．
以下，実現のための全体の大まかな考察と，提案モデルの実装に適した固体群の表現方法についての考察を述べる．

図 3. 1:提案モデルの大まかな構想（容器の断面図，グレーの部分が固体群）①：このような状況だと，固体群は容器の底面に沿って下に移動するべきである．
②：そこで，●のあたりに曲線を発生させ加算する．
③：さらに，体積が増えてしまっているので全体を下げて元の体積に戻す．
④：これで固体群を少し下に移動することができる．

7
3.1.1. 曲線による近似表現モデル
容器を傾ける，ヘラなどで固体群を押す，という動作においては一方向への力が均一に働くのだから，変形曲線をその向きに均一に並べればよい(図3. 2)．
その変形曲線にはガウス曲線，放物線，半楕円，等が考えられるが，今回は想定している形に近く，幅・高さの変更が容易な半楕円を選んだ．半楕円を均一に並べるので，用いる図形は半楕円柱となる．以下ではこれを変形曲線柱と呼ぶことにする．

図 3. 2:曲線は均一に並べる（傾けた場合）
傾けたときに働く力は容器の全体に均一にかかる．そのため，図 3.1 のような断面を力の向きの垂直方向に容器全体に並べればよい．結果，曲線は柱状になる．

8
3.1.2. 体積補正
変形曲線柱を発生させ続けるだけでは，固体群は無限に増加してしまう．負の向き（発生させた箇所の固体群を減らす）の変形曲線柱を用意することも検討したが，ある程度自然な表現を実現するためには厳密なパラメータ設定が必要とされるため，困難であると判断した．そこで体積を計算して補正することにした．

この研究では，固体群の体積が変化するのは，他から追加したときか，容器から零れたときのみとし，力を加えることで押し縮める等，固体群が質量を保ったまま体積が変化することはないとする．
しかし，変形曲線柱により単純に固体群の挙動を表現すると，固体群の体積が変化してしまう恐れがある．そこで変形曲線柱による固体群の計算においては，全体の形状を決定した後に上下方向に伸縮することにより体積を維持する．この操作を提案モデルでは体積補正と呼ぶことにする(図3. 1－③)．

3.1.3. 固体群の表現方法
固体群を表現するための頂点を，XZ平面に格子状になるように配置した頂点群を用いて，その高さ情報のみを更新できるように定義する．こうすることで個体群全体を
y= f  x , z ｛yが求めたい高さ x,zは頂点のXZ平面上の座標｝といった関数を用いて更新することが可能になる．また，頂点群は容器の上だけでよいので有限個が保障され，格子の間隔を調整することで，処理速度と精度を調整することが可能となる．

以上で，固体群の近似表現についての方針を示した．次に，実験に用いた提案モデルを具体的にを述べる．

9
3.2. モデルの全体像
本研究では固体群操作モデルを図3. 3のように提案する．はじめに調理器具に対する操作を入力し，最後に調理器具内の固体群の様子を描画する．これらの処理を逐次的に行っている．以降
では，各項目についての説明を述べる．

図 3. 3:1 フレーム中の動作の概略

103.3. 変形曲線柱の作成
ここでは変形曲線柱を半楕円柱としているため，以下では半楕円柱を前提として説明する．半楕円柱を定義する変数は，・底面の楕円の長半径
・短半径
・柱の高さ
・３次元空間上での位置
・3次元空間上での向きである．一方，固体群に働く力は主に，・重力 {mg }・容器の底面からの垂直抗力 {N 1}・容器の側面からの垂直抗力 {N 2 }・容器との摩擦力 { f }・固体同士の摩擦力(図3. 4を含め本研究では省略．詳細は3.3.1. を参照．)
である．(図3. 4)

図 3. 4:固体群に働く力（容器の断面図）

これらの力が固体群に働いた結果を上の変数を用いて表現するために，作成する楕円柱の変数を以下のように定義した．

11
3.3.1. 変形曲線柱を作成する上での前提
まず前提として，半楕円柱の形の特徴を活かすために，作成する変形曲線柱は，あらかじめ容器の底面に接しているように定義する．こうすることで，変数のうちの「３次元空間上での位置(3変数)」を「2次元平面上での位置(2変数)」に，「3次元空間上での向き(2変数)」を「2次元平面上での向き(1変数)」に簡略化できる．
また，固体同士の摩擦力は，これが最も処理時間を要する箇所の１つであるために，これを近似するのがこのモデルの最大の目的である．固体同士の摩擦力についての計算は行わずに，これを変形曲線柱により固体群全体の挙動として表現する．
これらの前提を踏まえて，固体群を1つの物体と見立てて固体群に働く力から変形曲線柱を計算する方法を考察する．

3.3.2. 固体群を１つの物体と見立てたときの力学
容器を傾けた時に固体群に働く力を図示すると図3. 4のようになる．このとき，固体群の運動方
程式は式(3.1.)のようになる．
N 1−m g cos θ=0m g sinθ −N 2 − f =ma― (3.1.)式(3.1.)より，
N 1=m g cos θ 

― (3.2.)となる．また， f は摩擦力なので動摩擦係数 μ' と静止摩擦係数 μ を用いて，{

f = μ ' N 1  a≠0
f =m g sin θ− N 2が成立する．

 a=0

ただしf ≤ μ N 1 ― (3.3.)

12
残る未知数は N 2 と a の２つだが，そもそも扱う物体が固体なら，この物体は N 2 によって静止していないとおかしい（このとき a=0 ）．しかし，実際には固体ではなく，固体群なので，この物体は，側面に接した後でもさらに移動する(図3. 5)．

図 3. 5:容器の側面の垂直抗力について（容器の断面図）（左のように側面に接したとしても，すぐには静止せず，右のようにさらに移動してから静止する．）

また，固体群が寄り切った状態で静止しているときは明らかに N 2 が働いているので無視することもできない．仮に N 2 を無視すると，寄り切った状態でも楕円が作成されてしまい，固体群が静止せずにその場で振動してしまう．
そこで， N 2 については力学的な厳密な計算はせずに，以下のように定義した．
・ N 2 の大きさは，容器の側面に接している面積に比例する．
・ N 2 の向きは，接している箇所について重心を求め，その重心から容器の中心への向きと同じとする．
具体的な計算式は以下の通りである．
N 2 は容器の底面に平行なので，高さ y は関与しない，よって2次元ベクトル x , z  で表現できる．まず，固体群を表現する頂点群のうち，容器の側面に接している頂点群の高さの総和をとる．この値は，頂点毎の単位面積をかければ接している側面の面積と等しいため， ∣N 2∣ として用いることができる．
∣N 2∣=∑ y ii∑ : Vertexi が容器の側面に接する頂点すべて i― (3.4.)13
また同様に，高さを単位面積中の質量として用いて，容器の側面に接している頂点についてXZ
平面での重心を求める．容器の中心はこの実験では  x , z =0,0 なのでこの単位ベクトルの逆向き（マイナス）が N 2 の向きである．

N2=−Normalize 
∣N 2∣



∑ xz i ∗y i
i

i

∑ yi



― (3.5.)i

しかし，実際に必要な N 2 は，力がかかっている方向(図3. 4の場合， mgsin θ  )の逆向きの成分のみである(図3. 6)． よって，その力の大きさを ∣N 2 '∣ とおくと，∣N 2 ' ∣=∣N 2∣cos π −φ−ψ ∗C C : 定数  ― (3.6.)が成立する．ただし， φ は， N 2 のXZ平面での角度つまり，

φ=arctan

N 2z

N 2x

― (3.7.)である．また， ψ は，固体群にかかる外力のXZ平面での角度である．

これで固体群に働く力を用意できた．以下ではこの値を用いて，楕円柱の変数を設定するための関数を用意する．

図 3. 6:外力(ma)と垂直抗力(N2)の関係

14
3.3.3. 力学的視点による楕円柱の算出
先に述べたとおり，楕円柱を構成する変数は，短半径，長半径，高さ，位置，向きである．以下，容器の底面に平行な半径を長半径，垂直な半径を短半径と呼ぶ．このモデルでは「底面に平行な半径」 ＞ 「底面に垂直な半径」とは限らないが，便宜上こう呼ぶことにする．

このうち，向きは固体群にかかる合力の向き，つまり容器の傾いている向きに一致させればよい．
また，高さは容器全体に及べばよいので，容器の幅の2倍（定数）とした．

位置については，楕円柱の発生する位置に固体群が集まることになるので，固体群が移動している様子を表現するためには，固体群の集まっている位置から合力の向きにある程度進んだ位置にするのが望ましい．しかし処理速度を考慮すると，固体群が自由に散らばるのに対し，楕円柱はわずかな数しか用意することができない．
そこで固体群の重心にその固体群は集まっていると仮定して，そこから楕円柱の向きに平行に移動した点を楕円柱の中心とした．また移動距離は楕円の長半径に依存させた．

残りの短半径，長半径に先に求めた力の大きさを反映させる．長半径は，移動する質量とともに，移動する距離を決定する要素である．固体群のその個々の加速度は固体群全体の質量が変化しても（粘性や干渉を除けば）一定なので，全体の質量に移動する距離はあまり影響しないと考えられる．以上より，長半径(majorAxis)は式(3.8.)のように算出することにした．
majorAxis = C−∣N 2 '∣ C ≥∣N 2 '∣ , C : 定数 
0 C∣N 2 '∣{― (3.8.)式(3.8.)は固体群の質量に影響せず，また容器の傾きの大きさの影響も少ない．その点を補うために，短半径(minorAxis)は固体群全体の質量や傾きの大きさに影響されやいように式(3.9.)のように算出することにした．

15{

minorAxis =  mg sin θ− f  Volume ∗ C
0 mg sinθ  f 

mg sinθ ≥ f , C :定数 ― (3.9.)楕円柱の高さは体積に合わせて大小するべきである．固体群を立方体としたとき，高さは体積の3乗根である．これを固体群に適用した．しかし，3乗根は計算が難しいので，計算が容易で高速な2乗根に定数を掛けることで近似した．以上を踏まえて，容器の底面に平行な力を用意し，体積の平方根と定数を掛けることにした．

3.4. 変形曲線柱による変形
本節から3.11.までで実際に固体群を表現する頂点群に，様々な関数を適用して各頂点の高さを更新する．まずは3.3.で用意した楕円柱を，固体群を表現する頂点群に加算する．
任意の頂点について，まず楕円柱との内外判定をするために，楕円柱の中心軸との距離を求める．任意の頂点を P= X , Z  ，中心軸（直線）の方程式を axbzc=0 とすると距離Lは，

L =∣aX bZ c∣ a 2 b2

― (3.10.)となる．次に楕円柱の高さは十分に長く設定してあるので，楕円柱の高さが足りないことはない．よって距離Lが長半径より短ければ，この頂点は楕円柱の中にある．このとき求める高さは，

Y =



1−

2
L
 ∗minorAxis
majorAxis― (3.11.)となる．この値を頂点のYに加えればよい．各頂点にこの関数を適用する．

16
3.5. 固体群の追加
調理において固体群を追加するというのは，他の容器から移し替えるということである．しかし，
本研究では新たなモデルを考案することを主目的に状況を簡単化して考えている．すなわち，調理器具の中に存在する固体群に対する操作に限定しているため，調理器具に固体群を入れる，
あるいは追加する操作は現段階では考慮しないものとする．

なお4章の実験で用いたシステムを構築するにあたり固体群の追加操作が必要になったので，
ボタン操作で容器の中央に一律の半球状の固体群を発生させることにした．つまり各頂点に対して，Y =  R2− X 2−Z 2

 X 2Z 2≤ R2 , R : 球の半径 ― (3.12.)となるYを加算することにした．

3.6. 崩れの表現
固体群は一般にはある程度積み上がったら崩れるものが多い．この現象を表現するために，ある頂点とその近傍の一頂点との高さの差を求めて，その値が閾値より大きければ，２つの頂点の高さを，それらの平均値として再設定する操作を行う．
この処理は図3. 3に示す一連の処理において，１つの頂点に対してのみ行う．つまり，１度に行われるこの処理は局所的なものである．リアルタイムに動作するシステムにおいて，この処理は徐々に全体に広がっていき，自然な「崩れ」を表現する．

17
3.7. ノイズによる補正
半楕円柱のみで固体群を表現すると，出来上がる図形はどうしても滑らかなものになってしまう．
今回の研究で扱うのは液体や粘性流体ではなく固体群なので，これは不自然である．また変形曲
線柱のみにより固体群の挙動を表現すると，例えば図3. 7のような状況では固体群が容器の中央を通らずに反対側に発生してしまう，「ワープ現象」が見受けられた．
これらの不自然さを改善するため，頂点群の高さに微小乱数のノイズを加えることで凹凸を表現した．また変形曲線柱だけでは消えてしまう領域の補間を実現した．

図 3. 7:ワープ現象 （容器の断面図）（Ⅰ→Ⅱと大きく容器を傾けることで，固体群から離れて楕円が作成されることがある．
このとき元の固体群と，新たな楕円による固体群の間に空間ができてしまう．）

3.7.1. ノイズの発生条件
ただし，前述したノイズは常に発生していいものではない．なぜなら，容器や固体群に特に力がかかっていない状態で静止しているにもかかわらず，ノイズによって変形し続けていれば不自然である．また，容器を傾けて固体群を側面に沿うように移動させる場合も，ノイズによってあらぬ所に
固体群を発生させてはいけない．
つまりある頂点にノイズが発生する条件は以下の場合である．

・固体群が静止していない．且つその頂点には固体群が存在する．
・固体群が静止していない．且つ固体群が容器の端から端に移動している．

18
固体群の静止については，3.3.にて使用されている固体群の重心を使用する．重心の変化量が閾値より小さいとき，固体群は静止しているとする．また固体群の存在については，その頂点の高さを見ればよい．これも閾値により判定する．

何をもって「固体群が容器の端から端に移動している」とするか，どうすれば最も無駄なく表現できるかは難しい問題である．しかし，本研究では「完璧な自然さ」ではなく，「不自然でない表現」で良しとしている．
そこでこのモデルでは，「固体群が容器の端から端に移動している」 を「傾いている容器のその容器の中の上の方に固体群が存在する」と定義した．

容器の下の方に固体群が存在していない場合でも，固体群が静止していないので，すぐに変形
曲線柱によって固体群は下に移動する．そして上の方の固体群が無くなったらノイズは必要ないので，この定義で問題ないとした．具体的には以下のようにした(図3. 8)．
①容器の中心を通り，容器の傾きの向きに平行な直線を走査線として用意．
②この走査線を容器の中心から（ワールド空間で言う）上に向かって走査．通った頂点の高さの和を求める．
③この和が閾値より大きければ固体群が存在する．

図 3. 8: 固体群の有無を調べるための走査線（容器を上から見た図）193.8. 体積補正
ここで3.4. から3.6.での加算によって変化してしまった体積を元のあるべき体積に戻す．そのためにまず変形後の体積を計算する．変形後の体積(NowVolume)は頂点の高さを頂点ごとの単位面積の部分体積と取ることができるので，ここではVolume = ∑ VertexY― (3.13.)とする．比較するための本来の体積(ActualVolume)については，提案モデルでは固体群が溢れることを考慮していないので，「追加操作を加算」時に追加分の体積を足していくだけである．この2値を用いて各頂点に，NewVertexY =ActualVolume
VertexY
NowVolume― (3.14.)

この関数を用いる．こうすることで式(3.13)で得られる体積があるべき体積に等しくなるので，全体の形を保ちながら体積を正しくできる．

20
3.9. 最小サイズの制限取り扱う物体が固体群である以上，その固体ひとつには高さの下限がある．この考えをもとに，ある高さ未満のサンプル点については，その高さを隣の点に移動する．こうすることで，液体のように滑らかに拡がることを防ぎ，固体群らしさを表現できる．

3.10. 透明度の計算
この研究で取り扱う固体群が半透明になることはあまりない．しかし固体群を部分的に半透明にすることで，その固体群の視覚的な密度を下げることができる．そもそも固体群の高さが低いところ
は，底が全く見えないほどまんべんなく固体が存在していると考えるよりも，ある程度固体がまばらで底が見える状態とする方が自然である．
ただし 0=完全な透明 ， 1=完全な不透明  に対

そこで各頂点のα値（透明度） 0≤α≤1
して，{C∗VertexY

α =1

VertexY 

1VertexY ≥ 
C

1

C

C : 定数 となる関数を用いてα値を算出し，半透明表示を行う．

― (3.16.)

21
4. 実験
この研究は，一般向けの調理学習システムを目標にしている．そのためこのシステムは，安価な入力デバイスで利用可能あり，且つ高速な処理速度，十分に自然な挙動が要求される．
そこで本実験では，入力デバイスとして任天堂のWiiリモコンを利用することとし，これを用いて処理速度と挙動の自然さの2方面について実証実験を行った．

4.1. 入力デバイス
今回の実験では入力デバイスとして任天堂のWiiリモコン(図4. 1)を採用した．
この研究では，最終目標が一般向けの調理学習システムであることから，デバイスを特定せずに利用できるシステムを想定している．そのため今回の実験では比較的安価で，それほど精度の高くないものが望ましい．以上の理由によりデバイスを決定した．
なお，Wiiリモコンでは，モーションセンサーによるWiiリモコンに働く力の大きさと角度（向き・傾き）の取得と，IRセンサー(赤外線カメラ)による3次元空間上での位置の取得が可能である．
ただし，今回の実験では，よりデバイスの変更に関して融通を利かせるために，IRセンサーは使用せず，モーションセンサーのみを用いている．

22
4.1.1. デバイス値とモデルの結合
モーションセンサーで取得できるのは，このデバイスに働いているX軸方向，Y軸方向，Z軸方向の加速度の大きさである．軸の定義は図4. 1を参照とする．このモーションセンサー単体で一意に取得できる回転角は，取得値をそれぞれMotionX, MotionY, MotionZとするとX軸回転 ：θ x =arcsin  MotionY 
Z軸回転 ：θ z =arctan 

MotionZ
MotionX−ππθ x  22

−π θ z ≤π }― (4.1.)

である．Y軸回転は計算できない．

しかし，式(4.1.)はデバイスにかかっている力が重力のみという前提が必要であり，横に振るなどの外力を加えると，式(4.1.)ではデバイスが傾いたと判断されてしまう．
外力を受けたとき，式(4.1.)によって容器が傾くのはおかしいが，容器の上の固体群が，容器が傾いたかのように移動するのは正しい(図4. 2)．

図 4. 2:固体群が同じように変形する例(容器の断面図)

23
そこで外力を受けたとき，つまりデバイスにかかっている力が重力より大きいとき，固体群は加速していると判断する．つまり，

 MotionX 2MotionY 2MotionZ 2g― (4.2.)が成り立つとき固体群は加速しているとする．

なお，傾きと加速が同時に変化しているとき，それらを一意に求めることはモーションセンサー単体ではできない(図4. 3)．そこでこの実験で行える操作は，・デバイスをその場で傾ける・デバイスを傾けずに移動するに限定した．

たとえば，図 4. 3 ①のように傾けずに横に加速している場合と，図 4. 3 ②のように傾けながら上に加速している場合で同じ入力の組み合わせが存在する．今回の実験用システムでは強制的に図 4. 3 ①に固定した．

24
4.2. 実験システム
3章で述べた提案モデルと，4.1.で述べたデバイスを用いた実験用システムを作成した(図4. 4)．
なお，調理器具はフライパン，調理対象は炒飯，を想定して作成した． なお，この実験用システ
ムではレンダリングにDirectXを用いている．また陰についてはSmooth Shadingを用いている．

この実験では以下の構成のコンピュータを用いた．
CPU : Intel(R) Core 2 Duo E6300 1.86GHz
MEM : 1,024MB
GPU : ATI Radeon X1300 pro
OS : Microsoft Windows Vista Business

この構成は平成20年1月現在，一般向けに販売されているコンピュータの中ではミドルレンジと呼ばれる構成であり，一般向けの調理学習システムを目標にしているこの研究の実験には適していると言える．

作成したシステムを用いて提案モデルの挙動を確認した(図4. 4-図4. 8)．図4. 6は図4. 5から追加操作を行った結果である．追加操作では半球を加算しているだけなので，図4. 6から崩れの表現ができていることが確認できる．また図4. 7は固体群を容器の側面を沿わすように動かした図であり，図4. 8は固体群が容器の端から端へ移動している図である．これらからノイズの発生の違いが確認できた．

25

26

図 4. 6:実験に用いたシステム②

27

図 4. 8:実験に用いたシステム④28
4.3. 処理速度についての実験
この実験では，実際にシステムを実行してリソースの使用状況とFPS(Frame Per Second：1秒間に何枚の画像を表示しているかを示す)を調べた．また，システム内のパラメータのうち，[固体群の頂点数]はシステムの処理速度に大きく影響すると考えられるので，この値についてもまとめた．なお，固体群を表現する頂点群のサンプリング間隔を調整することで，頂点数を増減した．また，対話操作のシステムとして利用する場合，一般的に，10-12FPS以上必要であると言われている．そこ
でFPSは最大20で制御し，それより大きくはならないように設定した．

4.3.1. 結果
表4. 1の通りとなった．
ただし，頂点群が格子状なのにもかかわらず頂点数が２乗した値でないのは，容器が円形なためである．

表4. 1:処理速度についての実験結果
頂点数

平均CPU使用率(%)

FPS

331

1%未満

20

919

29

20

1519

60

20

2107

88

19

4.3.2. 考察
数人にアンケートを取ったところ，頂点数=331で固体群の最小単位の小ささや固体群全体の自然な表現に十分であるという感想が得られた．このときのCPU使用率はわずか1%程度なので，十分に快適な動作が保障されたと言える．また頂点数を増やしていくとほぼ比例してCPU使用率が上がっていき，頂点数=2107でFPS20を割り込んだ．以上から，たとえば将来的にこのシステムの容器の面積を4倍にしたり，頂点群の格子の間隔を1/2にする程度ならば，問題なく快適に動作するといえる．

29
4.4. 挙動の自然さについての実験
次に，自然さを評価するために，20人に本システムを体験してもらって簡単な質問とアンケートを行った．具体的には以下の通りである．

実験Ⅰ：まず，被験者にシステムの操作方法のみを説明する．そして実際に体験してもらう．少し時間が経ったところで「調理器具の中に入っているのは何ですか」と質問した．
実験Ⅱ：実験Ⅰの後さらに体験してもらい，「調理システムとして挙動がどの程度自然か」を7段階評価でアンケートを取った．被験者には「評価１」＝まったく役に立たない，「評価５」＝システムとしての実用に耐えれる程度，「評価７」＝限りなく自然に近い，と補足説明をした．
実験Ⅲ：Ⅱの後で，「では，将来的に「舞い上がる」，「溢れる」などの容器の外での挙動が実装された場合，先の評価は上がるか」と再びアンケートをとった．

4.4.1. 結果
実験Ⅰでは，被験者全員が一度の誤答もなく，「炒飯」と正答した．これにより，少なくとも炒飯の挙動を知っている人には，炒飯以外のものに誤認することはほとんどないことが分かった．
実験Ⅱおよび実験Ⅲは図4. 9の通りである．実験Ⅱの平均値は約4.04となり，「システムとしての実用に耐えれる程度」である5に届かなかった．これに対して実験Ⅲの平均値は約5.15となり，こちらは5を超える結果となった．なおⅡとⅢで評価が変わらないと回答したのは20人中4人だった．

30
14
12
10

人数

8
実験Ⅱ
実験Ⅲ

6
4
2
0
1

2

3

4

5

6

7

評価値

4.4.2. 考察
そもそも，この提案モデルは固体群を表現する頂点群が容器の上にしか存在しないため，容器の外に固体群を移動する「溢れる」や「舞い上がる」といった挙動には別途処理が必要である．この実験では，提案モデルのみを評価するためにそれらを省いた．その結果，実験Ⅱではそれらの挙動の不自然さが際立って，システム全体としての評価を下げていると考えられる．
以上から，この提案モデルは，モデルの及ばない範囲まで含めて全体を考慮に入れると，調理学習システムとしては不十分だが，提案モデルが対象としている調理器具の内部のみでならば，システムとして実用に耐えれる程度には自然な挙動であると言える．

31
5. むすび本研究では，調理学習システム「バーチャルお料理教室」の一環として，仮想的な調理器具を介しての仮想的な固体群（食材片の集まり）の挙動を高速に表現するモデルを提案した．また，仮想空間で直感的に調理器具を操作することで，その中の固体群を間接的に操作できる実験シス
テムを作成した．
提案したモデルはある固体群について，その固体１つ１つの干渉を計算するのではなく，固体群全体を１つのものと見立て，一元的に処理することによって高速な処理を実現している．おおま
かな移動は変形曲線柱によって表現しているが，さらに微少量のノイズによる凹凸の表現と移動時の細かな部分の表現や，近隣平均化による崩れの表現，液体に見えないようにの最小サイズの制限，α値による密度の低い部分の表現などを施すことで，より食材片「らしさ」を追及した．

今回の実験では，一般家庭への普及を想定して，現在普及しつつある，加速度センサーを搭載
した入力デバイスを対象としている．しかし提案モデルと入力デバイスは直接は影響しない構造なので，将来的に一般に普及している入力デバイスが移り変わってもシステム部分の変更のみで対応できる．また，システム内の調理器具および食材片については，今回の実験ではそれぞれ，フライパン，炒飯に限定したが，他の調理器具や食材片についてもモデリングデータやテクスチャ，
一部の内部パラメータの変更のみで切り替えできるようになっている．なお，提案モデルはパラメー
タ調整のみで固体群だけでなく液体，粘性流体を表現することも可能である．そのため「炒飯を炒める」に限らず，さまざまなシチュエーションにデータの追加のみで対応できる．

この実験では提案モデルの挙動の自然さについて作成したシステムを用いて評価実験を行った．
その結果，容器の内部に限定すれば提案モデルは調理学習システムとして十分に自然であるとの結果がでた．
一方，この提案モデルが固体群の挙動を再現しきれていないのも事実である．その中でも大きなものとして，4.4.1.でも述べたとおり，固体群は調理器具から「溢れる」ことや調理器具を振り上げることで「舞い上がる」ことができない．これらは調理器具の内側にしか固体群を表現する頂点群がこのモデルにはないため別の表現が必要である．

今後の課題としては，先に述べた「溢れる」，「舞い上がる」などの固体群の挙動の自然さについて向上する必要がある．．またこの提案モデルは固体群の量が少ないときに不自然に移動速度が32
速く「ワープ」してしまう現象や，固体群を構成する粒が大きいときに不自然さが際立ってしまうな
ど特殊な状況での脆弱性が認められている．これらについても改良が必要である．そして最後になるが，この研究の目標は調理の行程全体を網羅する学習システムである．そのため今回焦点を当てた「調理する」の他にも，「材料を切る」「盛り付ける」等の行程が残っている．特に「盛り付ける」
は今回取り上げた固体群からさらに食材片の位置を考慮する必要があり，その算出方法に関する研究なども進めていきたい．

33
謝辞

本研究をすすめるにあたって，日頃から多大な御尽力をいただき,御指導を賜りました名古屋工業大学 舟橋健司 准教授，伊藤宏隆 助教に心から感謝致します．
また,本研究に対して御討論，御協力いただきました伊藤研究室の皆様ならびに中部大学
岩堀研究室の皆様に深く感謝致します．
さらに実験にご協力いただきました友人の皆様に深く感謝いたします．

34
参考文献
[1] 野村淳二，澤田一哉．ソフトコンピューティングシリーズ10 バーチャルリアリティ．朝倉書店，
1997．

[2] 任天堂株式会社 Wii，Nintendo DS， http://www.nintendo.co.jp/index.html[3] アップル インコーポレイテッド QuickTime VR， http://www.apple.com/jp/[4] 向井信彦, 西村律郎, 小杉信. 手術シミュレータ向け出血表現の高速化手法. 日本バーチャル
リアリティ学会論文誌 Vol. 11, No. 3, pp.371-376, 2006

[5] 橋本宣慶，加藤秀雄，松井恭平，石田洋子，王亮. シミュレータによる歯石除去の訓練－シミュ
レータの構築と人工歯石除去による訓練効果の検討－. 日本バーチャルリアリティ学会論文誌
Vol. 11, No. 4, pp.453-458, 2006

[6] 荻野雅敏，瀧剛志，大塚勝也，北島章雄，宮崎慎也，長谷川純一. ボブスレー競技のための体感型トレーニングシミュレータの構築. 日本バーチャルリアリティ学会論文誌 Vol. 11, No. 4, pp.
469-478, 2006

[7] 増永良文，川嶋斉，水野佳政， ブロックワールドデータベースシステムのプロトタイピング， 情報処理学会論文誌，Vol.40, No.3 pp. 91-104, 1999

[8] 田中正幸，越塚誠一， 粒子法を用いた赤血球の変形シミュレーション， 日本流体力学会誌，
Vol.26, No.1, pp. 49-55, 2007

[9] 小田康行，村岡一信，千葉 則茂，溶岩流の粒子ベース・ビジュアルシミュレーション，芸術科
学会論文誌，Vol.2, No.1, pp.51-60, 2003[10] 尾上耕一，西田友是， 柔らかい地面上の物体による痕跡の高速表示法， 画像電子学会誌，Vol.32, No.4, pp. 328-335, 2003

35[11]舟橋健司，岩堀祐之，仮想容器による仮想液体の対話操作モデルと一実現法，日本バーチャ
ルリアリティ学会論文誌，Vol.5，No.4，pp.1087-1094，2000