VRML2.0におけるSONYの拡張

新しく追加されたノード

SONY_SharedBindingNode

マルチユーザ機能の提供の為に新たに追加。以下の目的に使用する。 このノードのPrototype定義は次のようになる。
    PROTO SONY_SharedBindingNode [
        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_SharedBindingNode [ 
  field SFNode transformNode NULL 
  field SFNode scriptNode NULL
] { }

DEF T1 Transform { ... }
DEF S1 Script {
  eventIn SFString IN1
  eventIn SFString IN2
  ...
}

SONY_SharedBindingNode { transformNode USE T1 scriptNode USE S1 }

SONY_Appearance

元のAppearanceノードに、次の2つの新しいフィールドを追加することで拡張して いる。 定義は次のようになる。
    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
	}
    }

WorldInfo中の変数

以下は、WorldInfo中のinfoフィールドで用いる。 infoフィールドはMFString型であり、WorldInfo中に複数の変数を記述できることに 留意のこと。

VsServer, CPBureau

あるコンテンツのVsServerのアドレス、ポート番号を指す。
例) WorldInfo{info "VsServer: vsserver.foo.com:5000"} or
WorldInfo{info "VsServer: 12.23.34.45:5000"}

ArmLength

world中で、あなたの(仮想)腕がどの位の長さを持っているかを示す。 この変数は、あるオブジェクトに触れるか否かを決める。(単位はメートル)
例)WorldInfo{info "ArmLength: 5"}

WorldLocationServer, CPBureauWLS

あるコンテンツのworld locationサーバのアドレス、ポート番号を指す。 この変数を使う場合、WorldInfo中にtitleを記述しておかなくてはならない。

例)
WorldInfo{
title "myworld"
info "WorldLocationServer: vsserver.foo.com:6000"
} or
WorldInfo{
title "myworld"
info "WorldLocationServer: 12.23.34.45:6000"
}

Archive

現在のVRMLファイル中で使われているファイルを含むアーカイブを指す。 これらのファイルは、解凍され、このVRMLファイルの置かれた場所からの相対パスで 参照できるよう、適当なローカルディレクトリに置かれる。 この方法は、コンテンツのロード中の接続を不要とする。 他のブラウザとの互換性の為、これらのファイルは適当なリモートディレクトリに 置かれるべきである。

アーカイブ自身は、LHAを用いて生成し、VRMLファイルと同じディレクトリに 置くべきである。

例)

WorldInfo {
  ...
  info [... "Archive: foo.lzh"]
}

SonyAvatarRoom

worldにアバタルーム(アバタの色を変える)が提供されている場合、この変数を 指定する。TRUEかFALSEのみ指定できる。 TRUEの場合はavtroom.wrlという名前のファイルをVRMLファイルと同じディレクトリ に置くべきである。 avtroom.wrlには、アバタの色を変える機能を供給することが要求される。
WorldInfo {
  ...
  info [... "SonyAvatarRoom: TRUE"]
}