(57)【要約】インタラクティブな仮想環境を制御する装置が開示される。装置は、オブジェクトが住まう仮想環境を定義する手段を含み、オブジェクトには少なくともアバターとプロップが含まれる。仮想環境内のオブジェクトは、ユーザーの制御下において、動的に他のオブジェクトに結合され、また、動的に他のオブジェクトから分離できる。プロップは、アバターがプロップと相互作用する際に用いるアニメーションと関連づけられ、また、プロップが別のオブジェクトに結合される際には、このアニメーションとプロップとが関連づけられたままとなる。オブジェクトが別のオブジェクトに結合される際には、オブジェクトは結合したオブジェクトの動きを継承する。【選択図】図１
2006528381.tif 000002
【特許請求の範囲】
【請求項１】
インタラクティブな仮想環境を制御するための装置であって、前記装置は、オブジェクトが住まう仮想環境を定義するための手段を含み、前記オブジェクトは少なくともアバターおよびプロップを含み、
前記仮想環境内のオブジェクトは、ユーザーの制御下において、動的に他のオブジェクトに結合され、および動的に他のオブジェクトから分離することができ、ならびに、
プロップは、アバターが前記プロップと相互作用する際に用いられるアニメーションと関連づけられており、また、前記プロップが別のオブジェクトと結合された際には、前記アニメーションは前記プロップと関連づけられたままであること、
を特徴とする装置。
【請求項２】
オブジェクトが別のオブジェクトに結合される際に、それが、それが結合されている前記オブジェクトの動きを継承することを特徴とする、請求項１記載の装置。
【請求項３】
後のリプレイもしくは編集のために、アニメーションシーケンスをストアする手段をさらに含む、請求項１もしくは２に記載の装置。
【請求項４】
コンピュータゲームをプレイするための装置であることを特徴とする、請求項１もしくは２に記載の装置。
【請求項５】
インタラクティブな仮想環境を制御するための装置であって、
オブジェクトが住まう仮想環境を定義する手段、
アニメーションシーケンスを作成するために、ユーザーに前記仮想環境の制御を許可する手段、ならびに、
後のリプレイもしくは編集のために、アニメーションシーケンスをストアする手段、
を前記装置が含み、前記仮想環境内のオブジェクトは、他のオブジェクトに動的に結合され、また他のオブジェクトから分離することができるものであって、オブジェクトが他のオブジェクトに結合された際には、それが、それが結合されている前記オブジェクトの動きを継承することを特徴とする装置。
【請求項６】
前記オブジェクトが、少なくともアバターおよびプロップを含むことを特徴とする、請求項５記載の装置。
【請求項７】
プロップが、アバターが前記プロップと相互作用する際に用いられるアニメーションと関連づけられていることを特徴とする、請求項６記載の装置。
【請求項８】
インタラクティブな仮想環境を制御するための装置であって、
少なくともアバターおよびプロップを含むようなオブジェクトが住まう仮想環境を定義する手段、
アニメーションシーケンスを作成するために、ユーザーが前記仮想環境を制御する許可を与える手段、ならびに、
後のリプレイもしくは編集のために、アニメーションシーケンスをストアする手段、
を前記装置が含み、プロップが、アバターが前記プロップと相互作用する際に使用するためのアニメーションと関連づけられていることを特徴とする装置。
【請求項９】
前記プロップが、前記プロップの動きを定義するアニメーション、および、前記アバターが前記プロップと相互作用する際に、前記アバターの動きを定義するアニメーションと関連づけられていることを特徴とする、請求項１〜４または７もしくは８のいずれか一項に記載の装置。
【請求項１０】
前記アバターが前記プロップと相互作用する際に、前記アバターが、前記プロップに、前記プロップと関連づけられた前記アバターアニメーションを照会することを特徴とする、請求項１〜４または７〜９のいずれか一項に記載の装置。
【請求項１１】
前記プロップが別のオブジェクトに結合された際に、前記の関連づけられたひとつもしくは複数のアニメーションが、前記プロップと関連づけられたままとなることを特徴とする、請求項７〜１０のいずれか一項に記載の装置。
【請求項１２】
前記のひとつもしくは複数のアニメーションが、前記プロップに関連づけられたステートマシンの一部として定義されていることを特徴とする、請求項１〜４または７〜１１のいずれか一項に記載の装置。
【請求項１３】
前記ステートマシンが、イニシャルステートと、ファイナルステートと、前記プロップを前記イニシャルステートから前記ファイナルステートに移行させるプロップアニメーション、および、前記アバターを前記イニシャルステートから前記ファイナルステートに移行させ、オプションとして前記イニシャルステートに戻すようなアバターアニメーションの少なくとも一方とを含むことを特徴とする、請求項１２記載の装置。
【請求項１４】
プレコンディションが、前記ステートのひとつと関連づけられていることを特徴とする、請求項１３記載の装置。
【請求項１５】
前記ステートマシンが、休止ステートを有することを特徴とする、請求項１２〜１４のいずれか一項に記載の装置。
【請求項１６】
アニメーションシーケンスが、コマンドのリストを含むスクリプトとしてストアされることを特徴する、請求項３または５〜１５のいずれか一項に記載の装置。
【請求項１７】
前記コマンドが、前記仮想環境を制御するためにユーザーが入力することができるコマンドと同一のものであることを特徴とする、請求項１６記載の装置。
【請求項１８】
スクリプトが、前記仮想環境内のオブジェクトに渡される命令を含むことを特徴とする、請求項１６もしくは１７に記載の装置。
【請求項１９】
前記命令が、前記スクリプト内で前記命令に優先するアニメーションを再生し了えた前記オブジェクトにのみ渡されることを特徴とする、請求項１８記載の装置。
【請求項２０】
アバターが、前記アバターの外観を定義する少なくともひとつのファイル、および、前記アバターの動きを定義するアニメーションを含むことを特徴とする、上述の請求項のいずれか一項に記載の装置。
【請求項２１】
複数のアバターが、共通のアニメーションを共有することを特徴とする、上述の請求項のいずれか一項に記載の装置。
【請求項２２】
前記の共通のアニメーションが、問題の前記アバターのサイズにフィットさせるために再設定されることを特徴とする、請求項２１記載の装置。
【請求項２３】
プロップが、前記プロップが他のプロップを含むことができる方法を指定するファイルを含むことを特徴とする、上述の請求項のいずれか一項に記載の装置。
【請求項２４】
インタラクティブな仮想環境を制御する方法であって、前記方法はオブジェクトが住まう仮想環境を定義することを含み、前記オブジェクトは少なくともアバターおよびプロップを含み、
前記仮想環境内のオブジェクトは、ユーザーの制御下において、動的に他のオブジェクトに結合され、また動的に他のオブジェクトから分離することができ、ならびに、
プロップは、前記プロップがアバターと相互作用する際に用いるアニメーションに関連づけられ、また、前記プロップが別のオブジェクトに結合される際に、前記の関連づけられたアニメーションと前記プロップとが関連づけられたままとなる、
ということを特徴とする方法。
【請求項２５】
インタラクティブな仮想環境を制御する方法であって、
動的に他のオブジェクトに結合され、また、動的に他のオブジェクトから分離できるようなオブジェクトが住まう仮想環境を定義するステップ、
ユーザーが、前記仮想環境を制御してアニメーションシーケンスを作成することを許可するステップ、ならびに、
アニメーションシーケンスを、後のリプレイもしくは編集のためにストアするステップ、
を前記方法が含み、オブジェクトが別のオブジェクトに結合された際に、それが、それが結合された前記オブジェクトの動きを継承することを特徴とする方法。
【請求項２６】
インタラクティブな仮想環境を制御する方法であって、
少なくともアバターおよびプロップを含むオブジェクトが住まう仮想環境を定義するステップ、
ユーザーが、前記仮想環境を制御してアニメーションシーケンスを作成することを許可するステップ、
アニメーションシーケンスを、後のリプレイもしくは編集のためにストアするステップ、ならびに、
アバターがプロップと相互作用する際に使用されるアニメーションと、前記プロップとを関連づけるステップ、
を含むことを特徴とする方法。
【請求項２７】
コンピュータ上で走らせた際に、前記コンピュータに請求項２４〜２６のいずれか一項に記載の方法を実行させる、または、前記コンピュータを請求項１〜２３のいずれか一項に記載の装置とすることを特徴とする、コンピュータプログラム。
【請求項２８】
コンピュータ上で走らせた際に、前記コンピュータに請求項２４〜２６のいずれか一項に記載の方法を実行させる、または、前記コンピュータを請求項１〜２３のいずれか一項に記載の装置とするようなコンピュータプログラムをストアしていることを特徴とする、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想環境の制御装置に関し、また、特にアバターとプロップが住まう双方向（インタラクティブ）の仮想環境に関する。このような装置は、例えば、ユーザーによるアニメーションシーケンスの作成・編集を許可するためのオーサリングツール、またはゲームのオーサリングツールとして使用することができる。
【背景技術】
【０００２】
従来のコンピュータアニメーションシステムにおいては、アニメーターは、シーンの連続した動きをフレームごとに作成している。別の方法としては、アニメーターは連続したキーフレームを作成することもでき、この場合にはシステムが自動的に中間フレームを作成し、連続アニメーションシーケンスを作り出している。このようなシステムにおいては、熟練したアニメータを雇ってフレームもしくはキーフレームを作成する必要があるので、アニメーションシーケンスの作成プロセスには時間がかかり且つ高価についてしまう。
【０００３】
したがって、仮想環境をインタラクティブに制御するユーザーによって、且つシステム内にストアされている既存のアニメーションの広汎な再利用によって、アニメーションシーケンスを作成することができるような、別種のコンピュータアニメーションシステムが提案されている。このようなシステムにおいては、アバター、プロップ、および他のオブジェクトが住むことができる仮想環境が作成される。仮想環境内のオブジェクトを動かす方法を決定するために、アニメーションが利用される。他の3Dアニメーションパッケージで作成したモーションキャプチャーのリグ、もしくはソフトウェアに含まれるモーションのライブラリに在るモーションキャプチャーのリグから、これらを直接インポートすることができる。仮想環境の制御によって、ユーザーは後でリプレイもしくは編集するために、アニメーションシーケンスを構築することができる。
【０００４】
インタラクティブな仮想環境は、多くのコンピュータゲームでも用いられている。通常、このようなゲームでは、キャラクターおよび他のオブジェクトが住まう仮想世界を表示するようになっている。キャラクターは仮想世界を動きまわることができ、オブジェクトを拾いあげるようなアクションを行うことができる。このようなゲームにおいては、アニメーションシーケンスはユーザーの入力に対応して作成されるが、リプレイもしくは編集のためにアニメーションシーケンスを保存するための手段はつくられていない。
【０００５】
インタラクティブな仮想環境を作成する際には、そのインタラクティブ性のために、すべての可能な状況において環境の保全性 （ integrity ） の維持を確保することが困難となるという問題が起こってくる。起こりうるすべての可能なシチュエーションを予測すること、および、それぞれの状況においてアニメーションが利用可能となることを確実なものとすることによって、この問題は通常は解決できる。例えば、部屋に入るキャラクターには、その部屋の中のオブジェクトと相互作用する必要が生じると考えられる。そこで、デザイナーには、オブジェクトが居る可能性のあるあらゆる場所のそれぞれへ行くキャラクターのために、話しかけをしたアニメーションを作成する必要が生じる。このようなアニメーションの複雑さ、およびそれらを作成することを含んだ仕事量を鑑みると、一般的には、所定の状況のためには可能なオプションのほんの小さなセットしか作成されないということになる。アニメーションは自由選択であるような印象を与えるが、実際には、オプションのツリー構造が処理されているのである。
【０００６】
もし、シーン内のオブジェクトもしくは選択が、そのシーンのデザイナーが意図していないものであったなら、ユーザーがオブジェクトを取る方法、選択をする方法といったものは予定されていないので、環境はクラッシュをするか、もしくはユーザーの行為が継続できなくなるということになる。
【０００７】
オブジェクトとの相互作用によって、可能なオブジェクトの数の上での複雑さが持ち込まれることにもなる。例えば、アバターがプロップを拾って、また置くことができるとすると、システムは、プロップを持っているアバターと、持っていないアバターとの双方についての処理ができなくてはならない。これは、従来ではオブジェクトのすべての可能な組み合わせを予測し、起こりうる可能な組み合わせのそれぞれにおいて使えるアニメーションを確保することによって行われてきた。これは、プロップを持ったアバターと、持っていないアバターとでアニメーションを分けて、プロップが拾われたとき、もしくはプロップが置かれたときに、一方から他方へとアニメーションを切り換えることによって行うことができる。このような編成には、大量のアニメーションを予め作成することと、それを利用できるようにストアしておくことが要求される。さらに、オブジェクトのすべての可能な組み合わせを予めアニメートさせる必要があるために、リンクできるオブジェクトの数が制限されることになる。
【０００８】
別の方法として、アバターがプロップを拾ったときに、プロップのビットマップイメージをアバター上にオーバーレイすることができる。この場合、アバターの外観が変化し、アバターとプロップの組み合わせとなった外観となる。プロップとアバターの動きは調和させる必要があり、実際にはプロップとアバターの動きはシステム内では別々に制御されているにもかかわらず、プロップとの相互作用がリアルに見えるようにしている。この編成には、システムがすべてのプロップの位置を記憶するための準備、および、その位置のために作成されたアニメーションが有る位置においてのみ相互作用をすることをシステムが確保することを含まなくてはならないために、環境の保全性を維持することが困難であるという短所がある。
【発明の開示】
【０００９】
本発明の第一の特徴においては、インタラクティブな仮想環境を制御するための装置であって、この装置はオブジェクトが住まう仮想環境を定義する手段を含み、このオブジェクトは少なくともアバターおよびプロップを含み、
仮想環境内のオブジェクトは、ユーザーの制御下において、他のオブジェクトと動的に結合され、また他のオブジェクトから動的に分離され、また、
プロップは、アバターがプロップと相互作用した際に用いられるアニメーションと関連づけられており、また、プロップが別のオブジェクトに結合された際に、このアニメーションがプロップと関連づけられたままであることを特徴とするような装置が提供される。
【００１０】
この方法でアニメーションとプロップとを関連づけることにより、効率的にアニメーションとプロップとを共に他のオブジェクトに結合することができ、仮想環境の保全性を維持する上での援けとなる。これは、アニメーションがプロップと共に仮想環境を動くためであり、したがって、アバターとプロップとの間の相互作用のために必要なアニメーションがつねに使用可能となる。
【００１１】
さらに、アニメーションのプロップへの関連づけによって、シーンの保全性に影響することなく、シーンを取り替えるための大きな変更を行うことができる。例えば、環境がシーンを実行していたとすると、アニメーションと関連づけられたプロップをシーンにドロップすることができ、このシステム内のプロップは相互作用を定義する情報を含んでいるため、直ちにすべてのアバターがそれと相互作用することができるようになる。
【００１２】
ここで用いる「アバター」 （ "avatar" ） という語は、好ましくは、自律オブジェクトを意味し、これは、自発的にもしくはユーザーの制御下でのいずれかで、独立して動くことができるオブジェクトのことを意味することが好ましい。アバターは典型的にはシーン内のキャラクターのことであるが、任意の乗り物、または、他のアバター、オブジェクト、もしくは背景の一部 と相互作用する他のオブジェクトとすることもできる。アバターには或る外観およびビヘイビアが与えられ、また、ユーザーによって制御することができる。
【００１３】
ここで用いる「プロップ」 （ "prop" ） という語は、好ましくは、非自律オブジェクトを意味し、これは、別のオブジェクトに依存してのみ動くか、もしくはユーザーの制御下においてのみ動くことができるオブジェクトのことを意味するのが好ましい。しかしながらプロップは固有のアニメーションを有することができる。例えば、時計それ自身は動くことができず、自発的に他のプロップと相互作用することができないが、時計には揺れる振子と動く針とを持たせることができる。
【００１４】
好ましくは、オブジェクトが別のオブジェクトに結合された際には、そのオブジェクトが結合したオブジェクトの動きを、そのオブジェクトが継承する。オブジェクトが他のオブジェクトと動的に結合および分離できるようにし、また、別のオブジェクトに結合されているオブジェクトが、そのオブジェクトの動きを継承するように編成することによって、オブジェクトの組み合わせのために別々のアニメーションを予め与えることを要さず、または、持たれるオブジェクトの動きを別々に調和することを要さずに、或るオブジェクトが別のオブジェクトによって持たれるようにすることができる。これにより、オブジェクトおよび配置のすべての可能な組み合わせを先立って予測しておく必要が無い、さらに柔軟なシステムを導入することができる。
【００１５】
装置は、後のリプレイもしくは編集のためにアニメーションシーケンスをストアするための手段をさらに含むことができ、および／もしくは、装置はコンピュータゲームをプレイするための装置とすることができる。
【００１６】
アニメーションシーケンスの作成および編集のためのオーサリングツール内でのモーション継承のコンセプトは、本発明の重要な独立に提供される特徴である。したがって、本発明の第二の特徴においては、インタラクティブな仮想環境を制御する装置が提供され、この装置は、
オブジェクトが住まう仮想環境を定義する手段、
アニメーションシーケンスを作成するために、ユーザーに仮想環境の制御を許可する手段、ならびに、
後のリプレイもしくは編集のために、アニメーションシーケンスをストアする手段、
を含み、また、仮想環境内のオブジェクトは、動的に他のオブジェクトに結合され、また動的に他のオブジェクトから分離することができ、また、オブジェクトが他のオブジェクトに結合された際には、結合の対象であるオブジェクトの動きを、オブジェクトが継承することを特徴とする。
【００１７】
本発明の第二の特徴においては、オブジェクトは少なくともアバターおよびプロップを含むことができる。プロップは、アバターがプロップと相互作用する際に使用するためのアニメーションと関連づけることができる。
【００１８】
オーサリングツールにおいて、アニメーションをプロップに関連づけるコンセプトは、本発明の独立に提供される重要な別の特徴である。したがって、本発明の第三の特徴によれば、インタラクティブな仮想環境を制御するための装置が提供され、その装置は、
少なくともアバターおよびプロップを含むようなオブジェクトが住まう仮想環境を定義する手段、
アニメーションシーケンスを作成するために、ユーザーが仮想環境を制御する許可を与える手段、ならびに、
後のリプレイもしくは編集のために、アニメーションシーケンスをストアする手段、
を含み、プロップは、アバターがプロップと相互作用する際に使用するためのアニメーションと関連づけることができる。
【００１９】
好ましくは、プロップが別のオブジェクトに結合された際には、この関連づけられたアニメーションはプロップに関連づけられたままとなる。
上述のすべての特徴においては、プロップに関連づけられたアニメーションは、アバターの動きを定義するアニメーション、もしくはプロップの動きを定義するアニメーションとすることができる。適切には、プロップは、プロップの動きを定義するアニメーション、および、アバターがプロップと相互作用する際のアバターの動きを定義するアニメーションと関連づけることができる。例えば、ドアを開く、ということには、プロップ（ドア）のためのアニメーション、および、（ドアを開ける）アバターのための調和したアニメーションが必要となる。この双方のアニメーションの組み合わせによって、アバターがドアを開けている、という印象を与えることができるわけである。他の状況では、アバターアニメーションのみ、もしくはプロップアニメーションのみが必要となる。例えば、テレビを点ける、ということには、アバターのモーションが必要だが、テレビは動かないのでテレビ自身のモーションは必要無い。
【００２０】
アバターがプロップと相互作用する際には、アバターは、プロップと関連づけられたアバターアニメーションを、プロップに照会 （クエリ;  query ） する。
アニメーションもしくは複数のアニメーションは、プロップと関連づけられたステートマシンの一部として定義される。ステートマシンには、イニシャルステート （初期状態;  initial state ） 、ファイナルステート （最終状態;  final state ） 、ならびに、プロップをイニシャルステートからファイナルステートへと移行させるようなプロップアニメーションと、アバターをイニシャルステートからファイナルステートへと移行させて、またイニシャルステートに戻すことが可能であるようなアバターアニメーションとのうちの少なくとも一方、を定義するステート遷移を含むことができる。多くの状況では、プロップアニメーションとアバターアニメーションとの両方が用意される。しかしながら、相互作用する間にプロップもしくはアバターのいずれかが動かない場合には、オブジェクトのためにアニメーションを用意する必要は無い。例えば、プロップが階段であるときには、アバターアニメーションは、階段を上下するアバターの動きを定義することができるが、プロップアニメーションを用意する必要は無い。それぞれがアバターがプロップと相互作用するひとつの方法を定義するような複数のステート遷移を、ステートマシンは含むことができる。
【００２１】
プレコンディションはひとつのステートに関連づけることができる。このようなプレコンディションは、別のアクションが実行される前にプロップが或るステートにあらねばならないように定義するため、別のアクションが実行される前にアバターがひとつのアクションを実行する必要があるようにすることができる。これによって、プロップのカレントステートとして、比較的複雑で柔軟なシーケンスを構築することができ、また、単純なコマンドを用いて、動きの精巧な連鎖を組むことができるように、任意のプレコンディションが、アバターがプロップと相互作用する方法を定義する。
【００２２】
ステートマシンは、休止ステート （休止状態;  idle state ） を有することができる。休止ステートは、特定のアクションの後にアバターが入るステートとすることができる。また、アバターが休止ステートから脱するときに取るアクションも入れることができ、アバターが別の任意のアクションを実行する前に、このアクションを実行する必要があるようにすることができる。この編成によって、比較的複雑なビヘイビアを構築することができるようになる。
【００２３】
アニメーションシーケンスは、コマンドのリストを含むスクリプトとしてストアすることができる。このようなコマンドは、ユーザーが仮想環境を制御するために入力するコマンドと同一のものとすることができる。これによって、ユーザーが容易に理解できる方法で、複雑なビヘイビアを簡便にストアすることができる。
【００２４】
スクリプトウィンドウを通じてユーザーがスクリプトをタイプすることができ、または、仮想環境を制御している間にユーザーがタイプしたコマンドを記録することによってスクリプトを作成することもできる。スクリプトはネストすることができ、また、スクリプトが他のスクリプトを呼び出すこともできる。これによって、複雑なビヘイビアを、既存のビヘイビアを用いて構築することができるようになる。
【００２５】
スクリプトには、仮想環境内のオブジェクトに渡すための命令を含めることができる。スクリプト中でこの命令よりも優先されているアニメーションが実行され了えた後にのみ、この命令をオブジェクトに渡すように装置を構成することができる。これによって、進行中のアニメーションが、他のアニメーションがスタートする前に完了するようにして、環境の保全性の維持を確実にする援けが得られる。
【００２６】
アニメーションシーケンスは、アバターのファーストパーソンコントロール （ first person control ） を用いて構築することもできる。これは、キーボードのキーおよび／もしくはマウスを用いて、環境内のアバターの動き、ならびにアバターの他のアバターおよびプロップとの相互作用を制御するものである。これを記録して、後に、既存のモーションおよび既に記録された相互作用にオーバーレイさせた、さらなるモーションもしくは相互作用を加えてリプレイすることができる。このレイヤー化されたアニメーションは、保存して、ハイブリッドスクリプト、およびアニメーションに基づいたファーストパーソンコントロールを作成するようなスクリプト内で呼び出すことができる。
【００２７】
アバターは、その外観を定義するファイル、およびその動きを定義するアニメーションを少なくとも含むことができる。複数のアバターは、共通のアニメーションを共有することができる。このようなアニメーションは、アバターに関連づけられたアニメーションか、プロップのような別のオブジェクトに関連づけられたアニメーションのいずれかとすることができる。これによって、システムの柔軟性を増し、また、作成する必要のあるアニメーションの量を減らすことができる。アバターが異なるサイズであるとき、もしくは、共通のアニメーションを異なるサイズのアバターのために作成したときには、共通のアニメーションは問題のアバターのサイズにフィットするように再設定することができる。
【００２８】
プロップには、他のプロップを含むことができるプロップを指定するファイルを含めることができる。これによって、ひとつのプロップが別のプロップの内部に位置するような状況を、システムが環境の保全性を維持しつつ扱うことが可能になる。
【００２９】
対応する方法の特徴もまた提供され、したがって本発明の第四の特徴においては、インタラクティブな仮想環境を制御する方法であって、この方法はオブジェクトが住まう仮想環境を定義することを含み、このオブジェクトは少なくともアバターとプロップとを含み、
仮想環境内のオブジェクトは、ユーザーの制御下において、動的に他のオブジェクトに結合され、また動的に他のオブジェクトから分離することができ、また、
プロップは、プロップがアバターと相互作用する際に用いるアニメーションに関連づけられ、また、プロップが別のオブジェクトに結合される際に、関連づけられたアニメーションとプロップとが関連づけられたままとなる、
ということを特徴とする方法が提供される。
【００３０】
本発明の第五の特徴においては、インタラクティブな仮想環境を制御する方法であって、この方法は、
オブジェクトが、動的に他のオブジェクトに結合され、また、動的に他のオブジェクトから分離できるような、オブジェクトが住まう仮想環境を定義するステップ、
ユーザーが、仮想環境を制御してアニメーションシーケンスを作成することを許可するステップ、ならびに、
アニメーションシーケンスを、後のリプレイもしくは編集のためにストアするステップ、
を含み、オブジェクトが別のオブジェクトと結合された際には、結合した対象のオブジェクトの動きが、オブジェクトに継承されることを特徴とする方法が提供される。
【００３１】
本発明の第六の特徴においては、インタラクティブな仮想環境を制御する方法であって、
少なくともアバターおよびプロップを含むオブジェクトが住まう仮想環境を定義するステップ、
ユーザーが、仮想環境を制御してアニメーションシーケンスを作成することを許可するステップ、
アニメーションシーケンスを、後のリプレイもしくは編集のためにストアするステップ、ならびに、
アバターがプロップと相互作用する際に用いるアニメーションと、プロップを関連づけるステップ、
を含む方法が提供される。
【００３２】
本発明は、コンピュータ上で走らせることにより、第四〜第六のいずれかの特徴に係る方法をコンピュータに実行させるか、またはコンピュータが第一〜第三のいずれかの特徴に係る装置となるようにすることを特徴とするコンピュータプログラムも提供する。本発明は、コンピュータ上で走らせることにより、第四〜第六のいずれかの特徴に係る方法をコンピュータに実行させるか、またはコンピュータが第一〜第三のいずれかの特徴に係る装置となるようにすることを特徴とするコンピュータプログラムを保存するコンピュータ読み取り可能な記録媒体も提供する。
【００３３】
本発明は、インタラクティブな仮想環境を制御する装置であって、プロセッサ、メモリ、入力デバイス、および表示デバイスを含む装置であって、このプロセッサが、
オブジェクトが住まう仮想環境が、表示デバイス上に表示されるように定義され、
ユーザーが、入力デバイス手段によって、アニメーションシーケンスを作成し、アニメーションシーケンスを後のリプレイもしくは編集のためにメモリに保存するために仮想環境を制御することができ、ならびに、
仮想環境内のオブジェクトが、動的に他のオブジェクトに結合され、また動的に他のオブジェクトから分離され、また、オブジェクトが別のオブジェクトに結合された際には、結合の対象のオブジェクトの動きをこのオブジェクトが継承する、
ようにプログラムされていることを特徴とする装置が提供される。
【００３４】
本発明では、インタラクティブな仮想環境を制御するための装置であって、プロセッサ、メモリ、入力デバイス、および表示デバイスを含む装置であって、このプロセッサが、
少なくともアバターおよびプロップを含むようなオブジェクトが住まう仮想環境が、表示デバイス上に表示されるように定義され、
ユーザーが、入力デバイス手段によって、アニメーションシーケンスを作成し、アニメーションシーケンスを後のリプレイもしくは編集のためにメモリに保存するために仮想環境を制御することができ、ならびに、
プロップが、プロップがアバターと相互作用する際に用いるアニメーションに関連づけられている、
ようにプログラムされていることを特徴とする装置も提供される。
【００３５】
本発明では、インタラクティブな仮想環境を制御するための装置であって、プロセッサ、メモリ、入力デバイス、および表示デバイスを含む装置であって、このプロセッサが、
少なくともアバターおよびプロップを含むようなオブジェクトが住まう仮想環境が、表示デバイス上に表示されるように定義され、
仮想環境内のオブジェクトが、ユーザーの制御下において、動的に他のオブジェクトに結合され、また動的に他のオブジェクトから分離することができ、また、オブジェクトが別のオブジェクトに結合された際には、結合の対象のオブジェクトの動きをこのオブジェクトが継承し、ならびに、
プロップが、プロップがアバターと相互作用する際に用いるアニメーションに関連づけられ、また、プロップが別のオブジェクトに結合された際に、関連づけられたアニメーションとプロップとが関連づけられたままとなる、
ということをプログラムされていることを特徴とする装置も提供される。
【００３６】
上述の特徴はいずれも、他の特徴に適用されることができる。装置の特徴は、方法の特徴に適用されることができ、またその逆もできる。
本発明の好ましい特徴について、単なる例示として図を参照しながら説明してゆく。
【発明を実施するための最良の形態】
【００３７】
［編集装置の概要］
図１は、本発明の実施の形態に係る編集装置 1 を示している。この実施の形態においては、編集装置は、適切にプログラムされた汎用コンピュータを用いて提供される。図１では、コンピュータ 10 が、セントラルプロセッシングユニット（CPU） 12 、半導体メモリ 14 、ハードディスク 16 、インターフェイス 18 およびバス 20 を組む。メモリ 14 は、CPU 12 が実行するためのオーサリングツールプログラム 24 、および、仮想環境 25 を表現するデータをストアしている。ハードディスク 16 は、四種の異なるタイプのファイル、則ち、バイナリファイル 26 、フロアプランファイル 28 、仮想世界ファイル 30 、およびビヘイビアファイル 32 をストアしている。コンピュータ 10 には、外部ディスプレイ 22 、ならびにキーボードおよび／もしくはマウスのような入力デバイス 23 が接続されている。コンピュータ 10 には、連続アニメーションシステム 34 も接続されている。
【００３８】
バイナリファイル 26 は、低レベルのジオメトリックデータおよびアニメートデータを含むファイルであり、また、フロアプランファイル 28 は、仮想環境のフロアプランを表現するファイルである。この実施の形態においては、バイナリファイル 26 およびフロアプランファイル 28 は、連続アニメーションシステム 34 によって作成されて、編集装置 1 にエクスポートされる。その後、バイナリファイル 26 およびフロアプランファイル 28 は、編集装置がインタラクティブな仮想環境を作成するための、環境のビルディングブロックとして用いられる。仮想世界ファイル 32 は、編集装置 1 が作成するテキストファイルであり、仮想世界を定義するものである。ビヘイビアファイル 32 も、編集装置 1 に作成される、仮想世界のビヘイビアを記述するテキストファイルである。
【００３９】
連続アニメーションシステム 34 は、例えば、米国のDiscreet社が市販している 3D Studio Max （商標）、または、ジオメトリックデータおよびアニメートデータを生成するための他の適切なシステムとすることができる。このような連続アニメーションシステムは当該技術分野において公知であるので、その詳細については省略する。図１においては、連続アニメーションシステム 34 がコンピュータ 10 の外部に在るように示しているが、連続アニメーションシステムはコンピュータ 10 上で実行されるプログラムとして提供することもできる。この場合、連続アニメーションシステム 34 は、バイナリファイル 26 およびフロアプランファイル 28 を、ハードディスク 16 に直接保存することができる。
【００４０】
図１の配置が単なる例であるのは明らかであって、本発明を実施するためには他の配置を用いることもできる。例えば、ファイル 26〜32 の内の一部もしくは全部は、メモリ 14 内にストアすることができ、プログラム 24 の内の一部もしくは全部はハードディスク 16 内にストアすることができる。光記録媒体のような、別種の記録媒体を、ハードディスク 16 と併用することも、もしくはハードディスク 16 に置き換えて使うこともできる。図１では、編集装置として構成された汎用コンピュータを示しているが、本発明の実施の形態は、専用の編集装置を用いて行うこともできる。
【００４１】
［仮想環境の作成］
図２は、仮想環境を作成するために採られるステップの例である。ステップ 50 においては、バイナリファイル 26 およびフロアプランファイル 28 が連続アニメーションシステム 34 によって作成される。バイナリファイル 50 は、以下に挙げるような種々のタイプのデータを含むことができる。
・  固定ジオメトリ （ rigid geometry ）
・  固定モーフジオメトリ （ rigid morph geometry ）
・  スキンされたジオメトリ
・  スキンされたモーフジオメトリ
・  キーフレーム
・  アニメーション
・  頂点アニメーション
・  モーフアニメーション
フロアプランファイルは、部屋のフロアプランを表現するテキストファイルである。
【００４２】
ステップ 52 においては、バイナリファイルおよびフロアプランファイルが、編集装置 1 にエクスポートされる。このステップの結果、バイナリファイル 26 およびフロアプランファイル 28 はハードディスク 16 にストアされる。
【００４３】
ステップ 54 においては、編集装置 1 が、仮想環境の外観を定義するシーンデータをロードして編集する。これは、必要なフロアプランファイル 28 および／もしくはバイナリファイル 26 をハードディスク 16 からロードして、メモリ 14 にストアすることによって行われる。シーンデータによって定義されるシーンは、ディスプレイ 22 上に表示され、ユーザーは入力デバイス 23 を通じて、シーンを必要に応じて修正することができる。
【００４４】
ステップ 56 においては、シーンデータによって定義される仮想世界に住まうオブジェクトが作成される。このオブジェクトは、アバター、プロップ、サウンド、カメラ、ライト、もしくは任意の他のオブジェクトとすることができる。オブジェクトは、必要なバイナリファイル 26 をハードディスク 16 からロードして、メモリ 14 にストアすることによって作成される。オブジェクトが作成されると、（存在するならば）種々のオブジェクトとの関係も定義されることになる。すべてのオブジェクトのそれぞれとの関係のことを、シーンヒエラルキーと言い、このシーンヒエラルキーもメモリ 14 にストアされる。
【００４５】
ステップ 50〜56 が完了すると、アバターおよびプロップのようなオブジェクトが住まう仮想環境が作成される。ステップ 58 においては、この仮想環境が、仮想世界ファイル 30 のセットとして、ハードディスク 16 上に保存される。
【００４６】
図２では、ステップ 50〜56 を連続的に並べて示しているが、実際の仮想世界の構築プロセスにおいては、図２のステップの少なくとも一部のそれぞれを反復することになる。
図３は、仮想環境を構築することができる種々のコンポーネントの例を示している。この例においては、仮想環境 60 が、シーンデータ 61 、二つのアバター 62, 63 、三つのプロップ 64, 65, 66 、二つのライト 67, 68 、二つのサウンド 69, 70 、二つのカメラ 71, 72 、およびシーンヒエラルキーデータ 73 を含む。仮想環境 60 を構築するファイル群は、通常はメモリ 14 にストアされ、可能な限り高速にアクセスできるようになっている。しかしながら、メモリ 14 は、ハードディスク内の関連ファイルのポインタを代わりに含むこともできる。これは、例えば、あまり使われないファイルのために行われるか、または、メモリ 14 の容量が充分ではないときに行われる。
【００４７】
図４は、図３のアバター 62, 63 の内のひとつのようなアバターを構成する例を示している。図４では、アバター 100 は、ジオメトリファイル 102 、静止ファイル （ rest file ） 104 、歩行ファイル 106 、直接歩行ファイル 108 、休止バンク （ idle bank ） 110 、およびアニメーションバンク 112 から構成されている。これらのファイルのそれぞれは、ユーザーの命令に応じてハードディスク 16 からロードされるか、さもなくば、ハードディスク上の適切なファイルへのポインタが作成される。
【００４８】
ジオメトリファイル 102 は、アバターのジオメトリを定義するバイナリファイルである。アバターのジオメトリを変化させる必要があるときには、複数のジオメトリファイルを定義することができる。静止ファイル 104 は、静止ステートにあるアバターのキーフレームであり、これもバイナリファイルである。歩行ファイル 106 は、歩行するアバターのアニメーションを含んだバイナリファイルである。直接歩行ファイル 108 は、例えばキーボードのカーソルキー手段によってユーザーがアバターの動きを制御できるときに用いることができるアニメーションを含んでいる。休止バンク 110 は、アバターが静止ステートにあるときに使うことができるアニメーションのセットであって、例えば、立ったままのときのアバターにとって適切なアニメーションのセットである。アニメーションバンク 112 は、種々のアクションを行うためにアバターが用いるアニメーションのセットである。
【００４９】
図５は、図３のプロップ 64, 65, 66 の内のひとつのようなプロップを構成する例を示している。図５では、プロップ 120 は、ジオメトリファイル 122 、ステートマシン 124 、掴むファイル （ grasping file ） 126 、コンテナファイル 128 、スピードファイル 130 、およびエキスパンドファイル 132 を含んでいる。
【００５０】
ジオメトリファイル 122 は、プロップのジオメトリを定義するバイナリファイルである。ステートマシン 124 は、プロップがアバターと相互作用する方法を定義する。掴むファイル 126 は、アバターがプロップを拾った瞬間で停止している、プロップに結合したアバターから構成されている、ひとつもしくは複数のキーフレームである。スピードファイル 130 は、プロップがフロアプラン上を動くことができるスピードを指定する。エキスパンドファイル 132 は、フロアプラン上のプロップの投影のエキスパンションもしくはコントラクションを定義する。循環アニメーションファイル 134 は、プロップが動くようにアニメートするために用いるアニメーションを含む。
【００５１】
コンテナファイル 128 は、プロップが他のプロップを含める方法を指定する。このファイルは、フロアプランファイルのリストを有する。各フロアプランファイルは、他のプロップの位置を定めるためにアバターが用いるような、プロップの表面を表現する。プロップは、プロップが何を含んでいるか、およびプロップが何を含んでいるかに応じてアバターと相互作用するか、ということのトラックを保持している。
【００５２】
サウンド、ライト、カメラ、および他のオブジェクトは、編集ツール 1 によって同様に作成することができる。
すべてのオブジェクトはコピー・ペーストができる。適切にコピーされたオブジェクトは、何処においてもジオメトリとアニメーションを共有する（則ち、オブジェクトが作成された瞬間に）。複合オブジェクトをコピー・ペーストする際には、これらのオブジェクト間の関係も複製される。例えば、単独の家をアパートメントブロック内に組み込むことができ、アバターがその家の周囲を歩くことができる場合には、アバターは自動的にそのアパートメントブロックを歩くことができるようになる。
【００５３】
図１の編集装置 1 においては、異なるサイズおよび異なるトポロジーである異なるアバターのすべては、共通のアニメーションプールを共有する。特定の或るアバターのためのアニメーションは、異なるアバターに対して再設定することができる。例えば、階段を昇る複数の異なるアバターのすべては、その階段に関連づけられた同一のアニメーションを共有する。
【００５４】
アバターがアニメーションを再生するとき、このアニメーションは問題のアバターにフィットするように再設定される。これは、オリジナルのアニメーションの動きに対応して、アバターのノードが動きを掃き出す （ sweep out ） ようにアニメーションを外挿することで行われるが、アバターのサイズにフィットするように大きさを増減している。このテクニックは、モーション再設定 （ motion retargeting ） として公知である。モーション再設定を使わない場合には、各アバターごとに別々のアニメーションを用意する必要が生じる。
【００５５】
［仮想環境の制御］
上述の方法で作成された仮想環境は、ユーザーによって制御することができるインタラクティブな仮想環境である。これは、図１のディスプレイ 22 上のGUIを表示して、入力デバイス 23 の手段によって入力することができるコマンドを介して行われる。このようなGUIの例を図６に示した。
【００５６】
図６に示した例では、四つのウィンドウが表示されており、則ち、ファイルリストウィンドウ 140 、キャラクターウィンドウ 142 、シーンウィンドウ 144 、およびビヘイビアコンソール 146 である。ファイルリストウィンドウ 140 は、ハードディスク 16 上のひとつもしくは複数のディレクトリにストアされているファイルをリストする。キャラクターウィンドウ 142 は、制御されているアバターの外観を呈示する。シーンウィンドウ 144 は、キャラクターウィンドウ 142 内に示されているアバターを含むことができる、編集されているシーンを呈示する。ビヘイビアコンソール 146 は、入力デバイス 23 を介してコマンドを入力するために用いられる。この他のウィンドウを表示することもでき、またウィンドウを必要に応じて開閉することができることは明らかである。
【００５７】
編集装置 1 は、ユーザーがシーン内のオブジェクトを高レベルで制御することができるようなスクリプト言語を用いる。仮想世界のビヘイビアを作成する際には、ユーザーはビヘイビアコンソールを通じてコマンドをタイプする。例えば、コマンドは以下のような内容のことをタイプすることができる。
【００５８】
・  シーン内のオブジェクトの管理
・  オブジェクトの追加、もしくは削除
・  オブジェクトを他のオブジェクトに結合する、もしくはオブジェクトを他のオブジェクトから分離する
・  オブジェクトを隠す、もしくは出現させる
・  シーンに情報を照会する
スクリプト言語のコマンドのすべては動的であり、またシミュレーションの間に任意に呼び出すことができる。
【００５９】
ユーザーが結果に満足したら、グループ化コマンドを用いて、ハードディスク 16 にストアされているビヘイビアファイル 32 内にビヘイビアをカプセル化することができる。クエリ（照会）コマンドを除き、ビヘイビアコンソールを通じて入力できるコマンドのすべては、ビヘイビアファイル内に入力することができる。これらのビヘイビアファイルは、スクリプトとしても知られる。
【００６０】
ビヘイビアファイルは、ビヘイビアスクリプトウィンドウを通じてコマンドのリスト内にタイプすることで作成することができ、あるいは、シーン内で行われるアクションを記録することで作成することもできる。シーン内のアクションは、ディスプレイ 22 上に表示されるGUIの一部である記録ボタンを使って記録することができる。アクションは、シーンビューウィンドウを通じてか、カメラビューウィンドウを通じてかのいずれかで記録することができる。記録ボタンがアクティブである間は、仮想環境内で行われるすべてのアクションが自動的にディスクに保存される。その後、記録されたアクションは、AVIファイルのようなアニメーションファイルに即時変換されるか、もしくは後の段階で変換される。
【００６１】
複雑なビヘイビアは、多数のビヘイビアファイルを同時に走らせて実行することができる。ビヘイビアファイルはネストすることができる。ビヘイビアファイルは、他のビヘイビアファイルを呼び出す、もしくは廃棄するように制御することもできる（いわゆるメタビヘイビアである）。
【００６２】
複雑なモーションは、別々のソースからのアニメーションクリップを時系列に沿って連鎖させ、アニメーションクリップ同士を調和させることで構築することができる（「モーション連鎖」 （ "motion chaining" ） ）。
【００６３】
［動的ヒエラルキースイッチング （ dynamic hierarchy switching ） ］
仮想環境を構成するオブジェクトは、シーンヒエラルキーを有する。或るオブジェクトが、別のオブジェクトの子である場合、そのオブジェクトはその別のオブジェクトのモーションを継承する。例えば、プロップがアバターに持たれているとすると、プロップはアバターのモーションを継承することになる。
【００６４】
動的ヒエラルキースイッチングは、オブジェクトがその親を或るオブジェクトから別のオブジェクトへと変更したときに起こる。例えば、或るアバターがプロップを別のアバターに与えたとすると、プロップの親は第一のアバターから第二のアバターへと変更されることになる。
【００６５】
図７Ａ〜７Ｃは、シーンヒエラルキーの例を示している。これらの図においては、シーンにはひとつのアバターと三つのプロップとが住んでいる。アバターはキャラクターであり、三つのプロップはテーブル、椅子、およびコップである。
【００６６】
図７Ａでは、キャラクター、テーブルおよび椅子のすべては、それぞれ独立に位置していると仮定される。したがってこれらのオブジェクトは、親として環境のみを持ち、これらのオブジェクトの動きは他のオブジェクトの動きに依存しない。また、コップがテーブルの上に位置していることも仮定されている。ゆえに図７Ａでは、コップがテーブルを親としている。この親／子関係によって、テーブルが動くと、コップもそれに伴って動くことになる。
【００６７】
図７Ｂは、キャラクターが椅子に座っている場合のシーンヒエラルキーを示している。このアクションは、例えば、ユーザーがビヘイビアコンソールを介して発した「座れ」 （ "sit" ） コマンドに応じて行われる。図７Ｂにおいては、キャラクターは椅子の子となっており、則ち椅子が動くとキャラクターも共に動くことになるということである。
【００６８】
図７Ｃは、キャラクターがテーブルからコップを取り上げたときのシーンヒエラルキーを示す。図７Ｂから図７Ｃへの移行においては、コップが動的にヒエラルキーをスイッチし、コップが、椅子の子であるキャラクターの子となっている。ゆえに、椅子の動きに依存して動くキャラクターの動きに依存して、コップが動くことになる。
【００６９】
動的ヒエラルキースイッチングによって、自然な見栄えでオブジェクトが互いに相互作用するような、複雑な動きを構築することができる。動的な結合が無い場合には、別のオブジェクトに依存した或るオブジェクトの動きにおける、予期されるすべての状況について、別々のアニメーションを用意する必要がある。
【００７０】
アバターは、骨格を形成するためにノードヒエラルキーにリンクされているノードの系列から構成される。単純な場合には、アバターは、二つの手、二つの足、および頭のノードから成るノードヒエラルキーを有することができる。また、より複雑な場合には、ノードヒエラルキーは、肩、肘、指、膝、尻、眼、瞼などのノードを含むことができる。
【００７１】
アバターがプロップを拾うとき、プロップは、アバターのノードヒエラルキー内のひとつのノードに結合されることになる。例えば、アバターが右手で瓶を握るとすると、瓶は右手のノードに結合されることになる。しかしながら、アバターは通常はアバターのノードの周りに一定の体積を占めるため、プロップはノードに直接結合はされず、結合点においてアバターが占める体積に応じた、ノードからプロップまでの距離が定義されている。加えて、ノードに関するプロップの向きも定義される。その後に、ノードに関するプロップの距離および方向がストアされる。
【００７２】
プロップがアバターに結合すると、プロップは結合したノードの動きを継承する。例えば、アバターがアニメーションを再生し了える （ plays out ） と、アニメーションによって各ノードの動きが定義される。その後に、ノードからのプロップまでの距離とプロップの方向とを考慮して、プロップの動きが決定される。
【００７３】
プロップは、アバターのひとつもしくは複数のノードと結合することができる。例えば、一着の衣装は、いくつかのノードと結合することができる。加えて、アバターの外観を定義するプロップは、アバターと結合することができる。例えば、眼、耳もしくは鼻は、アバターとこのように結合することができる。
【００７４】
他のオブジェクト同士も、同様の方法で互いに結合することができる。
［インテリジェントプロップ］
図１の編集装置 1 においては、アバターがプロップと相互作用する方法は、プロップに関連づけられたステートマシンによって定義される。ステートマシンは、アバターおよびプロップが或るステートから別のステートへと移るときに用いられる、ひとつもしくは複数のアニメーションを含む。アバターがプロップと相互作用する際には、アバターは、アバターが行うアニメーションをプロップに照会する。
【００７５】
図８には、プロップに結合したステートマシンの例を示す。図８では、ステートマシン150 は、プロップイニシャルステート 152 、ステート遷移 154, 156 、および休止バンク 158 を含んでいる。プロップイニシャルステート 152 は、プロップのイニシャルステートを定義し、ステートマシン内のすべてのアニメーションは、このイニシャルステートにあるプロップと相関してインポートされる。これは、すべてのアニメーションに環境との互換性を持たせるために行われる。
【００７６】
ステート遷移 154, 156 のそれぞれは、プロップおよびアバターが相互作用した際に、或るステートから別のステートへと移る方法を定義する。一般的には、ステート遷移はイニシャルステートおよびファイナルステートを指定し、また、アバターおよびプロップが、イニシャルステートからファイナルステートへと移行するときに採るアバターアニメーションおよびプロップアニメーションを含む。しかしながら、相互作用をする間にプロップもしくはアバターのいずれかが動かない場合には、一方のアニメーションを省略することができる。もっとも単純な場合には、アバターは、つねに同じ方法でプロップと相互作用して、プロップを見つけたときとまったく同一のやりかたでプロップを置くことになる。この場合、プロップはただひとつのステートを有し、上述したようなステート遷移は存在しない。
【００７７】
休止バンク 158 は、プロップと相互作用しているアバターが、休止ステートにあるときに実行することができるアニメーションを定義する。
アバターがプロップと相互作用するときには、アバターはプロップにアバターアニメーションを照会する。その後に、プロップがプロップアニメーションでアニメートされている間、アバターはアバターアニメーションでアニメートされる。
【００７８】
ステートマシン 150 は、プロップと運動学的に関連づけられる。これは、ステートマシンがプロップに結合されて、プロップが動くとステートマシンも動くということを意味する。このようにステートマシンをプロップに関連づけることによって、アニメーションの制御が分散され、非常にオープンなアーキテクチャを得ることができる。例えば、ユーザーは自身のプロップを環境内に導入することができ、また、プロップのためのステートマシンが正しくセットアップされている間は、プロップは環境内の別のものと相互作用できるようになる。
【００７９】
プロップのヒエラルキーが変化するとき、則ちプロップがその親を或るオブジェクトから別のオブジェクトへと変化させるとき、プロップに関連づけられたステートマシンも、そのヒエラルキーを同様に変化させる。ステートマシンのヒエラルキーが、プロップのヒエラルキーと共に変化することによって、仮想環境の保全性の維持を援けることになる。これは、アバターとプロップとの相互作用に必要なアニメーションが常時利用可能となるためであり、これらのアニメーションは、プロップと他のオブジェクトとの関係につねに依存することになる。
【００８０】
ステートマシンを伴ったプロップは、ステートに適用されたプレコンディションを有することができる。アバターが、プロップを或るステートに遷移させる結果となるようなコマンドを与えられ、このステートが指定されたプレコンディションを有しているとすると、アバターはこのコマンドを実行する前にプレコンディションを満そうと試みる。この方法では、少ないプロップとそのステートマシンを組み合わせることにより、比較的複雑なビヘイビアを作成することができる。
【００８１】
例えば、冷蔵庫の扉が開いていないときには、アバターが瓶を冷蔵庫に入れられない、というプレコンディションにすることができる。この場合、アバターが、冷蔵庫に瓶を入れるアクションを行うように求められると、アバターはまず冷蔵庫の扉を開けようと試みることになる。
【００８２】
ステートマシンは休止ステートを有する。相互作用をスタートさせるために必要な遷移があるときに、休止ステートを持つステートマシンが使われ、その結果としてプロップは休止ステートに入り、遷移して、プロップをその休止ステートから脱させる相互作用を終わらせる。別のプロップに関して休止ステートにあるアバターがコマンドを受けた場合、システムは、そのコマンドを実行する前に、このプロップを休止ステートから脱させようと試みることになる。
【００８３】
例えば、相互作用にアバターがベッドに寝るということが含まれる場合、アバターがベッドの側に立つとともにアニメーションの再生が始まり、ベッドに横たわるところでアニメーションが終わることになる。ベッドに横たわるアバターのステートは、休止ステートに指定することができる。このステートでは、アバターの休止バンクは、例えば睡眠中の種々の動きに対応するアニメーションを含むことができる。その後にアバターがどこかの他のオブジェクトと相互作用するように命令されると、アバターはまずベッドから起きねばならない。イニシャルステートが休止ステートに設定されているアバターがベッドから起きるということに対応する遷移がある場合には、これが自動的に起こる。
【００８４】
［メッセージ後配 （ Deferred message passing ） ］
アバターは他のアバターとコミュニケートすることができ、メッセージを渡すことによって他のアバターのビヘイビアのそれぞれに影響を及ぼすことができる。アバターが別のアバターとコミュニケートできるようになる前に、アバターと、アバターがコミュニケートしようとする対象とを接続しなくてはならない。これは、任意に命名することができる特定のメッセージを介して行われる。この接続は、ソフトウェア内部のタグとして見ることができる。
【００８５】
アバターがメッセージを発すると、すべてのアバターがそのメッセージを聞くことになるが、メッセージを発したアバターに接続されているアバターだけがそのメッセージを受信して処理することになる。
【００８６】
環境内のオブジェクトは、それぞれのオブジェクトが独立に再生することになるアニメーションの連鎖を構築し、共にリンクすることによって動くことができるようになっている。これらのアニメーションの連鎖は、カットして、また接合することができる。
【００８７】
システム内の他のオブジェクトへ、命令がメッセージを放つことができるジョイン （join ） の間に命令を置くことができる。これらのメッセージは、優先して再生されるアニメーションの後にのみ発されることになる。これをメッセージ後配と呼ぶ。メッセージ後配によって、シーンヒエラルキーの動的なスイッチを強制することができる。
【図面の簡単な説明】
【００８８】
【図１】図１は、本発明の実施の形態に係る編集装置を示す。
【図２】図２は、仮想環境を作成するために採られるステップの例を示す。
【図３】図３は、仮想環境を構築することができる種々のコンポーネントの例を示す。
【図４】図４は、アバターの構成の例を示す。
【図５】図５は、プロップの構成の例を示す。
【図６】図６は、図１の編集装置によって作成される、GUI （ graphical user interface ） の例を示す。
【図７Ａ】図７Ａ〜Ｃは、シーンヒエラルキー （ scene hierarchies ） の例を示す。
【図７Ｂ】図７Ａ〜Ｃは、シーンヒエラルキー （ scene hierarchies ） の例を示す。
【図７Ｃ】図７Ａ〜Ｃは、シーンヒエラルキー （ scene hierarchies ） の例を示す。
【図８】図８は、ステートマシンの例を示す。
【図１】
2006528381.tif 000003
【図２】
2006528381.tif 000004
【図３】
2006528381.tif 000005
【図４】
2006528381.tif 000006
【図５】
2006528381.tif 000007
【図６】
2006528381.tif 000008
【図７Ａ】
2006528381.tif 000009
【図７Ｂ】
2006528381.tif 000010
【図７Ｃ】
2006528381.tif 000011
【図８】
2006528381.tif 000012
【手続補正書】
【提出日】平成17年10月14日(2005.10.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
インタラクティブな仮想環境を制御するための装置であって、オブジェクトが住まう仮想環境を定義するための手段を含み、前記仮想環境内の前記オブジェクトはアバターおよびプロップを含み、前記仮想環境内のオブジェクトは、動的に他のオブジェクトに結合され、および動的に他のオブジェクトから分離することができる装置において、
ひとつもしくは複数のプロップは、アバターが前記プロップと相互作用する際に前記アバターによって行われるひとつもしくは複数のアニメーションを定義する情報と関連づけられており、前記アバターは、前記プロップに、前記アバターが前記プロップと相互作用する際に行う前記アニメーションを定義する前記情報を照会することができ、また、前記プロップが動的に別のオブジェクトに結合された際には、前記プロップと相互作用する際にひとつもしくは複数の前記アバターによって行われる前記のひとつもしくは複数のアニメーションを定義する前記情報が、前記プロップに関連づけられたままとなることを特徴とする装置。
【請求項２】
オブジェクトが別のオブジェクトに結合される際に、それが、それが結合されている前記オブジェクトの動きを継承することを特徴とする、請求項１記載の装置。
【請求項３】
後のリプレイもしくは編集のためのアニメーションシーケンスをストアする手段をさらに含む、請求項１もしくは２に記載の装置。
【請求項４】
コンピュータゲームをプレイするための装置であることを特徴とする、請求項１もしくは２に記載の装置。
【請求項５】
アニメーションシーケンスを作成するために、ユーザーに前記仮想環境の制御を許可する手段をさらに含む、請求項３記載の装置。
【請求項６】
前記のひとつもしくは複数のアニメーションが、前記プロップに関連づけられたステートマシンの一部として定義されていることを特徴とする、上述の請求項のいずれか一項に記載の装置。
【請求項７】
前記ステートマシンが、イニシャルステートと、ファイナルステートと、前記プロップを前記イニシャルステートから前記ファイナルステートに移行させるプロップアニメーション、および、前記アバターを前記イニシャルステートから前記ファイナルステートに移行させ、オプションとして前記イニシャルステートに戻すようなアバターアニメーションの少なくとも一方とを含むことを特徴とする、請求項６記載の装置。
【請求項８】
プレコンディションが、前記ステートのひとつと関連づけられていることを特徴とする、請求項７記載の装置。
【請求項９】
前記ステートマシンが、休止ステートを有することを特徴とする、請求項６〜８のいずれか一項に記載の装置。
【請求項１０】
アニメーションシーケンスが、コマンドのリストを含むスクリプトとしてストアされることを特徴する、請求項３、または請求項３に従属する請求項６〜９のいずれか一項に記載の装置。
【請求項１１】
前記コマンドが、前記仮想環境を制御するためにユーザーが入力することができるコマンドと同一のものであることを特徴とする、請求項１０記載の装置。
【請求項１２】
スクリプトが、前記仮想環境内のオブジェクトに渡される命令を含むことを特徴とする、請求項１０もしくは１１に記載の装置。
【請求項１３】
前記命令が、前記スクリプト内で前記命令に優先するアニメーションを再生し了えた前記オブジェクトにのみ渡されることを特徴とする、請求項１２記載の装置。
【請求項１４】
アバターが、前記アバターの外観を定義する少なくともひとつのファイル、および、前記アバターの動きを定義するアニメーションを含むことを特徴とする、上述の請求項のいずれか一項に記載の装置。
【請求項１５】
複数のアバターが、共通のアニメーションを共有することを特徴とする、上述の請求項のいずれか一項に記載の装置。
【請求項１６】
前記の共通のアニメーションが、問題の前記アバターのサイズにフィットさせるために再設定されることを特徴とする、請求項１５記載の装置。
【請求項１７】
プロップが、前記プロップが他のプロップを含むことができる方法を指定するファイルを含むことを特徴とする、上述の請求項のいずれか一項に記載の装置。
【請求項１８】
インタラクティブな仮想環境を制御する方法であって、前記方法はオブジェクトが住まう仮想環境を定義することを含み、前記オブジェクトはアバターおよびプロップを含み、
前記仮想環境内のオブジェクトが、動的に他のオブジェクトに結合され、また、動的に他のオブジェクトから分離され、特徴づけられたひとつもしくは複数の前記プロップが、アバターが前記プロップと相互作用する際に前記アバターによって行われるひとつもしくは複数のアニメーションを定義する情報と関連づけられており、前記アバターは、前記プロップに、前記アバターが前記プロップと相互作用する際に行う前記アニメーションを定義する前記情報を照会することができ、また、前記プロップが動的に別のオブジェクトに結合された際には、前記プロップと相互作用する際にひとつもしくは複数の前記アバターによって行われる前記のひとつもしくは複数のアニメーションを定義する前記情報が、前記プロップに関連づけられたままとなることを特徴とする方法。
【請求項１９】
ユーザーが、前記仮想環境を制御してアニメーションシーケンスを作成することを許可するステップ、ならびに、
アニメーションシーケンスを、後のリプレイもしくは編集のためにストアするステップ、
をさらに含むことを特徴とする、請求項１８記載のインタラクティブな仮想環境を制御する方法。
【請求項２０】
コンピュータ上で走らせた際に、前記コンピュータに請求項１８〜１９のいずれか一項に記載の方法を実行させる、または、前記コンピュータを請求項１〜１７のいずれか一項に記載の装置とすることを特徴とする、コンピュータプログラム。
【請求項２１】
コンピュータ上で走らせた際に、前記コンピュータに請求項１８〜１９のいずれか一項に記載の方法を実行させる、または、前記コンピュータを請求項１〜１７のいずれか一項に記載の装置とするようなコンピュータプログラムをストアしていることを特徴とする、コンピュータ読み取り可能な記録媒体。
【国際調査報告】
2006528381.tif 000013
2006528381.tif 000014
2006528381.tif 000015