(57)【要約】複数の部品からなる工業製品の３次元ＣＡＤデータやＸＶＬデータに基づいて、前記製品の分解アニメーションを自動生成し、アニメーションを高速でかつ安価に用意できるシステム及びそのシステムを提供することを目的とする。  この目的を達成するため、この発明の主要な観点によれば、（ａ）複数の部品からなる製品の３次元データを取得する工程と、（ｂ）ユーザからの入力にしたがって、前記製品を部品に分解するための分解定義情報を生成する工程と、（ｃ）この分解定義情報に従って前記製品の部品への分解アルゴリズムを生成しメモリに格納する工程と、（ｄ）前記分解アルゴリズムに従って前記製品の部品の分解アニメーションを生成する工程とを有することを特徴とする工程アニメーションの自動生成方法が提供される。
2004109602.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）複数の部品からなる製品の３次元データを取得する工程と、
（ｂ）ユーザからの入力にしたがって、前記製品を部品に分解するための分解定義情報を生成する工程と、
（ｃ）この分解定義情報に従って前記製品の部品への分解アルゴリズムを生成しメモリに格納する工程と、
（ｄ）前記分解アルゴリズムに従って前記製品の部品の分解アニメーションを生成する工程と
を有することを特徴とする工程アニメーションの自動生成方法。
【請求項２】
請求項１記載の工程アニメーション自動生成方法において、
前記分解定義情報は、部品間の従属関係、部品同士のグループ関係の定義情報であり、工程であるノードと、部品であるリーフからなる木構造を有し、
前記ノードは基本工程と、この基本工程内で実行される中間工程とを有し、
前記リーフは、複数の部品若しくは部品群を纏めるための工程用部品グループと、前記各部品若しくは部品群とからなる
ものである
ことを特徴とする方法。
【請求項３】
請求項２記載の工程アニメーション自動作成方法において、
前記（ｃ）工程は、
前記分解定義情報に、この分解定義情報に基いて決定された前記基本工程及び中間工程の移動座標系、その座標系に沿った前記部品若しくは部品群及び工程用部品グループの移動位置を付加することで、前記分解アルゴリズムを生成するものである
ことを特徴とする方法。
【請求項４】
請求項３記載の工程アニメーションの自動生成方法において、
前記（ｃ）工程は、
前記移動座標系は、前記基本工程中のベースとなる部品若しくは部品群の座標系を前記基本工程若しくは中間工程の座標系として選択する
ことを特徴とする方法。
【請求項５】
請求項３記載の工程アニメーションの自動生成方法において、
前記（ｃ）工程は、
前記移動位置は、各部品若しくは部品群の形状を、それらの部品若しくは部品群が内接する多角形で近似し、各多角形が所定の割合以上離れるような最小距離に設定するものである
ことを特徴とする方法。
【請求項６】
請求項２記載のアニメーションの自動生成方法において、
前記（ｄ）工程は、
前記各基本工程、中間工程毎に、以下のパラメータ：
アニメーションの長さ、
始点と終点間の補間方法、及び
分解の移動距離を決定するための分解係数
に基づいて各工程における部品グループ若しくは部品の移動アニメーションを生成し、
それらを前記分解アルゴリズムに従って順に繋げることで、全体のアニメーションを生成するものであることを特徴とする方法。
【請求項７】
請求項６記載の方法において、
前記（ｄ）工程は、さらに前記基本工程若しくは中間工程毎に、カメラ視点の情報を付加してアニメーションを生成するものであることを特徴とする方法。
【請求項８】
請求項６記載の方法において、
前記（ｄ）工程は、前記移動アニメーション間若しくは工程間の待ち時間アニメーションを作成し、前記移動アニメーションのうち所定の移動アニメーション間に挿入する工程をさらに有するものであることを特徴とする方法。
【請求項９】
請求項６記載の方法において、
前記（ｄ）工程は、前記移動アニメーションの開始時及び終了時のスナップショットを採って初期化アニメーションを生成し、それらを前記各移動アニメーションの始点及び終点に挿入する工程をさらに有するものであることを特徴とする方法。
【請求項１０】
請求項１記載の方法において、
（ｅ）前記各アニメーションの生成後若しくは全体アニメーションの生成後、分解アルゴリズム及びアニメーションを修正する工程
をさらに含むことを特徴とする方法。
【請求項１１】
請求項１０記載の方法において、
前記（ｅ）工程は、前記分解定義情報を構成する基本工程、中間工程、及びそれらの工程間をつなぐ工程毎に作成されたアニメーション毎に、
部品若しくは部品群の位置、姿勢、若しくはスケール
を修正することで、各工程における移動アニメーションを修正するものであることを特徴とする方法。
【請求項１２】
請求項１１記載の方法において、
前記（ｅ）工程は、前記部品若しく部品群の位置、姿勢若しくはスケールを修正させるためのユーザインタフェースを生成して提示するものであることを特徴とする方法。
【請求項１３】
請求項１１記載の方法において、
前記（ｅ）工程は、１のアニメーションを修正した場合、前記分解アルゴリズムに基き、そのアニメーションに係る工程内で実行される他の工程のアニメーションにおける部品若しくは部品群の位置、姿勢、若しくはスケールを修正することで、当該他の工程のアニメーションについても修正するものであることを特徴とする方法。
【請求項１４】
請求項１１記載の方法において、
前記（ｅ）工程は、さらに前記アニメーション毎に、カメラ視点の情報を修正してアニメーションを修正することを許容するものであることを特徴とする方法。
【請求項１５】
請求項１１記載の方法において、
前記（ｅ）工程は、
前記分解定義情報を構成する基本工程、中間工程、及びそれらの工程間をつなぐ工程毎に作成されたアニメーション毎に、部品若しくは部品群同士が移動時に干渉するかを判別し、前記アニメーションにおける部品若しくは部品群の位置、姿勢、若しくはスケールを修正することで、各工程における移動アニメーションを修正するものであることを特徴とする方法。
【請求項１６】
請求項１５記載の方法において、
前記部品若しくは部品群同士が移動時に干渉するかの判別は、前記部品若しくは部品群と外接する立方体を想定し、それらが干渉するかによって判別するものであることを特徴とする方法。
【請求項１７】
（ａ）複数の部品からなる製品の３次元グラフィックスデータを取得する３次元グラフィックスデータ取得部と、
（ｂ）ユーザからの入力にしたがって、前記製品を部品に分解するための分解定義情報を生成する分解定義情報生成部と、
（ｅ）この分解定義情報に従って前記製品の部品への分解アルゴリズムを生成する分解アルゴリズム生成部と、
（ｄ）前記分解アルゴリズムに従って前記製品の部品の分解アニメーションを生成する分解アニメーション生成部と
を有することを特徴とする工程アニメーションの自動生成システム。
【請求項１８】
請求項１７記載の工程アニメーション自動生成システムにおいて、
前記分解定義情報は、部品間の従属関係、部品同士のグループ関係の定義情報であり、工程であるノードと、部品であるリーフからなる木構造を有し、
前記ノードは基本工程と、この基本工程内で実行される中間工程とを有し、
前記リーフは、複数の部品若しくは部品群を纏めるための工程用部品グループと、前記各部品若しくは部品群とからなる
ものである
ことを特徴とするシステム。
【請求項１９】
請求項１８記載の工程アニメーション自動作成システムにおいて、
前記分解アルゴリズム生成部は、
前記分解定義情報に、この分解定義情報に基いて決定された前記基本工程及び中間工程の移動座標系、その座標系に沿った前記部品若しくは部品群及び工程用部品グループの移動位置を付加することで、前記分解アルゴリズムを生成するものである
ことを特徴とするシステム。
【請求項２０】
請求項１９記載の工程アニメーションの自動生成システムにおいて、
前記分解アルゴリズム生成部は、
前記移動座標系は、前記基本工程中のベースとなる部品若しくは部品群の座標系を前記基本工程若しくは中間工程の座標系として選択する
ことを特徴とするシステム。
【請求項２１】
請求項１９記載の工程アニメーションの自動生成システムにおいて、
前記分解アルゴリズム生成部は、
前記移動位置は、各部品若しくは部品群の形状を、それらの部品若しくは部品群が内接する多角形で近似し、各多角形が所定の割合以上離れるような最小距離に設定するものである
ことを特徴とするシステム。
【請求項２２】
請求項１８記載のアニメーションの自動生成システムにおいて、
前記分解アニメーション生成部は、
前記各基本工程、中間工程毎に、以下のパラメータ：
アニメーションの長さ、
始点と終点間の補間システム、及び
分解の移動距離を決定するための分解係数
に基づいて各工程における部品グループ若しくは部品の移動アニメーションを生成し、
それらを前記分解アルゴリズムに従って順に繋げることで、全体のアニメーションを生成するものであることを特徴とするシステム。
【請求項２３】
請求項２２記載のシステムにおいて、
前記分解アニメーション生成部は、さらに前記基本工程若しくは中間工程毎に、カメラ視点の情報を付加してアニメーションを生成するものであることを特徴とするシステム。
【請求項２４】
請求項２２記載のシステムにおいて、
前記分解アニメーション生成部は、前記移動アニメーション間若しくは工程間の待ち時間アニメーションを作成し、前記移動アニメーションのうち所定の移動アニメーション間に挿入する手段をさらに有するものであることを特徴とするシステム。
【請求項２５】
請求項２２記載のシステムにおいて、
前記分解アニメーション生成部は、前記移動アニメーションの開始時及び終了時のスナップショットを採って初期化アニメーションを生成し、それらを前記各移動アニメーションの始点及び終点に挿入する手段をさらに有するものであることを特徴とするシステム。
【請求項２６】
請求項１７記載のシステムにおいて、
（ｅ）前記各アニメーションの生成後若しくは全体アニメーションの生成後、分解アルゴリズム及びアニメーションを修正するアニメーション修正部
をさらに含むことを特徴とするシステム。
【請求項２７】
請求項２６記載のシステムにおいて、
前記アニメーション修正部は、前記分解定義情報を構成する基本工程、中間工程、及びそれらの工程間をつなぐ工程毎に作成されたアニメーション毎に、
部品若しくは部品群の位置、姿勢、若しくはスケール
を修正することで、各工程における移動アニメーションを修正するものであることを特徴とするシステム。
【請求項２８】
請求項２７記載のシステムにおいて、
前記アニメーション修正部は、前記部品若しく部品群の位置、姿勢若しくはスケールを修正させるためのユーザインタフェースを生成して提示するものであることを特徴とするシステム。
【請求項２９】
請求項２７記載のシステムにおいて、
前記アニメーション修正部は、１のアニメーションを修正した場合、前記分解アルゴリズムに基き、そのアニメーションに係る工程内で実行される他の工程のアニメーションにおける部品若しくは部品群の位置、姿勢、若しくはスケールを修正することで、当該他の工程のアニメーションについても修正するものであることを特徴とするシステム。
【請求項３０】
請求項２７記載のシステムにおいて、
前記アニメーション修正部は、さらに前記アニメーション毎に、カメラ視点の情報を修正してアニメーションを修正することを許容するものであることを特徴とするシステム。
【請求項３１】
請求項２７記載のシステムにおいて、
前記アニメーション修正部は、
前記分解定義情報を構成する基本工程、中間工程、及びそれらの工程間をつなぐ工程毎に作成されたアニメーション毎に、部品若しくは部品群同士が移動時に干渉するかを判別し、前記アニメーションにおける部品若しくは部品群の位置、姿勢、若しくはスケールを修正することで、各工程における移動アニメーションを修正するものであることを特徴とするシステム。
【請求項３２】
請求項３１記載のシステムにおいて、
前記部品若しくは部品群同士が移動時に干渉するかの判別は、前記部品若しくは部品群と外接する立方体を想定し、それらが干渉するかによって判別するものであることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】  この発明は、例えば複数の部品からなる工業製品の３次元ＣＡＤデータやＸＶＬデータに基づいて、前記製品の分解アニメーションを自動生成する方法及びシステムに関する。
【背景技術】  製造業では製品の組み立て手順や修理のための分解／組立手順を作業者に分かり易く示す必要がある。従来、このような分解組立手順の表示は、部品の位置関係や組み付け方向を３次元的に表示したイラストを用いるのが一般的である。
ところで、このような作業手順の表示には、３次元アニメーションを用いるのがビジュアル的に最も好ましいということがある。しかし、アニメーションの作成は一般的に膨大な時間とコストがかかる。
本発明は、このような事情に鑑みて成されたもので、例えば複数の部品からなる工業製品の３次元ＣＡＤデータやＸＶＬデータに基づいて、前記製品の分解アニメーションを自動生成し、アニメーションを高速でかつ安価に用意できるシステム及びそのシステムを提供することを目的とする。
【発明の開示】
上記目的を達成するため、この発明の主要な観点によれば、（ａ）複数の部品からなる製品の３次元データを取得する工程と、（ｂ）ユーザからの入力にしたがって、前記製品を部品に分解するための分解定義情報を生成する工程と、（ｃ）この分解定義情報に従って前記製品の部品への分解アルゴリズムを生成しメモリに格納する工程と、（ｄ）前記分解アルゴリズムに従って前記製品の部品の分解アニメーションを生成する工程とを有することを特徴とする工程アニメーションの自動生成方法が提供される。
ここで、１の実施形態によれば、前記分解定義情報は、部品間の従属関係、部品同士のグループ関係の定義情報であり、工程であるノードと、部品であるリーフからなる木構造を有し、前記ノードは基本工程と、この基本工程内で実行される中間工程とを有し、前記リーフは、複数の部品若しくは部品群を纏めるための工程用部品グループと、前記各部品若しくは部品群とからなるものである。
また、前記（ｃ）工程は、前記分解定義情報に、この分解定義情報に基いて決定された前記基本工程及び中間工程の移動座標系、その座標系に沿った前記部品若しくは部品群及び工程用部品グループの移動位置を付加することで、前記分解アルゴリズムを生成するものである。この場合、前記（ｃ）工程は、前記移動座標系は、前記基本工程中のベースとなる部品若しくは部品群の座標系を前記基本工程若しくは中間工程の座標系として選択する。また、前記（ｃ）工程は、前記移動位置は、各部品若しくは部品群の形状を、それらの部品若しくは部品群が内接する多角形で近似し、各多角形が所定の割合以上離れるような最小距離に設定するものである。
また、別の１の実施形態によれば、前記（ｃ）工程は、前記基本工程、中間工程毎に、以下のパラメータ：アニメーションの長さ、始点と終点間の補間システム、及び分解の移動距離を決定するための分解係数に基づいて各工程における部品グループ若しくは部品の移動アニメーションを生成するものである。この場合、前記（ｃ）工程は、さらに前記基本工程若しくは中間工程毎に、カメラ視点の情報を付加してアニメーションを生成するものであることが好ましい。
また、更なる別の１の実施形態によれば、（ｅ）前記アニメーションの生成後、分解アルゴリズム及びアニメーションを修正する工程をさらに含む。この場合、前記（ｅ）工程は、前記分解定義情報を構成する基本工程、中間工程、及びそれらの工程間をつなぐ工程毎に作成されたアニメーション毎に、部品若しくは部品群の位置、姿勢、若しくはスケールを修正することで、各工程における移動アニメーションを修正するものである。また、前記（ｅ）工程は、前記部品若しくは部品群の位置、姿勢若しくはスケールを修正させるためのユーザインタフェースを生成して提示するものである。
さらに別の１の実施形態によれば、前記（ｅ）工程は、１のアニメーションを修正した場合、前記分解アルゴリズムに基き、そのアニメーションに係る工程内で実行される他の工程のアニメーションにおける部品若しくは部品群の位置、姿勢、若しくはスケールを修正することで、当該他の工程のアニメーションについても修正するものである。また、前記（ｅ）工程は、さらに前記アニメーション毎に、カメラ視点の情報を修正してアニメーションを修正することを許容するものである。
さらに別の１の実施形態によれば、前記（ｅ）工程は、前記分解定義情報を構成する基本工程、中間工程、及びそれらの工程間をつなぐ工程毎に作成されたアニメーション毎に、部品若しくは部品群同士が移動時に干渉するかを判別し、前記アニメーションにおける部品若しくは部品群の位置、姿勢、若しくはスケールを修正することで、各工程における移動アニメーションを修正するものであることを特徴とするシステム。この場合、前記部品若しくは部品群同士が移動時に干渉するかの判別は、前記部品若しくは部品群と外接する多角形を想定し、それらが干渉するかによって判別するものである。
なお、この発明の他の特徴と顕著な効果は、以下の発明の実施形態の項および図面を参照することで当業者にとって明らかになる。
【図面の簡単な説明】  図１は、本発明の実施形態にシステムの概略構成図である。
図２Ａ及び図２Ｂは、分解定義情報生成の概念を示す図である。
図３Ａ〜図３Ｃは、分解定義情報生成の一例を示す図である。
図４Ａ〜図４Ｄは、分解定義情報生成の一例を示す図である。
図５Ａ〜図５Ｅは、分解定義情報生成の一例を示す図である。
図６Ａ〜図６Ｃは、分解定義情報生成の一例を示す図である。
図７Ａ及び図７Ｂは、分解定義情報生成の一例を示す図である。
図８は、分解アルゴリズム及びアニメーション生成を示す工程図である。
図９は分解アルゴリズムを説明するための模式図である。
図１０は、一例としての電動ノコギリの３次元グラフィックスデータを示す図である。
図１１は、部品の組み立て構成を示すパネルである。
図１２は、部品の組立順序の概念を説明するための図である。
図１３は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
図１４は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
図１５は、工程のプロパティを利用した工程構造（分解定義情報）の作成を示す図である。
図１６は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
図１７は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
図１８は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
図１９は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
図２０は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
図２１は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
図２２は、可動部品の分解工程設計の概念を示す図である。
図２３は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
図２４は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
図２５は、工程アニメーション作成のためのパラメータの入力システムを示す図である。
図２６は、視点を設定するためのシステムを示す図である。
図２７は、工程の修正工程を説明するための画面表示例である。
図２８Ａ及び２８Ｂは、部品の干渉状態を示すための図である。
図２９は、アニメーションの編集システムの一例を示す図である。
図３０は、アニメーションパネルを利用したアニメーション編集システムの一例を示す図である。
図３１は、キーフレームプロパティパネルを利用したアニメーション編集システムの一例を示す図である。
図３２は、アニメーションの編集システムの一例を示す図である。
図３３は、視点の編集システムの一例を示す図である。
図３４は、視点の編集システムの一例を示す図である。
図３５は、視点の編集システムの一例を示す図である。
【発明を実施するための最良の形態】  以下、この発明の一実施形態を図面を参照して説明する。
図１は、この一実施形態に係るシステムを示す概略構成図である。ＣＰＵ１、ＲＡＭ（メモリ）２、入出力インタフェース３等が接続されているバス４に、プログラム格納部５とデータ格納部６とが接続されている。
データ格納部６には、分解／組立アニメーションを作成する素材としての３次元データとして、ＸＶＬ形式の３次元グラフィックスデータファイル８が格納されている。また、このデータ格納部６には、出力された分解定義情報１１（工程定義情報）、分解アルゴリズム９及び分解アニメーション１０が格納されるようになっている。
一方、プログラム格納部５には、この発明に関係する構成のみ説明すると、前記データ格納部６から前記３次元グラフィックスデータファイル８を取得しメモリに格納する３次元データ呼出部１２と、ユーザからの入力に基いて前記製品を部品に分解するための分解定義情報１１を生成してメモリに格納する分解定義情報生成部１７と、この分解定義情報に従って前記製品の部品への分解アルゴリズム９を生成しメモリに格納する分解アルゴリズム生成部１３と、前記分解アルゴリズム９に従って前記製品の部品の分解アニメーション１０を生成し出力する分解アニメーション生成部１４と、前記アニメーションの生成後、分解アルゴリズム９を修正し前記分解アニメーション生成部１４に再度アニメーションの生成を行わせる分解アニメーション修正部１５と、分解アニメーションの再生を制御する分解アニメーション再生制御部１６が格納されている。
ここで、前記分解定義情報生成部１７でユーザから受け付ける情報は、部品間の従属関係、部品同士のグループ関係の定義である。そして、この分解定義情報生成部１７で生成する分解定義は、後で詳しく説明するように、工程である「ノード」と、部品である「リーフ」からなる木構造を有するものである。また、前記ノードは「基本工程」と、この基本工程内で実行される「中間工程」とを有し、前記リーフは、複数の部品若しくは部品群を纏めるための「工程用部品グループ」と、前記各部品若しくは部品群とからなるものである。
以下、この分解定義情報生成の概念を図２以下を参照して説明する。
説明を簡単にするため、図２Ａに示すような部品（この実施形態では「グループ」と称される）Ｇ１〜Ｇ４を組み立てて、図２Ｂに示す完成品１８を製造する場合を例にとって説明することとする。この部品Ｇ１〜Ｇ４の組立工程の設計は、後で説明するように、所定のインタフェース（図１２以下に示すような設計画面）を通して行う。
図３〜図７は、それぞれ異なる組立順序を示し、それぞれの場合にどのように組立工程を定義・設計すればよいかを示すものである。
図３は、部品Ｇ１に対して部品Ｇ２〜Ｇ４をその順序で順次組みつけていく場合の例である。この場合の組立工程は、図３Ａに示すように表される。この図において、アイコン「○」は基本工程を示すものである。そして、基本工程内の先頭に登録されたグループ（Ｇ１）はアイコン「▽＋下棒」で表され、他の構成要素を組立（分解）する基盤となるグループ（ベースグループ）を表す。このベースグループはアニメーションでは動作しない。
ベースグループ以外の組み付け／分解されるグループ（Ｇ２〜Ｇ４）はアイコン「横棒＋▽」で表される。この例では、分解工程は、基本工程（Ｐｒｏｃｅｓｓ−１）とグループのみからなり、前記中間工程はない。すなわち、Ｇ１がベースとなり、Ｇ２〜Ｇ４が組み付けるグループとなる。
この工程の構成から、後で説明する工程アニメーションの作成により工程アニメーションを作成すると図３Ｂのように動作するアニメーションが生成される。すなわち、全てのグループＧ１〜Ｇ４が最初から表示され、それが順に組み立てられていく。
この場合、各動作のステップと工程の関係は図３Ｃのようになる。
一方、図４の例は、基本工程だけでなく中間工程がある例を示すものである。中間工程は基本工程の組み付け、分解するグループなど、基本工程内でさらに工程を分けるために使用する。中間工程に属するグループは図４Ａに示すように「▼」で表される。また、図４Ｂに示すように、中間工程は、閉じているときは「▼＋上下の横棒」で表される。以下、中間工程を利用した場合と、上記基本工程のみの場合との相違を説明する。
すなわち、この中間工程を使用することで、複数の構成要素の組立や、分解をまとめてコメント、工数、カスタムプロパティなどの工程としての情報を設定することができる。また、工程アニメーションでの表示タイミングを異ならせることが可能になる。この組立工程のアニメーションを再生する場合、前記分解アニメーション再生制御部１６は、中間工程の要素を初期表示せず、中間工程が再生されて始めて表示させる。分解工程では逆に要素は初期状態から表示するが、中間工程の再生が終了すると非表示にするようになっている。
図４Ａ、Ｂは中間工程を使って、工程の構成を行った例である。左図の図４Ａでは工程の構成要素が閲覧できるように工程を開いている。この状態では中間工程の構成要素を示すために、上下方向の”＜”及び”＞”という囲み記号が表示される。右図の図４Ｂでは工程を閉じて、各中間工程は上述したように（▼＋上下横棒）で表されている。
この例では、前記基本工程Ｐｒｏｃｅｓｓ−１が３つの中間工程Ｐｒｏｃｅｓｓ−２、Ｐｒｏｃｅｓｓ−３及びＰｒｏｃｅｓｓ−４に分割されることになる。この例と、図３の例のアニメーションとの違いは、この例では、図４Ｃに示すように、各グループ（部品）Ｇ２〜Ｇ４が、そのグループを組み付ける段階になってから出現するところである。
この例の場合、工程と各動作ステップの関係は図４Ｄに示す表のようになる。
次に工程用グループの意義を図５を参照して説明する。
図５Ａ〜Ｃは工程用グループを利用して、Ｇ３とＧ４が同時に組み付けられるように工程を構成した例である。３つの工程図は、全て同じ工程を表しているが、図５Ｂでは工程用グループの構成要素が見えないように閉じており、図５Ｃでは各中間工程を閉じている。
工程用グループは複数のグループをまとめて１つの組立（分解）単位とするもので、グループの代替として図５Ｂに示すように、「▼」で表される。工程用グループに含まれるグループは図５Ａに示すように「□」で表される。工程用グループを使うことで後で説明する工程アニメーションの作成で複数のグループを同時に移動するというアニメーションを作成することが可能となる。
この場合は図５Ｄのようなアニメーションが工程アニメーションの作成で作成されることになる。また、工程と各動作ステップの関連は図５Ｅに示すようになる。
一方、図６、図７は、基本工程の構成要素として基本工程を持つ構成（基本工程のネスト）を作成することで、複数の部品から構成される組立（分解）アニメーションを部品ごとに組立（分解）することを可能とした例である。
小部品を組み立てた後に、組みあがったものを大部品に組み付けるといった組立（分解）の手順を表すのに利用する。また、小部品の組立アニメーションは大部品を表示しないといった設定を行うことも可能である。以下では大部品を表示する場合と表示しない場合について、図６及び図７を用いて、それぞれ説明する。
図６Ａはネストした基本工程を利用して、まずＧ２、Ｇ３、Ｇ４で中部品が組みあがった結果が大部品Ｇ１に組みつけられるように工程を構成した例である。アニメーションでは小部品（Ｇ２、Ｇ３、Ｇ４）の組み立て中にも大部品（Ｇ１）が表示される。
この場合は図６Ｂのようなアニメーションが工程アニメーションの作成で作成される。工程と各動作ステップの関係は図６Ｃのようになる。
図７ＡはＧ２、Ｇ３、Ｇ４の組立中にＧ１を表示しないように設定した例である。図６Ａの場合と比較すると、Ｇ２をベースとする工程「Ｐｒｏｃｅｓｓ−２」のアイコンが○と□を重ねたものになる。この場合、工程アニメーションでは小部品（Ｇ２、Ｇ３、Ｇ４）の組み立て中は大部品（Ｇ１）の表示がされない。工程と各動作の関連については前の場合（図６Ｃ）と同じになる。
以上のようにユーザが、用意されたインタフェースを通して部品（グループ）、基本工程、中間工程及び工程用グループを指定することで、前記分解定義情報生成部１７がそれに従った前記分解定義情報１１を生成し、データ格納部６に格納する。
次に、分解アルゴリズム生成部１３及び分解アニメーション生成部１４の機能及び動作について、図８のフローチャートに従って説明する。なお、文書中のステップＳ１〜Ｓ１４は、図中の符号Ｓ１〜Ｓ１４に対応する。
前記分解アルゴリズム生成部１３及び分解アニメーション生成部１４は、前記分解定義情報１１を取得する（ステップＳ１）と共に、この分解定義情報１１に基づき、前記基本工程、中間工程、及びそれらの工程間をつなぐ工程毎に、各種パラメータ：▲１▼アニメーションの長さ（移動時間、待ち時間）、▲２▼始点と終点間の補間システム、▲３▼分解の移動距離を決定するための分解係数、に基づいて各工程における部品グループ若しくは部品の移動アルゴリズムを生成し、この分解アルゴリズムに従った分解アニメーションを生成する（ステップＳ２〜Ｓ１２）ものである。
以下の説明及び図面においては、説明の便宜のため、以下の記号を使用する。
すなわち、前記入力データとして、
▲１▼３次元グラフィックスデータファイル（ＸＶＬファイル：図１に符号８で示す）
▲２▼分解定義情報（図１に符号１１で示す）
ＰＰ・・・上位工程
ＢＰ・・・基本工程
ＭＰ・・・中間工程
ＧＰ・・・工程用グループ
ＧＲ・・・部品（グループ）
▲３▼動画生成用パラメータ（前記分解定義情報１１中に格納される）
ｍｔ＿ｌｅｎｇｔｈ・・・移動アニメーションの時間
ｍｉ＿ｌｅｎｇｔｈ・・・移動アニメーション間の待ち時間
ｐｉ＿ｌｅｎｇｔｈ・・・工程間の待ち時間
ｉｎｔｐｌ（Ｎｏｎｅ、Ｘ、Ｙ、Ｚ）・・・アニメーション補間システム
ｄｅｃｏｍｐ・・・分解係数
ｒｅｕｓｅ・・・再利用
を使用する。
一方、出力されるデータとして、
▲１▼移動アニメーション（図１に符号１０で示す）
Ａ＿ＭＴ（Ｍｏｒｔｉｏｎ  Ａｎｉｍａｔｉｏｎ）・・・部品の移動アニメーション
▲２▼初期化アニメーション（図１に符号１０で示す）
Ａ＿ＪＴ（Ｊｕｍｐ  Ｔｏｐ  Ａｎｉｍａｔｉｏｎ）・・・順再生、工程の開始
Ａ＿ＥＲ（Ｅｎｄ  Ｒｅｔｕｒｎ  Ａｎｉｍａｔｉｏｎ）・・・順再生、工程の復帰
Ａ＿ＪＥ（Ｊｕｍｐ  Ｅｎｄ  Ａｎｉｍａｔｉｏｎ）・・・逆再生、工程の開始
Ａ＿ＴＲ（Ｔｏｐ  Ｒｅｔｕｒｎ  Ａｎｉｍａｔｉｏｎ）・・・逆再生、工程の復帰
▲３▼待ち時間アニメーション（図１に符号１０で示す）
Ａ＿ＧＩ（Ｇｒｏｕｐ  Ｉｎｔｅｒｖａｌ  Ａｎｉｍａｔｉｏｎ）・・・移動アニメーション間
Ａ＿ＰＩ（Ｐｒｏｃｅｓｓ  Ｉｎｔｅｒｖａｌ  Ａｎｉｍａｔｉｏｎ）・・・工程間
▲４▼イベント（アニメーション１０中に格納）
アニメーションの制御を行うためのもので、役割は２つある。１つは、アニメーション同士を連結させる。もう１つはユーザからの入力を受け付ける。
ＵＥ＿Ｐｌａｙ・・・順再生
ＵＥ＿Ｒｅｖｅｒｓｅ・・・逆再生
ＵＥ＿Ｐａｕｓｅ・・・一時停止
ＵＥ＿Ｎｅｘｔ・・・次の工程の先頭へ移動
ＵＥ＿Ｐｒｅｖ・・・前の工程の先頭へ移動
ＵＥ＿Ｆｉｒｓｔ・・・初期工程へ移動
ＵＥ＿Ｌａｓｔ・・・最終工程へ移動
ＵＥ＿Ｐｒｏｃｅｓｓ＿ｎｎｎ・・・工程ｎｎｎへ移動
ＵＥ＿Ｏｒｉｇｉｎａｌ・・・工程アニメーション開始前に移動
ＵＥ＿Ｆｉｎａｌ・・・工程アニメーション終了後に移動
を使用する。
まず、前記分解アルゴリズム生成部１３は、前記分解定義情報１１に基いてメモリに図９に示すような構造（アルゴリズム９）を作成する（ステップＳ３）。すなわち、前記分解アルゴリズム生成部１３は、前記分解定義情報１１中で定義した基本工程／中間工程の構造に基づいて、各部品および工程用グループの分解の基準となる座標系（ＣＲＤ）およびそれに沿った移動方向（ＤＩＲ）の情報を付加する。
ＣＲＤは、ＢＰ及びＭＰのみが保持する。ＣＲＤは、基本工程のベースグループの座標系とする。すなわち、この例では、
ＣＲＤ［０］は、ＧＲ［０］の座標系、
ＣＲＤ［１］は、ＧＲ［１］の座標系、
ＣＲＤ［２］は、ＣＲＤ［１］と同じ、
ＣＲＤ［３］は、ＣＲＤ［１］と同じ、
ＣＲＤ［４］は、ＣＲＤ［０］と同じ、
となる。
一方、ＤＩＲは、ＢＰ、ＧＰ、ＧＲが保持する。このＤＩＲは、工程以下の各形状をＢｏｕｎｄｉｎｇ  Ｂｏｘ（形状が内接する立方体：ＢＢ）で近似して、組み付け側と組み付け先の各ＢＢが、指定された割合（分解パラメータｉｎｔｐｌ）以上離れ、かつＢＢの中心同士が最小の距離になるような、分解方向と位置を決定する。
このことによって図９に示すような構造（分解アルゴリズム９）を生成する。
上の例で、作成された構造をＰＴ（Ｐｒｏｃｅｓｓ  Ｔｒｅｅ）と呼んで以下、分解アニメーション生成部１４による機能、動作を説明する。
まず、前記分解アニメーション生成部１４は、個々の部品の移動アニメーションＡ＿ＭＴを生成する。ＰＴを上からたどってＤＩＲを持つ要素についてＡ＿ＭＴを作成していく。
なお、パラメータｒｅｕｓｅがＯＮである場合は対応要素のアニメーションを入力より探して存在する場合はそれをＡ＿ＭＴとする。
存在しない場合はＣＲＤとＤＩＲからＰＯＳ［０］、ＰＯＳ［１］を生成する（ステップＳ４）。
ＰＯＳ［０］＝要素の現在位置
ＰＯＳ［１］＝ＰＯＳ［０］にＣＲＤ内でのＤＩＲを加えたもの
組立アニメーションの場合はＰＯＳ［１］からＰＯＳ［０］へ移動するアニメーションを作成してＡ＿ＭＴとする（ステップＳ５）。Ａ＿ＭＴのアニメーション時間の長さはパラメータｍｔ＿ｌｅｎｇｔｈとなる。
なお、前記ステップＳ４及びＳ５で、パラメータｉｎｔｐｌにＮＯＮＥ以外の軸が指定されていた場合はベクトルＶＥＣ＝ＰＯＳ［０］−ＰＯＳ［１］を軸に直交する平面に射影した位置を計算する。例えば、以下のようにＰＯＳ［２］を生成する。
ＰＯＳ［２］＝軸を法線と位置ＰＯＳ［１］を通る平面にＰＯＳ［０］を射影した点
この場合はＰＯＳ［１］→ＰＯＳ［２］→ＰＯＳ［０］と移動するアニメーションをＡ＿ＭＴとする。
次に、自動干渉検出がＯＮになっているかを判別し（ステップＳ６）、ＯＮになっている場合には、以下のシステムで前記分解アニメーション修正部１５がアニメーションの修正を行なう。すなわち、分解アニメーション修正部１５は、部品若しくは部品群同士が移動時に干渉するかを判断する機能を有する。この機能は、前記３次元グラフィックスデータに基き、移動させる部品若しくは部品群を囲む立方体に近似する形状を考え、その形状同士が干渉するかによって、部品同士が干渉するかを判断する（ステップＳ７）。そして、それらが干渉しないように、上記▲１▼〜▲３▼のパラメータを設定するものである（ステップＳ８）。具体的には、この実施形態では、干渉する幅を求め、その分、初期の部品の位置をずらし、また、ずらす位置に制限がある場合には、干渉幅に基いて部品を回転させるようにする。しかし、このシステムに限定されるものではない。前記パラメータを修正したならば前記ステップＳ４以下を繰り返し、修正後のＡ＿ＭＴを生成する。
そして、ＰＴ中の全てのＡ＿ＭＴを作成するまで上記工程を繰り返す（ステップＳ９）。例えば図９のＰＴからは、以下のＡ＿ＭＴが生成される。ＢＰ、ＧＰについてアニメーションを生成すると、移動要素は配下のＧＲ全てとなる。
2004109602.tif 000003
ついで、パラメータｍｉ＿ｌｅｎｇｔｈ、ｐｉ＿ｌｅｎｇｔｈから待ち時間アニメーションＡ＿ＰＩ、Ａ＿ＭＩを生成する（ステップＳ１０）。
また、初期化アニメーションをＡ＿ＭＴから生成する（ステップＳ１１）。そして、以下のように、Ａ＿ＭＴを実行される順に並べていく。
Ａ＿ＭＴ［０］→Ａ＿ＭＴ［２］→Ａ＿ＭＴ［３］→Ａ＿ＭＴ［４］→Ａ＿ＭＴ［５］→Ａ＿ＭＴ［１］→Ａ＿ＭＴ［６］→Ａ＿ＭＴ［７］
並べられたＡ＿ＭＴのアニメーション列をたどっていき、初期化アニメーションを生成・挿入していく。同時にＡ＿ＰＩ、Ａ＿ＭＩも挿入する。以下の規則でアニメーションを生成する（ステップＳ１２）。
・初期化アニメーション（Ａ＿ＪＴ、Ａ＿ＥＲ、Ａ＿ＴＲ、Ａ＿ＪＥ）はアニメーション列の個々の要素を順次適用しながら生成する。アニメーション列で工程の先頭、末尾に当たる適当な個所に到達したら、その時点での状態をスナップショットして初期化アニメーションを生成する。
・工程（ＢＰ［０］、ＢＰ［１］、ＭＰ［０］、ＭＰ［１］、ＭＰ［２］）について
−順方向の先頭にはＡ＿ＪＴを生成する。
−順方向の末尾にはＡ＿ＥＲを生成する。
−逆方向の先頭にはＡ＿ＴＲを生成する。
−逆方向の末尾にはＡ＿ＪＥを生成する。
・移動アニメーション間について
Ａ＿ＪＴ、Ａ＿ＥＲ、Ａ＿ＴＲ、Ａ＿ＪＥを挿入後にＡ＿ＭＴが隣り合う場合はＡ＿ＭＩを挿入する。
・Ａ＿ＪＴとＡ＿ＪＥの直後にＡ＿ＰＩを挿入する。Ａ＿ＴＲ、Ａ＿ＥＲの直前にＡ＿ＰＩを挿入する。
順方向アニメーション列と逆方向アニメーション列の２つを生成する。以下に順方向アニメーション列の例を挙げる。
Ａ＿ＪＴ［０］→Ａ＿ＰＩ→Ａ＿ＭＴ［０］→Ａ＿ＪＴ［１］→Ａ＿ＰＩ→Ａ＿ＭＴ［２］→Ａ＿ＪＴ［２］→Ａ＿ＰＩ→Ａ＿ＭＴ［３］→Ａ＿ＭＩ→Ａ＿ＭＴ［４］→Ａ＿ＰＩ→Ａ＿ＥＲ［０］→Ａ＿ＪＴ［３］→Ａ＿ＰＩ→Ａ＿ＭＴ［５］→Ａ＿ＰＩ→Ａ＿ＥＲ［１］→Ａ＿ＥＲ［２］→Ａ＿ＰＩ→Ａ＿ＭＴ［１］→Ａ＿ＪＴ［４］→Ａ＿ＰＩ→Ａ＿ＭＴ［６］→Ａ＿ＭＩ→Ａ＿ＭＴ［７］→Ａ＿ＰＩ
ここで、移動アニメーション及び初期化アニメーションの生成は、カメラ視点の情報を付加して生成するものである。このカメラ視点の設定は、この実施形態では、アニメーションの生成を実行した際の視点で行われるが、後で説明するように、工程のアニメーション、工程間を接続する工程のアニメーション毎に指定することができるようになっている。
次に、前記分解アニメーション生成部１４は、アニメーション間の連結を行うイベントを生成する（ステップＳ１３）。順方向アニメーション列、逆方向アニメーション列の各アニメーション毎にイベントを生成する。
アニメーション列のｉ番目の要素をＡＮ［ｉ］とした場合、イベントＥＶ［ｉ］はＡＮ［ｉ］が終了した時点で実行される。ＥＶ［ｉ］は以下の処理を行う。
2004109602.tif 000004
このようにして生成された分解アニメーションは、前記データ格納部６に出力され格納される（ステップＳ１４）。
このようにアニメーションを生成したならば、前記分解アニメーション再生制御部１６を起動してアニメーションを再生してアニメーションの確認を行うことができる。再生したアニメーションに不具合がある場合には、ユーザは、前記分解アニメーション修正部１５を起動して、アニメーションで不具合のある箇所を修正することができる。
具体的には、ユーザは、基本工程、中間工程、及びそれらの工程間をつなぐ工程を構成するアニメーション毎に、▲１▼部品若しくは部品群の位置、▲２▼姿勢、若しくは▲３▼スケールを修正することで、各工程における移動アニメーションを修正するものである。
また、ユーザは、この修正部１５を起動して、部品若しくは部品群同士が移動時に干渉するかを判断させることができる。この機能は、前述したように、３次元グラフィックスデータに基き、移動させる部品若しくは部品群を囲む立方体に近似する形状を考え、その形状同士が干渉するかによって、部品同士が干渉するかを判断するものである。
また、この実施形態では、さらに前記基本工程若しくは中間工程毎に、カメラ視点の情報を修正してアニメーションを修正する機能も提供する。
以下、前記分解アルゴリズムの生成、アニメーションの生成及び修正を図１０に示す電動ノコギリの組み立て工程に適用した実施形態を図面を参照して説明する。この電動ノコギリの３次元グラフィックスデータは、ｎｏｋｏｇｉｒｉ．ｘｖ３という名称のＸＶＬファイルとして前記データ格納部６に保存されている。
このＸＶＬファイルには、このノコギリを構成する各部品のグループ構造が格納されており、これを表示すると、図１１のようになる。この実施形態では、この図１１の画面は「グループ編集パネル」と称され、図示しない各種メニューコマンドによって部品のグループ構造を編集することができるように構成されている。
次に、このＸＶＬファイルに基づいて、分解定義情報を生成する。
この分解定義情報を生成するには、まず、どのようにして上記電動ノコギリを分解若しくは組み立てるかを考えておく必要がある。この電動ノコギリの構造は図１２のようになっている。単純な組み立ての手順としては、以下のように、左カバーに部品を組み付けていき、右カバーを閉じるという手順が考えられる。
１．左カバーに可動部品を組み付ける。
２．モータ、ノブ、スイッチ、電源等を組み付ける。
３．右カバーを組み付けて、全体を閉じる。
４．プレートを組み付けて完成する。
ただし、可動部品は複数の部品からなっており、この部品は、ノコギリ全体を組み当てる前に組み立てておく必要がある。そこで手順としては、上記の１の可動部品の組み付けの前に可動部品を組み立てることにする。
分解定義情報の生成は、図１３以下に示す工程編集パネル２１を使用して行う。この実施形態では、この工程編集パネル２１上で工程を作成することで、前述したように前記分解定義情報生成部１７がそれを分解定義情報１１として構成し、前記データ格納部６に格納する。
まず、図１３に示すように、この工程編集パネル２１上部の○ボタン２２をクリックし、パネル２１内の「全体［組立］」２３上でクリックする。そして、「全体［組立］」２３で右クリックし、基本工程の追加を実行する。このことで、図１４に示すように、Ｐｒｏｅｅｓｓ−１という名前の工程２４が生成される。
名前が「Ｐｒｏｃｅｓｓ−１」では分かりにくいので、ノコギリ全体の組み立てを表す工程だと分かる名前にする。「１．Ｐｒｏｃｅｓｓ−１」２４をダブルクリックすると図１５に示す工程のプロパティダイアログ２６が表示される。「ユーザＩＤ」１９の項目２０に「ノコギリの組み立て」と入力して、工程の名前を変更する。ユーザＩＤを変えた後、ＯＫボタンを押すと工程編集パネル２１上で図１６のように工程名の変更が反映される。
続いて工程に組み立て要素を追加していく。前述では「左カバー」に対して各種部品を組み付けていくことを考えたが、「左カバー」のように、他の部品を組み付けていく基盤となる部品は「ベース部品」と呼ばれ、○のアイコンで表される基本工程の先頭に位置し、「▽＋下縦棒」で表示される。
ついで、次の３つのシステムのいずれかで「ｂｏｄｙ＿ｌ」（左カバー）を工程のベース部品として追加する。
▲１▼前記「グループ編集パネル」（図１１）で「ｂｏｄｙ＿ｌ」２８を選択する。図１７に示すように、工程編集パネル２１の「▽ボタン」２５をクリックし、「○１ノコギリの組み立て」２４上でクリックする。
▲２▼前記「グループ編集パネル」で「ｂｏｄｙ＿ｌ」２８を選択し、工程編集パネル２１の「○１ノコギリの組み立て」２４を右クリックして、グループの追加を実行する。
▲３▼前記「グループ編集パネル」で「ｂｏｄｙ＿ｌ」２８を右クリックして、コピーを実行する。次に工程編集パネル２１の「○１ノコギリの組み立て」２４を右クリックして貼り付けを実行する。
「左カバー」を工程のベースとして追加すると図１７のように「▽ｂｏｄｙ＿ｌ」２８が工程の先頭に加わる。
続いてベース部品に組み付けられる部品を追加していく。最初は「可動部品」である。前記で考えた組み立て手順では、「左カバー」に追加する前に別個に組み立てることにしたので、「可動部品」のための工程を追加する必要がある。
次の２つのシステムのいずれかで基本工程を追加する。
▲１▼「工程編集パネル」２１上部の「○ボタン」２２をクリックし、「▽ｂｏｄｙ＿ｌ」２８の下部で挿入バーが表示されたところでクリックする。
▲２▼「▽ｂｏｄｙ＿ｌ」２８を右クリックして基本工程の追加を実行する。
名前は「可動部品」とする。図１８に示すように、「○１．１可動部品」２９が追加されるようになる。
「○１．１可動部品」２９にその構成部品を追加して、「可動部品」を組み立てる工程を作成する必要があるが、ここでは「左カバー」に部品を組み付けていく「○  １ノコギリの組み立て」２４の工程を先に完成させることにする。その後で、「○１．１可動部品」２９を設計することにする。
次に「左カバー」に組み付ける「モーター」、「ノブ」、「スイッチ」、「電源」、「右カバー」、「プレート」を「○  １ノコギリの組み立て」に追加していく。これらの部品は「可動部品」とは異なって、個別に組み立てる必要のない部品である。そのような部品についてはアイコンが「▼＋上下横棒」の「中間工程」という工程を使う。
次の２つのシステムのいずれかで中間工程を追加する。
▲１▼「工程編集パネル」２１上部の「▽＋上下横棒」ボタン２７をクリックし、「○１．１可動部品」２９の下部で挿入バーが表示されたところでクリックする。
▲２▼「○１  ノコギリの組み立て」２４を右クリックして中間工程の追加を実行する。
名前は「モータの組み付け」とする。
これにより、図１９のようにアイコン「▼＋下横棒」の「１．２モータの組み付け」３０という中間工程を作成することができる。
次に、「１．２モータの組み付け」３０に「モーター」を表す部品（グループ）を追加する。
次の３つのシステムから「ｍｏｔｏｒ２」を追加する。
▲１▼グループ編集パネル（図１１）で「ｍｏｔｏｒ２」３１を選択する。工程編集パネル２１の「▽ボタン」２５をクリックして、「１．２モータの組み付け」３０をクリックする。
▲２▼グループ編集パネルで「ｍｏｔｏｒ２」３１を選択し、工程編集パネル２１の「１．２モータの組み付け」３０を右クリックして、グループの追加を実行する。
▲３▼グループ編集パネルで「ｍｏｔｏｒ２」を右クリックして、コピーを実行する。次に工程編集パネル２１の「１．２モータの組み付け」３０を右クリックして貼り付けを実行する。
図２０のようになる。中間工程に属する部品は、「▽ｂｏｄｙ＿ｌ」とは色が異なり、「▼ｍｏｔｏｒ２」３１のように表現される。同様の手順で「ノブ」、「スイッチ」、「電源」、「右カバー」、「プレート」の組み付ける工程を作成し、最終的に図２１の工程を作成する。
次に、構成要素のないままにしていた「１．１可動部品」を作成する。
「可動部品」の組み立ての流れについて、前記と同様に、「可動部品」を図２２のように分解することで考えてみる。単純な流れとして以下のようにするのが最も簡単そうであると判断できる。
１．「下部部品」をベースとして、「内部部品」のグループを１つずつ順番に組み付けていく。
２．「上部部品」を組み付ける。「上部部品」は複数のグループから構成されるが、１つの部品と考えてまとめて組み付ける。
３．「刃」を組み付ける。「刃」も２つのグループから構成されているが、１つの部品と考えてまとめて組み付ける。
この手順に従って、工程を設計してみる。
第２１図Ａにおいて、最初にベースとなる「下部部品」を工程編集パネル２１の「○１．１可動部品」２９に追加する。この手順は、「▽ｂｏｄｙ＿ｌ」を作成したときと同様である。
図２１Ｂのように「ｇｅａｒ＿ｌ」３２が追加された工程になる。
次に「内部部品」を取り付ける中間工程（▼＋下横棒）を作成する。以前の作業で作成した中間工程は１つの部品しか持たなかったが、複数の部品を持つこともできる。「内部部品の組み付け」という工程を作成して、「内部部品」を構成する全ての部品を組み付ける工程を作成してみる。
１．「ｇｅａｒ＿ｌ」３２の後に中間工程「１．１．１Ｐｒｏｃｅｓｓ−１」を作成する。
２．「プロパティ」ダイアログ２６で名前を変更し、「１．１．１内部部品の組み付け」という工程にする。
３．グループ編集パネルから「内部部品」を構成するグループを選択して、「１．１．１内部部品の組み付け」に追加する。位置関係を考慮して組み付け時に部品が干渉しないように以下の順番でグループを追加していく。
（ア）「ｍｏｔｏｒ＿１」
（イ）「ｇｅａｒｄｒｉｖｅｓｈａｆｔ」
（ウ）「ｒｅｔａｉｎｅｒ」
（エ）「ｒａｋｅｆｌｌｏｗｅｒ」
（オ）「ｃａｍ」
結果として、図２３に示すように、工程が構成される。
次に、「上部部品」及び「刃」を組み付ける工程を作成してみる。「上部部品」、「刃」はともに複数の部品を１つの部品のように扱って組み付けを行う。このようなアセンブリ構造が伴わない場合に、複数の部品（グループ）を１つの部品として扱いたい場合には、アイコン「▽＋上点」、または中間工程に含まれる場合のアイコン「▼＋上点」で表される「工程用グループ」を利用する。
次に、工程用グループを利用して「上部部品」を組み付けるための中間工程を作成してみる。
１．「「▼＋上棒」１．１．１内部部品の組み付け」３３の後に図２４に示すように、「「▼＋下棒」１．１．２上部部品の組み付け」３４という中間工程を作成する。
２．次の２つのシステムのいずれかで工程用グループを作成する。
▲１▼「工程編集パネル」２１上部の「▽＋上点」ボタン３５をクリックし、「１．１．２上部部品の組み付け」３４上でクリックする。
▲２▼「１．１．２上部部品の組み付け」３４を右クリックして工程用グループの追加を実行する。「Ｇｒｏｕｐ−１」という工程用グループが配下に作成されるので、「プロパティ」ダイアログ２６で名前を「上部部品」３６に変更する。すると、「「▼＋上点」上部部品」３６と工程編集パネル２１上で表現される。
３．グループ編集パネル（図１１）で「ａｃｔｕａｔｏｒｂｒａｃｋｅｔ」３７、「ｂｌａｄｅ３」３８、「ｇｅａｒ＿ｕ」３９を選択し、図２４中の「上部部品」３６に追加する。「□」アイコンであらわされる「工程用グループに含まれるグループ」が追加される。
なお、工程用グループ内での順番は部品の組み付け順序とは関係がないので、「ａｃｔｕａｔｏｒｂｒａｃｋｅｔ」、「ｂｌａｄｅ３」、「ｇｅａｒ＿ｕ」をどの順番で追加しても問題はない。
同様に「刃」についても工程用グループを利用し、図２４に４０で示すように工程を作成する。これにより、図２４に示す工程が構成され、工程の設計が終了する。
次に、前記分解アニメーション生成部１４によるアニメーションの生成及び前記分解アニメーション再生制御部１６によるアニメーションの再生について説明する。
上記で設計した工程に基いて、前記分解アニメーション生成部１４が、アニメーションの自動生成を実行する。この実行は、図示しないメニューバーから、「工程アニメーションの作成」コマンドを指定することで開始する。このコマンドを指定すると、図２５に示す工程アニメーションの作成ダイアログボックス４２が表示される。この作成ダイアログボックス４２で、アニメーションの長さ４３、アニメーションの始点と終点の間の補間システム４４、分解係数４５の各種パラメータを確認又は指定し、ＯＫボタンを押すと、前述したシステムにより、工程アニメーションが生成される。
このとき、カメラアニメーションも自動生成されるが、視点は生成時の状態を元にしている。したがって、アニメーション自動作成直前に、図２６のように少し視点を傾けた状態にした後、工程アニメーションを実行することで、この視点での分解アニメーションが生成される。
自動生成したアニメーションを確認するには、例えば、図示しないメニューから、「工程のプレビューモード」を実行する。アニメーション→工程のプレビューモードを実行すると、図２７のようにグラフィックス画面上で自動生成されたアニメーションをプレビューすることができる。
工程アニメーションのプレビューダイアログ４６で「＞」ボタン４７を押すとプレビューパネル４８でアニメーションの再生が開始される。ここで、工程編集パネル２１と工程アニメーションのプレビューダイアログ４６及びプレビューパネル４８は互いに連動していて、工程編集パネル２１で工程を選択すると、その工程のアニメーション開始位置が反映される。また、アニメーションが進行し、工程やグループが切り替わると工程編集パネル２１上でそれらが選択状態となる。
次に、工程アニメーションの編集・再生成について説明する。
自動生成した工程アニメーションをプレビューしてみると干渉している組み立て手順があったりして不自然なところや、もう少し変化をつけてアニメーションをさせたい場合などがある。
例えば、図２８Ａ、図２８Ｂの「電源の組み付け」のアニメーションでは組み付けの途中で部品間での干渉が発生するアニメーションが生成されている。この修正には、前記工程編集パネル２１とアニメーションパネル４９を連動させて修正していく。
図２９のように、工程編集パネル２１とアニメーションパネル４９が共に開いている状態で、工程編集パネル２１の「１．５電源の組み付け」５０の上にある「ｐｏｗｅｒ」５１を選択する。すると、図２９のようにアニメーションパネル４９で電源の組み付けの動きに対応するアニメーションが選択された状態となる。「電源の組み付け」にどのようなアニメーションが生成されたかをアニメーションパネル４９で調べることができる。アニメーションパネル４９では図３０のようになっているので、「＞｜」と「｜＜」でキーフレーム間を移動して、「○」でキーフレームの内容を確認する。以下のように設定されているとする。
０秒目に自動的に決定された位置（０，１６０．７０４、０）が設定されている。
１秒目に組み付ける位置が設定されている。
ここでは、０秒目の位置を適当な位置に修正すれば、うまく動作しそうである。そこで０秒目で「○」を押してキーフレームの編集を行う。図３１のプロパティダイアログで位置を（０、−３５、−６０）に設定してみると画面上で適当な位置に来ているように見える。そこで、この状態でＯＫボタンを押してキーフレームを変更する。変更後に適当なアニメーションするかをアニメーションパネル４９の「＞」ボタンを押して確認する。
同様の手順で、他の部品の動きを順次編集していく。
次に、「１．１可動部品」が組みあがったあとに「ｂｏｄｙ＿ｌ」に組み付く動作をもう少し複雑な動作にしてみる。「１．１可動部品」全体が「ｂｏｄｙ＿ｌ」に組み付く動作を編集するためには、図３２に示すように、工程編集パネル２１で「１．１可動部品」２９を選択する。そして、アニメーションパネル４９のターゲット５３で「ＡＬＬ  ＧＲＯＵＰ」を選択する。すると、「１．１可動部品」２９に含まれる部品全ての動作を編集できるようになる。
例えば、「１．１可動部品」２９の初期位置（時間０秒目）を「ＡＬＬ  ＧＲＯＵＰ」で編集すると、前記分解アニメーション修正部１５は、前記分解定義情報１１若しくは分解アルゴリズム９に基き、「１．１可動部品」２９の配下の組み付け工程である「１．１．１内部部品の組み付け」５４の組み付けアニメーションも連動して修正するようになっている。
次に、視点の編集について説明する。
上記工程では、「１．１可動部品」２９は少し離れた位置で組み立てられるので「１．１可動部品」２９の組立アニメーションで視点が適当な位置に移動するようにカメラを編集してみる。この場合、工程編集パネル２１で「１．１可動部品」２９の「ｇｅａｒ＿ｌ」５５を選択する。そして、第３３図のように、アニメーションパネル４９のターゲット５３のプルダウンメニューから「ＰｒｏｃＣａｍ−１」を選択して、ボタンでアニメーションに追加する。ボタンを押すと、「ｇｅａｒ＿ｌ」が０秒での位置に移動する。図３３のアニメーションパネル４９で時間０秒目でボタンを押して、視点を編集する。図３４のダイアログが現れるので以下の操作を行う。
１．ビュー操作ボタンを押す。
２．グラフィックス画面上で視点の位置を調整する。例えば、視点の回転は「ｘキーを押しながらドラッグ」、パンは「ｚキーを押しながらドラッグ」、ズームは「ｃキーを押しながらドラッグ」で行う。
３．使用ラジオボタンをＯＮにする。
４．図３５のような適当な視点に設定できたらＯＫボタンを押して編集を終了する。
「１．１可動部品」の組み付けのあとで、続く「１．２モータの組み付け」などの工程で視点が適当な位置になるように「１．２モータの組み付け」の「ｍｏｔｏｒ２」にも同様の手順でカメラのキーフレームを編集しておく。
個々のアニメーションの編集が終了したら、全体の流れの一貫性をとるためにアニメーションを再生成する必要がある。前記図２５の工程アニメーションの作成ダイアログボックス４２を表示させてアニメーションの作成を行なうが、このとき、「再利用ボタン」５７がチェックされていることに注意する。このボタンがチェックされていると前記で編集したアニメーションを使って再び工程アニメーションを生成する。
工程アニメーションの再生成が終了したら、再度プレビュー操作を行って結果を確認する。自然な流れのアニメーションになっていることが確認できる。
なお、この発明は上記１実施形態に限定されるものではなく、発明の要旨を変更しない範囲で種々変形可能である。
以上説明した構成によれば、従来、工程設計後に全てのアニメーションをユーザが手動で設定する必要があったが、上記工程アニメーションの自動生成機能を利用することで、作業手順を示すアニメーション作成作業を大幅に軽減できる。
【図１】
2004109602.tif 000005
2004109602.tif 000006
2004109602.tif 000007
2004109602.tif 000008
2004109602.tif 000009
2004109602.tif 000010
2004109602.tif 000011
【図８】
2004109602.tif 000012
【図９】
2004109602.tif 000013
【図１０】
2004109602.tif 000014
【図１１】
2004109602.tif 000015
【図１２】
2004109602.tif 000016
【図１３】
2004109602.tif 000017
【図１４】
2004109602.tif 000018
【図１５】
2004109602.tif 000019
【図１６】
2004109602.tif 000020
【図１７】
2004109602.tif 000021
【図１８】
2004109602.tif 000022
【図１９】
2004109602.tif 000023
【図２０】
2004109602.tif 000024
2004109602.tif 000025
【図２２】
2004109602.tif 000026
【図２３】
2004109602.tif 000027
【図２４】
2004109602.tif 000028
【図２５】
2004109602.tif 000029
【図２６】
2004109602.tif 000030
【図２７】
2004109602.tif 000031
2004109602.tif 000032
【図２９】
2004109602.tif 000033
【図３０】
2004109602.tif 000034
【図３１】
2004109602.tif 000035
【図３２】
2004109602.tif 000036
【図３３】
2004109602.tif 000037
【図３４】
2004109602.tif 000038
【図３５】
2004109602.tif 000039
【国際調査報告】
2004109602.tif 000040
2004109602.tif 000041