(57)【要約】【課題】現実世界と矛盾しないアニメーションを、容易に作成／編集できるようにする。【解決手段】ユーザ入力され操作命令が編集ルールと矛盾しないかチェックし、矛盾すればエラーとする。オブジェクト操作命令については拘束条件に反していないかチェックし、反していればエラーとする。拘束条件に反しないオブジェクト操作命令について干渉チェックを行い、干渉が生じる場合にはそれを回避するようにオブジェクトを移動させるが、回避不能であればエラーとする（Ｓ８）。オブジェクトまたは視点の移動でシーンを補完する必要があると判断すると、シーンを補完する（Ｓ１０）。補完した操作命令の一部は、再帰的にチェックする。そして、エラーとならない操作命令のみを操作命令格納部に格納する．【選択図】　　　図４
2004062434.tif 000002
【特許請求の範囲】
【請求項１】
アニメーションの画像を構成するオブジェクトを三次元モデル情報として格納する三次元モデル格納手段と、
前記オブジェクトに対する操作命令であるオブジェクト操作命令と視点操作命令から構成される操作命令系列を作成／編集することにより、アニメーションを作成／編集する操作命令編集手段と、
を備えたことを特徴とするアニメーション作成／編集装置。
【請求項２】
前記オブジェクト操作命令の実行によるオブジェクト同士間の干渉の発生を検出する干渉検出手段と、
該干渉検出手段により前記干渉の発生が検出された場合、前記干渉を回避するオブジェクト操作命令を生成する干渉回避手段を、
さらに備えたことを特徴とする請求項１記載のアニメーション作成／編集装置。
【請求項３】
前記視点操作命令または前記オブジェクト操作命令の実行による不連続なシーンの発生を検出する不連続検出手段と、
該不連続検出手段により不連続なシーンが発生することが検出された場合、その不連続なシーン間を補完するシーンを生成するためのオブジェクト操作命令または視点操作命令を生成する補完命令生成手段を、
さらに備えることを特徴とする請求項１記載のアニメーション作成／編集装置。
【請求項４】
前記三次元モデル情報は、オブジェクト間の拘束条件を保持しており、
前記拘束条件に違反するオブジェクト操作命令をエラーとして検出する拘束検出手段を、さらに備えることを特徴とする請求項１記載のアニメーション作成／編集装置。
【請求項５】
アニメーション編集時において、前記操作命令系列に対しオブジェクト操作命令の挿入／削除／移動を行なう際に守るべき編集ルールを格納している編集ルール格納手段と、
前記編集ルールを参照して、前記操作命令系列に対し、前記編集ルールに違反するオブジェクト操作命令の挿入／削除／移動の操作が行なわれた場合、その操作を防止／回避する操作命令編集手段を、
さらに備えることを特徴とする請求項１記載のアニメーション作成／編集装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、現実世界を反映するアニメーションの作成や編集に好適な装置及びプログラムに関する。
【０００２】
【従来の技術】
例えば、装置の組み立てのように動きのある事象を説明する場合、従来は複数の図を使用していたが、近年はアニメーションによる動画を利用するようになってきている。
【０００３】
アニメーションは、連続する大量の画像を高速に切り替えることにより動きを表現している。アニメーションを作成する場合は、通常、一度作成したアニメーションを繋ぎ合わせたり、アニメーションの前後を入れ替えたりするなどの編集作業が発生する。従来のアニメーション編集システムでは、編集対象のアニメーションに対してアニメーションを構成する画像を挿入／削除／移動することによって、編集作業を実施している。
【０００４】
【発明が解決しようとする課題】
従来のアニメーションは、大量の画像の集合でしかないため、例えば、装置の組み立て手順を説明するアニメーションを作成する場合、矛盾するシーン（例えば、ある部位の蓋を閉じたシーンの後に　その部位に部品を組み込むシーンが続く）や不連続なシーン（例えば、組み立て対象の装置に部品を近づけたシーンの直後に、既にその部品が該装置に付設しているシーンが続く）を作成可能であった。
【０００５】
しかしながら、ゲームや漫画などのような虚構が許される世界とは異なり、装置の組み立て手順などのような現実世界の出来事を説明するアニメーションにおいては、上記のような矛盾したシーンや不連続なシーンが存在することは望ましくない。
【０００６】
しかしながら、従来のアニメーション編集システムは、そのような矛盾シーンや不連続なシーンを作成しようとした場合、それを排除したり解消したりするサポート機能を備えていなかった。このため、一度作成したアニメーションを再生し、そのアニメーションを目視しながら上記のようなシーンをチェックする編集作業が必要であった。
【０００７】
本発明の目的は、現実世界を忠実に反映するアニメーションを作成する際に、現実世界とは矛盾するシーンや不自然に見える不連続シーンなどを排除したり解消するアニメーション作成／編集装置を提供することである。
【０００８】
【課題を解決するための手段】
本発明の第１の態様のアニメーション作成／編集装置は、三次元モデル格納手段及び操作命令編集手段を備えている。
【０００９】
三次元モデル格納手段は、アニメーションの画像を構成するオブジェクトを三次元モデル情報として格納する。操作命令編集手段は、前記オブジェクトに対する操作命令であるオブジェクト操作命令と視点操作命令から構成される操作命令系列を作成／編集することによりアニメーションの作成／編集を行なう。
【００１０】
このように、第１の態様のアニメーション作成／編集装置によれば、三次元モデル情報と、それに対するオブジェクト操作命令及び視点操作命令を使用してアニメーションを作成／編集できるため、アニメーション表示用のデータ量を大幅に削減できると共に高速かつ効率的にアニメーションを作成／編集できる。
【００１１】
本発明の第２の態様のアニメーション作成／編集装置は、第１の態様のアニメーション作成／編集装置が備える手段に加え、干渉検出手段と干渉回避手段をさらに備える。
【００１２】
干渉検出手段は、前記オブジェクト操作命令の実行によるオブジェクト同士間の干渉の発生を検出する。干渉回避手段は、該干渉検出手段により前記干渉の発生が検出された場合、前記干渉を回避するオブジェクト操作命令を生成する。
【００１３】
第２の態様のアニメーション作成／編集装置によれば、オブジェクト同士が干渉するシーンの作成を事前に検出し、その干渉を回避するシーンを作成できる。
【００１４】
本発明の第３の態様のアニメーション作成／編集装置は、第１の態様のアニメーション作成／編集装置が備える手段に加え、不連続検出手段と補完命令生成手段をさらに備える。
【００１５】
不連続検出手段は、前記視点操作命令または前記オブジェクト操作命令の実行による不連続なシーンの発生を検出する。補完命令生成手段は、該不連続検出手段により不連続なシーンが発生することが検出された場合、その不連続なシーン間を補完するシーンを生成するためのオブジェクト操作命令または視点操作命令を生成する。
【００１６】
第３の態様のアニメーション作成／編集装置によれば、不連続なシーンを生じるアニメーションの作成を防止できると共に、その不連続を解消するシーンを自動生成できる
本発明の第４の態様のアニメーション作成／編集装置においては、前記三次元モデル情報は、オブジェクト間の拘束条件を保持している。そして、第１の態様のアニメーション作成／編集装置が備える手段に加え、拘束検出手段をさらに備える。
【００１７】
拘束検出手段は、前記拘束条件に違反するオブジェクト操作命令をエラーとして検出する。
第４の態様のアニメーション作成／編集装置によれば、前記拘束条件に反するオブジェクト操作命令をエラーとすることにより、現実世界を反映しないシーンを含むアニメーションの作成を防止できる。
【００１８】
本発明の第５の態様のアニメーション作成／編集装置は、第１の態様のアニメーション作成／編集装置が備える手段に加え、編集ルール格納手段と操作命令編集手段を、さらに備える。
【００１９】
編集ルール格納手段は、アニメーション編集時において、前記操作命令系列に対しオブジェクト操作命令の挿入／削除／移動を行なう際に守るべき編集ルールを格納している。操作命令編集手段は、前記編集ルールを参照して、前記操作命令系列に対し、前記編集ルールに違反するオブジェクト操作命令の挿入／削除／移動の操作が行なわれた場合、その操作を防止／回避する。
【００２０】
第５の態様のアニメーション作成／編集装置によれば、編集ルールを適用することによって、現実世界を正しく反映していないアニメーションの編集を防止／回避できる。
【００２１】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施形態を説明する。
図１は、本実施形態のアニメーション作成／編集装置の構成を示すブロック図である。
【００２２】
同図に示すアニメーション作成／編集システム（アニメーション作成／編集装置）１０は、三次元モデル格納部（３Ｄモデル格納部）１１、操作命令格納部１２、命令系列選択部１３、編集ルール格納部１４、オブジェクト操作部１５、視点操作部１６、拘束検出部１７、干渉検出部１８、干渉回避部１９、不連続検出部２６、補完命令生成部２０、操作命令編集部２１、操作入力部２２、画像作成部２３、アニメーション格納部２４及びアニメーション表示部２５から構成される。これらの構成要素１１〜２５の内、構成要素１１、１２、１４〜２３は、互いにバス２９で接続されている。
【００２３】
三次元モデル格納部１１は、アニメーションの画像を構成するオブジェクト（アニメーションに登場する人物，物体等）の形状・構成などを定義する三次元モデル情報を格納する。三次元モデル格納部１１は、オブジェクト間の拘束条件（あるオブジェクトが別のオブジェクトに拘束されており、単独では移動できない関係や、オブジェクトの移動方向や移動可能な範囲に関する制限など）を保持している。本実施形態では、オブジェクトの移動は、この拘束条件に従った範囲内でのみ可能であり、拘束条件に従がわないオブジェクト移動命令は拘束検出部１７によってエラーとして検出される。
【００２４】
操作命令格納部１２は、視点やオブジェクトに関する一連の操作命令（命令系列）を複数格納する。命令系列選択部１３は、操作命令格納部１２に格納されている複数の該命令系列の中から一つ選択する。
【００２５】
編集ルール格納部１４は。アニメーション編集時のルールを格納する。このルールには、以下のようなものがある。
（１）　オブジェクト移動命令を命令系列に挿入する場合、対象オブジェクト
は分解された状態でなければならない。
【００２６】
（２）　命令系列内でオブジェクト移動／回転命令を移動する場合、対象オブジェクトの拘束変更（分解／組み立て）命令との順序を崩さずに移動する。
【００２７】
（３）　命令系列にオブジェクトの可動範囲の変更命令を挿入する場合、可動
方向が設定されていなければならない。
（４）　命令系列にオブジェクトの可動範囲の変更命令を挿入する場合、対象オブジェクトに対する移動命令で可動範囲を超えて移動する命令があっ
てはならない。
【００２８】
オブジェクト操作部１５は、ユーザからのオブジェクト操作命令の入力を受けて、仮想空間中でオブジェクトを操作する。このとき、干渉検出部１８が該操作に伴うオブジェクト間の干渉をチェックし、干渉が生じる場合は干渉回避部１９が干渉が解消される方向にオブジェクト移動方向を修正することによって、干渉を回避させる。干渉回避が不可能であった場合にはそのオブジェクト操作命令はエラーとなる。また、オブジェクトが干渉せずに移動可能であった場合には、命令系列選択部１３を経由して、上記オブジェクト操作命令が操作命令格納部１２内の当該命令系列に格納される。また、オブジェクト操作部１５は、オブジェクトの拘束削除操作も行なう。この拘束削除操作は、該オブジェクトが属していたツリーからそのオブジェクトを外す操作によって実施される。これにより、例えば、そのオブジェクトが親オブジェクトの拘束から解放される。
【００２９】
視点操作部１６は、ユーザからの視点操作命令の入力を受けて、仮想空間における視点を移動させる。仮想空間における視点の移動は自由に可能である。ユーザが視点操作を行なった場合、その視点操作内容は命令系列選択部１３を経由して操作命令格納部１２内の当該命令系列に格納される。
【００３０】
拘束検出部１７は、上述したように三次元モデル格納部１１に格納されている拘束条件を参照して、該拘束条件に反するオブジェクト操作命令をエラーとして検出する。
【００３１】
干渉検出部１８は、上述したように、オブジェクト操作部１５が仮想空間中でオブジェクトを操作する際、オブジェクト間で干渉が生じるかチェックする。
干渉回避部１９は、干渉検出部１８によってオブジェクト操作によりオブジェクト間で干渉が生じると判断された場合、その干渉が回避される方向にオブジェクトの操作を変更させる。
【００３２】
不連続検出部２６は、視点操作命令やオブジェクト操作命令を行なったとき、不連続なシーンの発生を検出する。
補完命令生成部２０は、不連続検出部２６により不連続なシーンの発生が検出されたとき、その不連続を補完するシーン（画像）を生成するための操作命令を生成する。補完命令生成部２０は、該操作命令を、不連続前後のシーンの視点／オブジェクトの位置を基に生成する。
【００３３】
操作命令編集部２１は、アニメーションの作成や編集をする。アニメーションの作成は、三次元モデル情報４０に格納されているオブジェクト（親オブジェクトや子オブジェクトなど）に対するオブジェクト操作命令や視点操作命令を順次生成しながら、それらの操作命令の連なりである操作命令系列（命令系列）を作成し、その操作命令系列を命令系列選択部１３を介して操作命令格納部１２に格納することにより行なわれる。また、編集は、操作命令格納部１２に格納されている命令系列（一連の操作命令）に対し、オブジェクト操作命令や視点操作命令を挿入／削除／移動することにより行なわれる。操作命令編集部２１は、この編集時において、編集ルール格納部１４に格納されている編集ルールを参照し、編集ルールに矛盾する編集操作が行なわれると判断した場合には、矛盾を引き起こす操作命令を矛盾を回避する操作命令に変換するか、またはその編集操作をエラーとする。例えば、オブジェクトの移動命令を、オブジェクトの拘束解除以前のタイミングに移動しようとした場合には、そのオブジェクトの拘束解除命令も一緒に移動させることにより、矛盾を回避させる。
【００３４】
操作入力部２２は、ユーザが視点やオブジェクトの操作命令を入力するための装置であり、例えば、キーボードやマウスなどのポインティングデバイスを備える。
【００３５】
視点操作命令には、視点の移動／回転、ズームイン、パンアウト等がある。また、オブジェクト操作命令には、オブジェクトの移動／回転、構成変更、属性（可動方向、可動範囲、表示属性、操作禁止属性など）変更などがある。
【００３６】
また、これらの命令書式は、例えば、以下のようになっている。
（１）　視点移動
ＭｏｎｅＣａｍｅｒａ　方位角　天頂角　視半径　注視点
（２）　オブジェクト移動
Ｍｏｖｅ　オブジェクトＩＤ　ｘ増分　ｙ増分　ｚ増分
（３）　オブジェクト回転
Ｒｏｔａｔｅ　オブジェクトＩＤ　軸　角度
（４）　構成変更
Ｊｏｉｎｔ　オブジェクトＩＤ　親オブジェクトＩＤ　可動方向　可動範囲
画像作成部（画像生成部）２３は、三次元モデル格納部１１に格納された三次元モデル情報と命令系列選択部１３によって選択された操作命令格納部１２内に格納された命令系列とからアニメーション画像を生成する。画像作成部２３は、この生成したアニメーション画像をアニメーション表示部２５を介して表示させるか、またはアニメーション格納部２４に格納する。
【００３７】
アニメーション格納部２４は、画像作成部２３によって生成されたアニメーション画像を格納する記憶装置であり、ハードディスクやＤＶＤ−ＲＡＭ等である。
【００３８】
アニメーション表示部２５は、画像作成部２３によって生成されたアニメーション画像を再生する表示装置であり、ＣＲＴディスプレイ、液晶表示装置、プラズマディスプレイ等である。
【００３９】
図２は、三次元モデル格納部１１に格納される三次元モデル情報のデータ構造の一例を示す図である。
同図に示すように、オブジェクト（例えば、一つの装置）を表現する三次元モデル情報４０は、木構造（ツリー構造）となっている。三次元モデル情報４０は、最上位階層（根）の三次元構成情報（３Ｄ構成情報）５０、第２階層の三次元構成情報（３Ｄ構成情報）６０−１，６０−２及び第３階層の三次元形状情報（３Ｄ形状情報）７１（７１−１，７１−２、７１−３、７１−４、７１−５、・・・）、７２（７２−１，７２−２、７２−３、７２−４、７２−５、・・・）から構成されている。
【００４０】
三次元構成情報５０は、子オブジェクト（例えば、装置のユニット）として２つの三次元構成情報６０（６０ー１，６０−２）を有している。また、三次元構成情報６０ー１は、子オブジェクトとして複数の三次元形状情報７１（７１−１、７１−２，７１−３，７１−４，７１−５、・・・）を有している。また、三次元構成情報６０ー２は、子オブジェクト（例えば、ユニットを構成する部品）として三次元形状情報７２（７２−１，７２−２，７２−３、７２−４，７２−５、・・・）を有している。
【００４１】
三次元構成情報５０は、下記の情報を有する。
・　相対位置／方向
・　構成（子オブジェクト）
・　可動方向／範囲
三次元構成情報５０の子オブジェクトである三次元構成情報６０（６０−１，６０ー２）も、三次元構成情報５０と同様な構成となっており、下記の情報を有する。
【００４２】
・　相対位置／方向
・　構成（子オブジェクト）
・　可動方向／範囲
三次元構成情報６０の子オブジェクトである三次元形状情報７０（７１，７２）は、下記の情報を有する。
【００４３】
・　相対位置／方向
・　属性（表示、操作禁止等
ここで、上位層の相対位置／方向の変化は、下位階層の相対位置／方向に反映される。また、前述した干渉検出部１８によるオブジェクト間の干渉チェックは、三次元構成情報５０、三次元構成情報６０及び三次元形状情報７１，７２の相対位置／方向情報を基に行なわれる。尚、図２に示す三次元モデル情報４０は、あくまでも一例であり、さらに多階層の構成であってもよい。
【００４４】
図３は、図２に示す三次元モデル情報４０によって表現されるオブジェクトの一例を示す図である。
図３に示すノートパソコン（ノート型パーソナルコンピュータ）１００は、全体が三次元構成情報５０で表現され、各ユニットが三次元構成情報６０で表現される。また、各ユニットの各構成部品（キーボード、ＣＤ、ＨＤＤ，バッテリー等）が三次元形状情報７０で表現される。
【００４５】
図４は、上記構成のアニメーション編集システム１０による編集動作を説明するフローチャートである。尚、このフローチャートの処理が開始されるに先立って、ユーザにより編集対象となるアニメーションに対応する（操作命令格納部１２に格納されている）命令系列が選択されているものとする。
【００４６】
まず、ユーザが操作入力部２２を介して入力が行なわれると（ステップＳ１）、その入力が「操作命令編集」（命令系列内の操作命令に対する挿入／削除／移動）であるか判断する（ステップＳ２）。
【００４７】
そして。操作命令編集であれば、操作命令編集部２１が編集ルール格納部１４に格納されている編集ルールを参照して、ユーザに指示された操作命令が編集ルールに矛盾していないか判断し（ステップＳ３）、矛盾していれば上記操作命令をエラーとする（ステップＳ４）。
【００４８】
一方、ステップＳ３で矛盾していないと判断すると、ユーザ入力がオブジェクト操作命令であるか判断し（ステップＳ５）、オブジェクト操作命令であれば、拘束検出部１７が三次元モデル格納部１１を参照して、▲１▼オブジェクト操作命令の対象オブジェクトが拘束条件を保持しており、該オブジェクト操作命令による該対象オブジェクトの移動が該拘束条件に反するものであるか、または▲２▼オブジェクト操作命令の対象オブジェクトが拘束条件を保持していなければ、該オブジェクト操作命令による対象オブジェクトの移動が拘束範囲（移動可能な範囲）内であるか判断する（ステップＳ６）。そして、拘束検出部１７は、前記オブジェクト操作命令が上記▲１▼または▲２▼の条件に反していれば、そのオブジェクト操作命令をエラーとする（ステップＳ７）。
【００４９】
ところで、本実施形態では拘束されていないオブジェクトは、他のオブジェクトに干渉しない限り、仮想空間内で自由に移動することができる。また、拘束されているオブジェクトも、拘束条件に反しない範囲で、かつ他のオブジェクトに干渉しなければ移動することができる。また、さらに、この干渉チェック機能は解除することも可能である。これは、例えば、木材に釘を打つようなシーンでは木材（第１のオブジェクト）と釘（第２のオブジェクト）が干渉することは現実に行なわれるので、このようなシーンを作成する場合には干渉チェック機能を解除する必要があるからである。
【００５０】
ステップＳ６でオブジェクト操作命令がエラーでないと判断されると、「仮想空間内でオブジェクト移動」処理（以後、簡略化して「オブジェクト移動処理」と表現する）を実行する（ステップＳ８）。このオブジェクト移動処理は、干渉検出部１８により干渉チェックを行ないながら、オブジェクト操作命令の対象オブジェクトが他のオブジェクトと干渉しないように、該対象オブジェクトを移動させる処理である。このオブジェクト移動処理の詳細は後述する。
【００５１】
ステップＳ５でオブジェクト操作命令でないと判断された場合（視点操作命令であると判断された場合）またはステップＳ８の処理に続いて、不連続検出部２６により、オブジェクト操作命令または視点操作命令の実行によって不連続なシーンが発生するか否か検出することにより、不連続なシーンの発生のため補完命令を生成することが必要であるか判断する（ステップＳ９）。そして、補完命令の作成が必要であると判断すると、補完命令生成部２０を起動し、補完命令生成部２０に上記不連続シーンを解消させるための補完命令生成処理を実行させる（ステップＳ１０）。
【００５２】
この補完命令生成処理によって生成された補完命令は当該操作命令系列に挿入され（ステップＳ１１）、ステップＳ３に戻る。一方、ステップＳ８で挿入された命令は、命令系列選択部１３を介して操作命令格納部１２内の当該命令系列に格納される（ステップＳ１２）。　また、ステップＳ９で補完命令の作成が必要ないと判断されたオブジェクト操作命令または視点操作命令も、命令系列選択部１３を介して操作命令格納部１２内の当該命令系列内に格納される（ステップＳ１２）。
【００５３】
ここで、ステップＳ１０〜Ｓ１２の処理について補足説明する。例えば、操作命令系列の命令Ａと命令Ｂとの間にユーザの入力した命令Ｘ０を挿入し、命令Ａと命令Ｘ０の実行の間、及び命令Ｘ０と命令Ｂの実行の間に不連続なシーンが発生したとする。この場合、前記補完命令生成処理において、補完命令生成部２０が命令Ａと命令Ｘ０の間に補完命令Ｘ１が、命令Ｘ０と命令Ｂの間に補完命令Ｘ２を生成する。このとき、ユーザが入力した命令Ｘ０は操作命令格納部１２に格納される（ステップＳ１２）が、補完命令生成部２０によって生成された補完命令Ｘ１，Ｘ２は当該操作命令系列に挿入され（ステップＳ１１）、ステップＳ３に戻って、挿入される命令の前後が“不連続でない（該命令の実行の前後で不連続なシーンが発生しない）”と判断されるまで再帰的に処理が繰り返される。
【００５４】
図５は、図４のフローチャートのステップＳ８の「オブジェクト移動処理」の詳細フローチャートである。
まず、オブジェクト操作命令にしたがって対象オブジェクトを仮想空間内で移動させる（ステップＳ２１）。干渉検出部１８は、三次元モデル格納部１１内の各オブジェクトの位置情報等を基に上記対象オブジェクトを移動させると他のオブジェクトとの間に干渉が発生するか判断する（ステップＳ２２）。
【００５５】
そして、干渉が発生すると判断すると、干渉回避部１９がその干渉を解消可能か判断し（ステップＳ２３）、干渉回避部１９は解消が可能であると判断すると、前記対象オブジェクトの移動方向を調整し（ステップＳ２４）、ステップＳ２１に戻る。ステップＳ２１では、オブジェクト操作部１５が、前記対象オブジェクトをステップＳ２４で調整された移動方向に移動させる。
【００５６】
一方、ステップＳ２３で干渉回避部１９は前記対象オブジェクトを他のオブジェクトと干渉させずに移動させることが不可能であると判断すると、前記ユーザ入力されたオブジェクト操作命令をエラーとする（ステップＳ２５）。
【００５７】
また、ステップＳ２２で干渉検出部１８が前記対象オブジェクトを移動させても他のオブジェクトとの間で干渉が発生しないと判断すると、オブジェクト操作部１５が前記対象オブジェクトの移動が完了したか判断し（ステップＳ２６）、まだ前記対象オブジェクトの移動が完了していないと判断すると（ステップＳ２６）、ステップＳ２１に戻る。一方、ステップＳ２６でオブジェクト操作部１５が前記対象オブジェクトの移動が完了したと判断すると処理を修了する。
【００５８】
このようにして、オブジェクト操作命令の実行により対象オブジェクトを移動させる場合、その移動により他のオブジェクトとの間で前記対象オブジェクトが干渉を起こさないように前記対象オブジェクトを移動させる。この場合、オブジェクト操作命令をそのまま実行しても前記干渉が発生しなければ、そのオブジェクト操作命令は操作命令格納部１２内の当該命令系列に格納させる。しかし、オブジェクト操作命令を実行すると前記干渉が発生する場合には、前記干渉が回避されるように前記対象オブジェクトの移動方向を調整する。そして、その移動方向の調整により前記干渉が解消されれば、ユーザ入力されたオブジェクト操作命令の移動方向を前記調整により得られた移動方向に変え、その移動方向が変更させられたオブジェクト操作命令を操作命令格納部１２内の当該命令系列に格納する。
【００５９】
図６は、図４のフローチャートのステップＳ１０の「補完命令生成処理」の詳細フローチャートである。
補完命令生成部２０は、まず、移動対象（オブジェクトまたは視点）の移動直前の位置を取得し（ステップＳ３１）、続いて、前記移動対象の移動直後の位置を取得する（ステップＳ３２）。
【００６０】
そして、補完命令生成部２０は、前記移動対象の移動直前と移動直後の位置の差を求め、その差が規定値より大であるか判断し（ステップＳ３４）、規定値より大であれば、前記移動の直前と直後の中間位置へ前記移動対象を移動させる命令を挿入し（ステップＳ３５）、ステップＳ３１に戻る。
【００６１】
一方、ステップＳ３４で前記位置の差が規定値以下であれば、補完を修了する。
このようにして、シーンが不連続となるオブジェクト操作命令または視点操作命令の実行に際しては、その不連続を解消する移動命令（オブジェクト移動命令または視点移動命令）をシーンが不連続とならない数だけ、当該命令系列に自動的に生成・挿入する。
【００６２】
図７は、本実施形態のアニメーション編集システム１０によるアニメーション再生（表示）処理を説明するフローチャートである。
このフローチャートの処理は、ユーザが、操作入力部２２を介して、あるアニメーションの再生命令を入力することにより実行される。
【００６３】
命令系列選択部１３は、ユーザにより指定されたアニメーションに対応する命令系列を操作命令格納部１２から選択する（ステップＳ４１）。画像作成部２３は、命令系列選択部１３により選択された命令系列を取得し（ステップＳ４２）、三次元モデル格納部１１から前記命令系列の各操作命令の操作対象となっているオブジェクトの三次元モデル情報を取得する（ステップＳ４３）。そして、画像作成部２３は、前記命令系列の一連の操作命令を順に実行しながらアニメーション画像を生成する（ステップＳ４４）。画像作成部２３は、操作命令を実行する際に、操作対象となっているオブジェクトの三次元モデル情報を利用する。
【００６４】
画像作成部２３は、生成したアニメーション画像をアニメーション表示部２５を介して表示させる（ステップＳ４５）。
次に、アニメーション編集システム１０により実行可能な各種オブジェクト操作を説明する　以下の説明では、図８に示す、仮想空間内にノートＰＣ３００がオブジェクトとして配置された画像２００をオリジナル画像として、このオリジナル画像２００に対して各種操作を施す例を説明する。
｛視点移動｝
図８に示すオリジナル画像２００に対し、ノートＰＣ３００に対する視点移動操作を施すことにより図９に示すようにノートＰＣ３００を背面から見た画像２１０を作成できる。
｛表示属性変更｝
図８に示すオリジナル画像２００に対し、ノートＰＣ３００の筐体のアッパーカバー３１０を非表示にする表示属性変更操作を施すことにより、図１０に示すようにアッパーカバー３１０が表示されず、そのカバー３１０に覆われていた内部が表示される画像２２０を作成できる。
｛オブジェクト回転｝
図８に示すオリジナル画像２００に対し、オブジェクト回転操作を施すことにより、図１１に示すようにノートＰＣ３００のＬＣＤ（Ｌｉｑｕｉｄ　Ｃｒｉｓｔａｌ　Ｄｉｓｐｌａｙ）部３２０を閉じる方向に回転させた画像２３０を作成できる。
｛拘束解除｝
図８に示すオリジナル画像２００に対し、キーボード３３０をノートＰＣ３００の拘束から解除する操作を施すことにより、図１２に示すように、キーボード３３０がノートＰＣ３００から分解された画像２４０を作成することができる（三次元モデル格納部１１に格納されているノートＰＣ３００のオブジェクトのツリーからキーボード３００のオブジェクトを外すことができる）。
｛オブジェクト移動｝
図１２に示す画像２４０に対し、オブジェクト移動操作を施すことにより、図１３に示すように図１２において分解されたキーボード３３０を上に移動したが像２５０を作成することができる。
【００６５】
次に、図４のフローチャートに示す処理によってアニメーションを作成する具体例を、図１４〜図３５を参照しながら説明する。
この具体例では、ノートＰＣを分解するアニメーションを取り上げる。
【００６６】
操作入力部２２からのユーザ入力によって、画像作成部２３は三次元モデル格納部１１からノートＰＣのオブジェクトに関する三次元モデル情報を読み出し、図１４に示すノートＰＣ５００が表示された画像４００をアニメーション表示部２５に表示させる。以下に述べる図１５〜図３６に示す画像はいずれも画像作成部２３によってアニメーション表示部２５に表示される画像である。また、それぞれの画像におけるノートＰＣの画像（オブジェクト）に対する操作命令は、操作入力部２２を介してユーザから入力されるものである。
【００６７】
図１４に示す画像４００に対し、ノートＰＣ５００の視点を下側移動させる視点移動命令が入力されると、図１７に示す画像４０３が表示される前に、図１５と図１６に示す２枚の画像４０１，４０２が表示される。画像４０１と画像４０２を表示させるための視点移動命令は補完命令生成部２０によって補完される。これは、図４のフローチャートのステップＳ８からステップＳ１１の処理によって実施される。
【００６８】
図１７に示す画像４０３に対し、ノートＰＣ５００のバッテリー５１０のオブジェクトを、ノートＰＣ５００のオブジェクトから拘束削除（拘束解除）する命令が入力されると、バッテリー５１０のオブジェクトがノートＰＣ５００のオブジェクトのツリーから外される。図１８に示す画像４０４は、バッテリー５１０のオブジェクトがノートＰＣ５００のオブジェクトから分解された状態にある画像である。
【００６９】
このバッテリー５１０の拘束削除の可否は、図４のフローチャートのステップＳ６で判断される。
図１８に示す画像４０４に対し、バッテリー５１０を左下方に移動するオブジェクト移動命令が入力されると、図１９に示すように、ノートＰＣ５００の本体からバッテリー５１０が外され、その位置が左下方に移動した画像４０５が表示される。　このバッテリー５１０の移動は、図４のフローチャートのステップＳ８で実施される。
【００７０】
図１９に示す画像４０５に対し、バッテリー５１０のオブジェクトの表示属性を非表示にする操作命令が入力されると、図２０に示すように、画像４０５からバッテリー５１０の表示が消えた画像４０６が表示される。
【００７１】
図２０に示す画像４０６に対し、ノートＰＣ５００のオブジェクトからＣＤ（コンパクトディスク）５２０のオブジェクトの拘束を削除する命令が入力されると、ＣＤ５２０のオブジェクトがノートＰＣ５００のオブジェクトのツリーから外される。
【００７２】
図２１に示す画像４０７に対し、ＣＤ５２０を左下方に移動させるオブジェクト移動命令が入力されると、図２２に示すように、ＣＤ５２０がノートＰＣ５００の本体から外され左下方に移動した画像４０８が表示される。
【００７３】
図２２に示す画像４０８に対し、ＣＤ５２０のオブジェクトを非表示にする表示属性変更命令を入力すると、図２３に示すように、画像４０８からＣＤ５２０が消去された画像４０９が表示される。
【００７４】
図２３に示す画像４０９に対し、視点ズームアップ命令を入力すると、図２４に示すように、画像４０９に表示されているノートＰＣ５００の画像サイズが上記視点ズームアップ命令で指定されたズーム倍率で拡大された図２５に示す画像４１１が表示される。
【００７５】
図２４に示す画像４１０に対し、ＨＤＤ（ハードディスクドライブ）のカバー５３２を固定している４本のネジ５３１のオブジェクトをノートＰＣ５００のオブジェクトの拘束から削除する拘束削除命令が入力されると、ノートＰＣ５００のオブジェクトから上記４本のネジ５３１のオブジェクトが外される。そして、図２５に示す画像４１１が表示される。
【００７６】
図２５に示す画像４１１に対し、４本のネジ５３１を鉛直方向に移動するオブジェクト移動命令が入力されると、図２６に示すように、ノートＰＣ５００のＨＤＤのカバー５３２を固定してた４本のネジ５３１が外され、それらが鉛直方向に前記オブジェクト移動命令によって指定された距離だけ移動した画像４１２が表示される。
【００７７】
図２６に示す画像４１２に対し、４本のネジ５３１のオブジェクトの表示属性を非表示にする属性変更命令が入力されると、図２７に示すように、画像４１２から４本のネジ５３１を消去した画像４１３が表示される。
【００７８】
図２７に示す画像４１３に対し、ＨＤＤカバー５３２のオブジェクトをノートＰＣ５００のオブジェクトの拘束から削除する拘束削除命令が入力されると、図２８に示すＨＤＤカバー５３２のオブジェクトがノートＰＣ５００のオブジェクトの拘束から削除された画像４１４が表示される。このとき、ＨＤＤカバー５３２のオブジェクトは、ノートＰＣ５００のオブジェクトのツリーから削除されている。
【００７９】
図２８に示す画像４１４に対し、ＨＤＤカバー５３２を上方に移動させるオブジェクト移動命令を入力すると、図２９に示すように、ＨＤＤカバー５３２がノートＰＣ５００の本体の上方に移動した画像４１５が表示される。
【００８０】
図２９に示す画像４１５に対し、ＨＤＤカバー５３２のオブジェクトの表示属性を非表示にする表示属性変更命令を入力すると、図３０に示すように、画像４１５からＨＤＤカバー５３２の画像が消去された画像４１６が表示される。
【００８１】
図３０に示す画像４１６に対し、ノートＰＣ５００に対する視点をその右側面方向に変化させるような視点移動命令を入力すると、図３１に示すように、ノートＰＣ５００に対する注視点が、その右側面の中心にある画像４１７が表示される。
【００８２】
図３１に示す画像４１７に対し、ノートＰＣ５００のオブジェクトからＨＤＤユニット５３４のオブジェクトの拘束を削除する拘束削除命令を入力すると、図３２に示すように、ＨＤＤユニット５３４のオブジェクトがノートＰＣ５００のオブジェクトからの拘束が削除された画像４１８が表示される。
【００８３】
図３２に示す画像４１８に対し、ユーザがＨＤＤユニット５３４を真横に移動させるオブジェクト移動命令を入力すると、干渉検出部１８によってＨＤＤユニット５３４を真横に移動すると、ノートＰＣ５００のＨＤＤユニット５３４の収容部の右側面部５３５と干渉してしまうことが検出される。このため、干渉回避部１９により、ＨＤＤユニット５３４を上方に移動させるオブジェクト移動命令が作成・実行される（図４のフローチャートのステップＳ８の処理）。このことにより、図３３に示すように、ＨＤＤユニット５３４がノートＰＣ５００の上方に移動した画像４１９が表示される。
【００８４】
図３３に示す画像４１９に対し、前述した画像４１８においてＨＤＤユニット５３４を真横に移動させるユーザ入力のオブジェクト移動命令が実行され、図３４に示すように、ＨＤＤユニット５３４がノートＰＣ５００の上方を真横に移動した画像４２０が表示される。
【００８５】
画像４２０におけるＨＤＤユニット５３４の移動は、前記ユーザ入力のオブジェクト移動命令の指示ではないため、図３５に示すように、ノートＰＣ５００に装着されていたＨＤＤユニット５３４が、その装着位置の真横に移動した画像４２２が表示される。この画像４２２は、ユーザの指示に従がった画像であり、システムによって自動的に生成される。
【００８６】
このように、本実施形態では、ユーザの指示したオブジェクト移動命令に従がって対象オブジェクトを移動した場合、その対象オブジェクトが他のオブジェクトと干渉する場合には、その干渉を回避するように前記対象オブジェクトを移動方向を変えて移動させ、その後、ユーザの指示に沿った方向に前記対象オブジェクトを移動させるようにしている。
【００８７】
図３６は、図１５〜図３５に示された画像４０１〜４２２をシーンとして含むアニメーションを作成する過程において作成される操作命令系列を示す図である。図３６に示す操作命令命令列６００は、命令系列選択部１３を介して操作命令格納部１２に格納される。同図において、破線で囲まれた命令がシステムによって補完または挿入された命令である。
【００８８】
図１４に示す画像４００に対し視点移動命令６０３が入力されると、図１５、１６の画像４０１，４０２を補完するために、視点移動命令６０３（図１７の画像４０３を表示させる命令）の前に視点移動命令６０１，６０２がシステムによって自動作成される。このため、操作命令系列６００の最初の部分は視点移動命令６０１〜６０３となる。
【００８９】
続いて、図１８乃至図２０の画像４０４〜４０６を表示させるために入力されたバッテリー拘束削除命令６０４、バッテリー移動命令６０５及び表示属性変更命令（バッテリー非表示命令）６０６が、視点移動命令６０３の後に加わる。
【００９０】
次に、図２１乃至図２３に示す画像４０７〜４０９を表示させるために入力されたＣＤ拘束解除命令６０７、ＣＤ移動命令６０８及び表示属性変更命令（　ＣＤ非表示命令）６０９がバッテリー非表示命令６０６の後に追加される。
【００９１】
さらに続いて、図２４〜図３２に示す画像４１０〜４１７を表示させる入力された視点ズーム命令６１０、ネジ拘束削除命令６１１、ネジ移動命令６１２、表示属性変更命令（ネジ非表示命令）６１３、ＨＤＤカバー拘束削除命令６１４、ＨＤＤカバー移動命令６１５、表示属性変更命令（ＨＤＤカバー非表示命令）６１６、視点移動命令６１７及びＨＤＤユニット拘束削除命令６１８がＣＤ非表示命令６０９の後に追加される。
【００９２】
次に、画像４１７が表示されているとき、ＨＤＤユニット５３４を、図３５に示す画像４２２のように真横に移動させるＨＤＤユニット移動命令６２０が入力されるが、この場合、上述したようにＨＤＤユニット５３４をそのまま真横に移動させるとノートＰＣ５００の一部と干渉を起こすので、この干渉を回避するために、図３３に示すようにＨＤＤユニット５３４を真上に移動させる画像４１９を生成させるＨＤＤユニット移動命令６１９が干渉回避部１９によって作成され、この命令６１９がＨＤＤユニット拘束削除命令６１８の後に追加される。この後、ＨＤＤユニット移動命令６１９の後に前記入力されたＨＤＤユニット移動命令６２０が実行され、図３４に示す画像４２０が表示されることになる。
【００９３】
このため、操作命令系列６００において、ＨＤＤユニット移動命令６１９の後にＨＤＤユニット移動命令６２０が追加される。そして、図３５に示すように、ユーザが当初望んだようにＨＤＤユニット５３４を真横に移動させた画像４２２を生成するために、干渉回避部１９がＨＤＤユニット移動命令６２０の後にＨＤＤユニット移動命令６２１を追加する。
【００９４】
以上のようにして、図１５〜図３５に示す一連の画像４０１〜４２２から成るアニメーションを表示するための操作命令系列６００が、ユーザ入力及びアニメーション編集システム１０によって作成され、操作命令格納部１２に格納される。
【００９５】
次に、オブジェクト操作命令の入力によりエラーが生じる例を説明する。
まず、オブジェクト移動命令の入力でエラーが生じる例を、図３７及び図３８を参照しながら説明する。
【００９６】
図３７に示す画像４３１は、図２４の画像４１０に示されたノートＰＣ５００を少しズームアップした画像である。この画像４３１に示すノートＰＣ５００は、ＨＤＤカバー５３２が４本のネジ５３１（１本のネジ５３１は不図示）で止められている。
【００９７】
画像４３１に対し、ノートＰＣ５００のオブジェクトからＨＤＤユニット５３４（不図示）のオブジェクトの拘束を削除する命令を入力する。この入力後の画像が、図３８に示す画像４３２である。この画像４３２が表示されている状態で、ユニット５３４を移動するオブジェクト移動命令を入力すると、この時点ではＨＤＤカバー５３２が、まだ外れていないため、干渉検出部１８による干渉チェックでエラーと判断され、ＨＤＤユニット５３４は移動できない。
【００９８】
次に、可動範囲の属性変更命令の入力によりエラーが生じる例を説明する。
図３９に示す画像４３５は、ＬＣＤ部５３６（不図示）を有する蓋５３７が閉じたノートＰＣ５００の状態を示す画像である。このとき、ＬＣＤ部５３６の可動範囲は０〜１２０度までと設定（制限）されているとする。画像４３５が表示されている状態で、ＬＣＤ部５３６を１２０度まで回転させる（開く）オブジェクト回転命令を入力する。このことにより、図４０に示すように、ＬＣＤ部５３６が１２０度開いた状態のノートＰＣ５００の画像４３６が表示される。
【００９９】
画像４３６が表示されている状態で、ＬＣＤ部５３６の可動範囲を０〜９０度に変更する属性変更命令を入力すると、拘束検出部１７がＬＣＤ部５３６が既に１２０度まで開いていることを検出し、該属性変更命令をエラーとする。したがって、この場合にはＬＣＤ部５３６の可動範囲は変更できない。
【０１００】
また、本実施形態では、補完命令生成部２０が生成した補完命令がエラーとなる場合もある。例えば、補完命令として生成したオブジェクト操作命令の実行で干渉が生じ、オブジェクトを移動できないような場合には、そのオブジェクト操作命令はエラーとなる（図５のフローチャート参照）。
【０１０１】
次に、ユーザ入力のオブジェクト操作命令を実行すると干渉エラーとなるが、補完命令生成部２０が補完命令を作成することにより、干渉を回避可能な例を説明する。
【０１０２】
図４１は、蓋５３７が少し開いた状態にあるノートＰＣ５００を示す画像４４１が表示された画面を示している。この画像４４１に対し、キーボード５３８を上に移動するオブジェクト操作命令が入力されたとする。
【０１０３】
このオブジェクト操作命令を実行すると、画像４４１が図４２に示す画像４４２に変化する。画像４４２では、キーボード５３８を上に移動することによってキーボード５３８が蓋５３７と干渉している。この干渉は干渉検出部１８によって検出され、干渉回避部１９によって、この干渉を回避する操作命令が自動的に作成される。
【０１０４】
まず、干渉回避部１９は、キーボード５３８を移動可能な方向（手前方向）に、蓋５３７との干渉が避けられる距離（蓋５３７の奥行き）だけ移動させるオブジェクト操作命令を作成・実行する。これにより、図４３に示すように、キーボード５３が、その後端が蓋５３７の前端に等しい位置まで手前方向に移動した画像４４３が表示される。
【０１０５】
次に、干渉回避部１９は、画像４４３に対し、キーボード５３８を上に移動させるオブジェクト操作命令を作成・実行する。これにより、図４４の画像４４４に示すように、キーボード５３８が蓋５３７のフック５３７ａに干渉する。
【０１０６】
干渉回避部１９は、画像４４４に対し、キーボード５３８をそれが移動可能な方向（手前方向）に、前記干渉を避ける距離（フック５３７ａのサイズ）だけ移動させるオブジェクト操作命令を作成・実行する。これにより、図４５に示すように、キーボード５３８が手前方向にフック５３７ａのサイズだけ移動した画像４５５が表示される。
【０１０７】
続いて、干渉回避部１９は、キーボード５３８をユーザが指定した高さまで移動させるオブジェクト操作命令を作成・実行する。これにより、図４６に示すように、キーボード５３８が蓋５３７のフック５３７ａに干渉することなく、ユーザの指定した高さまで移動した画像４５６が表示される。
【０１０８】
さらに、続いて、干渉回避部１９は、キーボード５３８を、画像４３３及び画像４５５で移動した距離だけ逆方向（後方）に移動させるオブジェクト操作命令を作成・実行する。これにより、図４７に示すように、キーボード５３８が画像４４１での位置からユーザの指定した位置まで上方に移動した画像４５７が表示される。
【０１０９】
このように、ユーザ入力のオブジェクト操作命令を実行した場合、操作対象のオブジェクトを命令の通りに実行すると干渉が発生する場合には、その干渉を回避させるように前記対象オブジェクトを操作した後、前記対象オブジェクトをユーザが指定した位置まで移動させる。
【０１１０】
上述した干渉回避の例では、干渉回避を２回まで試みている。この干渉回避処理は、干渉を回避する迂回経路を試行錯誤的に探索する処理なので、その処理時間はシステムのＣＰＵの計算能力等に依存することになる。したがって、干渉回避の試行錯誤を何回をまで実施するかは実装依存となる。このため、試行錯誤を１回までしか行わないような干渉回避処理を実装したシステムにおいては、上述した例の場合、キーボード５３８がフック５３７ａに干渉した時点で、回避不可と判定され、キーボード５３８の移動命令はエラーとなる。この場合、例えば、ユーザに上記移動命令の入力エラーを報知するダイアログ・ボックスが表示される。干渉回避の迂回路が見つかるまで何回も繰り返すのは、処理時間と計算コストを考慮した場合、現実的ではないので、干渉回避処理をシステムに実装する場合には、干渉回避の試行錯誤回数を適当な回数に制限することになす。
【０１１１】
本実施形態のアニメーション編集システム１０では、上述のようにして作成したアニメーション表示用の操作命令系列６００を編集することが可能である。この編集は、図４８に示す編集画面を介して行うことができる。
【０１１２】
同図に示すように、編集画面７００は二次元状にセル７１１が配列されたシート７１０を有している。１つのセル７１１が１つの操作命令に対応しており、シート７１０の各列のセル７１１には同時に実行される操作命令のアイコンが表示される。また、アニメーション再生時には、左の列のセル７１１に表示された操作命令から順に実行される（左列から右列へと順次実行される）。編集図面７００は、図３６に示す操作命令系列６００の編集画面であり、左端の列の上端のセル７１１には「再生開始指示命令」のアイコンが表示されている。また、２列目以降の列に付記された６０１〜６２１の符号は、それらの各列が図３６に示す操作命令６０１〜６２１に対応することを示すものである。尚、実際に、アニメーションとして再生する場合には、操作命令の間（シート７１０の列と列の間に相当）に何枚もの画像が入るようになっている。
【０１１３】
次に、図４９を参照しながら図３６に示す操作命令系列６００の編集の一例を説明する。同図は、編集ルール格納部１４に格納された編集ルールの適用例を説明する図である。
【０１１４】
同図は、ＣＤ移動命令６０８をバッテリー拘束削除命令６０４の前に移動する編集操作を示している。ユーザが、ＣＤ移動命令６０８を単独でバッテリー拘束削除命令６０４の前に移動しようとすると、この命令６０４がＣＤ拘束削除命令６０７の前に実行されるため前述した編集ルールに矛盾することになる。このため、操作命令編集部２１が編集ルールを適用して、ＣＤ拘束削除命令６０７とＣＤ移動命令６０８を、バッテリー拘束削除命令６０４の前に移動させる。
【０１１５】
ところで、ＣＤ移動命令６０８をバッテリー拘束削除命令６０４の前に移動する操作は、操作入力部２２を介して「操作命令の移動」を選択し、次に操作入力部２２のマウスを操作して、ＣＤ移動命令６０８のアイコンが表示されたセル７１１（第９列目の上端のセル７１１）をバッテリー拘束削除命令６０４のアイコンが表示されたセル７１１（第５列目の上端のセル７１１）上までドラッグすることにより行う。
【０１１６】
次に、本実施形態のアニメーション編集システム１０によるアニメーション編集の具体例を説明する。この具体例は、ノートＰＣを分解する（ノートＰＣからＨＤＤユニットを取り出す）アニメーションの編集例である。
【０１１７】
まず、ノートＰＣ５００のオブジェクトを三次元モデル格納部１１から読み込み、図５０に示すように、右側面方向から見たノートＰＣ５００全体が仮想空間上に配置された画像８０１を表示させる。
【０１１８】
次に、画像８０１に対し、視点をノートＰＣ５００の裏側に移動させる命令を入力し、図５１に示すようにノートＰＣ５００の裏側が表示された画像８０１を表示させる。
【０１１９】
ところで、上記のようにノートＰＣ５００を反転させる画像をアニメーションとして表示させる場合、回転距離が大きいため、画像８０１と画像８０２との間に、いくつかの視点移動命令がアニメーション編集システム１０によって補完される。この結果、操作命令編集部２１により、図６３に示すように３個の視点移動命令の操作命令系列９０１が生成される。
【０１２０】
次に、ＨＤＤユニット５３４の拘束を削除する構成変更命令（拘束削除命令）を入力し、ＨＤＤユニット５３４のオブジェクトをノートＰＣ５００のオブジェクトのツリーから外す。図５２に示す画像８０３は、ＨＤＤユニット５３４がノートＰＣ５００の拘束から解放された状態にあるノートＰＣ５００を示す。
【０１２１】
この結果、操作命令編集部２１により、図６４に示すように、前記操作命令系列９０１に拘束削除命令（ＨＤＤユニット５３４の拘束削除命令）が追加された操作命令系列９０２が作成される。
【０１２２】
続いて、画像８０３に対し、ＨＤＤユニット５３４を移動するオブジェクト移動命令を入力すると、この場合、ＨＤＤユニット５３４のカバー（ＨＤＤカバー）５３２が閉まっているため、干渉検出部１８による干渉チェックに引っかかる。このため、干渉回避部１９が干渉回避を試みるが、回避経路が見つからないため前記オブジェクト移動命令はエラーとなる。
【０１２３】
このため、ネジ５３１（不図示）とＨＤＤカバー５３２について拘束削除、移動及び非表示の命令を入力する。これにより、図５３、図５４及び図５５に示す画像８０４，８０５及び８０６が順次表示される。画像８０５はＨＤＤカバー５３２が移動した状態を示しており、画像８０６はその移動したＨＤＤカバー５３２が非表示となった状態を示している。
【０１２４】
この結果、操作命令編集部２１は、図６５に示すように、前記操作命令系列９０２に（ネジ５３１とＨＤＤカバー５３２の）拘束削除命令、（ネジ５３１とＨＤＤカバー５３２の）移動命令、（ネジ５３１とＨＤＤカバー５３２の）非表示命令が追加された操作命令系列９０３を生成する。
【０１２５】
次に、画像８０６に対し、ＨＤＤユニット５３４を左方向に移動する命令を入力すると、干渉検出部１８によりＨＤＤユニット５３４を左方向に移動すると、ＨＤＤユニット５３４がノートＰＣ５００のＨＤＤユニット５３４収容部と干渉を起こすことが検出される。この場合、ＨＤＤユニット５３４は上方向に移動可能であるため、干渉回避部１９はＨＤＤユニット５３４を上方向に移動させる移動命令を生成する。そして、この移動命令の実行により、図５６に示すように、ＨＤＤユニット５３４が上方向に移動した画像８０７が表示される。
【０１２６】
次に、干渉回避部１９は、ＨＤＤユニット５３４をユーザの指定した距離だけ左方向に移動させる移動命令を生成する。この移動命令の実行により、図５７に示すように、ＨＤＤユニット５３４が左方向に移動した画像８０８が表示される。
【０１２７】
干渉回避部１９は、続いて、上記干渉回避のため上方向に移動した距離だけ、ＨＤＤユニット５３４を下方に移動させる移動命令を生成する。この移動命令の実行により、図５８に示すように、ＨＤＤユニット５３４がユーザが指定した位置まで移動したままで移動した画像８０９が表示される。
【０１２８】
以上の結果、仮想空間内で、ＨＤＤユニット５３４をユーザ入力の移動命令で指定された位置まで移動させることに成功したので、操作命令編集部２１は、図６５の操作命令系列９０３に、干渉回避部１９が生成した（ＨＤＤユニット５３４の上方向への）移動命令、（ＨＤＤユニット５３４の左方向への）移動命令及び（ＨＤＤユニット５３４の下方向への）移動命令が追加された操作命令系列９０４を作成する。
【０１２９】
ここで、図５９に示すように、ＨＤＤユニット５３４を移動する前のシーンの画像８０６（図５５参照）に戻る。この画像８０６の表示は、図５８に示す画像８０９が表示されている状態で、その表示画面上方に配置された巻き戻しボタン１００１と停止ボタン１００２を操作入力部２２のマウスでクリックすることにより可能である。すなわち、まず、巻き戻しボタン１００１をクリックし、画像８０６が表示されたら停止ボタン１００２をクリックすればよい。
【０１３０】
画像８０６を再表示させた状態で、視点移動命令を入力し、図６０に示すように、ノートＰＣ５００全体が仮想空間の左上方に移動した画像８１０を表示させる。
【０１３１】
この結果、操作命令編集部２１は、図６７に示すように、図６６に示す操作令系列９０４の非表示命令と移動命令（上）の間に上記視点移動命令が挿入された操作命令系列９０５を作成する。
【０１３２】
図６０に示す画像８１０に対しズームアップ命令を入力し、図６１に示すようにノートＰＣ５００の右側面が拡大表示された画像８１１を表示させる。
この結果、操作命令編集部２１は、図６８に示すように、図６７に示す操作命令系列９０５の視点移動命令と移動命令（上）の間にズーム（ズームアップ）命令が挿入された操作命令系列９０６を作成する。
【０１３３】
続いて、ユーザは、図６２に示す画像８１３を表示させ、ＨＤＤユニット５３４が所望する位置に移動したことを最終確認する。
ここで、画像８１１から画像８１２を表示させる操作方法を、図６９を参照しながら説明する。
【０１３４】
図６９は、画像８１１が表示された画面を示している。
同図に示す画面１０００において、画像８１１の左上方には、アニメーション再生制御用のボタン１００１〜１００７が配置されている。各ボタンの機能は、以下のとおりである。
【０１３５】
１００１・・・操作命令系列の先頭の命令までまき戻す
１００２・・・操作命令系列の操作命令を逆順に再生する
１００３・・・操作命令系列の操作命令を順に再生する
１００４・・・再生を停止する
１００５・・・操作命令系列の最終命令の後ろまで早送りする
１００６・・・操作命令系列の操作命令を１命令分、逆方向に巻き戻す
１００７・・・操作命令系列の操作命令を１命令分、順方向に早送りする
画像８１１が表示されている状態から画像８１２を表示させるには、例えば、ボタン１００３をマウスでクリックする。このことにより、操作命令系列９０６の移動命令（上）、移動命令（左）、移動命令（下）と順次実行され、最終的に画像８１２が表示される。
【０１３６】
ところで、本実施形態のアニメーション編集システム１０では、例えば、図６９に示すように画面の左側にノートＰＣ５００の階層オブジェクト構成を示すツリー１１００が表示される。同図に示すツリー１１００において、Ｓｐａｃｅは仮想空間を示し、この下にノートＰＣ５００のオブジェクト（ｎｏｔｅＰＣ）やＨＤＤに関するオブジェクトの集合のオブジェクト（ｈｄｄ＿ａｓｍ）が連結され、それらのオブジェクトの下に、さらに、下位階層階のオブジェクト（ｌｏｗｅｒ＿ｃｏｎｅｒ＿ａｓｍ，ｐｔ−ｍａｉｎ−ｘ＿ａｓｍなど）が連結される。
【０１３７】
操作対象のオブジェクトは、上記ツリー１１００からでも、その左側に表示される画像（画像８１１等）からでも選択できる。画像で操作する場合は、操作入力部２２のマウスのクリックやドラッグなどの操作でオブジェクトを直接操作できる。一方、ツリー１１００で操作する場合には、図７０に示すダイアログ・ボックス１２００を開き、このダイアログ・ボックス１２００を介して間接的に操作する。
【０１３８】
同図に示すダイアログ・ボックス１２００のタイトルバーには“部品操作”が表示され、その下に、「移動」、「回転」、「回転調節」、「スライド関節」のボタンが配置されている。また、Ｘ，Ｙ，Ｚの各方向を指定するためのボタンや、オブジェクト移動や視点移動の移動速度を設定するためのボックスなども設けられている。
【０１３９】
以上述べたように、本実施形態のアニメーション１０は、以下のような機能を備えている。
（１）　アニメーションを構成するオブジェクト（アニメーションに登場する人物や物体）を画像としてではなく三次元モデルとして保持し、仮想空間中のい視点の移動、または仮想空間中のオブジェクトの移動、またはそれら両方からなる一連の操作命令によってアニメーションを作成できる。
（２）　視点やオブジェクトに対する操作命令を編集することによって、アニメーションを編集できる。
（３）　編集ルールを保持し、その編集ルールを厳守することにより、現実世界と矛盾するアニメーションを生成する編集操作を防止／回避できる。
（４）　アニメーションを構成するオブジェクトの拘束条件を保持し、オブジェクトを移動する際に、その拘束条件を満たすかチェックすることにより、現実世界に不適当なアニメーションが作成／編集されるのを防止できる。
（５）　仮想空間中でのオブジェクト移動時に、オブジェクト間の干渉をチェックする機能を備える。また、該干渉が生じた場合には、該干が回避されるようにオブジェクトを移動させる機能を備える。
（６）　アニメーションの編集時に、挿入／削除／移動されたシーンとその前後のシーンの間に不連続が生じる場合、不連続となる直前のシーンの位置から直後のシーンの位置まで視点またはオブジェクトを移動する命令を補完することにより、上記不連続を解消させる。
（７）　複数の操作命令系列を操作命令格納部１２に格納しておき、編集／再生時に、それらの中から一つの操作命令系列を選択することができる。
【０１４０】
（付記１）　アニメーションの画像を構成するオブジェクトを三次元モデル情報として格納する三次元モデル格納手段と、
前記オブジェクトに対する操作命令であるオブジェクト操作命令と視点操作命令から構成される操作命令系列を作成／編集することにより、アニメーションを作成／編集する操作命令編集手段と、
を備えたことを特徴とするアニメーション作成／編集装置。
【０１４１】
（付記２）　前記オブジェクト操作命令の実行によるオブジェクト同士間の干渉の発生を検出する干渉検出手段と、
該干渉検出手段により前記干渉の発生が検出された場合、前記干渉を回避するオブジェクト操作命令を生成する干渉回避手段を、
さらに備えたことを特徴とする付記１記載のアニメーション作成／編集装置。
【０１４２】
（付記３）　前記視点操作命令または前記オブジェクト操作命令の実行による不連続なシーンの発生を検出する不連続検出手段と、
該不連続検出手段により不連続なシーンが発生することが検出された場合、その不連続なシーン間を補完するシーンを生成するためのオブジェクト操作命令または視点操作命令を生成する補完命令生成手段を、
さらに備えることを特徴とする付記１記載のアニメーション作成／編集装置。
【０１４３】
（付記４）　前記三次元モデル情報は、オブジェクト間の拘束条件を保持しており、
前記拘束条件に違反するオブジェクト操作命令をエラーとして検出する拘束検出手段を、さらに備えることを特徴とする付記１記載のアニメーション作成／編集装置。
【０１４４】
（付記５）　アニメーション編集時において、前記操作命令系列に対しオブジェクト操作命令の挿入／削除／移動を行なう際に守るべき編集ルールを格納している編集ルール格納手段と、
前記編集ルールを参照して、前記操作命令系列に対し、前記編集ルールに違反するオブジェクト操作命令の挿入／削除／移動の操作が行なわれた場合、その操作を防止／回避する操作命令編集手段を、
さらに備えることを特徴とする付記１記載のアニメーション作成／編集装置。
【０１４５】
（付記６）　アニメーションの画像を構成するオブジェクトを三次元モデル情報として第１の格納手段に格納する機能と、
前記オブジェクトに対する操作命令であるオブジェクト操作命令と視点操作命令から構成される操作命令系列を作成／編集することにより、アニメーションを作成／編集する機能と、
をコンピュータに実行させるプログラム。
【０１４６】
（付記７）　前記オブジェクト操作命令の実行によるオブジェクト同士間の干渉の発生を検出する機能と、
前記干渉の発生が検出された場合、前記干渉を回避するオブジェクト操作命令を生成する機能を、
さらにコンピュータに実行ｍさせる付記６記載のプログラム。
【０１４７】
（付記８）　前記視点操作命令または前記オブジェクト操作命令の実行による不連続なシーンの発生を検出する機能と、
該不連続なシーンが発生することが検出された場合、その不連続なシーン間を補完するシーンを生成するためのオブジェクト操作命令または視点操作命令を生成する機能を、
さらにコンピュータに実行させる付記６記載のプログラム。
【０１４８】
（付記９）　前記三次元モデル情報に、オブジェクト間の拘束条件を保持させる機能と、
前記拘束条件に違反するオブジェクト操作命令をエラーとして検出する機能をさらにコンピュータに実行させる付記６記載のプログラム。
【０１４９】
（付記１０）　アニメーション編集時において、前記操作命令系列に対しオブジェクト操作命令の挿入／削除／移動を行なう際に守るべき編集ルールを第２の格納手段に格納する機能と、
前記編集ルールを参照して、前記操作命令系列に対し、前記編集ルールに違反するオブジェクト操作命令の挿入／削除／移動の操作が行なわれた場合、その操作を防止／回避する機能を、
さらにコンピュータに実行させる付記６記載のプログラム。
【０１５０】
【発明の効果】
以上、説明したように、本発明によれば、以下のような効果が得られる。
（１）　アニメーションの作成／編集時に、操作対象のオブジェクトの拘束チェックや干渉チェックを行うので、現実世界において妥当なアニメーションを効率的に作成できる。
（２）　ユーザがアニメーションを編集する際に、予め作成しておいた編集ルールを適用することによって、現実世界を正しく反映しているアニメーションを、その妥当性を維持したまま編集できる。
（３）　不連続なシーンを自動的に補完するので、シーンの飛躍がない分かりやすいアニメーションを効率的に作成できる。
【０１５１】
上記（１）〜（３）の効果は、製品の組み立て／分解などの各種作業を指示するアニメーションを作成する場合に、特に、有益である。
（４）　アニメーションを、オブジェクトの操作命令や視点操作命令の命令系列として作成するため、複数のアニメーションを作成する場合でも、複数の操作命令系列を作成・保持するだけでよいので、アニメーション保持用のデータ量を従来手法よりも大幅に削減できる。
（５）　アニメーションを再生する際、三次元モデルで表現されたオブジェクトを、オブジェクト操作命令と視点操作命令によって仮想空間中で動かしながらアニメーションを生成していくため、スロー再生／高速再生も滑らかに再生できる。
【図面の簡単な説明】
【図１】本発明の実施形態のアニメーション編集システムのシステム構成を示すブロック図である。
【図２】三次元モデル格納部に格納される三次元モデル情報のデータ構造を示す図である。
【図３】三次元モデル情報によって表現されるオブジェクトの具体例を示す図である。
【図４】本実施形態のアニメーション編集システムの全体動作を説明するフローチャートである。
【図５】図４の「仮想空間でオブジェクト移動処理」の詳細フローチャートである。
【図６】図４の「補完命令生成処理」の詳細フローチャートである。
【図７】本実施形態のアニメーション再生（表示）処理を説明するフローチャートである。
【図８】本実施形態により表示されるオリジナル画像を示す図である。
【図９】図８のオリジナル画像２００に対して視点移動操作を施すことによって得られる画像を示す図である。
【図１０】図８のオリジナル画像に対して表示属性変更操作を施すことによって得られる画像を示す図である。
【図１１】図８のオリジナル画像に対してオブジェクト回転を施すことによって得られる画像を示す図である。
【図１２】図８のオリジナル画像に対して表示属性変更操作を施すことによって得られる画像を示す図である。
【図１３】図１２の画像に対して、オブジェクト回転操作を施すことによって得られる画像を示す図である。
【図１４】アニメーション作成の具体例を説明する図（その１）である。
【図１５】アニメーション作成の具体例を説明する図（その２）である。
【図１６】アニメーション作成の具体例を説明する図（その３）である。
【図１７】アニメーション作成の具体例を説明する図（その４）である。
【図１８】アニメーション作成の具体例を説明する図（その５）である。
【図１９】アニメーション作成の具体例を説明する図（その６）である。
【図２０】アニメーション作成の具体例を説明する図（その７）である。
【図２１】アニメーション作成の具体例を説明する図（その８）である。
【図２２】アニメーション作成の具体例を説明する図（その９）である。
【図２３】アニメーション作成の具体例を説明する図（その１０）である。
【図２４】アニメーション作成の具体例を説明する図（その１１）である。
【図２５】アニメーション作成の具体例を説明する図（その１２）である。
【図２６】アニメーション作成の具体例を説明する図（その１３）である。
【図２７】アニメーション作成の具体例を説明する図（その１４）である。
【図２８】アニメーション作成の具体例を説明する図（その１５）である。
【図２９】アニメーション作成の具体例を説明する図（その１６）である。
【図３０】アニメーション作成の具体例を説明する図（その１７）である。
【図３１】アニメーション作成の具体例を説明する図（その１８）である。
【図３２】アニメーション作成の具体例を説明する図（その１９）である。
【図３３】アニメーション作成の具体例を説明する図（その２０）である。
【図３４】アニメーション作成の具体例を説明する図（その２１）である。
【図３５】アニメーション作成の具体例を説明する図（その２２）である。
【図３６】図１５〜図３５のアニメーション作成操作によって生成された操作命令系列の内容を示す図である。
【図３７】オブジェクト移動命令でエラーが生じる例を説明する図（その１）である。
【図３８】オブジェクト移動命令でエラーが生じる例を説明する図（その２）である。
【図３９】可動範囲の属性変更命令でエラーが生じる例を説明する図（その１）である。
【図４０】可動範囲の属性変更命令でエラーが生じる例を説明する図（その２）である。
【図４１】干渉回避可能な例を説明する図（その１）である。
【図４２】干渉回避可能な例を説明する図（その２）である。
【図４３】干渉回避可能な例を説明する図（その３）である。
【図４４】干渉回避可能な例を説明する図（その４）である。
【図４５】干渉回避可能な例を説明する図（その５）である。
【図４６】干渉回避可能な例を説明する図（その６）である。
【図４７】干渉回避可能な例を説明する図（その７）である。
【図４８】図３６の操作命令系列の編集画面の例を示す図である。
【図４９】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その１）である。
【図５０】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その２）である。
【図５１】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その３）である。
【図５２】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その４）である。
【図５３】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その５）である。
【図５４】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その６）である。
【図５５】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その７）である。
【図５６】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その８）である。
【図５７】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その９）である。
【図５８】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その１０）である。
【図５９】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その１１）である。
【図６０】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その１２）である。
【図６１】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その１３）である。
【図６２】本実施形態のアニメーション編集システムによるアニメーションの編集操作を説明する図（その１４）である。
【図６３】図５１に示す画像を編集した時点で生成された操作命令系列を示す図である。
【図６４】図５２に示す画像を編集した時点で生成された操作命令系列を示す図である。
【図６５】図５５に示す画像を編集した時点で生成された操作命令系列を示す図である。
【図６６】図５８に示す画像を編集した時点で生成された操作命令系列を示す図である。
【図６７】図６０に示す画像を編集した時点で生成された操作命令系列を示す図である。
【図６８】図６１に示す画像を編集した時点で生成された操作命令系列を示す図である。
【図６９】図６１に示す画像から図６２に示す画像を表示させるための操作を説明する図である。
【図７０】操作対象のオブジェクトを操作するためのダイアログ・ボックスを示す図である。
【符号の説明】
１０　　　アニメーション作成／編集システム（アニメーション作成／編集装置）
１１　　　三次元モデル格納部
１２　　　操作命令格納部
１３　　　命令系列選択部
１４　　　編集ルール格納部
１５　　　オブジェクト操作部
１６　　　視点操作部
１７　　　拘束検出部
１８　　　　干渉検出部
１９　　　干渉回避部
２０　　　操作命令編集部
２２　　　　操作入力部
２３　　　画像作成部
２４　　　アニメーション格納部
２５　　　アニメーション表示部
４０　　　三次元モデル情報
５０　　　三次元構成情報（上位）
６０　　　三次元構成情報（下位）
７１，７２　　　三次元形状情報
６００　　　操作命令系列
７００　　　操作命令系列の編集画面
１２００　　　ダイアログ・ボックス
【図１】
2004062434.tif 000003
【図２】
2004062434.tif 000004
【図３】
2004062434.tif 000005
【図４】
2004062434.tif 000006
【図５】
2004062434.tif 000007
【図６】
2004062434.tif 000008
【図７】
2004062434.tif 000009
【図８】
2004062434.tif 000010
【図９】
2004062434.tif 000011
【図１０】
2004062434.tif 000012
【図１１】
2004062434.tif 000013
【図１２】
2004062434.tif 000014
【図１３】
2004062434.tif 000015
【図１４】
2004062434.tif 000016
【図１５】
2004062434.tif 000017
【図１６】
2004062434.tif 000018
【図１７】
2004062434.tif 000019
【図１８】
2004062434.tif 000020
【図１９】
2004062434.tif 000021
【図２０】
2004062434.tif 000022
【図２１】
2004062434.tif 000023
【図２２】
2004062434.tif 000024
【図２３】
2004062434.tif 000025
【図２４】
2004062434.tif 000026
【図２５】
2004062434.tif 000027
【図２６】
2004062434.tif 000028
【図２７】
2004062434.tif 000029
【図２８】
2004062434.tif 000030
【図２９】
2004062434.tif 000031
【図３０】
2004062434.tif 000032
【図３１】
2004062434.tif 000033
【図３２】
2004062434.tif 000034
【図３３】
2004062434.tif 000035
【図３４】
2004062434.tif 000036
【図３５】
2004062434.tif 000037
【図３６】
2004062434.tif 000038
【図３７】
2004062434.tif 000039
【図３８】
2004062434.tif 000040
【図３９】
2004062434.tif 000041
【図４０】
2004062434.tif 000042
【図４１】
2004062434.tif 000043
【図４２】
2004062434.tif 000044
【図４３】
2004062434.tif 000045
【図４４】
2004062434.tif 000046
【図４５】
2004062434.tif 000047
【図４６】
2004062434.tif 000048
【図４７】
2004062434.tif 000049
【図４８】
2004062434.tif 000050
【図４９】
2004062434.tif 000051
【図５０】
2004062434.tif 000052
【図５１】
2004062434.tif 000053
【図５２】
2004062434.tif 000054
【図５３】
2004062434.tif 000055
【図５４】
2004062434.tif 000056
【図５５】
2004062434.tif 000057
【図５６】
2004062434.tif 000058
【図５７】
2004062434.tif 000059
【図５８】
2004062434.tif 000060
【図５９】
2004062434.tif 000061
【図６０】
2004062434.tif 000062
【図６１】
2004062434.tif 000063
【図６２】
2004062434.tif 000064
【図６３】
2004062434.tif 000065
【図６４】
2004062434.tif 000066
【図６５】
2004062434.tif 000067
【図６６】
2004062434.tif 000068
【図６７】
2004062434.tif 000069
【図６８】
2004062434.tif 000070
【図６９】
2004062434.tif 000071
【図７０】
2004062434.tif 000072