アニマトロニクス・フィギュアの現実的な動作を生成する計算環境
アニマトロニクス・フィギュアの動作を生成するシステムを開示する。このシステム(200)は、異なる種類の動作をリアルタイムで生き物のように生成すべく構成されている。動作ソフトウェアモジュール(106)は、ユーザ入力の動作を、ユーザが選択した固定の動作列及び/またはアルゴリズム的に計算した動作と組み合わせることによって合成動作を形成する。アニマトロニクス・フィギュアの動作をさらにフィルタ処理して、生き物のような動きを生成する。組合せ動作は、要素動作を重ね合わせ、変化させ、あるいは修正することによって形成される。ユーザ入力コマンド及び刺激から決まるコマンドに基づいて動作をフィルタ処理して、生き物のような動きを生成する。
【発明の詳細な説明】
【技術分野】
【0001】
(1.発明の分野)
本発明は一般にロボティクス・フィギュア(ロボット的な人形等)に関するものであり、特にアニマトロニクス・フィギュア(生き物のような動きをする人形等)に関するものである。
【0002】
(2.発明の背景)
アニマトロニクス・フィギュアは、1つ以上の電気機械的装置によって動きを与えられるロボティクス・フィギュア、動く人形、あるいは他の動きのある物体である。「動きを与えられる」とは、動作を行わせることを意味する。上記電気機械的装置は、電子的部分、機械的部分、液圧及び/または空気圧部分を含む。アニマトロニクス・フィギュアは、テーマパークのようなエンターテインメント(娯楽)の場所では一般的である。例えば、アニマトロニクス・キャラクタ(配役)は、テーマパーク内のショー、ライド(乗り物)、及び/または他のイベントで見ることができる。アニマトロニクス・キャラクタの身体部分、例えば頭及び腕は一般に自由に動くことができる。しかし、アニマトロニクス・キャラクタは通常、1つの場所から他の場所へと歩き回ったり歩いて行ったりすることはできない。
【0003】
アニマトロニクス・フィギュアを制御する種々のアニマトロニクスシステムが、何十年にわたって作り出されてきた。これらのシステムの制御は、過去40年にわたって、機械的カムからミニコンピュータ、(回路)ボードベースのシステムへと着実に進歩して来たが、その下にある取り組み方法は少ししか変わっていない。
【0004】
一般に、現在のアニマトロニクス・フィギュアは非常に機械的な振る舞いで動く。換言すれば、現在のアニマトロニクス・フィギュアは、生き物のような動きを見せるのではなく、ロボットのような動きを見せる。
【0005】
(発明の概要)
本発明の1つの態様のアニマトロニクスシステムでは、受信モジュールが固定ショー選択入力及び人形操作入力をオペレータ(操作員)から受信する。固定ショー選択入力は、少なくとも1つの固定ショー命令に関連する。人形操作入力は人形操作命令を与える。アニマトロニクス・フィギュアが存在する。変換ソフトウェアモジュールは、前記固定ショー選択入力に関連する前記少なくとも1つの固定ショー命令を、少なくとも1つの固定ショーの物理的動作命令に変換し、そして受信した前記人形操作命令を少なくとも1つの人形操作の物理的動作命令に変換する。動作ソフトウェアモジュールは、前記少なくとも1つの固定ショーの物理的動作命令を受信し、かつ前記少なくとも1つの人形操作の物理的動作命令を受信して、前記少なくとも1つの固定ショーの物理的動作命令及び前記少なくとも1つの人形操作の物理的動作命令から合成動作命令を計算し、これにより、少なくとも一人の役者が、アニマトロニクス・フィギュアの少なくとも1つの構成要素を生き物のように動かすことができる。
【0006】
本発明の他の態様のアニマトロニクスシステムでは、アニマトロニクス・フィギュアの少なくとも1つの構成要素の動作が行われる際に、音響ソフトウェアモジュールが音響装置に命令を与えて音響信号を出力させる。
【0007】
本発明の1つの態様のアニマトロニクスシステムでは、自動固定ショー・ソフトウェアモジュールが、固定ショー選択入力を所定時刻に自動的に前記受信モジュールに供給する。
【0008】
本発明の他の態様のアニマトロニクスシステムでは、所定時刻が、オペレータが人形操作入力を行う時刻と一致する。
【0009】
本発明の1つの態様のアニマトロニクスシステムでは、オペレータがボタンを押して前記固定ショー選択入力を与える。
【0010】
本発明の他の態様のアニマトロニクスシステムでは、事象の発生を測定するセンサがアニマトロニクス・フィギュアに動作的に接続されている。
【0011】
本発明の1つの態様のアニマトロニクスシステムでは、事象の発生をきっかけとして、前記固定ショー選択入力が前記受信モジュールに入力される。
【0012】
本発明の他の態様のアニマトロニクスシステムでは、オペレータがダイヤルを回して前記固定ショー選択入力を前記受信モジュールに与える。
【0013】
本発明の1つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、人形操作の動作を実行するための人形操作命令をアニマトロニクス・フィギュアに与える。固定ショーの選択は、アニマトロニクス・フィギュアに固定ショーの動作を実行させる少なくとも1つの固定ショー命令に関連する。前記人形操作命令は、前記少なくとも1つの固定ショー命令と組み合わされて組合せ命令を形成する。アニマトロニクス・フィギュアは、この組合せ命令を実行することを命令される。
【0014】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記固定ショーの選択がユーザによって行われる。
【0015】
本発明の1つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、アニマトロニクス・フィギュアに前記組合せ命令を実行することを命令することによって、人形操作の動作と固定ショーの動作との合成動作が行われる。
【0016】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作が、アニマトロニクス・フィギュアの固定ショーの動作を実行する構成要素と同じ構成要素によって実行される。
【0017】
本発明の1つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作が、アニマトロニクス・フィギュアの固定ショーの動作を実行する構成要素とは異なる構成要素によって実行される。
【0018】
本発明の他の態様のアニマトロニクスシステムでは、アニマトロニクス・フィギュアが存在する。受信モジュールが第1コマンド及び第2コマンドをオペレータから受信する。この受信モジュールはアニマトロニクス・フィギュアと動作的に接続されている。前記受信モジュールはこのアニマトロニクス・フィギュアと通信する。このアニマトロニクス・フィギュアは、前記第1コマンドに従って第1動作を行う。前記アニマトロニクス・フィギュアは、前記第2コマンドに従って第2動作を行う。フィルタモジュールが、前記第1コマンドを第1フィルタに通してフィルタ処理し、前記第2コマンドを第2フィルタに通してフィルタ処理して、前記第1コマンドによって生じる前記アニマトロニクス・フィギュアの第1動作を、前記第2コマンドによって生じる前記アニマトロニクス・フィギュアの第2動作と調和させて、前記アニマトロニクス・フィギュアの動作が生き物のように見えるようにする。
【0019】
本発明の1つの態様のアニマトロニクスシステムでは、前記第1コマンドが人形操作命令である。
【0020】
本発明の他の態様のアニマトロニクスシステムでは、前記第2コマンドが、少なくとも1つの固定ショー命令に関連する固定ショーの選択である。
【0021】
本発明の1つの態様のアニマトロニクスシステムでは、前記第1フィルタがローパス(低域通過)フィルタである。
【0022】
本発明の他の態様のアニマトロニクスシステムでは、前記第2フィルタがハイパス(高域通過)フィルタである。
【0023】
本発明の1つの態様のアニマトロニクスシステムでは、前記第2フィルタがバンドパス(帯域通過)フィルタである。
【0024】
本発明の他の態様のアニマトロニクスシステムでは、前記第1フィルタと前記第2フィルタとを、アニマトロニクス・フィギュアの同じ身体部分の異なる構成要素上で用いる。
【0025】
本発明の1つの態様のアニマトロニクスシステムでは、前記第1フィルタと前記第2フィルタとを、アニマトロニクス・フィギュアの異なる身体部分で用いる。
【0026】
本発明の他の態様のアニマトロニクス・フィギュアには脚が存在する。この脚に脚部アクチュエータが動作的に接続され、この脚部アクチュエータは脚の動作を行わせる。車輪が存在し、この車輪には車輪アクチュエータが動作的に接続され、この車輪アクチュエータは車輪の動作を行わせる。プロセッサが脚の動作及び車輪の動作を決定して、前記アニマトロニクス・フィギュアの動作を行わせる。前記プロセッサは、脚の動作を前記脚部アクチュエータに送信する。前記プロセッサは、車輪の動作を前記車輪アクチュエータに送信する。
【0027】
本発明の1つの態様のアニマトロニクス・フィギュアでは、位置センサがこのアニマトロニクス・フィギュアの第1現在位置を測定する。
【0028】
本発明の他の態様のアニマトロニクス・フィギュアでは、増分センサが、このアニマトロニクス・フィギュアの相対的な第2現在位置を、このアニマトロニクス・フィギュアの初期位置から進んだ距離だけ増加させることによって測定する。
【0029】
本発明の1つの態様のアニマトロニクス・フィギュアでは、クリッピング(切り取り)モジュールが、このアニマトロニクス・フィギュアの前記第2現在位置と、このアニマトロニクス・フィギュアの前記第1現在位置との差が位置クリッピング限界に達したか否かを判定する。
【0030】
本発明の他の態様のアニマトロニクス・フィギュアでは、クリッピングモジュールが、前記第1現在位置から前記第2位置へ移動中のこのアニマトロニクス・フィギュアの速度が速度クリッピング限界に達したか否かを、位置クリッピング限界に達したか否かに加えて判定する。
【0031】
本発明の1つの態様のアニマトロニクス・フィギュアでは、クリッピングモジュールが、前記第1現在位置から前記第2位置まで移動中のこのアニマトロニクス・フィギュアの速度があるクリッピング限界に達したか否かを判定する。
【0032】
本発明の他の態様のアニマトロニクス・フィギュアでは、クリッピングモジュールが、前記第1現在位置から前記第2位置まで移動中のこのアニマトロニクス・フィギュアの速度があるクリッピング限界に達したか否かを、位置クリッピング限界に達したか否か、及び/または速度クリッピング限界に達したか否かとは別個に、あるいはこれらと共に判定する。
【0033】
本発明の1つの態様のアニマトロニクス・フィギュアでは、前記クリッピング限界に達した場合に、前記クリッピングモジュールが、前記アニマトロニクス・フィギュアの軌跡を短縮する。
【0034】
本発明の他の態様のアニマトロニクス・フィギュアでは、前記クリッピング限界に達した場合に、前記クリッピングモジュールがこのアニマトロニクス・フィギュアの速度を低下させる。
【0035】
本発明の1つの態様のアニマトロニクス・フィギュアでは、前記クリッピング限界に達した場合に、前記クリッピングモジュールがこのアニマトロニクス・フィギュアの加速度を低下させる。
【0036】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、このアニマトロニクス・フィギュアに人形操作命令を与えて、人形操作の動作を実行させる。固定ショー選択コマンドを前記アニマトロニクス・フィギュアに与えて、固定ショーの選択に関連する少なくとも1つの固定ショーの動作を実行させる。前記人形操作の動作と前記固定ショーの動作とを組み合わせて合成動作とする。前記アニマトロニクス・フィギュアは、この合成動作を実行するよう命令される。
【0037】
本発明の1つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記固定ショーの選択がユーザによって行われる。
【0038】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作と前記少なくとも1つの固定ショーの動作との組合せが、前記人形操作の動作と前記固定ショーの動作との合成である。
【0039】
本発明の1つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作が行われる構成要素と同じ構成要素上で行われる。
【0040】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作が行われる構成要素とは異なる構成要素上で行われる。
【0041】
本発明の1つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、所定の限界が、前記人形操作の動作と前記固定ショーの動作との合成を低減する。
【0042】
本発明の他の態様のアニマトロニクスシステムでは、アニマトロニクス・フィギュアが存在する。受信モジュールはオペレータから第1コマンドを受信する。この受信モジュールは、前記アニマトロニクス・フィギュアに動作的に接続されている。前記受信モジュールは、前記アニマトロニクス・フィギュアと通信する。前記アニマトロニクスシステムは、前記第1コマンドを、第1動作を決定するための計算の一部として用いる。アルゴリズム応答モジュールは、前記第1コマンドが前記アニマトロニクス・フィギュアに与えられたことの発生に基づいて、第2コマンドを前記アニマトロニクス・フィギュアに与える。前記アルゴリズム応答モジュールは、前記第1コマンドを前記受信モジュールから受信する。前記アニマトロニクス・フィギュアは、前記第2コマンドに従って第2動作を行う。
【0043】
本発明の1つの態様のアニマトロニクスシステムでは、前記第1コマンドが人形操作命令である。
【0044】
本発明の他の態様のアニマトロニクスシステムでは、前記第2コマンドが、少なくとも1つの固定ショー命令に関連する固定ショー選択入力である。
【0045】
本発明の1つの態様のアニマトロニクスシステムでは、前記第2コマンドが、前記アニマトロニクス・フィギュアに動作的に接続されたセンサが刺激を検出したことの発生に基づくアニマトロニクス固定ショー命令である。
【0046】
本発明の他の態様のアニマトロニクスシステムでは、フィルタモジュールが、前記第1動作を第1フィルタに通してフィルタ処理し、前記第2動作を第2フィルタに通してフィルタ処理して、前記第1動作を前記第2動作と調和させ、これにより、前記アニマトロニクス・フィギュアの動作が生き物のように見える。
【0047】
(実施例の詳細な説明)
以下、本発明の実施例について、図面を参照しながら詳細に説明する。
ここでは、アニマトロニクスシステムを制御することについて、以前に見られたものよりも大きな柔軟性(フレキシビリティ)を提供し、かつリアルタイム(実時間)の合成動作を生成する能力を提供する計算環境を開示する。この計算環境は、ロボティクスシステムに一般的に適用することができ、アニマトロニクスシステムのみに限定されない。さらに、この計算環境はいずれの特定言語にも限定されない。一具体例では、スクリプト記述言語を用いて、アニマトロニクス・フィギュアに命令して現実的な、生き物のような動きを作り出し生み出させる高レベルのツールをプログラマに提供する。
【0048】
以下、この計算環境の種々の特徴を、アニマトロニクスシステムに関して説明する。一具体例では、この計算環境が、アニマトロニクス・フィギュアが実行可能な異なる種類のショーのためのリソース、及びこれらのショー中の動作の組合せ及び順序付けを提供して、リアルタイムでの生き物のような動きの生成、リアルタイム動作用の軌跡の計算、及び/またはアニマトロニクス・フィギュアの動作のフィルタ処理を行う。以下、これら及び他の特徴について説明する。
【0049】
図1にアニマトロニクスシステム100を示し、このシステムは、異なる種類のショーをリアルタイムかつ生き物のように生成すべく構成されている。1つのショーは、アニマトロニクスシステム100によって動きを与えられるアニマトロニクス・フィギュア108の一連の動作である。
【0050】
ショーの1つの種類は人形ショーである。人形ショーは、オペレータ制御による一連の動作である。換言すれば、オペレータ101は、アニマトロニクス・フィギュア108の所望動作をアニマトロニクスシステム100に手動で入力する。ユーザが各所望の動作を手動で入力すると、アニマトロニクス・フィギュア108はこれに対応する動作をリアルタイムで生成する。アニマトロニクスシステム100は、アニマトロニクス・フィギュア108に命令して、ユーザが所望動作コマンドを手動で入力した後に、所望動作を即座に、あるいは所定期間内に生成する。従って、アニマトロニクス・フィギュア108は、ユーザが所望動作をアニマトロニクスシステム100に入力する間は所望動作に従って動いているように見える。人形ショーの例は、”MUPPET(マペット)”、あるいは1997年にニューヨークのNew Amsterdam Theater(ニュー・アムステルダム劇場)で初演のディズニー(登録商標)の”The Lion King(ライオンキング)”のライブステージ(舞台上演)版における人形であることは、当業者にとって明らかである。
【0051】
一具体例では、ユーザは人形操作の動作を、ジョイスティックまたは他の入力装置によって入力する。他の具体例では、ユーザは人形操作の動作をキーボードによって入力する。さらに他の具体例では、ユーザは人形操作の動作を、ユーザの体に取り付けたセンサによって入力する。他の具体例では、フェイス・トラッキング(顔追跡)を用いて人形操作の動作を入力する。フェイス・トラキングは、顔及び/または頭の動きを検出する。カメラの焦点を顔及び/または頭に合わせて、人形操作の動作を受け取ることができる。センサを頭に配置して、人形操作の動作を受け取ることもできる。例えば、オペレータ101はセンサを有するヘッドバンドをかぶって、頭の動きを検出することができる。さらに他の具体例では、ユーザは人形操作の動作を発声コマンドとして、音声認識ソフトウェアと共に動作するマイクロホンに入力する。
【0052】
他の種類のショーは固定ショーである。固定ショーは、1回または連続的に繰り返して再生可能な予め連続動作の列にされた記録である。オペレータ101は単に固定ショーを選択するだけでアニマトロニック・フィギュア108に動きを与えることができ、人形操作命令を与える場合にオペレータ101が行うように、ショーが上演されている間に各動作を入力しなければならないことがない。固定ショーの例は、1963年にディズニーランド(登録商標)で公開された”Enchanted Tiki Room”、及び1964年にNew York world’s fair(ニューヨーク・ワールドフェア)で初公開され、1965年にディズニーランドに移転された”Great Moments with Mr. Lincoln”であることは、当業者にとって明らかである。
【0053】
固定ショーを作り出す異なる方法は少数存在する。一具体例では、固定ショーはユーザが行う一連の人形操作の記録である。他の具体例では、固定ショーは、ユーザがグラフィカル・ユーザ・インタフェース(GUI:Graphical User Interface)によって入力した動作の記録である。他の具体例では、他のソース(発生源)から動作を導出し、例えば記録した発声を分析して口の位置を導出する。他の具体例では、これらの方法の組合せを用いる。一具体例では、固定ショー用の命令をコンピュータ読取可能媒体上に記憶する。
【0054】
一具体例では、ユーザが、事前記録されている選択した固定ショーの動作に従ってアニマトロニック・フィギュア108に動きを与えることをアニマトロニックシステム100に命令するボタン(図示せず)によって、固定ショーの選択を入力する。各ボタンが異なる固定ショーの選択を表わす複数のボタンを設けることができる。換言すれば、オペレータ101は多様な固定ショーの選択肢を持ち、これらから選択することができる。固定ショーの選択肢の各々が、一組の事前記録された動作に関連する。オペレータ101が固定ショーの選択を行うと、アニマトロニックシステム100は、この固定ショーの選択に関連する事前記録された一組の動作を実行する。本質的には、オペレータ101は、固定ショーの選択を行うために、1つのコマンドをアニマトロニックシステム100に与えるだけで済む。アニマトロニックシステム100は、アニマトロニック・フィギュア108に命令して、オペレータ101が行った固定ショーの選択に関連する命令を実行させる。
【0055】
他の具体例では、ユーザが固定ショーの選択を、タッチスクリーン・ディスプレイで入力する。他の具体例では、ユーザが固定ショーの選択をダイヤルで入力する。他の具体例では、ユーザが固定ショーの選択を、発声コマンドによって、音声認識ソフトウェアと共に動作するマイクロホンに入力する。
【0056】
アニマトロニクスシステム100は、アニマトロニック・フィギュア108を固定ショー及び人形操作のショーに同時に従って動作させる能力をユーザに提供する。固定ショーが1つのアクチュエータに命令を与える間に人形操作の列が他のアクチュエータに命令を与える場合には、両方の命令を同時に実行して、2つの異なる身体部分が同時に動くように見せる。
【0057】
固定ショーが人形操作のショーと同じアクチュエータに命令を与える場合には、合成動作を計算する。合成動作は、合成動作が生き物のように見えるように計算する。例えば、固定ショーがクシャミの動作であり、人形操作の動作が頭を前向きに動かす動作である場合には、固定ショー命令と人形操作の動作との単純な重ね合わせが、人形操作の命令のみを与えた場合よりも頭を前向きに傾ける。例えば、笑いを演じる際に尾が振れる振幅を増加させることができる。他の具体例では、各要素動作を変化させることによって合成動作を形成する。例えば、元気のいい動きを演じる際には、呼吸動作の頻度を増加させる。この組合せは、クシャミの例では、頭の前向きの動きの間にクシャミが出る場合に頭の動きが誇張される生き物の動きに匹敵する。
【0058】
従って、この合成動作は、生き物のように見えるにしては動作が誇張され過ぎて見えることがある。クシャミの例では、前向きの動きとクシャミの組合せの間に、生き物のように見えるにしては頭が前向きに動き過ぎることがある。この動作を修正するために、合成動作をクリップ(制限)する。クリッピング(動作制限)とは、所定限界内に入るように値を低減することを称する。一具体例では、アニマトロニック・フィギュア108の合成動作の軌跡をクリップすることができる。換言すれば、クシャミの例における頭の合成動作の前向きの軌跡を短縮して、頭が前向きに動くことのできる距離の所定限界に合わせる。この所定限界の例は、アニマトロニック・フィギュア108の頭を地面に触れないように止めることである。これに加えて、クリッピングは、アニマトロニック・フィギュア108の動作を実行させるアクチュエータの限界範囲が守られることを保証する。例えば、オペレータ101が、アニマトロニック・フィギュア108の頭を後ろ向きに動かし過ぎる人形操作命令を与えた場合に、ハードストップ(ハードウェアによる停止)に当たる。ハードストップとは、アクチュエータが、ロボットの動きを制限する物理的な停止端または障壁に当たることであることは、当業者にとって明らかである。ハードストップに当たることによって、広範な問題が生じ得る。例えば、ロボティクス・フィギュアを物理的に損傷させるのに十分な力でハードストップに当たることがあり得る。さらに、影響を受けたアクチュエータの動きに依存する他のアクチュエータにも故障が生じ得る。本質的に、ハードストップに当たることは、アニマトロニクス・フィギュア108の完全な故障に至る可能性がある。クリッピングは、ハードストップに達することを防止し、これにより、故障の可能性を低減する。一具体例では、クリッピングモジュールが、アニマトロニクス・フィギュア108の第2現在位置とアニマトロニクス・フィギュア108の第1現在位置との差が位置のクリッピング限界に達したか否かを判定する。
【0059】
一具体例では、アニマトロニック・フィギュア108の合成動作の速度をクリップすることができる。換言すれば、アニマトロニクス・フィギュア108の身体部分が動く速度を低下させて所定限界内に入れることができる。例えば、クシャミの例では、所定限界を1秒当たり100度に設定して、頭の斜めの動きが潜在的に危険な速度を超えないことを保証することができる。これに加えて、クリッピングは構造的な制限に達することを防止する。例えば、モータは、モータが生み出す速度の限界を有する。アニマトロニクス・フィギュア108がこの速度限界に達するかこの限界を超えようとするならば、モータは単に故障し得る。他の具体例では、クリッピングモジュールが、速度のクリッピング限界に達したか否かを判定する。さらに他の具体例では、クリッピングモジュールが、位置のクリッピング限界及び速度のクリッピング限界に達したか否かを判定する。
【0060】
さらに他の具体例では、アニマトロニクス・フィギュア108の加速度をクリップすることができる。換言すれば、身体部分が動く速度の変化を、所定限界内に入るように低減する。要求されるモータトルクは加速度に比例するので、このことを用いて、アクチュエータが要求するトルクを効果的に制限すると共に、滑らかで生き物のような動きを行うことができる。端に許容範囲を制限することによってジョイント(継手)の動きの範囲をクリップすることは、ジョイントがこの範囲の端に達した際にジョイントの急停止を生じさせる。この急停止は、所定の加速度限界を超える加速度を生じさせ得る。ジョイントが位置及び加速度の両方について同時にクリッピングを受ける際には、ジョイントがこの位置クリッピング限界に近づくと共に位置クリッピング限界の方向の速度を低下させる必要がある。この位置クリッピング限界で低下する速度限界は、位置クリッピングが発生した際に加速度限界が尊重されることを保証する。さらに他の具体例では、クリッピングモジュールが、加速度クリッピング限界に達したか否かを判定する。クリッピングモジュールは、位置、速度、及び/または加速度の任意の組合せがクリップされていることを判定することもできる。
【0061】
一具体例では、受信モジュール102が、アニマトロニクス・フィギュア108を制御するためのオペレータ入力コマンドを受信する。一具体例では、受信モジュール102が、ジョイスティックのようなハードウェア装置からユーザ入力を受信するソフトウェアプログラムである。ジョイスティックは、キャラクタ(登場人物)の動きを調整するための制御入力を送信する。これらの制御入力は、例えば、キャラクタの人形操作の動作を調整するためのアナログ及び/またはディジタル信号である。他の具体例では、受信モジュール102は、キャラクタの動きを調整するためのアナログ及び/またはディジタル信号のような制御入力を送信するキーボードのようなハードウェア装置からユーザ入力を受信するソフトウェアプログラムである。他の具体例では、オペレータがボタンを押して制御入力を与える。他の具体例では、オペレータがダイヤルを回して制御信号をアニマトロニクス・フィギュアに供給する。この制御信号は変換ソフトウェアモジュール104に入力される。
【0062】
例えば、アミューズメントパーク(遊園地)のライドのオペレータがジョイスティックを回してアニマトロニクス・フィギュア108の頭と首を制御して、パークの見物客を楽しませる。他の例では、アニマトロニクス・フィギュア108のオペレータがキーボード・コマンドを入力してアニマトロニクス・フィギュア108の脚を動かして、アニマトロニクス・フィギュア108の進む向きを前向きから右回りに変えて、パークのお客様に衝突するコースを避ける。キーボードの使用は、アニマトロニクス・フィギュア108をデバッグするためのデバッグ環境において特に有用である。ユーザは一度に1つのコマンドをキーボードに入力し、個々の動きを分析することによって、アニマトロニクス・フィギュア108をデバッグすることができる。同様に、ユーザは複数のコマンドをキーボードによって与えて、個々の動きを分析することもできる。
【0063】
変換ソフトウェアモジュール104は、固定ショーの選択に関連する固定ショー命令を少なくとも1つの物理的動作命令に変換する。さらに、変換ソフトウェアモジュール104は、人形操作命令を少なくとも1つの物理的動作命令に変換することもできる。まず、ソフトウェアモジュール104は、固定ショーの命令に関連する固定ショー命令を評価する。一具体例では、コンピュータプログラムをメモリデバイスからロードする。
【0064】
一具体例では、受信モジュール102、変換ソフトウェアモジュール104、及び動作ソフトウェアモジュール106をすべて異なるコンピュータ上に格納する。一具体例では、受信モジュール102をコンピュータ上に格納する必要がない。むしろ、受信モジュール102は単純な入力装置とすることができる。他の具体例では、受信モジュール102及び変換ソフトウェアモジュール104を同じコンピュータ上に格納するが、このコンピュータは動作ソフトウェアモジュール106が格納されているコンピュータとは異なる。さらに他の具体例では、受信モジュール102及び動作ソフトウェアモジュール106を同じコンピュータ上に格納するが、このコンピュータは変換ソフトウェアモジュール104が格納されているコンピュータとは異なる。他の具体例では、変換ソフトウェアモジュール104及び動作ソフトウェアモジュール106を同じコンピュータ上に格納するが、このコンピュータは受信モジュール102が格納されているコンピュータとは異なる。1つのコンピュータソフトウェアモジュールがこれらのモジュールの全部または一部の機能を実行可能であることも、当業者にとって明らかである。例えば、1つのソフトウェアモジュールが、受信モジュール及び変換ソフトウェアモジュールの機能を実行することができる。
【0065】
図2に、アニマトロニクス・フィギュア108の動作を生成するプロセス200を示す。処理ブロック210では、ユーザは人形操作命令をアニマトロニクスシステム100に与えて、人形操作の動作を実行させる。処理ブロック220では、ユーザは少なくとも1つの固定ショー命令に関連する固定ショーの選択をアニマトロニクスシステム100に与えて、固定ショーの動作を実行させる。一例では、固定ショー命令は、アニマトロニクス・フィギュア108をうならせるための制御信号を含む。
【0066】
処理ブロック230では、人形操作命令と固定ショー命令との組合せから組合せ命令が生じる。他の具体例では、人形操作命令と固定ショー命令との重ね合わせから組合せ命令が生じる。処理ブロック240では、アニマトロニクスシステム100がアニマトロニクス・フィギュア108に命令して、組合せ命令に従って動作させる。他の具体例では、人形操作命令を固定ショー命令によって変化させることにより組合せ命令が生じる。
【0067】
例えば、オペレータがキーボード入力によって、アニマトロニクス・キャラクタの脚を挙げる人形操作命令を与える。一具体例では、人形操作入力をコンピュータ内のメモリデバイスに記憶する。その後に、オペレータはアニマトロニクス・キャラクタに動作的に接続されたボタンを押して、このキャラクタがうなる少なくとも1つの固定ショー命令に関連する固定ショーの選択を要求する。コンピュータ内のプロセッサは、アニマトロニクス・キャラクタ108の脚を挙げる命令をうなる命令と重ね合わせる。そしてアニマトロニクスシステム100は、アニマトロニクス・フィギュア108に脚を挙げさせてうならせる。
【0068】
図3Aに、アルゴリズムに従ってアニマトロニクス・フィギュア108の動作を決めるアルゴリズム構成300を示す。換言すれば、アニマトロニクスシステム100は種々の条件を分析して、アルゴリズムを実行すべきか否か、及び/またはどのような動作を生成すべきかを決める。これらの条件は、環境的な発生、人形操作命令から生じる動作、またはショー選択から生じる動作とすることができる。条件のうちの1つが満たされれば、アルゴリズムは、アニマトロニクス・フィギュア108が生成すべき動作の決定または修正をリアルタイムで実行する。
【0069】
一具体例では、アルゴリズム応答モジュール308が、ある条件が満たされたか否かを判定してアルゴリズムを実行することができる。一具体例では、アルゴリズム応答モジュール308が、条件、及び当該条件が満たされた場合に実行すべきアルゴリズムを記憶しているデータベースにアクセスする。他の具体例では、このデータベースが、条件、及び当該条件が満たされた場合に実行すべき命令を記憶することができる。他の具体例では、アルゴリズム応答モジュール308が結果的な動きの向きを決定する。他の具体例では、アルゴリズム応答モジュール308が結果的な動きの大きさを決定する。他の具体例では、アルゴリズム応答モジュール308が結果的な動きの持続時間を決定する。他の具体例では、アルゴリズム応答モジュール308が、従うべき一連の動作、あるいは個々の動作を反復すべき回数を決定する。
【0070】
一具体例では、クロック302がアルゴリズム応答モジュール308に時刻を提供する。上記条件の1つは、アニマトロニクス・フィギュア108が特定時刻に、あるいは特定周波数で尾を振ることとすることができる。例えば、アニマトロニクス・フィギュア108が毎日午後1時に尾を振るようにアルゴリズムを実行することができる。アルゴリズム応答モジュール308は、この時刻をクロック302から受信して、アニマトロニクス・フィギュアの尾を振るべき時刻条件が午後1時に満たされることを特定する。他の具体例では、尾を1ヘルツで振るように設定することができる。アルゴリズム応答モジュール308は時刻をクロック302から受信し、この時刻を用いて、上記1ヘルツで尾を振る動作に基づいて現在位置を特定することができる。そしてアルゴリズム応答モジュール308は、アニマトロニクス・フィギュア108が尾を振るための命令及びこれに関連するデータを動作ソフトウェアモジュール106に提供する。一具体例では、アルゴリズム応答モジュール308が、位置、速度、及び加速度の計算を実行して、データを動作ソフトウェアモジュール106に提供する。他の具体例では、動作ソフトウェアモジュール106が位置、速度、及び加速度の計算を実行する。さらに他の具体例では、アルゴリズム応答モジュール308が動作ソフトウェアモジュール106と同じモジュールである。
【0071】
他の具体例では、アニマトロニクス・フィギュア108の呼吸動作を計算するアルゴリズムを設ける。換言すれば、呼吸音を発生してアニマトロニクス・フィギュア108の胸を膨らませたりへこませたりする。この呼吸動作は、アニマトロニクス応答モジュール308へのクロック302の入力に基づくものとすることができる。
【0072】
他の具体例では、乱数発生器304がアルゴリズム応答モジュール308への入力を供給する。乱数発生器304から乱数を受信して、ランダムな時刻に動作を実行するようアニマトロニクス・フィギュア108に命令するように、アルゴリズムを設定することができる。例えば、ランダムな時刻にまばたきするようアニマトロニクス・フィギュア108に命令することができる。まばたきは自然なランダムな動きになるので、乱数発生器304のユーザは、アニマトロニクス・フィギュア108の動作をより生き物のように見せることができる。他の具体例では、乱数発生器304がランダムな振幅の動きを提供することができる。他の具体例では、乱数発生器304がランダムな方向の動きを提供することができる。他の具体例では、ランダムな動きの成分を提供することができる。ランダムな成分の例は、ランダムに変化する周波数、振幅、及びオフセット(ずれ)で発生する呼吸動作である。
【0073】
他の具体例では、センサ306がデータをアルゴリズム応答モジュール308に提供する。一具体例では、このデータが環境データである。例えば、この環境データは、停止端に向かって一方向に移動中のアニマトロニクス・フィギュア108の身体部分の向きを含むことができる。アニマトロニクス・フィギュア108が、その頭と首を回し、従って横の停止端付近にある間にまさにクシャミしそうな場合には、クシャミの動作が首をさらに回して動作のクリッピングが生じ得る。この場合には、クシャミが頭を停止端から離すように、即ち首の動作範囲の中心に向けて回して、クリッピングが生じないようにする事が好ましい。この例では、クシャミの間に頭が回る向き及び振幅は、首の位置センサに対するアルゴリズム的な応答である。
【0074】
検出される条件は、動きが人形操作命令から生じたものか固定ショーの選択から生じたものかにかかわらず、あらゆる身体部分の動きの発生とすることができる。一具体例では、第1身体部分の動作がアルゴリズムを起動して、その付近にある第2身体部分の動作を生成するように、条件を確立することができる。アルゴリズムは、第1の動作と第2の動作とが調和して生き物のような動きに見えるように、第2の動作を計算する。例えば、上記条件は、アニマトロニクス・フィギュア108の頭の下向きの動きとすることができる。そしてアルゴリズム応答モジュール308は動作を計算し、この動作は、アニマトロニクス・フィギュア108の頭の動きと調和するように、アニマトロニクス・フィギュア108を前向きに傾けて少し腰をかがめさせる。
【0075】
図3Bにアルゴリズム構成300の一具体例を示し、ここではセンサ306が検出した条件をアルゴリズム応答モジュール308に提供する。一具体例では、センサ306がアニマトロニクス・フィギュア108から条件を受信する。センサ306は検出した条件をアルゴリズム応答モジュール308に提供し、アルゴリズム応答モジュール308はアルゴリズムに従って動作を計算する。そしてこの動作は変換ソフトウェアモジュールに提供される。これに加えて、受信モジュール102がユーザ101からの入力を受信する。変換モジュール104は、ユーザ入力の動作を変換し、この動作をアルゴリズム的に算出した応答と組み合わせて、少なくとも1つの物理的動作命令を生成する。そして動作ソフトウェアモジュール106はアニマトロニクス・フィギュア108に命令して、この物理的動作命令に従った動作をさせる。一具体例では、動作ソフトウェアモジュール106は、変換ソフトウェアモジュール104の機能も実行する。
【0076】
一具体例では、変換ソフトウェアモジュール104が、ユーザ入力の動作をアルゴリズム的に計算した動作と組み合わせることによって合成動作を求める。アニマトロニクス・フィギュア108はこの合成動作を、ユーザ入力の動作とアルゴリズム的に計算した動作の両方を調和させて生き物のように実行する。
【0077】
図3Cにアルゴリズム構成300の他の具体例を示し、ここでは受信モジュール102がセンサ306から検出した条件を受信し、かつオペレータ101からユーザ入力の動作を受信する。受信モジュール102は、命令の種類を決定し、即ち、命令を受信して適切なモジュールに分配する。例えば、受信モジュール102がユーザ入力命令を受信する際には、受信モジュール102はユーザ入力命令を変換ソフトウェアモジュール104に分配する。受信モジュール102が検出した条件を受信する場合には、受信モジュール102は検出した条件をアルゴリズム応答モジュール308に提供する。アルゴリズム応答モジュール308は少なくとも1つの動作を計算し、この動作は変換ソフトウェアモジュール104に送信される。一具体例では、動きソフトウェアモジュール106は、変換ソフトウェアモジュール104及び/またはアルゴリズム応答モジュール308の機能も実行する。従って、受信モジュール102はすべての命令を1つのモジュールに送信することができる。
【0078】
図4に、ユーザ入力命令をアルゴリズム的に決定した命令と組み合わせるプロセス400を示す。処理ブロック402では、ユーザ入力命令を受信する。一具体例では、受信モジュール102においてユーザ入力命令をオペレータ101から受信する。処理ブロック404では、センサ306から刺激を受信する。この刺激は、あらゆる環境条件とすることができる。処理ブロック406では、この刺激はアルゴリズムへの入力として供給される。一具体例では、刺激はアルゴリズム応答モジュール308に供給される。処理ブロック408では、アルゴリズムを実行して、アニマトロニクス・フィギュア108のアルゴリズム的な動作を決定する。一具体例では、アルゴリズム応答モジュール308がアルゴリズムを実行して、アルゴリズム的な動作を決定する。処理ブロック410では、ユーザ入力の動作をアルゴリズム的に決定した動作と組み合わせる。一具体例では、動作ソフトウェアモジュール106がこの組合せを実行する。この組合せから生じる合成動作は、アニマトロニクス・フィギュア108に調和のとれた生き物のような動きをもたらす。
【0079】
図5に、フィルタ処理を行うアニマトロニクス構成500を示し、ここではアニマトロニクス・フィギュア108が生成する動作がフィルタ(選別)処理される。一具体例では、ユーザ101がユーザ入力の動作を受信モジュール102に提供する。受信モジュール102は、ユーザ入力の動作をフィルタモジュール502に供給する。フィルタモジュール502は、必ずしもユーザ入力ではない動作または動作命令を受信することができる。フィルタモジュール502は、フィルタ処理したコマンドを動作ソフトウェアモジュール106に渡し、動作ソフトウェアモジュール106は、アニマトロニクス・フィギュア108用の物理的動作コマンドを生成する。簡略化した具体例では、フィルタモジュール502をアニマトロニクス・フィギュア108に直接接続することができることは、当業者にとって明らかである。
【0080】
アニマトロニクス・フィギュアの動作は、関連する周波数成分を有する。従って、アニマトロニクス・フィギュア108の単純なフィギュア動作は関連する周波数成分を有し得る。アニマトロニクス・フィギュア108の動きが急速に変化する場合には、周波数成分の少なくとも一部が高周波を含む。アニマトロニクス・フィギュア108の動きがゆっくり変化する場合には、周波数成分の少なくとも一部が低周波を含む。
【0081】
フィルタモジュール502は、種々のフィルタのうちの1つによりユーザ入力の動作をフィルタ処理する。例えば、フィルタモジュール502はユーザ入力の動作を、高周波成分をブロック(阻止)し低周波成分を通過させるローパス(低域通過)フィルタによりフィルタ処理することができる。フィルタ処理モジュール502は、ユーザ入力の動作を、低周波成分をブロックし高周波成分を通過させるハイパス(高域通過)フィルタによりフィルタ処理することもできる。さらに、フィルタ処理モジュール502は、ユーザ入力の動作を、限定範囲の周波数を通過させるバンドパス(帯域通過)フィルタによりフィルタ処理することができる。バンドパスフィルタは、ローパスフィルタとハイパスフィルタの組合せとすることができ、特定の低周波成分及び特定の高周波成分のみを通過させる。フィルタ処理モジュール502が他のフィルタを用いることができることは、当業者にとって明らかである。
【0082】
本質的には、フィルタモジュール502は動作をフィルタ処理して、より生き物のように見えるようにする。例えば、ユーザ101が、アニマトロニクス・フィギュア108の頭を特定方向に動かす命令を入力すると、この頭は通常は、大まかな低周波数の回転動作、並びにオペレータが不用意に加えたあらゆる高周波数の急な動き及びぎこちない動きの両方を反映するように動作する。フィルタモジュール502は頭の動きを、高周波成分をブロックし低周波成分を通過させるようにフィルタ処理する。従って、アニマトロニクス・フィギュア108の頭はより滑らかな動きで動作する。それでもアニマトロニクス・フィギュア108の頭は動作範囲全体にわたって動くことができるが、より滑らかに動く。
【0083】
アニマトロニクス・フィギュア108の動作のフィルタ処理は、生き物のような動作を生成する。生き物が生成する現実世界の動作は、他のものとは異なる周波数で発生する。例えば、大部分の生き物は頭よりも目をより素早く動かす。
【0084】
図6Aに、アニマトロニクス・フィギュア108の頭のフィルタ処理なしの動作用のフィルタのグラフ600を示す。フィルタ処理なしの動作は、周波数成分の異なる部分において一定振幅を有する水平バー602を有する。水平バー602は、ユーザ101の入力にほぼ追従するアニマトロニクス・フィギュア108の動作を表わす。例えば、ユーザ101がジョイスティックを左から右に素早く動かした場合に、アニマトロニクス・フィギュア108の頭は、ジョイスティックの動きに近い動きで動作する。
【0085】
図6Bに、アニマトロニクス・フィギュア108の頭のフィルタ処理した動作用のフィルタのグラフ610を示す。高周波成分の部分はフィルタ処理され、従って低周波成分のみが通過する。曲線620は水平バー602をフィルタ処理して生成される。グラフ610に示すように、曲線620は、低周波部分では、フィルタ処理を全く行わなかった場合に生じる振幅を有する。しかし、高周波部分では振幅が減少する。
【0086】
ローパスフィルタにより、アニマトロニクス・フィギュア108の頭は、ユーザ101によって不用意に与えられる高周波の急な動き及びぎこちなさなしに動作する。結果的な動作は、生き物の頭のような生きた動きをもたらす。
【0087】
図7に、アニマトロニクス・フィルタ構成700を示し、この構成は、ユーザ入力の動作をフィルタ処理し、調和のとれた動作をアルゴリズム的に決定して、アニマトロニクス・フィギュア108の生き物のような動きを生成する。一具体例では、受信モジュール102がユーザ入力命令をユーザ101から受信し、フィルタモジュール502はユーザ入力命令を受信モジュール102から受信する。アルゴリズム応答モジュール308は、クロック302、乱数発生器304、及び/またはセンサ306から条件を受信する。アルゴリズム応答モジュール308はこの条件を利用して、アルゴリズム的に決定される動作をアルゴリズムにより計算する。さらに、アルゴリズム応答モジュール308は、アルゴリズム的に決定される動作をフィルタモジュール502に提供する。
【0088】
フィルタモジュール502は、ユーザ入力の動作に第1フィルタを適用し、アルゴリズム的に決定される動作に第2フィルタを適用する。例えば、生き物は、頭を動かす前に頭が動く向きに目を動かしがちであり、先行動作と称される。フィルタモジュール502はバンドパスフィルタまたはハイパスフィルタをアニマトロニクス・フィギュア108の目に適用して、こうした目の素早い先行動作を生成することができる。さらに、フィルタモジュール502はローパスフィルタを頭に適用して、頭の比較的遅い動きを生成することができる。そしてフィルタモジュール502は、フィルタ処理した目の動作及びフィルタ処理した頭の動作を動作ソフトウェアモジュール106に提供する。動作ソフトウェアモジュール106はアニマトロニクス・フィギュア108に命令して、フィルタ処理した動作を生成させる。
【0089】
図8Aに、アニマトロニクス・フィギュア108の異なる動作用のフィルタを表わすグラフ800を示す。曲線802は、アニマトロニクス・フィギュア108の目の動作用のフィルタを表わす。一具体例では、フィルタモジュール502はバンドパスフィルタを、アニマトロニクス・フィギュア108の目の動作に適用する。曲線802からわかるように、高周波成分の部分及び低周波成分の部分はブロックされている。その結果、残りの中間周波数成分が通過する。
【0090】
さらに、アニマトロニクス・フィギュア108の頭用のローパスフィルタを表わす曲線804を示す。一具体例では、ローパスフィルタをアニマトロニクス・フィギュア108の頭の動作に適用する。ローパスフィルタは高周波成分をブロックし、低周波成分を通過させる。従って、アニマトロニクス・フィギュア108の頭は、アニマトロニクス・フィギュア108の目に比べて比較的遅い動きで動作する。その結果、まず目が、頭の動こうとする向きに動いて、アニマトロニクス・フィギュア108における調和のとれた生き物のような動きを生成する。
【0091】
これに加えて、アニマトロニクス・フィギュア108の首の中央部分の動作にフィルタを適用する。一具体例では、このフィルタは少し低域側のローパスフィルタである。曲線806は首の中央部分用のローパスフィルタを表わす。このローパスフィルタは、首の中央部分の高周波成分を頭よりも大幅にブロックアウト(阻止)する。従って、頭は首の中央部分よりも少し前に少し素早く動いて、頭と首の動きを生き物のように調和させる。
【0092】
アニマトロニクス・フィギュア108の首の付け根の動作にもフィルタを適用する。一具体例では、このフィルタはさらに低域側のローパスフィルタである。曲線808は首の付け根のローパスフィルタを表わす。このローパスフィルタは、首の付け根の高周波成分を首の中央部分よりも大幅にブロックアウトする。従って、首の中央部分は首の付け根よりも少し前に少し素早く動いて、頭と首の動きを生き物のように調和させる。
【0093】
図8Bに、図8Aに示す各フィルタを用いてフィルタ処理したアニマトロニクス・フィギュア108の各身体部分の回転動作を表わすグラフ820を示す。ステップ入力822は、ユーザ101によって入力されフィルタ処理されていない理想化した究極の動作を表わす。曲線824はフィルタ処理した目の動作を表わす。さらに、曲線826はフィルタ処理した頭の動作を表わし、曲線828はフィルタ処理した首中央の動作を表わし、そして曲線830は首の付け根の動作を表わす。曲線824は回転において非常に素早いジャンプを有する、というのは、目は他の身体部分がその後に動く向きに素早く動くからである。従って、頭、首中央、及び首の付け根はよりゆるやかに動作する。
【0094】
図9Aに、ユーザ入力コマンド、及びユーザ入力コマンドの発生によって決まるコマンドに基づいてアニマトロニクス・フィギュア108の動作をフィルタ処理するプロセス900を示す。処理ブロック902では、オペレータ101から第1コマンドを受信する。処理ブロック904では、第1コマンドの受信の発生に基づいて第2コマンドを決定する。一具体例では、アルゴリズム応答モジュール308が、条件の発生に基づいて動作をアルゴリズム的に決定する。例えば、ユーザ101によるアニマトロニクス・フィギュア108の頭を動かすコマンドの入力の発生時に、アルゴリズム応答モジュール308は、アニマトロニクス・フィギュア108がその目を動かすコマンドを与えることができる。一具体例では、目はユーザが入力した動きの向きに動く。
【0095】
処理ブロック906では、第1動作及び第2動作を決定する。これらの動作はそれぞれのコマンドから決まる。一具体例では、変換ソフトウェアモジュール104がコマンドを動作に変換する。
【0096】
処理ブロック908では、上記第1動作及び第2動作をフィルタ処理して調和のとれた生き物のような動きを生成する。従って、処理ブロック910では、上記第1及び第2動作をアニマトロニクス・フィギュア108に与える。
【0097】
図9Bに、ユーザ入力コマンド及び刺激から決まるコマンドに基づいてアニマトロニクス・フィギュア108の動作をフィルタ処理するプロセス920を示す。処理ブロック922では、オペレータ101から第1コマンドを受信する。従って、処理ブロック924では、センサ306から刺激を受信する。処理ブロック926では、受信した刺激に基づいて第2コマンドを決定する。一具体例では、アルゴリズム応答モジュール308が、刺激の発生に基づいて動作をアルゴリズム的に決定する。例えば、アルゴリズム応答モジュール308は、アニマトロニクス・フィギュア108がクロック302の時刻に応じてその胸を呼吸動作のように動かすコマンドを供給することができる。
【0098】
処理ブロック928では、第1動作及び第2動作を決定する。これらの動作はそれぞれのコマンドから決まる。一具体例では、変換ソフトウェアモジュール104がコマンドを動作に変換する。
【0099】
処理ブロック930では、上記第1動作及び第2動作をフィルタ処理して、調和のとれた生き物のような動作を生成する。従って、処理ブロック932では、第1及び第2動作をアニマトロニクス・フィギュア108に与える。
【0100】
一具体例では、リアルタイムで評価されるスクリプト言語を用いてショー要素を記述する。ショー要素は、小さい動き及びジェスチャーから歩行のような複雑な相互作用的な動きまでにわたり得る演技要素である。これらのショー要素は、アニマトロニクス・フィギュア108の動作の集合、並びに音響、及び照明及び映像のような他のコンピュータ制御の事象を含む。ショー要素は一般に、スクリプト言語を用いて、比較的単純なショー要素を組み合わせて複雑な生き物のような動作を生成することによって構成される。
【0101】
一具体例では、スクリプト言語及びその実行環境を物理的連続動作に特化し、厳密なリアルタイムの枠組内で実行する。物理的連続動作への特化は、共通の連続動作タスクを単純かつ効率的にする。リアルタイムの枠組は、結果的な動作がぎこちなくなったり一時停止したりしないことを保証し、一貫した制御及び安全性を維持する。
【0102】
滑らかな動作は、物理的に実現される連続動作にとって有用である。その下にあるシステムは、要素動作、合成動作、及び変換された動作の明示的な調和を維持し、滑らかな
軌跡の自動的な生成を可能にする。一具体例では、簡単に使用できると共にC2連続を維持するキーフレーム連続動作への取り組みを用いる。C2連続によれば、軌跡及びその最初2つの(1次及び2次)導関数が連続であることを意味する。このことは、アニマトロニクス・フィギュア108が1つの位置から他の位置へ不連続的にジャンプしないことだけでなく、その速度及び加速度が限定され、かつ滑らかに変化することも保証する。限定されかつ滑らかに変化する速度及び加速度は、モータトルクも限定しかつ滑らかに変化させる。この情報の維持は、要素動作を特定の一般化された変換によって射影することを可能にし、変換空間の組合せにおいて同時に記述される滑らかな複数軌跡を生成することを可能にする。
【0103】
図10に、ソフトウェアモジュールの階層システム1000を示す。一具体例では、階層システム1000はアニマトロニクス・フィギュア108を制御する。オペレータ・インタフェース1002は、オペレータ101がシステムを制御することを可能にする。さらに、軌跡プランナー(計画装置)1004は、アニマトロニクス・フィギュア108のモータによって進むべき経路を決定する。これに加えて、サーボループ1006は、他のアクチュエータのモータに指示して所望の動作を実行させる。サーボループ1006は、モータ及び他のアクチュエータも監視して、モータ及び他のアクチュエータが指定した限界内で動作していることを確実にする。複数の低レベルのハードウェア・ドライバ(駆動装置)1008は、アニマトロニクス・フィギュア108のハードウェア1010と直接通信する。
【0104】
図11に、軌跡プランナー1004の詳細図を示す。軌跡プランナー1004はアニマトロニクス・フィギュア108の動作を計画し実現させる。上述したスクリプト要素を、アニマトロニクス・フィギュア108のアクチュエータに指示することによって実現して、特定の軌跡に追従させる。これらの軌跡は必ずしも固定または所定のものではないが、一般に、外部入力及びオペレータの制御に基づいて変化する。このことは、お客様との自律的なやり取り、環境への応答、及びスクリプト要素のトリガ起動を可能にする。一具体例では、連続的に進化する軌跡を適時かつ滑らかに生成する。
【0105】
一具体例では、軌跡を演算オブジェクトとして、実際にはコンピュータプログラムとして実現し、これらのプログラムは精密なリアルタイム・クロック上で評価される。これらのプログラムは作成され、インストールされ、そして結果的な動作が完了するか停止されるまで実行される。軌跡が進む間に、軌跡を連続的に評価して、アニマトロニクス・フィギュア108の次の目標位置を決定する。
【0106】
軌跡は厳密に周期的なサイクルで評価される。この評価が一時停止するか、あるいは指定時刻に値を戻さないことは許容されない。こうした一時停止はシステムの故障と区別できず、そして指定時刻後に値を戻さないことは滑らかでない動きを生じさせる。従って、計算にもたつきを生じさせ得る演算の要素は必然的に取り除かれる。
【0107】
評価された言語は、計算を実行するために必要なリソース(資源)を獲得し解放することによって動的な挙動を達成する。最も一般的なリソースはコンピュータメモリであるが、ハードウェア及び他の装置も含む。リソースの獲得は、不定量の時間にわたることができる。従って、スクリプト言語が計算を実行するために用いる方法は、適時の結果を保証することができず、従ってここでは許容されない。
【0108】
軌跡プランナー1004は、軌跡追従兼実行モジュール1102を有する。従って、軌跡追従兼実行モジュール1102は、軌跡を評価して目標位置を決定するリアルタイム・タスクを処理する。軌跡追従兼実行モジュール1102は周期的に起動し、有効な軌跡を評価し、そして目標位置を戻す。
【0109】
これに加えて、軌跡プランナー1004は軌跡作成兼管理モジュール1104を有する。従って、軌跡作成兼管理モジュール1104は非リアルタイムの必要事項、特に軌跡オブジェクトの作成及びリソースの管理を取り扱う。軌跡が完成すると、軌跡作成兼管理モジュール1104及びそのすべてのリソースがマネージャ(管理プログラム)に返却されてクリーンアップ(消去)され、即ち、メモリ及び装置が解放されてコンピュータに戻され、他で使用される。非リアルタイム管理のスレッド、共通のメモリ空間を共用し管理する協働プログラムを有するこの方法は、リソース管理用に他で一般的に用いられる方法とは異なり、こうした方法より強力である。
【0110】
軌跡オブジェクトは、「原子的」なものとすることも合成的なものとすることもできる。「原子的」な軌跡は、他の軌跡とは独立して目標位置を計算することができる。一具体例では、「原子的」な軌跡は時刻または外部入力を用いる。合成軌跡は、成分軌跡の出力に基づいてその目標位置を計算する。
【0111】
図12に、単純な合成軌跡の例を示す。「原子的」な正弦波1202とエンベロープ(包絡線)軌跡1204とを掛け合わせ、そして「原子的」なジョイスティック入力1206をフィルタ処理して加算する。この合成軌跡オブジェクトは、その結果を単一値、即ち次の目標位置として出力する。
【0112】
本実施例における軌跡オブジェクトは、一般化された演算環境を提供する。図12の例は乗算1208及び加算1212のような算術演算子、「原子的」な正弦波1202のような基本関数、エンベロープ軌跡1204のようなキーフレームデータ、及びフィルタ1210使用を示す。
【0113】
これに加えて、他の軌跡は、列軌跡、合成軌跡、及び遷移軌跡とすることができ、論理演算子を実行することができ、そして開始、停止、及び中断中の軌跡を取り扱うことができる。軌跡は複数の出力を生成することができ、そして変換、ループ化、及びテストすることができる。最後に、軌跡は、内部演算環境を規定することができ、この環境では内部変数、内部関数、及び内部軌跡を定義することができる。
【0114】
キーフレームベースの曲線は、連続動作、コンピュータ支援設計、その他にとって一般的かつ重要なツールである。キーフレーム連続動作に用いる標準的な方法は、強力かつ簡単に使用できるが、物理的連続動作が要求する高度な数学的滑らかさ、即ち、アニマトロニクス・フィギュアまたはロボットの生き物のような動きを欠いている。一具体例では、使用する「原子的」なキーフレーム軌跡はC2連続である。C2連続とは、位置及びその最初2つ(1次及び2次)の導関数、即ち速度及び加速度が連続かつ滑らかであることを意味する。
【0115】
一具体例では、滑らかなキーフレームベースの曲線を実現する。従って、曲線はC2連続である。さらに、データを補間し、即ち、曲線は単なる近似ではなく、すべての指定データを通る。これに加えて、キーフレームは不均一な間隔にすることができる。換言すれば、キーフレームの隣接対間の時間を異ならせることができる。個々のキーフレームは位置データのみ、位置及び速度データ、あるいは位置、速度及び加速度データを含むことができ、これらのデータはすべて補間することができる。異なる種類のキーフレーム、例えば位置、位置/速度、または位置/速度/加速度のキーフレームを任意に混合することができる。
【0116】
キーフレーム連続動作の標準的な方法は、ベジェ(Bezier)曲線またはエルミートスプラインの一般クラスをしばしば用い、これらの両者はその標準形式ではC1連続であるに過ぎない。より高次のベジェ及びエルミートスプラインも存在するが、簡単な曲線編集にはあまり適さない。曲線編集用に最も一般的なエルミートスプラインはキャットマル−ロム(Catmul-Rom)法であり、隣接点を用いて、各点において追加的に必要な制限、即ち速度を計算する。追加的な制御を加えることもでき、最も一般的な例は恐らく、AUTODESK(登録商標)の3D-STUDIO MAX(登録商標)及びNETTEK(登録商標)のLIGHTWAVE(登録商標)において見られるコハネク−バーテルズ(Kochanek-Bartels)スプラインである。
【0117】
図13に、複数のキーフレームによって記述される曲線1300を示す。一具体例では、曲線はN個のキーフレームk1, k2,...knの集合で記述される。各キーフレームkiは時刻及び位置{ti, xi}を含み、そして随意的に速度{ti, xi, vi}または速度及び加速度{ti, xi, vi, ai}を含むことができる。速度を指定しないキーフレームについては、キーフレームを次の方法で計算する。最初または最後のキーフレーム(k1またはkN)の場合には、未指定の速度を0に設定し、即ちvi=0とする。他の場合には、隣接するキーフレームを用いて、キャットマル−ロム法で用いたのと同様の方法で速度を計算する。キャットマル−ロム法は、単に隣接点を通る線を引くことによって、図13に示すように、次式のように速度を計算する:
【数1】
キーフレーム間の時間が十分に等しくなければ、キャットマル−ロム法は良好に実行することができず、時として高い加速度を有する曲線を必要とする。
【0118】
図14に、曲線1400が複数のキーフレームによって記述される他の具体例を示す。隣接する2つの速度の加重平均を実現する。この加重平均は次式によって記述される:
【数2】
ここに、dtB=ti+1−ti
【数3】
である。
【0119】
dtA=dtBである際には、viの値はキャットマル−ロム値まで減少する。加速度を指定しないあらゆるキーフレームについて、次の計算を実行する。最初または最後のキーフレーム(k1またはkN)の場合には、未指定の加速度を0に設定し、即ちai=0とする。残りのキーフレームの加速度が未指定である場合には、この加速度は、当該キーフレームから左に向かう曲線の加速度と当該キーフレームから右に向かう曲線の加速度とを平均し、これによりこれらの曲線を補間して何らかのデータが存在するようにする。この計算は次式で表わされる:
【数4】
この要素加速度aA及びaBは次の方法で計算する。前のキーフレームki-1は加速度が指定されているか、あるいは最初のキーフレーム(即ちai-1=ai=0)である場合には、4次多項式fa(t)=a0+a1t+a2t2+a3t3+a4t4を、{ti-1, xi-1, vi-1, ai-1}及び{ti, xi, vi}を通るように解き、そしてtiにおける結果的な加速度を次式のように計算する:
【数5】
その他の場合、即ち、前のキーフレームki-1は加速度が指定されておらず、かつ最初のキーフレームでない場合には、3次多項式fa(t)=a0+a1t+a2t2+a3t3を、{ti-1, xi-1, vi-1}及び{ti, xi, vi}を通るように解き、そしてtiにおける結果的な加速度を次式のように計算する:
【数6】
後続するキーフレームki+1は加速度が指定されているか、あるいは最後のキーフレーム(即ちai+1=aN=0)である場合には、4次多項式fb(t)=b0+b1t+b2t2+b3t3+b4t4を、{ti, xi, vi}及び{ti+1, xi+1, vi+1, ai+1}を通るように解き、そしてtiにおける結果的な加速度を次式のように計算する:
【数7】
その他の場合、即ち、後続するキーフレームki+1は加速度が指定されておらず、かつ最後のキーフレームでない場合には、3次多項式fb(t)=b0+b1t+b2t2+b3t3を、{ti, xi, vi}及び{ti+1, xi+1, vi+1}を通るように解き、そしてtiにおける結果的な加速度を次式のように計算する:
【数8】
【0120】
この時点では、各キーフレームは位置、速度、及び加速度を有し、これらは指定されたものであるか、あるいは隣接するキーフレームの値をもとに計算されたものである。ここで、完全に値を与えられたこれらのキーフレームを用いて、結果的な曲線を計算する。
【0121】
図15に、キーフレームの列を有するグラフ1500を示す。4つのキーフレームのすべてが位置のみ指定されているが、最初及び最後のキーフレームはデフォルトの速度0及び加速度0を有する。一対のキーフレームkiとki+1との間では、曲線は、{ti, xi, vi, ai}及び{ti+1, xi+1, vi+1, ai+1}を通る5次多項式f(τ)=c0+c1τ+c2τ2+c3τ3+c4τ4+c5τ5の値に規定され、ここに:
τ=t−ti
dt=ti+1−ti
c0=xi
c1=vi
c2=ai
【数9】
である。
【0122】
図16Aに、データを補間した他のグラフ1600を示す。グラフ1600は、標準的なキャットマル−ロム・キーフレーム・スプライン、並びに加速度平滑化あり及びなしで平滑化したキーフレームを示す。
【0123】
図16Bに、上記に対応する速度のグラフ1610を示す。図16Cに、上記に対応する加速度のグラフ1620を示す。さらに、時刻t=1及びt=2におけるキーフレーム点では加速度の不連続が存在する。
【0124】
この方法の追加的な利点は、加速度の平均化は一般に最大加速度を低減し、これにより、ロボットが動作を実現するために要求される結果的なトルクを低減する
【0125】
「原子的」及び合成的な軌跡オブジェクトが滑らかな動きを生成すべきだけでなく、曲線間の遷移、中断される曲線、及び予期しない位置から始まる曲線も、滑らかな動きを生成しなければならない。このことは、軌跡の現在の動きを記述するPVA(Position, Velocity, and Acceleration:位置、速度、及び加速度)オブジェクトと称されるソフトウェアオブジェクトを計算し終わることによって行われる。軌跡オブジェクトはPVAを用いて、その動きを初期化し、軌跡オブジェクトが停止または中断する時点をPVAに戻す。これに加えて、PVAオブジェクトを用いて、異なる変換または記述空間内の動きを組み合わせた軌跡を生成することができることが判明している。
【0126】
滑らかな要素軌跡間の遷移は、クロスフェード、即ちフェード自体がC2連続の曲線であるフェード(減衰)を用いて達成される。あらゆるC2連続のS字形曲線を用いることができ、ここでは、このことを次の5次多項式:
f(τ)=3τ(10+τ(6τ−15))
で行い、ここにスケール時間τは0≦τ≦1である。2つの軌跡T1及びT2、並びに遷移関数f(t)がC2連続である場合には、次式の線形結合もC2連続である:
f(αt)T1+(1−f(αt))T2
ここに、αは定数の時間のスケーリング(拡大縮小)係数である。
クロスフェードは、あらゆる軌跡に用いることができる。クロスフェードは、内部軌跡または変換された軌跡を遷移させるために有用であることが多い。このことは、1つの合成動作から異なる合成動作への滑らかな遷移を、直感的ではないことが多いが強力な方法で生じさせる。
【0127】
例として、正弦波的な動作を含む尾の振りを考える。アニマトロニクス・フィギュアが幸せな時には、悲しい時よりも尾を速く振りたいことがある。この例では、尾の動作の周波数は幾分低い値から幾分高い値へと滑らかに遷移する。実際には、固定の正弦波的パターンは、生き物のような動きにしては完全過ぎるように、機械的過ぎるように見えることがある。より生き物のようにする解決法は、低周波数のゆるやかに変化する擬似乱数パターンから高周波数のゆるやかに変化する擬似乱数パターンに遷移させることである。
【0128】
一部の軌跡、最も顕著なものとしてキーフレーム軌跡は、任意の初期位置または初期動作から始まることができる。すべての軌跡オブジェクトは、実行中に、最初に評価される前に初期化される。この初期化は、開始時刻及び開始PVAのような多数のパラメータを設定する。キーフレーム軌跡は、そのように指定されれば、この開始PVAを初期キーフレーム、曲線内の後続するキーフレームとして、あるいはこの軌跡オブジェクトが用いる計算上の要素として用いることができる。従って、予め定められていない動作から始まる軌跡でも、滑らかな軌跡を算出してこれに追従することができる。
【0129】
制御システムの結果的なタスクがロボットのモータを動かすことである間には、変換空間内で動きを記述することがより容易であることが多い。歩行中のアニマトロニクス・フィギュアについては、体を水平、垂直に動かすか回転させる概念的に単純なタスクは一般に、すべての脚のすべてのモータを調和させて動かす必要がある。これらの概念的に単純な体の動きの組合せを迅速に生成することは、各ジョイントの軌跡を直接記述しなければならない場合には非実用的なほど困難になる。歩行の例では、動きは体の動きで記述され、システムはこの動きを生成するために必要な脚のモータの動きを計算する。この例における変換は、体の動きと脚のモータの動きとの間で行われる。
【0130】
変換を合成軌跡及びPVAと組み合わせることによって、この好適な実施例では追加的な能力が実現される。特に強力な能力は、動きを1つの変換空間から他の変換空間内に射影することである。例として、トランペットを拾い上げて演奏するアニマトロニクス・フィギュアを考えれば、このアニマトロニクス・フィギュアは常時その頭及び体を動かしている。トランペットを拾い上げる間のアニマトロニクス・フィギュアの手の位置は、表(テーブル)の静止座標系で最も容易に記述される。トランペットを演奏する間のアニマトロニクス・フィギュアの動きは、フィギュアの唇の動きで最も容易に記述される。1つの変換空間から他の変換空間へ滑らかに遷移すること、並びに1つの空間内で記述される動きを他の空間内で修正または組み合わせることを可能にすることは、1つの空間内で記述される動作を結合動作に射影し、そしてこれらの結合動作を、元の動作が修正されるか他の要素動作と組み合わされる他の変換空間内に射影することによって達成される。
【0131】
他の例はアニマトロニクス恐竜の動作であり、歩行中の足の位置を含む。足が地面についている間には、恐竜の位置は地面の座標で記述され、特に、地面上の足は地面上で移動したり滑ったりするべきではない。一歩の間(歩行ステップ中)に足が空中で振れる間には、恐竜の位置は体の位置で記述される。これら2つの記述または変換空間どうしの間の円滑な遷移を可能にすることによって、足を滑らかに地面から離してもち上げ、規定された歩幅の位置まで前向きに振り、そして滑らかに地面上に戻すことを、足を滑らかに地面から離して地面に着けるために必要な各要素動作を気にしなければならないことなしに、スクリプト言語で求めることができる。
【0132】
軌跡を記述し、迅速に試みる能力は、能力及び柔軟性を大いにもたらす。スクリプト言語は、軌跡オブジェクトを高いレベルで記述し、そしてコンピュータに管理させることを可能にする。コンピュータは、スクリプトを読み込む間あるいは文法解析する間に、にこれらのスクリプトに何らかの最適化を実行することもできる。これらの最適化は、より効率的に評価されるより小さい軌跡オブジェクトを生じさせる。
【0133】
好適な実施例で用いられるスクリプト言語は、軌跡を規定し操作することを可能にするテキストベースの言語である。説明上、前に例示した軌跡用のスクリプトを示す。そのシンタックス(構文)はコンピュータ言語C++を思わせる。
【0134】
図17に、滑らかなキーフレームを記述するために用いられる、図15に示す単純な4点キーフレーム軌跡用のスクリプトの例を示す。この場合には、軌跡は、対となるキーフレーム間に時間をおいて分散されたキーフレーム位置の単なるリストである。”//”の右側の文字列は、コンピュータが無視するコマンド(コメント文)である。結果的な軌跡は3秒間で描かれる。
【0135】
図18に、図12に示す合成軌跡用のスクリプトの例を示す。値”joistick”(ジョイスティック)及び”envelope”(エンベロープ)がまず定義され、そしてこれらの値は最終的な合成軌跡における構成要素として用いられる。さらに、軌跡内の第2キーフレームは位置及び速度の項を共に含む。
【0136】
アニマトロニクスシステム100は、オペレータ101が参加して一部または全部の動作を修正することも完全に置き換え、そしてできれば新たな点においても制御を戻すことができる無制約の環境を扱うあらゆるシステムをカバーすることを意図したものである。アニマトロニクスシステム100は、用意(予め記録)された動作、(一般にセンサ応答で、あるいは計画的に)計算された動作、及び生の(オペレータ制御の)動作を混合し、これらの動作間の切り換えを行い、継ぎ目のない(シームレスな)合成物(アマルガム)を生成する能力を提供する。従って、アニマトロニクスシステム100は種々の異なる構成に応用することができる。例えば、アニマトロニクス・フィギュア108は、外科手術ロボットがある物を見失うか、さもなければ道に迷った状態にある場合に、医者が主導的に指揮する外科手術ロボットとすることができる。医者が制御を取った場合には、結果的な動きは流体のように見える。医者の介入が外科手術ロボットの動作の制御と調和しない場合には、結果的な動きは、患者にとって有害になり得る変化の形で生成され得る。
【0137】
これに加えて、アニマトロニクス・フィギュア108は、自動車、飛行機、スペースシャトル、または列車のような交通手段とすることができる。交通手段における自動パイロット機能は、自動パイロットによる動作からオペレータによる動作へ流体のように移行して、乗り物及びその乗客の安全を保障することを可能にする。アニマトロニクスシステム100は、無視された入力または誤操作も扱うことができる。
【0138】
さらに、アニマトロニクス・フィギュア108は家事用ロボットとすることもでき、所有者は家事用ロボットに種々の仕事をさせることができる。例えば、所有者はロボットに、家事をやらせるのではなく来客に挨拶させることができる。ここでも、動作の移行は生き物のように見える。
【0139】
アニマトロニクス・フィギュア108は、化学、核、または生物的な廃棄物、かけら、あるいは核兵器の降下物を清掃するために用いる有害廃棄物清掃ロボットとすることもできる。例えば、ユーザは有害廃棄物ロボットに、どの廃棄物材料を封印コンテナ内に置くべきかを指示することができるが、その仕事を自前で完了させることを任せることもできる。ユーザ制御とロボット制御との間の動作の移行は、ロボットが危険な廃棄物材料を落下させるか、さもなければ誤った取扱いをすることを防ぐのに十分なほど滑らかである。
【0140】
アニマトロニクス・フィギュア108は爆弾廃棄ロボットとすることもできる。例えば、ユーザは特に敏感な信管抜き操作を実行する間に、ロボットの特定動作を直接制御/ガイド(誘導)することもできるが、ユーザのガイダンス(誘導)なしに爆弾の廃棄を完了させることをロボットに任せることができる。ここでも、ユーザ制御とロボット制御との間の動作の移行は、敏感かつ危険であり得る作業を台無しにし得る事故的な、及び/または意図しない動作を防ぐように滑らかである。
【0141】
以上の説明は多くの特定事項を含むが、これらの事項は本発明の範囲を限定するものではなく、本発明の好適な実施例の例示と解釈すべきである。本発明は、本明細書に開示する異なる種類及び/または具体例からの要素のあらゆる組合せ及び副次的組合せを含む。これらの特徴、従って本発明の範囲は、請求項およびこれと等価なものに照らして解釈すべきであることは当業者にとって明らかである。
【図面の簡単な説明】
【0142】
【図1】異なる種類のショーをリアルタイムかつ生き物のように生成すべく構成されたアニマトロニクスシステムを示す図である。
【図2】アニマトロニクス・フィギュアの動作を生成するプロセスを示す図である。
【図3A】アルゴリズムに従ってアニマトロニクス・フィギュアの動作を決めるアルゴリズム構成を示す図である。
【図3B】センサが検出した状態をアルゴリズム応答モジュールに提供するアルゴリズム構成300の一具体例を示す図である。
【図3C】受信モジュールが検出した状態をセンサから受信し、かつユーザが入力した動作をオペレータから受信するアルゴリズム構成の他の具体例を示す図である。
【図4】ユーザが入力した命令をアルゴリズム的に決定した命令と組み合わせるプロセスを示す図である。
【図5】アニマトロニクス・フィギュアが生成する動作をフィルタ処理するフィルタ処理アニマトロニクス構成を示す図である。
【図6A】フィルタ処理していないアニマトロニクス・フィギュアの頭の動作のグラフである。
【図6B】フィルタ処理したアニマトロニクス・フィギュアの頭の動作のグラフである。
【図7】ユーザが入力した動作とアルゴリズム的に決定した動作とを調和させてフィルタ処理して、アニマトロニクス・フィギュアの生き物のような動きを生成するアニマトロニクス・フィルタ構成を示す図である。
【図8A】アニマトロニクス・フィギュア用のフィルタを示すグラフである。
【図8B】フィルタモジュールによってフィルタ処理されたアニマトロニクス・フィギュアの身体部分の回転を表わすグラフである。
【図9A】ユーザ入力コマンド及びユーザ入力コマンドの発生によって決まるコマンドに基づいてアニマトロニクス・フィギュアをフィルタ処理するプロセスを示す図である。
【図9B】ユーザ入力コマンド及び刺激から決まるコマンドに基づいてアニマトロニクス・フィギュアの動作をフィルタ処理するプロセスを示す図である。
【図10】ソフトウェアモジュールの階層システムを示す図である。
【図11】軌跡プランナーの詳細図である。
【図12】簡単な合成軌跡の例を示す図である。
【図13】複数のキーフレームによって記述される曲線を示す図である。
【図14】曲線が複数のキーフレームによって記述される他の具体例を示す図である。
【図15】点の列を示すグラフである。
【図16A】データを補間した他のグラフである。
【図16B】図16Aに示すグラフに対応する速度を示すグラフである。
【図16C】図16Aに示すグラフに対応する加速度を示すグラフである。
【図17】図15に示す単純な4点キーフレームの軌跡用のスクリプト記述の例である。
【図18】図12に示す合成軌跡用のスクリプト記述の例である。
【技術分野】
【0001】
(1.発明の分野)
本発明は一般にロボティクス・フィギュア(ロボット的な人形等)に関するものであり、特にアニマトロニクス・フィギュア(生き物のような動きをする人形等)に関するものである。
【0002】
(2.発明の背景)
アニマトロニクス・フィギュアは、1つ以上の電気機械的装置によって動きを与えられるロボティクス・フィギュア、動く人形、あるいは他の動きのある物体である。「動きを与えられる」とは、動作を行わせることを意味する。上記電気機械的装置は、電子的部分、機械的部分、液圧及び/または空気圧部分を含む。アニマトロニクス・フィギュアは、テーマパークのようなエンターテインメント(娯楽)の場所では一般的である。例えば、アニマトロニクス・キャラクタ(配役)は、テーマパーク内のショー、ライド(乗り物)、及び/または他のイベントで見ることができる。アニマトロニクス・キャラクタの身体部分、例えば頭及び腕は一般に自由に動くことができる。しかし、アニマトロニクス・キャラクタは通常、1つの場所から他の場所へと歩き回ったり歩いて行ったりすることはできない。
【0003】
アニマトロニクス・フィギュアを制御する種々のアニマトロニクスシステムが、何十年にわたって作り出されてきた。これらのシステムの制御は、過去40年にわたって、機械的カムからミニコンピュータ、(回路)ボードベースのシステムへと着実に進歩して来たが、その下にある取り組み方法は少ししか変わっていない。
【0004】
一般に、現在のアニマトロニクス・フィギュアは非常に機械的な振る舞いで動く。換言すれば、現在のアニマトロニクス・フィギュアは、生き物のような動きを見せるのではなく、ロボットのような動きを見せる。
【0005】
(発明の概要)
本発明の1つの態様のアニマトロニクスシステムでは、受信モジュールが固定ショー選択入力及び人形操作入力をオペレータ(操作員)から受信する。固定ショー選択入力は、少なくとも1つの固定ショー命令に関連する。人形操作入力は人形操作命令を与える。アニマトロニクス・フィギュアが存在する。変換ソフトウェアモジュールは、前記固定ショー選択入力に関連する前記少なくとも1つの固定ショー命令を、少なくとも1つの固定ショーの物理的動作命令に変換し、そして受信した前記人形操作命令を少なくとも1つの人形操作の物理的動作命令に変換する。動作ソフトウェアモジュールは、前記少なくとも1つの固定ショーの物理的動作命令を受信し、かつ前記少なくとも1つの人形操作の物理的動作命令を受信して、前記少なくとも1つの固定ショーの物理的動作命令及び前記少なくとも1つの人形操作の物理的動作命令から合成動作命令を計算し、これにより、少なくとも一人の役者が、アニマトロニクス・フィギュアの少なくとも1つの構成要素を生き物のように動かすことができる。
【0006】
本発明の他の態様のアニマトロニクスシステムでは、アニマトロニクス・フィギュアの少なくとも1つの構成要素の動作が行われる際に、音響ソフトウェアモジュールが音響装置に命令を与えて音響信号を出力させる。
【0007】
本発明の1つの態様のアニマトロニクスシステムでは、自動固定ショー・ソフトウェアモジュールが、固定ショー選択入力を所定時刻に自動的に前記受信モジュールに供給する。
【0008】
本発明の他の態様のアニマトロニクスシステムでは、所定時刻が、オペレータが人形操作入力を行う時刻と一致する。
【0009】
本発明の1つの態様のアニマトロニクスシステムでは、オペレータがボタンを押して前記固定ショー選択入力を与える。
【0010】
本発明の他の態様のアニマトロニクスシステムでは、事象の発生を測定するセンサがアニマトロニクス・フィギュアに動作的に接続されている。
【0011】
本発明の1つの態様のアニマトロニクスシステムでは、事象の発生をきっかけとして、前記固定ショー選択入力が前記受信モジュールに入力される。
【0012】
本発明の他の態様のアニマトロニクスシステムでは、オペレータがダイヤルを回して前記固定ショー選択入力を前記受信モジュールに与える。
【0013】
本発明の1つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、人形操作の動作を実行するための人形操作命令をアニマトロニクス・フィギュアに与える。固定ショーの選択は、アニマトロニクス・フィギュアに固定ショーの動作を実行させる少なくとも1つの固定ショー命令に関連する。前記人形操作命令は、前記少なくとも1つの固定ショー命令と組み合わされて組合せ命令を形成する。アニマトロニクス・フィギュアは、この組合せ命令を実行することを命令される。
【0014】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記固定ショーの選択がユーザによって行われる。
【0015】
本発明の1つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、アニマトロニクス・フィギュアに前記組合せ命令を実行することを命令することによって、人形操作の動作と固定ショーの動作との合成動作が行われる。
【0016】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作が、アニマトロニクス・フィギュアの固定ショーの動作を実行する構成要素と同じ構成要素によって実行される。
【0017】
本発明の1つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作が、アニマトロニクス・フィギュアの固定ショーの動作を実行する構成要素とは異なる構成要素によって実行される。
【0018】
本発明の他の態様のアニマトロニクスシステムでは、アニマトロニクス・フィギュアが存在する。受信モジュールが第1コマンド及び第2コマンドをオペレータから受信する。この受信モジュールはアニマトロニクス・フィギュアと動作的に接続されている。前記受信モジュールはこのアニマトロニクス・フィギュアと通信する。このアニマトロニクス・フィギュアは、前記第1コマンドに従って第1動作を行う。前記アニマトロニクス・フィギュアは、前記第2コマンドに従って第2動作を行う。フィルタモジュールが、前記第1コマンドを第1フィルタに通してフィルタ処理し、前記第2コマンドを第2フィルタに通してフィルタ処理して、前記第1コマンドによって生じる前記アニマトロニクス・フィギュアの第1動作を、前記第2コマンドによって生じる前記アニマトロニクス・フィギュアの第2動作と調和させて、前記アニマトロニクス・フィギュアの動作が生き物のように見えるようにする。
【0019】
本発明の1つの態様のアニマトロニクスシステムでは、前記第1コマンドが人形操作命令である。
【0020】
本発明の他の態様のアニマトロニクスシステムでは、前記第2コマンドが、少なくとも1つの固定ショー命令に関連する固定ショーの選択である。
【0021】
本発明の1つの態様のアニマトロニクスシステムでは、前記第1フィルタがローパス(低域通過)フィルタである。
【0022】
本発明の他の態様のアニマトロニクスシステムでは、前記第2フィルタがハイパス(高域通過)フィルタである。
【0023】
本発明の1つの態様のアニマトロニクスシステムでは、前記第2フィルタがバンドパス(帯域通過)フィルタである。
【0024】
本発明の他の態様のアニマトロニクスシステムでは、前記第1フィルタと前記第2フィルタとを、アニマトロニクス・フィギュアの同じ身体部分の異なる構成要素上で用いる。
【0025】
本発明の1つの態様のアニマトロニクスシステムでは、前記第1フィルタと前記第2フィルタとを、アニマトロニクス・フィギュアの異なる身体部分で用いる。
【0026】
本発明の他の態様のアニマトロニクス・フィギュアには脚が存在する。この脚に脚部アクチュエータが動作的に接続され、この脚部アクチュエータは脚の動作を行わせる。車輪が存在し、この車輪には車輪アクチュエータが動作的に接続され、この車輪アクチュエータは車輪の動作を行わせる。プロセッサが脚の動作及び車輪の動作を決定して、前記アニマトロニクス・フィギュアの動作を行わせる。前記プロセッサは、脚の動作を前記脚部アクチュエータに送信する。前記プロセッサは、車輪の動作を前記車輪アクチュエータに送信する。
【0027】
本発明の1つの態様のアニマトロニクス・フィギュアでは、位置センサがこのアニマトロニクス・フィギュアの第1現在位置を測定する。
【0028】
本発明の他の態様のアニマトロニクス・フィギュアでは、増分センサが、このアニマトロニクス・フィギュアの相対的な第2現在位置を、このアニマトロニクス・フィギュアの初期位置から進んだ距離だけ増加させることによって測定する。
【0029】
本発明の1つの態様のアニマトロニクス・フィギュアでは、クリッピング(切り取り)モジュールが、このアニマトロニクス・フィギュアの前記第2現在位置と、このアニマトロニクス・フィギュアの前記第1現在位置との差が位置クリッピング限界に達したか否かを判定する。
【0030】
本発明の他の態様のアニマトロニクス・フィギュアでは、クリッピングモジュールが、前記第1現在位置から前記第2位置へ移動中のこのアニマトロニクス・フィギュアの速度が速度クリッピング限界に達したか否かを、位置クリッピング限界に達したか否かに加えて判定する。
【0031】
本発明の1つの態様のアニマトロニクス・フィギュアでは、クリッピングモジュールが、前記第1現在位置から前記第2位置まで移動中のこのアニマトロニクス・フィギュアの速度があるクリッピング限界に達したか否かを判定する。
【0032】
本発明の他の態様のアニマトロニクス・フィギュアでは、クリッピングモジュールが、前記第1現在位置から前記第2位置まで移動中のこのアニマトロニクス・フィギュアの速度があるクリッピング限界に達したか否かを、位置クリッピング限界に達したか否か、及び/または速度クリッピング限界に達したか否かとは別個に、あるいはこれらと共に判定する。
【0033】
本発明の1つの態様のアニマトロニクス・フィギュアでは、前記クリッピング限界に達した場合に、前記クリッピングモジュールが、前記アニマトロニクス・フィギュアの軌跡を短縮する。
【0034】
本発明の他の態様のアニマトロニクス・フィギュアでは、前記クリッピング限界に達した場合に、前記クリッピングモジュールがこのアニマトロニクス・フィギュアの速度を低下させる。
【0035】
本発明の1つの態様のアニマトロニクス・フィギュアでは、前記クリッピング限界に達した場合に、前記クリッピングモジュールがこのアニマトロニクス・フィギュアの加速度を低下させる。
【0036】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、このアニマトロニクス・フィギュアに人形操作命令を与えて、人形操作の動作を実行させる。固定ショー選択コマンドを前記アニマトロニクス・フィギュアに与えて、固定ショーの選択に関連する少なくとも1つの固定ショーの動作を実行させる。前記人形操作の動作と前記固定ショーの動作とを組み合わせて合成動作とする。前記アニマトロニクス・フィギュアは、この合成動作を実行するよう命令される。
【0037】
本発明の1つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記固定ショーの選択がユーザによって行われる。
【0038】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作と前記少なくとも1つの固定ショーの動作との組合せが、前記人形操作の動作と前記固定ショーの動作との合成である。
【0039】
本発明の1つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作が行われる構成要素と同じ構成要素上で行われる。
【0040】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作が行われる構成要素とは異なる構成要素上で行われる。
【0041】
本発明の1つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、所定の限界が、前記人形操作の動作と前記固定ショーの動作との合成を低減する。
【0042】
本発明の他の態様のアニマトロニクスシステムでは、アニマトロニクス・フィギュアが存在する。受信モジュールはオペレータから第1コマンドを受信する。この受信モジュールは、前記アニマトロニクス・フィギュアに動作的に接続されている。前記受信モジュールは、前記アニマトロニクス・フィギュアと通信する。前記アニマトロニクスシステムは、前記第1コマンドを、第1動作を決定するための計算の一部として用いる。アルゴリズム応答モジュールは、前記第1コマンドが前記アニマトロニクス・フィギュアに与えられたことの発生に基づいて、第2コマンドを前記アニマトロニクス・フィギュアに与える。前記アルゴリズム応答モジュールは、前記第1コマンドを前記受信モジュールから受信する。前記アニマトロニクス・フィギュアは、前記第2コマンドに従って第2動作を行う。
【0043】
本発明の1つの態様のアニマトロニクスシステムでは、前記第1コマンドが人形操作命令である。
【0044】
本発明の他の態様のアニマトロニクスシステムでは、前記第2コマンドが、少なくとも1つの固定ショー命令に関連する固定ショー選択入力である。
【0045】
本発明の1つの態様のアニマトロニクスシステムでは、前記第2コマンドが、前記アニマトロニクス・フィギュアに動作的に接続されたセンサが刺激を検出したことの発生に基づくアニマトロニクス固定ショー命令である。
【0046】
本発明の他の態様のアニマトロニクスシステムでは、フィルタモジュールが、前記第1動作を第1フィルタに通してフィルタ処理し、前記第2動作を第2フィルタに通してフィルタ処理して、前記第1動作を前記第2動作と調和させ、これにより、前記アニマトロニクス・フィギュアの動作が生き物のように見える。
【0047】
(実施例の詳細な説明)
以下、本発明の実施例について、図面を参照しながら詳細に説明する。
ここでは、アニマトロニクスシステムを制御することについて、以前に見られたものよりも大きな柔軟性(フレキシビリティ)を提供し、かつリアルタイム(実時間)の合成動作を生成する能力を提供する計算環境を開示する。この計算環境は、ロボティクスシステムに一般的に適用することができ、アニマトロニクスシステムのみに限定されない。さらに、この計算環境はいずれの特定言語にも限定されない。一具体例では、スクリプト記述言語を用いて、アニマトロニクス・フィギュアに命令して現実的な、生き物のような動きを作り出し生み出させる高レベルのツールをプログラマに提供する。
【0048】
以下、この計算環境の種々の特徴を、アニマトロニクスシステムに関して説明する。一具体例では、この計算環境が、アニマトロニクス・フィギュアが実行可能な異なる種類のショーのためのリソース、及びこれらのショー中の動作の組合せ及び順序付けを提供して、リアルタイムでの生き物のような動きの生成、リアルタイム動作用の軌跡の計算、及び/またはアニマトロニクス・フィギュアの動作のフィルタ処理を行う。以下、これら及び他の特徴について説明する。
【0049】
図1にアニマトロニクスシステム100を示し、このシステムは、異なる種類のショーをリアルタイムかつ生き物のように生成すべく構成されている。1つのショーは、アニマトロニクスシステム100によって動きを与えられるアニマトロニクス・フィギュア108の一連の動作である。
【0050】
ショーの1つの種類は人形ショーである。人形ショーは、オペレータ制御による一連の動作である。換言すれば、オペレータ101は、アニマトロニクス・フィギュア108の所望動作をアニマトロニクスシステム100に手動で入力する。ユーザが各所望の動作を手動で入力すると、アニマトロニクス・フィギュア108はこれに対応する動作をリアルタイムで生成する。アニマトロニクスシステム100は、アニマトロニクス・フィギュア108に命令して、ユーザが所望動作コマンドを手動で入力した後に、所望動作を即座に、あるいは所定期間内に生成する。従って、アニマトロニクス・フィギュア108は、ユーザが所望動作をアニマトロニクスシステム100に入力する間は所望動作に従って動いているように見える。人形ショーの例は、”MUPPET(マペット)”、あるいは1997年にニューヨークのNew Amsterdam Theater(ニュー・アムステルダム劇場)で初演のディズニー(登録商標)の”The Lion King(ライオンキング)”のライブステージ(舞台上演)版における人形であることは、当業者にとって明らかである。
【0051】
一具体例では、ユーザは人形操作の動作を、ジョイスティックまたは他の入力装置によって入力する。他の具体例では、ユーザは人形操作の動作をキーボードによって入力する。さらに他の具体例では、ユーザは人形操作の動作を、ユーザの体に取り付けたセンサによって入力する。他の具体例では、フェイス・トラッキング(顔追跡)を用いて人形操作の動作を入力する。フェイス・トラキングは、顔及び/または頭の動きを検出する。カメラの焦点を顔及び/または頭に合わせて、人形操作の動作を受け取ることができる。センサを頭に配置して、人形操作の動作を受け取ることもできる。例えば、オペレータ101はセンサを有するヘッドバンドをかぶって、頭の動きを検出することができる。さらに他の具体例では、ユーザは人形操作の動作を発声コマンドとして、音声認識ソフトウェアと共に動作するマイクロホンに入力する。
【0052】
他の種類のショーは固定ショーである。固定ショーは、1回または連続的に繰り返して再生可能な予め連続動作の列にされた記録である。オペレータ101は単に固定ショーを選択するだけでアニマトロニック・フィギュア108に動きを与えることができ、人形操作命令を与える場合にオペレータ101が行うように、ショーが上演されている間に各動作を入力しなければならないことがない。固定ショーの例は、1963年にディズニーランド(登録商標)で公開された”Enchanted Tiki Room”、及び1964年にNew York world’s fair(ニューヨーク・ワールドフェア)で初公開され、1965年にディズニーランドに移転された”Great Moments with Mr. Lincoln”であることは、当業者にとって明らかである。
【0053】
固定ショーを作り出す異なる方法は少数存在する。一具体例では、固定ショーはユーザが行う一連の人形操作の記録である。他の具体例では、固定ショーは、ユーザがグラフィカル・ユーザ・インタフェース(GUI:Graphical User Interface)によって入力した動作の記録である。他の具体例では、他のソース(発生源)から動作を導出し、例えば記録した発声を分析して口の位置を導出する。他の具体例では、これらの方法の組合せを用いる。一具体例では、固定ショー用の命令をコンピュータ読取可能媒体上に記憶する。
【0054】
一具体例では、ユーザが、事前記録されている選択した固定ショーの動作に従ってアニマトロニック・フィギュア108に動きを与えることをアニマトロニックシステム100に命令するボタン(図示せず)によって、固定ショーの選択を入力する。各ボタンが異なる固定ショーの選択を表わす複数のボタンを設けることができる。換言すれば、オペレータ101は多様な固定ショーの選択肢を持ち、これらから選択することができる。固定ショーの選択肢の各々が、一組の事前記録された動作に関連する。オペレータ101が固定ショーの選択を行うと、アニマトロニックシステム100は、この固定ショーの選択に関連する事前記録された一組の動作を実行する。本質的には、オペレータ101は、固定ショーの選択を行うために、1つのコマンドをアニマトロニックシステム100に与えるだけで済む。アニマトロニックシステム100は、アニマトロニック・フィギュア108に命令して、オペレータ101が行った固定ショーの選択に関連する命令を実行させる。
【0055】
他の具体例では、ユーザが固定ショーの選択を、タッチスクリーン・ディスプレイで入力する。他の具体例では、ユーザが固定ショーの選択をダイヤルで入力する。他の具体例では、ユーザが固定ショーの選択を、発声コマンドによって、音声認識ソフトウェアと共に動作するマイクロホンに入力する。
【0056】
アニマトロニクスシステム100は、アニマトロニック・フィギュア108を固定ショー及び人形操作のショーに同時に従って動作させる能力をユーザに提供する。固定ショーが1つのアクチュエータに命令を与える間に人形操作の列が他のアクチュエータに命令を与える場合には、両方の命令を同時に実行して、2つの異なる身体部分が同時に動くように見せる。
【0057】
固定ショーが人形操作のショーと同じアクチュエータに命令を与える場合には、合成動作を計算する。合成動作は、合成動作が生き物のように見えるように計算する。例えば、固定ショーがクシャミの動作であり、人形操作の動作が頭を前向きに動かす動作である場合には、固定ショー命令と人形操作の動作との単純な重ね合わせが、人形操作の命令のみを与えた場合よりも頭を前向きに傾ける。例えば、笑いを演じる際に尾が振れる振幅を増加させることができる。他の具体例では、各要素動作を変化させることによって合成動作を形成する。例えば、元気のいい動きを演じる際には、呼吸動作の頻度を増加させる。この組合せは、クシャミの例では、頭の前向きの動きの間にクシャミが出る場合に頭の動きが誇張される生き物の動きに匹敵する。
【0058】
従って、この合成動作は、生き物のように見えるにしては動作が誇張され過ぎて見えることがある。クシャミの例では、前向きの動きとクシャミの組合せの間に、生き物のように見えるにしては頭が前向きに動き過ぎることがある。この動作を修正するために、合成動作をクリップ(制限)する。クリッピング(動作制限)とは、所定限界内に入るように値を低減することを称する。一具体例では、アニマトロニック・フィギュア108の合成動作の軌跡をクリップすることができる。換言すれば、クシャミの例における頭の合成動作の前向きの軌跡を短縮して、頭が前向きに動くことのできる距離の所定限界に合わせる。この所定限界の例は、アニマトロニック・フィギュア108の頭を地面に触れないように止めることである。これに加えて、クリッピングは、アニマトロニック・フィギュア108の動作を実行させるアクチュエータの限界範囲が守られることを保証する。例えば、オペレータ101が、アニマトロニック・フィギュア108の頭を後ろ向きに動かし過ぎる人形操作命令を与えた場合に、ハードストップ(ハードウェアによる停止)に当たる。ハードストップとは、アクチュエータが、ロボットの動きを制限する物理的な停止端または障壁に当たることであることは、当業者にとって明らかである。ハードストップに当たることによって、広範な問題が生じ得る。例えば、ロボティクス・フィギュアを物理的に損傷させるのに十分な力でハードストップに当たることがあり得る。さらに、影響を受けたアクチュエータの動きに依存する他のアクチュエータにも故障が生じ得る。本質的に、ハードストップに当たることは、アニマトロニクス・フィギュア108の完全な故障に至る可能性がある。クリッピングは、ハードストップに達することを防止し、これにより、故障の可能性を低減する。一具体例では、クリッピングモジュールが、アニマトロニクス・フィギュア108の第2現在位置とアニマトロニクス・フィギュア108の第1現在位置との差が位置のクリッピング限界に達したか否かを判定する。
【0059】
一具体例では、アニマトロニック・フィギュア108の合成動作の速度をクリップすることができる。換言すれば、アニマトロニクス・フィギュア108の身体部分が動く速度を低下させて所定限界内に入れることができる。例えば、クシャミの例では、所定限界を1秒当たり100度に設定して、頭の斜めの動きが潜在的に危険な速度を超えないことを保証することができる。これに加えて、クリッピングは構造的な制限に達することを防止する。例えば、モータは、モータが生み出す速度の限界を有する。アニマトロニクス・フィギュア108がこの速度限界に達するかこの限界を超えようとするならば、モータは単に故障し得る。他の具体例では、クリッピングモジュールが、速度のクリッピング限界に達したか否かを判定する。さらに他の具体例では、クリッピングモジュールが、位置のクリッピング限界及び速度のクリッピング限界に達したか否かを判定する。
【0060】
さらに他の具体例では、アニマトロニクス・フィギュア108の加速度をクリップすることができる。換言すれば、身体部分が動く速度の変化を、所定限界内に入るように低減する。要求されるモータトルクは加速度に比例するので、このことを用いて、アクチュエータが要求するトルクを効果的に制限すると共に、滑らかで生き物のような動きを行うことができる。端に許容範囲を制限することによってジョイント(継手)の動きの範囲をクリップすることは、ジョイントがこの範囲の端に達した際にジョイントの急停止を生じさせる。この急停止は、所定の加速度限界を超える加速度を生じさせ得る。ジョイントが位置及び加速度の両方について同時にクリッピングを受ける際には、ジョイントがこの位置クリッピング限界に近づくと共に位置クリッピング限界の方向の速度を低下させる必要がある。この位置クリッピング限界で低下する速度限界は、位置クリッピングが発生した際に加速度限界が尊重されることを保証する。さらに他の具体例では、クリッピングモジュールが、加速度クリッピング限界に達したか否かを判定する。クリッピングモジュールは、位置、速度、及び/または加速度の任意の組合せがクリップされていることを判定することもできる。
【0061】
一具体例では、受信モジュール102が、アニマトロニクス・フィギュア108を制御するためのオペレータ入力コマンドを受信する。一具体例では、受信モジュール102が、ジョイスティックのようなハードウェア装置からユーザ入力を受信するソフトウェアプログラムである。ジョイスティックは、キャラクタ(登場人物)の動きを調整するための制御入力を送信する。これらの制御入力は、例えば、キャラクタの人形操作の動作を調整するためのアナログ及び/またはディジタル信号である。他の具体例では、受信モジュール102は、キャラクタの動きを調整するためのアナログ及び/またはディジタル信号のような制御入力を送信するキーボードのようなハードウェア装置からユーザ入力を受信するソフトウェアプログラムである。他の具体例では、オペレータがボタンを押して制御入力を与える。他の具体例では、オペレータがダイヤルを回して制御信号をアニマトロニクス・フィギュアに供給する。この制御信号は変換ソフトウェアモジュール104に入力される。
【0062】
例えば、アミューズメントパーク(遊園地)のライドのオペレータがジョイスティックを回してアニマトロニクス・フィギュア108の頭と首を制御して、パークの見物客を楽しませる。他の例では、アニマトロニクス・フィギュア108のオペレータがキーボード・コマンドを入力してアニマトロニクス・フィギュア108の脚を動かして、アニマトロニクス・フィギュア108の進む向きを前向きから右回りに変えて、パークのお客様に衝突するコースを避ける。キーボードの使用は、アニマトロニクス・フィギュア108をデバッグするためのデバッグ環境において特に有用である。ユーザは一度に1つのコマンドをキーボードに入力し、個々の動きを分析することによって、アニマトロニクス・フィギュア108をデバッグすることができる。同様に、ユーザは複数のコマンドをキーボードによって与えて、個々の動きを分析することもできる。
【0063】
変換ソフトウェアモジュール104は、固定ショーの選択に関連する固定ショー命令を少なくとも1つの物理的動作命令に変換する。さらに、変換ソフトウェアモジュール104は、人形操作命令を少なくとも1つの物理的動作命令に変換することもできる。まず、ソフトウェアモジュール104は、固定ショーの命令に関連する固定ショー命令を評価する。一具体例では、コンピュータプログラムをメモリデバイスからロードする。
【0064】
一具体例では、受信モジュール102、変換ソフトウェアモジュール104、及び動作ソフトウェアモジュール106をすべて異なるコンピュータ上に格納する。一具体例では、受信モジュール102をコンピュータ上に格納する必要がない。むしろ、受信モジュール102は単純な入力装置とすることができる。他の具体例では、受信モジュール102及び変換ソフトウェアモジュール104を同じコンピュータ上に格納するが、このコンピュータは動作ソフトウェアモジュール106が格納されているコンピュータとは異なる。さらに他の具体例では、受信モジュール102及び動作ソフトウェアモジュール106を同じコンピュータ上に格納するが、このコンピュータは変換ソフトウェアモジュール104が格納されているコンピュータとは異なる。他の具体例では、変換ソフトウェアモジュール104及び動作ソフトウェアモジュール106を同じコンピュータ上に格納するが、このコンピュータは受信モジュール102が格納されているコンピュータとは異なる。1つのコンピュータソフトウェアモジュールがこれらのモジュールの全部または一部の機能を実行可能であることも、当業者にとって明らかである。例えば、1つのソフトウェアモジュールが、受信モジュール及び変換ソフトウェアモジュールの機能を実行することができる。
【0065】
図2に、アニマトロニクス・フィギュア108の動作を生成するプロセス200を示す。処理ブロック210では、ユーザは人形操作命令をアニマトロニクスシステム100に与えて、人形操作の動作を実行させる。処理ブロック220では、ユーザは少なくとも1つの固定ショー命令に関連する固定ショーの選択をアニマトロニクスシステム100に与えて、固定ショーの動作を実行させる。一例では、固定ショー命令は、アニマトロニクス・フィギュア108をうならせるための制御信号を含む。
【0066】
処理ブロック230では、人形操作命令と固定ショー命令との組合せから組合せ命令が生じる。他の具体例では、人形操作命令と固定ショー命令との重ね合わせから組合せ命令が生じる。処理ブロック240では、アニマトロニクスシステム100がアニマトロニクス・フィギュア108に命令して、組合せ命令に従って動作させる。他の具体例では、人形操作命令を固定ショー命令によって変化させることにより組合せ命令が生じる。
【0067】
例えば、オペレータがキーボード入力によって、アニマトロニクス・キャラクタの脚を挙げる人形操作命令を与える。一具体例では、人形操作入力をコンピュータ内のメモリデバイスに記憶する。その後に、オペレータはアニマトロニクス・キャラクタに動作的に接続されたボタンを押して、このキャラクタがうなる少なくとも1つの固定ショー命令に関連する固定ショーの選択を要求する。コンピュータ内のプロセッサは、アニマトロニクス・キャラクタ108の脚を挙げる命令をうなる命令と重ね合わせる。そしてアニマトロニクスシステム100は、アニマトロニクス・フィギュア108に脚を挙げさせてうならせる。
【0068】
図3Aに、アルゴリズムに従ってアニマトロニクス・フィギュア108の動作を決めるアルゴリズム構成300を示す。換言すれば、アニマトロニクスシステム100は種々の条件を分析して、アルゴリズムを実行すべきか否か、及び/またはどのような動作を生成すべきかを決める。これらの条件は、環境的な発生、人形操作命令から生じる動作、またはショー選択から生じる動作とすることができる。条件のうちの1つが満たされれば、アルゴリズムは、アニマトロニクス・フィギュア108が生成すべき動作の決定または修正をリアルタイムで実行する。
【0069】
一具体例では、アルゴリズム応答モジュール308が、ある条件が満たされたか否かを判定してアルゴリズムを実行することができる。一具体例では、アルゴリズム応答モジュール308が、条件、及び当該条件が満たされた場合に実行すべきアルゴリズムを記憶しているデータベースにアクセスする。他の具体例では、このデータベースが、条件、及び当該条件が満たされた場合に実行すべき命令を記憶することができる。他の具体例では、アルゴリズム応答モジュール308が結果的な動きの向きを決定する。他の具体例では、アルゴリズム応答モジュール308が結果的な動きの大きさを決定する。他の具体例では、アルゴリズム応答モジュール308が結果的な動きの持続時間を決定する。他の具体例では、アルゴリズム応答モジュール308が、従うべき一連の動作、あるいは個々の動作を反復すべき回数を決定する。
【0070】
一具体例では、クロック302がアルゴリズム応答モジュール308に時刻を提供する。上記条件の1つは、アニマトロニクス・フィギュア108が特定時刻に、あるいは特定周波数で尾を振ることとすることができる。例えば、アニマトロニクス・フィギュア108が毎日午後1時に尾を振るようにアルゴリズムを実行することができる。アルゴリズム応答モジュール308は、この時刻をクロック302から受信して、アニマトロニクス・フィギュアの尾を振るべき時刻条件が午後1時に満たされることを特定する。他の具体例では、尾を1ヘルツで振るように設定することができる。アルゴリズム応答モジュール308は時刻をクロック302から受信し、この時刻を用いて、上記1ヘルツで尾を振る動作に基づいて現在位置を特定することができる。そしてアルゴリズム応答モジュール308は、アニマトロニクス・フィギュア108が尾を振るための命令及びこれに関連するデータを動作ソフトウェアモジュール106に提供する。一具体例では、アルゴリズム応答モジュール308が、位置、速度、及び加速度の計算を実行して、データを動作ソフトウェアモジュール106に提供する。他の具体例では、動作ソフトウェアモジュール106が位置、速度、及び加速度の計算を実行する。さらに他の具体例では、アルゴリズム応答モジュール308が動作ソフトウェアモジュール106と同じモジュールである。
【0071】
他の具体例では、アニマトロニクス・フィギュア108の呼吸動作を計算するアルゴリズムを設ける。換言すれば、呼吸音を発生してアニマトロニクス・フィギュア108の胸を膨らませたりへこませたりする。この呼吸動作は、アニマトロニクス応答モジュール308へのクロック302の入力に基づくものとすることができる。
【0072】
他の具体例では、乱数発生器304がアルゴリズム応答モジュール308への入力を供給する。乱数発生器304から乱数を受信して、ランダムな時刻に動作を実行するようアニマトロニクス・フィギュア108に命令するように、アルゴリズムを設定することができる。例えば、ランダムな時刻にまばたきするようアニマトロニクス・フィギュア108に命令することができる。まばたきは自然なランダムな動きになるので、乱数発生器304のユーザは、アニマトロニクス・フィギュア108の動作をより生き物のように見せることができる。他の具体例では、乱数発生器304がランダムな振幅の動きを提供することができる。他の具体例では、乱数発生器304がランダムな方向の動きを提供することができる。他の具体例では、ランダムな動きの成分を提供することができる。ランダムな成分の例は、ランダムに変化する周波数、振幅、及びオフセット(ずれ)で発生する呼吸動作である。
【0073】
他の具体例では、センサ306がデータをアルゴリズム応答モジュール308に提供する。一具体例では、このデータが環境データである。例えば、この環境データは、停止端に向かって一方向に移動中のアニマトロニクス・フィギュア108の身体部分の向きを含むことができる。アニマトロニクス・フィギュア108が、その頭と首を回し、従って横の停止端付近にある間にまさにクシャミしそうな場合には、クシャミの動作が首をさらに回して動作のクリッピングが生じ得る。この場合には、クシャミが頭を停止端から離すように、即ち首の動作範囲の中心に向けて回して、クリッピングが生じないようにする事が好ましい。この例では、クシャミの間に頭が回る向き及び振幅は、首の位置センサに対するアルゴリズム的な応答である。
【0074】
検出される条件は、動きが人形操作命令から生じたものか固定ショーの選択から生じたものかにかかわらず、あらゆる身体部分の動きの発生とすることができる。一具体例では、第1身体部分の動作がアルゴリズムを起動して、その付近にある第2身体部分の動作を生成するように、条件を確立することができる。アルゴリズムは、第1の動作と第2の動作とが調和して生き物のような動きに見えるように、第2の動作を計算する。例えば、上記条件は、アニマトロニクス・フィギュア108の頭の下向きの動きとすることができる。そしてアルゴリズム応答モジュール308は動作を計算し、この動作は、アニマトロニクス・フィギュア108の頭の動きと調和するように、アニマトロニクス・フィギュア108を前向きに傾けて少し腰をかがめさせる。
【0075】
図3Bにアルゴリズム構成300の一具体例を示し、ここではセンサ306が検出した条件をアルゴリズム応答モジュール308に提供する。一具体例では、センサ306がアニマトロニクス・フィギュア108から条件を受信する。センサ306は検出した条件をアルゴリズム応答モジュール308に提供し、アルゴリズム応答モジュール308はアルゴリズムに従って動作を計算する。そしてこの動作は変換ソフトウェアモジュールに提供される。これに加えて、受信モジュール102がユーザ101からの入力を受信する。変換モジュール104は、ユーザ入力の動作を変換し、この動作をアルゴリズム的に算出した応答と組み合わせて、少なくとも1つの物理的動作命令を生成する。そして動作ソフトウェアモジュール106はアニマトロニクス・フィギュア108に命令して、この物理的動作命令に従った動作をさせる。一具体例では、動作ソフトウェアモジュール106は、変換ソフトウェアモジュール104の機能も実行する。
【0076】
一具体例では、変換ソフトウェアモジュール104が、ユーザ入力の動作をアルゴリズム的に計算した動作と組み合わせることによって合成動作を求める。アニマトロニクス・フィギュア108はこの合成動作を、ユーザ入力の動作とアルゴリズム的に計算した動作の両方を調和させて生き物のように実行する。
【0077】
図3Cにアルゴリズム構成300の他の具体例を示し、ここでは受信モジュール102がセンサ306から検出した条件を受信し、かつオペレータ101からユーザ入力の動作を受信する。受信モジュール102は、命令の種類を決定し、即ち、命令を受信して適切なモジュールに分配する。例えば、受信モジュール102がユーザ入力命令を受信する際には、受信モジュール102はユーザ入力命令を変換ソフトウェアモジュール104に分配する。受信モジュール102が検出した条件を受信する場合には、受信モジュール102は検出した条件をアルゴリズム応答モジュール308に提供する。アルゴリズム応答モジュール308は少なくとも1つの動作を計算し、この動作は変換ソフトウェアモジュール104に送信される。一具体例では、動きソフトウェアモジュール106は、変換ソフトウェアモジュール104及び/またはアルゴリズム応答モジュール308の機能も実行する。従って、受信モジュール102はすべての命令を1つのモジュールに送信することができる。
【0078】
図4に、ユーザ入力命令をアルゴリズム的に決定した命令と組み合わせるプロセス400を示す。処理ブロック402では、ユーザ入力命令を受信する。一具体例では、受信モジュール102においてユーザ入力命令をオペレータ101から受信する。処理ブロック404では、センサ306から刺激を受信する。この刺激は、あらゆる環境条件とすることができる。処理ブロック406では、この刺激はアルゴリズムへの入力として供給される。一具体例では、刺激はアルゴリズム応答モジュール308に供給される。処理ブロック408では、アルゴリズムを実行して、アニマトロニクス・フィギュア108のアルゴリズム的な動作を決定する。一具体例では、アルゴリズム応答モジュール308がアルゴリズムを実行して、アルゴリズム的な動作を決定する。処理ブロック410では、ユーザ入力の動作をアルゴリズム的に決定した動作と組み合わせる。一具体例では、動作ソフトウェアモジュール106がこの組合せを実行する。この組合せから生じる合成動作は、アニマトロニクス・フィギュア108に調和のとれた生き物のような動きをもたらす。
【0079】
図5に、フィルタ処理を行うアニマトロニクス構成500を示し、ここではアニマトロニクス・フィギュア108が生成する動作がフィルタ(選別)処理される。一具体例では、ユーザ101がユーザ入力の動作を受信モジュール102に提供する。受信モジュール102は、ユーザ入力の動作をフィルタモジュール502に供給する。フィルタモジュール502は、必ずしもユーザ入力ではない動作または動作命令を受信することができる。フィルタモジュール502は、フィルタ処理したコマンドを動作ソフトウェアモジュール106に渡し、動作ソフトウェアモジュール106は、アニマトロニクス・フィギュア108用の物理的動作コマンドを生成する。簡略化した具体例では、フィルタモジュール502をアニマトロニクス・フィギュア108に直接接続することができることは、当業者にとって明らかである。
【0080】
アニマトロニクス・フィギュアの動作は、関連する周波数成分を有する。従って、アニマトロニクス・フィギュア108の単純なフィギュア動作は関連する周波数成分を有し得る。アニマトロニクス・フィギュア108の動きが急速に変化する場合には、周波数成分の少なくとも一部が高周波を含む。アニマトロニクス・フィギュア108の動きがゆっくり変化する場合には、周波数成分の少なくとも一部が低周波を含む。
【0081】
フィルタモジュール502は、種々のフィルタのうちの1つによりユーザ入力の動作をフィルタ処理する。例えば、フィルタモジュール502はユーザ入力の動作を、高周波成分をブロック(阻止)し低周波成分を通過させるローパス(低域通過)フィルタによりフィルタ処理することができる。フィルタ処理モジュール502は、ユーザ入力の動作を、低周波成分をブロックし高周波成分を通過させるハイパス(高域通過)フィルタによりフィルタ処理することもできる。さらに、フィルタ処理モジュール502は、ユーザ入力の動作を、限定範囲の周波数を通過させるバンドパス(帯域通過)フィルタによりフィルタ処理することができる。バンドパスフィルタは、ローパスフィルタとハイパスフィルタの組合せとすることができ、特定の低周波成分及び特定の高周波成分のみを通過させる。フィルタ処理モジュール502が他のフィルタを用いることができることは、当業者にとって明らかである。
【0082】
本質的には、フィルタモジュール502は動作をフィルタ処理して、より生き物のように見えるようにする。例えば、ユーザ101が、アニマトロニクス・フィギュア108の頭を特定方向に動かす命令を入力すると、この頭は通常は、大まかな低周波数の回転動作、並びにオペレータが不用意に加えたあらゆる高周波数の急な動き及びぎこちない動きの両方を反映するように動作する。フィルタモジュール502は頭の動きを、高周波成分をブロックし低周波成分を通過させるようにフィルタ処理する。従って、アニマトロニクス・フィギュア108の頭はより滑らかな動きで動作する。それでもアニマトロニクス・フィギュア108の頭は動作範囲全体にわたって動くことができるが、より滑らかに動く。
【0083】
アニマトロニクス・フィギュア108の動作のフィルタ処理は、生き物のような動作を生成する。生き物が生成する現実世界の動作は、他のものとは異なる周波数で発生する。例えば、大部分の生き物は頭よりも目をより素早く動かす。
【0084】
図6Aに、アニマトロニクス・フィギュア108の頭のフィルタ処理なしの動作用のフィルタのグラフ600を示す。フィルタ処理なしの動作は、周波数成分の異なる部分において一定振幅を有する水平バー602を有する。水平バー602は、ユーザ101の入力にほぼ追従するアニマトロニクス・フィギュア108の動作を表わす。例えば、ユーザ101がジョイスティックを左から右に素早く動かした場合に、アニマトロニクス・フィギュア108の頭は、ジョイスティックの動きに近い動きで動作する。
【0085】
図6Bに、アニマトロニクス・フィギュア108の頭のフィルタ処理した動作用のフィルタのグラフ610を示す。高周波成分の部分はフィルタ処理され、従って低周波成分のみが通過する。曲線620は水平バー602をフィルタ処理して生成される。グラフ610に示すように、曲線620は、低周波部分では、フィルタ処理を全く行わなかった場合に生じる振幅を有する。しかし、高周波部分では振幅が減少する。
【0086】
ローパスフィルタにより、アニマトロニクス・フィギュア108の頭は、ユーザ101によって不用意に与えられる高周波の急な動き及びぎこちなさなしに動作する。結果的な動作は、生き物の頭のような生きた動きをもたらす。
【0087】
図7に、アニマトロニクス・フィルタ構成700を示し、この構成は、ユーザ入力の動作をフィルタ処理し、調和のとれた動作をアルゴリズム的に決定して、アニマトロニクス・フィギュア108の生き物のような動きを生成する。一具体例では、受信モジュール102がユーザ入力命令をユーザ101から受信し、フィルタモジュール502はユーザ入力命令を受信モジュール102から受信する。アルゴリズム応答モジュール308は、クロック302、乱数発生器304、及び/またはセンサ306から条件を受信する。アルゴリズム応答モジュール308はこの条件を利用して、アルゴリズム的に決定される動作をアルゴリズムにより計算する。さらに、アルゴリズム応答モジュール308は、アルゴリズム的に決定される動作をフィルタモジュール502に提供する。
【0088】
フィルタモジュール502は、ユーザ入力の動作に第1フィルタを適用し、アルゴリズム的に決定される動作に第2フィルタを適用する。例えば、生き物は、頭を動かす前に頭が動く向きに目を動かしがちであり、先行動作と称される。フィルタモジュール502はバンドパスフィルタまたはハイパスフィルタをアニマトロニクス・フィギュア108の目に適用して、こうした目の素早い先行動作を生成することができる。さらに、フィルタモジュール502はローパスフィルタを頭に適用して、頭の比較的遅い動きを生成することができる。そしてフィルタモジュール502は、フィルタ処理した目の動作及びフィルタ処理した頭の動作を動作ソフトウェアモジュール106に提供する。動作ソフトウェアモジュール106はアニマトロニクス・フィギュア108に命令して、フィルタ処理した動作を生成させる。
【0089】
図8Aに、アニマトロニクス・フィギュア108の異なる動作用のフィルタを表わすグラフ800を示す。曲線802は、アニマトロニクス・フィギュア108の目の動作用のフィルタを表わす。一具体例では、フィルタモジュール502はバンドパスフィルタを、アニマトロニクス・フィギュア108の目の動作に適用する。曲線802からわかるように、高周波成分の部分及び低周波成分の部分はブロックされている。その結果、残りの中間周波数成分が通過する。
【0090】
さらに、アニマトロニクス・フィギュア108の頭用のローパスフィルタを表わす曲線804を示す。一具体例では、ローパスフィルタをアニマトロニクス・フィギュア108の頭の動作に適用する。ローパスフィルタは高周波成分をブロックし、低周波成分を通過させる。従って、アニマトロニクス・フィギュア108の頭は、アニマトロニクス・フィギュア108の目に比べて比較的遅い動きで動作する。その結果、まず目が、頭の動こうとする向きに動いて、アニマトロニクス・フィギュア108における調和のとれた生き物のような動きを生成する。
【0091】
これに加えて、アニマトロニクス・フィギュア108の首の中央部分の動作にフィルタを適用する。一具体例では、このフィルタは少し低域側のローパスフィルタである。曲線806は首の中央部分用のローパスフィルタを表わす。このローパスフィルタは、首の中央部分の高周波成分を頭よりも大幅にブロックアウト(阻止)する。従って、頭は首の中央部分よりも少し前に少し素早く動いて、頭と首の動きを生き物のように調和させる。
【0092】
アニマトロニクス・フィギュア108の首の付け根の動作にもフィルタを適用する。一具体例では、このフィルタはさらに低域側のローパスフィルタである。曲線808は首の付け根のローパスフィルタを表わす。このローパスフィルタは、首の付け根の高周波成分を首の中央部分よりも大幅にブロックアウトする。従って、首の中央部分は首の付け根よりも少し前に少し素早く動いて、頭と首の動きを生き物のように調和させる。
【0093】
図8Bに、図8Aに示す各フィルタを用いてフィルタ処理したアニマトロニクス・フィギュア108の各身体部分の回転動作を表わすグラフ820を示す。ステップ入力822は、ユーザ101によって入力されフィルタ処理されていない理想化した究極の動作を表わす。曲線824はフィルタ処理した目の動作を表わす。さらに、曲線826はフィルタ処理した頭の動作を表わし、曲線828はフィルタ処理した首中央の動作を表わし、そして曲線830は首の付け根の動作を表わす。曲線824は回転において非常に素早いジャンプを有する、というのは、目は他の身体部分がその後に動く向きに素早く動くからである。従って、頭、首中央、及び首の付け根はよりゆるやかに動作する。
【0094】
図9Aに、ユーザ入力コマンド、及びユーザ入力コマンドの発生によって決まるコマンドに基づいてアニマトロニクス・フィギュア108の動作をフィルタ処理するプロセス900を示す。処理ブロック902では、オペレータ101から第1コマンドを受信する。処理ブロック904では、第1コマンドの受信の発生に基づいて第2コマンドを決定する。一具体例では、アルゴリズム応答モジュール308が、条件の発生に基づいて動作をアルゴリズム的に決定する。例えば、ユーザ101によるアニマトロニクス・フィギュア108の頭を動かすコマンドの入力の発生時に、アルゴリズム応答モジュール308は、アニマトロニクス・フィギュア108がその目を動かすコマンドを与えることができる。一具体例では、目はユーザが入力した動きの向きに動く。
【0095】
処理ブロック906では、第1動作及び第2動作を決定する。これらの動作はそれぞれのコマンドから決まる。一具体例では、変換ソフトウェアモジュール104がコマンドを動作に変換する。
【0096】
処理ブロック908では、上記第1動作及び第2動作をフィルタ処理して調和のとれた生き物のような動きを生成する。従って、処理ブロック910では、上記第1及び第2動作をアニマトロニクス・フィギュア108に与える。
【0097】
図9Bに、ユーザ入力コマンド及び刺激から決まるコマンドに基づいてアニマトロニクス・フィギュア108の動作をフィルタ処理するプロセス920を示す。処理ブロック922では、オペレータ101から第1コマンドを受信する。従って、処理ブロック924では、センサ306から刺激を受信する。処理ブロック926では、受信した刺激に基づいて第2コマンドを決定する。一具体例では、アルゴリズム応答モジュール308が、刺激の発生に基づいて動作をアルゴリズム的に決定する。例えば、アルゴリズム応答モジュール308は、アニマトロニクス・フィギュア108がクロック302の時刻に応じてその胸を呼吸動作のように動かすコマンドを供給することができる。
【0098】
処理ブロック928では、第1動作及び第2動作を決定する。これらの動作はそれぞれのコマンドから決まる。一具体例では、変換ソフトウェアモジュール104がコマンドを動作に変換する。
【0099】
処理ブロック930では、上記第1動作及び第2動作をフィルタ処理して、調和のとれた生き物のような動作を生成する。従って、処理ブロック932では、第1及び第2動作をアニマトロニクス・フィギュア108に与える。
【0100】
一具体例では、リアルタイムで評価されるスクリプト言語を用いてショー要素を記述する。ショー要素は、小さい動き及びジェスチャーから歩行のような複雑な相互作用的な動きまでにわたり得る演技要素である。これらのショー要素は、アニマトロニクス・フィギュア108の動作の集合、並びに音響、及び照明及び映像のような他のコンピュータ制御の事象を含む。ショー要素は一般に、スクリプト言語を用いて、比較的単純なショー要素を組み合わせて複雑な生き物のような動作を生成することによって構成される。
【0101】
一具体例では、スクリプト言語及びその実行環境を物理的連続動作に特化し、厳密なリアルタイムの枠組内で実行する。物理的連続動作への特化は、共通の連続動作タスクを単純かつ効率的にする。リアルタイムの枠組は、結果的な動作がぎこちなくなったり一時停止したりしないことを保証し、一貫した制御及び安全性を維持する。
【0102】
滑らかな動作は、物理的に実現される連続動作にとって有用である。その下にあるシステムは、要素動作、合成動作、及び変換された動作の明示的な調和を維持し、滑らかな
軌跡の自動的な生成を可能にする。一具体例では、簡単に使用できると共にC2連続を維持するキーフレーム連続動作への取り組みを用いる。C2連続によれば、軌跡及びその最初2つの(1次及び2次)導関数が連続であることを意味する。このことは、アニマトロニクス・フィギュア108が1つの位置から他の位置へ不連続的にジャンプしないことだけでなく、その速度及び加速度が限定され、かつ滑らかに変化することも保証する。限定されかつ滑らかに変化する速度及び加速度は、モータトルクも限定しかつ滑らかに変化させる。この情報の維持は、要素動作を特定の一般化された変換によって射影することを可能にし、変換空間の組合せにおいて同時に記述される滑らかな複数軌跡を生成することを可能にする。
【0103】
図10に、ソフトウェアモジュールの階層システム1000を示す。一具体例では、階層システム1000はアニマトロニクス・フィギュア108を制御する。オペレータ・インタフェース1002は、オペレータ101がシステムを制御することを可能にする。さらに、軌跡プランナー(計画装置)1004は、アニマトロニクス・フィギュア108のモータによって進むべき経路を決定する。これに加えて、サーボループ1006は、他のアクチュエータのモータに指示して所望の動作を実行させる。サーボループ1006は、モータ及び他のアクチュエータも監視して、モータ及び他のアクチュエータが指定した限界内で動作していることを確実にする。複数の低レベルのハードウェア・ドライバ(駆動装置)1008は、アニマトロニクス・フィギュア108のハードウェア1010と直接通信する。
【0104】
図11に、軌跡プランナー1004の詳細図を示す。軌跡プランナー1004はアニマトロニクス・フィギュア108の動作を計画し実現させる。上述したスクリプト要素を、アニマトロニクス・フィギュア108のアクチュエータに指示することによって実現して、特定の軌跡に追従させる。これらの軌跡は必ずしも固定または所定のものではないが、一般に、外部入力及びオペレータの制御に基づいて変化する。このことは、お客様との自律的なやり取り、環境への応答、及びスクリプト要素のトリガ起動を可能にする。一具体例では、連続的に進化する軌跡を適時かつ滑らかに生成する。
【0105】
一具体例では、軌跡を演算オブジェクトとして、実際にはコンピュータプログラムとして実現し、これらのプログラムは精密なリアルタイム・クロック上で評価される。これらのプログラムは作成され、インストールされ、そして結果的な動作が完了するか停止されるまで実行される。軌跡が進む間に、軌跡を連続的に評価して、アニマトロニクス・フィギュア108の次の目標位置を決定する。
【0106】
軌跡は厳密に周期的なサイクルで評価される。この評価が一時停止するか、あるいは指定時刻に値を戻さないことは許容されない。こうした一時停止はシステムの故障と区別できず、そして指定時刻後に値を戻さないことは滑らかでない動きを生じさせる。従って、計算にもたつきを生じさせ得る演算の要素は必然的に取り除かれる。
【0107】
評価された言語は、計算を実行するために必要なリソース(資源)を獲得し解放することによって動的な挙動を達成する。最も一般的なリソースはコンピュータメモリであるが、ハードウェア及び他の装置も含む。リソースの獲得は、不定量の時間にわたることができる。従って、スクリプト言語が計算を実行するために用いる方法は、適時の結果を保証することができず、従ってここでは許容されない。
【0108】
軌跡プランナー1004は、軌跡追従兼実行モジュール1102を有する。従って、軌跡追従兼実行モジュール1102は、軌跡を評価して目標位置を決定するリアルタイム・タスクを処理する。軌跡追従兼実行モジュール1102は周期的に起動し、有効な軌跡を評価し、そして目標位置を戻す。
【0109】
これに加えて、軌跡プランナー1004は軌跡作成兼管理モジュール1104を有する。従って、軌跡作成兼管理モジュール1104は非リアルタイムの必要事項、特に軌跡オブジェクトの作成及びリソースの管理を取り扱う。軌跡が完成すると、軌跡作成兼管理モジュール1104及びそのすべてのリソースがマネージャ(管理プログラム)に返却されてクリーンアップ(消去)され、即ち、メモリ及び装置が解放されてコンピュータに戻され、他で使用される。非リアルタイム管理のスレッド、共通のメモリ空間を共用し管理する協働プログラムを有するこの方法は、リソース管理用に他で一般的に用いられる方法とは異なり、こうした方法より強力である。
【0110】
軌跡オブジェクトは、「原子的」なものとすることも合成的なものとすることもできる。「原子的」な軌跡は、他の軌跡とは独立して目標位置を計算することができる。一具体例では、「原子的」な軌跡は時刻または外部入力を用いる。合成軌跡は、成分軌跡の出力に基づいてその目標位置を計算する。
【0111】
図12に、単純な合成軌跡の例を示す。「原子的」な正弦波1202とエンベロープ(包絡線)軌跡1204とを掛け合わせ、そして「原子的」なジョイスティック入力1206をフィルタ処理して加算する。この合成軌跡オブジェクトは、その結果を単一値、即ち次の目標位置として出力する。
【0112】
本実施例における軌跡オブジェクトは、一般化された演算環境を提供する。図12の例は乗算1208及び加算1212のような算術演算子、「原子的」な正弦波1202のような基本関数、エンベロープ軌跡1204のようなキーフレームデータ、及びフィルタ1210使用を示す。
【0113】
これに加えて、他の軌跡は、列軌跡、合成軌跡、及び遷移軌跡とすることができ、論理演算子を実行することができ、そして開始、停止、及び中断中の軌跡を取り扱うことができる。軌跡は複数の出力を生成することができ、そして変換、ループ化、及びテストすることができる。最後に、軌跡は、内部演算環境を規定することができ、この環境では内部変数、内部関数、及び内部軌跡を定義することができる。
【0114】
キーフレームベースの曲線は、連続動作、コンピュータ支援設計、その他にとって一般的かつ重要なツールである。キーフレーム連続動作に用いる標準的な方法は、強力かつ簡単に使用できるが、物理的連続動作が要求する高度な数学的滑らかさ、即ち、アニマトロニクス・フィギュアまたはロボットの生き物のような動きを欠いている。一具体例では、使用する「原子的」なキーフレーム軌跡はC2連続である。C2連続とは、位置及びその最初2つ(1次及び2次)の導関数、即ち速度及び加速度が連続かつ滑らかであることを意味する。
【0115】
一具体例では、滑らかなキーフレームベースの曲線を実現する。従って、曲線はC2連続である。さらに、データを補間し、即ち、曲線は単なる近似ではなく、すべての指定データを通る。これに加えて、キーフレームは不均一な間隔にすることができる。換言すれば、キーフレームの隣接対間の時間を異ならせることができる。個々のキーフレームは位置データのみ、位置及び速度データ、あるいは位置、速度及び加速度データを含むことができ、これらのデータはすべて補間することができる。異なる種類のキーフレーム、例えば位置、位置/速度、または位置/速度/加速度のキーフレームを任意に混合することができる。
【0116】
キーフレーム連続動作の標準的な方法は、ベジェ(Bezier)曲線またはエルミートスプラインの一般クラスをしばしば用い、これらの両者はその標準形式ではC1連続であるに過ぎない。より高次のベジェ及びエルミートスプラインも存在するが、簡単な曲線編集にはあまり適さない。曲線編集用に最も一般的なエルミートスプラインはキャットマル−ロム(Catmul-Rom)法であり、隣接点を用いて、各点において追加的に必要な制限、即ち速度を計算する。追加的な制御を加えることもでき、最も一般的な例は恐らく、AUTODESK(登録商標)の3D-STUDIO MAX(登録商標)及びNETTEK(登録商標)のLIGHTWAVE(登録商標)において見られるコハネク−バーテルズ(Kochanek-Bartels)スプラインである。
【0117】
図13に、複数のキーフレームによって記述される曲線1300を示す。一具体例では、曲線はN個のキーフレームk1, k2,...knの集合で記述される。各キーフレームkiは時刻及び位置{ti, xi}を含み、そして随意的に速度{ti, xi, vi}または速度及び加速度{ti, xi, vi, ai}を含むことができる。速度を指定しないキーフレームについては、キーフレームを次の方法で計算する。最初または最後のキーフレーム(k1またはkN)の場合には、未指定の速度を0に設定し、即ちvi=0とする。他の場合には、隣接するキーフレームを用いて、キャットマル−ロム法で用いたのと同様の方法で速度を計算する。キャットマル−ロム法は、単に隣接点を通る線を引くことによって、図13に示すように、次式のように速度を計算する:
【数1】
キーフレーム間の時間が十分に等しくなければ、キャットマル−ロム法は良好に実行することができず、時として高い加速度を有する曲線を必要とする。
【0118】
図14に、曲線1400が複数のキーフレームによって記述される他の具体例を示す。隣接する2つの速度の加重平均を実現する。この加重平均は次式によって記述される:
【数2】
ここに、dtB=ti+1−ti
【数3】
である。
【0119】
dtA=dtBである際には、viの値はキャットマル−ロム値まで減少する。加速度を指定しないあらゆるキーフレームについて、次の計算を実行する。最初または最後のキーフレーム(k1またはkN)の場合には、未指定の加速度を0に設定し、即ちai=0とする。残りのキーフレームの加速度が未指定である場合には、この加速度は、当該キーフレームから左に向かう曲線の加速度と当該キーフレームから右に向かう曲線の加速度とを平均し、これによりこれらの曲線を補間して何らかのデータが存在するようにする。この計算は次式で表わされる:
【数4】
この要素加速度aA及びaBは次の方法で計算する。前のキーフレームki-1は加速度が指定されているか、あるいは最初のキーフレーム(即ちai-1=ai=0)である場合には、4次多項式fa(t)=a0+a1t+a2t2+a3t3+a4t4を、{ti-1, xi-1, vi-1, ai-1}及び{ti, xi, vi}を通るように解き、そしてtiにおける結果的な加速度を次式のように計算する:
【数5】
その他の場合、即ち、前のキーフレームki-1は加速度が指定されておらず、かつ最初のキーフレームでない場合には、3次多項式fa(t)=a0+a1t+a2t2+a3t3を、{ti-1, xi-1, vi-1}及び{ti, xi, vi}を通るように解き、そしてtiにおける結果的な加速度を次式のように計算する:
【数6】
後続するキーフレームki+1は加速度が指定されているか、あるいは最後のキーフレーム(即ちai+1=aN=0)である場合には、4次多項式fb(t)=b0+b1t+b2t2+b3t3+b4t4を、{ti, xi, vi}及び{ti+1, xi+1, vi+1, ai+1}を通るように解き、そしてtiにおける結果的な加速度を次式のように計算する:
【数7】
その他の場合、即ち、後続するキーフレームki+1は加速度が指定されておらず、かつ最後のキーフレームでない場合には、3次多項式fb(t)=b0+b1t+b2t2+b3t3を、{ti, xi, vi}及び{ti+1, xi+1, vi+1}を通るように解き、そしてtiにおける結果的な加速度を次式のように計算する:
【数8】
【0120】
この時点では、各キーフレームは位置、速度、及び加速度を有し、これらは指定されたものであるか、あるいは隣接するキーフレームの値をもとに計算されたものである。ここで、完全に値を与えられたこれらのキーフレームを用いて、結果的な曲線を計算する。
【0121】
図15に、キーフレームの列を有するグラフ1500を示す。4つのキーフレームのすべてが位置のみ指定されているが、最初及び最後のキーフレームはデフォルトの速度0及び加速度0を有する。一対のキーフレームkiとki+1との間では、曲線は、{ti, xi, vi, ai}及び{ti+1, xi+1, vi+1, ai+1}を通る5次多項式f(τ)=c0+c1τ+c2τ2+c3τ3+c4τ4+c5τ5の値に規定され、ここに:
τ=t−ti
dt=ti+1−ti
c0=xi
c1=vi
c2=ai
【数9】
である。
【0122】
図16Aに、データを補間した他のグラフ1600を示す。グラフ1600は、標準的なキャットマル−ロム・キーフレーム・スプライン、並びに加速度平滑化あり及びなしで平滑化したキーフレームを示す。
【0123】
図16Bに、上記に対応する速度のグラフ1610を示す。図16Cに、上記に対応する加速度のグラフ1620を示す。さらに、時刻t=1及びt=2におけるキーフレーム点では加速度の不連続が存在する。
【0124】
この方法の追加的な利点は、加速度の平均化は一般に最大加速度を低減し、これにより、ロボットが動作を実現するために要求される結果的なトルクを低減する
【0125】
「原子的」及び合成的な軌跡オブジェクトが滑らかな動きを生成すべきだけでなく、曲線間の遷移、中断される曲線、及び予期しない位置から始まる曲線も、滑らかな動きを生成しなければならない。このことは、軌跡の現在の動きを記述するPVA(Position, Velocity, and Acceleration:位置、速度、及び加速度)オブジェクトと称されるソフトウェアオブジェクトを計算し終わることによって行われる。軌跡オブジェクトはPVAを用いて、その動きを初期化し、軌跡オブジェクトが停止または中断する時点をPVAに戻す。これに加えて、PVAオブジェクトを用いて、異なる変換または記述空間内の動きを組み合わせた軌跡を生成することができることが判明している。
【0126】
滑らかな要素軌跡間の遷移は、クロスフェード、即ちフェード自体がC2連続の曲線であるフェード(減衰)を用いて達成される。あらゆるC2連続のS字形曲線を用いることができ、ここでは、このことを次の5次多項式:
f(τ)=3τ(10+τ(6τ−15))
で行い、ここにスケール時間τは0≦τ≦1である。2つの軌跡T1及びT2、並びに遷移関数f(t)がC2連続である場合には、次式の線形結合もC2連続である:
f(αt)T1+(1−f(αt))T2
ここに、αは定数の時間のスケーリング(拡大縮小)係数である。
クロスフェードは、あらゆる軌跡に用いることができる。クロスフェードは、内部軌跡または変換された軌跡を遷移させるために有用であることが多い。このことは、1つの合成動作から異なる合成動作への滑らかな遷移を、直感的ではないことが多いが強力な方法で生じさせる。
【0127】
例として、正弦波的な動作を含む尾の振りを考える。アニマトロニクス・フィギュアが幸せな時には、悲しい時よりも尾を速く振りたいことがある。この例では、尾の動作の周波数は幾分低い値から幾分高い値へと滑らかに遷移する。実際には、固定の正弦波的パターンは、生き物のような動きにしては完全過ぎるように、機械的過ぎるように見えることがある。より生き物のようにする解決法は、低周波数のゆるやかに変化する擬似乱数パターンから高周波数のゆるやかに変化する擬似乱数パターンに遷移させることである。
【0128】
一部の軌跡、最も顕著なものとしてキーフレーム軌跡は、任意の初期位置または初期動作から始まることができる。すべての軌跡オブジェクトは、実行中に、最初に評価される前に初期化される。この初期化は、開始時刻及び開始PVAのような多数のパラメータを設定する。キーフレーム軌跡は、そのように指定されれば、この開始PVAを初期キーフレーム、曲線内の後続するキーフレームとして、あるいはこの軌跡オブジェクトが用いる計算上の要素として用いることができる。従って、予め定められていない動作から始まる軌跡でも、滑らかな軌跡を算出してこれに追従することができる。
【0129】
制御システムの結果的なタスクがロボットのモータを動かすことである間には、変換空間内で動きを記述することがより容易であることが多い。歩行中のアニマトロニクス・フィギュアについては、体を水平、垂直に動かすか回転させる概念的に単純なタスクは一般に、すべての脚のすべてのモータを調和させて動かす必要がある。これらの概念的に単純な体の動きの組合せを迅速に生成することは、各ジョイントの軌跡を直接記述しなければならない場合には非実用的なほど困難になる。歩行の例では、動きは体の動きで記述され、システムはこの動きを生成するために必要な脚のモータの動きを計算する。この例における変換は、体の動きと脚のモータの動きとの間で行われる。
【0130】
変換を合成軌跡及びPVAと組み合わせることによって、この好適な実施例では追加的な能力が実現される。特に強力な能力は、動きを1つの変換空間から他の変換空間内に射影することである。例として、トランペットを拾い上げて演奏するアニマトロニクス・フィギュアを考えれば、このアニマトロニクス・フィギュアは常時その頭及び体を動かしている。トランペットを拾い上げる間のアニマトロニクス・フィギュアの手の位置は、表(テーブル)の静止座標系で最も容易に記述される。トランペットを演奏する間のアニマトロニクス・フィギュアの動きは、フィギュアの唇の動きで最も容易に記述される。1つの変換空間から他の変換空間へ滑らかに遷移すること、並びに1つの空間内で記述される動きを他の空間内で修正または組み合わせることを可能にすることは、1つの空間内で記述される動作を結合動作に射影し、そしてこれらの結合動作を、元の動作が修正されるか他の要素動作と組み合わされる他の変換空間内に射影することによって達成される。
【0131】
他の例はアニマトロニクス恐竜の動作であり、歩行中の足の位置を含む。足が地面についている間には、恐竜の位置は地面の座標で記述され、特に、地面上の足は地面上で移動したり滑ったりするべきではない。一歩の間(歩行ステップ中)に足が空中で振れる間には、恐竜の位置は体の位置で記述される。これら2つの記述または変換空間どうしの間の円滑な遷移を可能にすることによって、足を滑らかに地面から離してもち上げ、規定された歩幅の位置まで前向きに振り、そして滑らかに地面上に戻すことを、足を滑らかに地面から離して地面に着けるために必要な各要素動作を気にしなければならないことなしに、スクリプト言語で求めることができる。
【0132】
軌跡を記述し、迅速に試みる能力は、能力及び柔軟性を大いにもたらす。スクリプト言語は、軌跡オブジェクトを高いレベルで記述し、そしてコンピュータに管理させることを可能にする。コンピュータは、スクリプトを読み込む間あるいは文法解析する間に、にこれらのスクリプトに何らかの最適化を実行することもできる。これらの最適化は、より効率的に評価されるより小さい軌跡オブジェクトを生じさせる。
【0133】
好適な実施例で用いられるスクリプト言語は、軌跡を規定し操作することを可能にするテキストベースの言語である。説明上、前に例示した軌跡用のスクリプトを示す。そのシンタックス(構文)はコンピュータ言語C++を思わせる。
【0134】
図17に、滑らかなキーフレームを記述するために用いられる、図15に示す単純な4点キーフレーム軌跡用のスクリプトの例を示す。この場合には、軌跡は、対となるキーフレーム間に時間をおいて分散されたキーフレーム位置の単なるリストである。”//”の右側の文字列は、コンピュータが無視するコマンド(コメント文)である。結果的な軌跡は3秒間で描かれる。
【0135】
図18に、図12に示す合成軌跡用のスクリプトの例を示す。値”joistick”(ジョイスティック)及び”envelope”(エンベロープ)がまず定義され、そしてこれらの値は最終的な合成軌跡における構成要素として用いられる。さらに、軌跡内の第2キーフレームは位置及び速度の項を共に含む。
【0136】
アニマトロニクスシステム100は、オペレータ101が参加して一部または全部の動作を修正することも完全に置き換え、そしてできれば新たな点においても制御を戻すことができる無制約の環境を扱うあらゆるシステムをカバーすることを意図したものである。アニマトロニクスシステム100は、用意(予め記録)された動作、(一般にセンサ応答で、あるいは計画的に)計算された動作、及び生の(オペレータ制御の)動作を混合し、これらの動作間の切り換えを行い、継ぎ目のない(シームレスな)合成物(アマルガム)を生成する能力を提供する。従って、アニマトロニクスシステム100は種々の異なる構成に応用することができる。例えば、アニマトロニクス・フィギュア108は、外科手術ロボットがある物を見失うか、さもなければ道に迷った状態にある場合に、医者が主導的に指揮する外科手術ロボットとすることができる。医者が制御を取った場合には、結果的な動きは流体のように見える。医者の介入が外科手術ロボットの動作の制御と調和しない場合には、結果的な動きは、患者にとって有害になり得る変化の形で生成され得る。
【0137】
これに加えて、アニマトロニクス・フィギュア108は、自動車、飛行機、スペースシャトル、または列車のような交通手段とすることができる。交通手段における自動パイロット機能は、自動パイロットによる動作からオペレータによる動作へ流体のように移行して、乗り物及びその乗客の安全を保障することを可能にする。アニマトロニクスシステム100は、無視された入力または誤操作も扱うことができる。
【0138】
さらに、アニマトロニクス・フィギュア108は家事用ロボットとすることもでき、所有者は家事用ロボットに種々の仕事をさせることができる。例えば、所有者はロボットに、家事をやらせるのではなく来客に挨拶させることができる。ここでも、動作の移行は生き物のように見える。
【0139】
アニマトロニクス・フィギュア108は、化学、核、または生物的な廃棄物、かけら、あるいは核兵器の降下物を清掃するために用いる有害廃棄物清掃ロボットとすることもできる。例えば、ユーザは有害廃棄物ロボットに、どの廃棄物材料を封印コンテナ内に置くべきかを指示することができるが、その仕事を自前で完了させることを任せることもできる。ユーザ制御とロボット制御との間の動作の移行は、ロボットが危険な廃棄物材料を落下させるか、さもなければ誤った取扱いをすることを防ぐのに十分なほど滑らかである。
【0140】
アニマトロニクス・フィギュア108は爆弾廃棄ロボットとすることもできる。例えば、ユーザは特に敏感な信管抜き操作を実行する間に、ロボットの特定動作を直接制御/ガイド(誘導)することもできるが、ユーザのガイダンス(誘導)なしに爆弾の廃棄を完了させることをロボットに任せることができる。ここでも、ユーザ制御とロボット制御との間の動作の移行は、敏感かつ危険であり得る作業を台無しにし得る事故的な、及び/または意図しない動作を防ぐように滑らかである。
【0141】
以上の説明は多くの特定事項を含むが、これらの事項は本発明の範囲を限定するものではなく、本発明の好適な実施例の例示と解釈すべきである。本発明は、本明細書に開示する異なる種類及び/または具体例からの要素のあらゆる組合せ及び副次的組合せを含む。これらの特徴、従って本発明の範囲は、請求項およびこれと等価なものに照らして解釈すべきであることは当業者にとって明らかである。
【図面の簡単な説明】
【0142】
【図1】異なる種類のショーをリアルタイムかつ生き物のように生成すべく構成されたアニマトロニクスシステムを示す図である。
【図2】アニマトロニクス・フィギュアの動作を生成するプロセスを示す図である。
【図3A】アルゴリズムに従ってアニマトロニクス・フィギュアの動作を決めるアルゴリズム構成を示す図である。
【図3B】センサが検出した状態をアルゴリズム応答モジュールに提供するアルゴリズム構成300の一具体例を示す図である。
【図3C】受信モジュールが検出した状態をセンサから受信し、かつユーザが入力した動作をオペレータから受信するアルゴリズム構成の他の具体例を示す図である。
【図4】ユーザが入力した命令をアルゴリズム的に決定した命令と組み合わせるプロセスを示す図である。
【図5】アニマトロニクス・フィギュアが生成する動作をフィルタ処理するフィルタ処理アニマトロニクス構成を示す図である。
【図6A】フィルタ処理していないアニマトロニクス・フィギュアの頭の動作のグラフである。
【図6B】フィルタ処理したアニマトロニクス・フィギュアの頭の動作のグラフである。
【図7】ユーザが入力した動作とアルゴリズム的に決定した動作とを調和させてフィルタ処理して、アニマトロニクス・フィギュアの生き物のような動きを生成するアニマトロニクス・フィルタ構成を示す図である。
【図8A】アニマトロニクス・フィギュア用のフィルタを示すグラフである。
【図8B】フィルタモジュールによってフィルタ処理されたアニマトロニクス・フィギュアの身体部分の回転を表わすグラフである。
【図9A】ユーザ入力コマンド及びユーザ入力コマンドの発生によって決まるコマンドに基づいてアニマトロニクス・フィギュアをフィルタ処理するプロセスを示す図である。
【図9B】ユーザ入力コマンド及び刺激から決まるコマンドに基づいてアニマトロニクス・フィギュアの動作をフィルタ処理するプロセスを示す図である。
【図10】ソフトウェアモジュールの階層システムを示す図である。
【図11】軌跡プランナーの詳細図である。
【図12】簡単な合成軌跡の例を示す図である。
【図13】複数のキーフレームによって記述される曲線を示す図である。
【図14】曲線が複数のキーフレームによって記述される他の具体例を示す図である。
【図15】点の列を示すグラフである。
【図16A】データを補間した他のグラフである。
【図16B】図16Aに示すグラフに対応する速度を示すグラフである。
【図16C】図16Aに示すグラフに対応する加速度を示すグラフである。
【図17】図15に示す単純な4点キーフレームの軌跡用のスクリプト記述の例である。
【図18】図12に示す合成軌跡用のスクリプト記述の例である。
【特許請求の範囲】
【請求項1】
固定ショー選択入力及び人形操作入力をオペレータから受信する受信モジュールであって、前記固定ショー選択入力は少なくとも1つの固定ショー命令に関連し、前記人形操作入力は人形操作命令を与える受信モジュールと;
アニマトロニクス・フィギュアと;
前記固定ショー選択入力に関連する前記少なくとも1つの固定ショー命令を、少なくとも1つの固定ショーの物理的動作命令に変換し、前記受信した人形操作命令を少なくとも1つの人形操作の物理的動作命令に変換する変換ソフトウェアモジュールと;
前記少なくとも1つの固定ショーの物理的動作命令を受信し、前記少なくとも1つの人形操作の物理的動作命令を受信し、前記少なくとも1つの固体ショーの物理的動作命令及び前記少なくとも1つの人形操作の物理的動作命令から合成動作命令を計算し、これにより、少なくとも1つのアクチュエータが前記アニマトロニクス・フィギュアの少なくとも1つの構成要素を生き物のように動作させることができる動作ソフトウェアモジュールと
を具えていることを特徴とするアニマトロニクスシステム。
【請求項2】
さらに、前記アニマトロニクス・フィギュアの前記少なくとも1つの構成要素の動作が行われる際に、音響装置に命令を与えて音響信号を出力させる音響ソフトウェアモジュールを具えていることを特徴とする請求項1に記載のアニマトロニクスシステム。
【請求項3】
さらに、前記固定ショー選択入力を、所定時刻に自動的に前記受信モジュールに供給する自動固定ショー・ソフトウェアモジュールを具えていることを特徴とする請求項1に記載のアニマトロニクスシステム。
【請求項4】
前記所定時刻は、オペレータが前記人形操作入力を与える時刻と一致することを特徴とする請求項3に記載のアニマトロニクスシステム。
【請求項5】
さらに、オペレータがボタンを押して前記固定ショー選択入力を与えるためのボタンを具えていることを特徴とする請求項1に記載のアニマトロニクスシステム。
【請求項6】
さらに、前記アニマトロニクス・フィギュアに動作的に接続され、事象の発生を測定するセンサを具えていることを特徴とする請求項1に記載のアニマトロニクスシステム。
【請求項7】
前記事象の発生をきっかけとして、前記固定ショー選択入力が前記受信モジュールに入力されることを特徴とする請求項6に記載のアニマトロニクスシステム。
【請求項8】
さらに、オペレータがダイヤルを回して前記固定ショー選択入力を前記受信モジュールに与えるためのダイヤルを具えていることを特徴とする請求項1に記載のアニマトロニクスシステム。
【請求項9】
アニマトロニクス・フィギュアの動作を生成する方法において、
人形操作の動作を実行するための人形操作命令を前記アニマトロニクス・フィギュアに与えるステップと;
固定ショーの動作を実行するための少なくとも1つの固定ショー命令に関連する固定ショー選択を前記アニマトロニクス・フィギュアに与えるステップと;
前記人形操作命令と前記少なくとも1つの固定ショー命令とを組み合わせて組合せ命令を形成するステップと;
前記アニマトロニクス・フィギュアに、前記組合せ命令を実行することを命令するステップと
を具えていることを特徴とするアニマトロニクス・フィギュアの動作生成方法。
【請求項10】
前記固定ショー選択がユーザによって与えられることを特徴とする請求項9に記載の方法。
【請求項11】
前記アニマトロニクス・フィギュアに前記組合せ命令を実行することを命令することによって、前記人形操作の動作と前記固定ショーの動作との合成動作が行われることを特徴とする請求項9に記載の方法。
【請求項12】
前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作を実行する構成要素と同じ構成要素によって実行されることを特徴とする請求項11に記載の方法。
【請求項13】
前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作を実行する構成要素とは異なる構成要素によって実行されることを特徴とする請求項11に記載の方法。
【請求項14】
アニマトロニクス・フィギュアと;
第1コマンド及び第2コマンドをオペレータから受信する受信モジュールであって、前記受信モジュールは前記アニマトロニクス・フィギュアに動作的に接続され、前記受信モジュールは前記アニマトロニクス・フィギュアと通信し、前記アニマトロニクス・フィギュアは前記第1コマンドに従って第1動作を行い、前記アニマトロニクス・フィギュアは前記第2コマンドに従って第2動作を行う受信モジュールと;
前記第1コマンドを第1フィルタに通してフィルタ処理し、前記第2コマンドを第2フィルタに通してフィルタ処理して、前記第1コマンドによって生じる前記アニマトロニクス・フィギュアの前記第1動作を、前記第2コマンドによって生じる前記アニマトロニクス・フィギュアの前記第2動作と調和させて、前記アニマトロニクス・フィギュアの動作を生き物のように見せるフィルタモジュールと
を具えていることを特徴とするアニマトロニクスシステム。
【請求項15】
前記第1コマンドが人形操作命令であることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項16】
前記第2コマンドが、少なくとも1つの固定ショー命令に関連する固定ショー選択であることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項17】
前記第1フィルタがローパスフィルタであることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項18】
前記第2フィルタがハイパスフィルタであることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項19】
前記第2フィルタがバンドパスフィルタであることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項20】
前記第1フィルタと前記第2フィルタとが、前記アニマトロニクス・フィギュアの同じ身体部分の異なる構成要素上に配置されていることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項21】
前記第1フィルタと前記第2フィルタとが、前記アニマトロニクス・フィギュアの異なる身体部分に配置されていることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項22】
脚と;
前記脚に動作的に接続され、前記脚の動作を行わせる脚部アクチュエータと;
車輪と;
前記車輪に動作的に接続され、前記車輪の動作を行わせる車輪アクチュエータと;
前記脚の動作及び前記車輪の動作を決定して前記アニマトロニクス・フィギュアの動作を行わせるプロセッサであって、前記脚の動作を前記脚部アクチュエータに送信し、前記車輪の動作を前記車輪アクチュエータに送信するプロセッサと
を具えていることを特徴とするアニマトロニクス・フィギュア。
【請求項23】
さらに、前記アニマトロニクス・フィギュアの第1現在位置を測定する位置センサを具えていることを特徴とする請求項22に記載のアニマトロニクス・フィギュア。
【請求項24】
さらに、前記アニマトロニクス・フィギュアの相対的な第2現在位置を、前記アニマトロニクス・フィギュアの初期位置から進んだ距離だけ増加させることによって測定する増分センサを具えていることを特徴とする請求項23に記載のアニマトロニクス・フィギュア。
【請求項25】
さらに、前記アニマトロニクス・フィギュアの前記第2現在位置と前記アニマトロニクス・フィギュアの前記第1現在位置との差が位置クリッピング限界に達したか否かを判定するクリッピングモジュールを具えていることを特徴とする請求項24に記載のアニマトロニクス・フィギュア。
【請求項26】
前記クリッピングモジュールが、前記位置クリッピング限界に達したか否かの判定に加えて、前記第1現在位置から前記第2現在位置へ移動中の前記アニマトロニクス・フィギュアの速度が速度クリッピング限界に達したか否かを判定することを特徴とする請求項25に記載のアニマトロニクス・フィギュア。
【請求項27】
さらに、前記第1現在位置から前記第2現在位置へ移動中の前記アニマトロニクス・フィギュアの速度がクリッピング限界に達したか否かを判定するクリッピングモジュールを具えていることを特徴とする請求項24に記載のアニマトロニクス・フィギュア。
【請求項28】
さらに、前記第1現在位置から前記第2現在位置へ移動中の前記アニマトロニクス・フィギュアの加速度がクリッピング限界に達したか否かを、請求項25に記載の位置クリッピング限界に達したか否か、及び/または請求項26に記載の速度クリッピング限界に達したか否かとは別個に、あるいはこれらと共に判定するクリッピングモジュールを具えていることを特徴とする請求項24に記載のアニマトロニクス・フィギュア。
【請求項29】
前記クリッピング限界に達した場合に、前記クリッピングモジュールが、前記アニマトロニクス・フィギュアの軌跡を短縮することを特徴とする請求項25に記載のアニマトロニクス・フィギュア。
【請求項30】
前記クリッピング限界に達した場合に、前記クリッピングモジュールが、前記アニマトロニクス・フィギュアの速度を低下させることを特徴とする請求項22に記載のアニマトロニクス・フィギュア。
【請求項31】
前記クリッピング限界に達した場合に、前記クリッピングモジュールが、前記アニマトロニクス・フィギュアの加速度を低下させることを特徴とする請求項22に記載のアニマトロニクス・フィギュア。
【請求項32】
アニマトロニクス・フィギュアの動作を生成する方法において、
前記アニマトロニクス・フィギュアに人形操作命令を与えて人形操作の動作を実行させるステップと;
固定ショー選択コマンドを前記アニマトロニクス・フィギュアに与えて、固定ショーの選択に関連する少なくとも1つの固定ショーの動作を実行させるステップと;
前記人形操作の動作と前記固定ショーの動作とを組み合わせて合成動作にするステップと;
前記アニマトロニクス・フィギュアに、前記合成動作を実行することを命令するステップと
を具えていることを特徴とする請求項22に記載のアニマトロニクス・フィギュアの動作生成方法。
【請求項33】
前記固定ショーの選択がユーザによって行われることを特徴とする請求項32に記載の方法。
【請求項34】
前記人形操作の動作と前記固定ショーの動作とを組み合わせることが、前記人形操作の動作と前記少なくとも1つの固定ショーの動作との合成であることを特徴とする請求項32に記載の方法。
【請求項35】
前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作が行われる構成要素と同じ構成要素上で行われることを特徴とする請求項34に記載の方法。
【請求項36】
前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作が行われる構成要素とは異なる構成要素上で行われることを特徴とする請求項35に記載の方法。
【請求項37】
さらに、前記人形操作の動作と前記固定ショーの動作との合成を低減する所定限界を具えていることを特徴とする請求項34に記載の方法。
【請求項38】
アニマトロニクスシステムにおいて、
アニマトロニクス・フィギュアと;
第1コマンドをオペレータから受信する受信モジュールであって、前記受信モジュールは前記アニマトロニクス・フィギュアに動作的に接続され、前記受信モジュールは前記アニマトロニクス・フィギュアと通信し、前記アニマトロニクスシステムが前記第1コマンドを、第1動作を決定するための計算の一部として用いる受信モジュールと;
前記第1コマンドが前記アニマトロニクス・フィギュアに与えられたことの発生に基づいて、第2コマンドを前記アニマトロニクス・フィギュアに与えるアルゴリズム応答モジュールであって、前記アルゴリズム応答モジュールは、前記第1コマンドを前記受信モジュールから受信し、前記アニマトロニクス・フィギュアは、前記第2コマンドに従って第2動作を行うアルゴリズム応答モジュールと
を具えていることを特徴とするアニマトロニクスシステム。
【請求項39】
前記第1コマンドが人形操作命令であることを特徴とする請求項38に記載のアニマトロニクスシステム。
【請求項40】
前記第2コマンドが、少なくとも1つの固定ショー命令に関連する固定ショー選択入力であることを特徴とする請求項38に記載のアニマトロニクスシステム。
【請求項41】
前記第2コマンドが、前記アニマトロニクス・フィギュアに動作的に接続されたセンサが刺激を検出したことの発生に基づくアニマトロニクス固定ショー命令であることを特徴とする請求項38に記載のアニマトロニクスシステム。
【請求項42】
さらに、前記第1動作を第1フィルタに通してフィルタ処理し、前記第2動作を第2フィルタに通してフィルタ処理して、前記第1動作を前記第2動作と調和させて、前記アニマトロニクス・フィギュアの動作を生き物のように見せるフィルタモジュールを具えていることを特徴とする請求項38に記載のアニマトロニクスシステム。
【請求項43】
固定ショー選択入力及び人形操作入力をオペレータから受信する受信モジュールであって、前記固定ショー選択入力は少なくとも1つの固定ショー命令に関連し、前記人形操作入力は人形操作命令を与える受信モジュールと;
ロボティクス・フィギュアと;
前記固定ショー選択入力に関連する前記少なくとも1つの固定ショー命令を、少なくとも1つの固定ショーの物理的動作命令に変換し、前記受信した人形操作命令を少なくとも1つの人形操作の物理的動作命令に変換する変換ソフトウェアモジュールと;
前記少なくとも1つの固定ショーの物理的動作命令を受信し、前記少なくとも1つの人形操作の物理的動作命令を受信し、前記少なくとも1つの固体ショーの物理的動作命令及び前記少なくとも1つの人形操作の物理的動作命令から合成動作命令を計算し、これにより、少なくとも1つのアクチュエータが前記ロボティクス・フィギュアの少なくとも1つの構成要素を生き物のように動作させることができる動作ソフトウェアモジュールと
ことを特徴とするロボティクスシステム。
【請求項44】
さらに、前記ロボティクス・フィギュアの前記少なくとも1つの構成要素の動作が行われる際に、音響装置に命令を与えて音響信号を出力させる音響ソフトウェアモジュールを具えていることを特徴とする請求項43に記載のロボティクスシステム。
【請求項45】
さらに、前記固定ショー選択入力を、所定時刻に自動的に前記受信モジュールに供給する自動固定ショー・ソフトウェアモジュールを具えていることを特徴とする請求項43に記載のロボティクスシステム。
【請求項46】
前記所定時刻は、オペレータが前記人形操作入力を与える時刻と一致することを特徴とする請求項45に記載のロボティクスシステム。
【請求項47】
さらに、オペレータがボタンを押して前記固定ショー選択入力を与えるためのボタンを具えていることを特徴とする請求項45に記載のロボティクスシステム。
【請求項48】
さらに、前記ロボティクス・フィギュアに動作的に接続され、事象の発生を測定するセンサを具えていることを特徴とする請求項45に記載のロボティクスシステム。
【請求項49】
前記事象の発生をきっかけとして、前記固定ショー選択入力が前記受信モジュールに入力されることを特徴とする請求項48に記載のロボティクスシステム。
【請求項50】
さらに、オペレータがダイヤルを回して前記固定ショー選択入力を前記受信モジュールに与えるためのダイヤルを具えていることを特徴とする請求項43に記載のロボティクスシステム。
【請求項1】
固定ショー選択入力及び人形操作入力をオペレータから受信する受信モジュールであって、前記固定ショー選択入力は少なくとも1つの固定ショー命令に関連し、前記人形操作入力は人形操作命令を与える受信モジュールと;
アニマトロニクス・フィギュアと;
前記固定ショー選択入力に関連する前記少なくとも1つの固定ショー命令を、少なくとも1つの固定ショーの物理的動作命令に変換し、前記受信した人形操作命令を少なくとも1つの人形操作の物理的動作命令に変換する変換ソフトウェアモジュールと;
前記少なくとも1つの固定ショーの物理的動作命令を受信し、前記少なくとも1つの人形操作の物理的動作命令を受信し、前記少なくとも1つの固体ショーの物理的動作命令及び前記少なくとも1つの人形操作の物理的動作命令から合成動作命令を計算し、これにより、少なくとも1つのアクチュエータが前記アニマトロニクス・フィギュアの少なくとも1つの構成要素を生き物のように動作させることができる動作ソフトウェアモジュールと
を具えていることを特徴とするアニマトロニクスシステム。
【請求項2】
さらに、前記アニマトロニクス・フィギュアの前記少なくとも1つの構成要素の動作が行われる際に、音響装置に命令を与えて音響信号を出力させる音響ソフトウェアモジュールを具えていることを特徴とする請求項1に記載のアニマトロニクスシステム。
【請求項3】
さらに、前記固定ショー選択入力を、所定時刻に自動的に前記受信モジュールに供給する自動固定ショー・ソフトウェアモジュールを具えていることを特徴とする請求項1に記載のアニマトロニクスシステム。
【請求項4】
前記所定時刻は、オペレータが前記人形操作入力を与える時刻と一致することを特徴とする請求項3に記載のアニマトロニクスシステム。
【請求項5】
さらに、オペレータがボタンを押して前記固定ショー選択入力を与えるためのボタンを具えていることを特徴とする請求項1に記載のアニマトロニクスシステム。
【請求項6】
さらに、前記アニマトロニクス・フィギュアに動作的に接続され、事象の発生を測定するセンサを具えていることを特徴とする請求項1に記載のアニマトロニクスシステム。
【請求項7】
前記事象の発生をきっかけとして、前記固定ショー選択入力が前記受信モジュールに入力されることを特徴とする請求項6に記載のアニマトロニクスシステム。
【請求項8】
さらに、オペレータがダイヤルを回して前記固定ショー選択入力を前記受信モジュールに与えるためのダイヤルを具えていることを特徴とする請求項1に記載のアニマトロニクスシステム。
【請求項9】
アニマトロニクス・フィギュアの動作を生成する方法において、
人形操作の動作を実行するための人形操作命令を前記アニマトロニクス・フィギュアに与えるステップと;
固定ショーの動作を実行するための少なくとも1つの固定ショー命令に関連する固定ショー選択を前記アニマトロニクス・フィギュアに与えるステップと;
前記人形操作命令と前記少なくとも1つの固定ショー命令とを組み合わせて組合せ命令を形成するステップと;
前記アニマトロニクス・フィギュアに、前記組合せ命令を実行することを命令するステップと
を具えていることを特徴とするアニマトロニクス・フィギュアの動作生成方法。
【請求項10】
前記固定ショー選択がユーザによって与えられることを特徴とする請求項9に記載の方法。
【請求項11】
前記アニマトロニクス・フィギュアに前記組合せ命令を実行することを命令することによって、前記人形操作の動作と前記固定ショーの動作との合成動作が行われることを特徴とする請求項9に記載の方法。
【請求項12】
前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作を実行する構成要素と同じ構成要素によって実行されることを特徴とする請求項11に記載の方法。
【請求項13】
前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作を実行する構成要素とは異なる構成要素によって実行されることを特徴とする請求項11に記載の方法。
【請求項14】
アニマトロニクス・フィギュアと;
第1コマンド及び第2コマンドをオペレータから受信する受信モジュールであって、前記受信モジュールは前記アニマトロニクス・フィギュアに動作的に接続され、前記受信モジュールは前記アニマトロニクス・フィギュアと通信し、前記アニマトロニクス・フィギュアは前記第1コマンドに従って第1動作を行い、前記アニマトロニクス・フィギュアは前記第2コマンドに従って第2動作を行う受信モジュールと;
前記第1コマンドを第1フィルタに通してフィルタ処理し、前記第2コマンドを第2フィルタに通してフィルタ処理して、前記第1コマンドによって生じる前記アニマトロニクス・フィギュアの前記第1動作を、前記第2コマンドによって生じる前記アニマトロニクス・フィギュアの前記第2動作と調和させて、前記アニマトロニクス・フィギュアの動作を生き物のように見せるフィルタモジュールと
を具えていることを特徴とするアニマトロニクスシステム。
【請求項15】
前記第1コマンドが人形操作命令であることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項16】
前記第2コマンドが、少なくとも1つの固定ショー命令に関連する固定ショー選択であることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項17】
前記第1フィルタがローパスフィルタであることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項18】
前記第2フィルタがハイパスフィルタであることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項19】
前記第2フィルタがバンドパスフィルタであることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項20】
前記第1フィルタと前記第2フィルタとが、前記アニマトロニクス・フィギュアの同じ身体部分の異なる構成要素上に配置されていることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項21】
前記第1フィルタと前記第2フィルタとが、前記アニマトロニクス・フィギュアの異なる身体部分に配置されていることを特徴とする請求項14に記載のアニマトロニクスシステム。
【請求項22】
脚と;
前記脚に動作的に接続され、前記脚の動作を行わせる脚部アクチュエータと;
車輪と;
前記車輪に動作的に接続され、前記車輪の動作を行わせる車輪アクチュエータと;
前記脚の動作及び前記車輪の動作を決定して前記アニマトロニクス・フィギュアの動作を行わせるプロセッサであって、前記脚の動作を前記脚部アクチュエータに送信し、前記車輪の動作を前記車輪アクチュエータに送信するプロセッサと
を具えていることを特徴とするアニマトロニクス・フィギュア。
【請求項23】
さらに、前記アニマトロニクス・フィギュアの第1現在位置を測定する位置センサを具えていることを特徴とする請求項22に記載のアニマトロニクス・フィギュア。
【請求項24】
さらに、前記アニマトロニクス・フィギュアの相対的な第2現在位置を、前記アニマトロニクス・フィギュアの初期位置から進んだ距離だけ増加させることによって測定する増分センサを具えていることを特徴とする請求項23に記載のアニマトロニクス・フィギュア。
【請求項25】
さらに、前記アニマトロニクス・フィギュアの前記第2現在位置と前記アニマトロニクス・フィギュアの前記第1現在位置との差が位置クリッピング限界に達したか否かを判定するクリッピングモジュールを具えていることを特徴とする請求項24に記載のアニマトロニクス・フィギュア。
【請求項26】
前記クリッピングモジュールが、前記位置クリッピング限界に達したか否かの判定に加えて、前記第1現在位置から前記第2現在位置へ移動中の前記アニマトロニクス・フィギュアの速度が速度クリッピング限界に達したか否かを判定することを特徴とする請求項25に記載のアニマトロニクス・フィギュア。
【請求項27】
さらに、前記第1現在位置から前記第2現在位置へ移動中の前記アニマトロニクス・フィギュアの速度がクリッピング限界に達したか否かを判定するクリッピングモジュールを具えていることを特徴とする請求項24に記載のアニマトロニクス・フィギュア。
【請求項28】
さらに、前記第1現在位置から前記第2現在位置へ移動中の前記アニマトロニクス・フィギュアの加速度がクリッピング限界に達したか否かを、請求項25に記載の位置クリッピング限界に達したか否か、及び/または請求項26に記載の速度クリッピング限界に達したか否かとは別個に、あるいはこれらと共に判定するクリッピングモジュールを具えていることを特徴とする請求項24に記載のアニマトロニクス・フィギュア。
【請求項29】
前記クリッピング限界に達した場合に、前記クリッピングモジュールが、前記アニマトロニクス・フィギュアの軌跡を短縮することを特徴とする請求項25に記載のアニマトロニクス・フィギュア。
【請求項30】
前記クリッピング限界に達した場合に、前記クリッピングモジュールが、前記アニマトロニクス・フィギュアの速度を低下させることを特徴とする請求項22に記載のアニマトロニクス・フィギュア。
【請求項31】
前記クリッピング限界に達した場合に、前記クリッピングモジュールが、前記アニマトロニクス・フィギュアの加速度を低下させることを特徴とする請求項22に記載のアニマトロニクス・フィギュア。
【請求項32】
アニマトロニクス・フィギュアの動作を生成する方法において、
前記アニマトロニクス・フィギュアに人形操作命令を与えて人形操作の動作を実行させるステップと;
固定ショー選択コマンドを前記アニマトロニクス・フィギュアに与えて、固定ショーの選択に関連する少なくとも1つの固定ショーの動作を実行させるステップと;
前記人形操作の動作と前記固定ショーの動作とを組み合わせて合成動作にするステップと;
前記アニマトロニクス・フィギュアに、前記合成動作を実行することを命令するステップと
を具えていることを特徴とする請求項22に記載のアニマトロニクス・フィギュアの動作生成方法。
【請求項33】
前記固定ショーの選択がユーザによって行われることを特徴とする請求項32に記載の方法。
【請求項34】
前記人形操作の動作と前記固定ショーの動作とを組み合わせることが、前記人形操作の動作と前記少なくとも1つの固定ショーの動作との合成であることを特徴とする請求項32に記載の方法。
【請求項35】
前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作が行われる構成要素と同じ構成要素上で行われることを特徴とする請求項34に記載の方法。
【請求項36】
前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作が行われる構成要素とは異なる構成要素上で行われることを特徴とする請求項35に記載の方法。
【請求項37】
さらに、前記人形操作の動作と前記固定ショーの動作との合成を低減する所定限界を具えていることを特徴とする請求項34に記載の方法。
【請求項38】
アニマトロニクスシステムにおいて、
アニマトロニクス・フィギュアと;
第1コマンドをオペレータから受信する受信モジュールであって、前記受信モジュールは前記アニマトロニクス・フィギュアに動作的に接続され、前記受信モジュールは前記アニマトロニクス・フィギュアと通信し、前記アニマトロニクスシステムが前記第1コマンドを、第1動作を決定するための計算の一部として用いる受信モジュールと;
前記第1コマンドが前記アニマトロニクス・フィギュアに与えられたことの発生に基づいて、第2コマンドを前記アニマトロニクス・フィギュアに与えるアルゴリズム応答モジュールであって、前記アルゴリズム応答モジュールは、前記第1コマンドを前記受信モジュールから受信し、前記アニマトロニクス・フィギュアは、前記第2コマンドに従って第2動作を行うアルゴリズム応答モジュールと
を具えていることを特徴とするアニマトロニクスシステム。
【請求項39】
前記第1コマンドが人形操作命令であることを特徴とする請求項38に記載のアニマトロニクスシステム。
【請求項40】
前記第2コマンドが、少なくとも1つの固定ショー命令に関連する固定ショー選択入力であることを特徴とする請求項38に記載のアニマトロニクスシステム。
【請求項41】
前記第2コマンドが、前記アニマトロニクス・フィギュアに動作的に接続されたセンサが刺激を検出したことの発生に基づくアニマトロニクス固定ショー命令であることを特徴とする請求項38に記載のアニマトロニクスシステム。
【請求項42】
さらに、前記第1動作を第1フィルタに通してフィルタ処理し、前記第2動作を第2フィルタに通してフィルタ処理して、前記第1動作を前記第2動作と調和させて、前記アニマトロニクス・フィギュアの動作を生き物のように見せるフィルタモジュールを具えていることを特徴とする請求項38に記載のアニマトロニクスシステム。
【請求項43】
固定ショー選択入力及び人形操作入力をオペレータから受信する受信モジュールであって、前記固定ショー選択入力は少なくとも1つの固定ショー命令に関連し、前記人形操作入力は人形操作命令を与える受信モジュールと;
ロボティクス・フィギュアと;
前記固定ショー選択入力に関連する前記少なくとも1つの固定ショー命令を、少なくとも1つの固定ショーの物理的動作命令に変換し、前記受信した人形操作命令を少なくとも1つの人形操作の物理的動作命令に変換する変換ソフトウェアモジュールと;
前記少なくとも1つの固定ショーの物理的動作命令を受信し、前記少なくとも1つの人形操作の物理的動作命令を受信し、前記少なくとも1つの固体ショーの物理的動作命令及び前記少なくとも1つの人形操作の物理的動作命令から合成動作命令を計算し、これにより、少なくとも1つのアクチュエータが前記ロボティクス・フィギュアの少なくとも1つの構成要素を生き物のように動作させることができる動作ソフトウェアモジュールと
ことを特徴とするロボティクスシステム。
【請求項44】
さらに、前記ロボティクス・フィギュアの前記少なくとも1つの構成要素の動作が行われる際に、音響装置に命令を与えて音響信号を出力させる音響ソフトウェアモジュールを具えていることを特徴とする請求項43に記載のロボティクスシステム。
【請求項45】
さらに、前記固定ショー選択入力を、所定時刻に自動的に前記受信モジュールに供給する自動固定ショー・ソフトウェアモジュールを具えていることを特徴とする請求項43に記載のロボティクスシステム。
【請求項46】
前記所定時刻は、オペレータが前記人形操作入力を与える時刻と一致することを特徴とする請求項45に記載のロボティクスシステム。
【請求項47】
さらに、オペレータがボタンを押して前記固定ショー選択入力を与えるためのボタンを具えていることを特徴とする請求項45に記載のロボティクスシステム。
【請求項48】
さらに、前記ロボティクス・フィギュアに動作的に接続され、事象の発生を測定するセンサを具えていることを特徴とする請求項45に記載のロボティクスシステム。
【請求項49】
前記事象の発生をきっかけとして、前記固定ショー選択入力が前記受信モジュールに入力されることを特徴とする請求項48に記載のロボティクスシステム。
【請求項50】
さらに、オペレータがダイヤルを回して前記固定ショー選択入力を前記受信モジュールに与えるためのダイヤルを具えていることを特徴とする請求項43に記載のロボティクスシステム。
【図1】
【図2】
【図3A】
【図3B】
【図3C】
【図4】
【図5】
【図6A】
【図6B】
【図7】
【図8A】
【図8B】
【図9A】
【図9B】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16A】
【図16B】
【図16C】
【図17】
【図18】
【図2】
【図3A】
【図3B】
【図3C】
【図4】
【図5】
【図6A】
【図6B】
【図7】
【図8A】
【図8B】
【図9A】
【図9B】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16A】
【図16B】
【図16C】
【図17】
【図18】
【公表番号】特表2007−517585(P2007−517585A)
【公表日】平成19年7月5日(2007.7.5)
【国際特許分類】
【出願番号】特願2006−549231(P2006−549231)
【出願日】平成16年8月12日(2004.8.12)
【国際出願番号】PCT/US2004/026115
【国際公開番号】WO2005/069755
【国際公開日】平成17年8月4日(2005.8.4)
【出願人】(506131042)ディズニー エンタープライゼス インコーポレイテッド (5)
【Fターム(参考)】
【公表日】平成19年7月5日(2007.7.5)
【国際特許分類】
【出願日】平成16年8月12日(2004.8.12)
【国際出願番号】PCT/US2004/026115
【国際公開番号】WO2005/069755
【国際公開日】平成17年8月4日(2005.8.4)
【出願人】(506131042)ディズニー エンタープライゼス インコーポレイテッド (5)
【Fターム(参考)】
[ Back to top ]