 コンテンツ論文

  

仮想水泳のための対話的な波と水しぶきの表現
舟橋健司

 シド ニー・フェルズ              £½  £¾

                                                        !      
 

 
        "   #   $%                        &                         '    '        '  (                   )      *                         

 +        

     

本論文では、!% 、仮想水泳システムのための海面はじめにバーチャルリアリティ  技術の発展とともに、

における波や水しぶきの表現方法について述べる。液体を扱う学問に流体力学があるが 、計算量が多いためアートやエンターテイメントでも  技術が１つのにリアルタイム処理を行う必要がある対話操作には直表現手段として用いられてきている。我々が現在取り接適用することができない。一方、コンピュータグラ組んでいるアートワーク、

!"# $ %&"'" !% もその１つである。この作品は () 年、!*+ ,"- により行われた  !"# $
!$$" . / がきっかけとなっている。,"- は大西フィックス 01 や  の分野においても流体に関する研究は行われているが ./〜./ 、これらの研究も、主にリアリティの高い 01 を作成することを目的としているために対話操作には向いていない。

筆者はこれまでに、仮想空間における容器による液洋を航海する客船上のプ ールで泳ぐ ことにより、「泳いで大西洋を横断した」。我々の !% では 、仮想水体の対話操作を実現する仮想液体操作モデルを提案し泳システムを構築し 、これを太平洋を横断する飛行機ている .2/〜.)/。しかし 、このモデルでは仮想空間内内に設置し 、「 泳いで太平洋を横断する」ことを目標に液体との干渉を判定すべき仮想の容器を定義し 、容としている。

器と液体との相互作用についてのみ考えているため、ところで、我々人間は３次元世界で生活していると仮想水泳システムへの適用は困難である。そこで、対はいえ、坂道や階段などを利用して３次元の移動をし話操作が可能な２次元波動方程式に基づく波の表現とているだけで、実際には「面の上」に拘束されている。

パーティクルに基づく水しぶきの表現手法について以少々の跳躍はできても、鳥のように飛び回ることはで下で述べる。なお、このモデルはアートワーク !%

きない。ただし 、水の中を除いては、である。プールを第１の目的としたものであり、挙動の厳密な再現をや海の中であれば 、我々人間も道具を使うことなく３主な目的とはしていない。そのため各手法やパラメー次元の移動が可能なのである。高度な仮想水泳システ

タは物理法則を参考にしてはいるが 、経験的、定性的ムが完成されれば 、新たな、そして自由度の高いロコ評価に基づいて決定したものである。

モーション インタフェースとなるであろう。
：名古屋工業大学 情報メデ ィア教育センター
：ブ リティッシュコロンビア大学
：              
：        ! "   #

本論文で述べる表現手法をインプリメントした !%

プロトタイプシステムは、311!%4

5 、6# &"  などに出展された .(/〜. /。

   

日本バーチャルリアリティ学会論文誌

400cm(A+B)/24cm(A+B)/2(A+B)/2(A+B)/24cm
800cm

図BBBBAB領域外部分は前方へ

B

B

B

境界における波の伝播

B

BB



図

メッシュによる表現

B

B

B
泳ぐ方向図

有限サイズの水面による表現



対話操作のためのモデル

水面を後方へ移動

図

海面モデルと波の表現

泳ぎによる波の移動

まず水面を平面として考え、メッシュ状に分割する

図 。各格子間隔は 5" として考える。各格子点は上下方向のみに移動可能とし 、時刻 $ における格子点  の高さを ././ とする。このメッシュの波を考

かし 、対話操作を行うとなると格子ごとに操作を指定え、２次元波動方程式を差分方程式として解く。

する必要があり、困難である。水しぶきの表現も不可

２次元波動方程式を次式に示す。
¾¾¾¾7 ¾  ¾ 8 ¾ 

ここで、9 は波が水面上を伝播する速度であり、座標

:  における波の高さ * の関係を表している。これ
を格子点間隔  で、中心差分で近似することにより、次式を得る。

./. / 8 ; ./. / 8 ./. / ; ;¾7 . 8 /. / 8 . /. /
8./. 8 / 8 ./.
/ 5./. /¾ ¾
ここで簡略化のために、; に対して次式 ¾ ;¾¾7

が成立するように 9 と  を設定すると仮定すること

により、././ に関する漸化式を得る。実際には波の減衰を考慮する必要があるため、次の漸化式に示すように右辺に減衰係数を乗じる。

./. / 8 ; 7

ここで. /. / 8 . 8 /. /
8./.
/ 8 ./. 8 / 
./. / ; は減衰係数で 、 (< に設定する。この手法はゲームなどでも用いられている方法である . /。し能である。

またこの漸化式では 、  の上限値と下限値において値を更新せずにとしておくことにより波の反射も表現可能であるが 、海のように極めて広い範囲を対象とすると、計算時間が非常に増大し対話操作が不可能となる。そこで、泳ぎの進行方向へ )" 、左右に5 " 相当の有限の水面を定義する。さらに、同一サイズの水面を準備し 、図  のように配置する。ここで水面 ! は後述する干渉判定を行い、インタラクションを可能とする領域である。水面 = は全て同一とし 、同じ形状の波となっているものとする。すなわち、いずれか一つの領域について計算を行い、そのコピーを他のの領域にも表示する。

各水面の境界における波の伝播は次のように処理する。まず、水面 ! と = の各格子点の高さの平均を求める。すなわち、水面 ! と = の各格子点の高さをそれぞれ  ./. / と  ./. / で表した場合、平均水面図では「 !8=> 」と表記 の各格子点の高さを  ./. / 7  ./. / 8  ./. /  として求める。実際には境界付近の格子点の計算みのが必要となるとなる。
境界付近の格子点の高さを更新したい水面 ! または= を図の中央に当てはめて考え 、前述の漸化式を拡張して計算することにより、各水面の境界を超えた波の伝播を実現する。例えば水面メッシュのサイズが38  8 の場合、水面 ! の境界格子   の高さ

舟橋・フェルズ

仮想水泳のための対話的な波と水しぶきの表現は以下の式により更新する。

 . /. / 8 ; 7  . /. / 8  . /. /
8  . /. / 8  . /. / 
 . /. / ; 

さらに、泳ぐことにより前方に進む場合には、格子点の高さ情報を後方へ移動し 、領域から出た部分を前方部分に当てはめる処理を行う 図 5。泳ぐ 向きを左右

図に変えた場合にも、人間は水面 ! の中央部分に 、長対話操作用人体モデル辺の方向を向いたままとなるようにする。これらの処理により、少ない計算量で、対話操作の可能な広い海面を表現することができる。

図  により描画される海面は十分な領域となるため、その外側には水面の描画色と同一の色、透明度で平面を描くことにより十分な臨場感を得ることができる。



対話操作による波の生成

前述した水面 ! との対話操作を実現するためには、各格子点の高さに作用を加える必要がある。しかし 、水泳を実現するためには複雑な形状の人間を、水面付図

近に配置する必要がある。この場合、水面メッシュに「穴」を開けることになる。すなわち、水面メッシュのうちの複雑な領域を計算の対象外とする必要があり、描画用モデル 仮 の同時表示

渉 。この場合は不可視となるが 、隣の格子への伝播; い

具体的には、メッシュの形状を変更する等の処理が必により、可視部分へと影響していく。時刻  要となる。しかし 、これをリアルタイムに実現するこずれにおいても直方体に含まれる場合は、格子点の高とは容易ではない。そこでまず、人体のモデルを描画さを用と対話操作用の２つに分けて考える。対話操作用モに波が衝突した場合の反射波の生成と、人体が動くこデルを、図  に示す軸に平行な直方体の集合で表現すとする。この手続きにより、静止している人体とによる波の生成が可能である。

る。腕や脚については、泳ぐときの波や水しぶきの生海には、泳ぎにより発生する波だけでなく、風など成に影響が少ないと判断し上腕と大腿部を省略する。の様々な要因による波もある。そこで、一連の処理ごこれらの直方体は完全に人体と一致するものではなく、水面格子との干渉判定を容易とするために、平行とに次に示す方法により、水面 = に自然な波を発生させる。

左右方向に向いたときに、直方体を軸に平行なまま変 各格子   に対して から  の実数の範囲で乱数 # を発生させる。
 乱数 # が 5((( より大きい値の場合には、次の手順 5 で波を発生させる。
  ./. /  ./. 8 / ./. / の各値に # > 形して表現することも可能である。また、人体の内側を加える。

移動のみを認めるものとする 図 2 、描画用モデルは、説明のための仮表示。腕や脚が前後左右の軸に対して斜めになるような場合に、直方体を２分割して表現することや、前後方向に長い直方体で表された腕や脚がシュに「穴」を開けることなく、以下に示すように一5  . 8 /. /  . /. / および  ./. / ;の各値に # >  を加える。

時的に壁があるとして計算することにより波の反射を

これは波に向かって泳ぐ ことを想定したものであり、にあたる部分は必然的に不可視となるため、水面メッ実現する。これらのモデリングにより、短時間での干渉判定が可能となる。

水面 ! のある格子点に注目した場合、その格子点; において人体対話操作用直方体のいず
れか 以下、直方体 に含まれ 、時刻  で含まれない場合、格子点の高さを 5" 増加させる 干渉 。ある格子点が時刻  ; において直方体に含まれず、時刻 で含まれる場合、格子点の高さを 5" 減少させる 干が時刻 

横長の楕円状の波紋を発生させている。上記手順における #> と #>

はそれぞれ 、およそ  ととなる。システム起動直後はいくつかの波紋が発生するだけであるが 、次第に波が伝播していき、水面 ! も含めて自然な海面が形成されていく。

!

水しぶきの生成と表現

水しぶきの対話操作可能なシミュレーションは極めて困難な問題である。01 の分野ではパーティクルシ   

日本バーチャルリアリティ学会論文誌

四角形パッチの法線ベクトルnnh’
三角形パッチの法線ベクトル

格子点(i+1,j+1)dd

単純な三角形パッチ表示√2d図!
! 

√2dh’

格子点(i,j)図n’√2d法線ベクトルの算出

波と水しぶきの描画処理

水しぶきの描画方法

まず本節で、簡単な水しぶきの描画に関して述べる。

図

各粒子は ?1! 相当の画面を想定し 、 から 2<

周辺水面の簡易表示

ステムが良く用いられている .

/。本システムでも、このパーティクルシステムをベースとし 、単純化したモデルを用いる。まず水しぶきを粒子として扱う。各粒子は干渉しないものとし 、重力と慣性に従い自由落の範囲で発生させた乱数 @ に対し 、小数以下を切り捨てた値 @A を求め、@A ピクセル  @A ピクセルの正方形として B@1C の機能を用いて単純に描画する。

粒子の色を  1 = で指定するときに、17=7 とし 、 を < から  の乱数で設定し 、透明度を   か
 の乱数で設定する。ただし 、１つの粒子データ下するものと定義する。ただし 、微小の乱数により空ら気抵抗によるばらつきを表現している。水しぶきは水に対して１つの正方形描画とせずに、粒子の位置を中に達した場合、粒子を消滅させ、その位置に相当する９個の正方形を描画する。近傍へのオフセットは @面 ! でのみ考慮するものとし 、各粒子が水面下格子点の高さを"

" 増加させる。水面下 " とするのは、水しぶきの表現をそのまま水泡に流用するた
次に、水しぶきの発生について説明する。ある格子  に注目し 、その４近傍の格子の高さの平均  を求める。条件式 ./. /   8   が成り立つ場合、
./. / 7  8  と設定し 、格子   上の時刻  ;での高さの位置を中心に半径 5" の範囲で乱数により座標を決定し 、次式で表される初速度  の粒子とし個の粒子を発生させる。

78  . /. / . 8 /. / 2./.
/ ./. 8 /./. / ./. / ; 5

さらに、前節で述べた人体モデルと水面との干渉 干 においても、水しぶきを発生させる。発生させる位置は格子   上の高さ ./. / を中心とし 、初速度は &  とする。これは 、進行方向と反対方渉とする。この方法により、粒子に関わる計算量を押えながら広がりのある水しぶきを表現する。

!

めである。て、央に８近傍の座標を考え、これらの位置も含めて合計波の描画方法

メッシュで表現された波の描画は、まず各四角形パッチを三角形パッチに２分割し 、それぞれの法線ベクトルの平均を四角形パッチの法線ベクトルとする。各格子における疑似的な法線ベクトルを 、隣接する４つの四角形パッチの法線ベクトルの平均として求め、

B@1C の機能により半透明でスムーズシェーディン
グ表示する 図 <。ただし 、水面 = に対しては４つのセルごとにまとめて考え、それらを２つの三角形パッチに分割し 、表示処理を削減する 図 )。また、水面= に関しては B@1C の機能、デ ィスプレ イリストを利用して描画処理を一旦記憶させておき 、水面 !
を囲むように 5 個の水面 = を描画することにより処理速度を向上する。さらに、これらを囲むように前後左右方向に " ずつ同じ 色と透明度で 、平面を描画する。

向に水しぶきを飛ばすためである。乱数により決定す! !

る発生座標範囲の半径と粒子数は、それぞれ 、干渉対話操作のための十分な処理速度を得られ るようでは "  個、干渉  では 5"

個とする。

描画に関わる処理時間の短縮なモデルとして構築してきたが 、実際にアートワーク水しぶきのリアルタイムでの生成は、先にも述べた

!% へインプ リメントするためには 、さらに空や海ように極めて困難であるため、得られる結果が自然に底、海の生物の表示、３次元位置センサからの泳ぎ情受け入れられるようなモデルを、手続きやパラメータ報の取得など 、様々な処理が必要となり、さらなる高を変更しながら経験的に作成した。

速化が必要となった。そこで実際に各処理に費される

舟橋・フェルズ

仮想水泳のための対話的な波と水しぶきの表現処理時間を解析したところ、以下のような結果が得られた。なお、B や D システム、他の処理に関しては除外している。

入力処理 E シーンの構築 E 実際の描画

7  < E << E 5入力処理：マウスなどによる人体の簡易制御用
さらに、シーンの構築部分の詳細な解析結果は以下の通りである。

粒子の落下 E 波の伝播と対話操作 E 描画の準備

7  E  E )(

描画の準備とは、分割した三角形パッチの法線ベクト

図

対話操作用水面のみの表示

ルを求め、四角形パッチの法線ベクトルを求め、さらに各格子点での疑似法線を求めるための処理と、水面= のディスプレ イリストの作成である。また、水面 =の表示は４つのセルを統合して行っているが 、各格子の疑似法線は全て計算していた。

水面 ! の準備 E 水面 = の準備7

 2 E 25

そこで、まず水面 = の各格子点での疑似法線の算出を必要な格子のみに限定する。また、以下の手順により、簡易的、疑似的に求めたベクトルを四角形パッチの法線とし 各格子の法線を求める。図 ( に示すように 、格子点   を含む１つの四角形パッチについて考える。このとき、図に示されるベクトル  の高さ方向の成分 A は、三角形の相似関係から以下のように求まる。

¼7

¾

./. /際の描画にかかる時間がおよそ２倍になり、システムすなわち、ベクトル  は    ¼  として求まる。たする。ここで、合には  ¼  と7 5" である。また、A がの場

 とする。同様にして四角形パッチのもう１つの対角に位置する格子点の組でもベクトルを求め、これらの和を四角形パッチの法線ベクトルとする。以上の変更により、以下のように処理時間が短縮された。

準備 ! E 準備 = E 準備 !新 E 準備 =新

7  2 E 25 E 5 E  )また全体では以下のようになり、水面全体の表示画することにした。すると、当然のことであるが 、実. 8 /. 8 /だし 、A が負の値となる場合には 図F 程度の処理時間が削減できた。

入力処理 E シーンの構築 E 実際の描画

7  < E 55 E 5

アートワーク !% では、泳いでいるところを鳥ののパフォーマンスが低くなる。そこで、以下の手順により描画を行い、表現に違和感を感じない範囲で精度を低くし 、処理時間を短縮した。

 入力処理 シーンの構築 視点 での描画
5 入力処理 シーンの構築
2 視点  での描画
< 入力処理) シーンの構築( ："

実験および結果

上述のモデルに基づいた仮想水泳の実験システムを視点から見るだけでなく、4,G を利用して泳いでい=+>%#=+ 上で、0 言語、B@1C により構築した。図は、水面 ! と仮の人体描画用モデルにる人間の視点からのシーンも見られるようにする。こよる表示である。図

れらは、他の観客からも見られるようにプロジェクタは、全ての水面と仮の人体である。自然な波や水しぶきが表現されており、また水面ンを作成することを考え、複数のマシンを利用する方! と = との境界も大きな違和感はないことが分かる。
図  は同時に２つの視点からの様子を表示したもの

法もあるが 、今回は１台のマシンで２つのシーンを描である。静止画取得のためにウインド ウ表示としていなどによる表示も行う。同時に複数の視点からのシー日本バーチャルリアリティ学会論文誌

図 

異なる視点からの２画面表示

図 

一つの直方体による干渉るが 、実際には２つのディスプレ イそれぞれに全画面表示を行っている。処理時間に関しては、１画面の場合、%#=+ 15    14* 1= GG G!, で約 5 H@ での描画更新が可能であった。

5& 2 に示す。こちらは C: 上で実行し 、人体各部の位置は % ! ! ２台、８個の子を図センサにより計測している。また、波の音なども付加している。多くの方々に体験してもらい、様々な感想

単純な直方体一つの場合について検証するために 、を頂いた。01 に詳しい方などからは、リアルタイム人体モデルを水面より上方に設置し 、右手をあらわすでこれだけの波や水しぶきの表現ができていることに直方体のみで水面への干渉を行った。図対して良い評価を頂いた。また詳しくない方などから

左 より直方体が水面に干渉すると水しぶきが発生しているこは、特に 01 に関するコメントがない場合もあった。とが確認できる。このとき２回連続で同じ場所に干渉

これは体験型システムのため、そちらに興味がいき、を行っており、図右 からは水しぶきと同時に発生した波紋が２つ広がっているのが確認できる。

また、本手法をインプリメントし、311!%4 56#  "  に出展した !% システムの様

また 01 に関しては特に違和感を感じなかったためと判断できる。

舟橋・フェルズ

#

仮想水泳のための対話的な波と水しぶきの表現

むすび

本論文では 、アートワーク !"# $%"'" !% のために、仮想空間で水泳を実現するための、対話的な操作が可能な波と水しぶきの表現手法について述べた。構築した実験システムでは、泳ぎの動きをする人体のモデルにより対話的に波を生成することが可能である。この波はリアルタイムで伝播していき、既にある波に対して対話的に新たな波を干渉させることも可能である。また、泳ぎにより水しぶきを生成することも可能である。水しぶきは重力と慣性



に従い自由落下し 、新たな波を生成する。

ここで述べた手法は アートワーク !% を第１の目的としたものであり、他の用途に直接適用できるとは限らないが 、目的に応じた改良、パラメータの調整を行うことにより、様々な応用が可能であると考える。

; "($#  4" 3$% ' ! & 4*5*,'6   D  ?!#!2  .2 0# 9( ! )!"$ ?A(5' * $& 9$(3( ?$8$$ )F 0($$ #2*$..   ! " '$H  5 4" 3$ 3! ; "($# ,$#"2% 4DDD &!5-(" * $- $. --#$"! ;!# 7! --5  
.2 0# 9( ! )!"$ "+ 9!$$$2! ?$8$$ 9$(3( ?$8$$ )F 0(5$$ ?A(5' & #2 *$.. 5  ! " '$H 5 =+ "2 !3 > "&!#(/$% *(. !3 4*47  -  @ .  ,(. <" $ ?!$ .
,$#5? ;($# (#$"! !3 <$" ( 3$%' ! " ;! !.## $. ;($#A$"! &!53  
 -- 5 <##$ ? ,+ ,8 >#$( -- !I$"
$. - !/$/#" $#! " 3! 3! $. $.
.  " ("( . -$ "# 2"% &!5-(" * $- ;!#  7! -- 5 4*5*,'6J  

また今後は、他用途への適用も実際に行い、適用可能 5 年  月 ) 日受付範囲、問題点を調査してみたいと思う。さらに物理法則を積極的にとりいれるなどして、汎用的な表現手法へと改良していくことも検討したい。
謝辞
最後に、本研究を進めるにあたり有益な議論を頂き、また様々な経験を与えて下さった !% プロジェクトのメンバー、40

I 606 J=0 の皆さんに感謝致［ 著 者 紹 介］します。
舟橋参考文献     ! " "#$"%& '( #$!  $# )$ *$+ ##  ,$-. "$/# 0#(.
12$ 3! &!-(" * $-% ' ! 4*5*,'6  -- 5  7 &/$  $$8$
) 9!8!2$$
4 :!"$$ $ ;($# (#$"! !3 <$" &( 5" = $ '$"#/$. >$+!( $# !.#%? @!( $# !3 ;($#A$"! $. &!-(" 5
$"! ;!# -- 5 @ B & 7# .$ ;"! $ C!/! &$ # D
6( @ $# !## ,$#5? 0#(.
(#$"!  $ 12$ ; "($# D+ !"%4DDD &*E ;!#  7! --5  @! "$ "$/# 0#(.% ' ! 4**,'6 --  5   舟橋 健司 岩堀 祐之 仮想容器による仮想液体の対話操作モデルと一実現法% 日本バーチャルリアリティ5 
学会論文誌 ;!# 7! -- )F 0($$ 9(F 4$!  ; "($# CG(.
$-(#$"! = * $# $- ;#% ' !
4DDD ;,
 -- 5   )F 0($$ 9(F 4$!  ,- "$"! !3 CG(. ! ; "($# CG(. $-(#$"!%' ! 4&?
 --
5  
 ?A(5' * $ & 9( ! )!"$ 9$(53( ?$8$$ .2 0# )F 0($$ 5
#2 *$..   ! " '$H 

健司 （ 正会員）
年名古屋大学大学院情報工学専攻修了、同年名古屋工業大学情報処理教育センター助手、
年同情報メディア教育センター助手、  年同センター講師、  年同センター助教授、現在に至る。バーチャルリアリティ、コンピュータグラフィックスに関する研究に従事（工学博士）。

シド ニー・フェルズ
年トロント大学コンピュータサイエンス終了、'1 取得、
5年
?, 客員研究員、年よりブリティッシュコロンビア大学助教授。ヒューマン
コンピュータインタラクション、ニューラルネットワーク、インテリジェントエー
ジェント、インタラクティブアートの研究に従事。

日本バーチャルリアリティ学会論文誌

図 図 

' 表示画面、海底   

' 表示画面、夕日図 ' システムの概観