JPH11219449A - Information processing apparatus and method, and providing medium - Google Patents
Information processing apparatus and method, and providing mediumInfo
- Publication number
- JPH11219449A JPH11219449A JP3410098A JP3410098A JPH11219449A JP H11219449 A JPH11219449 A JP H11219449A JP 3410098 A JP3410098 A JP 3410098A JP 3410098 A JP3410098 A JP 3410098A JP H11219449 A JPH11219449 A JP H11219449A
- Authority
- JP
- Japan
- Prior art keywords
- program
- virtual
- vrml
- data
- display
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
(57)【要約】
【課題】 オブジェクトの表示を制御するプログラムの
ファイルサイズを小さくする。
【解決手段】 ステップS21において、オブジェクト
を表示させるのに必要なプログラムが起動される。この
プログラムには、オブジェクトを移動させるのに必要な
データは記述されていない。ステップS22において、
ローディングプログラムが起動される。起動されたロー
ディングプログラムは、ステップS23において、オブ
ジェクトの移動を制御するのに必要なデータを選択し、
ステップS21で起動されたプログラムに代入する。そ
して、ステップS24において、代入されたデータを基
に、オブジェクト(仮想ペット)の移動が表示される。
(57) [Summary] [PROBLEMS] To reduce the file size of a program for controlling display of an object. SOLUTION: In step S21, a program necessary for displaying an object is started. This program does not describe data necessary for moving the object. In step S22,
The loading program starts. The activated loading program selects data necessary for controlling the movement of the object in step S23,
Substitute in the program started in step S21. Then, in step S24, the movement of the object (virtual pet) is displayed based on the substituted data.
Description
【0001】[0001]
【発明の属する技術分野】本発明は、情報処理装置およ
び方法、並びに提供媒体に関し、特に、VRMLを用いて記
述されたプログラムのInterpolatorの部分を空のフィー
ルドにしておき、このフィールドの数値リストを順次入
れ替えることにより、アニメーション表示を可能にし、
かつプログラムのファイルサイズを小さくする情報処理
装置および方法、並びに提供媒体に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus and method, and a providing medium. More particularly, the present invention relates to a program described using VRML in which an Interpolator portion is set to an empty field, and a numerical list of this field is stored. By sequentially replacing, animation display is possible,
Also, the present invention relates to an information processing apparatus and method for reducing the file size of a program, and a providing medium.
【0002】[0002]
【従来の技術】従来、NIFTY-Serve(商標)や米国のCompu
Serve(商標)などのように、複数の利用者が自らのパー
ソナルコンピュータを、モデムおよび公衆電話回線網を
介してセンターのホストコンピュータに接続し、所定の
通信プロトコルに基づいてホストコンピュータにアクセ
スする、いわゆるパソコン通信サービスの分野において
は、Habitat(商標)と呼ばれるサイバースペースのサ
ービスが知られている。2. Description of the Related Art Conventionally, NIFTY-Serve (trademark) and US Compu
A plurality of users, such as Serve (trademark), connect their personal computers to the center host computer via a modem and a public telephone network, and access the host computer based on a predetermined communication protocol. In the field of so-called personal computer communication services, a cyberspace service called Habitat (trademark) is known.
【0003】Habitatは、米国LucasFilm社によって1985
年から開発が始められ、米国商業ネットワークであるQu
antumLink社で約3年間運用された後、1990年2月に富士
通Habitat(商標)としてNIFTY-Serveでそのサービスが
開始されたものである。このHabitatにおいては、2次元
グラフィックスで描画された「ポピュロポリス(Populo
polis)」と呼ばれる仮想の都市に、アバタ(avatar;
インド神話に登場する神の化身)と呼ばれるユーザの分
身を送り込み、ユーザ同士がチャット(Chat;文字の入
力と表示によるテキストベースでのリアルタイムの対
話)などを行うことができる。このHabitatの更に詳細
な説明については、サイバースペース,マイケル・ベネ
ディクト編,1994年3月20日初版発行,NTT出版 ISBN
4−87188−265−9C0010(原著;Cyberspace:First Ste
ps ,Michael Benedikt,ed. 1991,MIT PressCambrige,MA
ISBN0−262−02327−X)第282頁乃至第307頁を参照さ
れたい。[0003] Habitat was established in 1985 by LucasFilm of the United States.
Quark, a U.S. commercial network,
After operating for about three years at antumLink, the service was launched on NIFTY-Serve in February 1990 as Fujitsu Habitat (trademark). In this Habitat, “Populopolis” drawn in two-dimensional graphics
polis) "in a virtual city called avatar;
By sending in alternations of users called incarnations of God that appear in Indian mythology, users can chat with each other (Chat; text-based real-time dialogue by inputting and displaying characters). For a more detailed description of Habitat, see Cyberspace, Michael Benedict, March 20, 1994, first edition, NTT Publishing ISBN
4-87188-265-9C0010 (Original; Cyberspace: First Ste)
ps, Michael Benedikt, ed. 1991, MIT PressCambrige, MA
ISBN 0-262-02327-X) pp. 282-307.
【0004】この種のパソコン通信サービスで運用され
ている従来のサイバースペースシステムにおいては、仮
想的な街並みや部屋の内部の様子が2次元グラフィック
スで描画されており、アバタを奥行きまたは手前方向へ
移動させる場合、単にアバタを2次元グラフィックスの
背景上で上下に移動させるだけであり、仮想空間内での
歩行や移動を疑似体験させるには表示の上での表現力が
乏しかった。また、自分の分身であるアバタと他人のア
バタが表示された仮想空間を、第3者の視点で見ること
になるため、この点においても、疑似体験の感覚が損な
われるものであった。In a conventional cyberspace system operated by this kind of personal computer communication service, a virtual cityscape or the inside of a room is drawn in two-dimensional graphics, and the avatar is moved in the depth or front direction. When moving, the avatar was simply moved up and down on the background of the two-dimensional graphics, and the simulated experience of walking and moving in the virtual space was poor in expressiveness on the display. In addition, since the virtual space in which the avatar of one's alter ego and the avatar of another person are displayed is viewed from the viewpoint of a third party, the sense of the simulated experience is impaired also in this point.
【0005】そこで、特開平9-81781号公報に開示され
ているように、仮想空間を3次元グラフィックスで表示
し、ユーザがアバタの視点で自由に歩き回れる機能が、
VRML(Virtual Reality Modeling Language)と呼ばれる3
次元グラフィクス・データの記述言語を利用することに
よって実現されている。また、ユーザの代理となるアバ
タを用いてチャットを行う種々のサイバースペースの考
察に関しては、日経エレクトロニクス1996.9.9(no.670)
の第151頁乃至159頁に記載されている。Therefore, as disclosed in Japanese Patent Application Laid-Open No. 9-81781, a function of displaying a virtual space in three-dimensional graphics so that a user can freely walk around from the viewpoint of an avatar has been proposed.
VRML (Virtual Reality Modeling Language) 3
This is realized by using a description language of dimensional graphics data. Regarding various cyberspaces where chats are performed using avatars on behalf of users, see Nikkei Electronics 1996.9.9 (no.670)
Pp. 151-159.
【0006】一方、近年、パーソナルコンピュータ用の
ソフトウェア・プログラムとして、熱帯魚を育てる飼育
シミュレーション・ゲームや、仮想世界に住んでいる人
工知能をもった仮想生物を育てる飼育シミュレーション
・ゲームなどが知られている。また、電子手帳に犬や猫
等の疑似ペットを表示して、その成長過程を楽しめるよ
うにした製品も知られている(日経エレクトロニクス19
97.4.7(no.686)の第131頁乃至134頁参照)。さらには、
この種の飼育シミュレーション・ゲーム・プログラムを
組込んだ、たまご大の携帯電子ペットとして、バンダイ
株式会社が開発・製品化した「たまごっち(商標)」が
広く知られている。On the other hand, in recent years, breeding simulation games for growing tropical fish, breeding simulation games for growing virtual creatures with artificial intelligence living in a virtual world, and the like have been known as software programs for personal computers. . Also, there is known a product in which pseudo pets such as dogs and cats are displayed on an electronic organizer so that the growing process can be enjoyed (Nikkei Electronics 19
97.4.7 (no.686), pages 131 to 134). Furthermore,
Tamagotchi (trademark) developed and commercialized by Bandai Corporation is widely known as an egg-sized portable electronic pet incorporating this kind of breeding simulation game program.
【0007】この種の携帯電子ペットは、1チップのLS
I(大規模集積回路)にCPU(中央処理装置)やROM、RAM
等が内蔵されており、そのROM内に飼育シミュレーショ
ン・ゲーム・プログラムが格納され、さらにLCD(液晶
表示装置)によって仮想的なペットの姿や状態が表示さ
れるようになっている。ユーザは、操作ボタンを操作し
て、「食事を与える」、「掃除をする」など、ペットと
しての仮想生物を飼育するのに必要な指示を与える。こ
の結果として、LCDで表示される仮想生物が成長し、そ
の成長の過程で、仮想生物の外観が、例えば、たまご、
ひよこ、成鳥へと段階的に変化していく。This kind of portable electronic pet is a one-chip LS
CPU (Central Processing Unit), ROM, RAM for I (Large Scale Integrated Circuit)
A breeding simulation game program is stored in the ROM, and a virtual pet figure and state are displayed on an LCD (liquid crystal display device). The user operates the operation button to give an instruction such as “feed” or “clean” necessary for breeding a virtual creature as a pet. As a result, the virtual creature displayed on the LCD grows, and in the course of the growth, the appearance of the virtual creature becomes, for example, an egg,
Chickens gradually change to adults.
【0008】また、ユーザのボタン操作に応じて、その
指示が適切ならば順調に仮想生物が成長し、不適切なら
ば、病気になったり死亡してしまうようにプログラムさ
れている。さらに、内部に組込まれているカレンダ・タ
イマーによって得られる仮想生物の誕生時点からの経過
時間に基づいて、仮想生物側より各種の要求が行われる
ようにプログラムされている。例えば夜間の時間帯では
仮想生物より睡眠の要求がなされ、食事の時間帯には食
事の要求があり、またランダムにおやつや遊びの要求が
なされる。これらの要求にユーザが適切に対応しない場
合、仮想生物の成長が遅れたり、性格が悪化したりす
る。一方、ユーザが適切に対応した場合には、仮想生物
の寿命が伸びるようにプログラムされている。In addition, according to the user's button operation, it is programmed that the virtual creature grows smoothly if the instruction is appropriate, and becomes ill or dies if the instruction is inappropriate. Furthermore, the virtual creature is programmed to make various requests based on the elapsed time from the birth of the virtual creature obtained by the calendar timer incorporated therein. For example, in the night time zone, a request for sleep is made by the virtual creature, in the meal time zone, a meal request is made, and a request for a snack or play is made at random. If the user does not properly respond to these requests, the growth of the virtual creature is delayed or the character is deteriorated. On the other hand, if the user responds appropriately, the program is programmed to extend the life of the virtual creature.
【0009】ここで、例えば、特開平07-160853号公報
には、電子手帳などに適用され、動物や植物等の生物の
成長過程に応じた画像を表示する技術が開示されてい
る。すなわち、植物キヤラクタの成長過程の各段階のビ
ットマップ画像をROMに格納しておき、成長度に応じた
植物キャラクタをLCDに表示させると共に、予めROMに記
憶されている植物成長要素(水、光、肥料)の各キヤラ
クタを表示させ、それら各成長要素の投与量をキー入力
することで、その投与量に応じた各成長要素の値がRAM
内の水量レジスタ、光量レジスタ、肥料量レジスタに各
々セツトされ、これらの各レジスタの値に基づいて、新
たな成長度が算出され、その算出された成長度に対応し
た植物キヤラクタがROMから読み出されてLCDに表示され
る。これにより、ユーザの飼育状況に応じた植物の成長
過程が表示される。[0009] For example, Japanese Patent Application Laid-Open No. 07-160853 discloses a technique applied to an electronic organizer or the like and displaying an image according to a growth process of an organism such as an animal or a plant. That is, a bitmap image of each stage of the growth process of the plant character is stored in the ROM, a plant character corresponding to the growth degree is displayed on the LCD, and the plant growth elements (water, light, etc.) stored in the ROM in advance are stored. , Fertilizer), and by keying in the dose of each growth element, the value of each growth element according to the dose is stored in RAM.
Are set in the water quantity register, light quantity register, and fertilizer quantity register, respectively, a new growth rate is calculated based on the values of these registers, and a plant character corresponding to the calculated growth rate is read from the ROM. Is displayed on the LCD. Thereby, the growth process of the plant according to the breeding situation of the user is displayed.
【0010】上述した仮想生物の挙動を制御する際に用
いられるプログラムの記述言語として、VRMLを用いたプ
ログラムの一例を、以下に示す。An example of a program using VRML as a description language of a program used for controlling the behavior of the above-mentioned virtual creature is shown below.
【0011】 1: # 2: # 3D Model 3: # 4: Transform{ 5: children[ 6: DEF Body Transform{ 7: } 8: ] 9: } 10: # 11: # TIMER 12: # 13: DEF TIME TimeSensor{ 14: stopTime -1 15: } 16: # 17: # Interpolators 18: # 19: DEF Body_Mover PositionInterpolator{ 20: key [0,1] 21: keyValue [000,100] 22: } 23: DEF Body_Turner OrientationInterpolator{ 24: key [0,1] 25: keyValue [0100,0101.57] 26: } 27: # 28: # Routing 29: # 30: ROUTE TIME.fraction_changed TO Body_Mover.set_fraction 31: ROUTE Body_Mover.value_changed TO Body.set_translation 32: ROUTE TIME.fraction_changed TO Body_Turner.set_fraction 33: ROUTE Body_Turner.value_changed TO Body.set_rotation[0011] 1: # 2: # 3D Model 3: # 4: Transform {5: children [6: DEF Body Transform {7:} 8:] 9:} 10: # 11: # TIMER 12: # 13: DEF TIME TimeSensor {14: stopTime -1 15:} 16: # 17: # Interpolators 18: # 19: DEF Body_Mover PositionInterpolator {20: key [0,1] 21: keyValue [000,100] 22:} 23: DEF Body_Turner OrientationInterpolator { 24: key [0,1] 25: keyValue [0100,0101.57] 26:} 27: # 28: # Routing 29: # 30: ROUTE TIME.fraction_changed TO Body_Mover.set_fraction 31: ROUTE Body_Mover.value_changed TO Body.set_translation 32 : ROUTE TIME.fraction_changed TO Body_Turner.set_fraction 33: ROUTE Body_Turner.value_changed TO Body.set_rotation
【0012】このプログラムは、図29に示すような構
造になされている。すなわち1乃至9行目は3D Modelに
相当し、10乃至15行目はTimerに相当し、16乃至
26行目はInterpolatorsに相当し、27乃至33行目
はRoutingに相当する。3D Modelは、Transformノードか
ら成り立っており、オブジェクトのグループに一般的な
座標変換を適用し、作成する3次元空間を整えるために
用いられる。This program has a structure as shown in FIG. That is, lines 1 to 9 correspond to the 3D Model, lines 10 to 15 correspond to the Timer, lines 16 to 26 correspond to the Interpolators, and lines 27 to 33 correspond to the Routing. The 3D Model is composed of Transform nodes, and is used to apply a general coordinate transformation to a group of objects to arrange a three-dimensional space to be created.
【0013】Timerは、イベントの開始時刻や終了時刻
を定める場合に用いられる。また、Interpolatorsは、
オブジェクトに動きを付ける場合に用いられる。Routin
gは、イベントの引き渡しを行う場合に用いられる。次
に具体的にディスプレイ上に直方体を表示させ、その直
方体を移動させる場合のプログラムの例を、以下に示
す。Timer is used to determine the start time and end time of an event. Interpolators also
Used to add movement to an object. Routin
g is used when delivering an event. Next, an example of a program for specifically displaying a rectangular parallelepiped on a display and moving the rectangular parallelepiped is shown below.
【0014】 1: #VRML V2.0 utf8 2: WorldInfo {title "PositionInterpolatorDemo" } 3: NavigationInfo {headlight TRUE} 4: Viewpoint { 5: position 3.300000 3.300000 13.600359 6: fieldOfView 0.785398 7: } 8: Background { 9: skyColor 111 10: } 11: DEF OBJ Transform { 12: children [ 13: DEF TS TouchSensor {} 14: Shape { 15: appearance Appearance { 16: material Material {diffuseColor100} 17: } 18: geometry Box {} 19: } 20: ] 21: } 22: DEF TIS TimeSenser {cycleInterval 5} 23: DEF PI PositionInterpolator{ 24: key [0,0.2,0.4,0.6,0.8,1.0] 25: keyValue [0 0 0,0 0 -2,0 2 -4,0 4 -6,2 4 -6,4 2 -6] 26: } 27: ROUTE TS.touchTime TO TIS.set_startTime 28: ROUTE TIS.fraction_changed TO PI.set_fraction 29: ROUTE PI.value_changed TO OBJ.set_translation1: #VRML V2.0 utf8 2: WorldInfo {title "PositionInterpolatorDemo"} 3: NavigationInfo {headlight TRUE} 4: Viewpoint {5: position 3.300000 3.300000 13.600359 6: fieldOfView 0.785398 7:} 8: Background {9: skyColor 111 10:} 11: DEF OBJ Transform {12: children [13: DEF TS TouchSensor {} 14: Shape {15: appearance Appearance {16: material Material {diffuseColor100} 17:} 18: geometry Box {} 19:} 20:] 21:} 22: DEF TIS TimeSenser {cycleInterval 5} 23: DEF PI PositionInterpolator {24: key [0,0.2,0.4,0.6,0.8,1.0] 25: keyValue [0 0 0,0 0 -2, 0 2 -4,0 4 -6,2 4 -6,4 2 -6] 26:} 27: ROUTE TS.touchTime TO TIS.set_startTime 28: ROUTE TIS.fraction_changed TO PI.set_fraction 29: ROUTE PI.value_changed TO OBJ.set_translation
【0015】1乃至10行目においては、このプログラ
ムのタイトル(WorldInfo)、オブジェクトに対しての
光の当て方(NavigationInfo)、オブジェクトを見る視
点(Viewpoint)、および背景色(Background)が設定
されている。11乃至21行目は、3D Modelにあたると
ことであり、オブジェクトとして直方体(Box)が指定
されている。In the first to tenth lines, the title (WorldInfo) of this program, how to illuminate the object (NavigationInfo), the viewpoint for viewing the object (Viewpoint), and the background color (Background) are set. I have. Lines 11 to 21 correspond to the 3D Model, and a rectangular parallelepiped (Box) is specified as the object.
【0016】22行目は、Timerにあたるところであ
り、5秒の間イベントを発生する(cycleInterval 5)
ことを指示している。23乃至26行目は、Interpolat
orにあたるところであり、オブジェクトの移動に関する
数値リストをkeyフィールド、keyValueフィールドで定
めている。このkeyフィールドとkeyValueフィールドの
数値リストに従って、オブジェクトは画面上を移動す
る。27乃至29行目は、Routingにあたるところであ
り、イベントの受け渡しが指示されている。Line 22 is equivalent to Timer, and generates an event for 5 seconds (cycleInterval 5).
I have indicated that. Lines 23 and 26 are Interpolat
It is equivalent to or, and the numerical value list related to the movement of the object is defined by the key field and keyValue field. The object moves on the screen according to the numerical list of the key field and the keyValue field. Lines 27 to 29 correspond to Routing, and an event delivery is instructed.
【0017】図30は、上述したプログラムによりディ
スプレイ上に表示された直方体の表示例を示している。
始めに直方体は、この表示例で示された位置に表示され
ている。そして、この直方体は、5段階(図30中のSt
ep1乃至5)の移動経路を経て、図31に示された位置
まで移動する。この移動は3次元的に行われ、図31に
示した直方体は、図30に示した直方体より後方に存在
するため、小さく表示されている。FIG. 30 shows a display example of a rectangular parallelepiped displayed on the display by the above-mentioned program.
First, the cuboid is displayed at the position shown in this display example. Then, this rectangular parallelepiped has five stages (St in FIG. 30).
It moves to the position shown in FIG. 31 via the movement route of ep1 to ep5). This movement is performed three-dimensionally, and the rectangular parallelepiped shown in FIG. 31 is displayed smaller because it exists behind the rectangular parallelepiped shown in FIG.
【0018】[0018]
【発明が解決しようとする課題】ところで、オブジェク
トに対し複雑な動きをさせる場合、図29に示したよう
に、Timer、Interpolator、Routingが必要回数繰り返え
される。その為、挙動の複雑さに比例し、そのプログラ
ムのファイルサイズは大きくなる。By the way, when making an object make a complicated movement, as shown in FIG. 29, Timer, Interpolator, and Routing are repeated a required number of times. Therefore, the file size of the program increases in proportion to the complexity of the behavior.
【0019】また例えば、仮想生物(オブジェクト)の
右腕を上げる、左腕を上げる、両腕を上げる、といった
それぞれの動作に対して、1つのファイルを作らなけれ
ばならないため、ファイルサイズの大きいプログラム
を、複数保持しなくては、複雑な挙動をする仮想生物を
表示することができないという課題があった。For example, one file must be created for each operation such as raising the right arm, raising the left arm, and raising both arms of a virtual creature (object). Unless a plurality of virtual creatures are held, there is a problem that a virtual creature having a complicated behavior cannot be displayed.
【0020】本発明はこのような状況を鑑みてなされた
ものであり、オブジェクトの表示に必要なプログラム
に、オブジェクトの挙動に必要なデータを、順次読み込
むようにし、もって、プログラムのファイルサイズを小
さくするようにするものである。The present invention has been made in view of such a situation, and data necessary for the behavior of an object is sequentially read into a program required for displaying the object, thereby reducing the file size of the program. It is something to do.
【0021】[0021]
【課題を解決するための手段】請求項1に記載の情報処
理装置は、オブジェクトの表示を制御するプログラムを
起動させる起動手段と、プログラムにより表示されるオ
ブジェクトを動かすのに必要なデータを保持する保持手
段と、データを選択し、プログラムに代入する選択代入
手段と、選択代入手段により代入されたデータを基に、
プログラムがオブジェクトの表示を制御する表示制御手
段とを備えることを特徴とする。According to an embodiment of the present invention, there is provided an information processing apparatus, comprising: starting means for starting a program for controlling display of an object; and data necessary for moving the object displayed by the program. Holding means, selecting and assigning means for selecting and assigning data to the program, and based on the data assigned by the selecting and assigning means,
The program is provided with display control means for controlling display of the object.
【0022】請求項4に記載の情報処理方法は、オブジ
ェクトの表示を制御するプログラムを起動させる起動ス
テップと、プログラムで表示されるオブジェクトを動か
すのに必要なデータを保持する保持ステップと、データ
を選択し、プログラムに代入する選択代入ステップと、
選択代入ステップで代入されたデータを基に、プログラ
ムがオブジェクトの表示を制御する表示制御ステップと
を備えることを特徴とする。According to a fourth aspect of the present invention, there is provided an information processing method comprising: a starting step of starting a program for controlling display of an object; a holding step of holding data necessary for moving an object displayed by the program; A selection substitution step of selecting and substituting into a program;
A display control step of controlling the display of the object based on the data substituted in the selective substitution step.
【0023】請求項5に記載の提供媒体は、オブジェク
トの表示を制御するプログラムを起動させる起動ステッ
プと、プログラムで表示されるオブジェクトを動かすの
に必要なデータを保持する保持ステップと、データを選
択し、プログラムに代入する選択代入ステップと、選択
代入ステップで代入されたデータを基に、プログラムが
オブジェクトの表示を制御する表示制御ステップとを備
えるコンピュータプログラムを提供することを特徴とす
る。According to a fifth aspect of the present invention, there is provided the providing medium, wherein a starting step for starting a program for controlling the display of the object, a holding step for holding data necessary for moving the object displayed by the program, and a step of selecting data. The present invention is also characterized in that a computer program is provided which includes a selective substitution step for substituting into a program, and a display control step in which the program controls the display of an object based on the data substituted in the selective substitution step.
【0024】請求項1に記載の情報処理装置、請求項4
に記載の情報処理方法、および請求項5に記載の提供媒
体おいては、オブジェクトの表示を制御するプログラム
が起動され、そのプログラムで表示されるオブジェクト
を動かすのに必要なデータが選択され、そして、プログ
ラムに代入され、代入されたデータを基に、オブジェク
トの表示が制御される。[0024] The information processing apparatus according to claim 1, and claim 4.
In the information processing method according to the item (1) and the providing medium according to the item (5), a program for controlling display of an object is started, data necessary for moving the object displayed by the program is selected, and Is assigned to the program, and the display of the object is controlled based on the assigned data.
【0025】[0025]
【発明の実施の形態】以下に本発明の実施の形態を説明
するが、特許請求の範囲に記載の発明の各手段と以下の
実施の形態との対応関係を明らかにするために、各手段
の後の括弧内に、対応する実施の形態(但し一例)を付
加して本発明の特徴を記述すると、次のようになる。但
し、勿論この記載は、各手段を記載したものに限定する
ことを意味するものではない。DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiments of the present invention will be described below. In order to clarify the correspondence between each means of the invention described in the claims and the following embodiments, each means is described. When the features of the present invention are described by adding the corresponding embodiment (however, an example) in parentheses after the parentheses, the result is as follows. However, of course, this description does not mean that each means is limited to those described.
【0026】請求項1に記載の情報処理装置は、オブジ
ェクトの表示を制御するプログラムを起動させる起動手
段(例えば、図24のステップS21)と、プログラム
により表示されるオブジェクトを動かすのに必要なデー
タ(例えば、モーションデータ)を保持する保持手段
(例えば、図7のHDD13a)と、データを選択し、
プログラムに代入する選択代入手段(例えば、図24の
ステップS23)と、選択代入手段により代入されたデ
ータを基に、プログラムがオブジェクトの表示を制御す
る表示制御手段(例えば、図27のステップS24)と
を備えることを特徴とする。[0026] The information processing apparatus according to the first aspect of the present invention includes an activating means (for example, step S21 in FIG. 24) for activating a program for controlling display of an object, and data necessary for moving the object displayed by the program. (For example, the HDD 13a in FIG. 7) for holding data (for example, motion data),
A selection substituting unit (for example, step S23 in FIG. 24) for substituting into a program, and a display control unit (for example, step S24 in FIG. 27) in which the program controls the display of an object based on the data substituted by the selection substituting unit. And characterized in that:
【0027】以下、図面を参照し、本発明の実施の形態
について説明する。Hereinafter, embodiments of the present invention will be described with reference to the drawings.
【0028】説明に先立ち、世界的規模で構築されたコ
ンピュータネットワークであるインターネット(The Int
ernet)において、様々な情報を提供するWWW(world wide
web)の枠組みを利用して3次元的な情報を統一的に扱
うことができる記述言語であるVRML(virtual reality m
odeling language)について説明する。Prior to the explanation, the Internet (The Int) which is a computer network constructed on a worldwide scale
ernet) to provide a variety of information
VRML (virtual reality m) is a description language that can handle three-dimensional information in a unified manner using the framework of (web).
odeling language).
【0029】ここで、インターネットで利用できる情報
提供システムとして、スイスのCERN(European Center
for Nuclear Research:欧州核物理学研究所)が開発し
たWWWが知られている。これは、テキスト、画像、音声
などの情報をハイパーテキスト形式で閲覧できるように
したもので、HTTP(Hyper Text Transfer Protocol)と呼
ばれるプロトコルに基づいて、WWWサーバに格納された
情報をパーソナルコンピュータなどの端末に非同期転送
するものである。Here, as an information providing system that can be used on the Internet, a Swiss CERN (European Center)
WWW developed by European Nuclear Physics Research Institute is known. This allows information such as text, images, and audio to be viewed in a hypertext format.In accordance with a protocol called HTTP (Hyper Text Transfer Protocol), information stored in a WWW server can be This is to perform asynchronous transfer to the terminal.
【0030】WWWサーバは、HTTPデーモン(HTTP:Hyper
Text Transfer Protocol、ハイパーテキスト転送プロト
コル)と呼ばれるサーバ・ソフトウエアとハイパーテキ
スト情報が格納されるHTMLファイルによって構成され
る。なお、デーモンとは、UNIX上で作業を行う場合、バ
ックグラウンドで管理や処理を実行するプログラムを意
味する。ハイパーテキスト情報は、HTML(HyperText Ma
rkup Language、ハイパーテキスト記述言語)と呼ばれ
る記述言語によって表現される。HTMLによるハイパーテ
キストの記述は、「<」と「>」で囲まれたタグと呼ば
れる書式指定によって文章の論理的な構造が表現され
る。他の情報とのリンクについての記述は、アンカーと
呼ばれるリンク情報によって行われる。アンカーによっ
て情報が存在する所を指定する際には、URL(Uniform Re
source Locator)が用いられる。The WWW server is an HTTP daemon (HTTP: Hyper)
It consists of server software called Text Transfer Protocol (Hypertext Transfer Protocol) and HTML files that store hypertext information. Note that a daemon means a program that performs management and processing in the background when working on UNIX. Hypertext information is HTML (HyperText Ma
rkup Language (hypertext description language). In the description of hypertext in HTML, the logical structure of a sentence is expressed by a format specification called a tag surrounded by “<” and “>”. Description of a link to other information is made by link information called an anchor. When specifying the location where the information exists by the anchor, use URL (Uniform Re
source Locator) is used.
【0031】HTMLで記述されたファイルを、TCP/IP(Tra
nsmission Control Protocol/Internet Protocol)ネッ
トワーク上において転送するためのプロトコルがHTTPで
ある。クライアントからの情報の要求をWWWサーバに伝
え、HTMLファイルのハイパーテキスト情報をクライアン
トに転送する機能をもっている。A file described in HTML is transferred to TCP / IP (Tra
The protocol for transferring data on a network (nsmission Control Protocol / Internet Protocol) is HTTP. It has a function to transmit the information request from the client to the WWW server and to transfer the hypertext information of the HTML file to the client.
【0032】WWWを利用する環境として多く利用されて
いるのが、WWWブラウザ(ブラウザとは閲覧するという
意味)と呼ばれる、Netscape Navigator(米国Netscape
Communications社の商標)をはじめとするクライアン
ト・ソフトウエアである。A WWW browser that is widely used as an environment is called a WWW browser (a browser means browsing).
Communications software) and other client software.
【0033】このWWWブラウザを用いて、URLに対応する
世界規模で広がるインターネット上のWWWサーバ上のフ
ァイル、いわゆるホームページを閲覧することができ、
いわゆるネットサーフィンと呼ばれるように、リンクが
張られたホームページを次々と辿って、多種多様なWWW
の情報ソースにアクセスすることができる。Using this WWW browser, it is possible to browse files on a WWW server on the Internet, which corresponds to URLs, on the Internet, so-called home pages,
As it is called so-called Internet surfing, a wide variety of WWWs are traversed by linked home pages one after another.
Can access information sources.
【0034】近年、このWWWをさらに拡張し、3次元空間
の記述や、3次元グラフィックスで描画されたオブジェ
クトに対してハイパーテキストのリンクの設定を可能と
し、これらのリンクをたどりながらWWWサーバを次々と
アクセスできるようにしたVRMLと呼ばれる3次元グラフ
ィックス記述言語で記述された3次元空間を表示するVR
MLブラウザが開発されている。In recent years, the WWW has been further extended to enable description of a three-dimensional space and setting of hypertext links for objects drawn by three-dimensional graphics, and to follow a WWW server while following these links. VR that displays a three-dimensional space described in a three-dimensional graphics description language called VRML that can be accessed one after another
An ML browser has been developed.
【0035】このVRMLの詳細は、例えば、「VRMLを知
る:3次元電脳空間の構築とブラウジング〔マーク・ペ
ッシ著,松田晃一・蒲地輝尚・竹内彰一・本田康晃・暦
本純一・石川真之・宮下健・原和弘訳,1996年3月
25日初版発行,プレンティスホール出版ISBN4-931356
-37-0〕(原著;VRML:Browsing & Building Cyberspac
e,Mark Pesce, 1995 New Readers Publishing ISBN 1-5
6205-498-8))」、および「VRMLの最新動向とCybe
rPassage〔松田晃一・本田康晃著、bit(共
立出版)/1996 Vol.28 No.7 pp29 乃至pp36, No.8 pp5
7 乃至pp65, No.9pp29 乃至pp36, No.10 pp49乃至pp5
8〕」等の文献に記載されている。For details of this VRML, see, for example, “Knowing VRML: Construction and Browsing of Three-Dimensional Cyber Space [by Mark Pessi, Koichi Matsuda, Teruo Kamachi, Shoichi Takeuchi, Yasuaki Honda, Junichi Korumoto, Masayuki Ishikawa, Translated by Ken Miyashita and Kazuhiro Hara, first edition published on March 25, 1996, Prentice Hall Publishing ISBN4-931356
-37-0] (Original; VRML: Browsing & Building Cyberspac
e, Mark Pesce, 1995 New Readers Publishing ISBN 1-5
6205-498-8)) ”and“ VRML latest trends and Cybe ”
rPassage [Koichi Matsuda and Yasuaki Honda, bit (Kyoritsu Shuppan) / 1996 Vol.28 No.7 pp29-pp36, No.8 pp5
7 to pp65, No.9 pp29 to pp36, No.10 pp49 to pp5
8] ”.
【0036】また、 August 4, 1996における The Virt
ual Reality Modeling Language Version 2.0, ISO/IE
C CD 14772の公式かつ完全な仕様書は、http://webspac
e.sgi.com/moving-worlds/spec/index.htmlで公開され
ており、その日本語版は、http://www.webcity.co.jp/i
nfo/andoh/VRML/vrml2.0/spec-jp/index.htmlで公開さ
れている。Also, The Virt in August 4, 1996
ual Reality Modeling Language Version 2.0, ISO / IE
The official and complete specification of CCD 14772 can be found at http: // webspac
It is published at e.sgi.com/moving-worlds/spec/index.html, and its Japanese version is http://www.webcity.co.jp/i
It is published at nfo / andoh / VRML / vrml2.0 / spec-jp / index.html.
【0037】さらに、VRML2.0用ブラウザおよび共有
サーバ用ソフトウェアとしては、例えば、本出願人であ
るソニー株式会社が「Community Place Browser / Bure
au(商標)」として開発し、製品化しており、そのβ版
(試供版)を、インターネット上のホームページhttp:/
/vs.sony co.jpからダウンロード可能としている。Further, as the browser for VRML 2.0 and the software for the shared server, for example, Sony Corporation, which is the applicant of the present invention, describes “Community Place Browser / Bure”.
au (trademark) "and commercialized it, and its beta version (trial version) is
It can be downloaded from /vs.sony co.jp.
【0038】このようなVRML2.0を用いて3次元的な
仮想空間を構築しようとする場合、まず、VRMLにより仮
想空間内の物体(モデル)の形、動きおよび位置等を示
す図形データの作成(モデル作成)、ユーザが画面表示
された仮想空間内のモデルを、例えば、マウスでクリッ
クしてポインティングした場合にイベントを発生させる
スイッチ(センサ)のモデルへの付加(センサ付加)、
センサへのポインティングに応じて発生するイベントを
実現するスクリプトのプログラミング(スクリプト作
成)、センサーに対する操作とスクリプトの起動等、図
形データおよびスクリプト(以下、図形データ、スクリ
プトおよびVRMLに規定されているライト等のコモンノー
ド等を総称してノードとも記す)の間の対応付け(ルー
ティング)などによって所望のコンテンツを表現するVR
MLファイルを作成する。When a three-dimensional virtual space is to be constructed using VRML 2.0, first, figure data representing the shape, movement, position, etc. of an object (model) in the virtual space is created by VRML. (Model creation), adding a switch (sensor) to the model that generates an event when the user clicks and points the model in the virtual space displayed on the screen (sensor addition),
Programming of scripts (script creation) to realize events that occur in response to pointing to sensors, operation of sensors and activation of scripts, graphic data and scripts (graphic data, scripts, lights defined in VRML, etc.) VR that expresses desired content by associating (routing) between common nodes etc.
Create an ML file.
【0039】例えば、http://www.ses.co.jp/SES/STAFF
/kan/howto/howto1.htmlには、VRML2.0の書き方、サン
プルデータなど、丁寧に解説されている。その一部を紹
介すると、以下の通りである。For example, http://www.ses.co.jp/SES/STAFF
/kan/howto/howto1.html explains carefully how to write VRML 2.0 and sample data. Some of them are introduced below.
【0040】1.VRML2.0で書かれたワールドを見るにはH
TML形式で書かれたデータを見るためにHTMLブラウザが
必要なように、VRML2.0形式で書かれたデータを見るた
めにはVRML2.0に対応したVRMLブラウザが必要となる。
尚、このページで作成したVRML2.0のデータは全てSONY
社製のCommunity Place Browserで行なわれている。ま
た、ファイルがVRMLで書かれたことを表すためにファイ
ルの拡張子を*.wrl(ワールドの意)に、更にVRML2.0で
書かれたことを表すためにファイルの1行目に #VRML V2.0 utf8 と書くことが必要である。1. To see the world written in VRML2.0, H
Just as an HTML browser is required to view data written in TML format, a VRML browser that supports VRML 2.0 is required to view data written in VRML 2.0 format.
All VRML 2.0 data created on this page is SONY
This is being done at the Community Place Browser. To indicate that the file was written in VRML, the file extension was set to * .wrl (meaning world), and to indicate that it was written in VRML 2.0, the first line of the file was #VRML It is necessary to write V2.0 utf8.
【0041】2.VRML2.0データの基本構造 VRML2.0のデータはノード(Node)とフィールド(Field)で
構成されていて、基本的に次のような形で書かれてい
る。 Node { Field(s) } この中でFieldsは省略することができるが、Nodeと中か
っこ'{','}'は省略することができない。フィールドは
ノードに変数を渡し、ノードのパラメータを指定しま
す。フィールドを省略した場合、デフォルト値が用いら
れる。また、フィールドには単一の値しか持たない「単
一値フィールド(SF)」と複数の値を持つ「複値フィール
ド(MF)」があり、単一値フィールドの名前は"SF"で、複
値フィールドは"MF"で始まるようになっている。2. Basic Structure of VRML2.0 Data VRML2.0 data is composed of nodes and fields, and is basically written in the following form. Node {Field (s)} In this, Fields can be omitted, but Node and curly braces '{', '}' cannot be omitted. Fields pass variables to nodes and specify parameters for nodes. If the field is omitted, the default value will be used. There are two types of fields: "single-value field (SF)" that has only a single value and "multi-value field (MF)" that has multiple values. The name of the single-value field is "SF". Multi-valued fields begin with "MF".
【0042】3.球の書き方 VRML2.0では球や直方体、円柱、円錐などの基本図形を
描くためのノードが用意されている。前にも書いている
が、それぞれのノードはパラメータを指定するためのフ
ィールドを持っている。例えば、球を描くためのSphere
ノードは半径を指定するためのradiusというフィールド
を持っており、次のように書くことで半径1の球を表示
する。尚、radiusフィールドのデータタイプは、SFFloa
tですから、1つの浮動小数点数の値をとる。3. How to Write a Sphere In VRML2.0, nodes for drawing basic figures such as a sphere, a rectangular parallelepiped, a cylinder, and a cone are prepared. As mentioned earlier, each node has a field for specifying parameters. For example, Sphere for drawing a sphere
The node has a radius field to specify the radius, and a sphere with a radius of 1 is displayed by writing as follows. The data type of the radius field is SFFloa
So it takes one floating point value.
【0043】Sample1 1: #VRML V2.0 utf8 2: Transform { 3: children [ 4: Shape { 5: geometry Sphere { radius 1 } 6: } 7: ] 8: }Sample11: #VRML V2.0 utf8 2: Transform {3: children [4: Shape {5: geometry Sphere {radius 1} 6:} 7:] 8:}
【0044】実は2,3行目、7,8行目は書かなくてもかま
いません。1行目と4行目乃至6行目だけで、きちんと半
径1の球を表示できる。Transformノードは、Groupノー
ドという種類のノードの1つで、文字通りノードのグル
ープ化を行うためのノードである。Transformノードを
含めて、後でてくる他のノードの詳しい機能やフィール
ドなどは「Appendix1:VRML2.0 Node List」を参照され
たい。球を書くためのノードはSphereであるが、このノ
ードはGeometryノードを呼ばれるノードの1つである。
Geometryノードは、見え方と形状を定義するShapeノー
ドのgeometryフィールドに書く必要がある。In fact, lines 2 and 3 and lines 7 and 8 need not be written. Only the first line and the fourth to sixth lines can display a sphere with a radius of 1 properly. The Transform node is one of the types of nodes called Group nodes, and is a node for literally grouping nodes. Please refer to "Appendix1: VRML2.0 Node List" for detailed functions and fields of other nodes that will come later, including the Transform node. The node for writing the sphere is Sphere, and this node is one of the nodes called the Geometry node.
Geometry nodes must be written in the geometry field of the Shape node that defines the appearance and shape.
【0045】4.球に色を付ける 先ほどの球に色を付けるには次のように書く。 Sample2 1: #VRML V2.0 utf8 2: Transform { 3: children [ 4: Shape { 5: appearance Appearance { 6: material Material { diffuseColor 1 0 0 } 7: } 8: geometry Sphere { radius 1 } 9: } 10: ] 11: }4. Coloring the Sphere To color the sphere just described, write as follows. Sample2 1: #VRML V2.0 utf8 2: Transform {3: children [4: Shape {5: appearance Appearance {6: material Material {diffuseColor 1 0 0} 7:} 8: geometry Sphere {radius 1} 9:} 10:] 11:}
【0046】この球は赤色で表示される。追加されたの
は5行目乃至7行目までである。diffuseColorフィールド
のデータタイプは、SFColorであるから、RGBカラーを表
す3つの単精度浮動小数点数の組を1つだけ持つ。見え
方を定義するMaterialノードはAppearanceノードのmate
rialフィールドに書くことになっています。また、Appe
aranceノードはShapeノードのappearanceフィールドに
書くことになっている。このためこのような一見複雑な
構造になっている。This sphere is displayed in red. Lines 5 to 7 are added. Since the data type of the diffuseColor field is SFColor, it has only one set of three single-precision floating-point numbers representing RGB colors. The Material node that defines the appearance is the mate of the Appearance node
It is to be written in the rial field. Appe
The arance node is to be written in the appearance field of the Shape node. Therefore, such a seemingly complicated structure is obtained.
【0047】5.テクスチャの張り付け オブジェクトに色を付けるだけではなくて画像ファイル
を張り付けることもできる。VRML2.0でテクスチャとし
て利用できるファイルフォーマットはJPEG,GIF,PNGであ
る。ここでは予め用意したGIFイメージを使っている。 Sample3 1: #VRML V2.0 utf8 2: Transform { 3: children [ 4: Shape { 5: appearance Appearance { 6: texture ImageTexture { url "image.gif" } 7: } 8: geometry Box {} 9: } 10: ] 11: }5. Pasting Textures In addition to coloring objects, image files can also be pasted. The file formats that can be used as textures in VRML2.0 are JPEG, GIF, and PNG. Here, a GIF image prepared in advance is used. Sample3 1: #VRML V2.0 utf8 2: Transform {3: children [4: Shape {5: appearance Appearance {6: texture ImageTexture {url "image.gif"} 7:} 8: geometry Box {} 9:} 10:] 11:}
【0048】テクスチャを張り付けているのは6行目で
ある。ImageTexureノードはAppearanceノードのtexture
フィールドに書くことになっているため、このような書
き方になる。尚、8行目のBoxノードは直方体を描くため
のノードである。The sixth line applies the texture. ImageTexure node is the texture of Appearance node
This is how it is written because it is supposed to be written in the field. Note that the Box node on the eighth line is a node for drawing a rectangular parallelepiped.
【0049】6.物体の位置を移動させる 次にこの赤色の球を右に移動させる。 Sample4 1: #VRML V2.0 utf8 2: Transform { 3: translation 2 0 0 4: children [ 5: Shape { 6: appearance Appearance { 7: material Material { diffuseColor 1 0 0 } 8: } 9: geometry Sphere { radius 1 } 10: } 11: ] 12: }6. Move the position of the object Next, move this red sphere to the right. Sample4 1: #VRML V2.0 utf8 2: Transform {3: translation 2 0 0 4: children [5: Shape {6: appearance Appearance {7: material Material {diffuseColor 1 0 0} 8:} 9: geometry Sphere { radius 1} 10:} 11:] 12:}
【0050】3行目に追加したtranslationフィールドで
物体を平行移動させる。translationフィールドは、 translation x y z で、それぞれx軸、y軸、z軸の移動量を指定する。ブラ
ウザ上ではx軸は左右(右方向に+)、y軸は上下(上方
向に+)、z軸は奥行き(手前に向かって+)を表す。従
って、 translation 2 0 0 は右方向に2だけ平行移動
することになる。The object is translated in the translation field added to the third line. In the translation field, translation xyz is used to specify the amount of movement on the x-axis, y-axis, and z-axis, respectively. On the browser, the x-axis represents left and right (+ to the right), the y-axis represents up and down (+ to the top), and the z-axis represents depth (+ to the front). Thus, translation 2 0 0 translates 2 to the right.
【0051】7.物体の追加 赤い球の左に緑の円錐を追加する。 Sample5 1: #VRML V2.0 utf8 2: Transform { 3: translation 2 0 0 4: children [ 5: Shape { 6: appearance Appearance { 7: material Material { diffuseColor 1 0 0 } 8: } 9: geometry Sphere { radius 1 } 10: } 11: ] 12: } 13: Transform { 14: translation -2 0 0 15: children [ 16: Shape { 17: appearance Appearance { 18: material Material { diffuseColor 0 1 0 } 19: } 20: geometry Cylinder {} 21: } 22: ] 23: }7. Add Object Add a green cone to the left of the red sphere. Sample5 1: #VRML V2.0 utf8 2: Transform {3: translation 2 0 0 4: children [5: Shape {6: appearance Appearance {7: material Material {diffuseColor 1 0 0} 8:} 9: geometry Sphere { radius 1} 10:} 11:] 12:} 13: Transform {14: translation -2 0 0 15: children [16: Shape {17: appearance Appearance {18: material Material {diffuseColor 0 1 0} 19:} 20 : geometry Cylinder {} 21:} 22:] 23:}
【0052】13行目以降に追加したソースは12行目以前
のものと構造は同じである。物体が球から円錐へ、色が
赤から緑へ、そして位置が左に移動している点が12行目
以前のものと異なる。The source added after the 13th line has the same structure as that added before the 12th line. The difference is that the object moves from a sphere to a cone, the color moves from red to green, and the position moves to the left.
【0053】8.ポリゴンで書く 上述した「VRML2.0の書き方」ではプリミティブな図形
を使ったが、複雑な図形を書くときにはポリゴンを使用
する。ポリゴンで表示するためにIndexedLineSet,Inde
xedFaceSetの2つのノードが用意されている。IndexedLi
neSetは線を、IndexedFaceSetは面を表現する。 Sample6 1: #VRML V2.0 utf8 2: Transform { 3: children [ 4: Shape { 5: geometry IndexedFaceSet { 6: coord Coordinate { 7: point [ 8: 0 0 0, 9: 1 0 0, 10: 1 0 1, 11: 0 0 1, 12: 0 1 0, 13: 1 1 0, 14: 1 1 1, 15: 0 1 1 16: ] 17: } 18: coordIndex [ 19: 0, 1, 2, 3,-1, 20: 0, 1, 5, 4,-1, 21: 1, 2, 6, 5,-1, 22: 2, 3, 7, 6,-1, 23: 3, 0, 4, 7,-1, 24: 4, 5, 6, 7,-1 25: ] 26: solid FALSE 27: } 28: } 29: } 30: ] 31: }8. Writing with Polygon Primitive figures are used in the above “How to Write VRML2.0”, but polygons are used when writing complex figures. IndexedLineSet, Inde for displaying with polygons
Two nodes of xedFaceSet are prepared. IndexedLi
neSet represents a line, and IndexedFaceSet represents a face. Sample6 1: #VRML V2.0 utf8 2: Transform {3: children [4: Shape {5: geometry IndexedFaceSet {6: coord Coordinate {7: point [8: 0 0 0, 9: 1 0 0, 10: 1 0 1, 11: 0 0 1, 12: 0 1 0, 13: 1 1 0, 14: 1 1 1, 15: 0 1 1 16:] 17:} 18: coordIndex [19: 0, 1, 2, 3, -1, 20: 0, 1, 5, 4, -1, 21: 1, 2, 6, 5, -1, 22: 2, 3, 7, 6, -1, 23: 3, 0, 4, 7, -1, 24: 4, 5, 6, 7, -1 25:] 26: solid FALSE 27:} 28:} 29:} 30:] 31:}
【0054】このサンプルは6つの面で立方体を表して
いる。ポリゴンで表すためにはまず、頂点となる座標を
決める(7行目乃至16行目)。この座標は上から0,1,2,
と番号が振られる。即ち、10行目の「1 0 1」は「2」番
の座標ということになる。次に何番の座標と何番の座標
で面を構成するのかを決める(18行目乃至25行目)。19
行目の「0, 1, 2, 3, -1」は「0番、1番、2番、3番の
座標で面を作る」ことを表している。This sample represents a cube in six planes. To represent a polygon, first determine the coordinates of the vertices (lines 7 to 16). These coordinates are 0,1,2,
And numbered. That is, “1 0 1” on the 10th row is the “2” coordinate. Next, it is determined at what coordinates and at what coordinates the surface is configured (lines 18 to 25). 19
“0, 1, 2, 3, −1” on the line indicates that “a surface is to be created with coordinates 0, 1, 2, 3”.
【0055】9.ノードに名前を付ける 既に定義されているノードを再利用するためにDEFとUSE
という機能がある。例えば、半径2の青の球を2つ描く
とする。これまでの書き方で書くならば次のようにな
る。 Sample7 1: #VRML V2.0 utf8 2: Transform { 3: children [ 4: Shape { 5: appearance Appearance { 6: material Material { diffuseColor 0 0 1 } 7: } 8: geometry Sphere { radius 2 } 9: } 10: ] 11: } 12: Transform { 13: translation 0 5 0 14: children [ 15: Shape { 16: appearance Appearance { 17: material Material { diffuseColor 0 0 1 } 18: } 19: geometry Sphere { radius 2 } 20: } 21: ] 22: }9. Naming Nodes DEF and USE to reuse already defined nodes
There is a function called. For example, assume that two blue spheres with a radius of 2 are drawn. If you write in the conventional way, it will be as follows. Sample7 1: #VRML V2.0 utf8 2: Transform {3: children [4: Shape {5: appearance Appearance {6: material Material {diffuseColor 0 0 1} 7:} 8: geometry Sphere {radius 2} 9:} 10:] 11:} 12: Transform {13: translation 0 5 0 14: children [15: Shape {16: appearance Appearance {17: material Material {diffuseColor 0 0 1} 18:} 19: geometry Sphere {radius 2} 20:} 21:] 22:}
【0056】12行目以降は13行目の座標移動の部分を除
いて11行目以前と全く同じである。1度定義されている
「半径2で青い球」を再び同じように記述するのははっ
きり言って無駄である。そこで次のようにする。The twelfth and subsequent lines are exactly the same as those before the eleventh line, except for the coordinate movement on the thirteenth line. It is clearly wasteful to describe the once defined "blue sphere with radius 2" in the same way. So we do the following.
【0057】 Sample7改 1: #VRML V2.0 utf8 2: Transform { 3: children [ 4: DEF BlueSphere Shape { 5: appearance Appearance { 6: material Material { diffuseColor 0 0 1 } 7: } 8: geometry Sphere { radius 2 } 9: } 10: ] 11: } 12: Transform { 13: translation 0 5 0 14: children [ 15: USE BlueSphere 16: } 17: ] 18: } 4行目を見ると DEF BlueSphere Shape となっている。これは「Shape{……}を「BlueSphere」
という名前にします。」という意味で、これ以降 USE BlueSphere と書くだけでShape{……}と同じ内容を表す。Sample7 Kai 1: #VRML V2.0 utf8 2: Transform {3: children [4: DEF BlueSphere Shape {5: appearance Appearance {6: material Material {diffuseColor 0 0 1} 7:} 8: geometry Sphere { radius 2} 9:} 10:] 11:} 12: Transform {13: translation 0 5 0 14: children [15: USE BlueSphere 16:} 17:] 18:} Looking at the fourth line, it becomes DEF BlueSphere Shape ing. This is “Shape {……} replaced with“ BlueSphere ”
Name. From now on, simply writing USE BlueSphere will represent the same content as Shape {……}.
【0058】10.WRLファイルの読み込み 大きなVRMLデータをつくるときに1つのファイルにすべ
ての記述を行うのはあまりいい方法ではない。部品ごと
に分けて必要に応じて呼び出せるようにしておく方が便
利である。このような場合、Inlineノードを使う。例え
ば1.でつくったSample1.wrlを読み込んで表示する。 Sample8 1: #VRML V2.0 utf8 2: Inline { 3: url [ 4: sample1.wrl 5: ] 6: }10. Reading WRL File When creating large VRML data, it is not a very good method to write all descriptions in one file. It is more convenient to divide each part so that it can be called up as needed. In such a case, use an Inline node. For example, read and display Sample1.wrl created in 1. Sample8 1: #VRML V2.0 utf8 2: Inline {3: url [4: sample1.wrl 5:] 6:}
【0059】11.リンクを張る オブジェクトにリンクを張り、オブジェクトをクリック
したときに別のページにジャンプさせることもできる。 Sample9 1: #VRML V2.0 utf8 2: Anchor { 3: children [ 4: Shape { 5: geometry Sphere { radius 2 } 6: } 7: ] 8: url "test.html" 9: description "LINK to test.html" 10: }11. Linking a link It is also possible to link an object and jump to another page when the object is clicked. Sample9 1: #VRML V2.0 utf8 2: Anchor {3: children [4: Shape {5: geometry Sphere {radius 2} 6:} 7:] 8: url "test.html" 9: description "LINK to test .html "10:}
【0060】リンクを張るオブジェクトを子ノードにし
てAnchorノードで括る。AnchorノードはGroupノードの
1つである。リンク先のファイルをurlフィールドに書
く。descriptionフィールドに書いた文字列はマウスポ
インタがオブジェクトに触れている間表示される。An object to be linked is set as a child node and is bound by an anchor node. Anchor node is one of the Group nodes. Write the link destination file in the url field. The text you write in the description field is displayed while the mouse pointer is touching the object.
【0061】12.ライトの設定 VRML2.0ではワールドに光を設定するためにDirectional
Light(平行光)、PointLigt(点光源)、SpotLight
(スポットライト)3つのノードが用意されている。こ
こではPointLigtノードを例に挙げて説明する。光の当
たり方がわかりやすいように3行目でオブジェクトを回
転させている。 Sample10 1: #VRML V2.0 utf8 2: Transform { 3: rotation 1 0 0 0.75 4: children [ 5: PointLight { 6: location 0 0 2 #オブジェクトの前 7: } 8: Shape { 9: geometry Cylinder {} 10: } 11: ] 12: }12. Light setting VRML2.0 uses Directional to set light in the world.
Light (parallel light), PointLigt (point light source), SpotLight
(Spotlight) Three nodes are prepared. Here, a PointLigt node will be described as an example. The object is rotated on the third line so that it is easy to see how the light hits. Sample10 1: #VRML V2.0 utf8 2: Transform {3: rotation 1 0 0 0.75 4: children [5: PointLight {6: location 0 0 2 #In front of object 7:} 8: Shape {9: geometry Cylinder { } 10:} 11:] 12:}
【0062】6行目の光源の位置によってオブジェクト
の見え方が異なる。このサンプルではオブジェクトの前
に光源を置いている。The appearance of the object differs depending on the position of the light source in the sixth row. In this example, a light source is placed in front of the object.
【0063】13.ワールド環境(1) これまでは主にオブジェクトの作成に関しての解説であ
ったが、今回はオブジェクト作成以外のノードの使い方
について触れる。ワールド環境などと勝手に命名してい
るが、こういう言い方が一般的かどうかは分からない。
まず、ブラウザでデフォルトで用意されている HeadLig
ht を消してみる。HeadLight の ON・OFF はブラウザの
Option で変更できるが、ファイル内に書くことによっ
ても設定できる。 Sample11 1: #VRML V2.0 utf8 2: NavigationInfo { 3: headlight FALSE 4: } 5: Transform{ 6: children [ 7: Shape { 8: appearance Appearance { 9: material Material { diffuseColor 1 0 0 } 10: } 11: geometry Sphere {} 12: } 13: ] 14: }13. World Environment (1) Although the description so far has been mainly about the creation of an object, this time, how to use a node other than the creation of an object will be described. Although it is arbitrarily named as world environment, etc., it is not known whether such a term is common.
First, HeadLig provided by default in the browser
Try deleting ht. ON / OFF of HeadLight is
Can be changed with Option, but can also be set by writing in the file. Sample11 1: #VRML V2.0 utf8 2: NavigationInfo {3: headlight FALSE 4:} 5: Transform {6: children [7: Shape {8: appearance Appearance {9: material Material {diffuseColor 1 0 0} 10:} 11: geometry Sphere {} 12:} 13:] 14:}
【0064】このサンプルでブラウザの Option を見る
と、Headlight のチェックがはずれている。このサンプ
ルでは今までのサンプルに比べて極端に暗くなっている
のが分かる。HeadLight は常にユーザの見ている方向に
照らされるライトで、これがないとこのように見える。
新たに加えたのは 2 行目から 4 行目の NavigationInf
o ノードである。このノードの headlight フィールド
をTRUE か FALSE にすることで HeadLight を ON・OFF
する。HeadLight を消して任意のライトを設定すること
で効果的に明るさを設定できる。Looking at the Option in the browser in this sample, Headlight is unchecked. It can be seen that this sample is extremely darker than the previous samples. HeadLight is a light that always shines in the direction you are looking, and without it it looks like this.
Newly added NavigationInf on lines 2-4
o It is a node. Turn headlight ON / OFF by setting headlight field of this node to TRUE or FALSE
I do. By turning off HeadLight and setting an optional light, the brightness can be set effectively.
【0065】14.ワールド環境(2) NavigationInfo ノードには他にも幾つかのフィールド
が用意されている。その中の type フィールドでナビゲ
ーション方法を変更することができる。デフォルトでは
WALK に設定されている ナビゲーション方法である
が、他にも重力を無視して移動できる FLY、自分が動く
ことなくオブジェクトを動かす EXAMINE、何もコントロ
ールできない NONE、がある。ちなみに WALKは重力の影
響を受けながら移動するナビゲーション方法である。14. World Environment (2) The NavigationInfo node has several other fields. You can change the navigation method in the type field in it. By default
The navigation method set to WALK is FLY, which can move ignoring gravity, EXAMINE, which moves an object without moving itself, and NONE, which does not control anything. By the way, WALK is a navigation method that moves under the influence of gravity.
【0066】 Sample12 1: #VRML V2.0 utf8 2: NavigationInfo { 3: type EXAMINE 4: } 5: Transform{ 6: children [ 7: Shape { 8: appearance Appearance { 9: material Material { diffuseColor 1 0 0 } 10: } 11: geometry Box {} 12: } 13: ] 14: } このサンプルでは EXAMINE にしている。オブジェクト
をマウスでドラッグするとオブジェクトが回転する。Sample12 1: #VRML V2.0 utf8 2: NavigationInfo {3: type EXAMINE 4:} 5: Transform {6: children [7: Shape {8: appearance Appearance {9: material Material {diffuseColor 1 0 0}} 10:} 11: geometry Box {} 12:} 13:] 14:} This sample uses EXAMINE. Dragging an object with the mouse rotates the object.
【0067】15.シーンにタイトルを付ける HTML では <title> タグで囲むことによってタイトルを
付けることができる。もしこのタグを指定しないとタイ
トルが [http://ryo1.is.kochi-u…howto3.html] のよ
うにパスが表示される。VRML でもこれと同じことが起
こる。これまでのサンプルではタイトルを指定していな
いためパスが表示されている。VRML でタイトルを指定
するには WorldInfo ノードを使用する。15. Adding a Title to a Scene In HTML, a title can be given by surrounding it with a <title> tag. If you do not specify this tag, the title will be displayed as [http: //ryo1.is.kochi-u…howto3.html]. The same goes for VRML. In the previous samples, the path is displayed because no title is specified. Use the WorldInfo node to specify a title in VRML.
【0068】 Sample13 1: #VRML V2.0 utf8 2: WorldInfo { 3: title "Spin Box" 4: info["Autor H.Kan","http://ryo1.is.kochi-u.ac.jp/"] 5: } 2: NavigationInfo { 3: type EXAMINE 4: } 5: Transform{ 6: children [ 7: Shape { 8: appearance Appearance { 9: material Material { diffuseColor 1 0 0 } 10: } 11: geometry Box {} 12: } 13: ] 14: }Sample13 1: #VRML V2.0 utf8 2: WorldInfo {3: title "Spin Box" 4: info ["Autor H.Kan", "http://ryo1.is.kochi-u.ac.jp / "] 5:} 2: NavigationInfo {3: type EXAMINE 4:} 5: Transform {6: children [7: Shape {8: appearance Appearance {9: material Material {diffuseColor 1 0 0} 10:} 11: geometry Box {} 12:} 13:] 14:}
【0069】2 行目乃至 5 行目までに WorldInfo ノー
ドを追加した。このサンプルでは前のサンプルに "Spin
Box" というタイトルを付けた(Plugin 版では表示さ
れなかった)。尚、info フィールドにはタイトル以外
の情報を書くが、ブラウザ上には何の変化も与えない。A WorldInfo node was added to the second to fifth lines. In this sample, the previous sample is called "Spin
(It was not displayed in the Plugin version.) The info field contains information other than the title, but does not change anything on the browser.
【0070】16.視点の位置を変える デフォルトでは視点は最初 z 軸上のどこか(オブジェ
クトの配置によって異なる)にいる。ここでは最初の視
点位置を任意の場所に変更できるようにする。16. Changing the Viewpoint Position By default, the viewpoint is initially somewhere on the z-axis (depending on the placement of objects). Here, the initial viewpoint position can be changed to an arbitrary position.
【0071】 Sample14 1: #VRML V2.0 utf8 2: Viewpoint{ position x y z } 3: Transform { 4: children [ 5: Shape { 6: appearance Appearance { 7: material Material { diffuseColor 1 0 0 } 8: } 9: geometry Sphere {} 10: } 11: ] 12: } 13: Transform { 14: translation -3 0 0 15: children [ 16: Shape { 17: appearance Appearance { 18: material Material { diffuseColor 0 1 0 } 19: } 20: geometry Sphere {} 21: } 22: ] 23: } 24: Transform { 25: translation 3 0 0 26: children [ 27: Shape { 28: appearance Appearance { 29: material Material { diffuseColor 0 0 1 } 30: } 31: geometry Sphere {} 32: } 33: ] 34: } Sample 14 1: #VRML V2.0 utf8 2: Viewpoint {position xyz} 3: Transform {4: children [5: Shape {6: appearance Appearance {7: material Material {diffuseColor 1 0 0} 8:} 9 : geometry Sphere {} 10:} 11:] 12:} 13: Transform {14: translation -3 0 0 15: children [16: Shape {17: appearance Appearance {18: material Material {diffuseColor 0 1 0} 19: } 20: geometry Sphere {} 21:} 22:] 23:} 24: Transform {25: translation 3 0 0 26: children [27: Shape {28: appearance Appearance {29: material Material {diffuseColor 0 0 1} 30 :} 31: geometry Sphere {} 32:} 33:] 34:}
【0072】(0, 0, 0)に赤、(-3, 0 , 0)に
緑、(3, 0, 0)に青の球がある。2行目の Viewpoint
ノードの position フィールドに具体的な座標を指定
すると、そこが最初の視点になる。ただし視線方向は常
に z 軸の方向である。There is a red sphere at (0, 0, 0), a green sphere at (-3, 0, 0), and a blue sphere at (3, 0, 0). Viewpoint on line 2
If you specify specific coordinates in the node's position field, that will be the first viewpoint. However, the line of sight is always the direction of the z-axis.
【0073】17.視線の方向を変える sample14 では視点の座標のみを変更したが、もちろん
視線方向も指定できる。方向を指定するときも Viewpoi
nt ノードを使うが、 フィールドは orientation フィ
ールドを使う。orientation フィールドは SFRotation
型のフィールドで、加点軸と回転角を値として持つ。17. Changing the direction of the line of sight In sample14, only the coordinates of the viewpoint are changed, but the line of sight can of course be specified. Viewpoi when specifying direction
Use the nt node, but use the orientation field for the field. orientation field is SFRotation
This is a type field and has a point axis and a rotation angle as values.
【0074】18.センサをつける VRML2.0 のノードの中には Sensor ノードと呼ばれるノ
ードがある。シーン内での様々なことを感知、判定する
ためのノードで、全部で7種類用意されている。このWeb
ページで動作確認を行っている Community Place Brows
er では、幾つかの Sensor ノードがまだサポートされ
ていない。ここではオブジェクトにマウスがヒットした
かどうかを感知する TouchSensor をオブジェクトにつ
けてみる。18. Attaching a Sensor Among VRML2.0 nodes, there is a node called a sensor node. Nodes for sensing and judging various things in the scene. There are seven types in total. This Web
Community Place Brows whose operation is checked on the page
er does not yet support some Sensor nodes. Here, we attach a TouchSensor to the object to detect whether the mouse hits the object.
【0075】Sample15 1: #VRML V2.0 utf8 2: Transform{ 3: children [ 4: DEF TS TouchSensor {} 5: Shape { 6: geometry Box {} 7: } 8: ] 9: }Sample15 1: #VRML V2.0 utf8 2: Transform {3: children [4: DEF TS TouchSensor {} 5: Shape {6: geometry Box {} 7:} 8:] 9:}
【0076】これまでのサンプルと異なるのは4行目だ
けである。ここでは TS という名前を付けた TouchSens
or を Box につけている。Box にマウスカーソルが触れ
ると(あなたが使っているブラウザが Community Place
Browser ならば)手の形に変わるはずである(他のブ
ラウザの中にはカーソルが変わらないものもある)。ち
なみにクリックしても何も起きない。Only the fourth line differs from the previous samples. Here, TouchSens named TS
or is attached to the Box. When the mouse cursor touches the Box (the browser you use is Community Place
It should change to a hand (in a Browser) (the cursor may not change in some other browsers). By the way, nothing happens when you click.
【0077】19.動きをつける(1) VRML2.0 が VRML1.0 と大きく異なる点はシーンに動き
をつけられるという点である。 動きをつけるには Java
や VRMLScript(JavaScript) などのスクリプトを用い
る方法と、Interplator ノードを用いる方法がある。ま
ずは Interplator ノードを用いる方法から見ていく。I
nterplate とは、「差し挟む」とか「内挿する」といっ
た意味である。Interpolator ノードの数値、位置、3D
座標、方向、法線、色の値を変えることによってシーン
に動きをつけることができる。ここでは方向を内挿する
OrientationInterpolator ノードを用いてオブジェク
トを回転させてみる。19. Add Motion (1) VRML2.0 is significantly different from VRML1.0 in that it can add motion to a scene. Java for movement
There is a method using a script such as VRMLScript (JavaScript) or a method using an Interplator node. Let's start with the method using Interplator nodes. I
nterplate means “insert” or “interpolate”. Interpolator node value, position, 3D
You can add motion to the scene by changing the coordinates, direction, normals, and color values. Here we interpolate the direction
Try rotating the object using the OrientationInterpolator node.
【0078】 Sample16 1: #VRML V2.0 utf8 2: DEF OBJ Transform{ 3: children [ 4: Shape { 5: geometry Box { size 2 3 1 } 6: } 7: ] 8: } 9: DEF TS TimeSensor{ 10: cycleInterval 1 11: loop TRUE 12: stopTime -1 13: } 14: DEF OI OrientationInterpolator{ 15: key [0, 0.125, 0.25,0.375, 0.5, 16: 0.625, 0.75, 0.875, 1,] 17: keyValue [0 1 0 0, 0 1 0 0.785, 0 1 0 1.57, 18: 0 1 0 2.355, 0 1 0 3.14, 0 1 0 -2.355, 19: 0 1 0 -1.57, 0 1 0 -0.785, 0 1 0 0] 20: } 21: ROUTE TS.fraction_changed TO OI.set_fraction 22: ROUTE OI.value_changed TO OBJ.set_rotationSample16 1: #VRML V2.0 utf8 2: DEF OBJ Transform {3: children [4: Shape {5: geometry Box {size 2 3 1} 6:} 7:] 8:} 9: DEF TS TimeSensor {10: cycleInterval 1 11: loop TRUE 12: stopTime -1 13:} 14: DEF OI OrientationInterpolator {15: key [0, 0.125, 0.25,0.375, 0.5, 16: 0.625, 0.75, 0.875, 1,] 17: keyValue (0 1 0 0, 0 1 0 0.785, 0 1 0 1.57, 18: 0 1 0 2.355, 0 1 0 3.14, 0 1 0 -2.355, 19: 0 1 0 -1.57, 0 1 0 -0.785, 0 1 0 0] 20:} 21: ROUTE TS.fraction_changed TO OI.set_fraction 22: ROUTE OI.value_changed TO OBJ.set_rotation
【0079】まず、幾つかのノードに名前を付けてお
く。2,9,14 行目にそれぞれ、OBJ,TS,OI と定義してい
る。これは後述するがイベントの受け渡しをするときに
必要になる。9 行目乃至 13 行目を見ます。TouchSenso
r は時間の経過を感知するノードで、時間の経過に伴っ
て一定の間隔でイベントを生成することができる。loop
フィールドは TRUE か FALSE をとる SFBool フィール
ドで、TRUE なら stopTime になるまで続く。ここでは
stopTime -1 と startTime(デフォルトは0)とstartTi
me より小さな値になっているので永久に継続されるこ
とになる。回転する動きをもっと遅くするときには cyc
leInterval の値をもっと大きくする。First, some nodes are given names. Lines 2, 9, and 14 define OBJ, TS, and OI, respectively. As will be described later, this is necessary when passing events. Look at lines 9-13. TouchSenso
r is a node that senses the passage of time, and can generate events at regular intervals as time passes. loop
The field is an SFBool field that takes TRUE or FALSE, and if TRUE, continues until stopTime. here
stopTime -1 and startTime (default is 0) and startTi
Since it is smaller than me, it will be continued forever. Cyc for slower rotation
Increase the value of leInterval.
【0080】14 行目乃至 20 行目までが OrientationI
nterpolator ノードである。Interpolator ノードはす
べて key と keyValue の2つのフィールドを持ってい
る。keyはアニメーション時間の間隔を 0 から 1 の間
で設定する。keyValue は keyで設定した間隔に具体的
なフィールド値(ここでは MFRotation )を設定する。
ここではアニメーション時間の間隔を9等分して、y軸
を中心に回転角を設定している。Lines 14 to 20 correspond to OrientationI
This is an nterpolator node. Every Interpolator node has two fields, key and keyValue. key sets the animation time interval between 0 and 1. keyValue sets a specific field value (here, MFRotation) at the interval set by key.
Here, the rotation time is set around the y-axis by dividing the animation time interval into nine equal parts.
【0081】しかしこれだけではシーンに動きをつける
ことはできない。TimeSensor ノードの生成したイベン
トを OrientationInterpolator ノードに渡してやる必
要がある。21,22行目を見ます。この ROUTE というキー
ワードで始まる行で イベントを受け渡しを行う。TimeS
ensor TS が起動すると fraction_changed がイベント
アウトされる。fraction_changed がイベントアウトさ
れると、OrientationInterplator OI の set_fraction
にイベントインされる。ここまでが21 行目の ROUTE の
動作である。22 行目はイベントインされた set_fracti
on 値から OrientationInterplator OI が値を内挿し、
それを Transform OBJ の translationフィールドに va
lue_changed としてイベントアウトする。もう1つサン
プルをあげてみる。However, it is not possible to add a motion to the scene by this alone. It is necessary to pass the event generated by TimeSensor node to OrientationInterpolator node. Look at lines 21,22. The event is passed on the line that starts with the keyword ROUTE. TimeS
When ensor TS starts, fraction_changed is evented out. If fraction_changed is out, set_fraction of OrientationInterplator OI
Event in. This is the operation of ROUTE on line 21. Line 22 is the set_fracti that was event-in
OrientationInterplator OI interpolates the value from the on value,
Put va in the translation field of Transform OBJ
Event out as lue_changed. Here is another sample.
【0082】20.動きをつける(2) 今度はマウスでオブジェクトをクリックすると移動する
サンプルである。移動するには位置を内挿する Positio
nInterpolator ノードを使用する。 Sample17 1: #VRML V2.0 utf8 2: DEF OBJ Transform { 3: children [ 4: DEF TS TouchSensor {} 5: Shape { 6: appearance Appearance { 7: material Material { diffuseColor 1 0 0 } 8: } 9: geometry Box {} 10: } 11: ] 12: } 13: DEF TIS TimeSensor { cycleInterval 5 } 14: DEF PI PositionInterpolator { 15: key [0, 0.2, 0.4, 0.6, 0.8, 1.0] 16: keyValue[0 0 0 , 0 0 -2 , 0 2 -4 , 0 4 -6 , 2 4 -6, 4 2 -6] 17: } 18: ROUTE TS.touchTime TO TIS.set_startTime 19: ROUTE TIS.fraction_changed TO PI.set_fraction 20: ROUTE PI.value_changed TO OBJ.set_translation20. Add movement (2) This is a sample that moves when the object is clicked with the mouse. Positio interpolating position to move
Use the nInterpolator node. Sample17 1: #VRML V2.0 utf8 2: DEF OBJ Transform {3: children [4: DEF TS TouchSensor {} 5: Shape {6: appearance Appearance {7: material Material {diffuseColor 1 0 0} 8:} 9: geometry Box {} 10:} 11:] 12:} 13: DEF TIS TimeSensor {cycleInterval 5} 14: DEF PI PositionInterpolator {15: key [0, 0.2, 0.4, 0.6, 0.8, 1.0] 16: keyValue [0 0 0, 0 0 -2, 0 2 -4, 0 4 -6, 2 4 -6, 4 2 -6] 17:} 18: ROUTE TS.touchTime TO TIS.set_startTime 19: ROUTE TIS.fraction_changed TO PI.set_fraction 20: ROUTE PI.value_changed TO OBJ.set_translation
【0083】今度は、OBJ という名前の赤い立方体に T
ouchSenor TS をつけている。オブジェクトがクリック
されると、TouchSenor TS の touchTime が TimeSensor
TISの startTime にイベントアウトされる。サンプル
のソースには TimeSensoe ノードの中に startTime フ
ィールドは書いてないが、デフォルトで startTime 0と
なっている。あとは前のサンプルと同じである。これら
の ROUTE によってオブジェクトが移動する。This time, a red cube named OBJ
ouchSenor TS is attached. When an object is clicked, the touchTime of TouchSenor TS changes to TimeSensor
Event is out at start time of TIS. The sample source has no startTime field in the TimeSensoe node, but defaults to startTime 0. The rest is the same as the previous sample. Objects are moved by these ROUTEs.
【0084】ここで、第1世代のVRML1.0に対し、第
2世代のVRML2.0で新たに加わった機能であるVRML仮
想空間内における自律的な動き(Behavior)を実現するた
めのメカニズムについて概説する。Here, a mechanism for realizing an autonomous movement (Behavior) in a VRML virtual space, which is a function newly added in the second generation VRML 2.0 with respect to the first generation VRML 1.0. Outline.
【0085】VRML2.0においては、3次元仮想現実空
間内に配置されたオブジェクトに対する操作に伴って生
じるイベントや、予め設定された時間が経過した時点で
生じるタイマーイベントに応じて、オブジェクトの自律
的な動きを実現することができる。このBehaviorのメカ
ニズムは、センサー、ルーティング、スクリプトの3つ
の要素の連携動作によって実現される。In VRML 2.0, an object autonomously responds to an event that occurs with an operation on an object placed in a three-dimensional virtual reality space or a timer event that occurs when a preset time has elapsed. Movement can be realized. This Behavior mechanism is realized by the cooperative operation of the three elements of sensor, routing, and script.
【0086】すなわち、 予め3次元仮想現実空間内に配置されたオブジェクト
などのノードに対して関係付けられて、VRMLファイルと
して記述されたセンサーノードが、そのフィールドの値
の変化に基づいて、外部イベントを感知し、VRMLシーン
内にイベントを発生する。 発生したイベントは、 VRMLファイルとして記述され
たルーティングに基づいて、オブジェクトの挙動を規定
するプログラムである外部のスクリプトに対して、伝達
される。 外部のスクリプトには予め特定のイベントが到来した
時点で呼び出されるメソッドが記述されており、ルーテ
ィングによって伝達されたイベントを受け取った外部の
スクリプトは、その記述に基づく処理を実行した後、そ
の処理結果と、ルーティングの記述に基づいて、VRMLシ
ーン内の該当するノードのフィールドの値を変更する。That is, a sensor node described as a VRML file, which is previously associated with a node such as an object arranged in a three-dimensional virtual reality space, is used to determine whether an external event And generate an event in the VRML scene. The generated event is transmitted to an external script, which is a program that defines the behavior of the object, based on the routing described as a VRML file. A method called when a specific event arrives is described in the external script in advance, and the external script that receives the event transmitted by the routing executes a process based on the description, and then executes the process result. Then, the value of the field of the corresponding node in the VRML scene is changed based on the description of the routing.
【0087】VRML2.0においては、センサーノードと
しては、例えば、指定されたオブジェクト上をポインテ
ィングデバイスが通過したり、ユーザによってクリック
された場合にイベントを発生するTouchSensorや、指定
された領域内にViewPoint(ユーザの視点)が侵入した場
合にイベントを発生するProximitySensorや、与えられ
た時刻となったり、予め指定された時間間隔が経過する
毎に発生するTimeSensorなどが定義されている。In VRML 2.0, as a sensor node, for example, a TouchSensor that generates an event when a pointing device passes over a specified object or is clicked by a user, or a ViewPoint in a specified area. A ProximitySensor that generates an event when a (user's viewpoint) invades, and a TimeSensor that is generated at a given time or every time a predetermined time interval elapses are defined.
【0088】もう少し詳しく、Behaviorの仕組みを説明
する。先にも述べたように、Behaviorの仕組みは、セン
サー、イベント、ルーティングおよびスクリプトから構
成されている。The mechanism of Behavior will be described in more detail. As mentioned earlier, the Behavior mechanism consists of sensors, events, routing, and scripts.
【0089】センサーは、2つの機能に分けられる。 ・ユーザの操作を感知するタイプ ・システムの変化を感知するタイプThe sensor can be divided into two functions. -A type that senses user operations-A type that senses changes in the system
【0090】ユーザの操作を感知するタイプのセンサー
は、3次元仮想空間内に配置された物体などに関係付け
られたソフトウエアによるスイッチとなる。システムの
変化を感知するタイプのセンサーは、作動させる時間を
事前に設定しておいたタイマーが作動することになる。
センサーの働きは、これらの外部イベントを検出して、
それをVRML内部のイベントに変換することである。The sensor of the type that senses the operation of the user is a switch by software associated with an object or the like arranged in the three-dimensional virtual space. For a type of sensor that senses a change in the system, a timer in which the operation time is set in advance is activated.
The function of the sensor is to detect these external events and
Converting it to an event inside VRML.
【0091】イベントは、VRMLの内部の関連するノード
間で、情報を伝えるためのデータのことを指す。実際に
は、VRMLファイルの中に記述されたフィールド値の変化
がイベントとして伝達される。An event refers to data for transmitting information between related nodes inside VRML. Actually, a change in a field value described in the VRML file is transmitted as an event.
【0092】ルーティングは、センサー機能で検出され
たイベントをどのノードに伝えるかを指定するための仕
組みで、イベントによる情報の伝達経路を指定すること
になる。The routing is a mechanism for specifying to which node the event detected by the sensor function is to be transmitted, and specifies the information transmission route by the event.
【0093】スクリプトはイベントの入出力口で、入力
されたイベントから何らかの計算を行い、その結果をイ
ベントとして出力することができるものである。スクリ
プトは特定の言語のみに制限されるものではなく、現段
階では、インターネット界で注目を浴びているJavaやJa
vaScript、通常のシステムでよく利用されているC言
語、UNIXでよく利用されているTcl/TkやPERL、マイクロ
ソフト社の提供しているVisual Basic言語などが対応し
ている。このようにVRML2.0では特定のスクリプト言
語に依存しない仕様になっている(VRML2.0仕様検討
中、一時特定の言語仕様としてVRMLScriptが採用されよ
うとしたこともあるが、この構想は取り止めなった)。The script is an event input / output port, which can perform some calculation from the input event and output the result as an event. Scripts are not restricted to a particular language, but at this stage Java and Ja
vaScript, C language commonly used in ordinary systems, Tcl / Tk and PERL commonly used in UNIX, and Visual Basic language provided by Microsoft are supported. As described above, VRML 2.0 has specifications that do not depend on a specific script language. (While studying the VRML 2.0 specifications, VRMLScript was temporarily adopted as a specific language specification, but this concept has been canceled. T).
【0094】次に、Behaviorの処理手段に関して、図1
を参照して説明する。Behaviorの処理を図式化すると、
図1のようになる。以下、各部に分けて、処理信号の流
れを説明する。Next, with regard to the processing means of the Behavior, FIG.
This will be described with reference to FIG. If you diagram the behavior process,
As shown in FIG. Hereinafter, the flow of the processing signal will be described for each part.
【0095】センサーノード 前にも述べたように、センサーノードには、大きく分類
して2系統がある。ユーザの操作を感知するタイプと、
システムの変化を感知するタイプのセンサーである。Sensor Node As described above, sensor nodes are roughly classified into two systems. A type that senses user operations,
It is a type of sensor that senses changes in the system.
【0096】前者のセンサーには、3次元物体やその平
面をマウスクリックしたり、通過したりしたときに感知
するTouchSensorやPlaneSensorなどのセンサーノードが
あり、後者のセンサーとしては、設定した時間が来ると
イベントを発生させる仕組みになっているTimeSensorが
用意されている。The former sensor includes a sensor node such as TouchSensor or PlaneSensor that senses when a mouse is clicked or passes through a three-dimensional object or its plane, and a set time comes as the latter sensor. And a TimeSensor that has a mechanism to generate an event is prepared.
【0097】この図1の例では、球にTouchSensorが付
けられているものとする。このとき、ユーザが球をマウ
スクリックすると、このイベントをTouchSensorが検出
する。このイベントは、TouchSensorのeventOutフィー
ルドのフィールド値が変化することで検出される。通常
1回のマウスクリックで2つのイベントを発生する。そ
れは、マウスボタンが押されたタイミングと、離された
タイミングである。In the example of FIG. 1, it is assumed that TouchSensor is attached to the sphere. At this time, when the user clicks the mouse on the ball, TouchSensor detects this event. This event is detected when the field value of the eventOut field of TouchSensor changes. Normally two events occur with a single mouse click. That is, the timing when the mouse button is pressed and the timing when the mouse button is released.
【0098】次に、このイベントは、ルーティング記述
部分によって、ルーティングされることになる。Next, this event will be routed by the routing description part.
【0099】ルーティング このイベントのルーティングを指定するのが、図2に示
すような「Route」である。Routing "Route" as shown in FIG. 2 designates the routing of this event.
【0100】センサー記述部分で発生したイベントがRo
uteのeventOutフィールドに伝達され、さらに、次に述
べるスクリプトノードに伝えられることにより、外部フ
ァイルにイベントが渡され、Behavior機能が実行され
る。The event that occurred in the sensor description part is Ro
The event is passed to an external file by being transmitted to the eventOut field of the ute and further transmitted to the script node described below, and the Behavior function is executed.
【0101】スクリプトノード このノードは、VRMLファイルと外部のスクリプトとを連
動させる仲介をするノードである。スクリプトノードの
記述書式に従って、どのような言語で記述されているか
とか、ファイル名を指定したり、外部スクリプトファイ
ルとの間でイベントのやり取りをするために、eventIn
フィールドとeventOutフィールドを規定する。このと
き、使用できるスクリプトファイルは、Java、JavaScri
pt、C言語、Tcl/Tk、PERL、およびVisual Basic言語な
ど多岐に渡る。Script node This node is a node that mediates the link between the VRML file and an external script. According to the description format of the script node, in what language it is described, to specify a file name, and to exchange events with external script files, use eventIn
Field and eventOut field are defined. At this time, the script files that can be used are Java, JavaScri
It covers a wide variety of languages, including pt, C, Tcl / Tk, PERL, and Visual Basic.
【0102】実際の処理手段としては、ルーティングさ
れたイベントがスクリプトノードに記述されているスク
リプトファイルに処理が伝達され、外部のスクリプトフ
ァイルが実行される。外部のスクリプトファイルは、そ
の中で定義されているeventIn(イベントの入口)で受
け取り、そのファイル内に記述された処理を実行する。
その処理が終了した後、eventOut(イベントの出口)か
ら結果をVRMLファイルのルーティングへ返す。VRMLファ
イルは、その返された結果を実行して、一連のBehavior
処理は終了する。As actual processing means, the routed event is transmitted to a script file described in a script node, and an external script file is executed. An external script file is received at eventIn (event entrance) defined therein, and executes the processing described in the file.
After the processing is completed, the result is returned from the eventOut (exit of the event) to the routing of the VRML file. The VRML file executes the returned result and returns a series of Behavior
The process ends.
【0103】このような、センサー、ルーティング、ス
クリプトの連携動作によって実現されるBehaviorのメカ
ニズムを利用することによって、例えば、3次元仮想現
実空間内に配置されたスイッチを模したオブジェクトを
マウスでクリックすることによって、同じ空間内に配置
された他のオブジェクトの外観(形状、姿勢、サイズ、
色等)であるとか、挙動シーケンスなどを動的に変更す
る事ができる。By using such a mechanism of Behavior realized by the cooperative operation of the sensor, the routing, and the script, for example, an object simulating a switch arranged in a three-dimensional virtual reality space is clicked with a mouse. By doing so, the appearance (shape, posture, size,
Color, etc.), and behavior sequence, etc., can be dynamically changed.
【0104】このBehaviorのメカニズムの詳細な説明に
ついては、http://webspace.sgi.com/moving-worlds/sp
ec/part1/concepts.htmlおよび、その日本語版であるht
tp://www.webcity.co.jp/info/andoh/VRML/vrml2.0/spe
c-jp/part1/concepts.htmlで公開されている、August
4, 1996における The Virtual Reality Modeling Langu
age Version 2.0, ISO/IEC CD 14772の仕様書、4.概
念の節に開示されている。この節には、 VRML仕様書を
利用するにあたりキーとなる概念が記述されている。ノ
ードをシーングラフに結合する方法、ノードがイベント
を生成したり受け取ったりする方法、プロトタイプによ
るノードタイプの作成方法、VRMLにノードタイプを追加
して外部から使用できるようにエクスポートする方法、
VRMLファイルにプログラムとして動作するスクリプトを
組み込む方法など、様々なノードに関する一般的な項目
が記載されている。For a detailed description of this Behavior mechanism, see http://webspace.sgi.com/moving-worlds/sp
ec / part1 / concepts.html and its Japanese version, ht
tp: //www.webcity.co.jp/info/andoh/VRML/vrml2.0/spe
August published at c-jp / part1 / concepts.html
4, The Virtual Reality Modeling Langu in 1996
age Version 2.0, ISO / IEC CD 14772 Specification, 4. It is disclosed in the Concepts section. This section describes the key concepts in using the VRML specification. How to combine nodes into the scene graph, how nodes generate and receive events, how to create node types with prototypes, how to add node types to VRML and export them for external use,
General items about various nodes are described, such as how to incorporate scripts that operate as programs into VRML files.
【0105】次に、このようなVRML2.0の自律的な動
き(Behavior)を実現するメカニズムを応用して、共有仮
想空間内に、仮想生命オブジェクトを誕生させ、ユーザ
の操作や時間経過に伴う所定のイベントの発生に応じて
変化する成長パラメータ(外観的成長又は内面的成長
(個性))をサーバで管理し、このサーバから転送され
た成長パラメータに基づいて、仮想生命オブジェクトの
外観(形状、姿勢、サイズ、色等)又は挙動シーケンス
の内の何れか一方もしくは双方を動的に変更するための
スクリプトプログラムを解釈、実行することで、成長パ
ラメータに応じた仮想生命オブジェクトを表示する技術
について、以下に詳述する。Next, by applying such a mechanism for realizing the autonomous movement (Behavior) of VRML 2.0, a virtual life object is created in the shared virtual space, and the virtual life object is generated according to the user's operation and time lapse. A growth parameter (appearance growth or internal growth (individuality)) that changes in response to the occurrence of a predetermined event is managed by a server, and based on the growth parameter transferred from the server, the appearance (shape, shape, (Posture, size, color, etc.) or one or both of the behavior sequence is interpreted and executed by a script program to dynamically change the display of virtual life objects according to the growth parameters. Details will be described below.
【0106】図3は本発明の一実施の形態の全体のシス
テム構成図である。FIG. 3 is an overall system configuration diagram of an embodiment of the present invention.
【0107】図3において、1,2,3は、VRMLブラウ
ザ及びWWWブラウザがインストールされ、これらが動作
しているクライアントPC(パーソナルコンピュータ)
であり、IP(インターネット接続サービスプロバイダ)
4,5,6を介してインターネット7と接続されてい
る。In FIG. 3, reference numerals 1, 2, and 3 denote client PCs (personal computers) on which a VRML browser and a WWW browser are installed and these are operating.
And IP (Internet Connection Service Provider)
It is connected to the Internet 7 via 4, 5, and 6.
【0108】インターネット7とルータ8を介して接続
されたLAN(Local Area Network)9には、WWWサーバ1
0、WLS(World Location Server)11、共有サーバ1
2、AO(Application Object)サーバ13,14、メー
ルサーバ15、およびコミュニケーションサーバ16が
接続されている。これらの各サーバ10乃至16には、
ハードディスク(HDD)10a,10b,11a乃至16a
が、各々設けられている。A LAN (Local Area Network) 9 connected to the Internet 7 via a router 8 has a WWW server 1
0, WLS (World Location Server) 11, Shared server 1
2. AO (Application Object) servers 13 and 14, a mail server 15, and a communication server 16 are connected. Each of these servers 10 to 16 has
Hard disks (HDD) 10a, 10b, 11a to 16a
Are provided respectively.
【0109】コミュニケーションサーバ16は、公衆電
話回線網17を介して電話機18やファクシミリ19と
接続され、さらに、PHS(Personal Handyphone System)
サービスプロバイダ20を介してPHS端末23に無線接
続され、ポケットベルサービスプロバイダー21を介し
てポケットベル端末24に無線接続されている。The communication server 16 is connected to a telephone 18 and a facsimile 19 via a public telephone line network 17, and further has a PHS (Personal Handyphone System).
It is wirelessly connected to a PHS terminal 23 via a service provider 20 and wirelessly connected to a pager terminal 24 via a pager service provider 21.
【0110】図4はクライアントPC1のハードウェア
構成を示すブロック図である。FIG. 4 is a block diagram showing a hardware configuration of the client PC 1. As shown in FIG.
【0111】図4において、30は各部を制御するCP
U、31はVRML 2.0 fileや、Java(米国 Sun Microsy
stems社の商標)による共有仮想生命の成長スクリプトプ
ログラムおよび後述するローディングプログラム等から
なるVRMLコンテンツ、および飼い主データが格納された
HDD、32はCD−ROMディスク33に格納されたVRMLコン
テンツを読み取るCD−ROMドライブ、34はBIOS(Basic
Input Output Systems)等が格納されたROM、35はマイ
クロフォン36と左右のスピーカ37,38が接続され
たサウンド処理回路、39はインターネット7に接続す
るためのMODEM、40はマウス41とキーボード42が
接続されたI/O(入出力)インターフェイス、43はVRAM
44が内蔵されたグラフィックス処理回路、45はCRT
モニタ、46はRAMである。In FIG. 4, reference numeral 30 denotes a CP for controlling each unit.
U and 31 are VRML 2.0 files and Java (Sun Microsy
VRML contents consisting of a shared virtual life growth script program and a loading program described later, etc., and owner data by stems' trademark) were stored.
HDD, 32 is a CD-ROM drive for reading VRML contents stored on a CD-ROM disk 33, and 34 is a BIOS (Basic
Input output systems), a ROM 35, a sound processing circuit in which a microphone 36 and left and right speakers 37, 38 are connected, a MODEM 39 for connecting to the Internet 7, a mouse 41 and a keyboard 42 I / O (input / output) interface, 43 is VRAM
Graphics processing circuit with built-in 44, CRT with 45
The monitor 46 is a RAM.
【0112】このRAM46には、実行時に、Windows95
(米国Micro Soft社の商標) の上で動作するWWWブラウザ
であるNetscape Navigatorと、Javaインタプリタと、ソ
ニー株式会社によって開発されたVRML2.0ブラウザであ
るCommunity Place Browserが読み込まれて、CPU30に
よって実行される状態となっている。[0112] The RAM 46 stores a Windows 95
Netscape Navigator, which is a WWW browser running on the Internet (trademark of MicroSoft, USA), a Java interpreter, and Community Place Browser, which is a VRML 2.0 browser developed by Sony Corporation, are read and executed by the CPU 30. State.
【0113】VRML2.0ブラウザには、米国シリコング
ラフィクス社によって開発され、無償公開されているVR
MLの構文解釈用ライブラリ(パーサ)であるQvLibと、英
国Criterion Software Ltd.のソフトウエア・レンダラ
であるRenderWare等、もしくはこれらと同等の機能を有
するパーサやレンダラが実装されている。The VRML 2.0 browser includes a VR developed by Silicon Graphics Corporation of the United States and released free of charge.
QvLib, a library for parsing ML (parser), RenderWare, a software renderer of Criterion Software Ltd. in the UK, or a parser or renderer with equivalent functions are implemented.
【0114】そして、 Community Place Browserは、図
3に示すように、WWWブラウザとしてのNetscape Naviga
torとの間において、NCAPI(Netscape Client Applicat
ionPrograming Interface)(商標)に基づいて各種デ
ータの授受を行う。As shown in FIG. 3, the Community Place Browser is a Netscape Naviga as a WWW browser.
NCAPI (Netscape Client Applicat
Various types of data are exchanged based on the ion programming interface (trademark).
【0115】Netscape Navigatorは、インターネット7
を介してWWWサーバ10よりHTMLファイルとVRMLコンテ
ンツ(VRMLファイルとJavaによるスクリプトプログラム
とを含む)の供給を受けると、これらをローカルのHDD
31にそれぞれ記憶させる。Netscape Navigatorは、こ
のうちのHTMLファイルを処理してテキストや画像をCRT
モニタに表示する一方、 Community Place BrowserはVR
MLファイルを処理して3次元仮想空間をCRTモニタに表示
するとともに、Javaインタプリタによるスクリプトプロ
グラムの処理結果に応じて、3次元仮想空間内のオブジ
ェクトの挙動を変化させる。Netscape Navigator is the Internet 7
When the HTML file and the VRML content (including the VRML file and the script program in Java) are supplied from the WWW server 10 via the
31 is stored. Netscape Navigator processes the HTML files and converts text and images to CRT.
While displaying on the monitor, Community Place Browser uses VR
The ML file is processed to display the 3D virtual space on the CRT monitor, and the behavior of objects in the 3D virtual space is changed according to the processing result of the script program by the Java interpreter.
【0116】なお、図示は省略するが、他のクライアン
トPC2やクライアントPC3も、クライアントPC1
と同様に構成されている。Although not shown, the other client PCs 2 and 3 are also connected to the client PC 1.
It is configured similarly to.
【0117】次に上述した一実施の形態の動作について
説明する。Next, the operation of the above-described embodiment will be described.
【0118】まず、実際にVRMLコンテンツをインターネ
ット経由でダウンロードしてから、1つの仮想空間を複
数のユーザで共有するマルチユーザ環境とするまでの手
順を図5乃至図7を参照して説明する。First, a procedure from actually downloading VRML contents via the Internet to setting up a multi-user environment in which one virtual space is shared by a plurality of users will be described with reference to FIGS.
【0119】図5において、番号1で示すように、最初
に、WWWブラウザを用いて、VRMLコンテンツを提供して
いるWebサイトのホームページを閲覧する。この例で
は、 http://pc.sony.co.jp/sapari/ を閲覧してい
る。次に、番号2で示すように、クライアントPC1と
クライアントPC2のユーザは、VRML 2.0fileと、VRM
L空間内での自律的な動き(Behavior)を実現するため
のスクリプトプログラム(Javaによる成長スクリプトプ
ログラム)とからなるVRMLコンテンツを、それぞれダウ
ンロードする。In FIG. 5, as shown by reference numeral 1, first, a home page of a Web site providing VRML content is browsed using a WWW browser. In this example, http://pc.sony.co.jp/sapari/ is browsed. Next, as indicated by the number 2, the users of the client PC1 and the client PC2 are required to store the VRML 2.0 file and the VRM
Each VRML content including a script program (a growth script program by Java) for realizing an autonomous movement (Behavior) in the L space is downloaded.
【0120】勿論、 CD−ROMディスク33で提供される
VRMLコンテンツをCD−ROMドライブ32で読み込んでも
良い。[0120] Of course, provided on the CD-ROM disk 33
VRML contents may be read by the CD-ROM drive 32.
【0121】次に、図6に示すように、クライアントP
C1及びクライアントPC2は、それぞれにダウンロー
ドされ、一旦ローカルのHDD31に格納されたVRML 2.0
fileを、VRML2.0ブラウザであるCommunity Place Br
owserが解釈・実行し、さらに番号3で示すように、VSC
P(Virtual Society Server Client Protocol)に基づい
て、WLS11に対して共有サーバ12のURLを問い合わせ
る。このとき番号4で示すように、WLS11はHDD11a
に格納された共有サーバURL管理テーブルを参照して、
クライアントPC1及びクライアントPC2に対して、
共有サーバ12のURLを通知する。Next, as shown in FIG.
C1 and the client PC2 are respectively downloaded and temporarily stored in the local HDD 31.
file to the Community Place Br, a VRML 2.0 browser
owser interprets and executes, and as shown by number 3, VSC
The WLS 11 is inquired of the URL of the shared server 12 based on P (Virtual Society Server Client Protocol). At this time, as shown by the number 4, the WLS 11 is the HDD 11a
Refer to the shared server URL management table stored in
For client PC1 and client PC2,
The URL of the shared server 12 is notified.
【0122】このURLを用いて、図7に示すように、ク
ライアントPC1とクライアントPC2が、共有サーバ
12に接続する。その結果、番号5で示すように、この
共有サーバ12を介して共有3Dオブジェクトの位置や動
きなどに関する共有メッセージの送信が行われ、番号6
で示すように、その転送が行われ、マルチユーザ環境が
実現される。Using this URL, the client PC 1 and the client PC 2 connect to the shared server 12 as shown in FIG. As a result, as shown by the number 5, a shared message related to the position and movement of the shared 3D object is transmitted through the shared server 12, and the number 6 is transmitted.
As shown by, the transfer is performed, and a multi-user environment is realized.
【0123】なお、以上の接続手順の詳しい説明につい
ては、特開平9-81781号公報を参照されたい。For a detailed description of the above connection procedure, refer to JP-A-9-81781.
【0124】次に、共有仮想空間内に存在する仮想生命
オブジェクトの挙動を管理するAOサーバ13について
説明する。AOサーバ13はVSAPに基づいて共有サーバ
12と仮想生命オブジェクトに関するデータのやり取り
を行なう。また、そのHDD 13aには、図7に示すよう
に、仮想生命オブジェクトの成長パラメータ管理テーブ
ルと後述するモーションデータが格納されている。Next, the AO server 13 for managing the behavior of the virtual life object existing in the shared virtual space will be described. The AO server 13 exchanges data regarding the virtual life object with the shared server 12 based on the VSAP. As shown in FIG. 7, the HDD 13a stores a growth parameter management table for virtual life objects and motion data to be described later.
【0125】図8に示すように、成長パラメータ管理テ
ーブルの仮想生命オブジェクトに関するデータは、仮想
生命データと、飼い主データに大別される。As shown in FIG. 8, the data on the virtual life object in the growth parameter management table is roughly classified into virtual life data and owner data.
【0126】仮想生命データは、1つの共有仮想空間内
において3Dオブジェクトを一意に特定するための3Dオブ
ジェクトID、共有仮想空間内での仮想生命オブジェクト
の3次元座標値、飼い主によって選ばれた猿や猫などの
生物の種類、その性別、飼い主によって付与されたニッ
クネーム、飼い主によって初期設定された日時、すなわ
ちその仮想生命オブジェクトの誕生日時、誕生した仮想
空間に付与されているワールド名(本籍ワールド名)
と、仮想生命オブジェクトの成長パラメータとからな
る。The virtual life data includes a 3D object ID for uniquely specifying a 3D object in one shared virtual space, three-dimensional coordinate values of the virtual life object in the shared virtual space, a monkey selected by the owner, The type of creature such as a cat, its gender, the nickname given by the owner, the date and time initialized by the owner, that is, the birthday of the virtual life object, the world name assigned to the virtual space where it was born (the real world name)
And the growth parameters of the virtual life object.
【0127】成長パラメータは、仮想生命の外観的成長
を規定するフィジカルパラメータと、性格等が反映され
た内面的成長を規定するためのメンタルパラメータに大
別される。The growth parameters are roughly classified into physical parameters that define the appearance growth of virtual life, and mental parameters that define the internal growth reflecting the personality and the like.
【0128】フィジカルパラメータは、身長(単位cm)、
体重(単位Kg)、体格指数、食欲指数、健康度指数、お
よび寿命残時間(単位時間)とからなる。Physical parameters are height (unit: cm),
It consists of body weight (unit: Kg), physique index, appetite index, health index, and remaining life time (unit time).
【0129】メンタルパラメータは、知能指数、言語能
力指数、社交性指数、自主性指数、活発性指数、および
機嫌指数により構成されている。The mental parameters include an intelligence index, a language ability index, a sociality index, an independence index, an activity index, and a mood index.
【0130】これらのパラメータは、飼い主によって最
初に初期設定された誕生日時からの経過時間に伴って発
生するタイマーイベントと、クライアントPCからのコ
ールメッセージや操作メッセージに伴って発生するアク
セスイベントや操作イベントに基づき、所定の成長パラ
メータ算出式によって算出された値に順次更新される。These parameters include a timer event generated with the elapsed time from the date of birth initially set by the owner, an access event and an operation event generated with a call message and an operation message from the client PC. , Are sequentially updated to values calculated by a predetermined growth parameter calculation formula.
【0131】図9は、クライアントPC1のCRTモニタ
45の画面上のVRMLブラウザのメインウインドウに隣接
して表示されるアクションパネルの機能を示している。FIG. 9 shows the function of the action panel displayed adjacent to the main window of the VRML browser on the screen of the CRT monitor 45 of the client PC 1.
【0132】この図において、(Active)と表記されてい
るAは「呼ぶボタン」であり、仮想ペットを呼んだり、
寝ている仮想ペットを起こす際にクリックされる。In this figure, A described as (Active) is a “call button” for calling a virtual pet,
Clicked to wake a sleeping virtual pet.
【0133】(Sleep)と表記されているBは「寝かすボタ
ン」であり、仮想ペットを寝かす際にクリックされる。[0133] B described as (Sleep) is a "sleeping button", which is clicked when the virtual pet is put to sleep.
【0134】Cは「食事ボタン」であり、仮想ペットに
食事を与える際にクリックされるボタンである。C is a "meal button", which is a button that is clicked when feeding a meal to the virtual pet.
【0135】Dは「ほめるボタン」であり、仮想ペット
に笑いかけて褒めてあげる際にクリックされるボタンで
ある。D is a “praise button”, which is clicked when laughing and praising the virtual pet.
【0136】Eは「あそぶボタン」であり、飼い主が鬼
になって逃げ回る仮想ペットを追いかけて、壁にぶつか
って逃げれない仮想ペットにぶつかるまで追いつめて遊
ぶ、いわゆる鬼ごっこで遊ぶ際にクリックされるボタン
である。E is a “play button”, which is a button that is clicked when playing with a so-called tag game, in which the owner follows the virtual pet that runs as a demon and runs away until it hits a virtual pet that cannot escape and hits the wall. It is.
【0137】Fは「しかるボタン」であり、言う事を聞
かない仮想ペットを叱り付けて、しつけを行なう際にク
リックされるボタンである。F is a "reward button", which is a button that is clicked when scolding a virtual pet that does not hear what to say and performing discipline.
【0138】Gは「きれいにするボタン」であり、仮想
ペットをブラッシングしてきれいにする際にクリックさ
れるボタンである。G is a “clean button”, which is clicked when brushing and cleaning a virtual pet.
【0139】そして、例えば、図10に示すように、自
分のクライアントPC1において、「呼ぶボタン」Aが
クリックされ(アクションパネルが操作され)、そのコ
ールメッセージが共有サーバ12を介してAOサーバ1
3へ送信されると(ステップS1)、そのアクセスイベ
ントに基づいて成長パラメータ管理テーブルの成長パラ
メータ更新処理が実行される(ステップS3)。このア
クセスイベントに基づいて、食欲指数、健康度指数、機
嫌指数が、1/10から10/10まで、0.1ポイント
づつインクリメントされる。Then, as shown in FIG. 10, for example, the “call button” A is clicked on the client PC 1 (the action panel is operated), and the call message is transmitted to the AO server 1 via the shared server 12.
3 (step S1), a growth parameter updating process of the growth parameter management table is executed based on the access event (step S3). Based on this access event, the appetite index, health index, and mood index are incremented by 0.1 points from 1/10 to 10/10.
【0140】また、例えば、「食事ボタン」Cがクリッ
クされ、その操作メッセージがAOサーバ13へ送信さ
れ(ステップS2)、操作イベントが発生する毎に、成
長パラメータの体重が増加し、それに伴って、体格指数
が、1/10から10/10まで、0.1ポイントづつイ
ンクリメントされる(ステップS3)。Further, for example, the “meal button” C is clicked, and the operation message is transmitted to the AO server 13 (step S2). Every time an operation event occurs, the weight of the growth parameter increases, and accordingly, Then, the physique index is incremented by 0.1 points from 1/10 to 10/10 (step S3).
【0141】その後、時間経過に伴うタイマーイベント
が発生すると、成長パラメータの体重が減少し、それに
伴って、体格指数が0.1ポイントづつデクリメントされ
る(ステップS3)。Thereafter, when a timer event occurs with the lapse of time, the weight of the growth parameter decreases, and accordingly, the physique index is decremented by 0.1 point (step S3).
【0142】例えば、この体格指数を含む成長パラメー
タは、更新される毎に、共有サーバ12のマルチキャス
ト処理(ステップS5)により、元の飼い主のクライア
ントPC1と、仮想空間を共有しているその他のクライ
アントPC2へ転送される(ステップS4)。For example, every time the growth parameter including the physique index is updated, the other clients sharing the virtual space with the client PC1 of the original owner by the multicast processing (step S5) of the shared server 12. Transferred to PC2 (step S4).
【0143】クライアントPC1では、返送されてきた
成長パラメータに基づいて、仮想ペットの成長に伴う自
律的な挙動を制御するための処理手順が記述された成長
スクリプトプログラムが実行され(ステップS6)、VR
MLファイルの仮想ペットを表現するための3Dオブジェク
トを構成する各ノードのフィールドの値が変更され(ス
テップS7)、この変更されたフィールドの値が反映さ
れた仮想ペットがレンダリングされ(ステップS8)、
クライアントPC1のCRTモニタ45の画面上のVRMLブ
ラウザのメインウインドウ上に表示される。In the client PC1, a growth script program describing a processing procedure for controlling an autonomous behavior accompanying the growth of the virtual pet is executed based on the returned growth parameters (step S6), and the VR is executed.
The value of the field of each node constituting the 3D object for expressing the virtual pet in the ML file is changed (step S7), and the virtual pet reflecting the changed field value is rendered (step S8).
It is displayed on the main window of the VRML browser on the screen of the CRT monitor 45 of the client PC 1.
【0144】このクライアントPC1と同じ処理が、仮
想空間を共有しているその他のクライアントPC2にお
いても実行され、これにより仮想ペットの成長に伴って
変更されたフィールドの値が反映された仮想ペットがレ
ンダリングされ、他のクライアントPC2のCRTモニタ
画面上のVRMLブラウザのメインウインドウ上にも表示さ
れることになる。The same processing as that of the client PC1 is executed in the other client PC2 sharing the virtual space, whereby the virtual pet reflecting the field value changed with the growth of the virtual pet is rendered. Then, it is also displayed on the main window of the VRML browser on the CRT monitor screen of another client PC 2.
【0145】図11及び図12に、VRMLファイルの仮想
ペットを表現するための3Dオブジェクトを構成する各ノ
ードに対応したpart0乃至part5の関係(図11)と、そ
の表示例(図12)を示す。part0が仮想ペットの頭部
に相当し、part1が仮想ペットの胴体に相当し、part2と
part3が仮想ペットの右腕と左腕に相当し、part4とpart
5が仮想ペットの右足と左足に相当する。FIGS. 11 and 12 show the relationship between part0 to part5 corresponding to each node constituting the 3D object for expressing the virtual pet of the VRML file (FIG. 11), and a display example (FIG. 12). . part0 corresponds to the head of the virtual pet, part1 corresponds to the body of the virtual pet, and part2 and
part3 corresponds to the right and left arms of the virtual pet, and part4 and part
5 corresponds to the right and left feet of the virtual pet.
【0146】これらの各part0乃至part5に対応する各ノ
ードのフィールドの値を変更することで、仮想ペットの
各部の外観(形状、姿勢(向き)、サイズ、色等)、及
び各部の挙動シーケンスを動的に変更する事が出来る。
こらは全て、成長パラメータに基づく成長スクリプトプ
ログラムの処理で実現される。すなわち、VRML2.0で定
義されたセンサー、ルーティング、スクリプトの連携動
作によって実現されるBehaviorのメカニズムを利用する
ことによって実現される。By changing the value of the field of each node corresponding to each of these parts 0 to 5, the appearance (shape, posture (direction), size, color, etc.) of each part of the virtual pet and the behavior sequence of each part are changed. Can be changed dynamically.
These are all realized by processing of a growth script program based on growth parameters. That is, it is realized by using the Behavior mechanism realized by the cooperative operation of the sensor, the routing, and the script defined in VRML2.0.
【0147】従って、従来の携帯電子ペットの仮想生物
の画像表示方法のように、予め仮想生物のキヤラクタの
成長過程の各段階のビットマップ画像をROMに格納して
おく必要はなく、例えば、仮想ペットの成長経過に応じ
てその体格や挙動を連続的かつ動的に変化させる事が出
来る。Therefore, unlike the conventional method of displaying an image of a virtual creature of a portable electronic pet, it is not necessary to previously store bitmap images of each stage of the growth process of the character of the virtual creature in the ROM. The physique and behavior can be continuously and dynamically changed according to the progress of growth of the pet.
【0148】図13は、仮想ペットの成長と体格指数の
遷移に伴って仮想ペットの体格を動的に変更して表示す
る概念図を示している。加齢に伴って、顔が大人の顔と
なり、体格も大きくなるが、体格指数が小さいと、やせ
た身体となり、大きいと、大きな身体となる。FIG. 13 is a conceptual diagram of dynamically changing and displaying the physique of the virtual pet in accordance with the growth of the virtual pet and the transition of the physique index. With aging, the face becomes an adult face and the physique increases, but if the physique index is small, the body becomes lean, and if it is large, the body becomes large.
【0149】図14は、仮想ペットの機嫌指数の遷移に
伴って仮想ペットの表情を動的に変更して表示する概念
図を示している。機嫌指数が大きいと、笑い顔となり、
小さいと、怒った顔になる。FIG. 14 is a conceptual diagram of dynamically changing and displaying the expression of the virtual pet along with the transition of the mood index of the virtual pet. If the mood index is large, a laughing face will appear,
If you are small, you will get an angry face.
【0150】図15は、仮想ペットの活発性指数の遷移
に伴って仮想ペットの各部の挙動シーケンスを動的に変
更して表示する概念図を示している。活発性指数が小さ
いと、足の屈伸程度の動きしかできないが、大きくなる
と、手を振ったり、頭を振ったりすることができる。FIG. 15 is a conceptual diagram of dynamically changing and displaying the behavior sequence of each part of the virtual pet according to the transition of the activity index of the virtual pet. When the activity index is small, only movement of the legs can be performed, but when it is large, the hand can shake or shake the head.
【0151】図16は、仮想ペットの知能指数の遷移に
伴って仮想ペットへ頭髪を付加したり眼鏡を付加して表
示する概念図を示している。FIG. 16 is a conceptual diagram showing the display of the virtual pet with the addition of hair or glasses when the intelligence index of the virtual pet changes.
【0152】成長パラメータの知能指数は、図9に示す
「呼ぶボタン」Aの操作に伴うアクセスイベントに基づ
いて、0.1ポイントづつインクリメントされ、図16に
示すように仮想ペットの外観に影響を与える。The intelligence index of the growth parameter is incremented by 0.1 point based on an access event associated with the operation of the “call button” A shown in FIG. 9, and affects the appearance of the virtual pet as shown in FIG.
【0153】言語指数は、図9に示す「呼ぶボタン」A
の操作に伴うアクセスイベントやタイマーイベントに基
づく仮想ペットの年齢に応じて0.1ポイントづつインク
リメントされ、仮想ペットの年齢増加に応じて、テキス
トベースでのチャットの文章自動生成処理を実行するに
際し、そのテキストの文体に影響を与える。例えばポイ
ントの小さい仮想ペットのチャットは、ひらがなまたは
カタカナで行われ、ポイントの大きな仮想ペットのチャ
ットは、漢字の入った文字で行われる。The language index is represented by a “call button” A shown in FIG.
It is incremented by 0.1 point according to the age of the virtual pet based on the access event and timer event accompanying the operation of the operation of the virtual pet, and when executing the text-based chat text automatic generation processing according to the age increase of the virtual pet, the text is Affects the style. For example, a chat of a virtual pet with a small point is performed in hiragana or katakana, and a chat of a virtual pet with a large point is performed in characters including kanji.
【0154】社交性指数は、飼い主とのチャットの頻度
に応じて0.1ポイントづつインクリメント又はデクリメ
ントされ、頻度が多ければ外向的な振る舞い、頻度が少
なくなれば内向的な振る舞い、となるように仮想ペット
の振る舞いに影響を与える。社交的で明るく、積極的な
性格の仮想ペットは、姿勢も顔色も良くなり、逆に、内
向的で暗く、消極的な性格の仮想ペットは、姿勢も顔色
も悪くなる。The social index is incremented or decremented by 0.1 point according to the frequency of chatting with the owner, and the virtual pet is set so as to have an outward behavior when the frequency is high and an introvert behavior when the frequency is low. Affect the behavior of A virtual pet with a sociable, bright, positive character has a better posture and complexion, while a virtual pet with an introverted, darker, passive character has a worse posture and complexion.
【0155】自主性指数は、タイマーイベントに基づく
仮想ペットの年齢増加に応じて、0.1ポイントづつイン
クリメントされ、次第に飼い主の言う事を聞かなくなる
などの仮想ペットの振る舞いに影響を与える。The independence index is incremented in increments of 0.1 points according to the age increase of the virtual pet based on the timer event, and affects the behavior of the virtual pet, such as gradually stopping listening to the owner.
【0156】活発性指数は、年齢、食欲指数、健康度指
数などに基づいて決定され、図15に示すように、仮想
ペットの振る舞いに影響を与える。また、図9に示す
「あそぶボタン」Eの操作に伴う操作イベントの発生に
基づいて、活発性指数が0.1ポイントづつインクリメン
トされ、次第に逃げ足が早くなるなどの仮想ペットの振
る舞いに影響を与えたり、仮想ペットの体重を減らして
体格指数をデクリメントして図13に示すようにその外
観に動的な変更を与える。The activity index is determined based on the age, appetite index, health index, etc., and affects the behavior of the virtual pet as shown in FIG. In addition, based on the occurrence of an operation event associated with the operation of the "play button" E shown in FIG. 9, the activity index is incremented by 0.1 point, thereby affecting the behavior of the virtual pet such that the escape foot becomes faster, The body weight of the virtual pet is reduced and the body mass index is decremented to dynamically change its appearance as shown in FIG.
【0157】機嫌指数は、図9に示す「呼ぶボタン」A
の操作に伴うアクセスイベントやタイマーイベントに基
づくアクセス頻度などに基づいて決定され、図14に示
すように、仮想ペットの表情に影響を与える。The mood index is calculated using the “call button” A shown in FIG.
It is determined based on the access frequency based on the access event and the timer event associated with the operation of, and affects the expression of the virtual pet as shown in FIG.
【0158】一方、図8に示す成長パラメータ管理テー
ブルの飼い主データは、飼い主の氏名、飼い主への連絡
手段(連絡方法)、および、その連絡先からなる。On the other hand, the owner data in the growth parameter management table shown in FIG. 8 is composed of the owner's name, means of contacting the owner (contact method), and the contact information.
【0159】連絡手段が0の場合、飼い主への連絡は、
インターネット7経由の電子メールによるメッセージ文
によって行われる。連絡手段が1の場合は通常のアナロ
グ音声の電話機18に対して、コミュニケーションサー
バ16でメッセージ文のテキストデータを自動読み上げ
ツールで音声に変換して通知する。連絡手段が2の場合
は、PIAFS(PHSインターネットアクセスフォーラム標準)
のデータ伝送方式に準拠した電子メールサービスを利用
し、メッセージ文によってPHS端末23へ通知する。連
絡手段が3の場合は、ファクシミリ19に対して文書で
通知する。連絡手段が4の場合は、ポケットベル端末2
4に対してメッセージ文で通知する。[0159] When the communication means is 0, the contact to the owner is
This is performed by a message sent by e-mail via the Internet 7. When the number of the communication means is 1, the communication server 16 converts the text data of the message into a voice using an automatic reading tool and notifies the telephone 18 of a normal analog voice. If the communication method is 2, PIAFS (PHS Internet Access Forum Standard)
The PHS terminal 23 is notified by a message using an e-mail service conforming to the data transmission method described above. If the communication means is 3, the facsimile 19 is notified in writing. If the communication method is 4, pager terminal 2
4 is notified by a message.
【0160】このような飼い主データを管理するのは、
後述する既存の通信インフラストラクチャを利用した飼
い主への通知機能や、既存の通信インフラストラクチャ
を利用した仮想ペットへの簡易的な操作機能を実現する
為である。[0160] Such owner data is managed by:
This is for realizing a notification function to the owner using the existing communication infrastructure described later and a simple operation function for the virtual pet using the existing communication infrastructure.
【0161】以上のシステムをまとめると、次のように
なる。すなわち、共有仮想空間内に存在する仮想生命オ
ブジェクトの、所定イベント(ユーザの操作又は時間経
過に伴うイベント)の発生に応じて変化する成長パラメ
ータ(外観的成長または内面的成長(個性))をAOサ
ーバ13で管理し、このAOサーバ13から転送された
成長パラメータに基づいて、クライアントPC1,2
で、仮想生命オブジェクトの外観(形状、姿勢、サイズ
または色)又は挙動シーケンスの内の何れか一方もしく
は双方を動的に変更するスクリプト(プログラム)を解
釈し、成長パラメータに応じた仮想生命オブジェクトを
表示する。The above system can be summarized as follows. That is, the growth parameter (appearance growth or internal growth (individuality)) of the virtual life object existing in the shared virtual space, which changes in response to the occurrence of a predetermined event (an event associated with a user operation or a lapse of time), is represented by AO. The client PCs 1, 2 are managed by the server 13 and based on the growth parameters transferred from the AO server 13.
Then, a script (program) for dynamically changing one or both of the appearance (shape, posture, size, or color) and behavior sequence of the virtual life object is interpreted, and the virtual life object corresponding to the growth parameter is interpreted. indicate.
【0162】共有仮想空間内に存在する仮想生命オブジ
ェクトの自律的な挙動を管理するAOサーバ13に、仮
想生命オブジェクトの、所定イベント(ユーザの操作又
は時間経過に伴うイベント)の発生に応じて変化する成
長パラメータを管理する管理テーブルを設け、クライア
ントからの要求または所定イベントの発生に応じて管理
テーブルから読み出した成長パラメータを、要求元また
はその他のクライアントの内の何れか一方もしくは双方
のクライアントへ返送する。The AO server 13, which manages the autonomous behavior of the virtual life object existing in the shared virtual space, changes the virtual life object according to the occurrence of a predetermined event (an event associated with a user operation or an elapse of time). A management table for managing growth parameters to be provided is provided, and a growth parameter read from the management table in response to a request from a client or occurrence of a predetermined event is returned to one or both of the request source and other clients. I do.
【0163】成長パラメータは、上述したように、仮想
生命オブジェクトの誕生からの所定イベント(ユーザの
操作又は時間経過に伴うイベント)の発生に基づいて算
出される、外観的な成長度合いを示す値である。従っ
て、例えば、よちよち歩きの赤ん坊から立派な大人を経
て老人になるまでの年齢に応じた仮想生物や仮想ペット
(AO)の外観上の変化が外観的成長パラメータで規定
される。As described above, the growth parameter is a value indicating the degree of appearance growth calculated based on the occurrence of a predetermined event (an event associated with a user operation or a lapse of time) from the birth of the virtual life object. is there. Therefore, for example, a change in the appearance of the virtual creature or the virtual pet (AO) according to the age from a toddler baby to a mature adult to an elderly person is defined by the appearance growth parameter.
【0164】成長パラメータは、仮想生命オブジェクト
に対する所定イベント(ユーザの操作又は時間経過に伴
うイベント)の発生に起因して算出される、内面的成長
度合い(性格)を示す値でもある。例えば、社交的で明
るく積極的な性格の仮想生命オブジェクトは姿勢も顔色
も良くなり、逆に内向的で暗く消極的な性格の仮想生命
オブジェクトは姿勢も顔色も悪くなるなどの性格に応じ
た仮想生物や仮想ペット(AO)の変化が内面的成長パ
ラメータで規定される。The growth parameter is also a value indicating an internal growth degree (character) calculated based on the occurrence of a predetermined event (an event associated with a user operation or a lapse of time) with respect to the virtual life object. For example, a virtual life object with a sociable, bright and aggressive character has a better posture and complexion, while a virtual life object with an introverted, dark and passive character has a worse posture and complexion. Changes in living things and virtual pets (AO) are defined by internal growth parameters.
【0165】内面的成長パラメータは、仮想生命オブジ
ェクトに対するイベントの種類に応じて異なる値が算出
され、内面的成長度合いの値が更新される。AOサーバ
13側で仮想ペットなどの性格を管理する場合、各クラ
イアントから伝送されて来るメッセージの種類に応じ
て、例えば、チャットで話かけられる毎に成長パラメー
タの所定の指数が0.1ポイント加算され、「ほめるボタ
ン」Dが押されてほめられる毎に0.2ポイント加算さ
れ、「しかるボタン」Fが押されて叱り付けられる毎に
0.2ポイント減算される等の所定の加減剰余の成長計
算式に基づいて算出される。As the internal growth parameter, a different value is calculated according to the type of the event for the virtual life object, and the value of the internal growth degree is updated. When the personality of a virtual pet or the like is managed on the AO server 13 side, a predetermined index of a growth parameter is added by 0.1 point according to the type of a message transmitted from each client, for example, every time a user speaks in a chat. Each time the "praise button" D is pressed and praised, 0.2 points are added, and each time the "pick button" F is pressed and scolded,
It is calculated based on a predetermined addition / subtraction surplus growth formula such as subtraction of 0.2 points.
【0166】共有仮想空間内における仮想生命オブジェ
クトの自律的な挙動を管理するAOサーバ13に、各仮
想生命オブジェクトの成長度合い示す成長パラメータ管
理テーブルを設け、各仮想生命オブジェクトの誕生日時
を保持し、この時点からの経過時間に基づいて、各仮想
生命オブジェクトの年齢に応じた成長パラメータを算出
し、管理テーブルを更新する。The AO server 13 for managing the autonomous behavior of the virtual life object in the shared virtual space is provided with a growth parameter management table indicating the degree of growth of each virtual life object, and holds the birthday of each virtual life object. Based on the elapsed time from this point, a growth parameter corresponding to the age of each virtual life object is calculated, and the management table is updated.
【0167】共有仮想空間内における複数の仮想生命オ
ブジェクトの自律的な挙動を各々独立して管理するAO
サーバ13(単一のAOサーバ13で複数の成長パラメ
ータ管理テーブルを管理してもよく、複数のAOサーバ
13,14で各々管理しても良い)を設け、それぞれの
仮想生命オブジェクトの成長度合い示す成長パラメータ
管理テーブルを各々別個に設けて、各仮想生命オブジェ
クトの成長パラメータを独立して管理することができ
る。AO for independently managing the autonomous behavior of a plurality of virtual life objects in a shared virtual space
A server 13 (a single AO server 13 may manage a plurality of growth parameter management tables, or a plurality of AO servers 13 and 14 may each manage the growth parameter management table) is provided, and indicates a growth degree of each virtual life object. By separately providing the growth parameter management tables, the growth parameters of each virtual life object can be managed independently.
【0168】その他、種々の応用例が考えられる。In addition, various application examples can be considered.
【0169】例えば、共有仮想空間における仮想生命オ
ブジェクトの自律的な挙動を管理するAOサーバ13
に、各仮想生命オブジェクトにアクセスしたクライアン
トのID(ユーザが設定した仮想生命オブジェクトのニ
ックネーム等)を管理する管理テーブル(成長管理テー
ブルに、そのような管理項目を追加してもよいし、独立
した管理テーブルとしてもよい。以下同様)を設け、こ
のIDのクライアントからのアクセスに応じて親密な感
情表現を示すイベントを起動するようにしてもよい。こ
のように、AOサーバ13側で親密度(アクセスの回数
とその内容)を保持しておくことにより、飼い主がワー
ルド(共有仮想空間)に入るとそばに近寄ってくるペッ
ト(仮想生命)オブジェクトを実現することができる。For example, the AO server 13 for managing the autonomous behavior of the virtual life object in the shared virtual space
In addition, such management items may be added to the management table (growth management table) for managing the ID of the client that has accessed each virtual life object (such as the nickname of the virtual life object set by the user). A management table may be used. The same applies hereinafter), and an event indicating an intimate emotional expression may be activated in response to an access from a client having this ID. As described above, by maintaining the intimacy (the number of accesses and the contents thereof) on the AO server 13 side, the pet (virtual life) object approaching by the owner when entering the world (shared virtual space) can be saved. Can be realized.
【0170】仮想生命オブジェクトをセットまたはリセ
ットしたクライアントのIDを、その仮想生命オブジェ
クトの飼い主として、成長パラメータ管理テーブルに格
納し、仮想生命オブジェクトの寿命が尽きるまで、ID
の更新を不可とすると共に、寿命が尽きた時点でIDを
消去するようにしてもよい。これにより、仮想生命オブ
ジェクトを誕生(セット)させた飼い主に忠誠を尽くす
誠実型ペットを実現することができる。さらに、寿命が
尽きた(リセットされた)時点で、自動的にその仮想生
命オブジェクトの子供を誕生させ、その子供に同じ飼い
主のIDを飼い主として初期設定させるようにしても良
い。これにより、その仮想ペットの子孫も先祖の飼い主
になつくことになる。The ID of the client that has set or reset the virtual life object is stored in the growth parameter management table as the owner of the virtual life object, and the ID is maintained until the life of the virtual life object expires.
May not be updated, and the ID may be erased at the end of the life. As a result, it is possible to realize a sincere pet that is loyal to the owner who created (sets) the virtual life object. Further, at the time when the life has expired (reset), a child of the virtual life object may be automatically born, and the child may be initialized with the same owner ID. As a result, the offspring of the virtual pet also become attached to the ancestor's owner.
【0171】仮想生命オブジェクトをセットまたはリセ
ットしたクライアントの履歴を管理する履歴管理テーブ
ルをAOサーバ13に設け、クライアントからのアクセ
ス頻度に応じて、アクセス頻度の高いクライアント程、
より親密な感情表現を示す挙動シーケンスを起動させる
ことができる。逆に、アクセス頻度が少ないと、親密度
が薄れ、アクセス頻度で親密度が変化する浮気型ペット
が実現される。A history management table for managing the history of the client that has set or reset the virtual life object is provided in the AO server 13.
A behavior sequence indicating a more intimate emotional expression can be activated. Conversely, if the access frequency is low, the intimacy level is weakened, and an afflicted pet whose intimacy level changes with the access frequency is realized.
【0172】共有仮想空間内でのクライアントの位置に
対応して仮想生命オブジェクトの移動を制御すれば、共
有仮想空間にクライアント(飼い主)が入ってきたと
き、仮想生命オブジェクトがその目の前にすぐに現れ、
飼い主についてまわる仮想生命オブジェクトを実現する
ことができる。If the movement of the virtual life object is controlled in accordance with the position of the client in the shared virtual space, when the client (owner) enters the shared virtual space, the virtual life object is immediately in front of the client. Appears in
A virtual life object around the owner can be realized.
【0173】共有仮想空間内でのイベント(例えば、他
のクライアントから食事を与えられたという体験)を、
仮想生命オブジェクトからテキストベースでのチャット
ウィンドウを介してクライアントへ体験報告させるよう
にすることで、親密な感情表現を行うことができる。Events in the shared virtual space (for example, an experience of having a meal from another client)
By allowing the virtual life object to report the experience to the client via a text-based chat window, intimate emotional expression can be performed.
【0174】共有仮想空間内でのイベントを、仮想生命
オブジェクトから音声チャットを介してクライアントへ
体験報告することで、親密な感情表現を行うようにして
もよい。テキスト読み上げソフトによるテキスト/音声
変換によりアナログ音声メッセージとして音声チャット
機能を介して通知してもよく、また、予め何種類かの音
声メッセージをサンプリングし、圧縮してディジタル音
声圧縮データとしてHDD(AOサーバ13側またはクラ
イアントPC1側のいずれでもよい)に格納しておい
て、複数の音声メッセージの中から適切な音声メッセー
ジを選択的にHDDから読み出して、伸張した後、音声チ
ャット機能を介してアナログ音声メッセージとして通知
するようにしてもよい。このようなテキストと音声の変
換については、例えば特開平7−105848号公報に
開示されている技術を用いることができる。An intimate emotional expression may be performed by reporting an event in the shared virtual space from the virtual life object to the client via voice chat. An analog voice message may be notified via a voice chat function by text / voice conversion by text-to-speech software, or several types of voice messages may be sampled and compressed in advance and compressed as digital voice compressed data into an HDD (AO server). 13 or the client PC 1), an appropriate voice message is selectively read out of the HDD from a plurality of voice messages, expanded, and then analog voice is transmitted via the voice chat function. You may make it notify as a message. For such conversion between text and voice, for example, a technique disclosed in Japanese Patent Application Laid-Open No. 7-105848 can be used.
【0175】次に、既存の通信インフラストラクチャを
利用した飼い主への通知機能や、既存の通信インフラス
トラクチャを利用した仮想ペットへの簡易的な操作機能
について説明する。Next, a notification function to the owner using the existing communication infrastructure and a simple operation function for the virtual pet using the existing communication infrastructure will be described.
【0176】例えば、仮想生命オブジェクトの食欲指数
が高まった場合や、寿命残時間が所定値以下になった時
点で、仮想生命オブジェクト(AOサーバ13)は、成
長パラメータ管理テーブルに予め設定されている連絡手
段(図8)を用いて、飼い主の連絡先へ、その状態が変
化した旨を、メールサーバ15またはコミュニケーショ
ンサーバ16を介して通知する。これにより、飼い主
は、屋外へ外出中でるあるとか、パーソナルコンピュー
タがうまく動作しないなど、即座にパーソナルコンピュ
ータにアクセスできない状況下であっても、自分が育て
ている仮想ペットの要求を確認し、コミュニケーション
を図ることが可能となる。For example, when the appetite index of the virtual life object increases or when the remaining life time becomes equal to or less than a predetermined value, the virtual life object (AO server 13) is set in the growth parameter management table in advance. Using the communication means (FIG. 8), the owner is notified of the change in the status via the mail server 15 or the communication server 16. As a result, the owner can check the request for the virtual pet that he is raising and communicate even if the owner is out of the outdoors or the personal computer does not work well, and the personal computer can not be accessed immediately. Can be achieved.
【0177】一方、この種の仮想ペットを飼育するサー
ビスを提供することによって、利益を得るサービスプロ
バイダにとっては、ユーザに対して、そろそろアクセス
しなければならないと言う一種の動機付けを喚起するこ
とができ、定常的なアクセスを確保することで、より健
全な経営状態を維持することが可能となるといった副次
的な効果も得られる。[0177] On the other hand, for a service provider who profits by providing this kind of service for breeding virtual pets, a kind of motivation to access the user may be urged to the user. As a result, by securing regular access, it is possible to obtain a secondary effect that a more sound business condition can be maintained.
【0178】既存の通信インフラストラクチャを利用し
た飼い主への通知機能を実現するための具体例は以下の
通りである。A specific example for realizing the function of notifying the owner using the existing communication infrastructure is as follows.
【0179】共有仮想空間における仮想生命オブジェク
トの自律的な挙動を管理するサーバのうち、コミュニケ
ーションサーバ16に、各仮想生命オブジェクトの飼い
主である各ユーザへのメッセージ通知手段(通知方法)
の種類と、その通知先を管理するためのコミュニケーシ
ョン管理テーブル(図8の成長パラメータ管理テーブル
の飼い主データに対応するテーブル)を設け、仮想生命
オブジェクトの状態遷移(AOサーバ13からコミュニ
ケーションサーバ16に通知される)に応じて、コミュ
ニケーション管理テーブルに予め登録されている通知手
段を用いて、その通知先へメッセージを送信する。これ
により、共有仮想世界から、現実世界に実際に連絡が行
われる。Among the servers managing the autonomous behavior of the virtual life objects in the shared virtual space, the communication server 16 provides a message notification means (notification method) to each user who is the owner of each virtual life object.
A communication management table (table corresponding to the owner data in the growth parameter management table in FIG. 8) for managing the type of the notification and the notification destination thereof is provided, and the state transition of the virtual life object (from the AO server 13 to the communication server 16 is notified). The message is transmitted to the notification destination using the notification means registered in the communication management table in advance. Thereby, the real world is actually contacted from the shared virtual world.
【0180】このコミュニケーション管理テーブルで、
各仮想生命オブジェクトの飼い主である各ユーザを特定
するためのIDと、そのIDのユーザからのアクセス履
歴を管理し、各ユーザからのアクセス履歴に基づいて、
一定期間以上アクセスのないユーザに対して、例えば、
「近ごろ、会いに来てくれないので、さみしい....。」
などのメッセージを送信することができる。In this communication management table,
An ID for identifying each user who is the owner of each virtual life object and an access history from the user of the ID are managed, and based on the access history from each user,
For users who have not accessed for a certain period of time, for example,
"I'm not coming to see me recently, so I'm sorry ...."
And so on.
【0181】さらに、各ユーザからのアクセス履歴に基
づいて、複数のメッセージ文例の中から適切なメッセー
ジ文を選択し、この選択したメッセージを送信するよう
にしてもよい。ユーザからのアクセスがあった翌日に
は、仮想生命オブジェクトからユーザに、「昨日は、遊
んでくれてどうもありがとう。また遊ぼうね。」などの
メッセージを送り、1週間アクセスがないと、「忙しい
ですか?たまには、遊びに来て下さい。」などのメッセ
ージを送る。Furthermore, an appropriate message may be selected from a plurality of message examples based on the access history from each user, and the selected message may be transmitted. On the day after the user's access, the virtual life object sends the user a message such as "Thank you for playing yesterday. Let's play again." Occasionally, please come and play. "
【0182】仮想生命オブジェクトの状態遷移を、成長
パラメータ管理テーブルの更新内容に基づいて検出し、
複数のメッセージ文例の中から適切なメッセージ文を選
択し、この選択したメッセージを送信することができ
る。例えば、食事が沢山与えられた翌日には、「まだ、
おなかがいっぱいだよ〜。」などのメッセージを送り、
1週間アクセスがないと、「おなかが空いて死にそうだ
よ〜。」などのメッセージを送る。1週間で1歳年を取
るシナリオとした場合は、毎週、誕生日が来て年を取る
毎に、「私は今日で10歳になりました。成長した姿を
みに来て下さい。」などのメッセージを送り、寿命が残
り少なくなると、「そろそろ遠い所へ旅立たなければな
りません、最後を見とどけに来てください。」などのメ
ッセージを送る。A state transition of the virtual life object is detected based on the updated contents of the growth parameter management table,
An appropriate message text can be selected from a plurality of message text examples, and the selected message can be transmitted. For example, the day after a lot of meals,
My stomach is full ~ "
If there is no access for a week, a message such as "You are about to die because you are hungry." Assuming a scenario of one year old in one week, every week, when my birthday comes and I get older, "I'm 10 years old today. Please come and see my grown up." When the life span is running short, send a message such as "I have to travel to a distant place soon, come to see the end."
【0183】コミュニケーション管理テーブルのうち、
電子メールに関する部分のテーブルをメールサーバ15
に設け、メールサーバ15のコミュニケーション管理テ
ーブルで、各仮想生命オブジェクトの飼い主である各ユ
ーザの電子メールアドレス(ユーザを特定するIDも兼
ねる)に対してテキストによるメッセージを送信するこ
とができる。In the communication management table,
The mail server 15 stores the table relating to the electronic mail.
In the communication management table of the mail server 15, a text message can be transmitted to the e-mail address (also serving as an ID for identifying the user) of each user who is the owner of each virtual life object.
【0184】インターネット7を経由する電子メール以
外に、PIAFS(PHS Internet AccessForum Standard)方式
や、αDATA32方式対応PHSで電子メールサービスを受け
られるPHS端末23や、ページャ(ポケットベル端末2
4)などに対して、コミュニケーションサーバ16から
公衆電話回線網17を介してメッセージを通知し、それ
らのLCD上にメッセージを表示させるようにしてもよ
い。In addition to the e-mail via the Internet 7, a PHS terminal 23 which can receive an e-mail service using a PHS (PHS Internet Access Forum Standard) system or a PHS compatible with the αDATA32 system, a pager (pager terminal 2)
4) For example, a message may be notified from the communication server 16 via the public telephone network 17 and the message may be displayed on the LCD.
【0185】あるいは、コミュニケーション管理テーブ
ルで、各仮想生命オブジェクトの飼い主である各ユーザ
の通知先電話番号(ユーザを特定するIDも兼ねる)を
管理し、コミュニケーションサーバ16からこの電話番
号に対して自動発信して、音声によるメッセージを送信
することもできる。この場合、テキスト読み上げソフト
によるテキスト/音声変換によりアナログ音声メッセー
ジとして通常の電話機8や携帯電話機(PHS端末23)
を介して通知してもよく、また、予め何種類かの音声メ
ッセージをサンプリングし、圧縮してディジタル音声圧
縮データとしてHDDに格納しておいて、複数の音声メッ
セージの中から適切な音声メッセージを選択的にHDDか
ら読み出して、伸張した後、アナログ音声メッセージと
して通知するようにしてもよい。Alternatively, in the communication management table, the notification destination telephone number (also serving as an ID for specifying the user) of each user who is the owner of each virtual life object is managed, and the communication server 16 automatically transmits the telephone number to this telephone number. Then, a voice message can be transmitted. In this case, a normal telephone 8 or a mobile telephone (PHS terminal 23) is converted into an analog voice message by text / voice conversion by text-to-speech software
May be notified via a voice message.Also, some types of voice messages are sampled in advance, compressed and stored as digital voice compressed data in the HDD, and an appropriate voice message is selected from a plurality of voice messages. After selectively reading from the HDD and decompressing, it may be notified as an analog voice message.
【0186】コミュニケーション管理テーブルで、各仮
想生命オブジェクトの飼い主である各ユーザの通知先フ
ァクシミリ電話番号(ユーザを特定するIDも兼ねる)
を管理し、コミュニケーションサーバ16からこの電話
番号に対して自動発信して、ファクシミリ19にメッセ
ージを送信してもい。In the communication management table, the notification facsimile telephone number of each user who is the owner of each virtual life object (also serves as an ID for specifying the user)
And the communication server 16 may automatically send a call to this telephone number to send a message to the facsimile 19.
【0187】さらに、上述した仮想ペットからのメッセ
ージの通知を受けた電話機18等の端末を用いて、この
端末から、自分の仮想ペットに対して、簡易的な操作を
行なうことで、双方向のコミュニケーションを図ること
が可能となる。Further, by using a terminal such as the telephone 18 that has received the notification of the message from the virtual pet, a simple operation is performed on the user's own virtual pet from this terminal, whereby bidirectional communication is possible. Communication becomes possible.
【0188】既存の通信インフラストラクチャを利用し
て、仮想ペットへの簡易的な操作機能を実現するための
具体例は以下の通りである。A specific example for realizing a simple operation function for a virtual pet using an existing communication infrastructure is as follows.
【0189】例えば、共有サーバ12は、ユーザからPH
S端末23、電話機18などを介してユーザを特定する
IDを伴って(CallerID等)返送されてくる操作コマ
ンドを解釈し、対応する仮想生命オブジェクトへのメッ
セージとして認識し、AOサーバ13に通知して、仮想
生命オブジェクトの状態遷移(成長パラメータの更新)
へ反映させることができる。For example, the shared server 12 sends a PH
Interpret the operation command returned with an ID for specifying the user (such as CallerID) via the S terminal 23, the telephone 18, or the like, recognize the message as a message to the corresponding virtual life object, and notify the AO server 13. And state transition of virtual life objects (update of growth parameters)
Can be reflected to
【0190】この返信されてくる操作コマンドとして
は、例えば、電話機18のプッシュボタンが操作される
ことで発信されるDTMF(Dual-tone Multifrequency)信号
を利用することができる。As the returned operation command, for example, a DTMF (Dual-tone Multifrequency) signal transmitted by operating a push button of the telephone 18 can be used.
【0191】この他、例えばデネットフォニックコミュ
ニケーションズ社の音声ブラウザWeb-On-Callを用い
て、仮想ペットに対して各種の通知を行うようにするこ
ともできる。この音声ブラウザによれば、通常の電話機
18から音声によってサーバにアクセスすることができ
る。また、この音声ブラウザは、テキスト読み上げ機能
を有しているので、仮想ペットからのメールを音声で聴
くことも可能である。さらに、テキストをファックスや
電子メールで送ることもできる。In addition, various notifications can be sent to the virtual pet by using, for example, the voice browser Web-On-Call of Dennet Phonic Communications. According to this voice browser, the server can be accessed by voice from the ordinary telephone 18. In addition, since this voice browser has a text-to-speech function, it is possible to listen to a mail from a virtual pet by voice. In addition, text can be sent by fax or e-mail.
【0192】なお、共有サーバ12、AOサーバ13,
14、メールサーバ15、およびコミュニケーションサ
ーバ16は、各種の機能を分担し、全体的なシステムと
して、各クライアントPCに共有仮想空間を提供するサ
ービスを実現している。The shared server 12, AO server 13,
The mail server 15, the communication server 16, and the communication server 16 share various functions and realize a service of providing a shared virtual space to each client PC as an overall system.
【0193】次に、この共有仮想空間におけるチャット
について説明する。チャットには、パブリックチャット
とパーソナルチャットがある。パブリックチャットにお
いては、共有仮想空間内の所定の位置に位置する1人の
クライアント(ユーザ)が発生したチャットの内容が、
近傍の他のクライアント(他のユーザ)へ伝達される。Next, a chat in the shared virtual space will be described. There are public chats and personal chats. In the public chat, the content of the chat generated by one client (user) located at a predetermined position in the shared virtual space is:
Propagated to other clients (other users) in the vicinity.
【0194】これに対して、パーソナルチャットにおい
ては、対象とされる相手が指定される。この指定操作
は、例えば、所定の仮想生命オブジェクトをキーボード
42のシフトキーを押しながらマウスのボタンをクリッ
クすることで行われる。このように、相手が指定された
場合には、そのクリック操作を行ったクライアントが発
生するチャットが、その指定した仮想生命オブジェクト
のユーザに対してのみ伝送される。On the other hand, in the personal chat, a target partner is specified. This designation operation is performed, for example, by clicking a mouse button while pressing the shift key of the keyboard 42 on a predetermined virtual life object. As described above, when the other party is specified, the chat generated by the client that has performed the click operation is transmitted only to the user of the specified virtual life object.
【0195】チャットの内容は、ボイスチャットの場
合、音声信号により伝送され、テキストチャットの場
合、テキストにより伝送される。ボイスチャットの場合
は、マイクロホン36を介して取り込んだ音声データ
が、近傍または指定した仮想生命オブジェクトのクライ
アント(ユーザ)に伝送され、そのクライアントPCの
有するスピーカ37,38から出力される。The contents of the chat are transmitted by voice signals in the case of a voice chat, and transmitted by text in the case of a text chat. In the case of voice chat, voice data captured via the microphone 36 is transmitted to a client (user) of a nearby or designated virtual life object, and output from speakers 37 and 38 of the client PC.
【0196】これに対して、テキストチャットの場合
は、キーボード42を操作することで入力されたテキス
トが、やはり近傍または指定した仮想生命オブジェクト
のクライアントのクライアントPCに伝送される。そし
て、そのテキストは、そのクライアントPCのCRTモニ
タ45上に表示される。On the other hand, in the case of the text chat, the text input by operating the keyboard 42 is transmitted to the client PC of the client of the nearby or designated virtual life object. Then, the text is displayed on the CRT monitor 45 of the client PC.
【0197】ボイスチャットとテキストチャットのいず
れを行うかは、ユーザが選択することができる。The user can select whether to perform a voice chat or a text chat.
【0198】次に、クライアントPCのCRTモニタに表
示される具体的な表示例について説明する。図17は、
例えばクライアントPC1から共有サーバ12にアクセ
スした場合のCRTモニタ45上の表示例を表している。
この表示例においては、「Community Place Bureauに接
続しました」のメッセージが3次元共有仮想空間の画像
に重畳表示されている。なお、この画面の右側には、チ
ャットの内容を表示する領域「Chat Log:」と、各種の
アクションボタンが表示されている。Next, a specific display example displayed on the CRT monitor of the client PC will be described. FIG.
For example, a display example on the CRT monitor 45 when the client PC 1 accesses the shared server 12 is shown.
In this display example, the message “Connected to Community Place Bureau” is superimposed on the image of the three-dimensional shared virtual space. On the right side of this screen, an area “Chat Log:” for displaying the content of the chat and various action buttons are displayed.
【0199】ユーザは、自分が共有仮想空間内において
飼育しようとするペットを選択するとき、表示画面中の
「MultiUser」の項目をクリックする。このとき、図1
8に示すように、メニューバーが表示される。ユーザ
は、この中から「Select Pet」を選択する。すると、図
19に示すように、「View Pet」のウインドウが表示さ
れ、このウインドウに各種のペットの画像が表示され
る。ユーザは、このペットの中から所望のペットを選択
する。なお、このとき表示されるペットの画像は、初期
状態の画像、すなわち、誕生するときの画像とされる。
上述したように、このペットの画像は、成長に伴って徐
々に変化していく。そして、選択が完了したとき、ユー
ザは、「SELECT」のボタンをマウス41を操作してオン
する。When the user selects a pet to be bred in the shared virtual space, the user clicks the item “MultiUser” on the display screen. At this time, FIG.
As shown in FIG. 8, a menu bar is displayed. The user selects “Select Pet” from among them. Then, as shown in FIG. 19, a “View Pet” window is displayed, and images of various pets are displayed in this window. The user selects a desired pet from the pets. The pet image displayed at this time is an image in an initial state, that is, an image at the time of birth.
As described above, the image of this pet gradually changes with growth. When the selection is completed, the user operates the mouse 41 to turn on the “SELECT” button.
【0200】このようにして、ペットの選択が完了する
と、図20に示すように、ペットに関する情報を登録す
る「Registration」のウインドウが表示される。ユーザ
は、ここで、ペットの名称「Pet nickname」、自分自身
(飼い主)の名称「Owner name」、およびアドレスと電
話番号「Address/TelephoneNo.」をキーボード42を操
作して入力する。When the selection of the pet is completed in this way, a “Registration” window for registering information about the pet is displayed as shown in FIG. Here, the user operates the keyboard 42 to input the pet name “Pet nickname”, the name of the self (owner) “Owner name”, and the address and telephone number “Address / TelephoneNo.”.
【0201】さらに、上述した連絡手段または通知手段
としてのコミュニケーションツール「Communication to
ol」を、E-mail,Telephone,PHS-mail,Facsimile,Po
cketbellの中から、選択、指定する。Further, the communication tool “Communication to
ol ”for E-mail, Telephone, PHS-mail, Facsimile, Po
Select and specify from cketbell.
【0202】図21は、このようにして、仮想ペットと
して、例えば猿が選択された場合の表示例を表してい
る。この仮想ペット(猿)は、上述したように、各種の
イベントに対応して更新される成長パラメータに基づい
て成長する。図22は、図21に示した場合より成長し
た状態を表している。図21に示す場合より図22に示
す場合の方が、身体が全体的に大きくなっており、顔も
より大人の顔に変化している。FIG. 21 shows a display example when a monkey is selected as a virtual pet in this way. As described above, this virtual pet (monkey) grows based on the growth parameters updated in response to various events. FIG. 22 shows a state of growth from the case shown in FIG. In the case shown in FIG. 22, the body is larger as a whole than in the case shown in FIG. 21, and the face has changed to an adult face.
【0203】上述した仮想ペットの挙動を制御するVRML
で記述されたプログラムに付いて説明する。VRML for controlling the behavior of the virtual pet described above
The following describes the program described in.
【0204】 Sample 18 1: # 2: # 3D Model 3: # 4: Transform{ 5: children[ 6: DEF Body Transform{ 7: } 8: ] 9: } 10: # 11: # TIMER 12: # 13: DEF TIME TimeSensor{ 14: stopTime -1 15: } 16: # 17: # Interpolators 18: # 19: DEF Body_Mover PositionInterpolator{ 20: key [] 21: keyValue [] 22: } 23: DEF Body_Turner OrientationInterpolator{ 24: key [] 25: keyValue [] 26: } 27: # 28: # Routing 29: # 30: ROUTE TIME.fraction_changed TO Body_Mover.set_fraction 31: ROUTE Body_Mover.value_changed TO Body.set_translation 32: ROUTE TIME.fraction_changed TO Body_Turner.set_fraction 33: ROUTE Body_Turner.value_changed TO Body.set_rotationSample 18 1: # 2: # 3D Model 3: # 4: Transform {5: children [6: DEF Body Transform {7:} 8:] 9:} 10: # 11: # TIMER 12: # 13 : DEF TIME TimeSensor {14: stopTime -1 15:} 16: # 17: # Interpolators 18: # 19: DEF Body_Mover PositionInterpolator {20: key [] 21: keyValue [] 22:} 23: DEF Body_Turner OrientationInterpolator {24: key [] 25: keyValue [] 26:} 27: # 28: # Routing 29: # 30: ROUTE TIME.fraction_changed TO Body_Mover.set_fraction 31: ROUTE Body_Mover.value_changed TO Body.set_translation 32: ROUTE TIME.fraction_changed TO Body_Turner. set_fraction 33: ROUTE Body_Turner.value_changed TO Body.set_rotation
【0205】このプログラムの各行の説明は、既にVRML
のところで説明したことを当てはめることにより可能な
ので、その詳細な説明は省略する。まず、6行目におい
て、ノード名”Body”と名付けられた”Transform”型
のノードが定義づけられている。そして、13行目にお
いて、”TIME”と名付けられた”TimeSensor”型のノー
ドが定義されている。The explanation of each line of this program has already been described in VRML
Since it is possible to apply what has been described above, a detailed description thereof will be omitted. First, in the sixth line, a “Transform” type node named “Body” is defined. In the thirteenth line, a “TimeSensor” type node named “TIME” is defined.
【0206】19行目において、”Body_Mover”と名付
けられた、位置に対して内挿する場合に用いられる”Po
sitionInterpolator”型のノードが定義されている。ま
た、23行目においては、”Body_Turner”と名付けら
れた、方向に対して内挿する場合に用いられる”Orient
ationInterpolator”型のノードが定義されている。1
9行目または23行目に定義された内挿ノードに対し
て、それぞれ、keyフィールドとkeyValueフィールドが
定義されているが、いずれのフィールドもヌル(null:
空)フィールドとされている。In the 19th line, “Pod_Mover”, which is used when interpolating a position, is used as “Pod_Mover”.
A node of type "sitionInterpolator" is defined. In line 23, "Orient_Body_Turner" is used to interpolate in the direction.
ationInterpolator ”type node is defined.
A key field and a keyValue field are defined for each of the interpolation nodes defined on the ninth and twenty-third rows, and both fields are null (null:
Empty) field.
【0207】30乃至33行目の各行は、ルーティング
を定義している。TimeSensor Timeが起動するとfractio
n_changedがイベントアウトされる。fraction_changed
がイベントアウトされると、PositionInterpolator Bo
dy_MoverのSet_fractionにイベントインされる。ここま
でが30行目のROUTEの動作である。31行目はイベン
トインされたSet_fractionの値からPositionInterpolat
or Body_Moverが値を内挿し、それをTransform Body
のtranslationフィールドにvalue_changedとしてイベン
トアウトする。Each of the 30th to 33rd lines defines a routing. Fractio when TimeSensor Time starts
n_changed is evented out. fraction_changed
Event is out, the PositionInterpolator Bo
Evented into Set_fraction of dy_Mover. This is the operation of ROUTE on the 30th line. The 31st line is PositionInterpolat from the value of Set_fraction that is event-in
or Body_Mover interpolates the value and transforms it
Event out as value_changed in the translation field of.
【0208】32,33行目においては、TimeSensor T
imeが起動するとfraction_changedがイベントアウトさ
れ、PositionInterpolator Body_TurnerのSet_fractio
nにイベントインされる。そして、イベントインされたS
et_fractionの値からOrientationInterpolator Body_T
urnerが値を内挿し、それをTransform Bodyのrotation
フィールドにvalue_changedとしてイベントアウトす
る。In lines 32 and 33, TimeSensor T
When ime starts, fraction_changed is evented out and Set_fractio of PositionInterpolator Body_Turner
Evented in n. And S that was event-in
OrientationInterpolator Body_T from et_fraction value
urner interpolates the value and converts it to the Transform Body rotation
Event out as value_changed to the field.
【0209】上述したように、このプログラムにおいて
は、20,24行目のkeyフィールドの値、21,25
行目のkeyValueフィールドの値が、それぞれ空(ヌルフ
ィールド)になされている。これらのフィールドの値
は、後述するモーションデータに記載されている。この
モーションデータと、上述したプログラムをつなぐため
に、Javaで記載されたローディングプログラムがある。
これらのプログラムの関係を図23に示す。As described above, in this program, the value of the key field on the 20th and 24th lines,
The value of the keyValue field on the line is empty (null field). The values of these fields are described in the motion data described later. There is a loading program written in Java to connect this motion data to the above-mentioned program.
FIG. 23 shows the relationship between these programs.
【0210】図23の3D Model、Timer、Interpolator
s、Routingは、上記したVRMLを用いて記述された仮想ペ
ットを表示するためのプログラムのことである。このプ
ログラムのファイルは、これで完結している。このファ
イルのInterpolatorsの数値リストは空になされてお
り、その数値リストはモーションデータ(Motion dat
a)に記録されている。このモーションデータは複数存
在し、これらのデータの組み合わせによりオブジェクト
の挙動は制御される。そして、複数のモーションデータ
から必要なデータを選択し、プログラムのInterpolator
のところに代入するのが、Javaを用いて記載されたロー
ディングプログラムである。The 3D Model, Timer, and Interpolator shown in FIG.
s and Routing are programs for displaying a virtual pet described using VRML. The file for this program is now complete. The list of Interpolators in this file is empty and the list of motion data (Motion dat
Recorded in a). There are a plurality of such motion data, and the behavior of the object is controlled by a combination of these data. Then, select necessary data from multiple motion data, and use the program's Interpolator
Is a loading program written using Java.
【0211】以下にモーションデータのフォーマット形
式を示す。The format of the motion data is shown below.
【0212】 Sample 19 1: version number (float) 2: cycleInterval (float) 3: loop (boolean) 4: num of interpolator (int) 5: key/keyValue of interpolator 6: ID (int)//See DefName.java 7: Type (int)//Position/OrientationInterpolator 8: key 9: num of key (int) 10: val of key (float) 11: keyValue 12: num of keyValue (int) 13: val of keyValue (float) 14: key/keyValue of interpolatorSample 19 1: version number (float) 2: cycleInterval (float) 3: loop (boolean) 4: num of interpolator (int) 5: key / keyValue of interpolator 6: ID (int) // See DefName. java 7: Type (int) // Position / OrientationInterpolator 8: key 9: num of key (int) 10: val of key (float) 11: keyValue 12: num of keyValue (int) 13: val of keyValue (float) 14: key / keyValue of interpolator
【0213】このプログラム中において、floatは、3
2ビットで表される浮動小数点数の値を表しており、in
tは32ビットで表される整数の値を表しており、boole
anはプール値(trueまたはfalse)を表している。In this program, float is 3
Represents the value of a floating point number represented by 2 bits, in
t represents the value of an integer represented by 32 bits.
an represents a pool value (true or false).
【0214】1行目のversion numberは、このモーショ
ンデータのバージョンを示している。例えば、オブジェ
クトの挙動をスムーズに行うようにするために、モーシ
ョンデータを更新する場合などが考えられるので、バー
ジョン情報を付ける。2行目のcycleIntervalは、この
モーションデータの実行にかかる時間を示している。3
行目のloopは、このモーションを繰り返し実行するか否
かが指定される。The version number on the first line indicates the version of the motion data. For example, the motion data may be updated in order to smoothly perform the behavior of the object. The cycleInterval in the second line indicates the time required to execute this motion data. 3
The loop in the line specifies whether this motion is repeatedly executed.
【0215】4行目のnum of Interpolatorは、このモ
ーションデータに含まれるインタポレータの数を示して
いる。5行目のkey/keyValue of Interpolatorは、1番
目のインタポレータの数値リストの開始を示している。
6行目のIDは、このインタポレータのIDである。そし
て、7行目のTypeは、インタポレータの種類を示してい
る。インタポレータには、位置の補間を行うPositionIn
terpolator、角度の補間を行うOrientationInterpolato
r、色の補間を行うColorInterpolator、ポリゴンの頂点
座標の補間を行うCoorinateInterpolator、ポリゴンの
法線の補間を行うNormlInterpolator、数値(浮動小数
点)の補間を行うScalarInterpolator、などがある。[0215] The num of Interpolator on the fourth line indicates the number of interpolators included in the motion data. The key / keyValue of Interpolator on the fifth line indicates the start of the numerical value list of the first interpolator.
The ID on the sixth line is the ID of this interpolator. The Type in the seventh line indicates the type of the interpolator. The interpolator has PositionIn which performs position interpolation.
terpolator, OrientationInterpolato for angle interpolation
r, ColorInterpolator for interpolating colors, CoorinateInterpolator for interpolating vertex coordinates of polygons, NormlInterpolator for interpolating normals of polygons, ScalarInterpolator for interpolating numerical values (floating points), and the like.
【0216】8行目のkeyは、これ以降にkeyフィールド
の数値リストが記載されていることを示している。9行
目のnum of keyは、このkeyフィールドに記録されてい
る数値リストの値の個数を示している。10行目のval
of keyは、keyフィールドの具体的な値が書かれる。こ
のval of keyは、9行目で示された個数だけ、存在す
る。11行目のkeyValueは、これ以降にkeyValueフィー
ルドの数値リストが記載されていることを示している。
12行目のnum of keyValueは、このkeyValueフィール
ドに記録されている数値リストの値の個数を示してい
る。13行目のvalof keyValueは、keyValueフィールド
の具体的な値が書かれる。val of keyValueは、12行
目で示された個数だけ、存在する。[0216] The key on the eighth line indicates that a numerical list of the key field is described thereafter. The num of key on the ninth line indicates the number of values in the numerical value list recorded in this key field. Val on line 10
The specific value of the key field is written in the of key. This val of key exists by the number shown in the ninth line. The keyValue on the eleventh line indicates that a numerical value list of the keyValue field is described thereafter.
The num of keyValue on the twelfth line indicates the number of values in the numerical value list recorded in this keyValue field. The valof keyValue on the thirteenth line describes a specific value of the keyValue field. The val of keyValue exists as many as the number shown in the twelfth line.
【0217】14行目において、再びkey/keyValue of
Interpolatorの記述がある。ここでは、2番目のインタ
ポレータ数値リストの開始が示されている。これ以降に
は、6行目乃至13行目と同様に、数値リストが記述さ
れる。なお、この繰り返しは、4行目で示されたインタ
ポレータの個数だけ存在する。In line 14, the key / keyValue of
There is a description of Interpolator. Here, the start of the second interpolator value list is shown. After that, a numerical value list is described as in the sixth to thirteenth lines. This repetition exists for the number of interpolators shown in the fourth row.
【0218】次に、図30のディスプレイの表示例で示
された直方体を、5段階(Step1乃至5)の移動を経
て、図31で示された位置まで移動させる場合のプログ
ラムの例を以下に示す。Next, an example of a program for moving the rectangular parallelepiped shown in the display example of FIG. 30 to the position shown in FIG. 31 through five steps (Steps 1 to 5) will be described below. Show.
【0219】 Sample 20 1: #VRML V2.0 utf8 2: WorldInfo {title "PositionInterpolatorDemo" } 3: NavigationInfo {headlight TRUE} 4: Viewpoint { 5: position 3.300000 3.300000 13.600359 6: fieldOfView 0.785398 7: } 8: Background { 9: skyColor 111 10: } 11: DEF OBJ Transform { 12: children [ 13: DEF TS TouchSensor {} 14: Shape { 15: appearance Appearance { 16: material Material {diffuseColor100} 17: } 18: geometry Box {} 19: } 20: ] 21: } 22: DEF TIS TimeSensor {cycleInterval 5} 23: DEF PI PositionInterpolator{ 24: key [] 25: keyValue [] 26: } 27: ROUTE TS.touchTime TO TIS.set_startTime 28: ROUTE TIS.fraction_changed TO PI.set_fraction 29: ROUTE PI.value_changed TO OBJ.set_translationSample 20 1: #VRML V2.0 utf8 2: WorldInfo {title "PositionInterpolatorDemo"} 3: NavigationInfo {headlight TRUE} 4: Viewpoint {5: position 3.300000 3.300000 13.600359 6: fieldOfView 0.785398 7:} 8: Background { 9: skyColor 111 10:} 11: DEF OBJ Transform {12: children [13: DEF TS TouchSensor {} 14: Shape {15: appearance Appearance {16: material Material {diffuseColor100} 17:} 18: geometry Box {} 19 :} 20:] 21:} 22: DEF TIS TimeSensor {cycleInterval 5} 23: DEF PI PositionInterpolator {24: key [] 25: keyValue [] 26:} 27: ROUTE TS.touchTime TO TIS.set_startTime 28: ROUTE TIS .fraction_changed TO PI.set_fraction 29: ROUTE PI.value_changed TO OBJ.set_translation
【0220】2行目の”WarldInfo”において、このプ
ログラムの名前を”PositionInterpolatorDemo”と名付
けている。3行目の”NavigationInfo”においては、ヘ
ッドライトを照らすように指示している。4乃至7行目
においては、”Position”で指定された座標から、”fi
eldOfView”で指定された角度でオブジェクトを見るこ
とを指定している。8乃至10行目においては、背景色
(Background)として”SkyColor 111”を指定してい
る。[0220] In the second line "WarldInfo", the name of this program is named "PositionInterpolatorDemo". In the “NavigationInfo” on the third line, an instruction is given to illuminate the headlight. In the fourth to seventh lines, from the coordinates specified by “Position”, “fi”
It is specified that the object is to be viewed at the angle specified by “eldOfView.” In lines 8 to 10, “SkyColor 111” is specified as the background color (Background).
【0221】11乃至21行目において、オブジェクト
の指定をしている。まず11行目において、”OBJ”と
名付けられた”Transform”型のノードが定義されてい
る。18行目で幾何ノードとして直方体(Box)が指定
されている。15,16行目においては、この直方体の
外観の色や模様が指定されている。さらにこの直方体に
は、13行目において、”TS”と名付けられた”TouchS
ensor”型のノードが付けられている。In the eleventh to twenty-first lines, an object is specified. First, on the eleventh line, a “Transform” type node named “OBJ” is defined. On the 18th line, a rectangular parallelepiped (Box) is specified as a geometric node. In the fifteenth and sixteenth lines, the color and pattern of the appearance of the rectangular parallelepiped are specified. In addition, in this cuboid, on the 13th line, "TouchS" named "TS"
It has a node of type "ensor".
【0222】22行目においては、”TIS”と名付けら
れた”TimeSensor”型のノードが定義されている。この
TimeSensorにより、イベントの繰り返し時間間隔が5秒
(cycleInterval 5)と指定されている。On the 22nd line, a “TimeSensor” type node named “TIS” is defined. this
The TimeSensor specifies the repetition time interval of the event as 5 seconds (cycleInterval 5).
【0223】23行目においては、”PI”と名付けられ
た”PositionInterpolator”型のノードが定義されてい
る。24行目のkeyフィールドは、アニメーションの経
過位置を示す数値リストが記述され、25行目のkeyVal
ueフィールドは、keyフィールドの1つ1つの数値に対
応する座標値リストが記述される。このkeyフィールド
とkeyValueフィールドの、それぞれの数値リストは、モ
ーションデータに記述されているので、ここでは空フィ
ールドとなされている。On the twenty-third line, a node of type "PositionInterpolator" named "PI" is defined. In the key field on the 24th line, a numerical value list indicating the progress position of the animation is described.
The ue field describes a coordinate value list corresponding to each numerical value of the key field. Since the respective numerical value lists of the key field and the keyValue field are described in the motion data, they are empty here.
【0224】27乃至29行目は、ルート設定が定義づ
けられている。まず27行目において、TimeSensor TS
が起動すると、TouchTimeがイベントアウトされ、TimeS
ensorTISのSet_StartTimeにイベントインされる。28
行目では、イベントインされたSet_StartTimeの値からT
imeSensor TISが値を内挿し、それをPositionInterpola
tor PIのfractionフィールドにfraction_changedとして
イベントアウトする。さらに、29行目において、イベ
ントインされたfraction_changedの値からPositionInte
rpolator PIが値を内挿し、それをTransform OBJのtran
slationフィールドにvalue_changedとしてイベントアウ
トする。Lines 27 to 29 define the route settings. First, on line 27, TimeSensor TS
Is activated, TouchTime is event-out, and TimeS
Event is entered into Set_StartTime of ensorTIS. 28
In the line, T is set from the value of Set_StartTime
imeSensor TIS interpolates the value and translates it to PositionInterpola
Event out as fraction_changed in the fraction field of tor PI. Further, in line 29, the value of Position_Inte
rpolator PI interpolates the value and converts it to Transform OBJ tran
Event out as value_changed in slation field.
【0225】このプログラムのモーションデータを以下
に示す。The motion data of this program is shown below.
【0226】Sample 21 1: version number (1.0) 2: cycleInterval (5) 3: loop (true) 4: num of interpolator (1) 5: key/keyValue of interpolator 6: ID (0)//See DefName.java 7: Type (0)//PositionInterpolator 8: key 9: num of key (6) 10: val of key (0.0) 11: val of key (0.2) 12: val of key (0.4) 13: val of key (0.6) 14: val of key (0.8) 15: val of key (1.0) 16: keyValue 17: num of keyValue (6) 18: val of keyValue (0 0 0) 19: val of keyValue (0 0 -2) 20: val of keyValue (1 2 -4) 21: val of keyValue (1 4 -6) 22: val of keyValue (2 4 -6) 23: val of keyValue (4 2 -6)Sample 21 1: version number (1.0) 2: cycleInterval (5) 3: loop (true) 4: num of interpolator (1) 5: key / keyValue of interpolator 6: ID (0) // See DefName. java 7: Type (0) // PositionInterpolator 8: key 9: num of key (6) 10: val of key (0.0) 11: val of key (0.2) 12: val of key (0.4) 13: val of key (0.6) 14: val of key (0.8) 15: val of key (1.0) 16: keyValue 17: num of keyValue (6) 18: val of keyValue (0 0 0) 19: val of keyValue (0 0 -2 ) 20: val of keyValue (1 2 -4) 21: val of keyValue (1 4 -6) 22: val of keyValue (2 4 -6) 23: val of keyValue (4 2 -6)
【0227】1行目において、このモーションデータの
バージョンを1.0と示している。2行目において、こ
のモーションの実行にかかる時間を5秒と指定してい
る。この値は、Sample 20の22行目において、指定さ
れたTimeSensorのcycleIntervalと同じ値である。3行
目において、繰り返しを行う(true)と指定されてい
る。従って、5秒間、モーションが行われたら、再び同
様のモーションが繰り返される。On the first line, the version of the motion data is indicated as 1.0. In the second line, the time required to execute this motion is specified as 5 seconds. This value is the same as the cycleInterval of the specified TimeSensor in the 22nd line of Sample 20. In the third line, it is specified that repetition is performed (true). Therefore, when a motion is performed for 5 seconds, the same motion is repeated again.
【0228】4行目において、このモーションデータ内
に含まれるインタポレータの個数が1と示されている。
この数は、Sample 20内に含まれているインタポレータ
の数を示しており、Sample 20には、その23行目のPos
itionInterpolatorしか含まれいないので、この場合1
となる。そして6行目において、このインタポレータの
IDとして、0が記述されている。また、7行目において
は、このインタポレータのタイプを0とし、PositionIn
terpolatorであることを示している。On the fourth line, the number of interpolators included in the motion data is indicated as 1.
This number indicates the number of interpolators included in Sample 20, and the Pos on the 23rd line is shown in Sample 20.
In this case, since only itionInterpolator is included,
Becomes And in line 6, this interpolator
0 is described as the ID. In the seventh line, the type of the interpolator is set to 0, and PositionIn
terpolator.
【0229】9行目において、このインタポレータのke
yフィールドの数値リストの値の個数は6個であること
が示され、10乃至15行目において、keyフィールド
の数値リストが記述されている。また、17行目におい
て、このインターポレータのkeyValueフィールドの数値
リストの値の個数が6個であると示され、18乃至23
行目において、そのkeyValueフィールドの数値リストが
記述されている。このkeyフィールドの数値リストの個
数(9行目で示された数値)と、keyValueフィールドの
数値リストの個数(17行目で示された数値)は、同じ
個数でなければならない。On the ninth line, ke of this interpolator
It is shown that the number of values in the numerical value list of the y field is 6, and the numerical value list of the key field is described in the 10th to 15th lines. On the 17th line, it is indicated that the number of values in the numerical value list of the keyValue field of this interpolator is 6, and
In the line, a numerical value list of the keyValue field is described. The number of numerical value lists in the key field (the numerical value shown on the ninth line) and the number of numerical value lists in the keyValue field (the numerical value shown on the 17th line) must be the same.
【0230】keyフィールドは、イベントの動作経過時
間を示し、keyValueフィールドは、keyフィールドに示
された動作経過時間に応じた座標位置を示している。す
なわち、上記例では、0.2ずつ時間が経過するに従っ
て、オブジェクト(この場合box)は、座標を(0 0
0),(0 0 -2),(1 2 -4),(1 4 -6),(2 4 -
6),(42 -6)と移動していく。このモーションの開始
時のディスプレイ上の表示例が、図30であり、1サイ
クル終了時の表示例が図31である。なお、このモーシ
ョンは、3次元的に行われるので、図31で示された直
方体は、図30で示された直方体に比べて後方に存在す
るので、小さく表示されている。The key field indicates the operation elapsed time of the event, and the keyValue field indicates the coordinate position corresponding to the operation elapsed time indicated in the key field. That is, in the above example, as time passes by 0.2, the object (in this case, box) changes the coordinates to (0 0
0), (0 0 -2), (1 2 -4), (1 4 -6), (2 4-
6), (42-6). FIG. 30 shows a display example on the display at the start of the motion, and FIG. 31 shows a display example at the end of one cycle. Since this motion is performed three-dimensionally, the rectangular parallelepiped shown in FIG. 31 is displayed smaller than the rectangular parallelepiped shown in FIG.
【0231】このように、従来、Interpolatorに記述さ
れていた数値リストを、モーションデータに記述するよ
うにして、従来と変わらないオブジェクトの動きを表現
することが可能である。さらに、モーションデータを入
れ替えることにより、さまざまな動きをさせることが可
能である。As described above, the numerical value list previously described in the Interpolator is described in the motion data, so that it is possible to express the motion of the object as in the conventional case. Furthermore, various motions can be performed by exchanging motion data.
【0232】仮想ペットに、上述したモーションデータ
を用い、挙動を表示させる場合を、図24のフローチャ
ートを参照して、説明する。ステップS21において、
図25に示したような仮想ペット(犬)を表示させるた
めに、プログラムが起動される。ここで、プログラムと
は、図23の3D_Model,Timer,Interpolators(Empt
y)に相当し、クライアントPC1のHDD31(図
4)に記憶されている。The case where the behavior is displayed on the virtual pet using the above-described motion data will be described with reference to the flowchart in FIG. In step S21,
A program is started to display a virtual pet (dog) as shown in FIG. Here, the program refers to the 3D_Model, Timer, Interpolators (Empt
y) and is stored in the HDD 31 (FIG. 4) of the client PC 1.
【0233】ステップS22において、ローディングプ
ログラムが起動される。このローディングプログラム
は、クライアントPC1のHDD31に記憶されてい
る。起動されたローディングプログラムは、ステップS
23において、図25に示した犬を表示させるために必
要なモーションデータを選択し、ステップS21で起動
させたプログラムのInterpolatorに、選択したモーショ
ンデータを代入する。このモーションデータは、AOサ
ーバ13のHDD13a(図7)に記憶されている。In step S22, a loading program is started. This loading program is stored in the HDD 31 of the client PC 1. The loaded loading program is executed in step S
At 23, the motion data required to display the dog shown in FIG. 25 is selected, and the selected motion data is substituted into the Interpolator of the program started at step S21. This motion data is stored in the HDD 13a (FIG. 7) of the AO server 13.
【0234】表示するのに必要なデータが代入された
ら、ステップS24において、図25に示したような犬
が表示される。ここで、この犬は大きく分けて、頭、前
足を含む胴体前半分、後ろ足を含む胴体後ろ半分、およ
び尻尾の4つのパーツから構成されているとする。次
に、例えば、飼い主が犬に対して餌を与える。そうする
と、犬はその餌を食べるために、図26に示したよう
に、頭を下に向け、尻尾を上に上げる。When the data necessary for display is substituted, a dog as shown in FIG. 25 is displayed in step S24. Here, it is assumed that this dog is roughly divided into four parts: a head, a front half of a torso including a front leg, a rear half of a torso including a rear leg, and a tail. Next, for example, the owner feeds the dog. The dog then turns his head down and his tail up to eat the bait, as shown in FIG.
【0235】この挙動を表示するために、ステップS2
3に戻り、まずモーションデータの選択が行われる。す
なわち、このステップにおいて選択されるモーションデ
ータは、頭を下に向けるためのデータと尻尾を上に上げ
るためのデータである。選択されたモーションデータ
は、すでにステップS21で起動されているプログラム
に代入され、そのデータを基に、ステップS24で、図
26に示したような犬が表示される。In order to display this behavior, step S2
Returning to 3, the motion data is selected first. That is, the motion data selected in this step are data for turning the head down and data for raising the tail up. The selected motion data is substituted into the program already started in step S21, and a dog as shown in FIG. 26 is displayed in step S24 based on the data.
【0236】さらに犬が食べ終わり図27に示したよう
に、頭と前足、さらに尻尾を上げ、喜びのポーズを取っ
たとする。この際も、ステップS23において、頭、前
足、尻尾を上げるそれぞれのモーションデータが選択さ
れ、代入が行われ、ステップS24において、読み込ま
れたデータを基に図27に示したような犬が表示され
る。It is further assumed that the dog finishes eating, as shown in FIG. 27, raises the head and front paws, and further raises the tail, and takes a joyful pose. At this time, in step S23, the respective motion data for raising the head, the forefoot, and the tail are selected and substituted, and in step S24, a dog as shown in FIG. 27 is displayed based on the read data. You.
【0237】そして、図27に示したように喜んだ後、
図28に示すように、落ちついた状態に戻った犬を表示
させる場合、頭、前足、尻尾を、それぞれ下げるモーシ
ョンデータを、ステップS23において選択し、代入
し、そして、ステップS24において、読み込んだデー
タを基に表示させれば良い。Then, after being pleased as shown in FIG.
As shown in FIG. 28, when displaying a dog that has returned to a calm state, motion data for lowering the head, front paws, and tail are selected and substituted in step S23, and the data read in step S24 is read. Should be displayed based on the
【0238】このフローチャートは、ユーザがクライア
ントPC1の電源をオフにしたとき、仮想空間から出た
時などに、割り込み処理として終了される。This flowchart is terminated as an interrupt process when the user turns off the power of the client PC 1 or when the user exits the virtual space.
【0239】勿論、実際に仮想ペットの挙動を制御する
には、例えば、頭のモーションデータは、目、耳、鼻、
口、輪郭など、細かく分け、それぞれに対してモーショ
ンデータを用意する。Of course, in order to actually control the behavior of the virtual pet, for example, the motion data of the head includes the eyes, ears, nose,
Mouth, outline, etc. are subdivided and motion data is prepared for each.
【0240】このように、仮想ペットを表示させるため
に必要なプログラムに、その仮想ペットを挙動させるの
に必要なデータ(モーションデータ)を、必要に応じて
順次選択し、代入するようにしたので、プログラム自体
のファイルサイズを大きくすることなしに、複雑な挙動
の表示に対応できるようになる。As described above, data (motion data) necessary for causing the virtual pet to behave is sequentially selected and substituted into the program necessary for displaying the virtual pet as necessary. Thus, it is possible to deal with the display of complicated behavior without increasing the file size of the program itself.
【0241】なお、本明細書中に記載したプログラム
は、そのプログラムに限定されることを意味するもので
はなく、同様の処理を行うプログラムを用いても良いこ
とは勿論である。The program described in the present specification is not limited to the program, and it goes without saying that a program for performing the same processing may be used.
【0242】また、本明細書中において、上記処理を実
行するコンピュータプログラムをユーザに提供する提供
媒体には、磁気ディスク、CD-ROMなどの情報記録媒体の
他、インターネット、デジタル衛星などのネットワーク
による伝送媒体も含まれる。[0242] In the present specification, a providing medium for providing a user with a computer program for executing the above processing includes an information recording medium such as a magnetic disk and a CD-ROM, and a network such as the Internet and a digital satellite. Transmission media is also included.
【0243】[0243]
【発明の効果】請求項1に記載の情報処理装置、請求項
4に記載の情報処理方法、および請求項5に記載の提供
媒体によれば、、オブジェクトの表示を制御するプログ
ラムに必要なデータを選択代入し、代入されたデータを
基に、オブジェクトの表示を制御するようにしたので、
オブジェクトの表示に必要なプログラムのファイルサイ
ズを大きくすることなく、オブジェクトの挙動の表示の
制御が可能となる。According to the information processing apparatus according to the first aspect, the information processing method according to the fourth aspect, and the providing medium according to the fifth aspect, data necessary for a program for controlling display of an object is provided. Is selected and assigned, and based on the assigned data, the display of the object is controlled.
The display of the behavior of the object can be controlled without increasing the file size of the program necessary for displaying the object.
【図1】センサー、イベント、ルーティング、およびス
クリプトの関係を説明する図である。FIG. 1 is a diagram illustrating the relationship among sensors, events, routing, and scripts.
【図2】ルーティングを説明する図である。FIG. 2 is a diagram illustrating routing.
【図3】本発明を適用した共有仮想空間提供システムの
構成例を示すブロック図である。FIG. 3 is a block diagram illustrating a configuration example of a shared virtual space providing system to which the present invention has been applied.
【図4】図1のクライアントPC1の構成例を示すブロ
ック図である。FIG. 4 is a block diagram showing a configuration example of a client PC 1 of FIG.
【図5】図3のシステムの動作を説明するディスプレイ
の中間調画像の写真である。FIG. 5 is a photograph of a halftone image on a display illustrating the operation of the system of FIG. 3;
【図6】図3のシステムの動作を説明するディスプレイ
の中間調画像の写真である。FIG. 6 is a photograph of a halftone image on a display illustrating the operation of the system of FIG. 3;
【図7】図3のシステムの動作を説明するディスプレイ
の中間調画像の写真である。FIG. 7 is a photograph of a halftone image on a display illustrating the operation of the system of FIG. 3;
【図8】成長パラメータ管理テーブルの例を示す図であ
る。FIG. 8 is a diagram showing an example of a growth parameter management table.
【図9】アクションパネルを説明するディスプレイの中
間調画像の写真である。FIG. 9 is a photograph of a halftone image on a display illustrating an action panel.
【図10】成長パラメータの授受を説明する図である。FIG. 10 is a diagram for explaining exchange of growth parameters.
【図11】3Dオブジェクトを構成する仮想生命オブジ
ェクトのノードを説明する図である。FIG. 11 is a diagram illustrating nodes of a virtual life object constituting a 3D object.
【図12】図11に示したノードに対応する表示例を示
すディスプレイの中間調画像の写真である。12 is a photograph of a halftone image on a display showing a display example corresponding to the node shown in FIG. 11;
【図13】仮想生命オブジェクトの体格指数を説明する
図である。FIG. 13 is a diagram illustrating a physique index of a virtual life object.
【図14】仮想生命オブジェクトの機嫌指数を説明する
図である。FIG. 14 is a diagram illustrating a mood index of a virtual life object.
【図15】仮想生命オブジェクトの活発性指数を説明す
る図である。FIG. 15 is a diagram illustrating an activity index of a virtual life object.
【図16】仮想生命オブジェクトの知能指数を説明する
図である。FIG. 16 is a diagram illustrating an intelligence index of a virtual life object.
【図17】共有仮想空間のディスプレイの表示例を示す
中間調画像の写真である。FIG. 17 is a photograph of a halftone image showing a display example of a display in a shared virtual space.
【図18】共有仮想空間のディスプレイの表示例を示す
中間調画像の写真である。FIG. 18 is a photograph of a halftone image showing a display example of a display in a shared virtual space.
【図19】共有仮想空間のディスプレイの表示例を示す
中間調画像の写真である。FIG. 19 is a photograph of a halftone image showing a display example of a display in a shared virtual space.
【図20】共有仮想空間のディスプレイの表示例を示す
中間調画像の写真である。FIG. 20 is a photograph of a halftone image showing a display example of a display in a shared virtual space.
【図21】共有仮想空間のディスプレイの表示例を示す
中間調画像の写真である。FIG. 21 is a photograph of a halftone image showing a display example of a display in a shared virtual space.
【図22】共有仮想空間のディスプレイの表示例を示す
中間調画像の写真である。FIG. 22 is a photograph of a halftone image showing a display example of a display in a shared virtual space.
【図23】プログラムとモーションデータとの関係を説
明する図である。FIG. 23 is a diagram illustrating the relationship between a program and motion data.
【図24】仮想ペットの挙動表示を行う処理を説明する
フローチャートである。FIG. 24 is a flowchart illustrating a process of displaying behavior of a virtual pet.
【図25】共有仮想空間のディスプレイの表示例を示す
中間調画像の写真である。FIG. 25 is a photograph of a halftone image showing a display example of a display in a shared virtual space.
【図26】共有仮想空間のディスプレイの表示例を示す
中間調画像の写真である。FIG. 26 is a photograph of a halftone image showing a display example of a display in a shared virtual space.
【図27】共有仮想空間のディスプレイの表示例を示す
中間調画像の写真である。FIG. 27 is a photograph of a halftone image showing a display example of a display in a shared virtual space.
【図28】共有仮想空間のディスプレイの表示例を示す
中間調画像の写真である。FIG. 28 is a photograph of a halftone image showing a display example of a display in a shared virtual space.
【図29】従来のプログラムの構造を説明する図であ
る。FIG. 29 is a diagram illustrating the structure of a conventional program.
【図30】ディスプレイの表示例を示す中間調画像の写
真である。FIG. 30 is a photograph of a halftone image showing a display example of a display.
【図31】ディスプレイの表示例を示す中間調画像の写
真である。FIG. 31 is a photograph of a halftone image showing a display example of a display.
1乃至3 クライアントPC, 7 インターネット,
10 WWWサーバ,12 共有サーバ, 13,14
AOサーバ, 15 メールサーバ, 16 コミュ
ニケーションサーバ, 18 電話機, 19 ファク
シミリ, 23 PHS端末, 24 ポケットベル端
末, 30 CPU, 31 ハードディスク, 39
モデム, 45 CRTモニタ, 46 RAM1-3 client PC, 7 Internet,
10 WWW server, 12 shared server, 13, 14
AO server, 15 mail server, 16 communication server, 18 telephone, 19 facsimile, 23 PHS terminal, 24 pager terminal, 30 CPU, 31 hard disk, 39
Modem, 45 CRT monitor, 46 RAM
Claims (5)
ムを起動させる起動手段と、 前記プログラムにより表示されるオブジェクトを動かす
のに必要なデータを保持する保持手段と、 前記データを選択し、前記プログラムに代入する選択代
入手段と、 前記選択代入手段により代入されたデータを基に、前記
プログラムが前記オブジェクトの表示を制御する表示制
御手段とを備えることを特徴とする情報処理装置。An activation unit for activating a program for controlling display of an object; a retention unit for retaining data necessary for moving an object displayed by the program; and selecting the data and assigning the data to the program. An information processing apparatus, comprising: a selection substituting unit that performs the processing; and a display control unit that controls the display of the object based on the data substituted by the selection substituting unit.
ることを特徴とする請求項1に記載の情報処理装置。2. The information processing apparatus according to claim 1, wherein the program is described in VRML.
れることを特徴とする請求項1に記載の情報処理装置。3. The information processing apparatus according to claim 1, wherein Java is used as said selection substituting means.
ムを起動させる起動ステップと、 前記プログラムで表示されるオブジェクトを動かすのに
必要なデータを保持する保持ステップと、 前記データを選択し、前記プログラムに代入する選択代
入ステップと、 前記選択代入ステップで代入されたデータを基に、前記
プログラムが前記オブジェクトの表示を制御する表示制
御ステップとを備えることを特徴とする情報処理方法。4. An activation step for activating a program for controlling display of an object, a retention step for retaining data necessary for moving an object displayed by the program, and selecting the data and assigning the data to the program. And a display control step of controlling the display of the object based on the data substituted in the selective substitution step.
ムを起動させる起動ステップと、 前記プログラムで表示されるオブジェクトを動かすのに
必要なデータを保持する保持ステップと、 前記データを選択し、前記プログラムに代入する選択代
入ステップと、 前記選択代入ステップで代入されたデータを基に、前記
プログラムが前記オブジェクトの表示を制御する表示制
御ステップとを備えるコンピュータプログラムを提供す
ることを特徴とする提供媒体。5. An activation step for activating a program for controlling display of an object, a retention step for retaining data necessary for moving an object displayed by the program, and selecting the data and assigning the data to the program. A computer-readable medium comprising: a computer program comprising: a selection substituting step; and a display control step in which the program controls display of the object based on the data substituted in the selection substituting step.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3410098A JPH11219449A (en) | 1998-01-30 | 1998-01-30 | Information processing apparatus and method, and providing medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3410098A JPH11219449A (en) | 1998-01-30 | 1998-01-30 | Information processing apparatus and method, and providing medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH11219449A true JPH11219449A (en) | 1999-08-10 |
Family
ID=12404866
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3410098A Withdrawn JPH11219449A (en) | 1998-01-30 | 1998-01-30 | Information processing apparatus and method, and providing medium |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH11219449A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2023218859A1 (en) * | 2022-05-09 | 2023-11-16 | ユニ・チャーム株式会社 | Information processing device, information processing method, and information processing program |
-
1998
- 1998-01-30 JP JP3410098A patent/JPH11219449A/en not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2023218859A1 (en) * | 2022-05-09 | 2023-11-16 | ユニ・チャーム株式会社 | Information processing device, information processing method, and information processing program |
| JP2023166210A (en) * | 2022-05-09 | 2023-11-21 | ユニ・チャーム株式会社 | Information processing device, information processing method, and information processing program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3932462B2 (en) | Client device, image display control method, shared virtual space providing device and method, and recording medium | |
| JP3799134B2 (en) | System and notification method | |
| JP3855430B2 (en) | Information processing apparatus and method, information processing system, and recording medium | |
| JP3932461B2 (en) | Client device, image display control method, shared virtual space providing device and method, and recording medium | |
| JPH11212934A (en) | Information processing apparatus and method, and providing medium | |
| JPH11213179A (en) | Shared virtual space providing apparatus and method, and providing medium | |
| JPH11203009A (en) | Information processing apparatus and method, and providing medium | |
| JP4006873B2 (en) | Information processing system, information processing method and apparatus, and information providing medium | |
| JPH11120375A (en) | Client device, image display control method, shared virtual space providing device and method, and transmission medium | |
| JP3928229B2 (en) | Display control apparatus, display control method, and recording medium | |
| US6734885B1 (en) | Information processing apparatus, method and computer program for virtual reality transparent avatars | |
| US5675721A (en) | Computer network data distribution and selective retrieval system | |
| WO2009000028A1 (en) | Virtual 3d environments | |
| JP2000512039A (en) | Programmable computer graphic objects | |
| Blumberg et al. | Multi-level control for animated autonomous agents: Do the right thing... Oh, not that... | |
| CN117252968A (en) | Object display method, device, storage medium and smart glasses | |
| JPH11203499A (en) | Information processing apparatus and method, and providing medium | |
| JPH11219449A (en) | Information processing apparatus and method, and providing medium | |
| JP2001034378A (en) | Object output system, object management device, object output device, and recording medium | |
| JPH11353080A (en) | Three-dimensional image display method, recording medium recorded with program therefor, storage medium recorded with image arrangement data, and three-dimensional image display device | |
| Nielsen et al. | Interactive information visualization in neuroimaging | |
| KR20030008234A (en) | Manufacture and display methods of 3D animation data | |
| Sause | A coordinated reinforcement learning framework for multi-agent virtual environments | |
| KR20250166128A (en) | Avatar signaling in scene descriptions | |
| Chung | genometry |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20050405 |