新しく追加されたノード
Sony_BindSharedNode
マルチユーザ機能の提供の為に新たに追加。以下の目的に使用する。- クライアント間で共有する3Dオブジェクトを生成し、
- リモートから呼ばれるeventInのScriptノードと3Dオブジェクトを結び付ける
PROTO Sony_BindSharedNode [ field SFNode transformNode NULL field SFNode scriptNode NULL ] { }このノードは、Community Place以外のVRML2.0ブラウザが無事このノードを無視 出来るよう、何も拡張されないように定義されている。 Community Placeブラウザでは、このノードは特別な扱いを受けている。 このノードのtransformNodeフィールドを指すtransformノードは、クライアント間で 共有できるように作られる。 言い換えると、このフィールドで指されていないノードは共有されない、となる。 TransformNodeフィールドは指される必要が有り、その値は必ずTransformノード でなくてはならない。
scriptNodeフィールドの値がNULLでない場合、その値はScriptノードでなくては ならない。ScriptノードのeventInはリモートから呼ぶことができる。 第1引数にtransformNodeフィールドの中で示されるTransformノードとなる対象を、 第2引数にScriptノード中に現れるEventIn名となるeventIn名を、それぞれ指す ことで、sendApplSpecific()やsendApplSpecificWithDist()といったJavaのAPIを 使うことができる。
これらのAPIの3番目の引数は、ScriptノードのeventInの値になるであろう文字列値 である。eventInはこれらのAPIの使用にあたって値を受ける為にSFString型でなくて はならない。
例として、次のようになる。
PROTO Sony_BindSharedNode [ field SFNode transformNode NULL field SFNode scriptNode NULL ] { } DEF T1 Transform { ... } DEF S1 Script { eventIn SFString IN1 eventIn SFString IN2 ... } Sony_BindSharedNode { transformNode USE T1 scriptNode USE S1 }
Sony_Appearance
元のAppearanceノードに、次の2つの新しいフィールドを追加することで拡張して いる。- backface: Shapeを表すポリゴンが背面を持つか否かを示す。
- description: Shapeに張り付けられるコメント。Community Placeブラウザ では、Shapeにマウスカーソルを入れることで、このコメントを見ることができる。
PROTO Sony_Appearance [ field SFBool backface FALSE exposedField SFString description "" exposedField SFNode material NULL exposedField SFNode texture NULL exposedField SFNode textureTransform NULL ] { Appearance { material IS material texture IS texture textureTransform IS textureTransform } }
Sony_WorldInfo
ワールドに関するCommunity Placeブラウザ独自の属性を記述する。 このノードのPrototype定義は次のようになる。PROTO Sony_WorldInfo [ field MFString archive [] field SFInt32 armLength -1 field SFBool avatarRoom FALSE field SFInt32 backgroundImageType 0 field SFString cpBureau "" field SFString cpBureauWLS "" field SFBool collisionSound TRUE field SFBool collisionDisplay TRUE exposedField SFBool turnButtonAvailable TRUE exposedField SFBool floatButtonAvailable TRUE exposedField SFBool homeButtonAvailable TRUE field SFInt32 soundDeviceRate 22050 field SFInt32 soundDeviceBits 8 ]{}
archive
現在のVRMLファイル中で使われているファイルを含むアーカイブを指す。 これらのファイルは、解凍され、このVRMLファイルの置かれた場所からの相対パスで 参照できるよう、適当なローカルディレクトリに置かれる。 この方法は、コンテンツのロード中の接続を不要とする。 他のブラウザとの互換性の為、これらのファイルは適当なリモートディレクトリに 置かれるべきである。 アーカイブ自身は、LHAを用いて生成し、VRMLファイルと同じディレクトリに 置くべきである。例)
Sony_WorldInfo { archive ["foo.lzh"] }
armLength
ワールド中で、あなたの(仮想)腕がどの位の長さを持っているかを示す。 この変数は、その位置であるオブジェクトに触れられるか否かを決める。 (単位はメートル)-1を指定するとどんな遠くのオブジェクトも 触ることが出来る。 例)Sony_WorldInfo { armLength 5 }
avatarRoom
ワールドにアバタルーム(アバタの色を変える)が提供されている場合、この変数を 指定する。TRUEかFALSEのみ指定できる。 TRUEの場合はavtroom.wrlという名前のファイルをVRMLファイルと同じディレクトリ に置くべきである。 avtroom.wrlには、アバタの色を変える機能を供給することが要求される。 例)Sony_WorldInfo { avatarRoom TRUE }
backgroundImageType
ワールドの背景のイメージ形式を指定する。 指定できるのは以下の値。- 0
- VRML2.0仕様通りのbackground texture
- 1
- front-URLテクスチャが水平方向、垂直方向に張られ、 ナビゲーションによってそのテクスチャは移動しない。
- 2
- front-URLテクスチャが水平方向に張られ、ナビゲーションによって そのテクスチャは移動する。
Sony_WorldInfo { backgroundImageType 0 }
cpBureau
そのワールドのビューローのアドレス、ポート番号を指す。 例)Sony_WorldInfo { cpBureau "vsserver.foo.com:5000" } or Sony_WorldInfo { cpBureau "12.23.34.45:5000" }
cpBureauWLS
そのワールドのワールドロケーションサーバのアドレス、ポート番号を指す。 この変数を使う場合、WorldInfo中にtitleを記述しておかなくてはならない。 例)Sony_WorldInfo { cpBureauWLS "vsserver.foo.com:6000" } or Sony_WorldInfo { cpBureauWLS "12.23.34.45:6000" }
collisionSound
そのワールドで壁等にぶつかった場合に、音を出すかどうかを指定する。 TRUEで音を出す。 例)Sony_WorldInfo { collisionSound FALSE }
collisionDisplay
そのワールドで壁等にぶつかった場合に、ブラウザに赤い枠を表示するかどうかを 指定する。TRUEで表示する。 例)Sony_WorldInfo { collisionDisplay FALSE }
turnButtonAvailable、floatButtonAvailable、homeButtonAvailable
ブラウザのターンボタン、フロートボタン、ホームボタンをそれぞれ 有効にするかどうかを指定する。TRUEで有効。 例)Sony_WorldInfo { turnButtonAvailable FALSE floatButtonAvailable FALSE homeButtonAvailable FALSE }
soundDeviceRate、soundeDeviceBits
ブラウザがオープンするサウンドデバイスのパラメータを指定する。 例)Sony_WorldInfo { soundDeviceRate 22050 soundDeviceBits 8 }