Friday 30 June 2017

Source Code for CP suite-Official Petition


■お問い合わせ内容


writing excluded 'apostrophes' due to error

Dear Sony Software Lab and CSL and others,

Greetings, my name is NSK with a great interest in VR and as part of that, your CSL and others CP suite for VRML. Since April this year I have been requesting people (former team members) to release the code for all CP applications; after all, what harm can it do now? My reason for this tedious action is clear: to revitalise X3D development and guide it towards a new direction, based upon the failures of previous projects such as CP. CPs code will not be revealing Sony secrets, nor are any of the patents really worthwhile anymore (the patent bits can be cut out anyway), but it is extremely valuable as a reference to new development and X3D in general. My main focus is on WebVR, however, the interaction aspect is yet to be developed properly. For that too, I find your 1995-1998 software teams CP code to be extremely worthwhile for my time and effort in asking for it.

May I ask also whether Sony has officially kept the browser 1.1 and 2.2 codes, WLS, AOS, Bureau for NT codes, and vrml1to2 code somewhere?

Whether or not they exist will determine everything (literally). It is crucial that I know this, otherwise, its like waiting for an already sunken ship to come back to port.

I believe that releasing the source code is worthwhile and necessary at all costs even if you may think otherwise. Additionally, I would like to know who to contact to allow old code to be released to outsiders.

I know that X3D people aren't currently after interaction or cyber-space. Nor are they interested in integrating services onto one platform (Web browser plus 3D browser?) to allow seamless activity. But let us Think Extreme! I think every company should know that there is no harm in releasing old stuff for educational purposes (for us especially) or better development of future standards/services.

Its about interaction with everything; (no more static WebGL/X3DOM) I do this because I believe in your CSLs Think Extreme and Act Beyond Borders. This is what I believe in right now, and I wont give up.

Can you advise me as to how, if possible, Sony can actually release proprietary source code to either the public or certain interested developers/communities/or me as an educator/ researcher who is after the educational aspects of the code?



Ive already been at this a long time.



With great hope once again,



Yours sincerely,

Difficult Decisions

Initial Petition Letter v2.1


Hello, we are with a great interest in VR and as part of that, your CSL's CP suite for VRML. Since April this year we've been requesting people (former team members) to release the code for all CP applications; after all, what harm can it do now? Our reason for this tedious action is clear: to revitalise X3D development and guide it towards a new direction, based upon the failures of previous projects such as CP. CP's code will not be revealing Sony secrets, nor are any of the patents really worthwhile anymore (you can cut the patent bits out anyway), but it is extremely valuable as a reference to new development and X3D in general. Our main focus is on WebVR, however, the interaction aspect is yet to be developed properly. For that too, I find your stellar team's CP code to be extremely worthwhile for my time and effort.
Do you know whether Sony has officially kept the browser 1.1 and 2.2 codes, WLS, AOS, Bureau for NT codes, and vrml1to2 code somewhere?
Whether or not they exist will determine everything (literally). It is crucial that this is known, otherwise, it’s like waiting for an already sunken ship to come back to port.
I believe that releasing the source code is worthwhile and necessary at all costs. Additionally, I would like to know THE PERSON to contact to allow old code to be released to ‘outsiders’.
I know that X3D people aren’t currently after ‘interaction’ or ‘cyber-space’. Nor are they interested in integrating services onto one platform (Web browser plus 3D browser?) to allow seamless activity. ‘Think Extreme!’ I think every company should know that there is no harm in releasing old stuff for educational purposes (for me especially) or better development of future standards/services.
Blendo, which I’ve written 11 or more pages about, is all about blending everything into a web browser. It’s about ‘interaction with everything’; (no more static WebGL/X3DOM) I do this because I believe in your CSL's ‘Think Extreme’ and ‘Act Beyond Borders’. This is what I believe in right now, and I won’t give up.
Can you advise me as to how, if possible, Sony can actually release proprietary source code to either the public or certain interested developers/communities/or me who is after the educational aspects of the code?

With great hope once again,
Yours sincerely,


NSK

Wednesday, 28 June 2017


Hi NSK,
Thanks for contacting me.

All the statements in this email are my personal one and does not
represent Sony Corporation in anyway.

That said, as far as I can tell, there is no source code of the
software you are seeking for in Sony, at least officially. Couple of
reasons I can think of:
- Sony is not a software company. If we were Google, we might have
kept any source code in the central repository of anything. We have
never been so.
- As a project is terminated, if the code were critical to maintain
any remaining business, the code would be kept along with other design
data. But it was not the case for CP.
- Even it is hard to imagine some members keeping the code personally.
Team members still in Sony are very small, all of them were part of
the many important projects since after the termination of the CP
project. Being so is a hard thing and usually no one cares about the
code which s/he has nothing to do with anymore.

This is not what you are expecting, I know. However, I personally feel
so honestly.

BTW, I also think WebGL is good enough to replace CP browser. Writing
javascript around there to communicate with a central server to
produce shared 3D space is a trivial thing with WebGL. In other areas,
old code still has value today, but for shared 3D space, today's
technology is much better than what we had 20 years ago.

One more thing: I think Cosmo Player is open source in public.

Anyway, thanks for contacting me.

Best regards,






Reply:


The link below yields nothing related to an open source Cosmo Player of any sort, apart from news articles of what would be an empty promise. Cosmo Worlds was not released either, and I know that well.


https://www.google.com.au/search?safe=active&rls=com.microsoft%3Aen-AU%3AIE-ContextMenu&q=Cosmo+Player+source+code&oq=Cosmo+Player+source+code&gs_l=psy-ab.3...351650.353162.0.353305.11.7.0.0.0.0.0.0..0.0....0...1.1.64.psy-ab..11.0.0.2lBKAVesKVo



Also, I was already expecting that there is no central repository for keeping even the ‘less than 100MB code for CP Browsers/plugins/AOS/WLS/Bureau for NT/Sun etc.’ I know that team leader Mr Masayuki Ishikawa has in his personal safekeeping the code for Conductor, but that is not the issue here.
You mentioned: ‘That was not the case for CP’. Well the CP software should have had direct influence on 3D-IES of NRI and therefore the SpaceStream of Sony which was its successor? Which was also used for 3D-IES all the way through the mid 2010 decade. Therefore if CP code was thrown away, what of the Fusionetics SpaceStream Player and Bureau? The problem is that by then, the people working on SpaceStream were not officially disclosed and were (mostly) no longer participants of the great CSL or Arch. Lab.

So it would be difficult to find them.
Finally, I do believe that at least one person would have kept the code for Bureau/WLS/AOS. It was updated in 2000 and marketed until mid-2002. The server software was also the most important anyway. The future WebGL/WebVR is probably as easy as you writing about it, and it’s open, however there are many issues and old software is actually still useful for reference.
In any case, if Sony has not kept the source code, why can’t employees simply allow interested parties to refer to it for reference?
And have you kept ‘anything’ related to CP and other related projects?
Kind regards,


NSK




Extra- What I'm now focussing on

Is the process for Sony to release code. Aren’t there agreements and difficult non-technical details which relate to releasing code to third parties?
And if employees ‘don’t care’ then why are they actually caring and seemingly not releasing the code that they have? Can’t SpaceStream data be found?
Finally, seeing as your position is according to LinkedIn: ‎General Manager of Security Quality Technology at Sony Corporation, I’m quite sure that, using the maximum amount of your ‘god-like’ powers, it can be easily arranged as a trifle matter: the tracing and release of any existing CP stuff (particularly browser/server)(even if it is a part of Fusionetics) through any of your loyal employees. The reason for this release, despite all the argument of WebGL/VR and A-Frame being great technology, is that Interactive A-Frame is NOT great technology, still a GitHub development attracting only minor consideration compared to that of VRML.
In short, Browser;Bureau;WLS;AOS does have importance for us. It is extremely useful and is worthwhile for anyone’s time and energy in detective work in finding it. It is necessary for CP to be archived and made available for future developments in X3D, which I believe (this is where I digress and disagree with Mozilla and others) is much more important than the HTML of A-Frame.
I think it’s quite possible for everything written here to be easily carried out, because after all, there are at least 15 people inclusive of me, who are convinced that CP holds great promise as a reference for revitalising X3D, an ISO standard which is about to collapse with only X3DOM as its major use.
I strongly advise all Sony employees past and present to understand that there is always possibility and hope if people can devote a bit of time for something that may rectify faults and create the path and future that should be taken, not the wrong path.
I do not know enough about SpaceStream and I consider it irrelevant, as it is less devoted to the VRML97 standard. Also, it was relatively recent and is not yet over 20 years old. I can only request for software that is over 2 decades old. I cannot leave empty handed either, because otherwise, I would feel like my extensive knowledge of historical and usage example details of CP would be a complete waste. Time wasted belonging to mostly mine, but also Mark Pesce, Dr Lea, Dr Matsuda, Mr Ishikawa of CPC, and even yours.
After all, those developing X3DOM and A-Frame do not have the knowledge of CP that I have. It is necessary for me to act and lead in order to apply the knowledge for the future. It is necessary to complete the jigsaw puzzle. It is necessary for the background work to be revealed. Let us dig deeper.
I do not give up easily at all, unfortunately. Please have a little try.
Kind regards,
NSK

Thursday 29 June 2017

Community Place - Trademark


Community Place - Trademark, owner Sony Overseas SA


Trademark text Community Place


Priority date:
23.07.1996




Registration date 10.12.1996

  27.02.1997

Expiration/renewal date 10.12.2006

Applicant/Holder Sony Overseas SA


Non renewal of international trademark
  26.07.2007

Monday 26 June 2017

Educational Solutions with Community Place



Community Place can play a key role in your educational applications. It's a great tool for building customized teaching tools or for taking your first step into the world of creating 3D experiences on the Internet.


Choose Out-of-the-Box or Custom Solutions
If you can imagine it, you can build it with Community Place. Create your own worlds using the 3D objects contained in our libraries or import your own models from your favorite 3D graphics program.

Set Up 3D Learning Experiences
Your online classroom comes complete with visual aids and plenty of seating. Tailor your own world for teaching your high school, college, or adult education class. Sony's team of Community Place developers can also work with you to develop customized teaching programs.

Hire an Intelligent Agent Teaching Assistant
Community Place's Application Object technology allows you to build automated teacher's helpers. Your new assistant can be programmed to administer tests, give context-sensitive help, and more. Sony offers development services to help you build everything you need. Email the folks at Sony Pictures Imageworks if you're interested.

To those who are engaged in education


With the propagation of open and interactive multimedia networks, a lot of trials are going on the Internet. In the educational fields, the progressing tendency for smaller number of children per family obliges schools to differentiate such other and also to further cut down their expenses. As a means to solve these two inconsistent issues, multimedia technologies are actively introduced into the educational fields.

It is true that multimedia technologies are effective in cost reduction. But, they are not so much different from the conventional education systems from an educational effect point of view. One of the main reasons for this is a lack of interactive communication capability, which is the most essential to education.

Community Place solves all of these problems. In a virtual 3D space built with Community Place, students can enjoy interactive actions and learn as if they were playing games. As such a virtual space can be changed by adding 3D shared objects and events, students are well motivated to keep learning without losing their interest. Moreover, with Community Place, even 3D virtual educational materials can be created, which enables students to enjoy experiences that are not likely in the real world. Such virtual experiences eventually lead to an improvement of students comprehension.
In addition, a 3D virtual campus can be realized on the networks by using Community Place. In such a virtual campus, students can enjoy real-time communication with others in remote places home and abroad and also can attend lectures whole staying at home. Community Place helps you realize a broad range of shared educational environments that never existed in the past.



On the other hand, Ministry of Education in Japan has issued a guideline for all primary and junior schools to set up network infrastructure by the end of the fiscal year 2001. Also, following the new school curriculum guideline, a course of information will be newly included in the school educational program with effect from fiscal year 2002. As the school educational program for younger generation level is changing in this way, interactive communication system is the most important in construction of computer-based educational solution.

Community Place makes it possible to build next generation network-based educational system where people can enjoy interactive communications and share information simultaneously without having limits in time and place.

VRML2.0におけるSonyの拡張

新しく追加されたノード


Sony_BindSharedNode

マルチユーザ機能の提供の為に新たに追加。以下の目的に使用する。
  • クライアント間で共有する3Dオブジェクトを生成し、
  • リモートから呼ばれるeventInのScriptノードと3Dオブジェクトを結び付ける
このノードのPrototype定義は次のようになる。
    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
}

Class vs.Vscp

java.lang.Object
   |
   +----vs.Vscp

public class Vscp
extends Object マルチユーザー共有動作API

Variable Index

o allClients
o allClientsExceptMe
o responderOnly
o vsSockConnected
o vsSockConnecting
o vsSockDisconnecting
o vsSockNotConnected

ethod Index

o amIMaster()
o getAvtroomAvatarColor()
o getAvtroomAvatarURL()
o goFromAvtroomToOriginalWorld()
o getSockState()
o sendApplSpecificMsg(Node, String, String)
o sendApplSpecificMsg(SFNode, String, String)
o sendApplSpecificMsgWithDist(Node, String, String, int)
o sendApplSpecificMsgWithDist(SFNode, String, String, int)
o sendKeepConnection(boolean)
o sendSetAttribute(Node, String)
o sendSetAttribute(SFNode, String)
o setAvtroomAvatarColor(String)
o updateObject(Node)
o updateObject(SFNode)

Variables

o responderOnly
  public final static int responderOnly
o allClients
  public final static int allClients
o allClientsExceptMe
  public final static int allClientsExceptMe
o vsSockNotConnected
  public final static int vsSockNotConnected
o vsSockConnecting
  public final static int vsSockConnecting
o vsSockConnected
  public final static int vsSockConnected
o vsSockDisconnecting
  public final static int vsSockDisconnecting

Methods

o amIMaster
  public static boolean amIMaster()
Function:
カレントクライアントが現在のワールドにおける、マスターであるかどうかを返す。
Args:
なし。
o sendKeepConnection
  public static void sendKeepConnection(boolean connectionState)
Function:
Vscpサーバーとの接続モードをセットする。
Args:
connectionState
true: 接続を自動的に切らない。false:自動的に接続を切る。
o getSockState
  public static int getSockState()
Function:
現在のVscpサーバーソケットの接続状態を返す。
Args:
なし。
Return:
vsSockNotConnected
vsSockConnecting
vsSockConnected
vsSockDisconnecting
o setAvtroomAvatarColor
  public static void setAvtroomAvatarColor(String color)
Function:
アバタ色情報をWindows95のレジストリに保存する。アバタ色情報は文字列に変換されていなければならない。
Args:
color :(in)
色情報文字列
o getAvtroomAvatarColor
  public static String getAvtroomAvatarColor()
Function:
文字列に変換されたアバタ色情報を入手する。
Return:
色情報文字列。
o getAvtroomAvatarURL
  public static String getAvtroomAvatarURL()
Function:
アバタファイルのURLを入手する。
Return:
アバタファイルのURL文字列。
o goFromAvtroomToOriginalWorld
  public static void goFromAvtroomToOriginalWorld()
Function:
アバタルームから、オリジナルワールドに移動する。
o sendApplSpecificMsg
  public static void sendApplSpecificMsg(Node obj,
                                         String methodName,
                                         String argument)
Function:
すべてのリモートマシン上で[methodName]で指定されたメソッドを[arg]を引数に起動する。
Args:
obj :(in)
Nodeインスタンス。
methodName : (in)
リモートで起動するメソッド名。
argument : (in)
メソッドへの引数。
o sendApplSpecificMsgWithDist
  public static void sendApplSpecificMsgWithDist(Node obj,
                                                 String methodName,
                                                 String arg,
                                                 int distrMethod)
Function:
[methodName]で指定されたメソッドを、[distmethod]で指定されたリモートマシン上で[arg]を引数に起動する。
Args:
obj :
Nodeインスタンス。
methodName :
リモートで起動するメソッド名
arg :
メソッドへの引数
distrMethod :
リモートクライアントを特定するためのフラグ:
responderOnly
パケットは、3Dオブジェクトの責任者に配送される。
  • 3Dオブジェクトがアバタであれば、クライアントに配送される。
  • 3DオブジェクトがAOによって制御されているなら、AOに配送される。
  • 3Dオブジェクトが何からも制御されていないなら、シンプル・シェアードビヘイビアーの マスターに配送される。
    allClients
    送信者を含む、現在Vscpサーバーに接続しているすべてのクライアント。
    allClientsExceptMe
    送信者を含む、現在Vscpサーバーに接続しているすべてのクライアント。
  • o sendSetAttribute
      public static void sendSetAttribute(Node obj,
                                          String data)
    
    o updateObject
      public static void updateObject(Node obj)
    
    Function:
    指定されたオブジェクトの最新位置情報を配送する。
    Args:
    obj :(in)
    Nodeインスタンス。
    o sendApplSpecificMsg
      public static void sendApplSpecificMsg(SFNode obj,
                                             String methodName,
                                             String argument)
    
    see sendAppleSpecificMsg()
    o sendApplSpecificMsgWithDist
      public static void sendApplSpecificMsgWithDist(SFNode obj,
                                                     String methodName,
                                                     String argument,
                                                     int distrMethod)
    
    see sendApplSpecificMsgWithDist()
    o sendSetAttribute
      public static void sendSetAttribute(SFNode obj,
                                          String data)
    
    see sendSetAttribute()
    o updateObject
      public static void updateObject(SFNode obj)
    
    see updateObject()

    VRML 2.0 Java API

    History

  • Thu Aug 30 1996: First version( Community Place )
  • O : 実装済み
  • * : コンストラクタを呼んで生成した、Fieldクラスのサブクラスについては実装済みだが、 ScriptクラスのgetEventOut()/getField()等が生成したインスタンスについては未実装
  • X : 未実装

    Index

    vrml package

  • vrml.Field
  • vrml.ConstField
  • vrml.ConstMField
  • vrml.MField
  • vrml.Event
  • vrml.Browser
  • vrml.BaseNode

    vrml.field package

  • vrml.field.ConstSFBool
  • vrml.field.ConstSFColor
  • vrml.field.ConstSFFloat
  • vrml.field.ConstSFImage
  • vrml.field.ConstSFInt32
  • vrml.field.ConstSFNode
  • vrml.field.ConstSFRotation
  • vrml.field.ConstSFString
  • vrml.field.ConstSFTime
  • vrml.field.ConstSFVec2f
  • vrml.field.ConstSFVec3f
  • vrml.field.ConstMFColor
  • vrml.field.ConstMFFloat
  • vrml.field.ConstMFInt32
  • vrml.field.ConstMFNode
  • vrml.field.ConstMFRotation
  • vrml.field.ConstMFString
  • vrml.field.ConstMFTime
  • vrml.field.ConstMFVec2f
  • vrml.field.ConstMFVec3f
  • vrml.field.SFBool
  • vrml.field.SFColor
  • vrml.field.SFFloat
  • vrml.field.SFImage
  • vrml.field.SFInt32
  • vrml.field.SFNode
  • vrml.field.SFRotation
  • vrml.field.SFString
  • vrml.field.SFTime
  • vrml.field.SFVec2f
  • vrml.field.SFVec3f
  • vrml.field.MFColor
  • vrml.field.MFFloat
  • vrml.field.MFInt32
  • vrml.field.MFNode
  • vrml.field.MFRotation
  • vrml.field.MFString
  • vrml.field.MFTime
  • vrml.field.MFVec2f
  • vrml.field.MFVec3f

    vrml.node package

  • vrml.node.Node
  • vrml.node.Script

    Appendix vs package

    vs package
  • vs.Vscp(マルチユーザー共有動作API)

    vrml package

    public abstract class Field implements Cloneable
    {
    O   public Object clone();
    }
    
    public abstract class ConstField extends Field
    {
    }
    
    public abstract class ConstMField extends ConstField
    {
    O   public abstract int getSize();
    }
    
    public abstract class MField extends Field
    {
    O   public abstract int getSize();
    X   public abstract void clear();
    X   public abstract void delete(int index);
    }
    
    public class Event implements Cloneable {
    O  public String getName();
    O  public double getTimeStamp();
    O  public ConstField getValue();
    O  public Object clone();
    }
    
    public class Browser {
      // Browser interface
    O  public String getName();      
    O  public String getVersion();   
    
    X  public float getCurrentSpeed();
    
    X  public float getCurrentFrameRate();
    
    O  public String getWorldURL();
    X  public void replaceWorld(BaseNode[] nodes);
    
    O  public BaseNode[] createVrmlFromString(String vrmlSyntax)
        throws InvalidVRMLSyntaxException;
    
    O  public void createVrmlFromURL(String[] url, BaseNode node, String event)
    
    O  public void addRoute(BaseNode fromNode, String fromEventOut,
        BaseNode toNode, String toEventIn);
    O  public void deleteRoute(BaseNode fromNode, String fromEventOut,
        BaseNode toNode, String toEventIn);
    
    O  public void loadURL(String[] url, String[] parameter)
    
    O  public void setDescription(String description);
    }
    
    //
    // BaseNodeクラス
    // 
    public abstract class BaseNode 
    {
      // ノードの種別を返す。ノードがプロトタイプであれば、プロトタイプ名が
      // 返される。
    O  public String getType();
    
      // ノードが含まれているBrowserのインスタンスを返す。
    O  public Browser getBrowser();
    }
    
    

    vrml.field package

    public class ConstSFBool extends ConstField
    {
    O   public boolean getValue();
    }
    
    public class ConstSFColor extends ConstField
    {
    O   public void getValue(float color[]);
    O   public float getRed();
    O   public float getGreen();
    O   public float getBlue();
    }
    
    public class ConstSFFloat extends ConstField
    {
    O   public float getValue();
    }
    
    Xpublic class ConstSFImage extends ConstField
    {
    X   public int getWidth();
    X   public int getHeight();
    X   public int getComponents();
    X   public void getPixels(byte pixels[]);
    }
    
    public class ConstSFInt32 extends ConstField
    {
    O   public int getValue();
    }
    
    public class ConstSFNode extends ConstField
    {
      /* ***********************************************************
       * getValue()はBaseNodeクラスのサブクラスインスタンスを返す。
       * 返されるクラスはブラウザの実装に異なる。
       *********************************************************** */
    O   public BaseNode getValue();
    }
    
    public class ConstSFRotation extends ConstField
    {
    O   public void getValue(float[] rotation);
    }
    
    public class ConstSFString extends ConstField
    {
    O   public String getValue();
    }
    
    public class ConstSFTime extends ConstField
    {
    O   public double getValue();
    }
    
    public class ConstSFVec2f extends ConstField
    {
    O   public void getValue(float vec2[]);
    O   public float getX();
    O   public float getY();
    }
    
    public class ConstSFVec3f extends ConstField
    {
    O   public void getValue(float vec3[]);
    O   public float getX();
    O   public float getY();
    O   public float getZ();
    }
    
    public class ConstMFColor extends ConstMField
    {
    O   public void getValue(float colors[][]);
    O   public void getValue(float colors[]);
    *   public void get1Value(int index, float color[]);
    *   public void get1Value(int index, SFColor color);
    }
    
    public class ConstMFFloat extends ConstMField
    {
    O   public void getValue(float values[]);
    *   public float get1Value(int index);
    }
    
    public class ConstMFInt32 extends ConstMField
    {
    O   public void getValue(int values[]);
    *   public int get1Value(int index);
    }
    
    Xpublic class ConstMFNode extends ConstMField
    {
      /* ***********************************************************
       * getValue()はBaseNodeクラスのサブクラスインスタンスを返す。
       * 返されるクラスはブラウザの実装に異なる。
       *********************************************************** */
    O   public void getValue(BaseNode values[]);
    X   public Node get1Value(int index);
    }
    
    public class ConstMFRotation extends ConstMField
    {
    O   public void getValue(float rotations[][]);
    O   public void getValue(float rotations[]);
    *   public void get1Value(int index, float rotation[]);
    *   public void get1Value(int index, SFRotation rotation);
    }
    
    public class ConstMFString extends ConstMField
    {
    O   public void getValue(String values[]);
    *   public String get1Value(int index);
    }
    
    public class ConstMFTime extends ConstMField
    {
    O   public void getValue(double times[]);
    *   public double get1Value(int index);
    }
    
    public class ConstMFVec2f extends ConstMField
    {
    O   public void getValue(float vecs[][]);
    O   public void getValue(float vecs[]);
    *   public void get1Value(int index, float vec[]);
    *   public void get1Value(int index, SFVec2f vec);
    }
    
    public class ConstMFVec3f extends ConstMField
    {
    O   public void getValue(float vecs[][]);
    O   public void getValue(float vecs[]);
    *   public void get1Value(int index, float vec[]);
    *   public void get1Value(int index, SFVec3f vec);
    }
    
    public class SFBool extends Field
    {
    O   public SFBool(boolean value);
    O   public boolean getValue();
    O   public void setValue(boolean b);
    O   public void setValue(ConstSFBool b);
    O   public void setValue(SFBool b);
    }
    
    public class SFColor extends Field
    {
    O   public SFColor(float red, float green, float blue);
    O   public void getValue(float color[]);
    O   public float getRed();
    O   public float getGreen();
    O   public float getBlue();
    O   public void setValue(float color[]);
    O   public void setValue(float red, float green, float blue);
    O   public void setValue(ConstSFColor color);
    O   public void setValue(SFColor color);
    }
    
    public class SFFloat extends Field
    {
    O   public SFFloat(float f);
    O   public float getValue();
    O   public void setValue(float f);
    O   public void setValue(ConstSFFloat f);
    O   public void setValue(SFFloat f);
    }
    
    Xpublic class SFImage extends Field
    {
    X   public SFImage(int width, int height, int components, byte pixels[]);
    X   public int getWidth();
    X   public int getHeight();
    X   public int getComponents();
    X   public void getPixels(byte pixels[]);
    X   public void setValue(int width, int height, int components,
                            byte pixels[]);
    X   public void setValue(ConstSFImage image);
    X   public void setValue(SFImage image);
    }
    
    public class SFInt32 extends Field
    {
    O   public SFInt32(int value);
    O   public int getValue();
    O   public void setValue(int i);
    O   public void setValue(ConstSFInt32 i);
    O   public void setValue(SFInt32 i);
    }
    
    public class SFNode extends Field
    {
    O   public SFNode(BaseNode node);
    
      /* ***********************************************************
       * getValue()はBaseNodeクラスのサブクラスインスタンスを返す。
       * 返されるクラスはブラウザの実装に異なる。
       *********************************************************** */
    O   public Node getValue();
    O   public void setValue(BaseNode node);
    O   public void setValue(ConstSFNode node);
    O   public void setValue(SFNode node);
    }
    
    public class SFRotation extends Field
    {
    O   public SFRotation(float axisX, float axisY, float axisZ, float rotation);
    O   public void getValue(float[] rotation);
    O   public void setValue(float[] rotation);
    O   public void setValue(float axisX, float axisY, float axisZ, float rotation);
    O   public void setValue(ConstSFRotation rotation);
    O   public void setValue(SFRotation rotation);
    }
    
    public class SFString extends Field
    {
    O   public SFString(String s);
    O   public String getValue();
    O   public void setValue(String s);
    O   public void setValue(ConstSFString s);
    O   public void setValue(SFString s);
    }
    
    public class SFTime extends Field
    {
    O   public SFTime(double time);
    O   public double getValue();
    O   public void setValue(double time);
    O   public void setValue(ConstSFTime time);
    O   public void setValue(SFTime time);
    }
    
    public class SFVec2f extends Field
    {
    O   public SFVec2f(float x, float y);
    O   public void getValue(float vec[]);
    O   public float getX();
    O   public float getY();
    O   public void setValue(float vec[]);
    O   public void setValue(float x, float y);
    O   public void setValue(ConstSFVec2f vec);
    O   public void setValue(SFVec2f vec);
    }
    
    public class SFVec3f extends Field
    {
    O   public SFVec3f(float x, float y, float z);
    O   public void getValue(float vec[]);
    O   public float getX();
    O   public float getY();
    O   public float getZ();
    O   public void setValue(float vec[]);
    O   public void setValue(float x, float y, float z);
    O   public void setValue(ConstSFVec3f vec);
    O   public void setValue(SFVec3f vec);
    }
    
    public class MFColor extends MField
    {
    O   public MFColor(float value[][]);
    O   public MFColor(float value[]);
    O   public MFColor(int size, float value[]);
    
    O   public void getValue(float colors[][]);
    O   public void getValue(float colors[]);
    
    O   public void setValue(float colors[][]);
    
        /****************************************************************
         * color[0], color[1], color[2]がそれぞれ、先頭のred,green,
         * blueに対応する。すなわち、colorの数は"size / 3"として扱われる。
         ************************************************************** */
    O   public void setValue(int size, float colors[]);
    
    O   public void setValue(ConstMFColor colors);
    
    *   public void get1Value(int index, float color[]);
    *   public void get1Value(int index, SFColor color);
    
    *   public void set1Value(int index, ConstSFColor color);
    *   public void set1Value(int index, SFColor color);
    *   public void set1Value(int index, float red, float green, float blue);
    
    *   public void addValue(ConstSFColor color);
    *   public void addValue(SFColor color);
    *   public void addValue(float red, float green, float blue);
    
    *   public void insertValue(int index, ConstSFColor color);
    *   public void insertValue(int index, SFColor color);
    *   public void insertValue(int index, float red, float green, float blue);
    }
    
    public class MFFloat extends MField
    {
    O   public MFFloat(float values[]);
    
    O   public void getValue(float values[]);
    
    O   public void setValue(float values[]);
    O   public void setValue(int size, float values[]);
    O   public void setValue(ConstMFFloat value);
    
    *   public float get1Value(int index);
    
    *   public void set1Value(int index, float f);
    *   public void set1Value(int index, ConstSFFloat f);
    *   public void set1Value(int index, SFFloat f);
    
    *   public void addValue(float f);
    *   public void addValue(ConstSFFloat f);
    *   public void addValue(SFFloat f);
    
    *   public void insertValue(int index, float f);
    *   public void insertValue(int index, ConstSFFloat f);
    *   public void insertValue(int index, SFFloat f);
    }
    
    public class MFInt32 extends MField
    {
    O   public MFInt32(int values[]);
    
    O   public void getValue(int values[]);
    
    O   public void setValue(int values[]);
    O   public void setValue(int size, int values[]);
    O   public void setValue(ConstMFInt32 value);
    
    *   public int get1Value(int index);
    
    *   public void set1Value(int index, int i);
    *   public void set1Value(int index, ConstSFInt32 i);
    *   public void set1Value(int index, SFInt32 i);
    
    *   public void addValue(int i);
    *   public void addValue(ConstSFInt32 i);
    *   public void addValue(SFInt32 i);
    
    *   public void insertValue(int index, int i);
    *   public void insertValue(int index, ConstSFInt32 i);
    *   public void insertValue(int index, SFInt32 i);
    }
    
    public class MFNode extends MField
    {
    O   public MFNode(BaseNode node[]);
    
      /* ***********************************************************
       * getValue()はBaseNodeクラスのサブクラスインスタンスを返す。
       * 返されるクラスはブラウザの実装に異なる。
       *********************************************************** */
    O   public void getValue(BaseNode node[]);
    
    O   public void setValue(BaseNode node[]);
    O   public void setValue(int size, Node node[]);
    O   public void setValue(ConstMFNode node);
    
    *   public Node get1Value(int index);
    
    *   public void set1Value(int index, BaseNode node);
    *   public void set1Value(int index, ConstSFNode node);
    *   public void set1Value(int index, SFNode node);
    
    *   public void addValue(BaseNode node);
    *   public void addValue(ConstSFNode node);
    *   public void addValue(SFNode node);
    
    *   public void insertValue(int index, BaseNode node);
    *   public void insertValue(int index, ConstSFNode node);
    *   public void insertValue(int index, SFNode node);
    }
    
    public class MFRotation extends MField
    {
    O   public MFRotation(float rotations[][]);
    O   public MFRotation(float rotations[]);
    O   public MFRotation(int size, float rotations[]);
    
    O   public void getValue(float rotations[][]);
    O   public void getValue(float rotations[]);
    
    O   public void setValue(float rotations[][])
    O   public void setValue(int size, float rotations[]);
    O   public void setValue(ConstMFRotation rotations);
    
    *   public void get1Value(int index, float rotation[]);
    *   public void get1Value(int index, SFRotation rotation);
    
    *   public void set1Value(int index, ConstSFRotation rotation);
    *   public void set1Value(int index, SFRotation rotation);
    *   public void set1Value(int index, float ax, float ay, float az, float angle);
    
    *   public void addValue(ConstSFRotation rotation);
    *   public void addValue(SFRotation rotation);
    *   public void addValue(float ax, float ay, float az, float angle);
    
    *   public void insertValue(int index, ConstSFRotation rotation);
    *   public void insertValue(int index, SFRotation rotation);
    *   public void insertValue(int index, float ax, float ay, float az, float angle);
    }
    
    public class MFString extends MField
    {
    O   public MFString(String s[]);
    
    O   public void getValue(String s[]);
    
    O   public void setValue(String s[]);
    O   public void setValue(int size, String s[]);
    O   public void setValue(ConstMFString s);
    
    *   public String get1Value(int index);
    
    *   public void set1Value(int index, String s);
    *   public void set1Value(int index, ConstSFString s);
    *   public void set1Value(int index, SFString s);
    
    *   public void addValue(String s);
    *   public void addValue(ConstSFString s);
    *   public void addValue(SFString s);
    
    *   public void insertValue(int index, String s);
    *   public void insertValue(int index, ConstSFString s);
    *   public void insertValue(int index, SFString s);
    }
    
    public class MFTime extends MField
    {
    O   public MFTime(double times[]);
    
    O   public void getValue(double times[]);
    
    O   public void setValue(double times[]);
    O   public void setValue(int size, double times[]);
    O   public void setValue(ConstMFTime times);
    
    *   public double get1Value(int index);
    
    *   public void set1Value(int index, double time);
    *   public void set1Value(int index, ConstSFTime time);
    *   public void set1Value(int index, SFTime time);
    
    *   public void addValue(double time);
    *   public void addValue(ConstSFTime time);
    *   public void addValue(SFTime time);
    
    *   public void insertValue(int index, double time);
    *   public void insertValue(int index, ConstSFTime time);
    *   public void insertValue(int index, SFTime time);
    }
    
    public class MFVec2f extends MField
    {
    O   public MFVec2f(float vecs[][]);
    O   public MFVec2f(float vecs[]);
    O   public MFVec2f(int size, float vecs[]);
    
    O   public void getValue(float vecs[][]);
    O   public void getValue(float vecs[]);
    
    O   public void setValue(float vecs[][]);
    O   public void setValue(int size, vecs[]);
    O   public void setValue(ConstMFVec2f vecs);
    
    *   public void get1Value(int index, float vec[]);
    *   public void get1Value(int index, SFVec2f vec);
    
    *   public void set1Value(int index, float x, float y);
    *   public void set1Value(int index, ConstSFVec2f vec);
    *   public void set1Value(int index, SFVec2f vec);
    
    *   public void addValue(float x, float y);
    *   public void addValue(ConstSFVec2f vec);
    *   public void addValue(SFVec2f vec);
    
    *   public void insertValue(int index, float x, float y);
    *   public void insertValue(int index, ConstSFVec2f vec);
    *   public void insertValue(int index, SFVec2f vec);
    }
    
    public class MFVec3f extends MField
    {
    O   public MFVec3f(float vecs[][]);
    O   public MFVec3f(float vecs[]);
    O   public MFVec3f(int size, float vecs[]);
    
    O   public void getValue(float vecs[][]);
    O   public void getValue(float vecs[]);
    
    O   public void setValue(float vecs[][]);
    O   public void setValue(int size, float vecs[]);
    O   public void setValue(ConstMFVec3f vecs);
    
    *   public void get1Value(int index, float vec[]);
    *   public void get1Value(int index, SFVec3f vec);
    
    *   public void set1Value(int index, float x, float y, float z);
    *   public void set1Value(int index, ConstSFVec3f vec);
    *   public void set1Value(int index, SFVec3f vec);
    
    *   public void addValue(float x, float y, float z);
    *   public void addValue(ConstSFVec3f vec);
    *   public void addValue(SFVec3f vec);
    
    *   public void insertValue(int index, float x, float y, float z);
    *   public void insertValue(int index, ConstSFVec3f vec);
    *   public void insertValue(int index, SFVec3f vec);
    }
    

    vrml.node package

    //
    // ノードクラス
    // 
    public abstract class Node extends BaseNode { 
      
      /* **********************************************************
       *ノードから、nameによって指定されたEventInフィールドを返す。
       *このフィールドは書き込みのみが可能である。
       *不当なEventInフィールド名が指定された場合、
       *InvalidEventInExceptionが発生する。
       ********************************************************** */
    O  public final Field getEventIn(String fieldName);
    
      /* **********************************************************
       *ノードから、nameによって指定されたEventOutフィールドを返す。
       *このフィールドは読み書きが可能である。
       *不当なEventOutフィールド名が指定された場合、
       *InvalidEventOutExceptionが発生する。
       ********************************************************** */
    O  public final ConstField getEventOut(String fieldName);
    
      /* **********************************************************
       *ノードから、nameによって指定されたExposedFieldフィールドを返す。
       *このフィールドは読み書きが可能である。
       *不当なExposedFieldフィールド名が指定された場合、
       *InvalidExposedFieldExceptionが発生する。
       ********************************************************** */
    O  public final Field getExposedField(String fieldName);
    }
    
    //
    // Scriptクラス
    //
    // VRMLのScriptノードに指定可能なJavaクラスはこのクラスのサブクラス
    // でなければならない。
    //
    public abstract class Script extends BaseNode { 
     
      /* ***********************************************************
       *全てのイベントが発生する前に評価される。
       *********************************************************** */
    O  public void initialize();
    
      /* **********************************************************
       *nameによって指定されたFieldフィールドを返す。
       *このフィールドは読み書きが可能である。
       *不当なFieldフィールド名が指定された場合、
       *InvalidFieldExceptionが発生する。
       ********************************************************** */
    O  protected final Field getField(String fieldName);
    
      /* **********************************************************
       *nameによって指定されたEventOutフィールドを返す。
       *このフィールドは読み書きが可能である。
       *不当なEventOutフィールド名が指定された場合、
       *InvalidEventOutExceptionが発生する。
       ********************************************************** */
    O  protected final Field getEventOut(String fieldName);
    
      /* **********************************************************
       *nameによって指定されたEventInフィールドを返す。
       *このフィールドは書き込みのみが可能である。
       *不当なEventInフィールド名が指定された場合、
       *InvalidEventInExceptionが発生する。
       ********************************************************** */
    O  protected final Field getEventIn(String fieldName);
    
      /* **********************************************************
       *processEvents()は、スクリプトが同一タイムスタンプの1つ以上の
       *イベントを受け取ったときに評価される。 
       *countは、送られてきたイベントの個数を表す。
       ********************************************************** */
    O  public void processEvents(int count, Event events[]);
    
      /* **********************************************************
       *processEvent()は、1つのイベントを受け取ったときに評価される。
       ********************************************************** */
    O  public void processEvent(Event event);
    
      /* ****************************************************************
       * eventsProcessed()は、processEvents()が評価されるたびに評価される。
       **************************************************************** */
    O  public void eventsProcessed()
    
      /* ****************************************************************
       * shutdown()は、スクリプトノードが削除される時に評価される。
       **************************************************************** */
    O  public void shutdown(); 
    }
    
  • VRML2.0 java スクリプトをコンパイルするための環境設定

    $Id: classpat.htm,v 1.3 1996/11/06 05:53:59 tnoma Exp $

    注)コンパイラはJDK1.0.2を使用してください。

    'vrml' package は、 CP Browser_installed_path\lib\java\vsclass.zip です。(デフォルトイン ストールでは、
    c:\Program Files\Sony\Community Place Browser\lib\java\vsclass.zip
    です)
    (1) unziper をつかって、このファイルを展開します。
    例)Windows95で、WinZipを使う場合:
    + Windows95のエクスプローラーから、
    "c:\Program Files\Sony\Community Place Browser\lib\java\vsclass.zip" を右ボタンドラッグ&ドロップして、[Extract to ....]を選びます。
    (2) コンパイル時にjavacのコマンドラインオプションに'classpath' を指定するか、 環境変数'classpath'を指定します。
    - 'classpath' option
    > javac -classpath "vsclass_zip_extract_path;CP Browser_installed_path\lib\java\classes.zip" foo.java 例)デフォルトインストールでは以下の通りです:
    > javac -classpath "c:\Program Files\Sony\Community Place Browser\lib\java;c:\Program Files\Sony\Community Place Browser\lib\java\classes.zip" foo.java - 'classpath' 環境変数
    > set classpath=vsclass_zip_extract_path;Community Place Browser_installed_path\lib\java\classes.zip 例)デフォルトインストールでは以下の通りです:
    > set classpath=c:\Program Files\Sony\Community Place Browser\lib\java;c:\Program Files\Sony\Community Place Browser\lib\java\classes.zip

    達人になろう!

    • インターネットに接続する マルチユーザーワールドを楽しむには コンピュータをインターネットに接続 しなければなりません。なぜなら WWWサーバーと同様に マルチユーザーサーバーはインターネット上に配置されているからです。 インターネットに接続するには 一般的にはインターネットサービスプロバイダに加入し、 そこへコンピュータを接続することにより、インターネットにアクセス することができます。

      インターネットサービスプロバイダ So-net

      また会社の中など firewallがあって、通常 アクセスできない場合は SOCKSサーバーを利用することで マルチユーザーサーバーに接続が可能となります。
    • 快適な環境のために… みなさんご存知のように、3D空間を再現するためにはメモリを必要とします。 快適に 3D空間をブラウズするためには、CP Browser以外でメモリを 使用しないことが肝心です。
      快適な環境を得るために、以下のことを試してみてください。
      1. 必要のないアプリケーションは使用しない 出来れば こまめにWindows95を再起動し、メモリを綺麗にしましょう。
      2. 必要のないとき、Netscapeを起動しない 例えば マルチユーザーワールドのみを使うときなどは Netscapeが不必要です。このような場合は Netscapeは起動しなくてかまいません。 この場合、CP Browserを起動し、CP Browserディレクトリより wrlファイルをドラッグ&ドロップで起動することになります。
      3. まめに CP Browserを再起動する Community Placeは worldデータをキャッシュしています。ですから次の worldへいって、戻るときは瞬時に戻ることができます。 そのかわり新しい worldを loadし、ブラウズし続けるとどんどんメモリを消費します。 ですから必要のないときは再起動してメモリを開放してください。
      4. System Monitorでメモリのチェック Windows95 システムツールの System Monitorでメモリ状況を把握しましょう。 スワップファイルとは、メモリに入り切れずあふれたメモリをハードディスクに 書き出すものです。これが大きいとパフォーマンスが落ちます。
      5. メモリの増設 お金で解決できる人はお札を握りしめて秋葉原へ Go!。16MB, 32MB増設に なると気持ち良くなれること請け合いです。 メモリの増設については お客様のマシン付属のマニュアルをごらんになるか、 販売店へご相談ください。
      6. ビデオボードの変更 お金で解決できる人はお札を握りしめて秋葉原へ Go!MGA Millenniumというビデオボードがお奨めです。 これは3次元アクセラレーションが出来ますのでパフォーマンスが向上します (ただし新しく Mistiqueというボードも出ます)。 ビデオボード増設については お客様のマシン付属のマニュアルをごらんになるか、 販売店へご相談ください。
    • Navigationを軽くするには ウィンドウサイズを小さく、Options->Detail Level->Wire Frame にすると心持ちNavigationが軽くなります。
    • FireWallの中からアクセスするには Firewallの中からマルチユーザーワールド へアクセスする場合、SOCKSホストの設定が必要となります。
      SOCKSホストの設定は、Preferencesウィンドウで行います。
      OptionsメニューのPreferences...を選択すると、Preferencesウィンドウが出ます。
      このPreferencesウィンドウで
              SOCKS Hosts:
                     Port:
      
      を設定することができます。この設定を行ったのちに、 ファイルをロードしてください。 FireWallの設定により、このSOCKSの設定を行ってもパケットを通さないこと もあります。その場合はネットワーク管理者の方とご相談ください。
    • 自分の名前を変えるには マルチユーザワールドにアクセスするときの自分の名前は、Windows 95のログ イン名になります。これを変えたいときには次にようにします。
      OptionsメニューのPreferences...を選択すると、Preferencesウィンドウが出ます。
      このPreferencesウィンドウで
              Nick Name:
      
      を変更すれば、名前を変えることができます。
    • Javaコンソールを使用する VRML2.0のJavaプログラミングを行う場合、 System.out.println()メソッドを使ってデバッグメッセージを Javaコンソールへ出力 させることができます。Optionsメニューの Java Consoleを選択してください。

    Official Japanese CP Dev. Timeline! - What's New


    • '98 3月20日に、Community Place Bureau Version 2.0 beta 3 をリリースしました。
    • '98 3月19日に、Community Place Conductor Version 2.0 PR1a をリリースしました。詳しくはこちらをご覧ください。
    • '98 2月10日に、Community Place Conductor Version 2.0 PR1 をリリースしました。詳しくはこちらをご覧ください。
    • '97 9月30日に、Community Place Bureau Version 2.0 beta 2 をリリースしました。
    • '97 5月20日に、Community Place Browser Version 2.0 PR1 をリリースしました。ここで、Direct3D対応版を追加しました。詳しくはこちら
    • '97 5月20日に、新しいコンテンツ(Circus2 for Direct3D, Circus7) をリリースしました。
    • また、既存のコンテンツ(Circus2, Origami, UFO)についても、色モデルの調整、不要ノードの削除といった改善を施しました。 詳しくはこちら
    • '97 4月17日に、新着マルチユーザーワールド「バーチャルキッズパーク」を追加しました。
    • '97 3月31日に、Community Place Bureau Version 2.0 beta 1 をリリースしました。
    • '97 3月27日に、Community Place Conductorの期限延長プログラムを追加しました。
    • '97 3月20日に、コンテンツ「3Dロッキー・世界を旅してクイズ」をリリースしました。
    • '97 3月4日に、新着マルチユーザーワールド情報を追加しました。
    • '97 2月17日に、Community Place BureauのWindow NT 4.0での動作確認をいたしました。 現状のままでお試しいただけます。
    • '97 2月14日に、Community Place Browserの試供版として、Version 1.1 Helper Beta6を追加しました。これは、ボイスチャット機能が無い以外は、Version 2.0 Helper Alpha2と同等です。
    • 詳しくはこちらをご覧ください。
    • '97 2月12日に、2/18(火)のCommunity Place Seminar申し込みを締め切りました。
    • WindowsNT上でCommunity Place Browser(Helper)をお使いになると、起動画面が真っ黒になってしまう症状とその復旧方法を告知しました。 詳しくはこちらをご覧ください。
    • '97 2月6日に、Community Place Browserの試供版が更新されたのと同時に、待望のオーサリングツール Community Place Conductorが追加されました。 詳しくはこちらをご覧ください。
    • 新しいマルチユーザワールド「さぱり」がオープンしました。詳しくはこちら
    • バグ報告・要望用のフォームを設けました。 詳しくはこちらをご覧ください。
    • '97 1月31日に、来る2/18(火)、本社において、Community Place Seminarを開催する運びとなりました。
    • '96 12月27日に皆様にご愛用いただいておりますマルチユーザーワールド Circus Park 2、 ChatRoomはInternet World Expoの終了にともない、 '96 12/31を持ちましてサーバーの移転を行いました。
    • '97 1/1以降アクセスするにはワールドデータのバージョンアップが必要となります。
    • 一足早いクリスマスプレゼント、'96 12月 13日より Community Place Browser version 2.0 α版をリリースしました。 これは VRML 2.0 最終仕様に準拠した VRML ブラウザ Community Place Browserにボイスチャット機能 を付加したものです。またいくつかのマイナーバージョンアップを行っております。
    • 12月 31日までの期間限定のボイスチャットワールドも付属しています。ぜひ お試しください。
    • Various Effectsを更新しました。
    • npchooserを ver1.1にバージョンアップしました。
    • '96 11月 8日に Community Place Browser version 1.1 Netscape plug-in beta1 をリリースしました。 これは VRML 2.0 最終仕様に準拠した VRML ブラウザ Community Place Browserの Netscape plug-inのβバージョンです。 またマイナーバージョンアップを行っております。
    • 「さるぱさ」が更新されました。 今回は「共有動作」です。
    • '96 10月 18日に 「さるさるぱさーじゅ」 のページを更新し、「マルチユーザー」をオープンしました。
    • '96 10月 7日 , TechInfoVarious Effectsを新設しました。
    • ジーアールホームネット(株)が10/31より運用するネットワークサービス 「ぷらら」の 3Dマルチユーザー サービスにおいて、 Community Placeが採用されております。 ソニーは Community Placeをもとに「ヴィラぷららブラウザ」を開発、提供しております。
    • '96 9月 30日 23:00にCommunity Place Browser version1.0試供版 Community Place Bureau version1.0β2版 コンバータ vrml1to2 version 1.6
    • の配布を開始しました。
    • 以前より準備をすすめていましたホームページの renewalを行い、 デザインを一新しました。
    • '96 9月 27日に VRML 2.0準拠、 インターネット及びイントラネット上に三次元のマルチユーザー環境を実現する ソフトウェア群『Community Place』発売を発表 しました。
    • '96 8月 23日に 初心者のためのコンテンツ製作ガイド 「さるさるぱさーじゅ」 のページを更新し、「動きをつける part2」をオープンしました。
    • Galleryページから multi-userワールドへのリンクが増えました。
    • '96 7月 23日に Moving Worlds仕様のテストサンプルのページ "Moving Worlds Spec Testcases" を開設しました。
    • '96 7月 22日に 初心者のためのコンテンツ製作ガイド 「さるさるぱさーじゅ」 のページを開設しました。
    • '96 7月 15日に コンバータ vrml1to2 version1.4b のリリースを開始しました。
    • '96 7月 12日に コンバータ vrml1to2 version1.4a のリリースを開始しました。これは VRML1.0 ファイルを Draft #3 July 9, 1996 VRML2.0 に変換するものです。
    • '96 7月 9日に コンバータ vrml1to2 version1.4 のリリースを開始しました。
    • '96 7月 8日に ホームページ renewalの 第一ステップとして、 ディレクトリ構成の変更等の工事を開始します。 工事期間中はご迷惑をおかけいたしますが、なにとぞよろしくお願いします。
    • Cicus Parkのテントの中のアトラクション 「たるひげ」のリリース を開始しました。
    • '96 6月 27日に"Cyber Passage " version 2 beta 2の無償ダウンロードサービスをはじめました。
    • '96 6月 13日に コンバータ vrml1to2を version1.3へ更新しました。
    • VRML2.0 Draft#2 (5/30 version)に対応しています。
    • '96 6月 11日に"Cyber Passage " version 2 beta 1aの無償ダウンロードサービスをはじめました。
    • VRML2.0 Draft#2 (5/30 version)に対応しています。
    • '96 6月 6日 Technical Information を更新し、Moving Worldsへのリンク や CyberPassage version2.0についてのドキュメントを追加 しました。
    • コンバータ vrml1to2を version1.2aへ更新しました。
    • NEC PC-98シリーズのトラブルについての ページを追加しました。
    • '96 5月 31日に"Cyber Passage "version2 β1の無償ダウンロードサービスをはじめました。 前回のα版からさらにVRML2.0 に対応させたブラウザです。
    • '96 5月 17日に"Cyber Passage Bureau" Windows95 α版の無償ダウンロードサービスをはじめました。
    • '96 5月 17日に VRML 1.0 のデータを VRML 2.0 のデータに変換するコンバータの提供をはじめました。
    • '96 4月 25日に"Cyber Passage " version2 alpha の無償ダウンロードサービスをはじめました。世界初の VRML2.0 対応インターネットブラウザです。
    • '96 4月 10日に"Cyber Passage" β4版の無償ダウンロードサービスをはじめました。Internet World Expo Sony Pavilionと連係し、 マルチユーザーワールド CIRCUS PARK をお楽しみいただけます。
    • '96 3月 7日 Mark Pesce氏を迎えたVRML BOF が原宿ラフォーレで開催されました。
    • '96 3月 Mailing Listのトラブルにおける謝罪文
    • '96 3月 6日 シリコングラフィックス、ソニー、ワールドメーカー Web上に3Dアプリケーションを構築する次世代VRMLの仕様として "Moving Worlds"を共同提案
    • インターネット分野の主要56社がサポートを表明
    • '96 3月 6日 Cyber Passage Bureau USAでのパブリックアクセステスト、 USA用 β3版、 "Cyber Passage Conductor" β3版の 無償ダウンロードサービスをはじめました。
    • '96 2月28日に"Cyber Passage" β3版の無償ダウンロードサービスをはじめました。
    • '96 2月28日 Cyber Passage Bureau パブリックアクセステストを開始しました。
    • '96 2月13日 F.A.Q.のページを開始しました。
    • '96 1月30日に"Cyber Passage Conductor" β2版の 無償ダウンロードサービスをはじめました。
    • '96 1月29日に"Cyber Passage Bureau"の 社内βテストを開始しました。
    • '96 1月29日に"Cyber Passage" β2版の 無償ダウンロードサービスをはじめました。
    • '96 1月18日より USA MIRROR SITE のサービスをはじめました。
    • '96 2月21日~23日にMonacoで行われるImagina'96にCyber Passage, Cyber Passage Conductorを出展いたします。
    • '95 12月25日にVRMLソフトウェアシリーズ "Cyber Passage" β版の 無償ダウンロードサービスをはじめました。
    • '95 12月13日~15日にサンディエゴで行われたVRML'95において、私たちの提唱する Multi Userに関する 論文発表を行いました。

    用語と歴史

    ●関連用語集

    blank Community Place WLS
    blank
    CommunityPlaceとは、仮想空間の運用・管理を容易にし、Community Place Bureau を強力にサポートできる。Bureau に許容人数を超えてユーザーからアクセスがあった場合にその旨を連絡したり、物理的に複数のBureau で運営されている場合に、接続可能なBureau に自動的に接続することが可能。

    blank Community Place Application Object Server
    blank
    Community Place Bureau と共に使用して、Community Place 機能を拡張することにより、さまざまな表情を与えるサーバソフトウェア。例えば、仮想空間内に毎日内容の変わる広告を掲示したり、愛嬌を振りまくペットを歩かせたり、時刻や季節によって変化する景色などを加えたり、変化に富んだ魅力的な空間の構築・運営が可能。

    blank Community Place Browser
    blank
    ユーザーが仮想空間にアクセスするためのソフトウェア。広くVRMLコンテンツの高速実行を可能にすると共に、仮想空間内でのマルチユーザー機能が提供されている。

    blank VRML
    blank
    Virtual Reality Modeling Language の略。WWW上で3次元モデルを扱うためのデータ形式。最新の VRML97 はソニーや SGI社らが中心となって ISO で標準化された。VRML形式に対応したブラウザを使用することで、3次元物体を閲覧したり、3次元空間内を移動したりすることができる。

    blank JAVA
    blank
    Sun Microsystems 社が開発したプログラミング言語。オブジェクト指向をベース にしており、安定性、安全性に優れていることが特徴。プログラムのソースコードをバイトコードと呼ばれる中間言語に変換してから実行するので、異なるプラットフォーム上でも同じプログラムを変更することなく実行できる。このため、Webブラウザ上でプログラムを実行するプラットフォームとして普及した。ネットワーク上での利用を想定しているため、セキュリティ面にも配慮がなされている。

    blank オーサリング
    blank
    CD-ROM や WWW 用のコンテンツを作成する作業のこと。一般には、テキストや画像、動画、音声などの素材を組み合わせて、画面上に配置したり、ストーリーにしたがって登場させたり、様々な効果を付けて表示したりする、統合的な編集作業のことを指す。ユーザーの操作に応じて展開するように、分岐や繰り返しなどをスクリプト言語等を用いて記述することが多い。

    blank Direct X
    blank
    Microsoft Windows 上で画像や音声などのマルチメディアを扱うためにMicrosoft が開発したソフトウェア技術群のこと。2Dグラフィックス、3Dグラフィックス、音声再生、ジョイスティック等の入力機器、ネットワーク上のマルチユーザープレイなどを扱う際にハードウェアの性能を最大限引き出すことを可能にする。Direct X は、Windows 98 以降や Windows NT 4.0 Service Pack 3 以降には標準で含まれているが、それ以前の Windows では別途組み込む必要がある。また、Direct X を活用するには、Direct X に対応したアプリケーションソフトウェアが必要。

    blank ●製品の歴史

    blank Community Placeは1995年、ソニーコンピューターサイエンス研究所の北野博士の構想に基づき、プロジェクト名「バーチャル・ソサエティー」としてソニー(株)アーキテクチャー研究所にて本格的な開発を行い、VRML2.0の仕様決定にも大きな貢献をしました。 1997年、日本市場におけるテストマーケティングと世界市場に対する評価版の配布を積極的に始め高い評価を得ました。 現在同研究所はCommunity Placeなどソニー・オリジナルのソフトウエア・ハウスとして本格的なビジネス活動を開始しました。