「インタラクション，98」 平成10年3月

バーチャル環境における3次元オブジェクト間の動的インタラクションモデル
荒木 義明
慶応義塾大学政策・メディア研究科 〒252藤沢市遠藤5322
EmaiI：ary＠rnag．kei0．aCJp Phone：03−3728−4359Fax：O3−3498−9025

バーチャル環境において3次元オブジェクト同士の動的なインタラクションを記述する「ボディとマグネット」モデルを提案する。ここで述べるインタラクションとは、複数の3次元オブジェクト同士がそれらの形状の接触などにより、一体となって振舞うことである。しかし、3次元マルチユーザバーチャル環境などのオープンシステムではインタラクションを行う3次元オブジェクトが予め定めることが出来ない。そこでのインタラクションを行う3次元オブジェクト候補を決定し、それらを動的に関連づける必要がある。このモデルにより、3次元オブジェクトの属性にあわせてインタラクションの内容を動的に決定する仕組みを記述することができるようになる。

1．はじめにョンとは、複数の3次元オブジェクト同士がそれらの形状の接触などにより、一体となって振舞うことである。このインタラクションの例として、人を表す3次元オブジェクトがその手を使って石をンを実現するこれまでの取組みについて紹介する。第3節では、私たちの提案するボディとマグネットのモデルを解説する。第4節では、動的なインタラクションの記述方法について説明する。
第5節では、モデルのシンタックスを示す。第6節では、実践的なサンプルを用いて記述実験を行う。第7節では結論と今後の表す3次元オブジェクトを握ることや、人を表す3次元オブジェク方向性について議論する。

ト同士の握手などが挙げられる。一般に複数の3次元オブジェ
クト同士のインタラクションを実現するには、キーフレームアニメーションなどによりCGデザイナーが逐一座標を指定するか、2．背景

特殊なケ「スに限定した物理シミュレーションにより座標を生成する試みは、特殊なアプリケーションに限定して行われてきた。

する方法がある。
しかし、複数の3次元オブジェクト同士のインタラクションを実現する状況がオープンシステム［他山仕8現である場合、それらの従来手法だけではインタラクションを実現できない。例えば3次元マルチユーザ・バ「チャル環境では、参加者を表す3次元オブジェクトが参加者の出入りの度に生成消滅し、それらの3次以下では NPSNETHUMAN［Zyda95］、VLNET【Gapin97］、バーチャル環境における3次元オブジェクト間のインタラクシ

これまで動的な3次元オブジェクト間のインタラクションを実現

仙el晦血Box［obdag5】における取組みを紹介する。

NPSNETHUMANは、軍事医療の訓練を目的としたシミ1レーションである。白兵戦などの激戦下での救急治療として、ユー
ザの仮想的な身体を負傷者の仮想的な体を接触させるインタラクションを行う。3次元オブジェクトの関係づけはユTザが仮想環境を体験しているランタイムに行う。関係づけの手法として、

元オブジェクトの属性は参加者の好みの設定によって絶えず変3次元オブジェクトの形状の衝突シミュレーションを利用してい化する。このためインタラクションを行う3次元オブジェクトの候補を決めてそれらを動的に関係づけるとともに、お互いの属性る。しかし衝突シミュレーションでは3次元オブジェクトが増えるたびにの計算暮が爆発的に増え、拡張性に欠ける。またインタにあわせてインタラクションの内容も動的に決定する機構が必要となる。
この論文では、オープンシステムの特徴を持つバーチャル環ラクションを行える3次元オブジェクトの種矧ま人間だけに限定境において3次元オブジェクト同士の動的なインタラクションを記述する「ボディとマグネット」モデルを提案する。このモデルの設計において、以下の二点を考慮した。第一点は、3次元オブ∨川ETは、エージェント技術を応用して仮想的な人間とゲームを行うバーチャル環境である。エージェントを相手にテニスをする際に、テニスボールを表す3次元オブジェクトに仮想的な人ジェクトの種類を人型などの特殊なものに限定せず柔軟な記述間が握るラケットを表す3次元オブジェクトを当てるインタラクシができることである。第二点は、3次元オブジェクト間の動的なインタラクションを用いたコンテンツを従来手法を生かして容易ョンを行う。3次元オブジェクト間の関係づけはユーザが仮想環境を体験しているランタイムに行う。関係づけの手法として、人に作成できることである。

間を表す3次元オブジェクトの仮想的な視覚、・聴覚、触覚を表すしている。

以下第2節では、3次元オブジェクト間の動的なインタラクショセンサーを利用している。衝突判定と比べてそれらのセンサー−73−

では効率的に関係づけが行えるムしかし、インタラクションでき力加減などを表現する。人が石を持つ例では、石の3次元オブる3次元オブジェクトの種類は人間と予め決められた特定のもジェクトから人の3次元オブジェクトヘ熟や振動などの属性を伝えることで人が石の温度やぎらつきを知ること表現できる。のだけに限定している。
栂劇鹿血Boxは、ビジュアルな対話的ソフトウエア開発ツー

33 捷練するボディの指定ルであるInblli夢鵬P由【帖騨Sa帖叫】の3次元版である。

ボディとマグネットめモデルでは、ユーザが仮想環境を体験

血elli辞鵬Boxではユーザがバーチャル環境の作成時に3次元しているランタイムに3次元オブジェクトの関係づけを行う。しかオブジェクト間の関係を定める。3次元オブジェクトはユーザ定し、その関係づけの手法は特殊な3次元オブジェクト間のインタ義でき、特別なものに限定されない。また、3次元オブジェクトラクションをシミュレーションによるのではなく、ユーザによる指の関係づけするためには、ユーザがGUlを利用して3次元オブ定に重ねている。つまりユーザは、ボディの接続に直接に関与ジェクトのスロットと呼ばれるインターフェース同士を結合する。

する「親」側のマグネットと「子ども」側のボディをそれぞれ明示

しかし、3次元オブジェクト間の関係づけをユーザが仮想環境を的ないしは暗示的に指定する必要がある。
この指定は、マグネットおよぴボディを選び11陣によって円故体験しているランタイムに行うことはできない。

リクエストと閂deリクエストに分けられる。Pi故リクエストでは、3．「ボディとマグネット」のモデル
3．1ボディとマグネット「親」側のマグネットを先に、「子ども」側のボディを後に選択する。人が石を拾う例ではRGkリクエストを利用し先にネの手をボディとマグネットのモデルでは、インタラクションを行う3次選んでおくことで、人が能動的に拾うことを表現できる。Ridoリク

元オブジェクトの種類を特殊なものに限定せず、それらを総じてエストでは「子ども」側のボディを先に、「親」側のマグネットを後「ボディ」と呼ぶ。また、ニつのボディを接続するための機能をに選択する。例えば人が座席を指定して車に乗ることを表現で「マグネット」と呼ぶ。ただし、マグネットは、予めそれら二つのきる。この場合、辛が「親」となるボディであり、人が「子ども」とボディのどちらかの属性として定義されている必要がある。

なるボディ、座席がマグネットとなる。人が先に選ばれることで、このモデルの理解を助けるために、3次元オブジェクト同士人が能動的に串の座紺こ座ることを表現できる。の動的なインタラクションを、現実世界における例を用いて説明

4．コンテンツの作成方法

する。例えば、人が石を手に持つことを考える。人と石は別々のものなので、それぞれボディとして捉える。人が石を持つ場合ボディとマグネットのモデルでは、3次元オブジェクト間の動には、石は手の平と密着しており、人が歩いて移動したり上腕を的なインタラクションのコンテンツを従来手法を生かして簡単に振り上げても石は手の平と一体となって動く。また、人は手で触作成できるごとも考慮している。3次元オブジェクト間の静的なイれることで、石の温度やぎらつきなどを知ることができる。このンタラクションの記述から拡張することで、コンテンツを簡単にように手はインタラクションにおいて人のボディと石のボディを作成することができる。そこで、まず3次元オブジェクト間の静接続する重要な役割を果たしているため、ここではその手の能的なインタラクションを記述する音詩としてVRMLを説明し、後力をマグネットとして捉える。そして、このマグネットは人を表すにその記述を拡張する方法を説明する。

ボディの属性である。

4．1VRMLの紀述
VRMLⅣRML9Ⅵとは、インタラクティブ3次元記述音詩の国際32ボディ間の階層関係と通信線鏑

マグネットは、接続をするボディ間に通信経路と階層関係を標準規格である。VRMしでは、複数の3次元オブジェクトの静的与える。

な関係を、階層関係と通僑経路により静的に記述できる。

階層関係は、3次元オブジェクト間士が一体となって振舞うた

VRMLでは3次元オブジェクトをノードの階層的な組み合わめの間合いや、位置の依存関係を表現する。人が石を手に持せとして記述する。ノードの階層を利用すれば同様に3次元オつ例では、石の3次元オブジェクトを人の3次元オブジェクトにブジェクト間の階層性を表現できる。ノードには3次元物体の形おける手の階層下に定義することで、人が歩いて移動したり上状や、座標系、ロジック、ユーザからの入力に感応するセンサ

腕を振り上げても石は手の平と連動して動くことを表現できる。

→などがある。特にその内で座榛系を表すノードは、他のノードマグネットを属性に持つ側のボディを「親」と呼び、他方のボディを含み階層性を表現する。その階層は全体として見ればツリーを「子ども」と呼ぶ。

状の有効グラフを形成する。園1には、五つの丸がノ⊥ドを表し、通信経路は、3次元オブジェクト同士が一体になって振舞う内それらを結ぶ線は静的な階層関係を表している。園の左手がツ容を決めるための属性の交換や、同期した動作のタイミングやリー構造の親側となる。

−74−

㊥ ∴、、i
図3動的な階層関係
図1静的な階層関係
またVRMLでは3次元オブジェクトの挙動をイベント機構によ

次に、図2をもとにして通信経路も備えたVRML記述の拡張り記述する。イベント機構を用いれば同様にして複数の3次元を示す。先ほどと同様にノード0とノード2を分離するが、その際オブジェクト間の「体となった振舞いも表現できる。ノード間でイこれらにまたがるルートも切断する。次にボディおよぴマグネッ

ベントを受け渡しする経路のことをルート（ROUTE）と呼ぷ。ノードトを定義した後、Ma卯etノードCと伽卸ノードBにそれぞれのは他のノードとのイベントを用いた通信のための入出力インタ

切断したルート情報を保管しするノードD及びノードEを定義「フェースを表す「イベントイン」、「イベントアウト」を持つ。図2する。図4には、これらのボディが動的に接続した時の状況を示には、ノード1とノード3の間にルートを持つ例を示す。ルートばした。園4の波線は動的な通信経路としての役割も兼ねており、国中では矢印で表し、央印の先端側のノードの突起はイベント

図2同様にイベントのやり取りができる。つまり図4では、ノードインを表し、矢印の根元側のノードの突起はイベントアウトを表1で発生したイベントは、ノードD、MA騨etノードC、叫ノーす。

ドB、ノードEと通ってノード3へ伝わる。

図2静的な階層関係と通信経路

図4動的な階層関係と通信経路

ヰ2拡張の記述
3次元オブジェクト間の静的な関係のVRML記述をもとにし

5．シンタックスとセマンティックス
5．1叫ノードとMa印鈍ノードて動的な関係を持つ貫己述への拡弓長を示す。ボディおよぴマグネ
ットをVRMLの拡張ノードであるBodyノード、Ma伊虎ノードとしボディを表すためのBdyノード及び、マグネットを表すて導入する。いま、園1が二つの3次元オブジェクトの階層的なMa餅噴ノードを示す。

関係だけをもつ静的な記述であるとし、ノード0とノード2がそれぞれ、オブジェクトを表すノードとする。

コード1放）dyノードのシンタックス

拡張たは以下の三つのステップを踏む。まずノード2をノードBoむl0の階層から切り離してお互いの関係を断ち切る。第ニステツプ
で、それぞれの3次元オブジェクトをボディとして形式化するためにノード0およぴノード2をそれぞれBodyノードAおよぴBの階層下に設定する。第三ステップで、親ボディAにマグネット＃インターフェース型

デー一夕型

罰eld

MFNode l∞ks

帖

罰eld

MFNode magYetS

鮎Id

MFNcde routesW此hParerTt NULL

＃インターフェース型

データ型を定義するために、ノード2が元あった場所にMa卯或ノードC

evenヒ0止SFB001 isChik］

を定義する。図3には、これらのボディが動的に接続したときのev引鷹InSmme 帽que軸￠kUp

eventln
eventlnOVe一正0止状況を示す。園3の波線は動的な階層関係を表しており、園1と同じようにノード2はノード0の子ども階層として機能する。

exposedRek】

インターフエ「ス名SFTime 帽qu軋坤「馴〟Aw町
SFB00l seヒ出血
SFB∞l isBourd

SFBo0l sepa帽bI

Bdyノードには、ボディの属性を定義する三つのフィールド

−75−

佐NULL
NULLがある。l∞kフィールドには、ボディの外見を表す3次元形状

52ヱF駄kリクエストを定義する。ma訂由フィールドには、ボディの属性であるマグ用deリクエストは、始めにボディを確保し、後でマグネットのネットを指定する。指定されたマグネットの本体の定義は、この選択を行い、前者のボディを「子ども」とする動的関係を確立すボディが「親」となった場合に「子ども」のボディを相対位置に配る。つまり、まずあるB叫ノードのs哩鵬イベントインに対し置するためにl∞kフィールド内にある。rOubsW仙Pa帽止フィてTRUE値のイベントを送り、ボディを確保する。そして、あるールドには、このボディが「子ども」となった場合に「親」のボディ

MagnetノードのrequesしhdeOnイベントインに対してイベントをとの観でイベント通信経路を確立するための情報を定義する。

送り、そのマグネットと確保しておいたボディとを関係づける。

このフィールドには、後で述べるダミーノードと呼ばれるノードを関係を解除する場合には、先のMagTetノードの帽queStrjdeO庁設定する。

イベントインに対してイベントを送る。

コード2M昭Ietノードのシンタックス

5．3ボディ同の脚関体と脚立ユーザによる任意のMa伊成ノードと任意のBdyノードヘのMa伊成‡＃インターフェース型

デーータ型

属性名

覇eld

SFNode body止

イベント送信によって、接続するボディを指定できる。こゐため

NULL

罰otd

MFNode route州軌Chik】NULL

最悪の事態では、あるボディがそれ自身を「子ども」とする階層＃インターフェース型

データ型

関係を持つ接続を要求できる。もしも全ての指定を要求通りに

ever止0止SFBool i＄Pa帽nヒ○∨馴血nSFnme l℃qu母乳再deOn

eve鵬nSF¶mo 帽que如deO庁

ラフの中の幾つかのボディの位置を決定出来ない園トb、か七

ever止IneverrtOul

SFBooI set絨rdのような構造をもつ可能性がある。このような事態を防ぐため、

SFBooL isBound

常に園5−aのようなツリー構造を保つような制約を受ける。

インターフェ」ス名

許可すれば、ボディの階層関係が成す全体のグラフは、そのグ

l

Ma訓戒ノードには、マグネットの属性を定義する二つフィールドがある。bdyフィールドにはそのマグネットを属性に持つボディを指定する。m血d仰山Ch旧作nフィールドには、このマグネットを属性に持つボディが「親」となった場合にその「子ども」のボディとの間でイベント通借経路を確立するための情報を定義（わツリー構造する。このフィールドには、後で述べるダミーノードを設定する。

5．2接続するボディの指定
接続するボディの指定方法は、円ckリクエストと悶deリクエス
トの二種類があり、それぞれめ方法に対してMa卵tノードおよぴBdyノードは異なるイベントインを持つ。これらのイベントインに対して、センサーノ⊥ドからのイベントを送借することでユ伽）セミラティス構造ーザによる指定を記述できる。センサーノードには、ユ⊥ザが3次元形状に触れたことに感応するTouchSensorノードや3次元形状がユーザの目に見える場所へ現れたことに感応する
Ⅵsibi町Sensorノードなどがあり、使い分けによってユーザによる指定を明示的にも暗示的なものとしても記述できる。
52．1Pbkリクエスト
Pi￠kリクエストでは、始めにマグネットを確保し、その後でボ00ルー・プ構造

ディの選択を行い、後者のボディを「子ども」とする動的関係の図5動的階層関係が卿ツリー形状如と不正な形状㈲k）確立を要求する。つまり、あるMa伊成ノードのset劇ndイベントインに対してTRUE値のイベントを送り、そのマグネウトを確保接続するボディの指定が上の制約条件を満たす場合、そのする。そして、あるBodyノ」ドの帽queStPickUpイベントインにボディ間で階層関係と通信経路が動的に確立する。

対してイベントを送り、そのボディと確保していたマグネットとを階層関係の確立では、「子ども」となったボディが「親」となっ関係づける。その関係を解消する場合には、先のB叫ノードたボディの属性の指定されたマグネットの座標系の下に瞬時にの帽quO相加刷町イベントインに対してイベントを送る。

配置される。このとき、そのMa伊或ノードのisPare止イベントアー76−

ウトの値がTRUEをなり、「子ども」のボディを表すB卸ノード

手を表すマグネットを先に確保することで人が道具を能動的にのisChik】イベントアウトの値がTRUEとなる。これらのイベント持つことを表現する。
6．1．23次元オブジェクトの静的な関係の記述

アウトは動的関係に利用されていないときにはFALSEの値を示す。また「子ども」となったボディが瞬時に移動することを防ぐ

人と道具を表す参次元オブジェクト同士の静的な関係に対す

ためにはそのBodyノードのseparateフィールドをTRUEに設るVRML記述をコード4に、そのツリ「表現を図4に示す。この定する。このフィールドを巧みに利用して「子ども」のボディのス記述では7つの名前の付いたノードがある。HUMANというノームーズな移動を記述できるだろう。

ドは皿回しをする人を表すノードである。HUMANの階層下にはLEFTHANDというノードがあり、皿回しをする人の左手を表す。

通借路の確立では、子どものボディと親側のマグネットを介してイベントのやり取りが可能となる。Ma訂成ノードのLEFTHANDの階層下にはST（CKというノードがあり、皿回し道

routesWhhChik］フィールドとBodyノードのrT）uteSW仇ParerAフィ

具の柄の部分が左手に握られていることを表す。さらにSTICKールドに同型のダミーノードが設定されている場合のみ通信線の階層下にはPIA¶三というノードがあり柄の上に皿が配置さ路を確立する。このダミーノードはユーザ定義ノードであるが、れていることを表す。この他、A川Mというノードは、左手や皿を必ず血○ぬ00Sフィールドを持ち、そのフィールドの値はそのダ動かす力の源を表し、SmRTというノードは柄の部分をユーザミーノードのイクスポーズドフィールドの名前を設定する。通信が触たことの検知する。またSTOPというノードは皿の部分を線路が確立した場合、ダミーノードのイクスポーズドフィールド

ユーザが触たことの検知する。コード4の20，21行目のルートにの保持している値が一方で変われば、対応する他方のダミーノより、ユーザが柄を触れることが切っ掛けで皿回しを開始し、皿ードのイクスポ「ズドフィールドも連動して変わることにより、イを触ることが切っ掛けで皿回しを止めるために力の源へ命令伝ベントのやり取りを実現する。ダミーノ⊥ドはユーザ定義ノード達を行う。また22，23行目のルートによって力の源から左手やであり、そのサンプルのシンタックスをコード3に示す。

皿が動く力の伝達を行う。

コード3あるダミーノードのシンタックス
コーード4VRMLによる皿回しの静的記述Oqatespinningwl）

mmmyI＃インターフェース型 データ型

鵬

机作WLV28LJ一指龍

mpF℃1℃㌧ト山Ⅷ山元［…］…．

MFS血g i血ぬ00S 阿 ． げ ］＃インターフェース聖 子・ヰ型

m剛Ⅷm ん1h鵬1［…］‥‥D肝トlJMANH血はI

インターフェ「ス名exposedFiekJ SFBool aexposedFiek］ SFnme b

TRUEk肘七山【D臼＝ mND ¶都dむmtdlid甘l［Olnlh，I山 厨田山 I
DEF S¶0く 触mldl払廿l［Ilnli℃‡山 血h仰1● I

DEF START TdJdlSw O

8．記述剰験

DEF ANIM Anh血 廿．
DEF RJ汀E 愉（c川d甘l［

実践的なサンプルを用いて「ボディとマグネット」のモデルのDEF STOPlhJdlSqlSq O
hlねl山 圃 I

記述実験を行う。コンテンツの作成手順は以下の四つのステッ］Iプを踏む。まずコンテンツをボディとマグネットを用いて形式化］I】Iする。第ニステツプではコンテンツを3次元オブジェクトの静的〕な関係としてVRMLで記述する。第三ステップで4．2節の手順に

I

ROUlモ ミ汀肺m血dTh℃ 1■O ANIM．或曲

従ってVRML記述を拡張し、複数のボディを記述する。最後のROUrTE STOP加LdlTh℃ TO AN
ROU汀E ANIM′曲d TO U；打I≠NDJ血1

ステップでは、接続するボディをユーザが指定する操作手順をROU汀E AN】M∫0触馳 ¶） R伽1

記述する。以下では実践的なサンプルとして「皿回し」と「シーソー」の2つのコンテンツを示す。

6．1皿回しの記述
肌1ボディとマグネットを甲いた形式化

皿回しとは、人が手を使って棒を操り、棒の先端に乗せた皿を回すパフォーマンスである。ここでは、皿回しをする人を親のボディとし、皿回し道具を子どものボディとする。また、人がその右手を使って道具を持つことができる能力をマグネットとする。

また痩続するボディを指衰するには、恥kリクエストにより人の図6 皿回しにおける抑な関休の記述−77−

6．1．3手術による梯12345678910日ほ柑141516171819幻21223糾25訪㌘28怨刀31

コード6皿回し道具を表すボディの記述伽￠kw㊥B咄ノードと帖吋画ノードを用いてコード4のVRML記述を拡張し、2つのボディを記述する。皿回しを行う人を表すボディをコード5へ、皿回し道具のボディをコード6へ別々に定義する。
皿回しをする人を表すボディを記述するには、HUMANというノードとその階層をコード4から調達してBdyノードの属性として定義する。またSTICKというノードをMa伊成ノードで置換する。その置換した際に切断したルートの情報を保管するために、そのMa伊虎ノードの属性にmmmyノードを定義して仮接続する。Dummyノードのi血ぬ00Sフィールドには・，A州Mbほ打梱Nロ，という値を設定する。
コード5皿回しをする人を表すボディの記述仏Ⅴ血Wd）

机／RMLV2βu憫mpR）「℃ 叫［…．］●●．‥DEF BODY月 叫（kk［D肝 M ¶血m（d沌加訂l【l鵬ⅦI山 或bkw†一I

DEF STARr T山dlScrw O
D日＝ ANIM ん1h血 廿
DEF M Tね1血mI血肋〔旺F mP Td血論1∝r O
ln飢e‡血 陶ぬⅥ打ナI】）】I］I

DEFPtC帽Eu汀Vi血相お1紺・（IDEFBFqiAKREQEUSTFhhlkySquq（立e444I］

血d仰臥触1t【P托汀O th血叩【f撼d MFSレhglnぬ ● AN仙触丸ヱF作中ND叩dF撼dS円地blANIM山上口Ⅲ叫D OOlO川
DEF Dし舶Mり：D肌叩川］

Il覆）UTE STA灯油

TO ANl帆曲
TO ANl帆輌∝）けrE ANtM∫地肌ROUlモ ANIMr血RぬTO DしNMYfANIMtoLEFTHAND託）爪 STO叫ROUTE 円C順QUEST8n血町皿 B聞u三STe】仕丁h℃

TO 円伽

1℃l日0輌叫

TO BODYjl帽中軸町

8．1耳動的な関係づけの記述
ユーザが接続するボディを指定する操作手順を円￠kリクエス

トとして定める。まずユーザはナビゲーションにより人を表す3次元オブジェクトの背後に回り、その手を表すマグネットを明示的に確保する。次にユーザはナビゲーションで周りを見渡し皿回し道具を表す3次元オブジキクトがユーザの視敷こ入ることで、そのボディを暗示的に選択し、円￠kリクエストを行う。また、ユー
ザがナビゲーションにより皿回し道具からある」定距離はなれることで、この接続を暗示的に解消する。
これらの操作手順を記述するために以下のセンサーノードを設置した。コード5のPICKBINDというセンサーノードはユーザ
皿回し道具を表すボディを記述するには、STICKというノードと人を表す3次元オブジェクトとの間の距離を監視する。コード6とその階層をコード4から調達し、Bdyノードの属性として定義のP）CKREQUESTというセンサーノードは皿回し道具を表す3する。調達の際に切断されたルートの情報を保管するために、次元オブジェクトが描画されたことを検知する。

そのMa訓戒ノードの属性にmmmyノードを定義して仮接続す

BREAKREQUESTというセンサーノードはユTザと皿回し道具る。そのダミーノードのi鵬e血esフィールドにはコード5のダミを表す3次元オブジェクトとの間の距離を監視する。

ーノードのi血e鹿鮎フィールドと同じ値である 州Mbumげ，という値を設定する。

回7 皿回しにおける動的な関係の記述−78一

いうノードは、シーソーの板や乗って入り二人を動かす力の源

6．1．5 他のオブジェクトとの動的関係を表し、DOWN＿BUNNYというノードはバニ・Tガールをユーザがこの皿回しは、マグネットの指定位置とダミーノードによる通触たことを検知する。またDOWN＿BLUEGUYというノードは青い信経路を正しく設定すれば、体格の異なる人を表す3次元オブ男をユーザが触たことを検知する。これらのノードを結ぶ国中ジェクトにも適用できる。図8には、異なる複数の三次元オブジの矢印が表すルートにより、コンテンツは以下のように動作すェクトに適用した例を示す。

る。もしユーザがバニーガールを触れば板はバニーガールを下げるように回転する。また逆にユーザが青い男を触るとが下に下がるように板は青い男を下げるように回転する。

図8異なる複数の人型3次元オブジェクトによる仙回し62シーソーの例

囲10 シーソーにおける鮒な関係の記述

6．2．3手術による梯6．2．1ギアイとマグネットを用いた形財ヒシーソーとは、ニ人で同一のシーソー台に乗り体重を移動しB咄ノードとMa伊虎ノードを利用してVRMLの記述を拡張し、合いながら台を回転し、お互いの高さを逆転する遊びである。こ三つのボディを記述する。シーソーの板を表すボディを記述す

こでは、シーソー台とそれに乗る二人をそれぞれボディで表す。

るには、B壷というノードとその階層を園10から調達しP叫ノ

またシーソー台の両端に人が乗れることを二つのマグネットでードの属性として定義する。またその階層下のBUNNYや表す。用doリクエストにより乗る人を表すボディを先に確保する

BLU巨βUYというノードをそれぞれMa伊成ノードを置換する。こことで、人が能動的にシーソー台に乗ることを表現できる。の置換で切断されたルートの情報を保管するために、そのMa伊成ノードの属性にダミーノードを定義して仮接続する。一方、バニーガールや青い男を表すボディを記述するには、BUNNYやBLU巨βUYという名のノードとその階層を園10から調達し、それぞれB叫ノードの属性として定義する。調達時に切断したルートの情報を保管するためにダミーノードを定義し仮接続する。土れらの三つのボディが接続する場合に園10にように通信経路を復旧するために、これらのダミーノードはすぺて同型のものを利用している。図11には、それら三つのボディが接続した場合の園を示す。

岡9 二人でシーーソーーせ酒くインタラクションを再現した例

82A動的な関係づけの記述

6．23次元アニメーション哺的関係の記述

ユーザが接続するボディを指定する操作手順を同血リクエス

トとして定める。まず、ユーザがナビゲーションにより人を表す

人と道具を表すオブジェクト同士の静的な関係のVRMほ己述のツリー表現を国10に示す。この記述には7つの名前のつい3次元オブジェクトの背後につき、そのボディを明示的に確保すたノードがある。BARというノードはシーソーの板を表すノードる。次にユーザがポインティングデ／くイスによりシーソーを表すである。BARの階層下にはLEFTR旧EおよぴRIGHTR［DEとい3次元オブジェクトの片方の端に触れることで、それを表すマグうノードがあり、それぞれシーソーで漕ぐ二人が乗る場所を表ネットを明示的に選択し、用由リクエストを行う。また、ユーザがす。さらにLEFTR［DEの階層下にはBUNNYというノ⊥ドがあり、ナビゲーションによりシーソーから十分遠くはなれことで、このシーソーの左端にバニーガールが乗っていることを表す。また接続を暗示的に解消する。

RIGHTRIDEの階層下にはBLUE＿GUYというノードがあり、シーこれらの操作手順を記述するために、以下のセンサーノードを設置した。図7のRtD∈BiNDノというセンサーノードはユーザとソーの右端に青い男が乗っていることを表す。この他、ANIMと−79−人を表す3次元オブジェクトとの聞の距離を監視する。また、

ヤツチボール、ジャグリングのように3次元オブジェクトの位置

R［DE＿LEFTおよぴR旧ERJGHTというセンサーノードはユーザの依存関係が動的に変わり、シミュレーションの要素を多分にがポインティングデバイスを用いてシーソーの端に触れたこと含む。

を検知する。RIDEOFFというセンサーノードはユーザとシーソ

三つ目は、3次元マルチユーザ・バーチャル環境におけるをーを表す3次元オブジェクトとの間の距離を監視する。

3次元オブジェクト廟の動的インタラクションによる効果を研究する。この論文ではローカルなバーチャル環境を想定して行ったが、筆者によるVSPLUS払raki98］を用いることで、VRMLによるローカルなバーチャル環境の記述を3次元マルチユーザリく−チャル環境へ拡張できる。3次元マルチユーザ・バーチャル環境では、8次元オブジェクト同士のインタラクションを参加者の化身であるアバタの能動的な行為として位置づけることで、アバタを用いた参加者間の非言語コミュニケーションと捉えることができる。今後「ボディとマグネット」を拡張することで非言語コミュニケションにまつわる概念を記述することができると考えられる。例えば、皿回し道具のボディの履歴を管理し、特定の参加者が操るボディだけが利用できるように認証を行うことで「所有」の概念を表すことができるだろう。またシーソーのように複数の参加者が操るボディが協調するための制約は「集団規則」の概念を表すことができるだろう。
図11シーソーにおける動的な関係の記述

7．まとめ

糊

［Zyda95］Zyda．Mk）hae］．P峨DiNklR，P蛾Shirby，Barhm，P8ulardFaby．

この論文では、バーチャル環境における3次元オブジェクト間の動的なインタラクションを記述する「ボディとマグネット」のモJohnS． NPSNET−HUMAN：1nserti喝廿旧HunⅥnintotbNctworkdSynthe鮎デルを提案した。VRMLを用いてボディとマグネットのシンタック

EIWirtnrmnt， h廿旧Pnx光娼dhgsoftb13thDISWorkshq）．18−22SepterTber

スを導入し、皿回しやシーソーなどの実践的なサンプルを記述

1995，Orlardo．Fb融和叩．103−106．

した。これらの記述を組み合わせて、一つのボディに複数のマ［caph97］capinT．K．．Pandzk）1．S．Nos8rH．Ma伊併慮ThalnⅦnnN．．「malrTWnDq
virtua川urTWReprt）SerTtatkmardComTKJnk）atknhⅥ劇ET NdtworkdVirtuaI

グネットや通信経路のインターフェースを設置することで多才な3次元オブジェクトを記述できる。さらに、それぞれの3次元オブErTVirtnrTVntS ，lEEE ConT）uter Graphk8andAFPlkatkns，Speciall＄8ue

ジェクトの属性に合わせてインタラクションの内容を動的に決定

M此im由iaH砂州町S，Ma陀軸内1997．

する仕組みを記述できるようになる。

【Hev此84］brlHふ触ardPeterdeJon80pqlSysten％Perspe血e＄bm

今後の方向性は、以下の三つが挙げられる。

ArttRciallnte［li騨鱒0．Databases ard PrtpnvTingLanguagps．On Concqptua［

一つ目は、モデルのタクソノミーを増やすことで用途別にインM∝kli喝Sp正昭叩Hoi血bor邑19糾．

タラクションを行う3次元オブジェクトの特殊化を行う。例えば【VRML97】¶℃∨抽戚Roa勒Mod曲唱bn即a伊，

VRMLを用いた人型をした3次元オブジェクトの標準化［鮎mie

httpWvvwwNmt叩ゾSp8C鮎血s∧爪ML97／DIS／，Apr41997・97］を取り入れて、人型の3次元オブジェクトにまつわるインタラ

LAraki98］YoshiakiA帽帖VSPLUS：A川gh−teVeLrTW肘・uSereXten血Ibraryfbr

クションをライブラリ化する。例えば握手のような人型同士のイ

irTte帽血eVRMLworkls．tbaPPurinprtx）OfVRML98sypp＄LlmatMorTtB帽y

ンタラクションや、道具を持ったり椅子に座るのような人型とそ

USA．Fob141998．の環境とのインタラクションが簡単に記嘩できるようになるだろ［Ob血95】岡田教広田中線対括型3次元ソフトウエア構築システム一う。

山由Iti騨止Box−．コンビュ⊥タソフトウエアVd．12．NoA（1995）．押．…

ニつ目は、シbレーションにより生成されるような3次元オブ［N喝aS鵬94］長崎称田中艶シンセティツク・メディア・システムーl血相伊鵬

ジェクト間のインタラクションを動的に行う方法について検討すP∝トコンピュータソフトウエア．Vd．11N0．1（1994）．脾3糾8る。記述実験では従来手法のうちキーフレームアニメーションで［BemiB97］BemkRoehLSp8C仙onfbraStandardVRMLHurTnnOuVersion

記述できるインタラクションを対象としたが、テニスゲームやキⅧh坤ノ／○00．1〟帽血汀bo．ほ弧ハ門ninノ甲0￠JTt鵬 A画ほ柑97．

一80−