「インタラクション，99」 平成11年3月

グラフィックスライブラリヘの3次元音場生成ライブラリの融合
永 山

悟 小 池 英 樹

電気通信大学大学院情報システム学研究科

Email：SatOru，koike◎vogue．is・ueC・aC・Jp
3次元グラフィックスによる仮想空間において，より現実感を表現するためには3次元音場の利用が必要である．しかし実際に3次元音場を利用する場合，別々に用意されているグラフィックス作成のライブラリと3次元昔場生成のライブラリを使わなければならず．簡単には作成することができない．近年
VRMLにおいてこれらを同時に利用できるようになり，今まで3次元音を利用した仮想空間をなかなか作成できなかったものが用意に作成できるようになった．しかしこの3次元音は簡易的なものであり，より現実的な昔とはいえない．そこで本研究では，3次元グラフィックスライブラリと3次元音場生成のライブラリを融合した．作成したライブラリを用いることでより現実感の得られる仮想空間の構築が可能になる．

Integrating3−DSoundLibraryintoGraphicsLibrary
SATORU NAGAYAMA andHIDEKIKoIKE
GraduateSchoolofInformationSystems
UniversityofElectro−Communications
rIbmakearealisticvirtualworld，3−Dsoundcapabilityisgettingmoreimportant・However，

programswith3−Dsoundtendtobecomplexsincegraphicslibra・ryand3−Dsoundlibraryexistindependently・Thispaperproposedabasicframeworktbr呈ntegrating3−Dsoundlibraryandgraphicsli−
brarylnSCenegraPhAPI．Programmerscanaddrealistic3−Dsoundjustbyaddinga3D−SOundnodetothescenegraphwhichisusedもorenderthescene・の試みがなされている．

1。は じ めにこのように仮想現実感を表現するために多くの研究がなされているが，この2つを同時利用して仮想空間を作成するようなものはそれほど多くはない．この理由の1
つに，3次元ダラウィックスと3次元音場生成のライブラリが別々に用意されているためと考える．例えば，仮想空間にオブジェクトを措き，そのオブジェクトの位置今日，仮想現実感は多くの分野に利用されている．宇宙開発や軍用機開発，遠隔ロボットの制御のような高い技術を必要とする分野の補助システムとしての高度な仮想現実感から，アミューズメントやアートのような身近にあるようなものまで様々である．またグラフィックス

ライブラリの普及に伴い，いままで専門の技術者によって作成されていた仮想空間を，3次元グラフィックスを3次元音場生成のために必要な位置情報などのパラメー用いて誰にでも作成することができるようになった．

タを計算する部分が別々に行われるなどして面倒であ

これらの仮想空間をより現実的にするためには，3次元音場を利用することが重要である．3次元音場生成のための研究も多く行われている．原音場の物理特性を比る．

較的多数のスピーカを用いて模倣する考え方に基づく音ている．VRMLでは，後述するシーングラフにSollnd

場再生技術1）2）3）や，受聴者の耳入力信号を原音場でのノードとAlldioClipノードの2つのノードを，オブジェ■ から音を出力したい場合，オブジェクトの描画の部分とこれに対し近年VRML9）において，3次元グラフィッ
クスと3次元音を同時に利用できるようにサポートし収録時に得られた耳入力信号に一致させる考えに基づくクトを描画するノードの子供にすることで，VRMLで音場再生技術4）5）など様々な手法による3次元音場生成

作成した仮想空間に3次元音を埋め込むことができる．

−73−

○

ここに3次元音を出力するノードをリンクする

4・…・ 1ll⑳触；◎◎㊨◎＼、 ＿ ＿ ＿ ＿ ＿ ＿＿ ＿ ＿ ＿ − ＿ふ3D−Soundnode
図2 音ノードの概念

ノCo［or Shape Transfate／

このオブジェクトから 音を鴫らしたい

図1 シーングラフにcolorノードで指定された色でshapeノードの図形が描画される．次にGro11PCに移り，回転移動したあとしかしVRMLで利用できる3次元音は，強弱をつけるにshapeノードの図形が描画され終了する．

ことで音の移動感を持たせる疑似的なものであり，現実

シーングラフは，現在3次元グラフィックスを作成す的な3次元音を生成することはできない．

るための手法として一般化しつつある．そこでこのシー

そこで本研究では，3次元グラフィックスライブラングラフを拡張して3次元音を利用できるように設計をリと真の3次元音場生成ライブラリを融合すること行った．

で，仮想空間内に3次元音場を生成できるライブラ

2．2 3D−Soundノードの概念

リの作成を行った．3次元音場生成装置は後述する

前節で述べたシーングラフに対して音が利用できる

RolandRSS−1011）を用いる．そのとき，できるだけ容易に仮想空間に3次元音場を生成するために，VRMLように設計する場合，独自のSo11ndノードを作成することが考えられる．そのSo11ndノードを作成するときのようにシーングラフの概念を用いて構成し，Soundに，次のことを考慮に入れることでより使いやすいノーノードを作成することで実現した．

ドになると考える．

本論文では，2章ではグラフィックスライブラリと3● Sollndノードを音を鳴らしたいオブジェクトの存

次元音場生成ライブラリを融合するための基本方針を述在するGro11pノードにつなぐだけで音が鳴るよう

べ，3章では両ライブラリの融合の説明をし，簡単なプにする．図2にその概念を示す．So11ndノードをログラム例を示す．4章ではVRMLと今回作成したラ作成するときに位置やオブジェクトの情報をユーザ

イブラリとの簡単な比較を行った結果について述べ，5が指定するのではなく，作成されるシーングラフか

草では本ライブラリで作成したアプリケーシ．ヨンを簡単らそ？音源に対する位置情報や対象オブジェクトをに説明する．最後に6章で課題を述べる．

認識し，3次元音場が生成できるようにする．

● 簡便さのため，できるだけ少ないノード数で3次元

2．基本方針音場生成のプログラミングができるようにする．

2．1 シーングラフ● RSS−10での3次元音場生成にはさまざまな値を設前述したVRMLやOpenInventorlO）において用いら定し，デバイスに送信しなければならない．この設れている手法で，Shape，Material，Translate，Scale，定をプログラム中に行うのは非常に面倒である．そRotate，Gro11Pのようなグラフィックスオブジェ〆トこで，できるだけ簡単た≠ラマイスの設定か行えるよを各々ノードとして表現し，このノードを弔いて階層的うにする．

なグラフ（ツリー）構造を構成する．この構成された階・ユーザが構築したシ∵ングラフで用いているSo11Ild

層構造をシーングラフと呼ぶ．そしてシーンの描画時にノード以外からも3次元音が出力できるようにす

このシーングラフを先行走査（深さ優先順走査）し，そる．の順に描画作業が行われる．図1のシーングラフでは，以上の概念をもとに作成したノードについて次章で説明

G；o11pAからGro11PBに移動し，座標移動した位置する．

−74−

HE入DPHONE SPEAKER
図3 システム構成図

ミキサー（血l＝20）

スピーカー

図4 システムの概観

3．実装に関する設定を行うノードである．一方Deviceノード

3．1 システムの構成の方は，先に説明したRolandRSS−10を操作するため本システムのハードウェア構成を図3に示す．また，に必要な各種設定を行うためのノードである．

基本的な装置の説明を以下に示す．

3。2。1 Soundノード● SiliconGraphicsO2（GraphicsWorkstation）

本システムで用いている仮想空間を作成するために用いる．またその作成さジにより昔の出力・停止を制御できる．また出力に使うれた仮想空間で利用する昔の出力や3次元音場生成

チャンネル，そしてプログラム番号もMIDIメッセージのための各パラメータを送信している．

で命令することで指定可能である．チャンネルとは，使−CPU：MIPSR5000（180MHz）−Memory：64Mbytes

用できるMIDIキーボード数と考えると解りやすい．ま− OS：IRIS Version6．3ある．MIDIを使うときに利用できるチャンネル数は16● RolandS−760（Soundmodule）である．この16個のチャンネルに使いたい音（プログた，プログラム番号というのは出力する音の種類番号で音を出力する装置である．音の出力の命令は02よラム）を割り当てることで利用できる．また，S−760でり行われ，送信されてきたMIDIメッセージをもとは1つのチャンネルに複数の種類の音を割り当てることに制御される．S−760はディジタルサンプラーであができる．以上のことから，音を出力するときに必要とり，実世界の音をサンプリングして音源として利用なる最低限の情報はにのチャンネル（ch弧nel）をこのすることが可能である．

楽器（progfam）に設定し，その楽器のこの音程（mote）● RolandRSS−10（Sollndspaceprocessor）をこれくらいの音量（velocity）で出力したときの音jというものである．そこでchannel，PrOgram，nOte，3次元音場を生成するものである．RSS−10は距離感，方向感による3次元音場生成のほかに，直接音Velocityの指定が必要となる．
ここまでが音の出力に関する説明だが，その昔を出力と壁や床などで反射した反射音もあわせて開くことで，さらなる距離感を得ることができる．また，空するタイミングは，仮想空間内では以下の2つが考えら間内の残響感を出すこともできる．これらにより，れる．

フランジング効果やドップラー効果を実現でき，よ（1）時間により書の出力タイミングが決定り現実的な音場の生成を行うことができる．02よ時計の時報や遮断機の音，鳥の鳴き声や飛行械の音り送信されたMIDIメッセージからシステムの設定のような環境音はこの時間によるタイミングで音のをし，S−760より送信された音を加工し，出力す出力を開始する．
（2）ユーザのマウスイベントに対して音の出力タイミンる．

● RolandM−120（Mixer）

グが決定

各RSS−10で生成された3次元音を合成するミキ

ドアをノックする音やチャイムを押したときの音のサーである．

ような人間が操作することで音が出力されるような

3．2 3D−Soundノードの作成

ものはイベントで音の出力を開始する．

本研究では，3D，Soundノードを2つのノードによ

よって，Soundノ■−ドを作成するときに，この2つり実現する．以下で説明するSoundノードとDeviceの区別がはっきりするように2つの関数を用意して設定ノードがそれである．SollIl（1ノードは，主に音の出力を行うことにした．（1）の時間による出力のタイミング

ー75−3．2．2 Deviceノード

Sound NodeCha川1el
印 Ogr■m⑦

not●Vdo￠和知IITp

MIDl富貴のチャンネル（○−15）
MIDlのプログラム暮号（○−127）
書1（（ト12丁）

音の出力・停止，その他の各種設定は前節に設計した
So11Il（1ノードを用いる．しかし，それはあくまでもサノードの櫨無（4■疇）
この雷茸の1■よ（0．0−1．0）

ウンド・モジューラであるS−760に必要なパラメータでMIDlの■■雷号

虚■■と書簸た＋との比事

r■tlo

血でn汀檜
q忙k¶me仙¶濾あり，3次元音場を生成するRSS−10の情報ではない．

濃★綱蛤鴫■（抄〉

青渾1漬義鴫蘭♯り返し珂■

そこでRSS−10で3次元音場を生成するために必要なパラメータを保持するために作成したのがD（：Vic（1ノード

Device Node㊥である．

両軸
l℃8C仙Ⅶ¶mo

ノード名
書遍の位書
証号の也世舅壬時価delw

ドップラー鋤1

仇巾山肌b鵬OubutOp廿on
Oリーu鮎vd

出力僧号のフォーマット
スピーカー角度出力レベル暮♯書のレベル
クリッピングエリア
廉までの距■
反射計数
反射椙性
隷書堂内の大ささ鼻■時円
熟書生Mの反射樽性
残■瞥の書暮no血NalllO

POddond血伸ICl軸n如

仙柳0如■nCe

rdkdbnM0lor¶01dSl王e

revα甘口nle
W山IC0l8r

rev仙

Devi（：eノードは図5に示すようなパラメータを持つ．
それらは，ドップラー効果，音の出力レベル，床での反射，残響感に関するものである．このノードを設定し，パラメータを送信することで様々な状況を想定した3次元音場を生成できる．

このDeviceノードはRSS−10のデバイス数だけ用意するのではなく，各Sollndノードに1つ用意しなければならない．これは，作成したい音源ごとに，表現した

図5 SoundノードとDeviceノード

い音が微妙に異なるためである．また，自分が生成したい音場を指定のデバイスで変換するのではなく，任意の＝￣

デバイスにより行われるので，どうしてもSo11Il（lノードに1つのDeviceノードは必要となる．そこでDevicc

二‡ノードは図6のように，各SollIldノードにリンクされて利用する．

図6 3Ⅰ）−Sotln（lノードのシンボル

このDeviceノードのパラメータを，プログラム作成中にSolln（lノードを作成した個数分設定を行うのは面倒の取り方は，プログラム起動時を0としたときのスタートタイム（startTime）を設定することで音の出力が開始であり，決して容易な作業ではない．そのため，DeviceノードはSo11Il（lノードを作成したときに，デフォルトされる．設定値単位は秒であるが，小数の値で設定する備に設定されたものが自動的に作成される．

ことでより細かな設定もできる．（2）のマウスによる出Deviceノードは，ユーザによつて自由に設定が変え力のタイミングの取り方は，クリックに対して次のよう● マウスをクリックしたら音が出力するられるように種々の関数を用意してある．しかし，関数を使って設定するには非常に手間がかかる．また音の微妙な設定は，経験による感が必要であり，理想に近い3● マウスがクリックされるごとに音がON／OFFす

次元音を得るまでに各パラメータの設定を繰り返さなけな音の出力の仕方が考えられる．

ればならず，決して簡単に利用できるとはいえない．そこでDeviccノードが作成される際，自動的にデバイス値設定メニューを作成するようにした．このメニューをる● マウスを押している間だけ音を出力する

この3種類の出力法（type）を実現するために，音の出力法を変化させるためのフラグを用意する．

利用することで，プログラム実行時に音を聞きながら好みの昔に設定にできる．さらに，その設定した各Devi（：eまた音には一定の長さがあり，その昔が1度鳴り終ったら終了するような状況ばかりではない．例えば，スーノードのパラメータは，プログラム終了時にデータファパーでは同じコマーシャルが繰り返されているのをよくイルに保存されるので，次からはDevic（モノード甲設定聞く．そこで，このような繰り返しをサポートするために，繰り返しの回数を設定（tiITleS）することにする．まが不要となり，直ちにユーザの理想の音を提供できる．

た，この繰り返しがどのくらいの間隔（cy（：1（汀im（りで行ニューにより行われる．そのため，実際にはこのDevi（：（！

われるのかも設定することになる．この2つのパラメーノードを意識しなくてもプログラミングを行うことがでタの設定で，この音を何秒ごとに何回鳴らすという設定きる．そこで，Soun（1ノードとD（：Vi（：（：ノードを組み合わせられたものを1つの3D−Soundノ」ドと定義す

このように，デバイスに関する設定の大部分はメができる．以上より図5のようなノードを作成した．

る．この3D−SollIl（1ノードのシンボルを図6に示す．

−76−

ドが多い場合，3D−SollIl（1ノードの割り当てられていイベントにより音が出力されるノード群

るオブジェクトの位置とリスナーとの距離，また各3D−So11IL（lノード持つ優先度（iInP）を用いて計算し，出力する音源を選出する．優先度の計算は以下の式で行われる．
よmpor（Je†・＝（dよβねmc（ヱ）2

出力を待たされているノードは待機状態となり，デバイスを割り当てられている3D−Soundノードが出力を終わりデバイスが空き状態になるか，優先度が現在利用中の3D−So11Ildノードを上回るかしたときに出力される．

3．4 環境音の作成
以上までは，音をオブジェクトに対応させて出力することを考えて設計してきたが，オブジェクトとは関係なく音を操作したいときも考えられる．例えば，仮想空間に流れるBGMのようなものである．また実世界においシーングラフに依存しない音が出力されるノード
図7 3D−So11rldノードの出力構造ても，どこから音がしているのか分からないような音が3D＿So11ndノードはシーングラフ作成後，図7のようにノード同士がリンクされる．このとき，ユーザの操作存在する．強風や雨の音などである．これらの音は実体を持たないものであったり，複数の音が混ざりあってできる音である．そして，ユーザが移動をしても音の位置（イベント）により出力される3D−So11ndノードと時間が変わるようなものでもない．

3．3 3次元音場の生成

そこで，シーングラフに依存しない音情報の出力が行により出力のタイミングをとる3D−Sollndノードに分えるように，前節で説明した出力ノードを選別するス類され，2つのリストを作成する．
ユーザのマウス操作で選択されたオブジェクトに対応イッチにあらかじめ3D−Soundノードを持たせた．こした3D−SollIldノードをシーングラフ内から探す際，作成したシーングラフをRootから走査するのは時間がのノードに自由に書き込みを行い，自分の意図したノードを作成できる．例に挙げた雨の音のようなものは，仮かかる．最悪の場合，グラフを最後まで辿らなければな想空間をみるためのカメラの位置とシンクロさせることらない．まだ小さなシーングラフであれば，マウスで選でどこでも同じ音を実現できる．また，このノードり重択されてから，目的の3D−So11ndノードを捜しあて，S＿760とRSS−10にパラメータを送信し，音が実際に出力されるまでの時間差はさほど気にならない．しかしシーングラフが大きなものになると，シーングラフの走査に時間がかかってしまい，出力のタイミングが気に要度を高めに設定しておけば，ユーザがどこに移動しても音を鳴らしておくことができる．
3．5 簡単なプログラム例

では，実際に作成したライブラリで簡単なプログラム
例を示す（図9）．このプログラムは，図10（右）のようなってしまう．そこで，3D−So11ndノードをリストにすることで，このシーングラフの走査を行わないようにしている．さらに2つにリストを分割することで，イベンに，視点の上空をテクスチャーのヘリコブターが旋回するものである．このプログラムで作成されるシーングラ
フは図10（左）である．

ト用の3D−Soundノードの探索が行いやすくしている．

このシーングラフを作成するとき，接続させたいノード同士をaddChil（l（）関数によって接続している．図その3D−SouIl（lノード群から実際に音を出力する作業に移行するために，スイッチを用意した．このスイッ9の26行目のmakeSound（）関数で3D−Soun（lノーチが指している3D−So11Ildノードがデバイスを占有すを切り替えている．このスイッチは利用するRSS−10のドを作成している．この関数の引数は，『ノード名』，『チャンネル番号』，『プログラム番号』，『ノート番号』，『音量』となっている．ここで作成したノードは数だけ用意する必要がある．また，このデバイス数の設定はユーザにより設定することもできるが，基本値は4でヘリコプター音に定義されている）音程60を音量100台を利用するように設定してある．

で出力する』ように設定をした．このノードを，音を出ることになる．このスイッチが切り替わることで出力音『チャンネル1をプログラム・ナンバー126（MIDI音源利用できるデバイス数より出力される3D−S（）11Il（lノー

力したいオブジェクト（テクスチャーのヘリコブター）とー77−

図8 アプリケーションで川いた仮想空間同じGroupノード（Group2）と接続することで（図9のできる3次元音よりも，リアルな3次元音を提供できる27行目），3D−SouIldノードを利用できる．

ことがわかった．

また図9の34〜38行目はアニメーションを行ってい5．アプリケーション例

る箇所であり，reVOllltionノードとrotateノードの回仮想空間内で，視界に入らないオブジェクトの位置を転角度を変化させることで行っている．

4．VRMLのSoundノードと3D−Soundノードの比較判断することは難しく，あちこちさまよってしまうことがある．たとえば，図8（左）のような仮想空間で，ユーザの視野外にあるオブジェクト（ディスプレイ）を探す

この章では，本論文にて説明してきた3次元音場生成場合，ユーザは仮想空間のどのあたりにオブジェクトがライブラリと，シーングラフAPIで疑似的に3次元音存在するのかすぐにはわからない．そこで仮想空間のオを利用可能なVRMLとの簡単な比較実験を行った．比ブジェクトの位置座標から3次元音を出力し，オブジェ

較は目の前を横断する列車音，正面から向かってきて上クトの位置をユーザに知らせる簡単なアプリケーション

昇していくジェット機，そして右上方から左下方へと進を構築した．

むヘリコブターの3つをヘッドホンで聞いてもらい，ど実際に作成したモデルの一部を図8（右）に示す．これは研究室の簡単なモデル（図8（左））であり，机上の各計算機に3D−Soundノードを割り当てている．ユーザはのように移動しているか・臨場感はどうかなどのコメントをもらった．以下にまとめる．

この仮想空間内で計算機を探すとき，一メニューに登録し（1）VRMLで作成したモデル一棟への移動はわかる．しかし上下方向，前後方てあるホスト名を選択することで，その計算機の位置から音を出力することができる．そしてその出力された音を指標とし，その計算機を視野にいれることができる．
今回は簡単なプロトタイプを作成したが，実際に仮想向の移動はわかりにくい．
一 元々のwavファイルの音とさほど変わらない．
− オブジェクトの移動動作を見ながら開くと，ある程度そのように聞こえてくる．

展示室のようなものに適用可能であり，自分のみたい作品の方から音がしてくるようなものが考えられる．ま（2）本ライブラリで作成したモデル

一棟の移動だけでなく，上下・前後方向の移動もた，ただ音を出すだけでもつまらないので，その作品に対する説明などを流しても面白い作品になると考える．

ある程度わかる．
一 美世界で開くような音になっている．

6．課

一 前方の感覚があまりしない．
− オブジェクトの移動動作と合わせると，より臨

題

6．1音源のデバイス数への依存
本研究で用いたRolaIl（lRSS−10はデバイスの性能場感がでた．

グラフィックスとサウンドを融合して実験を行った結

上，移動音源の生成に1台必要である．実際に実現した

果，人間の視覚からの情報により，音の移動感が補間さシステムでは，4台のRSS−10を利用しているので，同れどちらを用いても移動しているようには聞こえる．し時に生成される3次元音は4ケ所と制限されてしまう

しかし，同時に多数の3次元昔を定位させても，同時かし音質は，本ライブラリを用いて作成した音の方が臨場感があり，仮想空間をよりリアルに演出することがでに聞きとることは非常に困難であり，逆に聞きづらい仮きるという結果を得た．以上のことからVRMLで利用想空間となってしまう恐れがある．

−78−

自動簡略化手法，グラフィックスとCAβシンポジ

6．2 描画時間による遅延の考慮

ウム予稿集，Ⅰ）Ⅰ）67−72（1997）．
9）J（？（lHartman，Josie W（汀11C（：kc：Thc VRML

人が画像の描画と音の聞き取りで起こる遅延に対して違和感を持たずにいられる時間は約0．2秒である．しか2・O HaIl（lbook，Ad（lison−Ⅵl−SIcy Pul）lishing

し，より現実的な仮想空間を作成すると，描画するオブCoIflI）aIly・

ジェクト数が増加し，1フレームに対する描画時間が増

10）Josic W（汀neCkc ‥ ThcIIIVentOr M（ヲIltOr，加してしまう．それに伴い音データの送信も送れてしA（l（1ison−WesIcyPlll）1ishingCoInPany．

11）SouIl（1Spacc Proccssor RSS−10取扱説明書，RolaIld．

まい，移動感がうまく表現できなくなってしまう．そこで描画時間を短縮するために，LOD（LevelOfDctail）や井上8）の手法を用いて描画数を削減することで遅延時間を小さくさせる必要がある．
6．3 アプリケーションの実世界への拡張
今回のアプリケーションは，仮想空間内での位置認識の補助を行った．これは実世界にも利用できると考える．そこで今後3次元音を実世界のオブジェクト情報の認識に利用するためのアプリケーションの作成を行いた
い．

7．おわ り に本研究では，3次元グラフィックスライブラリと3次元音場生成のためのライブラリの融合を目指し，シーングラフの拡張を行った．3D−So11ndノードを用いることで容易に仮想空間に3次元音を生成できる．これによって，より現実的な仮想空間を手軽に構築することが可能になる．

参 考 文 献1）E・Mayer，W．BurgtorfandP．Damaske：Anap−
Parat11Sfbrtheelectroacousticalsimulationof

SOundfields．S11bjectiveauditoryeff6ctsatthetransitionbetweencoherenceandincoherence，
Ac祝βま盲cα，15，pp・339−344（1965）．

2）横山健司‥モノラル，ステレオに次ぐ第3の音くオムニサウンド）実測音場データを格納した音場創生機DSP−1，JAS，J．26（8），PP29−36（1986）．
3）八木暫：新しい音場再生DSP，JAS，J．29（4），PPlO−

1畠（1989）．
4）D・Ⅱ・CooperandJ．L．Bauk：Prospectsfor
tranSauralrecording，］．Acousl．Soc．Am，41，PP263−264（1989）．

5）浜田．晴夫：バイノーラル音場再生系について，日本音響学会誌，48，pI）250−257（1992）．

6）大木直人，亀倉龍，阿部圭一，岡田謙一，松下温‥人工現実感を用いた音情報検索，情報処理学会研究
報告，Vol・93，No37IM−11−1，Ⅰ）Ⅰ）1−8（1993）．

7）大木直人，阿部圭一，寺本邦男，岡田謙一，松下
温：VCP：音による仮想空間を用いた情報環境の提案，情報処理学会論文誌，Ⅵ）1．36，No6，pp．1342−1349（1995）．

8）井上正行，小池英樹：フラクタルを用いたシーンのー79−

1：D止st●revolut10n．1Irotate；

vdd血n（htargv．char●■訂gC）（D鮎t●R∝札●Groupl，●Group2．＋translate：／●だ数土甘り

D鮎t●点00r，■hell∝甲ter，●50und；
VGcamera ＋c乱m；

VGught lⅦght；

7：かhlt（訂gC，訂gV，500，500）；

ル3次元グラフィックスの初期化ノ／

8：a3dhlt（1）；／■3次元青嶋の初期化 ●●引数は利用デバイス汝●／9：R∝Iト；m且keGroupO；

10： CiLm＝makePerspectlve（0．0．0．0，1．0，0．0．0．0，0．0，ルカメラの作成／暮暮●／30．0，1．0，1．0．50．0）；

11： addCamera（Root．cazn）；
12：llght・＝makeught（20．0，20．0．20．0，0．GI．LuGm）； ルライトの作成／丑徽t／
13： addlJght（肋t，nght）：
noor−m由紀Sぬ（makenoor（10．0，10．0））；
addC一山d（Root，瓜00r）；
Groupl−m且keGroupO；
revolutIon一暮makeRotatIon（0．0，0．0，1．0．0．0）；8ddCh11d（Groupl，reVOlutlon）；

ハ床面の作成／士徽●／Group2zmakeGroupO；
什amsktetmak魚anskte（0．0．4．0，20．0）；
addCI山d（Group2．transhte）；
rotate7：makeRotatlon（0．0．0．0，l．0．0．0）：
addChAd（Group2，rOtate）；
he皿coptert・m且k血tu托（Phe址cqpter．rgbM）；
addChnd（Group2．hellcopter）；

Sound−makeSoundぐ●heucopterI．，0．125．60．100）；／●ヘリコプターの作成／生魚◆／
ルヘリコプター響作成／畳徽＊／

addCⅢ1d（Group2．Sound）；
addChlld（Groupl．Group2）；
addCⅢ1d（R∝）t，Groupl）；
addWorld（Root）；

31：かM由nI．βOpO；
32：〉

33：GLnoat revdutlohValue，rOtatdVa）ue；

vddIde毎dd）f
ルアニメーションを行う打数■／
revolutlonValue＋−2．0；rOtateValue＋−10．0：
setRotatIon（revolutlon，reVOlutlonVaIue，0．0．1．0．0．0）；
setRotatlon（rotate，rOtateValue，0．0．1，0．0．0）：I

図9 プログラミング例

テクスチャーのヘリコブター

transfation rotate he］icopter Sound

図10 プログラミング例のシーングラフと美行両面−80−