(57)【要約】アニマトロニクス・フィギュアの動作を生成するシステムを開示する。このシステム(200)は、異なる種類の動作をリアルタイムで生き物のように生成すべく構成されている。動作ソフトウェアモジュール(106)は、ユーザ入力の動作を、ユーザが選択した固定の動作列及び／またはアルゴリズム的に計算した動作と組み合わせることによって合成動作を形成する。アニマトロニクス・フィギュアの動作をさらにフィルタ処理して、生き物のような動きを生成する。組合せ動作は、要素動作を重ね合わせ、変化させ、あるいは修正することによって形成される。ユーザ入力コマンド及び刺激から決まるコマンドに基づいて動作をフィルタ処理して、生き物のような動きを生成する。
2007517585.tif 000002
【特許請求の範囲】
【請求項１】
固定ショー選択入力及び人形操作入力をオペレータから受信する受信モジュールであって、前記固定ショー選択入力は少なくとも１つの固定ショー命令に関連し、前記人形操作入力は人形操作命令を与える受信モジュールと；
アニマトロニクス・フィギュアと；
前記固定ショー選択入力に関連する前記少なくとも１つの固定ショー命令を、少なくとも１つの固定ショーの物理的動作命令に変換し、前記受信した人形操作命令を少なくとも１つの人形操作の物理的動作命令に変換する変換ソフトウェアモジュールと；
前記少なくとも１つの固定ショーの物理的動作命令を受信し、前記少なくとも１つの人形操作の物理的動作命令を受信し、前記少なくとも１つの固体ショーの物理的動作命令及び前記少なくとも１つの人形操作の物理的動作命令から合成動作命令を計算し、これにより、少なくとも１つのアクチュエータが前記アニマトロニクス・フィギュアの少なくとも１つの構成要素を生き物のように動作させることができる動作ソフトウェアモジュールと
を具えていることを特徴とするアニマトロニクスシステム。
【請求項２】
さらに、前記アニマトロニクス・フィギュアの前記少なくとも１つの構成要素の動作が行われる際に、音響装置に命令を与えて音響信号を出力させる音響ソフトウェアモジュールを具えていることを特徴とする請求項１に記載のアニマトロニクスシステム。
【請求項３】
さらに、前記固定ショー選択入力を、所定時刻に自動的に前記受信モジュールに供給する自動固定ショー・ソフトウェアモジュールを具えていることを特徴とする請求項１に記載のアニマトロニクスシステム。
【請求項４】
前記所定時刻は、オペレータが前記人形操作入力を与える時刻と一致することを特徴とする請求項３に記載のアニマトロニクスシステム。
【請求項５】
さらに、オペレータがボタンを押して前記固定ショー選択入力を与えるためのボタンを具えていることを特徴とする請求項１に記載のアニマトロニクスシステム。
【請求項６】
さらに、前記アニマトロニクス・フィギュアに動作的に接続され、事象の発生を測定するセンサを具えていることを特徴とする請求項１に記載のアニマトロニクスシステム。
【請求項７】
前記事象の発生をきっかけとして、前記固定ショー選択入力が前記受信モジュールに入力されることを特徴とする請求項６に記載のアニマトロニクスシステム。
【請求項８】
さらに、オペレータがダイヤルを回して前記固定ショー選択入力を前記受信モジュールに与えるためのダイヤルを具えていることを特徴とする請求項１に記載のアニマトロニクスシステム。
【請求項９】
アニマトロニクス・フィギュアの動作を生成する方法において、
人形操作の動作を実行するための人形操作命令を前記アニマトロニクス・フィギュアに与えるステップと；
固定ショーの動作を実行するための少なくとも１つの固定ショー命令に関連する固定ショー選択を前記アニマトロニクス・フィギュアに与えるステップと；
前記人形操作命令と前記少なくとも１つの固定ショー命令とを組み合わせて組合せ命令を形成するステップと；
前記アニマトロニクス・フィギュアに、前記組合せ命令を実行することを命令するステップと
を具えていることを特徴とするアニマトロニクス・フィギュアの動作生成方法。
【請求項１０】
前記固定ショー選択がユーザによって与えられることを特徴とする請求項９に記載の方法。
【請求項１１】
前記アニマトロニクス・フィギュアに前記組合せ命令を実行することを命令することによって、前記人形操作の動作と前記固定ショーの動作との合成動作が行われることを特徴とする請求項９に記載の方法。
【請求項１２】
前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作を実行する構成要素と同じ構成要素によって実行されることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作を実行する構成要素とは異なる構成要素によって実行されることを特徴とする請求項１１に記載の方法。
【請求項１４】
アニマトロニクス・フィギュアと；
第１コマンド及び第２コマンドをオペレータから受信する受信モジュールであって、前記受信モジュールは前記アニマトロニクス・フィギュアに動作的に接続され、前記受信モジュールは前記アニマトロニクス・フィギュアと通信し、前記アニマトロニクス・フィギュアは前記第１コマンドに従って第１動作を行い、前記アニマトロニクス・フィギュアは前記第２コマンドに従って第２動作を行う受信モジュールと；
前記第１コマンドを第１フィルタに通してフィルタ処理し、前記第２コマンドを第２フィルタに通してフィルタ処理して、前記第１コマンドによって生じる前記アニマトロニクス・フィギュアの前記第１動作を、前記第２コマンドによって生じる前記アニマトロニクス・フィギュアの前記第２動作と調和させて、前記アニマトロニクス・フィギュアの動作を生き物のように見せるフィルタモジュールと
を具えていることを特徴とするアニマトロニクスシステム。
【請求項１５】
前記第１コマンドが人形操作命令であることを特徴とする請求項１４に記載のアニマトロニクスシステム。
【請求項１６】
前記第２コマンドが、少なくとも１つの固定ショー命令に関連する固定ショー選択であることを特徴とする請求項１４に記載のアニマトロニクスシステム。
【請求項１７】
前記第１フィルタがローパスフィルタであることを特徴とする請求項１４に記載のアニマトロニクスシステム。
【請求項１８】
前記第２フィルタがハイパスフィルタであることを特徴とする請求項１４に記載のアニマトロニクスシステム。
【請求項１９】
前記第２フィルタがバンドパスフィルタであることを特徴とする請求項１４に記載のアニマトロニクスシステム。
【請求項２０】
前記第１フィルタと前記第２フィルタとが、前記アニマトロニクス・フィギュアの同じ身体部分の異なる構成要素上に配置されていることを特徴とする請求項１４に記載のアニマトロニクスシステム。
【請求項２１】
前記第１フィルタと前記第２フィルタとが、前記アニマトロニクス・フィギュアの異なる身体部分に配置されていることを特徴とする請求項１４に記載のアニマトロニクスシステム。
【請求項２２】
脚と；
前記脚に動作的に接続され、前記脚の動作を行わせる脚部アクチュエータと；
車輪と；
前記車輪に動作的に接続され、前記車輪の動作を行わせる車輪アクチュエータと；
前記脚の動作及び前記車輪の動作を決定して前記アニマトロニクス・フィギュアの動作を行わせるプロセッサであって、前記脚の動作を前記脚部アクチュエータに送信し、前記車輪の動作を前記車輪アクチュエータに送信するプロセッサと
を具えていることを特徴とするアニマトロニクス・フィギュア。
【請求項２３】
さらに、前記アニマトロニクス・フィギュアの第１現在位置を測定する位置センサを具えていることを特徴とする請求項２２に記載のアニマトロニクス・フィギュア。
【請求項２４】
さらに、前記アニマトロニクス・フィギュアの相対的な第２現在位置を、前記アニマトロニクス・フィギュアの初期位置から進んだ距離だけ増加させることによって測定する増分センサを具えていることを特徴とする請求項２３に記載のアニマトロニクス・フィギュア。
【請求項２５】
さらに、前記アニマトロニクス・フィギュアの前記第２現在位置と前記アニマトロニクス・フィギュアの前記第１現在位置との差が位置クリッピング限界に達したか否かを判定するクリッピングモジュールを具えていることを特徴とする請求項２４に記載のアニマトロニクス・フィギュア。
【請求項２６】
前記クリッピングモジュールが、前記位置クリッピング限界に達したか否かの判定に加えて、前記第１現在位置から前記第２現在位置へ移動中の前記アニマトロニクス・フィギュアの速度が速度クリッピング限界に達したか否かを判定することを特徴とする請求項２５に記載のアニマトロニクス・フィギュア。
【請求項２７】
さらに、前記第１現在位置から前記第２現在位置へ移動中の前記アニマトロニクス・フィギュアの速度がクリッピング限界に達したか否かを判定するクリッピングモジュールを具えていることを特徴とする請求項２４に記載のアニマトロニクス・フィギュア。
【請求項２８】
さらに、前記第１現在位置から前記第２現在位置へ移動中の前記アニマトロニクス・フィギュアの加速度がクリッピング限界に達したか否かを、請求項２５に記載の位置クリッピング限界に達したか否か、及び／または請求項２６に記載の速度クリッピング限界に達したか否かとは別個に、あるいはこれらと共に判定するクリッピングモジュールを具えていることを特徴とする請求項２４に記載のアニマトロニクス・フィギュア。
【請求項２９】
前記クリッピング限界に達した場合に、前記クリッピングモジュールが、前記アニマトロニクス・フィギュアの軌跡を短縮することを特徴とする請求項２５に記載のアニマトロニクス・フィギュア。
【請求項３０】
前記クリッピング限界に達した場合に、前記クリッピングモジュールが、前記アニマトロニクス・フィギュアの速度を低下させることを特徴とする請求項２２に記載のアニマトロニクス・フィギュア。
【請求項３１】
前記クリッピング限界に達した場合に、前記クリッピングモジュールが、前記アニマトロニクス・フィギュアの加速度を低下させることを特徴とする請求項２２に記載のアニマトロニクス・フィギュア。
【請求項３２】
アニマトロニクス・フィギュアの動作を生成する方法において、
前記アニマトロニクス・フィギュアに人形操作命令を与えて人形操作の動作を実行させるステップと；
固定ショー選択コマンドを前記アニマトロニクス・フィギュアに与えて、固定ショーの選択に関連する少なくとも１つの固定ショーの動作を実行させるステップと；
前記人形操作の動作と前記固定ショーの動作とを組み合わせて合成動作にするステップと；
前記アニマトロニクス・フィギュアに、前記合成動作を実行することを命令するステップと
を具えていることを特徴とする請求項２２に記載のアニマトロニクス・フィギュアの動作生成方法。
【請求項３３】
前記固定ショーの選択がユーザによって行われることを特徴とする請求項３２に記載の方法。
【請求項３４】
前記人形操作の動作と前記固定ショーの動作とを組み合わせることが、前記人形操作の動作と前記少なくとも１つの固定ショーの動作との合成であることを特徴とする請求項３２に記載の方法。
【請求項３５】
前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作が行われる構成要素と同じ構成要素上で行われることを特徴とする請求項３４に記載の方法。
【請求項３６】
前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作が行われる構成要素とは異なる構成要素上で行われることを特徴とする請求項３５に記載の方法。
【請求項３７】
さらに、前記人形操作の動作と前記固定ショーの動作との合成を低減する所定限界を具えていることを特徴とする請求項３４に記載の方法。
【請求項３８】
アニマトロニクスシステムにおいて、
アニマトロニクス・フィギュアと；
第１コマンドをオペレータから受信する受信モジュールであって、前記受信モジュールは前記アニマトロニクス・フィギュアに動作的に接続され、前記受信モジュールは前記アニマトロニクス・フィギュアと通信し、前記アニマトロニクスシステムが前記第１コマンドを、第１動作を決定するための計算の一部として用いる受信モジュールと；
前記第１コマンドが前記アニマトロニクス・フィギュアに与えられたことの発生に基づいて、第２コマンドを前記アニマトロニクス・フィギュアに与えるアルゴリズム応答モジュールであって、前記アルゴリズム応答モジュールは、前記第１コマンドを前記受信モジュールから受信し、前記アニマトロニクス・フィギュアは、前記第２コマンドに従って第２動作を行うアルゴリズム応答モジュールと
を具えていることを特徴とするアニマトロニクスシステム。
【請求項３９】
前記第１コマンドが人形操作命令であることを特徴とする請求項３８に記載のアニマトロニクスシステム。
【請求項４０】
前記第２コマンドが、少なくとも１つの固定ショー命令に関連する固定ショー選択入力であることを特徴とする請求項３８に記載のアニマトロニクスシステム。
【請求項４１】
前記第２コマンドが、前記アニマトロニクス・フィギュアに動作的に接続されたセンサが刺激を検出したことの発生に基づくアニマトロニクス固定ショー命令であることを特徴とする請求項３８に記載のアニマトロニクスシステム。
【請求項４２】
さらに、前記第１動作を第１フィルタに通してフィルタ処理し、前記第２動作を第２フィルタに通してフィルタ処理して、前記第１動作を前記第２動作と調和させて、前記アニマトロニクス・フィギュアの動作を生き物のように見せるフィルタモジュールを具えていることを特徴とする請求項３８に記載のアニマトロニクスシステム。
【請求項４３】
固定ショー選択入力及び人形操作入力をオペレータから受信する受信モジュールであって、前記固定ショー選択入力は少なくとも１つの固定ショー命令に関連し、前記人形操作入力は人形操作命令を与える受信モジュールと；
ロボティクス・フィギュアと；
前記固定ショー選択入力に関連する前記少なくとも１つの固定ショー命令を、少なくとも１つの固定ショーの物理的動作命令に変換し、前記受信した人形操作命令を少なくとも１つの人形操作の物理的動作命令に変換する変換ソフトウェアモジュールと；
前記少なくとも１つの固定ショーの物理的動作命令を受信し、前記少なくとも１つの人形操作の物理的動作命令を受信し、前記少なくとも１つの固体ショーの物理的動作命令及び前記少なくとも１つの人形操作の物理的動作命令から合成動作命令を計算し、これにより、少なくとも１つのアクチュエータが前記ロボティクス・フィギュアの少なくとも１つの構成要素を生き物のように動作させることができる動作ソフトウェアモジュールと
ことを特徴とするロボティクスシステム。
【請求項４４】
さらに、前記ロボティクス・フィギュアの前記少なくとも１つの構成要素の動作が行われる際に、音響装置に命令を与えて音響信号を出力させる音響ソフトウェアモジュールを具えていることを特徴とする請求項４３に記載のロボティクスシステム。
【請求項４５】
さらに、前記固定ショー選択入力を、所定時刻に自動的に前記受信モジュールに供給する自動固定ショー・ソフトウェアモジュールを具えていることを特徴とする請求項４３に記載のロボティクスシステム。
【請求項４６】
前記所定時刻は、オペレータが前記人形操作入力を与える時刻と一致することを特徴とする請求項４５に記載のロボティクスシステム。
【請求項４７】
さらに、オペレータがボタンを押して前記固定ショー選択入力を与えるためのボタンを具えていることを特徴とする請求項４５に記載のロボティクスシステム。
【請求項４８】
さらに、前記ロボティクス・フィギュアに動作的に接続され、事象の発生を測定するセンサを具えていることを特徴とする請求項４５に記載のロボティクスシステム。
【請求項４９】
前記事象の発生をきっかけとして、前記固定ショー選択入力が前記受信モジュールに入力されることを特徴とする請求項４８に記載のロボティクスシステム。
【請求項５０】
さらに、オペレータがダイヤルを回して前記固定ショー選択入力を前記受信モジュールに与えるためのダイヤルを具えていることを特徴とする請求項４３に記載のロボティクスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（１．発明の分野）
本発明は一般にロボティクス・フィギュア（ロボット的な人形等）に関するものであり、特にアニマトロニクス・フィギュア（生き物のような動きをする人形等）に関するものである。
【０００２】
（２．発明の背景）
アニマトロニクス・フィギュアは、１つ以上の電気機械的装置によって動きを与えられるロボティクス・フィギュア、動く人形、あるいは他の動きのある物体である。「動きを与えられる」とは、動作を行わせることを意味する。上記電気機械的装置は、電子的部分、機械的部分、液圧及び／または空気圧部分を含む。アニマトロニクス・フィギュアは、テーマパークのようなエンターテインメント（娯楽）の場所では一般的である。例えば、アニマトロニクス・キャラクタ（配役）は、テーマパーク内のショー、ライド（乗り物）、及び／または他のイベントで見ることができる。アニマトロニクス・キャラクタの身体部分、例えば頭及び腕は一般に自由に動くことができる。しかし、アニマトロニクス・キャラクタは通常、１つの場所から他の場所へと歩き回ったり歩いて行ったりすることはできない。
【０００３】
アニマトロニクス・フィギュアを制御する種々のアニマトロニクスシステムが、何十年にわたって作り出されてきた。これらのシステムの制御は、過去４０年にわたって、機械的カムからミニコンピュータ、（回路）ボードベースのシステムへと着実に進歩して来たが、その下にある取り組み方法は少ししか変わっていない。
【０００４】
一般に、現在のアニマトロニクス・フィギュアは非常に機械的な振る舞いで動く。換言すれば、現在のアニマトロニクス・フィギュアは、生き物のような動きを見せるのではなく、ロボットのような動きを見せる。
【０００５】
（発明の概要）
本発明の１つの態様のアニマトロニクスシステムでは、受信モジュールが固定ショー選択入力及び人形操作入力をオペレータ（操作員）から受信する。固定ショー選択入力は、少なくとも１つの固定ショー命令に関連する。人形操作入力は人形操作命令を与える。アニマトロニクス・フィギュアが存在する。変換ソフトウェアモジュールは、前記固定ショー選択入力に関連する前記少なくとも１つの固定ショー命令を、少なくとも１つの固定ショーの物理的動作命令に変換し、そして受信した前記人形操作命令を少なくとも１つの人形操作の物理的動作命令に変換する。動作ソフトウェアモジュールは、前記少なくとも１つの固定ショーの物理的動作命令を受信し、かつ前記少なくとも１つの人形操作の物理的動作命令を受信して、前記少なくとも１つの固定ショーの物理的動作命令及び前記少なくとも１つの人形操作の物理的動作命令から合成動作命令を計算し、これにより、少なくとも一人の役者が、アニマトロニクス・フィギュアの少なくとも１つの構成要素を生き物のように動かすことができる。
【０００６】
本発明の他の態様のアニマトロニクスシステムでは、アニマトロニクス・フィギュアの少なくとも１つの構成要素の動作が行われる際に、音響ソフトウェアモジュールが音響装置に命令を与えて音響信号を出力させる。
【０００７】
本発明の１つの態様のアニマトロニクスシステムでは、自動固定ショー・ソフトウェアモジュールが、固定ショー選択入力を所定時刻に自動的に前記受信モジュールに供給する。
【０００８】
本発明の他の態様のアニマトロニクスシステムでは、所定時刻が、オペレータが人形操作入力を行う時刻と一致する。
【０００９】
本発明の１つの態様のアニマトロニクスシステムでは、オペレータがボタンを押して前記固定ショー選択入力を与える。
【００１０】
本発明の他の態様のアニマトロニクスシステムでは、事象の発生を測定するセンサがアニマトロニクス・フィギュアに動作的に接続されている。
【００１１】
本発明の１つの態様のアニマトロニクスシステムでは、事象の発生をきっかけとして、前記固定ショー選択入力が前記受信モジュールに入力される。
【００１２】
本発明の他の態様のアニマトロニクスシステムでは、オペレータがダイヤルを回して前記固定ショー選択入力を前記受信モジュールに与える。
【００１３】
本発明の１つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、人形操作の動作を実行するための人形操作命令をアニマトロニクス・フィギュアに与える。固定ショーの選択は、アニマトロニクス・フィギュアに固定ショーの動作を実行させる少なくとも１つの固定ショー命令に関連する。前記人形操作命令は、前記少なくとも１つの固定ショー命令と組み合わされて組合せ命令を形成する。アニマトロニクス・フィギュアは、この組合せ命令を実行することを命令される。
【００１４】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記固定ショーの選択がユーザによって行われる。
【００１５】
本発明の１つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、アニマトロニクス・フィギュアに前記組合せ命令を実行することを命令することによって、人形操作の動作と固定ショーの動作との合成動作が行われる。
【００１６】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作が、アニマトロニクス・フィギュアの固定ショーの動作を実行する構成要素と同じ構成要素によって実行される。
【００１７】
本発明の１つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作が、アニマトロニクス・フィギュアの固定ショーの動作を実行する構成要素とは異なる構成要素によって実行される。
【００１８】
本発明の他の態様のアニマトロニクスシステムでは、アニマトロニクス・フィギュアが存在する。受信モジュールが第１コマンド及び第２コマンドをオペレータから受信する。この受信モジュールはアニマトロニクス・フィギュアと動作的に接続されている。前記受信モジュールはこのアニマトロニクス・フィギュアと通信する。このアニマトロニクス・フィギュアは、前記第１コマンドに従って第１動作を行う。前記アニマトロニクス・フィギュアは、前記第２コマンドに従って第２動作を行う。フィルタモジュールが、前記第１コマンドを第１フィルタに通してフィルタ処理し、前記第２コマンドを第２フィルタに通してフィルタ処理して、前記第１コマンドによって生じる前記アニマトロニクス・フィギュアの第１動作を、前記第２コマンドによって生じる前記アニマトロニクス・フィギュアの第２動作と調和させて、前記アニマトロニクス・フィギュアの動作が生き物のように見えるようにする。
【００１９】
本発明の１つの態様のアニマトロニクスシステムでは、前記第１コマンドが人形操作命令である。
【００２０】
本発明の他の態様のアニマトロニクスシステムでは、前記第２コマンドが、少なくとも１つの固定ショー命令に関連する固定ショーの選択である。
【００２１】
本発明の１つの態様のアニマトロニクスシステムでは、前記第１フィルタがローパス（低域通過）フィルタである。
【００２２】
本発明の他の態様のアニマトロニクスシステムでは、前記第２フィルタがハイパス（高域通過）フィルタである。
【００２３】
本発明の１つの態様のアニマトロニクスシステムでは、前記第２フィルタがバンドパス（帯域通過）フィルタである。
【００２４】
本発明の他の態様のアニマトロニクスシステムでは、前記第１フィルタと前記第２フィルタとを、アニマトロニクス・フィギュアの同じ身体部分の異なる構成要素上で用いる。
【００２５】
本発明の１つの態様のアニマトロニクスシステムでは、前記第１フィルタと前記第２フィルタとを、アニマトロニクス・フィギュアの異なる身体部分で用いる。
【００２６】
本発明の他の態様のアニマトロニクス・フィギュアには脚が存在する。この脚に脚部アクチュエータが動作的に接続され、この脚部アクチュエータは脚の動作を行わせる。車輪が存在し、この車輪には車輪アクチュエータが動作的に接続され、この車輪アクチュエータは車輪の動作を行わせる。プロセッサが脚の動作及び車輪の動作を決定して、前記アニマトロニクス・フィギュアの動作を行わせる。前記プロセッサは、脚の動作を前記脚部アクチュエータに送信する。前記プロセッサは、車輪の動作を前記車輪アクチュエータに送信する。
【００２７】
本発明の１つの態様のアニマトロニクス・フィギュアでは、位置センサがこのアニマトロニクス・フィギュアの第１現在位置を測定する。
【００２８】
本発明の他の態様のアニマトロニクス・フィギュアでは、増分センサが、このアニマトロニクス・フィギュアの相対的な第２現在位置を、このアニマトロニクス・フィギュアの初期位置から進んだ距離だけ増加させることによって測定する。
【００２９】
本発明の１つの態様のアニマトロニクス・フィギュアでは、クリッピング（切り取り）モジュールが、このアニマトロニクス・フィギュアの前記第２現在位置と、このアニマトロニクス・フィギュアの前記第１現在位置との差が位置クリッピング限界に達したか否かを判定する。
【００３０】
本発明の他の態様のアニマトロニクス・フィギュアでは、クリッピングモジュールが、前記第１現在位置から前記第２位置へ移動中のこのアニマトロニクス・フィギュアの速度が速度クリッピング限界に達したか否かを、位置クリッピング限界に達したか否かに加えて判定する。
【００３１】
本発明の１つの態様のアニマトロニクス・フィギュアでは、クリッピングモジュールが、前記第１現在位置から前記第２位置まで移動中のこのアニマトロニクス・フィギュアの速度があるクリッピング限界に達したか否かを判定する。
【００３２】
本発明の他の態様のアニマトロニクス・フィギュアでは、クリッピングモジュールが、前記第１現在位置から前記第２位置まで移動中のこのアニマトロニクス・フィギュアの速度があるクリッピング限界に達したか否かを、位置クリッピング限界に達したか否か、及び／または速度クリッピング限界に達したか否かとは別個に、あるいはこれらと共に判定する。
【００３３】
本発明の１つの態様のアニマトロニクス・フィギュアでは、前記クリッピング限界に達した場合に、前記クリッピングモジュールが、前記アニマトロニクス・フィギュアの軌跡を短縮する。
【００３４】
本発明の他の態様のアニマトロニクス・フィギュアでは、前記クリッピング限界に達した場合に、前記クリッピングモジュールがこのアニマトロニクス・フィギュアの速度を低下させる。
【００３５】
本発明の１つの態様のアニマトロニクス・フィギュアでは、前記クリッピング限界に達した場合に、前記クリッピングモジュールがこのアニマトロニクス・フィギュアの加速度を低下させる。
【００３６】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、このアニマトロニクス・フィギュアに人形操作命令を与えて、人形操作の動作を実行させる。固定ショー選択コマンドを前記アニマトロニクス・フィギュアに与えて、固定ショーの選択に関連する少なくとも１つの固定ショーの動作を実行させる。前記人形操作の動作と前記固定ショーの動作とを組み合わせて合成動作とする。前記アニマトロニクス・フィギュアは、この合成動作を実行するよう命令される。
【００３７】
本発明の１つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記固定ショーの選択がユーザによって行われる。
【００３８】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作と前記少なくとも１つの固定ショーの動作との組合せが、前記人形操作の動作と前記固定ショーの動作との合成である。
【００３９】
本発明の１つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作が行われる構成要素と同じ構成要素上で行われる。
【００４０】
本発明の他の態様の、アニマトロニクス・フィギュアの動作を生成する方法では、前記人形操作の動作が、前記アニマトロニクス・フィギュアの前記固定ショーの動作が行われる構成要素とは異なる構成要素上で行われる。
【００４１】
本発明の１つの態様の、アニマトロニクス・フィギュアの動作を生成する方法では、所定の限界が、前記人形操作の動作と前記固定ショーの動作との合成を低減する。
【００４２】
本発明の他の態様のアニマトロニクスシステムでは、アニマトロニクス・フィギュアが存在する。受信モジュールはオペレータから第１コマンドを受信する。この受信モジュールは、前記アニマトロニクス・フィギュアに動作的に接続されている。前記受信モジュールは、前記アニマトロニクス・フィギュアと通信する。前記アニマトロニクスシステムは、前記第１コマンドを、第１動作を決定するための計算の一部として用いる。アルゴリズム応答モジュールは、前記第１コマンドが前記アニマトロニクス・フィギュアに与えられたことの発生に基づいて、第２コマンドを前記アニマトロニクス・フィギュアに与える。前記アルゴリズム応答モジュールは、前記第１コマンドを前記受信モジュールから受信する。前記アニマトロニクス・フィギュアは、前記第２コマンドに従って第２動作を行う。
【００４３】
本発明の１つの態様のアニマトロニクスシステムでは、前記第１コマンドが人形操作命令である。
【００４４】
本発明の他の態様のアニマトロニクスシステムでは、前記第２コマンドが、少なくとも１つの固定ショー命令に関連する固定ショー選択入力である。
【００４５】
本発明の１つの態様のアニマトロニクスシステムでは、前記第２コマンドが、前記アニマトロニクス・フィギュアに動作的に接続されたセンサが刺激を検出したことの発生に基づくアニマトロニクス固定ショー命令である。
【００４６】
本発明の他の態様のアニマトロニクスシステムでは、フィルタモジュールが、前記第１動作を第１フィルタに通してフィルタ処理し、前記第２動作を第２フィルタに通してフィルタ処理して、前記第１動作を前記第２動作と調和させ、これにより、前記アニマトロニクス・フィギュアの動作が生き物のように見える。
【００４７】
（実施例の詳細な説明）
以下、本発明の実施例について、図面を参照しながら詳細に説明する。
ここでは、アニマトロニクスシステムを制御することについて、以前に見られたものよりも大きな柔軟性（フレキシビリティ）を提供し、かつリアルタイム（実時間）の合成動作を生成する能力を提供する計算環境を開示する。この計算環境は、ロボティクスシステムに一般的に適用することができ、アニマトロニクスシステムのみに限定されない。さらに、この計算環境はいずれの特定言語にも限定されない。一具体例では、スクリプト記述言語を用いて、アニマトロニクス・フィギュアに命令して現実的な、生き物のような動きを作り出し生み出させる高レベルのツールをプログラマに提供する。
【００４８】
以下、この計算環境の種々の特徴を、アニマトロニクスシステムに関して説明する。一具体例では、この計算環境が、アニマトロニクス・フィギュアが実行可能な異なる種類のショーのためのリソース、及びこれらのショー中の動作の組合せ及び順序付けを提供して、リアルタイムでの生き物のような動きの生成、リアルタイム動作用の軌跡の計算、及び／またはアニマトロニクス・フィギュアの動作のフィルタ処理を行う。以下、これら及び他の特徴について説明する。
【００４９】
図１にアニマトロニクスシステム１００を示し、このシステムは、異なる種類のショーをリアルタイムかつ生き物のように生成すべく構成されている。１つのショーは、アニマトロニクスシステム１００によって動きを与えられるアニマトロニクス・フィギュア１０８の一連の動作である。
【００５０】
ショーの１つの種類は人形ショーである。人形ショーは、オペレータ制御による一連の動作である。換言すれば、オペレータ１０１は、アニマトロニクス・フィギュア１０８の所望動作をアニマトロニクスシステム１００に手動で入力する。ユーザが各所望の動作を手動で入力すると、アニマトロニクス・フィギュア１０８はこれに対応する動作をリアルタイムで生成する。アニマトロニクスシステム１００は、アニマトロニクス・フィギュア１０８に命令して、ユーザが所望動作コマンドを手動で入力した後に、所望動作を即座に、あるいは所定期間内に生成する。従って、アニマトロニクス・フィギュア１０８は、ユーザが所望動作をアニマトロニクスシステム１００に入力する間は所望動作に従って動いているように見える。人形ショーの例は、”MUPPET（マペット）”、あるいは1997年にニューヨークのNew Amsterdam Theater（ニュー・アムステルダム劇場）で初演のディズニー（登録商標）の”The Lion King（ライオンキング）”のライブステージ（舞台上演）版における人形であることは、当業者にとって明らかである。
【００５１】
一具体例では、ユーザは人形操作の動作を、ジョイスティックまたは他の入力装置によって入力する。他の具体例では、ユーザは人形操作の動作をキーボードによって入力する。さらに他の具体例では、ユーザは人形操作の動作を、ユーザの体に取り付けたセンサによって入力する。他の具体例では、フェイス・トラッキング（顔追跡）を用いて人形操作の動作を入力する。フェイス・トラキングは、顔及び／または頭の動きを検出する。カメラの焦点を顔及び／または頭に合わせて、人形操作の動作を受け取ることができる。センサを頭に配置して、人形操作の動作を受け取ることもできる。例えば、オペレータ１０１はセンサを有するヘッドバンドをかぶって、頭の動きを検出することができる。さらに他の具体例では、ユーザは人形操作の動作を発声コマンドとして、音声認識ソフトウェアと共に動作するマイクロホンに入力する。
【００５２】
他の種類のショーは固定ショーである。固定ショーは、１回または連続的に繰り返して再生可能な予め連続動作の列にされた記録である。オペレータ１０１は単に固定ショーを選択するだけでアニマトロニック・フィギュア１０８に動きを与えることができ、人形操作命令を与える場合にオペレータ１０１が行うように、ショーが上演されている間に各動作を入力しなければならないことがない。固定ショーの例は、1963年にディズニーランド（登録商標）で公開された”Enchanted Tiki Room”、及び1964年にNew York world’s fair（ニューヨーク・ワールドフェア）で初公開され、1965年にディズニーランドに移転された”Great Moments with Mr. Lincoln”であることは、当業者にとって明らかである。
【００５３】
固定ショーを作り出す異なる方法は少数存在する。一具体例では、固定ショーはユーザが行う一連の人形操作の記録である。他の具体例では、固定ショーは、ユーザがグラフィカル・ユーザ・インタフェース（ＧＵＩ：Graphical User Interface）によって入力した動作の記録である。他の具体例では、他のソース（発生源）から動作を導出し、例えば記録した発声を分析して口の位置を導出する。他の具体例では、これらの方法の組合せを用いる。一具体例では、固定ショー用の命令をコンピュータ読取可能媒体上に記憶する。
【００５４】
一具体例では、ユーザが、事前記録されている選択した固定ショーの動作に従ってアニマトロニック・フィギュア１０８に動きを与えることをアニマトロニックシステム１００に命令するボタン（図示せず）によって、固定ショーの選択を入力する。各ボタンが異なる固定ショーの選択を表わす複数のボタンを設けることができる。換言すれば、オペレータ１０１は多様な固定ショーの選択肢を持ち、これらから選択することができる。固定ショーの選択肢の各々が、一組の事前記録された動作に関連する。オペレータ１０１が固定ショーの選択を行うと、アニマトロニックシステム１００は、この固定ショーの選択に関連する事前記録された一組の動作を実行する。本質的には、オペレータ１０１は、固定ショーの選択を行うために、１つのコマンドをアニマトロニックシステム１００に与えるだけで済む。アニマトロニックシステム１００は、アニマトロニック・フィギュア１０８に命令して、オペレータ１０１が行った固定ショーの選択に関連する命令を実行させる。
【００５５】
他の具体例では、ユーザが固定ショーの選択を、タッチスクリーン・ディスプレイで入力する。他の具体例では、ユーザが固定ショーの選択をダイヤルで入力する。他の具体例では、ユーザが固定ショーの選択を、発声コマンドによって、音声認識ソフトウェアと共に動作するマイクロホンに入力する。
【００５６】
アニマトロニクスシステム１００は、アニマトロニック・フィギュア１０８を固定ショー及び人形操作のショーに同時に従って動作させる能力をユーザに提供する。固定ショーが１つのアクチュエータに命令を与える間に人形操作の列が他のアクチュエータに命令を与える場合には、両方の命令を同時に実行して、２つの異なる身体部分が同時に動くように見せる。
【００５７】
固定ショーが人形操作のショーと同じアクチュエータに命令を与える場合には、合成動作を計算する。合成動作は、合成動作が生き物のように見えるように計算する。例えば、固定ショーがクシャミの動作であり、人形操作の動作が頭を前向きに動かす動作である場合には、固定ショー命令と人形操作の動作との単純な重ね合わせが、人形操作の命令のみを与えた場合よりも頭を前向きに傾ける。例えば、笑いを演じる際に尾が振れる振幅を増加させることができる。他の具体例では、各要素動作を変化させることによって合成動作を形成する。例えば、元気のいい動きを演じる際には、呼吸動作の頻度を増加させる。この組合せは、クシャミの例では、頭の前向きの動きの間にクシャミが出る場合に頭の動きが誇張される生き物の動きに匹敵する。
【００５８】
従って、この合成動作は、生き物のように見えるにしては動作が誇張され過ぎて見えることがある。クシャミの例では、前向きの動きとクシャミの組合せの間に、生き物のように見えるにしては頭が前向きに動き過ぎることがある。この動作を修正するために、合成動作をクリップ（制限）する。クリッピング（動作制限）とは、所定限界内に入るように値を低減することを称する。一具体例では、アニマトロニック・フィギュア１０８の合成動作の軌跡をクリップすることができる。換言すれば、クシャミの例における頭の合成動作の前向きの軌跡を短縮して、頭が前向きに動くことのできる距離の所定限界に合わせる。この所定限界の例は、アニマトロニック・フィギュア１０８の頭を地面に触れないように止めることである。これに加えて、クリッピングは、アニマトロニック・フィギュア１０８の動作を実行させるアクチュエータの限界範囲が守られることを保証する。例えば、オペレータ１０１が、アニマトロニック・フィギュア１０８の頭を後ろ向きに動かし過ぎる人形操作命令を与えた場合に、ハードストップ（ハードウェアによる停止）に当たる。ハードストップとは、アクチュエータが、ロボットの動きを制限する物理的な停止端または障壁に当たることであることは、当業者にとって明らかである。ハードストップに当たることによって、広範な問題が生じ得る。例えば、ロボティクス・フィギュアを物理的に損傷させるのに十分な力でハードストップに当たることがあり得る。さらに、影響を受けたアクチュエータの動きに依存する他のアクチュエータにも故障が生じ得る。本質的に、ハードストップに当たることは、アニマトロニクス・フィギュア１０８の完全な故障に至る可能性がある。クリッピングは、ハードストップに達することを防止し、これにより、故障の可能性を低減する。一具体例では、クリッピングモジュールが、アニマトロニクス・フィギュア１０８の第２現在位置とアニマトロニクス・フィギュア１０８の第１現在位置との差が位置のクリッピング限界に達したか否かを判定する。
【００５９】
一具体例では、アニマトロニック・フィギュア１０８の合成動作の速度をクリップすることができる。換言すれば、アニマトロニクス・フィギュア１０８の身体部分が動く速度を低下させて所定限界内に入れることができる。例えば、クシャミの例では、所定限界を１秒当たり100度に設定して、頭の斜めの動きが潜在的に危険な速度を超えないことを保証することができる。これに加えて、クリッピングは構造的な制限に達することを防止する。例えば、モータは、モータが生み出す速度の限界を有する。アニマトロニクス・フィギュア１０８がこの速度限界に達するかこの限界を超えようとするならば、モータは単に故障し得る。他の具体例では、クリッピングモジュールが、速度のクリッピング限界に達したか否かを判定する。さらに他の具体例では、クリッピングモジュールが、位置のクリッピング限界及び速度のクリッピング限界に達したか否かを判定する。
【００６０】
さらに他の具体例では、アニマトロニクス・フィギュア１０８の加速度をクリップすることができる。換言すれば、身体部分が動く速度の変化を、所定限界内に入るように低減する。要求されるモータトルクは加速度に比例するので、このことを用いて、アクチュエータが要求するトルクを効果的に制限すると共に、滑らかで生き物のような動きを行うことができる。端に許容範囲を制限することによってジョイント（継手）の動きの範囲をクリップすることは、ジョイントがこの範囲の端に達した際にジョイントの急停止を生じさせる。この急停止は、所定の加速度限界を超える加速度を生じさせ得る。ジョイントが位置及び加速度の両方について同時にクリッピングを受ける際には、ジョイントがこの位置クリッピング限界に近づくと共に位置クリッピング限界の方向の速度を低下させる必要がある。この位置クリッピング限界で低下する速度限界は、位置クリッピングが発生した際に加速度限界が尊重されることを保証する。さらに他の具体例では、クリッピングモジュールが、加速度クリッピング限界に達したか否かを判定する。クリッピングモジュールは、位置、速度、及び／または加速度の任意の組合せがクリップされていることを判定することもできる。
【００６１】
一具体例では、受信モジュール１０２が、アニマトロニクス・フィギュア１０８を制御するためのオペレータ入力コマンドを受信する。一具体例では、受信モジュール１０２が、ジョイスティックのようなハードウェア装置からユーザ入力を受信するソフトウェアプログラムである。ジョイスティックは、キャラクタ（登場人物）の動きを調整するための制御入力を送信する。これらの制御入力は、例えば、キャラクタの人形操作の動作を調整するためのアナログ及び／またはディジタル信号である。他の具体例では、受信モジュール１０２は、キャラクタの動きを調整するためのアナログ及び／またはディジタル信号のような制御入力を送信するキーボードのようなハードウェア装置からユーザ入力を受信するソフトウェアプログラムである。他の具体例では、オペレータがボタンを押して制御入力を与える。他の具体例では、オペレータがダイヤルを回して制御信号をアニマトロニクス・フィギュアに供給する。この制御信号は変換ソフトウェアモジュール１０４に入力される。
【００６２】
例えば、アミューズメントパーク（遊園地）のライドのオペレータがジョイスティックを回してアニマトロニクス・フィギュア１０８の頭と首を制御して、パークの見物客を楽しませる。他の例では、アニマトロニクス・フィギュア１０８のオペレータがキーボード・コマンドを入力してアニマトロニクス・フィギュア１０８の脚を動かして、アニマトロニクス・フィギュア１０８の進む向きを前向きから右回りに変えて、パークのお客様に衝突するコースを避ける。キーボードの使用は、アニマトロニクス・フィギュア１０８をデバッグするためのデバッグ環境において特に有用である。ユーザは一度に１つのコマンドをキーボードに入力し、個々の動きを分析することによって、アニマトロニクス・フィギュア１０８をデバッグすることができる。同様に、ユーザは複数のコマンドをキーボードによって与えて、個々の動きを分析することもできる。
【００６３】
変換ソフトウェアモジュール１０４は、固定ショーの選択に関連する固定ショー命令を少なくとも１つの物理的動作命令に変換する。さらに、変換ソフトウェアモジュール１０４は、人形操作命令を少なくとも１つの物理的動作命令に変換することもできる。まず、ソフトウェアモジュール１０４は、固定ショーの命令に関連する固定ショー命令を評価する。一具体例では、コンピュータプログラムをメモリデバイスからロードする。
【００６４】
一具体例では、受信モジュール１０２、変換ソフトウェアモジュール１０４、及び動作ソフトウェアモジュール１０６をすべて異なるコンピュータ上に格納する。一具体例では、受信モジュール１０２をコンピュータ上に格納する必要がない。むしろ、受信モジュール１０２は単純な入力装置とすることができる。他の具体例では、受信モジュール１０２及び変換ソフトウェアモジュール１０４を同じコンピュータ上に格納するが、このコンピュータは動作ソフトウェアモジュール１０６が格納されているコンピュータとは異なる。さらに他の具体例では、受信モジュール１０２及び動作ソフトウェアモジュール１０６を同じコンピュータ上に格納するが、このコンピュータは変換ソフトウェアモジュール１０４が格納されているコンピュータとは異なる。他の具体例では、変換ソフトウェアモジュール１０４及び動作ソフトウェアモジュール１０６を同じコンピュータ上に格納するが、このコンピュータは受信モジュール１０２が格納されているコンピュータとは異なる。１つのコンピュータソフトウェアモジュールがこれらのモジュールの全部または一部の機能を実行可能であることも、当業者にとって明らかである。例えば、１つのソフトウェアモジュールが、受信モジュール及び変換ソフトウェアモジュールの機能を実行することができる。
【００６５】
図２に、アニマトロニクス・フィギュア１０８の動作を生成するプロセス２００を示す。処理ブロック２１０では、ユーザは人形操作命令をアニマトロニクスシステム１００に与えて、人形操作の動作を実行させる。処理ブロック２２０では、ユーザは少なくとも１つの固定ショー命令に関連する固定ショーの選択をアニマトロニクスシステム１００に与えて、固定ショーの動作を実行させる。一例では、固定ショー命令は、アニマトロニクス・フィギュア１０８をうならせるための制御信号を含む。
【００６６】
処理ブロック２３０では、人形操作命令と固定ショー命令との組合せから組合せ命令が生じる。他の具体例では、人形操作命令と固定ショー命令との重ね合わせから組合せ命令が生じる。処理ブロック２４０では、アニマトロニクスシステム１００がアニマトロニクス・フィギュア１０８に命令して、組合せ命令に従って動作させる。他の具体例では、人形操作命令を固定ショー命令によって変化させることにより組合せ命令が生じる。
【００６７】
例えば、オペレータがキーボード入力によって、アニマトロニクス・キャラクタの脚を挙げる人形操作命令を与える。一具体例では、人形操作入力をコンピュータ内のメモリデバイスに記憶する。その後に、オペレータはアニマトロニクス・キャラクタに動作的に接続されたボタンを押して、このキャラクタがうなる少なくとも１つの固定ショー命令に関連する固定ショーの選択を要求する。コンピュータ内のプロセッサは、アニマトロニクス・キャラクタ１０８の脚を挙げる命令をうなる命令と重ね合わせる。そしてアニマトロニクスシステム１００は、アニマトロニクス・フィギュア１０８に脚を挙げさせてうならせる。
【００６８】
図３Ａに、アルゴリズムに従ってアニマトロニクス・フィギュア１０８の動作を決めるアルゴリズム構成３００を示す。換言すれば、アニマトロニクスシステム１００は種々の条件を分析して、アルゴリズムを実行すべきか否か、及び／またはどのような動作を生成すべきかを決める。これらの条件は、環境的な発生、人形操作命令から生じる動作、またはショー選択から生じる動作とすることができる。条件のうちの１つが満たされれば、アルゴリズムは、アニマトロニクス・フィギュア１０８が生成すべき動作の決定または修正をリアルタイムで実行する。
【００６９】
一具体例では、アルゴリズム応答モジュール３０８が、ある条件が満たされたか否かを判定してアルゴリズムを実行することができる。一具体例では、アルゴリズム応答モジュール３０８が、条件、及び当該条件が満たされた場合に実行すべきアルゴリズムを記憶しているデータベースにアクセスする。他の具体例では、このデータベースが、条件、及び当該条件が満たされた場合に実行すべき命令を記憶することができる。他の具体例では、アルゴリズム応答モジュール３０８が結果的な動きの向きを決定する。他の具体例では、アルゴリズム応答モジュール３０８が結果的な動きの大きさを決定する。他の具体例では、アルゴリズム応答モジュール３０８が結果的な動きの持続時間を決定する。他の具体例では、アルゴリズム応答モジュール３０８が、従うべき一連の動作、あるいは個々の動作を反復すべき回数を決定する。
【００７０】
一具体例では、クロック３０２がアルゴリズム応答モジュール３０８に時刻を提供する。上記条件の１つは、アニマトロニクス・フィギュア１０８が特定時刻に、あるいは特定周波数で尾を振ることとすることができる。例えば、アニマトロニクス・フィギュア１０８が毎日午後１時に尾を振るようにアルゴリズムを実行することができる。アルゴリズム応答モジュール３０８は、この時刻をクロック３０２から受信して、アニマトロニクス・フィギュアの尾を振るべき時刻条件が午後１時に満たされることを特定する。他の具体例では、尾を１ヘルツで振るように設定することができる。アルゴリズム応答モジュール３０８は時刻をクロック３０２から受信し、この時刻を用いて、上記１ヘルツで尾を振る動作に基づいて現在位置を特定することができる。そしてアルゴリズム応答モジュール３０８は、アニマトロニクス・フィギュア１０８が尾を振るための命令及びこれに関連するデータを動作ソフトウェアモジュール１０６に提供する。一具体例では、アルゴリズム応答モジュール３０８が、位置、速度、及び加速度の計算を実行して、データを動作ソフトウェアモジュール１０６に提供する。他の具体例では、動作ソフトウェアモジュール１０６が位置、速度、及び加速度の計算を実行する。さらに他の具体例では、アルゴリズム応答モジュール３０８が動作ソフトウェアモジュール１０６と同じモジュールである。
【００７１】
他の具体例では、アニマトロニクス・フィギュア１０８の呼吸動作を計算するアルゴリズムを設ける。換言すれば、呼吸音を発生してアニマトロニクス・フィギュア１０８の胸を膨らませたりへこませたりする。この呼吸動作は、アニマトロニクス応答モジュール３０８へのクロック３０２の入力に基づくものとすることができる。
【００７２】
他の具体例では、乱数発生器３０４がアルゴリズム応答モジュール３０８への入力を供給する。乱数発生器３０４から乱数を受信して、ランダムな時刻に動作を実行するようアニマトロニクス・フィギュア１０８に命令するように、アルゴリズムを設定することができる。例えば、ランダムな時刻にまばたきするようアニマトロニクス・フィギュア１０８に命令することができる。まばたきは自然なランダムな動きになるので、乱数発生器３０４のユーザは、アニマトロニクス・フィギュア１０８の動作をより生き物のように見せることができる。他の具体例では、乱数発生器３０４がランダムな振幅の動きを提供することができる。他の具体例では、乱数発生器３０４がランダムな方向の動きを提供することができる。他の具体例では、ランダムな動きの成分を提供することができる。ランダムな成分の例は、ランダムに変化する周波数、振幅、及びオフセット（ずれ）で発生する呼吸動作である。
【００７３】
他の具体例では、センサ３０６がデータをアルゴリズム応答モジュール３０８に提供する。一具体例では、このデータが環境データである。例えば、この環境データは、停止端に向かって一方向に移動中のアニマトロニクス・フィギュア１０８の身体部分の向きを含むことができる。アニマトロニクス・フィギュア１０８が、その頭と首を回し、従って横の停止端付近にある間にまさにクシャミしそうな場合には、クシャミの動作が首をさらに回して動作のクリッピングが生じ得る。この場合には、クシャミが頭を停止端から離すように、即ち首の動作範囲の中心に向けて回して、クリッピングが生じないようにする事が好ましい。この例では、クシャミの間に頭が回る向き及び振幅は、首の位置センサに対するアルゴリズム的な応答である。
【００７４】
検出される条件は、動きが人形操作命令から生じたものか固定ショーの選択から生じたものかにかかわらず、あらゆる身体部分の動きの発生とすることができる。一具体例では、第１身体部分の動作がアルゴリズムを起動して、その付近にある第２身体部分の動作を生成するように、条件を確立することができる。アルゴリズムは、第１の動作と第２の動作とが調和して生き物のような動きに見えるように、第２の動作を計算する。例えば、上記条件は、アニマトロニクス・フィギュア１０８の頭の下向きの動きとすることができる。そしてアルゴリズム応答モジュール３０８は動作を計算し、この動作は、アニマトロニクス・フィギュア１０８の頭の動きと調和するように、アニマトロニクス・フィギュア１０８を前向きに傾けて少し腰をかがめさせる。
【００７５】
図３Ｂにアルゴリズム構成３００の一具体例を示し、ここではセンサ３０６が検出した条件をアルゴリズム応答モジュール３０８に提供する。一具体例では、センサ３０６がアニマトロニクス・フィギュア１０８から条件を受信する。センサ３０６は検出した条件をアルゴリズム応答モジュール３０８に提供し、アルゴリズム応答モジュール３０８はアルゴリズムに従って動作を計算する。そしてこの動作は変換ソフトウェアモジュールに提供される。これに加えて、受信モジュール１０２がユーザ１０１からの入力を受信する。変換モジュール１０４は、ユーザ入力の動作を変換し、この動作をアルゴリズム的に算出した応答と組み合わせて、少なくとも１つの物理的動作命令を生成する。そして動作ソフトウェアモジュール１０６はアニマトロニクス・フィギュア１０８に命令して、この物理的動作命令に従った動作をさせる。一具体例では、動作ソフトウェアモジュール１０６は、変換ソフトウェアモジュール１０４の機能も実行する。
【００７６】
一具体例では、変換ソフトウェアモジュール１０４が、ユーザ入力の動作をアルゴリズム的に計算した動作と組み合わせることによって合成動作を求める。アニマトロニクス・フィギュア１０８はこの合成動作を、ユーザ入力の動作とアルゴリズム的に計算した動作の両方を調和させて生き物のように実行する。
【００７７】
図３Ｃにアルゴリズム構成３００の他の具体例を示し、ここでは受信モジュール１０２がセンサ３０６から検出した条件を受信し、かつオペレータ１０１からユーザ入力の動作を受信する。受信モジュール１０２は、命令の種類を決定し、即ち、命令を受信して適切なモジュールに分配する。例えば、受信モジュール１０２がユーザ入力命令を受信する際には、受信モジュール１０２はユーザ入力命令を変換ソフトウェアモジュール１０４に分配する。受信モジュール１０２が検出した条件を受信する場合には、受信モジュール１０２は検出した条件をアルゴリズム応答モジュール３０８に提供する。アルゴリズム応答モジュール３０８は少なくとも１つの動作を計算し、この動作は変換ソフトウェアモジュール１０４に送信される。一具体例では、動きソフトウェアモジュール１０６は、変換ソフトウェアモジュール１０４及び／またはアルゴリズム応答モジュール３０８の機能も実行する。従って、受信モジュール１０２はすべての命令を１つのモジュールに送信することができる。
【００７８】
図４に、ユーザ入力命令をアルゴリズム的に決定した命令と組み合わせるプロセス４００を示す。処理ブロック４０２では、ユーザ入力命令を受信する。一具体例では、受信モジュール１０２においてユーザ入力命令をオペレータ１０１から受信する。処理ブロック４０４では、センサ３０６から刺激を受信する。この刺激は、あらゆる環境条件とすることができる。処理ブロック４０６では、この刺激はアルゴリズムへの入力として供給される。一具体例では、刺激はアルゴリズム応答モジュール３０８に供給される。処理ブロック４０８では、アルゴリズムを実行して、アニマトロニクス・フィギュア１０８のアルゴリズム的な動作を決定する。一具体例では、アルゴリズム応答モジュール３０８がアルゴリズムを実行して、アルゴリズム的な動作を決定する。処理ブロック４１０では、ユーザ入力の動作をアルゴリズム的に決定した動作と組み合わせる。一具体例では、動作ソフトウェアモジュール１０６がこの組合せを実行する。この組合せから生じる合成動作は、アニマトロニクス・フィギュア１０８に調和のとれた生き物のような動きをもたらす。
【００７９】
図５に、フィルタ処理を行うアニマトロニクス構成５００を示し、ここではアニマトロニクス・フィギュア１０８が生成する動作がフィルタ（選別）処理される。一具体例では、ユーザ１０１がユーザ入力の動作を受信モジュール１０２に提供する。受信モジュール１０２は、ユーザ入力の動作をフィルタモジュール５０２に供給する。フィルタモジュール５０２は、必ずしもユーザ入力ではない動作または動作命令を受信することができる。フィルタモジュール５０２は、フィルタ処理したコマンドを動作ソフトウェアモジュール１０６に渡し、動作ソフトウェアモジュール１０６は、アニマトロニクス・フィギュア１０８用の物理的動作コマンドを生成する。簡略化した具体例では、フィルタモジュール５０２をアニマトロニクス・フィギュア１０８に直接接続することができることは、当業者にとって明らかである。
【００８０】
アニマトロニクス・フィギュアの動作は、関連する周波数成分を有する。従って、アニマトロニクス・フィギュア１０８の単純なフィギュア動作は関連する周波数成分を有し得る。アニマトロニクス・フィギュア１０８の動きが急速に変化する場合には、周波数成分の少なくとも一部が高周波を含む。アニマトロニクス・フィギュア１０８の動きがゆっくり変化する場合には、周波数成分の少なくとも一部が低周波を含む。
【００８１】
フィルタモジュール５０２は、種々のフィルタのうちの１つによりユーザ入力の動作をフィルタ処理する。例えば、フィルタモジュール５０２はユーザ入力の動作を、高周波成分をブロック（阻止）し低周波成分を通過させるローパス（低域通過）フィルタによりフィルタ処理することができる。フィルタ処理モジュール５０２は、ユーザ入力の動作を、低周波成分をブロックし高周波成分を通過させるハイパス（高域通過）フィルタによりフィルタ処理することもできる。さらに、フィルタ処理モジュール５０２は、ユーザ入力の動作を、限定範囲の周波数を通過させるバンドパス（帯域通過）フィルタによりフィルタ処理することができる。バンドパスフィルタは、ローパスフィルタとハイパスフィルタの組合せとすることができ、特定の低周波成分及び特定の高周波成分のみを通過させる。フィルタ処理モジュール５０２が他のフィルタを用いることができることは、当業者にとって明らかである。
【００８２】
本質的には、フィルタモジュール５０２は動作をフィルタ処理して、より生き物のように見えるようにする。例えば、ユーザ１０１が、アニマトロニクス・フィギュア１０８の頭を特定方向に動かす命令を入力すると、この頭は通常は、大まかな低周波数の回転動作、並びにオペレータが不用意に加えたあらゆる高周波数の急な動き及びぎこちない動きの両方を反映するように動作する。フィルタモジュール５０２は頭の動きを、高周波成分をブロックし低周波成分を通過させるようにフィルタ処理する。従って、アニマトロニクス・フィギュア１０８の頭はより滑らかな動きで動作する。それでもアニマトロニクス・フィギュア１０８の頭は動作範囲全体にわたって動くことができるが、より滑らかに動く。
【００８３】
アニマトロニクス・フィギュア１０８の動作のフィルタ処理は、生き物のような動作を生成する。生き物が生成する現実世界の動作は、他のものとは異なる周波数で発生する。例えば、大部分の生き物は頭よりも目をより素早く動かす。
【００８４】
図６Ａに、アニマトロニクス・フィギュア１０８の頭のフィルタ処理なしの動作用のフィルタのグラフ６００を示す。フィルタ処理なしの動作は、周波数成分の異なる部分において一定振幅を有する水平バー６０２を有する。水平バー６０２は、ユーザ１０１の入力にほぼ追従するアニマトロニクス・フィギュア１０８の動作を表わす。例えば、ユーザ１０１がジョイスティックを左から右に素早く動かした場合に、アニマトロニクス・フィギュア１０８の頭は、ジョイスティックの動きに近い動きで動作する。
【００８５】
図６Ｂに、アニマトロニクス・フィギュア１０８の頭のフィルタ処理した動作用のフィルタのグラフ６１０を示す。高周波成分の部分はフィルタ処理され、従って低周波成分のみが通過する。曲線６２０は水平バー６０２をフィルタ処理して生成される。グラフ６１０に示すように、曲線６２０は、低周波部分では、フィルタ処理を全く行わなかった場合に生じる振幅を有する。しかし、高周波部分では振幅が減少する。
【００８６】
ローパスフィルタにより、アニマトロニクス・フィギュア１０８の頭は、ユーザ１０１によって不用意に与えられる高周波の急な動き及びぎこちなさなしに動作する。結果的な動作は、生き物の頭のような生きた動きをもたらす。
【００８７】
図７に、アニマトロニクス・フィルタ構成７００を示し、この構成は、ユーザ入力の動作をフィルタ処理し、調和のとれた動作をアルゴリズム的に決定して、アニマトロニクス・フィギュア１０８の生き物のような動きを生成する。一具体例では、受信モジュール１０２がユーザ入力命令をユーザ１０１から受信し、フィルタモジュール５０２はユーザ入力命令を受信モジュール１０２から受信する。アルゴリズム応答モジュール３０８は、クロック３０２、乱数発生器３０４、及び／またはセンサ３０６から条件を受信する。アルゴリズム応答モジュール３０８はこの条件を利用して、アルゴリズム的に決定される動作をアルゴリズムにより計算する。さらに、アルゴリズム応答モジュール３０８は、アルゴリズム的に決定される動作をフィルタモジュール５０２に提供する。
【００８８】
フィルタモジュール５０２は、ユーザ入力の動作に第１フィルタを適用し、アルゴリズム的に決定される動作に第２フィルタを適用する。例えば、生き物は、頭を動かす前に頭が動く向きに目を動かしがちであり、先行動作と称される。フィルタモジュール５０２はバンドパスフィルタまたはハイパスフィルタをアニマトロニクス・フィギュア１０８の目に適用して、こうした目の素早い先行動作を生成することができる。さらに、フィルタモジュール５０２はローパスフィルタを頭に適用して、頭の比較的遅い動きを生成することができる。そしてフィルタモジュール５０２は、フィルタ処理した目の動作及びフィルタ処理した頭の動作を動作ソフトウェアモジュール１０６に提供する。動作ソフトウェアモジュール１０６はアニマトロニクス・フィギュア１０８に命令して、フィルタ処理した動作を生成させる。
【００８９】
図８Ａに、アニマトロニクス・フィギュア１０８の異なる動作用のフィルタを表わすグラフ８００を示す。曲線８０２は、アニマトロニクス・フィギュア１０８の目の動作用のフィルタを表わす。一具体例では、フィルタモジュール５０２はバンドパスフィルタを、アニマトロニクス・フィギュア１０８の目の動作に適用する。曲線８０２からわかるように、高周波成分の部分及び低周波成分の部分はブロックされている。その結果、残りの中間周波数成分が通過する。
【００９０】
さらに、アニマトロニクス・フィギュア１０８の頭用のローパスフィルタを表わす曲線８０４を示す。一具体例では、ローパスフィルタをアニマトロニクス・フィギュア１０８の頭の動作に適用する。ローパスフィルタは高周波成分をブロックし、低周波成分を通過させる。従って、アニマトロニクス・フィギュア１０８の頭は、アニマトロニクス・フィギュア１０８の目に比べて比較的遅い動きで動作する。その結果、まず目が、頭の動こうとする向きに動いて、アニマトロニクス・フィギュア１０８における調和のとれた生き物のような動きを生成する。
【００９１】
これに加えて、アニマトロニクス・フィギュア１０８の首の中央部分の動作にフィルタを適用する。一具体例では、このフィルタは少し低域側のローパスフィルタである。曲線８０６は首の中央部分用のローパスフィルタを表わす。このローパスフィルタは、首の中央部分の高周波成分を頭よりも大幅にブロックアウト（阻止）する。従って、頭は首の中央部分よりも少し前に少し素早く動いて、頭と首の動きを生き物のように調和させる。
【００９２】
アニマトロニクス・フィギュア１０８の首の付け根の動作にもフィルタを適用する。一具体例では、このフィルタはさらに低域側のローパスフィルタである。曲線８０８は首の付け根のローパスフィルタを表わす。このローパスフィルタは、首の付け根の高周波成分を首の中央部分よりも大幅にブロックアウトする。従って、首の中央部分は首の付け根よりも少し前に少し素早く動いて、頭と首の動きを生き物のように調和させる。
【００９３】
図８Ｂに、図８Ａに示す各フィルタを用いてフィルタ処理したアニマトロニクス・フィギュア１０８の各身体部分の回転動作を表わすグラフ８２０を示す。ステップ入力８２２は、ユーザ１０１によって入力されフィルタ処理されていない理想化した究極の動作を表わす。曲線８２４はフィルタ処理した目の動作を表わす。さらに、曲線８２６はフィルタ処理した頭の動作を表わし、曲線８２８はフィルタ処理した首中央の動作を表わし、そして曲線８３０は首の付け根の動作を表わす。曲線８２４は回転において非常に素早いジャンプを有する、というのは、目は他の身体部分がその後に動く向きに素早く動くからである。従って、頭、首中央、及び首の付け根はよりゆるやかに動作する。
【００９４】
図９Ａに、ユーザ入力コマンド、及びユーザ入力コマンドの発生によって決まるコマンドに基づいてアニマトロニクス・フィギュア１０８の動作をフィルタ処理するプロセス９００を示す。処理ブロック９０２では、オペレータ１０１から第１コマンドを受信する。処理ブロック９０４では、第１コマンドの受信の発生に基づいて第２コマンドを決定する。一具体例では、アルゴリズム応答モジュール３０８が、条件の発生に基づいて動作をアルゴリズム的に決定する。例えば、ユーザ１０１によるアニマトロニクス・フィギュア１０８の頭を動かすコマンドの入力の発生時に、アルゴリズム応答モジュール３０８は、アニマトロニクス・フィギュア１０８がその目を動かすコマンドを与えることができる。一具体例では、目はユーザが入力した動きの向きに動く。
【００９５】
処理ブロック９０６では、第１動作及び第２動作を決定する。これらの動作はそれぞれのコマンドから決まる。一具体例では、変換ソフトウェアモジュール１０４がコマンドを動作に変換する。
【００９６】
処理ブロック９０８では、上記第１動作及び第２動作をフィルタ処理して調和のとれた生き物のような動きを生成する。従って、処理ブロック９１０では、上記第１及び第２動作をアニマトロニクス・フィギュア１０８に与える。
【００９７】
図９Ｂに、ユーザ入力コマンド及び刺激から決まるコマンドに基づいてアニマトロニクス・フィギュア１０８の動作をフィルタ処理するプロセス９２０を示す。処理ブロック９２２では、オペレータ１０１から第１コマンドを受信する。従って、処理ブロック９２４では、センサ３０６から刺激を受信する。処理ブロック９２６では、受信した刺激に基づいて第２コマンドを決定する。一具体例では、アルゴリズム応答モジュール３０８が、刺激の発生に基づいて動作をアルゴリズム的に決定する。例えば、アルゴリズム応答モジュール３０８は、アニマトロニクス・フィギュア１０８がクロック３０２の時刻に応じてその胸を呼吸動作のように動かすコマンドを供給することができる。
【００９８】
処理ブロック９２８では、第１動作及び第２動作を決定する。これらの動作はそれぞれのコマンドから決まる。一具体例では、変換ソフトウェアモジュール１０４がコマンドを動作に変換する。
【００９９】
処理ブロック９３０では、上記第１動作及び第２動作をフィルタ処理して、調和のとれた生き物のような動作を生成する。従って、処理ブロック９３２では、第１及び第２動作をアニマトロニクス・フィギュア１０８に与える。
【０１００】
一具体例では、リアルタイムで評価されるスクリプト言語を用いてショー要素を記述する。ショー要素は、小さい動き及びジェスチャーから歩行のような複雑な相互作用的な動きまでにわたり得る演技要素である。これらのショー要素は、アニマトロニクス・フィギュア１０８の動作の集合、並びに音響、及び照明及び映像のような他のコンピュータ制御の事象を含む。ショー要素は一般に、スクリプト言語を用いて、比較的単純なショー要素を組み合わせて複雑な生き物のような動作を生成することによって構成される。
【０１０１】
一具体例では、スクリプト言語及びその実行環境を物理的連続動作に特化し、厳密なリアルタイムの枠組内で実行する。物理的連続動作への特化は、共通の連続動作タスクを単純かつ効率的にする。リアルタイムの枠組は、結果的な動作がぎこちなくなったり一時停止したりしないことを保証し、一貫した制御及び安全性を維持する。
【０１０２】
滑らかな動作は、物理的に実現される連続動作にとって有用である。その下にあるシステムは、要素動作、合成動作、及び変換された動作の明示的な調和を維持し、滑らかな
軌跡の自動的な生成を可能にする。一具体例では、簡単に使用できると共にＣ2連続を維持するキーフレーム連続動作への取り組みを用いる。Ｃ2連続によれば、軌跡及びその最初２つの（１次及び２次）導関数が連続であることを意味する。このことは、アニマトロニクス・フィギュア１０８が１つの位置から他の位置へ不連続的にジャンプしないことだけでなく、その速度及び加速度が限定され、かつ滑らかに変化することも保証する。限定されかつ滑らかに変化する速度及び加速度は、モータトルクも限定しかつ滑らかに変化させる。この情報の維持は、要素動作を特定の一般化された変換によって射影することを可能にし、変換空間の組合せにおいて同時に記述される滑らかな複数軌跡を生成することを可能にする。
【０１０３】
図１０に、ソフトウェアモジュールの階層システム１０００を示す。一具体例では、階層システム１０００はアニマトロニクス・フィギュア１０８を制御する。オペレータ・インタフェース１００２は、オペレータ１０１がシステムを制御することを可能にする。さらに、軌跡プランナー（計画装置）１００４は、アニマトロニクス・フィギュア１０８のモータによって進むべき経路を決定する。これに加えて、サーボループ１００６は、他のアクチュエータのモータに指示して所望の動作を実行させる。サーボループ１００６は、モータ及び他のアクチュエータも監視して、モータ及び他のアクチュエータが指定した限界内で動作していることを確実にする。複数の低レベルのハードウェア・ドライバ（駆動装置）１００８は、アニマトロニクス・フィギュア１０８のハードウェア１０１０と直接通信する。
【０１０４】
図１１に、軌跡プランナー１００４の詳細図を示す。軌跡プランナー１００４はアニマトロニクス・フィギュア１０８の動作を計画し実現させる。上述したスクリプト要素を、アニマトロニクス・フィギュア１０８のアクチュエータに指示することによって実現して、特定の軌跡に追従させる。これらの軌跡は必ずしも固定または所定のものではないが、一般に、外部入力及びオペレータの制御に基づいて変化する。このことは、お客様との自律的なやり取り、環境への応答、及びスクリプト要素のトリガ起動を可能にする。一具体例では、連続的に進化する軌跡を適時かつ滑らかに生成する。
【０１０５】
一具体例では、軌跡を演算オブジェクトとして、実際にはコンピュータプログラムとして実現し、これらのプログラムは精密なリアルタイム・クロック上で評価される。これらのプログラムは作成され、インストールされ、そして結果的な動作が完了するか停止されるまで実行される。軌跡が進む間に、軌跡を連続的に評価して、アニマトロニクス・フィギュア１０８の次の目標位置を決定する。
【０１０６】
軌跡は厳密に周期的なサイクルで評価される。この評価が一時停止するか、あるいは指定時刻に値を戻さないことは許容されない。こうした一時停止はシステムの故障と区別できず、そして指定時刻後に値を戻さないことは滑らかでない動きを生じさせる。従って、計算にもたつきを生じさせ得る演算の要素は必然的に取り除かれる。
【０１０７】
評価された言語は、計算を実行するために必要なリソース（資源）を獲得し解放することによって動的な挙動を達成する。最も一般的なリソースはコンピュータメモリであるが、ハードウェア及び他の装置も含む。リソースの獲得は、不定量の時間にわたることができる。従って、スクリプト言語が計算を実行するために用いる方法は、適時の結果を保証することができず、従ってここでは許容されない。
【０１０８】
軌跡プランナー１００４は、軌跡追従兼実行モジュール１１０２を有する。従って、軌跡追従兼実行モジュール１１０２は、軌跡を評価して目標位置を決定するリアルタイム・タスクを処理する。軌跡追従兼実行モジュール１１０２は周期的に起動し、有効な軌跡を評価し、そして目標位置を戻す。
【０１０９】
これに加えて、軌跡プランナー１００４は軌跡作成兼管理モジュール１１０４を有する。従って、軌跡作成兼管理モジュール１１０４は非リアルタイムの必要事項、特に軌跡オブジェクトの作成及びリソースの管理を取り扱う。軌跡が完成すると、軌跡作成兼管理モジュール１１０４及びそのすべてのリソースがマネージャ（管理プログラム）に返却されてクリーンアップ（消去）され、即ち、メモリ及び装置が解放されてコンピュータに戻され、他で使用される。非リアルタイム管理のスレッド、共通のメモリ空間を共用し管理する協働プログラムを有するこの方法は、リソース管理用に他で一般的に用いられる方法とは異なり、こうした方法より強力である。
【０１１０】
軌跡オブジェクトは、「原子的」なものとすることも合成的なものとすることもできる。「原子的」な軌跡は、他の軌跡とは独立して目標位置を計算することができる。一具体例では、「原子的」な軌跡は時刻または外部入力を用いる。合成軌跡は、成分軌跡の出力に基づいてその目標位置を計算する。
【０１１１】
図１２に、単純な合成軌跡の例を示す。「原子的」な正弦波１２０２とエンベロープ（包絡線）軌跡１２０４とを掛け合わせ、そして「原子的」なジョイスティック入力１２０６をフィルタ処理して加算する。この合成軌跡オブジェクトは、その結果を単一値、即ち次の目標位置として出力する。
【０１１２】
本実施例における軌跡オブジェクトは、一般化された演算環境を提供する。図１２の例は乗算１２０８及び加算１２１２のような算術演算子、「原子的」な正弦波１２０２のような基本関数、エンベロープ軌跡１２０４のようなキーフレームデータ、及びフィルタ１２１０使用を示す。
【０１１３】
これに加えて、他の軌跡は、列軌跡、合成軌跡、及び遷移軌跡とすることができ、論理演算子を実行することができ、そして開始、停止、及び中断中の軌跡を取り扱うことができる。軌跡は複数の出力を生成することができ、そして変換、ループ化、及びテストすることができる。最後に、軌跡は、内部演算環境を規定することができ、この環境では内部変数、内部関数、及び内部軌跡を定義することができる。
【０１１４】
キーフレームベースの曲線は、連続動作、コンピュータ支援設計、その他にとって一般的かつ重要なツールである。キーフレーム連続動作に用いる標準的な方法は、強力かつ簡単に使用できるが、物理的連続動作が要求する高度な数学的滑らかさ、即ち、アニマトロニクス・フィギュアまたはロボットの生き物のような動きを欠いている。一具体例では、使用する「原子的」なキーフレーム軌跡はＣ2連続である。Ｃ2連続とは、位置及びその最初２つ（１次及び２次）の導関数、即ち速度及び加速度が連続かつ滑らかであることを意味する。
【０１１５】
一具体例では、滑らかなキーフレームベースの曲線を実現する。従って、曲線はＣ2連続である。さらに、データを補間し、即ち、曲線は単なる近似ではなく、すべての指定データを通る。これに加えて、キーフレームは不均一な間隔にすることができる。換言すれば、キーフレームの隣接対間の時間を異ならせることができる。個々のキーフレームは位置データのみ、位置及び速度データ、あるいは位置、速度及び加速度データを含むことができ、これらのデータはすべて補間することができる。異なる種類のキーフレーム、例えば位置、位置／速度、または位置／速度／加速度のキーフレームを任意に混合することができる。
【０１１６】
キーフレーム連続動作の標準的な方法は、ベジェ（Bezier）曲線またはエルミートスプラインの一般クラスをしばしば用い、これらの両者はその標準形式ではＣ1連続であるに過ぎない。より高次のベジェ及びエルミートスプラインも存在するが、簡単な曲線編集にはあまり適さない。曲線編集用に最も一般的なエルミートスプラインはキャットマル−ロム（Catmul-Rom）法であり、隣接点を用いて、各点において追加的に必要な制限、即ち速度を計算する。追加的な制御を加えることもでき、最も一般的な例は恐らく、AUTODESK（登録商標）の3D-STUDIO MAX（登録商標）及びNETTEK（登録商標）のLIGHTWAVE（登録商標）において見られるコハネク−バーテルズ（Kochanek-Bartels）スプラインである。
【０１１７】
図１３に、複数のキーフレームによって記述される曲線１３００を示す。一具体例では、曲線はＮ個のキーフレームｋ1, ｋ2,...ｋnの集合で記述される。各キーフレームｋiは時刻及び位置｛ｔi, ｘi｝を含み、そして随意的に速度｛ｔi, ｘi, ｖi｝または速度及び加速度｛ｔi, ｘi, ｖi, ａi｝を含むことができる。速度を指定しないキーフレームについては、キーフレームを次の方法で計算する。最初または最後のキーフレーム（ｋ1またはｋN）の場合には、未指定の速度を０に設定し、即ちｖi＝０とする。他の場合には、隣接するキーフレームを用いて、キャットマル−ロム法で用いたのと同様の方法で速度を計算する。キャットマル−ロム法は、単に隣接点を通る線を引くことによって、図１３に示すように、次式のように速度を計算する：
【数１】
2007517585.tif 000003
キーフレーム間の時間が十分に等しくなければ、キャットマル−ロム法は良好に実行することができず、時として高い加速度を有する曲線を必要とする。
【０１１８】
図１４に、曲線１４００が複数のキーフレームによって記述される他の具体例を示す。隣接する２つの速度の加重平均を実現する。この加重平均は次式によって記述される：
【数２】
2007517585.tif 000004
ここに、dｔB＝ｔi+1−ｔi
【数３】
2007517585.tif 000005
である。
【０１１９】
dｔA＝dｔBである際には、ｖiの値はキャットマル−ロム値まで減少する。加速度を指定しないあらゆるキーフレームについて、次の計算を実行する。最初または最後のキーフレーム（ｋ1またはｋN）の場合には、未指定の加速度を０に設定し、即ちａi＝０とする。残りのキーフレームの加速度が未指定である場合には、この加速度は、当該キーフレームから左に向かう曲線の加速度と当該キーフレームから右に向かう曲線の加速度とを平均し、これによりこれらの曲線を補間して何らかのデータが存在するようにする。この計算は次式で表わされる：
【数４】
2007517585.tif 000006
この要素加速度ａA及びａBは次の方法で計算する。前のキーフレームｋi-1は加速度が指定されているか、あるいは最初のキーフレーム（即ちａi-1＝ａi＝０）である場合には、４次多項式ｆa(ｔ)＝ａ0＋ａ1ｔ＋ａ2ｔ2＋ａ3ｔ3＋ａ4ｔ4を、｛ｔi-1, ｘi-1, ｖi-1, ａi-1｝及び｛ｔi, ｘi, ｖi｝を通るように解き、そしてｔiにおける結果的な加速度を次式のように計算する：
【数５】
2007517585.tif 000007
その他の場合、即ち、前のキーフレームｋi-1は加速度が指定されておらず、かつ最初のキーフレームでない場合には、３次多項式ｆa(ｔ)＝ａ0＋ａ1ｔ＋ａ2ｔ2＋ａ3ｔ3を、｛ｔi-1, ｘi-1, ｖi-1｝及び｛ｔi, ｘi, ｖi｝を通るように解き、そしてｔiにおける結果的な加速度を次式のように計算する：
【数６】
2007517585.tif 000008
後続するキーフレームｋi+1は加速度が指定されているか、あるいは最後のキーフレーム（即ちａi+1＝ａN＝０）である場合には、４次多項式ｆb(ｔ)＝ｂ0＋ｂ1ｔ＋ｂ2ｔ2＋ｂ3ｔ3＋ｂ4ｔ4を、｛ｔi, ｘi, ｖi｝及び｛ｔi+1, ｘi+1, ｖi+1, ａi+1｝を通るように解き、そしてｔiにおける結果的な加速度を次式のように計算する：
【数７】
2007517585.tif 000009
その他の場合、即ち、後続するキーフレームｋi+1は加速度が指定されておらず、かつ最後のキーフレームでない場合には、３次多項式ｆb(ｔ)＝ｂ0＋ｂ1ｔ＋ｂ2ｔ2＋ｂ3ｔ3を、｛ｔi, ｘi, ｖi｝及び｛ｔi+1, ｘi+1, ｖi+1｝を通るように解き、そしてｔiにおける結果的な加速度を次式のように計算する：
【数８】
2007517585.tif 000010
【０１２０】
この時点では、各キーフレームは位置、速度、及び加速度を有し、これらは指定されたものであるか、あるいは隣接するキーフレームの値をもとに計算されたものである。ここで、完全に値を与えられたこれらのキーフレームを用いて、結果的な曲線を計算する。
【０１２１】
図１５に、キーフレームの列を有するグラフ１５００を示す。４つのキーフレームのすべてが位置のみ指定されているが、最初及び最後のキーフレームはデフォルトの速度０及び加速度０を有する。一対のキーフレームｋiとｋi+1との間では、曲線は、｛ｔi, ｘi, ｖi, ａi｝及び｛ｔi+1, ｘi+1, ｖi+1, ａi+1｝を通る５次多項式ｆ(τ)＝ｃ0＋ｃ1τ＋ｃ2τ2＋ｃ3τ3＋ｃ4τ4＋ｃ5τ5の値に規定され、ここに：
τ＝ｔ−ｔi
dｔ＝ｔi+1−ｔi
ｃ0＝ｘi
ｃ1＝ｖi
ｃ2＝ａi
【数９】
2007517585.tif 000011
である。
【０１２２】
図１６Ａに、データを補間した他のグラフ１６００を示す。グラフ１６００は、標準的なキャットマル−ロム・キーフレーム・スプライン、並びに加速度平滑化あり及びなしで平滑化したキーフレームを示す。
【０１２３】
図１６Ｂに、上記に対応する速度のグラフ１６１０を示す。図１６Ｃに、上記に対応する加速度のグラフ１６２０を示す。さらに、時刻ｔ＝１及びｔ＝２におけるキーフレーム点では加速度の不連続が存在する。
【０１２４】
この方法の追加的な利点は、加速度の平均化は一般に最大加速度を低減し、これにより、ロボットが動作を実現するために要求される結果的なトルクを低減する
【０１２５】
「原子的」及び合成的な軌跡オブジェクトが滑らかな動きを生成すべきだけでなく、曲線間の遷移、中断される曲線、及び予期しない位置から始まる曲線も、滑らかな動きを生成しなければならない。このことは、軌跡の現在の動きを記述するＰＶＡ（Position, Velocity, and Acceleration：位置、速度、及び加速度）オブジェクトと称されるソフトウェアオブジェクトを計算し終わることによって行われる。軌跡オブジェクトはＰＶＡを用いて、その動きを初期化し、軌跡オブジェクトが停止または中断する時点をＰＶＡに戻す。これに加えて、ＰＶＡオブジェクトを用いて、異なる変換または記述空間内の動きを組み合わせた軌跡を生成することができることが判明している。
【０１２６】
滑らかな要素軌跡間の遷移は、クロスフェード、即ちフェード自体がＣ2連続の曲線であるフェード（減衰）を用いて達成される。あらゆるＣ2連続のＳ字形曲線を用いることができ、ここでは、このことを次の５次多項式：
ｆ(τ)＝３τ(１０＋τ(６τ−１５))
で行い、ここにスケール時間τは０≦τ≦１である。２つの軌跡Ｔ1及びＴ2、並びに遷移関数ｆ(ｔ)がＣ2連続である場合には、次式の線形結合もＣ2連続である：
ｆ(αｔ)Ｔ1＋(１−ｆ(αｔ))Ｔ2
ここに、αは定数の時間のスケーリング（拡大縮小）係数である。
クロスフェードは、あらゆる軌跡に用いることができる。クロスフェードは、内部軌跡または変換された軌跡を遷移させるために有用であることが多い。このことは、１つの合成動作から異なる合成動作への滑らかな遷移を、直感的ではないことが多いが強力な方法で生じさせる。
【０１２７】
例として、正弦波的な動作を含む尾の振りを考える。アニマトロニクス・フィギュアが幸せな時には、悲しい時よりも尾を速く振りたいことがある。この例では、尾の動作の周波数は幾分低い値から幾分高い値へと滑らかに遷移する。実際には、固定の正弦波的パターンは、生き物のような動きにしては完全過ぎるように、機械的過ぎるように見えることがある。より生き物のようにする解決法は、低周波数のゆるやかに変化する擬似乱数パターンから高周波数のゆるやかに変化する擬似乱数パターンに遷移させることである。
【０１２８】
一部の軌跡、最も顕著なものとしてキーフレーム軌跡は、任意の初期位置または初期動作から始まることができる。すべての軌跡オブジェクトは、実行中に、最初に評価される前に初期化される。この初期化は、開始時刻及び開始ＰＶＡのような多数のパラメータを設定する。キーフレーム軌跡は、そのように指定されれば、この開始ＰＶＡを初期キーフレーム、曲線内の後続するキーフレームとして、あるいはこの軌跡オブジェクトが用いる計算上の要素として用いることができる。従って、予め定められていない動作から始まる軌跡でも、滑らかな軌跡を算出してこれに追従することができる。
【０１２９】
制御システムの結果的なタスクがロボットのモータを動かすことである間には、変換空間内で動きを記述することがより容易であることが多い。歩行中のアニマトロニクス・フィギュアについては、体を水平、垂直に動かすか回転させる概念的に単純なタスクは一般に、すべての脚のすべてのモータを調和させて動かす必要がある。これらの概念的に単純な体の動きの組合せを迅速に生成することは、各ジョイントの軌跡を直接記述しなければならない場合には非実用的なほど困難になる。歩行の例では、動きは体の動きで記述され、システムはこの動きを生成するために必要な脚のモータの動きを計算する。この例における変換は、体の動きと脚のモータの動きとの間で行われる。
【０１３０】
変換を合成軌跡及びＰＶＡと組み合わせることによって、この好適な実施例では追加的な能力が実現される。特に強力な能力は、動きを１つの変換空間から他の変換空間内に射影することである。例として、トランペットを拾い上げて演奏するアニマトロニクス・フィギュアを考えれば、このアニマトロニクス・フィギュアは常時その頭及び体を動かしている。トランペットを拾い上げる間のアニマトロニクス・フィギュアの手の位置は、表（テーブル）の静止座標系で最も容易に記述される。トランペットを演奏する間のアニマトロニクス・フィギュアの動きは、フィギュアの唇の動きで最も容易に記述される。１つの変換空間から他の変換空間へ滑らかに遷移すること、並びに１つの空間内で記述される動きを他の空間内で修正または組み合わせることを可能にすることは、１つの空間内で記述される動作を結合動作に射影し、そしてこれらの結合動作を、元の動作が修正されるか他の要素動作と組み合わされる他の変換空間内に射影することによって達成される。
【０１３１】
他の例はアニマトロニクス恐竜の動作であり、歩行中の足の位置を含む。足が地面についている間には、恐竜の位置は地面の座標で記述され、特に、地面上の足は地面上で移動したり滑ったりするべきではない。一歩の間（歩行ステップ中）に足が空中で振れる間には、恐竜の位置は体の位置で記述される。これら２つの記述または変換空間どうしの間の円滑な遷移を可能にすることによって、足を滑らかに地面から離してもち上げ、規定された歩幅の位置まで前向きに振り、そして滑らかに地面上に戻すことを、足を滑らかに地面から離して地面に着けるために必要な各要素動作を気にしなければならないことなしに、スクリプト言語で求めることができる。
【０１３２】
軌跡を記述し、迅速に試みる能力は、能力及び柔軟性を大いにもたらす。スクリプト言語は、軌跡オブジェクトを高いレベルで記述し、そしてコンピュータに管理させることを可能にする。コンピュータは、スクリプトを読み込む間あるいは文法解析する間に、にこれらのスクリプトに何らかの最適化を実行することもできる。これらの最適化は、より効率的に評価されるより小さい軌跡オブジェクトを生じさせる。
【０１３３】
好適な実施例で用いられるスクリプト言語は、軌跡を規定し操作することを可能にするテキストベースの言語である。説明上、前に例示した軌跡用のスクリプトを示す。そのシンタックス（構文）はコンピュータ言語Ｃ＋＋を思わせる。
【０１３４】
図１７に、滑らかなキーフレームを記述するために用いられる、図１５に示す単純な４点キーフレーム軌跡用のスクリプトの例を示す。この場合には、軌跡は、対となるキーフレーム間に時間をおいて分散されたキーフレーム位置の単なるリストである。”//”の右側の文字列は、コンピュータが無視するコマンド（コメント文）である。結果的な軌跡は３秒間で描かれる。
【０１３５】
図１８に、図１２に示す合成軌跡用のスクリプトの例を示す。値”joistick”（ジョイスティック）及び”envelope”（エンベロープ）がまず定義され、そしてこれらの値は最終的な合成軌跡における構成要素として用いられる。さらに、軌跡内の第２キーフレームは位置及び速度の項を共に含む。
【０１３６】
アニマトロニクスシステム１００は、オペレータ１０１が参加して一部または全部の動作を修正することも完全に置き換え、そしてできれば新たな点においても制御を戻すことができる無制約の環境を扱うあらゆるシステムをカバーすることを意図したものである。アニマトロニクスシステム１００は、用意（予め記録）された動作、（一般にセンサ応答で、あるいは計画的に）計算された動作、及び生の（オペレータ制御の）動作を混合し、これらの動作間の切り換えを行い、継ぎ目のない（シームレスな）合成物（アマルガム）を生成する能力を提供する。従って、アニマトロニクスシステム１００は種々の異なる構成に応用することができる。例えば、アニマトロニクス・フィギュア１０８は、外科手術ロボットがある物を見失うか、さもなければ道に迷った状態にある場合に、医者が主導的に指揮する外科手術ロボットとすることができる。医者が制御を取った場合には、結果的な動きは流体のように見える。医者の介入が外科手術ロボットの動作の制御と調和しない場合には、結果的な動きは、患者にとって有害になり得る変化の形で生成され得る。
【０１３７】
これに加えて、アニマトロニクス・フィギュア１０８は、自動車、飛行機、スペースシャトル、または列車のような交通手段とすることができる。交通手段における自動パイロット機能は、自動パイロットによる動作からオペレータによる動作へ流体のように移行して、乗り物及びその乗客の安全を保障することを可能にする。アニマトロニクスシステム１００は、無視された入力または誤操作も扱うことができる。
【０１３８】
さらに、アニマトロニクス・フィギュア１０８は家事用ロボットとすることもでき、所有者は家事用ロボットに種々の仕事をさせることができる。例えば、所有者はロボットに、家事をやらせるのではなく来客に挨拶させることができる。ここでも、動作の移行は生き物のように見える。
【０１３９】
アニマトロニクス・フィギュア１０８は、化学、核、または生物的な廃棄物、かけら、あるいは核兵器の降下物を清掃するために用いる有害廃棄物清掃ロボットとすることもできる。例えば、ユーザは有害廃棄物ロボットに、どの廃棄物材料を封印コンテナ内に置くべきかを指示することができるが、その仕事を自前で完了させることを任せることもできる。ユーザ制御とロボット制御との間の動作の移行は、ロボットが危険な廃棄物材料を落下させるか、さもなければ誤った取扱いをすることを防ぐのに十分なほど滑らかである。
【０１４０】
アニマトロニクス・フィギュア１０８は爆弾廃棄ロボットとすることもできる。例えば、ユーザは特に敏感な信管抜き操作を実行する間に、ロボットの特定動作を直接制御／ガイド（誘導）することもできるが、ユーザのガイダンス（誘導）なしに爆弾の廃棄を完了させることをロボットに任せることができる。ここでも、ユーザ制御とロボット制御との間の動作の移行は、敏感かつ危険であり得る作業を台無しにし得る事故的な、及び／または意図しない動作を防ぐように滑らかである。
【０１４１】
以上の説明は多くの特定事項を含むが、これらの事項は本発明の範囲を限定するものではなく、本発明の好適な実施例の例示と解釈すべきである。本発明は、本明細書に開示する異なる種類及び／または具体例からの要素のあらゆる組合せ及び副次的組合せを含む。これらの特徴、従って本発明の範囲は、請求項およびこれと等価なものに照らして解釈すべきであることは当業者にとって明らかである。
【図面の簡単な説明】
【０１４２】
【図１】異なる種類のショーをリアルタイムかつ生き物のように生成すべく構成されたアニマトロニクスシステムを示す図である。
【図２】アニマトロニクス・フィギュアの動作を生成するプロセスを示す図である。
【図３Ａ】アルゴリズムに従ってアニマトロニクス・フィギュアの動作を決めるアルゴリズム構成を示す図である。
【図３Ｂ】センサが検出した状態をアルゴリズム応答モジュールに提供するアルゴリズム構成３００の一具体例を示す図である。
【図３Ｃ】受信モジュールが検出した状態をセンサから受信し、かつユーザが入力した動作をオペレータから受信するアルゴリズム構成の他の具体例を示す図である。
【図４】ユーザが入力した命令をアルゴリズム的に決定した命令と組み合わせるプロセスを示す図である。
【図５】アニマトロニクス・フィギュアが生成する動作をフィルタ処理するフィルタ処理アニマトロニクス構成を示す図である。
【図６Ａ】フィルタ処理していないアニマトロニクス・フィギュアの頭の動作のグラフである。
【図６Ｂ】フィルタ処理したアニマトロニクス・フィギュアの頭の動作のグラフである。
【図７】ユーザが入力した動作とアルゴリズム的に決定した動作とを調和させてフィルタ処理して、アニマトロニクス・フィギュアの生き物のような動きを生成するアニマトロニクス・フィルタ構成を示す図である。
【図８Ａ】アニマトロニクス・フィギュア用のフィルタを示すグラフである。
【図８Ｂ】フィルタモジュールによってフィルタ処理されたアニマトロニクス・フィギュアの身体部分の回転を表わすグラフである。
【図９Ａ】ユーザ入力コマンド及びユーザ入力コマンドの発生によって決まるコマンドに基づいてアニマトロニクス・フィギュアをフィルタ処理するプロセスを示す図である。
【図９Ｂ】ユーザ入力コマンド及び刺激から決まるコマンドに基づいてアニマトロニクス・フィギュアの動作をフィルタ処理するプロセスを示す図である。
【図１０】ソフトウェアモジュールの階層システムを示す図である。
【図１１】軌跡プランナーの詳細図である。
【図１２】簡単な合成軌跡の例を示す図である。
【図１３】複数のキーフレームによって記述される曲線を示す図である。
【図１４】曲線が複数のキーフレームによって記述される他の具体例を示す図である。
【図１５】点の列を示すグラフである。
【図１６Ａ】データを補間した他のグラフである。
【図１６Ｂ】図１６Ａに示すグラフに対応する速度を示すグラフである。
【図１６Ｃ】図１６Ａに示すグラフに対応する加速度を示すグラフである。
【図１７】図１５に示す単純な４点キーフレームの軌跡用のスクリプト記述の例である。
【図１８】図１２に示す合成軌跡用のスクリプト記述の例である。
【図１】
2007517585.tif 000012
【図２】
2007517585.tif 000013
【図３Ａ】
2007517585.tif 000014
【図３Ｂ】
2007517585.tif 000015
【図３Ｃ】
2007517585.tif 000016
【図４】
2007517585.tif 000017
【図５】
2007517585.tif 000018
【図６Ａ】
2007517585.tif 000019
【図６Ｂ】
2007517585.tif 000020
【図７】
2007517585.tif 000021
【図８Ａ】
2007517585.tif 000022
【図８Ｂ】
2007517585.tif 000023
【図９Ａ】
2007517585.tif 000024
【図９Ｂ】
2007517585.tif 000025
【図１０】
2007517585.tif 000026
【図１１】
2007517585.tif 000027
【図１２】
2007517585.tif 000028
【図１３】
2007517585.tif 000029
【図１４】
2007517585.tif 000030
【図１５】
2007517585.tif 000031
【図１６Ａ】
2007517585.tif 000032
【図１６Ｂ】
2007517585.tif 000033
【図１６Ｃ】
2007517585.tif 000034
【図１７】
2007517585.tif 000035
【図１８】
2007517585.tif 000036
【手続補正書】
【提出日】平成18年9月15日(2006.9.15)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2007517585.tif 000037
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図８Ａ
【補正方法】変更
【補正の内容】
【図８Ａ】
2007517585.tif 000038
【国際調査報告】
2007517585.tif 000039
2007517585.tif 000040
2007517585.tif 000041