(57)【要約】【課題】立体形状のデザインにおいて、デザインを途中からやり直す場合や、デザインの部分的な変更を行う場合等の作業を容易にするための柔軟な操作を提供すること。【解決手段】立体形状生成システム１００は、入力したユーザの動作に基づいて立体形状を第１の立体形状から第２の立体形状に編集し、編集された第２の立体形状に、データ操作レコードと、立体形状ステータスとを有するノードを対応付けて作成し、作成したノードをヒストリ記憶部３２に記憶する。そして、立体形状生成システム１００は、ヒストリ記憶部３２のうちからユーザによって指定された指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいて立体形状を編集すると共に、指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいて新たなノードを作成し、当該新たなノードをヒストリ記憶部３２に記憶する。【選択図】図１
2010277305.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの動作に応じて、コンピュータによって、三次元の立体形状をデザインする立体形状生成システムであって、
二次元平面の位置を示す位置データを前記ユーザの動作に応じて入力する入力手段と、
前記入力手段によって入力した前記ユーザの動作に基づいて前記立体形状を第１の立体形状から第２の立体形状に編集する立体形状編集手段と、
前記立体形状編集手段によって編集された前記第２の立体形状に、前記第１の立体形状から前記第２の立体形状に編集するための前記ユーザの動作に対応したデータであるデータ操作レコードと、前記第２の立体形状に対応したデータである立体形状ステータスとを有するノードを対応付けて作成するノード作成手段と、
前記ノード作成手段が作成したノードをヒストリ記憶手段に記憶するヒストリ作成手段と、
前記ヒストリ記憶手段のうちからユーザによって指定された指定ノードの前記データ操作レコードと、最新のノードの前記立体形状ステータスとに基づいて立体形状を編集すると共に、前記指定ノードの前記データ操作レコードと、前記最新のノードの前記立体形状ステータスとに基づいて前記ノード作成手段によって新たなノードを作成し、当該新たなノードを前記ヒストリ作成手段によって記憶するノード対応編集手段と、
を備えることを特徴とする立体形状生成システム。
【請求項２】
請求項１記載の立体形状生成システムであって、
前記ヒストリ作成手段は、前記ノード作成手段が作成した新ノードを前記ヒストリ記憶手段に記憶する際に、前記ヒストリ記憶手段に記憶したノードのうち最新である直前ノードから前記新ノードを示すポインタを作成し、
前記ノード対応編集手段は、前記指定ノードのポインタによって示されるノードに従って、更に立体形状を編集すると共に、前記ノード作成手段によって新たなノードを作成することを特徴とする立体形状生成システム。
【請求項３】
請求項２に記載の立体形状生成システムであって、
前記ヒストリ作成手段において、前記ポインタを作成する際に、前記新ノードに前記直前ノードを示す親ポインタを作成し、前記直前ノードに前記新ノードを示す子ポインタを作成する親子ポインタ作成手段と、
ユーザから受け付けた操作に基づいて、当該ノードの前記データ操作レコード及びノードの情報をスタック記憶手段に積み上げて記憶し、当該ノードの前記親ポインタが示すノードに遷移するＵＮＤＯ手段と、
ユーザから受け付けた操作に基づいて、前記ＵＮＤＯ手段によって遷移する前のノードに遷移すると共に、前記スタック記憶手段の積み上げを下げるＲＥＤＯ手段と、
を更に備えることを特徴とする立体形状生成システム。
【請求項４】
請求項３に記載の立体形状生成システムであって、
前記ＵＮＤＯ手段によってノードに遷移した後に、前記立体形状編集手段によって前記立体形状を編集した場合は、前記ノード作成手段によって新たなノードを作成し、当該新たなノードを前記ヒストリ作成手段によって記憶すると共に、前記スタック記憶手段の積み上げを一つ下げるＵＮＤＯ後編集手段を更に備え、
前記ＲＥＤＯ手段は、前記ＵＮＤＯ後編集手段によって作成したノードにおいてユーザから操作を受け付けた場合は、当該ノードの前記立体形状ステータスと、前記スタック記憶手段から取り出した前記データ操作レコードとに基づいて前記立体形状を編集し、前記ノード作成手段によって新たなノードを作成し、当該新たなノードを前記ヒストリ作成手段によって記憶すると共に、前記スタック記憶手段の積み上げを一つ下げることを特徴とする立体形状生成システム。
【請求項５】
請求項１乃至４のいずれかに記載の立体形状生成システムであって、
前記指定ノードに遷移するジャンプ手段を更に備えることを特徴とする立体形状生成システム。
【請求項６】
請求項１乃至５のいずれかに記載の立体形状生成システムであって、
ユーザによって指示された履歴マークにより、前記ノード作成手段によって新たなノードを作成し、当該新たなノードを前記ヒストリ作成手段によって記憶すると共に、当該新たなノードに前記履歴マークを記憶する履歴マーク作成手段を更に備えることを特徴とする立体形状生成システム。
【請求項７】
ユーザの動作に応じて、コンピュータによって、三次元の立体形状をデザインする方法であって、
二次元平面の位置を示す位置データを前記ユーザの動作に応じて入力するステップと、
入力した前記ユーザの動作に基づいて前記立体形状を第１の立体形状から第２の立体形状に編集するステップと、
編集された前記第２の立体形状に、前記第１の立体形状から前記第２の立体形状に編集するための前記ユーザの動作に対応したデータであるデータ操作レコードと、前記第２の立体形状に対応したデータである立体形状ステータスとを有するノードを対応付けて作成するステップと、
作成したノードをヒストリ記憶手段に記憶するステップと、
前記ヒストリ記憶手段のうちからユーザによって指定された指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいて立体形状を編集すると共に、前記指定ノードのデータ操作レコードと、前記最新のノードの立体形状ステータスとに基づいて新たなノードを作成し、当該新たなノードを前記ヒストリ記憶手段に記憶するステップと、
を備えることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両等の工業製品の外観をデザインするときに、デザイナのデザインを支援する立体形状生成システム及び方法に関する。
【背景技術】
【０００２】
従来より、工業製品の開発において、デザイナは、紙に鉛筆やその他の筆記用具を用いて絵（デッサン）を描いて、工業製品の外観を表していた。また、工業製品の開発において、デザイナが描いた絵を元に具体的にイメージするためにコンピュータＣＡＤを用いて３次元立体図を作成したり、クレーと呼ばれる粘土や樹脂を使用して原寸から数分の一のサイズのものまでの立体模型を作成したりして、三次元化されたモデルを評価して製品化への開発判断が行われていた。
【０００３】
このような三次元モデルをデザインする過程において、デザイナがデザインのやり直しや、デザイン中のモデル同士の見比べをすることができるような柔軟な操作を実現する技術として、特許文献１から特許文献４の開示がある。
【０００４】
特許文献１は、ソリッド形状の誤りの修正や類似形状の作成等を容易に実現するようにし、ソリッドモデルの作成や修正に要する手間と時間を大幅に短縮する技術を開示している。この方法は、ユーザによって入力装置から入力された情報に基づいて、形状操作情報を作成して記憶装置に蓄え、形状操作を行って操作の結果を形状データに反映させる。その後、更新された形状データを出力装置に出力することにより、ユーザがその形状を確認できる。そして、希望する形状になるまでこの操作を繰返すが、個々の形状操作情報及び各段階における形状データの他に、形状操作の履歴をも記憶装置内に保持し、任意の形状操作時点の形状を再現する。
【０００５】
特許文献２は、形状の寸法を変更する操作等のように、形状の位相構造を変更できるような形状修正操作を実行可能とする技術を開示している。この方法は、形状修正コマンドによる形状寸法の変更や形状特徴の削除を行うために、コマンド履歴格納部から取り出した形状変形操作コマンドを修正して再実行する。
【０００６】
特許文献３は、仮想空間を用いたコンピュータ支援型学習における、生徒の学習結果の採点を自動化する技術を開示している。この方法は、抽象操作と少なくとも１回以上の抽象操作又はプリミティブな操作との関連を表す書き換え規則を格納する手段が用意され、履歴に記録されたプリミティブな操作列を、書き換え規則をもとに抽象操作をノードとした木構造に構造化し、構造化操作列の部分木のパターンに基づいて操作列全体の得点を算出するようにする。
【０００７】
特許文献４に記載されている表示装置は、３次元グラフィックスデータを保持し、３次元グラフィックスを２次元表示するための表示パラメータのセットを複数格納し、ユーザに、２次元表示する表示パラメータのセットを選択させ、選択された表示パラメータのセットを保持する。そして、保持する３次元グラフィックスデータと、保持する表示パラメータのセットとに基づいてレンダリング処理を行い、３次元グラフィックスを２次元表示する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平８−８３２９６号公報
【特許文献２】特開平８−８３３５６号公報
【特許文献３】特開２０００−３１０９３９号公報
【特許文献４】再表２００４／１０７２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の方法では、任意の形状操作時点の形状を再現できるが、再現した形状から希望する形状を作成するには、再現した形状から形状操作し確認する作業を繰返す必要がある。特許文献２の方法では、格納した形状変形操作コマンドを、形状の変更に合せて修正し、再実行するが、寸法変更のような形状の位相構造の変更に対応することができるだけである。特許文献３の方法では、操作をノードとした木構造のパターンを利用しているだけなので、ノードとして記憶した操作を操作対象に反映させることはできない。特許文献４の方法では、ユーザによって選択された２次元表示パラメータのセットを保持し、３次元グラフィックスを保持した表示パラメータのセットによって２次元表示することができるが、表示を変えることができるだけであって形状そのものを変えることができるわけではない。
【００１０】
例えば、工業製品の外観のデザインにおいて、デザイナはデザインの過程を戻ったり進めたりしながら描いては消し、また描くという作業を繰り返して、最終的なデザインを仕上げていく。このような、過程を戻って繰り返すという作業を、上述の特許文献に開示された技術では、効率的に行うことはできない。
【００１１】
そこで、立体形状のデザインにおいて、作成過程を戻って変更したり、部分的に変更したりするデザイン作業を容易にするシステムが求められている。
【００１２】
本発明は、立体形状のデザインにおいて、デザインを途中からやり直す場合や、デザインの部分的な変更を行う場合等の作業を容易にするための柔軟な操作を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、具体的には次のようなものを提供する。
【００１４】
（１）  ユーザの動作に応じて、コンピュータによって、三次元の立体形状をデザインする立体形状生成システムであって、二次元平面の位置を示す位置データを前記ユーザの動作に応じて入力する入力手段と、前記入力手段によって入力した前記ユーザの動作に基づいて前記立体形状を第１の立体形状から第２の立体形状に編集する立体形状編集手段と、前記立体形状編集手段によって編集された前記第２の立体形状に、前記第１の立体形状から前記第２の立体形状に編集するための前記ユーザの動作に対応したデータであるデータ操作レコードと、前記第２の立体形状に対応したデータである立体形状ステータスとを有するノードを対応付けて作成するノード作成手段と、前記ノード作成手段が作成したノードをヒストリ記憶手段に記憶するヒストリ作成手段と、前記ヒストリ記憶手段のうちからユーザによって指定された指定ノードの前記データ操作レコードと、最新のノードの前記立体形状ステータスとに基づいて立体形状を編集すると共に、前記指定ノードの前記データ操作レコードと、前記最新のノードの前記立体形状ステータスとに基づいて前記ノード作成手段によって新たなノードを作成し、当該新たなノードを前記ヒストリ作成手段によって記憶するノード対応編集手段と、を備えることを特徴とする立体形状生成システム。
【００１５】
（１）の構成によれば、本発明に係る立体形状生成システムは、二次元平面の位置を示す位置データをユーザの動作に応じて入力し、入力したユーザの動作に基づいて立体形状を第１の立体形状から第２の立体形状に編集し、編集された第２の立体形状に、第１の立体形状から第２の立体形状に編集するためのユーザの動作に対応したデータであるデータ操作レコードと、第２の立体形状に対応したデータである立体形状ステータスとを有するノードを対応付けて作成し、作成したノードをヒストリ記憶手段に記憶する。そして、本発明に係る立体形状生成システムは、ヒストリ記憶手段のうちからユーザによって指定された指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいて立体形状を編集すると共に、指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいて新たなノードを作成し、当該新たなノードをヒストリ記憶手段に記憶する。
【００１６】
すなわち、本発明に係る立体形状生成システムは、デザイン中の立体形状に対して、ユーザによって指定されたノードのデータ操作レコードに基いた編集を行う。したがって、本発明に係る立体形状生成システムは、立体形状のデザインにおいて、ユーザの動作を実際に行わなくても既に行ったユーザの動作に基づいて立体形状の編集を行うことができるので、デザインを途中からやり直す場合や、デザインの部分的な変更を行う場合等の作業を容易にすることができる。
【００１７】
（２）  （１）記載の立体形状生成システムであって、前記ヒストリ作成手段は、前記ノード作成手段が作成した新ノードを前記ヒストリ記憶手段に記憶する際に、前記ヒストリ記憶手段に記憶したノードのうち最新である直前ノードから前記新ノードを示すポインタを作成し、前記ノード対応編集手段は、前記指定ノードのポインタによって示されるノードに従って、更に立体形状を編集すると共に、前記ノード作成手段によって新たなノードを作成することを特徴とする立体形状生成システム。
【００１８】
（２）の構成によれば、本発明に係る立体形状生成システムは、新ノードをヒストリ記憶手段に記憶する際に、ヒストリ記憶手段に記憶したノードのうち最新である直前ノードから新ノードを示すポインタを作成する。そして、本発明に係る立体形状生成システムは、指定ノードのポインタによって示されるノードに従って、更に立体形状を編集すると共に、新たなノードを作成する。したがって、本発明に係る立体形状生成システムは、立体形状のデザインにおいて、ユーザの動作を実際に行わなくても既に行ったユーザの動作のヒストリに基づいて立体形状の編集を行うことができるので、デザインを途中からやり直す場合や、デザインの部分的な変更を行う場合等の作業を容易にすることができる。
【００１９】
（３）  （２）に記載の立体形状生成システムであって、前記ヒストリ作成手段において、前記ポインタを作成する際に、前記新ノードに前記直前ノードを示す親ポインタを作成し、前記直前ノードに前記新ノードを示す子ポインタを作成する親子ポインタ作成手段と、ユーザから受け付けた操作に基づいて、当該ノードの前記データ操作レコード及びノードの情報をスタック記憶手段に積み上げて記憶し、当該ノードの前記親ポインタが示すノードに遷移するＵＮＤＯ手段と、ユーザから受け付けた操作に基づいて、前記ＵＮＤＯ手段によって遷移する前のノードに遷移すると共に、前記スタック記憶手段の積み上げを一つ下げるＲＥＤＯ手段と、を更に備えることを特徴とする立体形状生成システム。
【００２０】
（３）の構成によれば、本発明に係る立体形状生成システムは、ヒストリ作成において、ポインタを作成する際に、新ノードに直前ノードを示す親ポインタを作成し、直前ノードに新ノードを示す子ポインタを作成する。そして、ユーザから受け付けたＵＮＤＯ操作に基づいて、当該ノードのデータ操作レコード及びノードの情報をスタック記憶手段に積み上げて記憶し、当該ノードの親ポインタが示すノードに遷移し、ユーザから受け付けたＲＥＤＯ操作に基づいて、ＵＮＤＯ操作によって遷移する前のノードに遷移すると共に、スタック記憶手段の積み上げを一つ下げる。
【００２１】
すなわち、本発明に係る立体形状生成システムは、ユーザのＵＮＤＯ操作又はＲＥＤＯ操作によって、直前のノードに遷移したり又は遷移する前のノードに遷移したりすることができる。したがって、本発明に係る立体形状生成システムは、立体形状のデザインにおいて、操作によって容易に前の立体形状とすることができ、前の立体形状から現在の立体形状とすることができるので、デザインを途中からやり直す場合や、デザインの部分的な変更を行う場合等の作業を容易にすることができる。
【００２２】
（４）  （３）に記載の立体形状生成システムであって、前記ＵＮＤＯ手段によってノードに遷移した後に、前記立体形状編集手段によって前記立体形状を編集した場合は、前記ノード作成手段によって新たなノードを作成し、当該新たなノードを前記ヒストリ作成手段によって記憶すると共に、前記スタック記憶手段の積み上げを一つ下げるＵＮＤＯ後編集手段を更に備え、前記ＲＥＤＯ手段は、前記ＵＮＤＯ後編集手段によって作成したノードにおいてユーザから操作を受け付けた場合は、当該ノードの前記立体形状ステータスと、前記スタック記憶手段から取り出した前記データ操作レコードとに基づいて前記立体形状を編集し、前記ノード作成手段によって新たなノードを作成し、当該新たなノードを前記ヒストリ作成手段によって記憶すると共に、前記スタック記憶手段の積み上げを一つ下げることを特徴とする立体形状生成システム。
【００２３】
（４）の構成によれば、本発明に係る立体形状生成システムは、ＵＮＤＯ操作によってノードに遷移した後に、立体形状を編集した場合は、新たなノードを作成し、当該新たなノードをヒストリ記憶手段に記憶すると共に、スタック記憶手段の積み上げを一つ下げる。そして、当該新たなノードにおいてＲＥＤＯ操作を受け付けた場合は、当該新たなノードの立体形状ステータスと、スタック記憶手段から取り出したデータ操作レコードとに基づいて立体形状を編集し、新たなノードを作成し、ヒストリ記憶手段に記憶すると共に、スタック記憶手段の積み上げを一つ下げる。
【００２４】
すなわち、本発明に係る立体形状生成システムは、ＵＮＤＯ操作の後に立体形状を編集した場合は、スタック記憶手段の積み上げを一つ下げ、次にＲＥＤＯ操作を行うと、スタック記憶手段から取り出したデータ操作レコードに基づいて立体形状を編集し、新たなノードを作成する。したがって、本発明に係る立体形状生成システムは、ＵＮＤＯ操作の後に立体形状を編集した状態から、ユーザの動作を実際に行わなくても、ＲＥＤＯ操作によって既に行ったユーザの動作に基づいて立体形状の編集を行うことができるので、デザインを途中からやり直す場合や、デザインの部分的な変更を行う場合等の作業を容易にすることができる。
【００２５】
（５）  （１）乃至（４）のいずれかに記載の立体形状生成システムであって、前記指定ノードに遷移するジャンプ手段を更に備えることを特徴とする立体形状生成システム。
【００２６】
（５）の構成によれば、本発明に係る立体形状生成システムは、ヒストリ記憶手段のうちからユーザによって指定されたノードに遷移する。すなわち、本発明に係る立体形状生成システムは、デザイン過程を戻して再度作業したいとユーザが望む状態に遷移することができる。したがって、本発明に係る立体形状生成システムは、立体形状のデザインにおいて、デザインを途中からやり直す場合の作業を容易にすることができる。
【００２７】
（６）  （１）乃至（５）のいずれかに記載の立体形状生成システムであって、ユーザによって指示された履歴マークにより、前記ノード作成手段によって新たなノードを作成し、当該新たなノードを前記ヒストリ作成手段によって記憶すると共に、当該新たなノードに前記履歴マークを記憶する履歴マーク作成手段を更に備えることを特徴とする立体形状生成システム。
【００２８】
（６）の構成によれば、本発明に係る立体形状生成システムは、ユーザによって指示された履歴マークにより、新たなノードを作成すると共に、履歴マークを記憶する。すなわち、本発明に係る立体形状生成システムは、編集した立体形状ごとに加えて、履歴マークごとにノードを作成する。したがって、本発明に係る立体形状生成システムは、立体形状のデザインにおいて、履歴マークされたノードからやり直したり、部分的な変更をすることができるので、デザインを途中からやり直す場合や、デザインの部分的な変更を行う場合等の作業を容易にすることができる。
【００２９】
（７）  ユーザの動作に応じて、コンピュータによって、三次元の立体形状をデザインする方法であって、二次元平面の位置を示す位置データを前記ユーザの動作に応じて入力するステップと、入力した前記ユーザの動作に基づいて前記立体形状を第１の立体形状から第２の立体形状に編集するステップと、編集された前記第２の立体形状に、前記第１の立体形状から前記第２の立体形状に編集するための前記ユーザの動作に対応したデータであるデータ操作レコードと、前記第２の立体形状に対応したデータである立体形状ステータスとを有するノードを対応付けて作成するステップと、作成したノードをヒストリ記憶手段に記憶するステップと、前記ヒストリ記憶手段のうちからユーザによって指定された指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいて立体形状を編集すると共に、前記指定ノードのデータ操作レコードと、前記最新のノードの立体形状ステータスとに基づいて新たなノードを作成し、当該新たなノードを前記ヒストリ記憶手段に記憶するステップと、を備えることを特徴とする方法。
【００３０】
（７）の構成によれば、本発明に係る方法は、ユーザの動作に応じて、コンピュータによって、三次元の立体形状をデザインする方法であって、二次元平面の位置を示す位置データをユーザの動作に応じて入力し、入力したユーザの動作に基づいて立体形状を第１の立体形状から第２の立体形状に編集し、編集された第２の立体形状に、第１の立体形状から第２の立体形状に編集するためのユーザの動作に対応したデータであるデータ操作レコードと、第２の立体形状に対応したデータである立体形状ステータスとを有するノードを対応付けて作成し、作成したノードをヒストリ記憶手段に記憶し、ヒストリ記憶手段のうちからユーザによって指定された指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいて立体形状を編集すると共に、指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいて新たなノードを作成し、当該新たなノードをヒストリ記憶手段に記憶する。
【００３１】
したがって、本発明に係る方法は、立体形状のデザインにおいて、ユーザの動作を実際に行わなくても既に行ったユーザの動作に基づいて立体形状の編集を行うことができるので、デザインを途中からやり直す場合や、デザインの部分的な変更を行う場合等の作業を容易にすることができる。
【発明の効果】
【００３２】
本発明によれば、立体形状のデザインにおいて、デザインを途中からやり直す場合や、デザインの部分的な変更を行う場合等の作業を容易にするための柔軟な操作を提供することができる。その結果、本発明によれば、紙と鉛筆とによるデザイン以上の発想の転換や広がりを得ることができ、結果に到達するまでのデザインの思考過程をも把握することができる。
【図面の簡単な説明】
【００３３】
【図１】本実施形態に係る立体形状生成システム１００の特徴を示す図である。
【図２】本実施形態に係る立体形状生成システム１００の全体構成及び機能構成を示す図である。
【図３】本実施形態に係る立体形状生成システム１００のメイン処理のフローチャートである。
【図４】本実施形態に係る立体形状とノードとの関係を示す図である。
【図５】本実施形態に係るヒストリを示す図である。
【図６】本実施形態に係るＵＮＤＯ操作及びＲＥＤＯ操作と、編集される立体形状との関係を示す図である。
【発明を実施するための形態】
【００３４】
以下、本発明を実施するための形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
【００３５】
図１は、本発明の一実施形態に係る立体形状生成システム１００の特徴を示す図である。
【００３６】
図１は、立体形状生成システム１００が立体形状１０１（ノード５１）から、ユーザの動作、例えば手描き動作に基づいてキャラクターラインＣＬ１による立体形状１０２（ノード５２）の編集を行い、次に、キャラクターラインＣＬ２による立体形状１０３（ノード５３）の編集を行い、次に、ミラーリングによる立体形状１０４（ノード５４）の編集を行ったことを示している。そして、ユーザの指定に基づいて、立体形状生成システム１００が立体形状１０１（ノード５１）の状態に戻し、キャラクターラインＣＬ３による立体形状１１２（ノード５５）の編集を行い、その後に、立体形状生成システム１００が、ユーザによって指定されたノード５３に基づいて、立体形状１１２から立体形状１１３（ノード５６、キャラクターラインＣＬ２による編集）の編集を行ったことを示している。立体形状１１３の編集は、指定されたノード５３の立体形状１０３におけるキャラクターラインＣＬ２の相対的な関係を、立体形状１１２に当てはめることによって行われる。図１では、指定されたノード５３の、例えばキャラクターラインＣＬ２という手描き動作に基づいて編集する例を示したが、立体形状の編集は手描き動作に基づく編集だけとは限らない。立体形状生成システム１００は、既に行って記憶した、例えば、形状に色をつけることや、照明を任意の角度から照射する等の手描き動作以外の指定や指示、各種の設定操作等に基づいて編集することもできる。
【００３７】
［立体形状生成システム１００の全体構成及び機能構成］
図２は、本実施形態に係る立体形状生成システム１００の全体構成及び機能構成を示す図である。立体形状生成システム１００は、入力手段としてデジタイザ１と、表示手段としてモニタ５と、制御部１０と、記憶部３０とを備えている。立体形状生成システム１００は、ユーザの動作、例えば、フリーハンドの手描きライン、カメラの角度の設定等に応じて立体形状を編集する。
【００３８】
デジタイザ１と、モニタ５と、制御部１０と、記憶部３０とは、それぞれ図示しないバスラインを介して接続されている。
【００３９】
［デジタイザ１］
デジタイザ１は、入力装置であり、板状部材２と、ペン部材３とを組み合わせた構造である。板状部材２は、モニタ５の中での位置を検出するための板状の装置である。ペン部材３は、モニタ５に対する位置を指示するためのペン型の装置である。デジタイザ１は、モニタ５に対応する板状部材２の上でペン部材３により絶対位置を指定するため、細かい作業に向いている。デジタイザ１は、従来、鉛筆等の筆記用具を使用して紙にデザインしていたユーザが、従来のデザイン作業と同等の感覚でデザイン作業ができることから選択された。デジタイザ１は、ペン部材３の進化に伴って、より紙に描く感じでユーザに作業を行わせることができる。
【００４０】
デジタイザ１は、ユーザの動作、例えば手描き動作、処理方法の指定に応じた二次元の位置を示す位置データを入力する。すなわち、デジタイザ１は、ペン部材３の手描き動作や処理方法の指定に応じたＸ軸、Ｙ軸の位置データを、立体形状生成システム１００に入力する。なお、デジタイザ１の他に、位置データを入力する装置、例えば、小型のデジタイザであるタブレットや、タッチパネル式のポインティングデバイス等であってもよい。
【００４１】
［モニタ５］
モニタ５は、例えば、デジタイザ１に入力した輪郭線から作成されたポリラインを表示するブラウン管表示装置（ＣＲＴ）、液晶表示装置（ＬＣＤ）等のディスプレイ装置である。
【００４２】
［制御部１０］
制御部１０は、情報の演算及び処理を行う情報演算処理装置（ＣＰＵ）であり、当該立体形状生成システム１００の全体を制御するものである。制御部１０は、記憶部３０に記憶された各種プログラムを適宜読み出して実行することにより、立体形状生成システム１００のハードウェアと協働し、本発明に係る各種機能を実現している。
【００４３】
制御部１０は、受付手段１１と、立体形状編集手段１２と、ノード作成手段１３と、ヒストリ作成手段１４と、親子ポインタ作成手段１４１と、ノード対応編集手段１５と、ＵＮＤＯ手段１６と、ＲＥＤＯ手段１７と、ＵＮＤＯ後編集手段１８と、ジャンプ手段１９と、履歴マーク作成手段２０とを備える。
【００４４】
受付手段１１は、デザイナであるユーザがデジタイザ１を用いて手描き動作によって描いた線等を受け付ける。また、受付手段１１は、手描き動作以外のユーザの指定や指示を受け付ける。例えば、ユーザによるノードの指定として、モニタ５に表示されているノードに対応する板状部材２上の特定位置をペン部材３によって押下等する指定を受け付ける。また、例えば、ユーザが現在の立体形状等の状態を保存したいと思った場合の指示として、専用のボタン等により、履歴マークの指示を受け付ける。
【００４５】
立体形状編集手段１２は、デジタイザ１によって入力した手描き動作や処理方法の指定に基づいて立体形状を第１の立体形状から第２の立体形状に編集する。立体形状の編集は、例えば、手描き線に基づく初期形状の生成、手描き線を基準にした周囲の面の編集、輪郭線の修正に伴う編集、断面の修正に伴う編集、カットされた面を基準としたミラーリングによる編集等がある。
【００４６】
ノード作成手段１３は、立体形状編集手段１２によって編集された第２の立体形状に、第１の立体形状から第２の立体形状に編集するための手描き動作や処理方法の指定に対応したデータであるデータ操作レコードと、第２の立体形状に対応したデータである立体形状ステータスとを有するノードを対応付けて作成する。
【００４７】
ここで、ノード作成手段１３が作成するノードに対応付けられたデータ操作レコードは、手描き動作や処理方法の指定の各機能によって異なり、各種の処理用のレコードから構成されている。例えば、頂点移動処理用のレコードは、ある頂点のセットのそれぞれについて、移動前後の座標を記憶するレコードである。頂点オフセット移動処理用のレコードは、ある頂点のセットについて、移動前後のオフセット座標を記憶するレコードである。カメラ移動処理用のレコードは、ユーザによってカメラが移動される前と後のカメラの位置情報を記憶するレコードである。リメッシュ処理用のレコードは、リメッシュ処理によって影響を受けた領域の形状の、処理前後の情報を記憶するためのレコードである。
【００４８】
ノード作成手段１３が作成するノードに対応付けられた立体形状ステータスは、立体形状の３次元座標データや、面を構成するメッシュ情報、履歴マーク等の立体形状に対応したデータから構成されている。
【００４９】
ヒストリ作成手段１４は、ノード作成手段１３が作成したノードをヒストリ記憶部３２に記憶する。ヒストリ記憶部３２への記憶によって、作成されたノードは蓄えられて記憶される。更に、ノード作成手段１３が作成した新ノードをヒストリ記憶部３２に記憶する際に、ヒストリ記憶部３２に記憶したノードのうち最新である直前ノードから新ノードを示すポインタを作成する。
【００５０】
親子ポインタ作成手段１４１は、ヒストリ作成手段１４において、ポインタを作成する際に、新ノードに直前ノードを示す親ポインタを作成し、直前ノードに新ノードを示す子ポインタを作成する。
【００５１】
例えば、図１において、立体形状編集手段１２は、ノード５１に対応付けられた立体形状１０１の立体形状ステータスと、手描き動作によるキャラクターラインＣＬ１とに基づいて、立体形状１０１から立体形状１０２を編集する。そして、ノード作成手段１３は、立体形状１０２に対応する立体形状ステータスと、キャラクターラインＣＬ１に対応するデータ操作レコードとを有するノード５２を立体形状１０２に対応付けて作成する。そして、ヒストリ作成手段１４は、ノード５２をヒストリ記憶部３２に記憶する。その際に、ヒストリ記憶部３２に記憶したノードのうち最新である直前ノードのノード５１から新ノードのノード５２を示すポインタを作成する。そのポインタの作成によって、ノード５２にノード５１を示す親ポインタが作成され、ノード５１にノード５２を示す子ポインタが作成される。
【００５２】
ノード対応編集手段１５は、ヒストリ記憶部３２のうちからユーザによって指定された指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいて立体形状を編集すると共に、指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいてノード作成手段１３によって新たなノードを作成し、当該新たなノードをヒストリ作成手段１４によって記憶する。更に、指定ノードのポインタによって示されるノードに従って、更に立体形状を編集すると共に、ノード作成手段１３によって新たなノードを作成する。ここで、指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいて行われる立体形状の編集は、指定ノードの立体形状におけるデータ操作レコードを、最新のノードの立体形状ステータスに対応するように変換して行われる。
【００５３】
例えば、図１において、立体形状生成システム１００が、ノード５１においてキャラクターラインＣＬ３の手描き動作を受け付けてノード５１からノード５５に遷移したとする。ノード５５において、ノード対応編集手段１５は、ヒストリ記憶部３２のうちからユーザによって指定されたノード５３のキャラクターラインＣＬ２の手描き動作と、ノード５５の立体形状１１２とに基づいて立体形状１１３を編集すると共に、ノード５３のキャラクターラインＣＬ２の手描き動作と、立体形状１１３とに基づいてノード作成手段１３によってノード５６を作成し、ノード５６をヒストリ作成手段１４によって記憶する。更に、ノード５３のポインタによって示されるノード５４に従って、更に立体形状を編集すると共に、ノード作成手段１３によって新たなノードを作成する（後述する図４参照）。
【００５４】
ＵＮＤＯ手段１６は、ユーザから受け付けた操作に基づいて、現在の状態に対応するノードのデータ操作レコード及びノードの情報をスタック記憶部３３に積み上げて記憶し、当該ノードの親ポインタが示すノードに遷移する。スタック記憶部３３は、データを後入れ先出し（ＬＩＦＯ：Ｌａｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）の構造で記憶する。
【００５５】
ＲＥＤＯ手段１７は、ユーザから受け付けた操作に基づいて、ＵＮＤＯ手段１６によって遷移する前のノードに遷移すると共に、スタック記憶部３３の積み上げを下げる。ＲＥＤＯ手段１７は、ＵＮＤＯ手段１６によってスタック記憶部３３に積み上げて記憶されたノードの情報に基づいて、遷移する前のノードに遷移することができる。
【００５６】
例えば、後述する図６において、ＵＮＤＯ手段１６は、ユーザから受け付けたＵＮＤＯ操作に基づいて、ノード６４のデータ操作レコード、例えばミラーリングを、スタック記憶部３３に積み上げて記憶し、ノード６３に遡って遷移する。ＲＥＤＯ手段１７は、ユーザから受け付けたＲＥＤＯ操作に基づいて、ＵＮＤＯ手段１６によって遷移したノード６３からノード６４に戻って遷移すると共に、スタック記憶部３３の積み上げを下げる。
【００５７】
ＵＮＤＯ後編集手段１８は、ＵＮＤＯ手段１６によってノードに遷移した後に、立体形状編集手段１２によって立体形状を編集した場合は、ノード作成手段１３によって新たなノードを作成し、当該新たなノードをヒストリ作成手段１４によって記憶すると共に、スタック記憶部３３の積み上げを一つ下げる。ＲＥＤＯ手段１７は、ＵＮＤＯ後編集手段１８によって作成したノードにおいてユーザから操作を受け付けた場合は、当該ノードの立体形状ステータスと、スタック記憶手段から取り出したデータ操作レコードとに基づいて立体形状を編集し、ノード作成手段１３によって新たなノードを作成し、当該新たなノードをヒストリ作成手段１４によって記憶すると共に、スタック記憶部３３の積み上げを一つ下げる。
【００５８】
例えば、後述する図６において、ＵＮＤＯ手段１６によってノード６４からノード６１に遡って遷移した後に、キャラクターラインＣＬ３の手描き動作によって立体形状編集手段１２による立体形状４１２を編集した場合は、ノード作成手段１３によって新たなノード６５を作成し、ノード６５をヒストリ作成手段１４によって記憶すると共に、スタック記憶部３３の積み上げを一つ下げる。そして、ＲＥＤＯ手段１７は、ＵＮＤＯ後編集手段１８によって作成したノード６５においてユーザからＲＥＤＯ操作を受け付けた場合は、ノード６５の立体形状４１２と、スタック記憶部３３から取り出したデータ操作レコード、例えばキャラクターラインＣＬ２の手描き動作とに基づいて立体形状４１３を編集し、ノード作成手段１３によってノード６６を作成し、ノード６６をヒストリ作成手段１４によって記憶すると共に、スタック記憶部３３の積み上げを一つ下げる。
【００５９】
なお、ＵＮＤＯ手段１６によってノードに遷移した後に、立体形状編集手段１２によって立体形状を編集した場合は、スタック記憶部３３の積み上げを一つ下げるとしたが、設定によりスタック記憶部３３の積み上げは変えないとしてもよい。例えば、ＵＮＤＯ手段１６によってノード６４からノード６１に遡って遷移した後に、カメラ方向の設定を変えることによって編集された立体形状の新たなノードを作成し、設定によってスタック記憶部３３の積み上げを変えないとする。このような設定により、新たなノードにおけるカメラ方向を変えた立体形状に対して、スタック記憶部３３から取り出したデータ操作レコードによって、ノード６２〜ノード６４と同様の編集をＲＥＤＯ操作によって行うことができる。
【００６０】
ジャンプ手段１９は、ヒストリ記憶部３２のうちからユーザによって指定された指定ノードに遷移する。例えば、ジャンプ手段１９は、ユーザによるノードの指定を受け付け、受け付けたノードに遷移する。
【００６１】
履歴マーク作成手段２０は、ユーザによって指示された履歴マークにより、ノード作成手段１３によって新たなノードを作成し、当該新たなノードをヒストリ作成手段１４によって記憶すると共に、当該新たなノードに履歴マークを記憶する。ここで、履歴マークは、デザインの段階が基点となる又は特徴があるためにユーザによって付与されるマークである。ＵＮＤＯ手段１６及びＲＥＤＯ手段１７は、親ポインタが示すノードではなく、ユーザによって履歴マークされているノードのうち最も近いノードに遡って遷移し、戻るとしてもよい。ユーザは、ノードに遷移する場合に、途中にあるノードに煩わされることなく遷移し、戻ることができる。ジャンプ手段１９は、ユーザによる履歴マークの選択を受け付け、受け付けた履歴マークのノードに遷移する。
【００６２】
例えば、後述する図４において、履歴マーク作成手段２０は、ユーザによって指示された履歴マークにより、ノードＮ１を作成したとする（履歴マークを＊マークで示している）。履歴マークにより遷移するという設定の下では、ＵＮＤＯ手段１６は、ノードＮ４−１からノードＮ３−１ではなく、ユーザによって履歴マークされているノードのうち最も近いノードＮ１に遡って遷移し、戻りのノードＮ４−１の情報をスタック記憶部３３に記憶する。ＲＥＤＯ手段１７は、戻りのノードＮ４−１の情報を用いてノードＮ１からノードＮ４−１に戻ることができる。ジャンプ手段１９は、ユーザによる履歴マークのうちノードＮ１かノードＮ２−２かの選択を受け付け、受け付けた履歴マークのノードＮ１に遷移することができる。
【００６３】
ＵＮＤＯ手段１６及びジャンプ手段１９による遷移は、ノードの木構造を基本とした表示の中からユーザによって選択されたノードに遷移することができる。例えば、ノードに簡易図形（形状のサムネール図形等）を対応付けたり、任意若しくは自動的に名称を付与できるようにしておき、ＵＮＤＯ手段１６及びジャンプ手段１９は、ノードの簡易図形（形状のサムネール図形等）や名称等を木構造と共に表示し、表示された中からユーザによって選択されたノードや履歴マークに遷移することができる。このようにすることで、複数ある履歴マークのうち任意の履歴マークに遷移することができる。
【００６４】
立体形状生成システム１００は、立体形状の変形の規模によらない操作のロールバック、履歴マークにより任意の操作をセットとしてデザインのやり直しをサポートすることができる。
【００６５】
［記憶部３０］
記憶部３０は、本発明の処理に必要なコンピュータプログラム３１ａ等を記憶する記憶装置である。記憶部３０は、制御部１０と組み合わせてプログラムの実行に使用するメモリを含んでよい。
【００６６】
記憶部３０を実現するものとして、電気的、磁気的、光学的、電磁的に実現するものを含んでよい。より具体的には、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）等を含む半導体記憶装置、磁気ディスク等が含まれる。
【００６７】
記憶部３０は、プログラム記憶部３１と、ヒストリ記憶手段としてヒストリ記憶部３２と、スタック記憶手段としてスタック記憶部３３とを備える。プログラム記憶部３１は、本発明の処理を実行するコンピュータプログラム３１ａ等のプログラムを記憶する領域である。
【００６８】
ヒストリ記憶部３２は、ノードを記憶する。更に、ヒストリ記憶部３２は、立体形状の編集の順序を示すポインタによってノードを繋ぎ、ノードの木構造を構築し、記憶する。スタック記憶部３３は、上述の様にデータ操作レコード、ノードの情報等を積み上げて、後入れ先出し（ＬＩＦＯ：Ｌａｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）の構造で記憶する。
【００６９】
ここで、本発明でいうコンピュータとは、記憶装置、制御装置等を備えた情報処理装置をいい、立体形状生成システム１００は、記憶部３０、制御部１０等を備えた情報処理装置であり、本発明のコンピュータの概念に含まれる。
【００７０】
なお、立体形状生成システム１００を構成するハードウェアの数に制限はなく、必要に応じて１又は複数のハードウェアで構成してよい。また、複数のハードウェアで構成する場合には、通信回線（図示せず）を介して各ハードウェアを接続してもよい。更に、立体形状生成システム１００を、例えば、クライアント・サーバ形式にして、入出力のインタフェースをクライアント側で行い、処理をサーバ側で行う構成にしてもよい。
【００７１】
［処理フロー］
次に、処理の流れについて説明する。図３は、本実施形態に係る立体形状生成システム１００のメイン処理のフローチャートである。カレント立体形状ステータス及びカレントデータ操作レコードをカレントノードの立体形状ステータス及びデータ操作レコードとする。
【００７２】
まず、図３のステップＳ（以下、単にＳという。）１０１では、制御部１０は、ユーザからの操作を受け付ける。受け付ける操作には、ノードの指定、ＵＮＤＯ操作、ＲＥＤＯ操作、ジャンプの指定、履歴マークの指示、立体形状を編集するための手描き動作や処理方法の指定等がある。
【００７３】
Ｓ１０２において、制御部１０は、Ｓ１０１で受け付けた操作がノードの指定か否かを判断する。より具体的には、制御部１０は、デジタイザ１から入力した位置データがモニタ５に表示しているノードに対応しているか否かを判断する。この判断がＹＥＳの場合は、処理をＳ１０３に移し、ＮＯの場合は、処理をＳ１０４に移す。
【００７４】
Ｓ１０３において、制御部１０は、指定されたノードのデータ操作レコードと、カレント立体形状ステータスとに基づいて立体形状を編集すると共に、指定ノードのデータ操作レコードと、カレント立体形状ステータスとに基づいて新たなノードを作成し、当該新たなノードのポインタを作成してヒストリ記憶部３２に記憶する。更に、制御部１０は、指定ノードのポインタによって示されるノードに従って、更に立体形状を編集すると共に、新たなノードを作成する。制御部１０は、カレント立体形状ステータス及びカレントデータ操作レコードを、作成した新たなノードの立体形状ステータス及びデータ操作レコードとする。その後、制御部１０は、処理をＳ１０１に移す。
【００７５】
Ｓ１０４において、制御部１０は、Ｓ１０１で受け付けた操作がＵＮＤＯ操作か否かを判断する。より具体的には、制御部１０は、デジタイザ１から入力した位置データがモニタ５に表示しているＵＮＤＯボタンに対応しているか否かを判断する。この判断がＹＥＳの場合は、処理をＳ１０５に移し、ＮＯの場合は、処理をＳ１０６に移す。
【００７６】
Ｓ１０５において、制御部１０は、ノードを遡って遷移する。より具体的には、制御部１０は、カレントノードのデータ操作レコード及びカレントノードの情報をスタック記憶部３３に積み上げて記憶し、カレントノードの親ポインタが示すノードに遷移する。履歴マークによるＵＮＤＯ操作の場合は、指定された履歴マークのノードに遷移する。その後、制御部１０は、処理をＳ１０１に移す。
【００７７】
Ｓ１０６において、制御部１０は、Ｓ１０１で受け付けた操作がＲＥＤＯ操作か否かを判断する。より具体的には、制御部１０は、デジタイザ１から入力した位置データがモニタ５に表示しているＲＥＤＯボタンに対応しているか否かを判断する。この判断がＹＥＳの場合は、処理をＳ１０７に移し、ＮＯの場合は、処理をＳ１０８に移す。
【００７８】
Ｓ１０７において、制御部１０は、ノードを戻って遷移する。より具体的には、制御部１０は、スタック記憶部３３に記憶されたノードの情報に基づいて、Ｓ１０５において遷移する前のノードに遷移すると共に、スタック記憶部３３の積み上げを下げる。制御部１０は、ＵＮＤＯ後編集によって作成したノードにおいてのＲＥＤＯの場合は、当該ノードの立体形状ステータスと、スタック記憶部３３から取り出したデータ操作レコードとに基づいて立体形状を編集し、新たなノードを作成し、当該新たなノードのポインタを作成してヒストリ記憶部３２に記憶すると共に、スタック記憶部３３の積み上げを一つ下げる。その後、制御部１０は、処理をＳ１０１に移す。
【００７９】
Ｓ１０８において、制御部１０は、Ｓ１０１で受け付けた操作がジャンプか否かを判断する。より具体的には、制御部１０は、デジタイザ１から入力した位置データがモニタ５に表示しているジャンプボタンに対応しているか否かを判断する。この判断がＹＥＳの場合は、処理をＳ１０９に移し、ＮＯの場合は、処理をＳ１１０に移す。
【００８０】
Ｓ１０９において、制御部１０は、ノードに遷移する。より具体的には、制御部１０は、ヒストリ記憶部３２に基づいてノードの木構造を基本とした表示をモニタ５に表示し、ノードの指定を受け付け、受け付けたノードの立体形状ステータス及びデータ操作レコードをカレント立体形状ステータス及びカレントデータ操作レコードとすることにより指定されたノードに遷移する。その後、制御部１０は、処理をＳ１０１に移す。
【００８１】
Ｓ１１０において、制御部１０は、Ｓ１０１で受け付けた操作が履歴マークか否かを判断する。より具体的には、制御部１０は、デジタイザ１から入力した位置データがモニタ５に表示している履歴マークボタンに対応しているか否かを判断する。この判断がＹＥＳの場合は、処理をＳ１１１に移し、ＮＯの場合は、処理をＳ１１２に移す。
【００８２】
Ｓ１１１において、制御部１０は、ノードを作成し、履歴マークを記憶する。より具体的には、制御部１０は、立体形状を編集している現在の状態から立体形状ステータス及びデータ操作レコードを作成し、新たなノードに対応付け、ポインタを作成してヒストリ記憶部３２に記憶すると共に、履歴マークを記憶する。その後、制御部１０は、処理をＳ１０１に移す。
【００８３】
Ｓ１１２において、制御部１０は、立体形状の編集をする。より具体的には、制御部１０は、デジタイザ１によって入力した手描き動作や処理方法の指定と、カレント立体形状ステータスとに基づいて立体形状を編集する。その後、制御部１０は、処理をＳ１１３に移す。
【００８４】
Ｓ１１３において、制御部１０は、ノードを作成し、記憶する。より具体的には、制御部１０は、Ｓ１１２において編集された立体形状に、受け付けた手描き動作や処理方法の指定に対応したデータ操作レコード及び立体形状に対応した立体形状ステータスを対応付けたノードを作成し、当該ノードのポインタを作成し、当該ノードをヒストリ記憶部３２に記憶する。ＵＮＤＯによってノードに遷移した後に、立体形状を編集した場合は、新たなノードを作成し、当該新たなノードのポインタを作成してヒストリ記憶部３２に記憶すると共に、設定によりスタック記憶部３３の積み上げを一つ下げる。その後、制御部１０は、処理をＳ１０１に移す。
【００８５】
図４は、本実施形態に係る立体形状とノードとの関係を示す図である。
【００８６】
図４は、ノードＮ１からノードＮ４−１が立体形状１１１から立体形状１１４にそれぞれ対応し、ノードＮ２−２からノードＮ４−２が立体形状１２１から立体形状１２３にそれぞれ対応し、ノードＮ１及びノードＮ２−２が履歴マーク（＊マーク）されていることを示している。そして、立体形状生成システム１００がノードＮ１において、ユーザから受け付けた手描き動作であるキャラクターラインＣＬ１と、立体形状１１１とに基づいて立体形状を編集し、ノードＮ２−１を作成したことを示している。同様に、立体形状生成システム１００がノードＮ２−１において、ユーザから受け付けた手描き動作であるキャラクターラインＣＬ２と、立体形状１１２とに基づいて立体形状を編集し、ノードＮ３−１を作成し、ユーザから受け付けたミラーリング操作と、立体形状１１３とに基づいて立体形状を編集し、ノードＮ４−１を作成したことを示している。そして、ユーザによってノードＮ１にジャンプ指定されたことを受け付けて、立体形状生成システム１００がノードＮ４−１からノードＮ１に遷移したことを矢印１３１によって示している。そして、ユーザから受け付けた手描き動作であるキャラクターラインＣＬ３と、立体形状１１１とに基づいて立体形状１２１を編集してノードＮ２−２を作成したことを示している。更に、ノードＮ２−２において、ユーザから指定されたノードＮ３−１によって立体形状１２２を編集してノードＮ３−２を作成し、更に、ノードＮ３−１の子ポインタによって示されるノードＮ４−１によって立体形状１２３を編集してノードＮ４−２を作成したことを示している。
【００８７】
図５は、本実施形態に係るヒストリを示す図である。
【００８８】
図５（１）は、ヒストリ記憶部３２に記憶されているノードＮ１０１からノードＮ１０５−３によって構成される木構造のヒストリ２０１を示している。ヒストリ２０１は、ヒストリ２０１の一部であるツリー２１１をノードＮ１０３−２に接続し、ヒストリ３０１のノードＮ２０２−１及びＮ２０３−２をノードＮ１０２−２及びＮ１０３−３に接続して構築されていることを示している。
【００８９】
図５（２）は、ヒストリ記憶部３２に記憶されているノードＮ２０１からノード２０３−２によって構成される木構造のヒストリ３０１を示している。
【００９０】
立体形状生成システム１００は、複数のヒストリ、例えばヒストリ２０１，３０１を各々のセッションとして管理する。したがって、ヒストリ２０１に基づくセッションによって、ノードに対応付けられた立体形状と、ヒストリ３０１に基づくセッションによって、ノードに対応付けられた立体形状とをモニタ５に並べて表示し、見比べたりすることができる。
【００９１】
図６は、本実施形態に係るＵＮＤＯ操作及びＲＥＤＯ操作と、編集される立体形状との関係を示す図である。図６において、ＵＮＤＯ処理、ＵＮＤＯ後編集処理、及びＲＥＤＯ処理と、スタック記憶部３３の記憶との関係を説明する。
【００９２】
図６は、立体形状生成システム１００が立体形状４０４を編集したノード６４から、ＵＮＤＯ操作によって、立体形状４０１に対応付けられたノード６１まで遷移し、ミラーリング、キャラクターラインＣＬ２、及びキャラクターラインＣＬ１に対応するデータ操作レコードをスタック記憶部３３に積み上げて記憶していることを示している。そして、ユーザの手描き動作に基づいてキャラクターラインＣＬ３による立体形状４１２の編集を行い、立体形状４１２に対応づけられた新たなノード６５を作成し、ＵＮＤＯ後の編集なので、スタック記憶部３３の積み上げを一つ下げたことを示している。そして、ＲＥＤＯ操作によって、スタック記憶部３３から取り出したデータ操作レコード、例えばキャラクターラインＣＬ２、による立体形状４１３の編集を行い、立体形状４１３に対応づけられた新たなノード６６を作成し、スタック記憶部３３の積み上げを一つ下げ、更に、ＲＥＤＯ操作によって、スタック記憶部３３から取り出したデータ操作レコード、例えばミラーリング、による立体形状４１４の編集を行い、立体形状４１４に対応づけられた新たなノード６７を作成していることを示している。
【００９３】
実施例によれば、立体形状生成システム１００は、二次元平面の位置を示す位置データをユーザの動作に応じて入力し、入力したユーザの動作に基づいて立体形状を第１の立体形状から第２の立体形状に編集し、編集された第２の立体形状に、第１の立体形状から第２の立体形状に編集するためのユーザの動作に対応したデータであるデータ操作レコードと、第２の立体形状に対応したデータである立体形状ステータスとを有するノードを対応付けて作成し、作成したノードをヒストリ記憶部３２に記憶する。そして、立体形状生成システム１００は、ヒストリ記憶部３２のうちからユーザによって指定された指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいて立体形状を編集すると共に、指定ノードのデータ操作レコードと、最新のノードの立体形状ステータスとに基づいて新たなノードを作成し、当該新たなノードをヒストリ記憶部３２に記憶する。そして、立体形状生成システム１００は、新ノードをヒストリ記憶部３２に記憶する際に、ヒストリ記憶部３２に記憶したノードのうち最新の直前ノードから新ノードを示すポインタを作成する。そして、立体形状生成システム１００は、指定ノードのポインタによって示されるノードに従って、更に立体形状を編集すると共に、新たなノードを作成する。
【００９４】
更に、立体形状生成システム１００は、ヒストリ作成において、ポインタを作成する際に、新ノードに直前ノードを示す親ポインタを作成し、直前ノードに新ノードを示す子ポインタを作成する。そして、ユーザから受け付けたＵＮＤＯ操作に基づいて、当該ノードのデータ操作レコード及びノードの情報をスタック記憶部３３に積み上げて記憶し、当該ノードの親ポインタが示すノードに遷移し、ユーザから受け付けたＲＥＤＯ操作に基づいて、ＵＮＤＯ操作によって遷移する前のノードに遷移すると共に、スタック記憶部３３の積み上げを一つ下げる。そして、立体形状生成システム１００は、ＵＮＤＯ操作によってノードに遷移した後に、立体形状を編集した場合は、新たなノードを作成し、当該新たなノードをヒストリ記憶部３２に記憶すると共に、設定により、スタック記憶部３３の積み上げを一つ下げる。そして、当該新たなノードにおいてＲＥＤＯ操作を受け付けた場合は、当該新たなノードの立体形状ステータスと、スタック記憶手段から取り出したデータ操作レコードとに基づいて立体形状を編集し、新たなノードを作成し、当該ノードをヒストリ記憶部３２に記憶すると共に、スタック記憶部３３の積み上げを一つ下げる。
【００９５】
更に、立体形状生成システム１００は、ヒストリ記憶部３２のうちからユーザによって指定されたノードに遷移する。そして、ユーザによって指示された履歴マークにより、新たなノードを作成する。
【００９６】
したがって、立体形状生成システム１００は、立体形状のデザインにおいて、デザイナが指示した任意の状態を記憶することができ、デザイナがやり直したいと望む状態に遷移することができ、遷移後手描き動作や処理方法の指定によって修正した後は、既に行った手描き動作や処理方法の指定に基づいて続けて立体形状の編集を行うことができるので、デザインを途中からやり直す場合や、デザインの部分的な変更を行う場合等の作業を容易にすることができる。
【符号の説明】
【００９７】
１      デジタイザ
２      板状部材
３      ペン部材
５      モニタ
１０    制御部
１１    受付手段
１２    立体形状編集手段
１３    ノード作成手段
１４    ヒストリ作成手段
１４１  親子ポインタ作成手段
１５    ノード対応編集手段
１６    ＵＮＤＯ手段
１７    ＲＥＤＯ手段
１８    ＵＮＤＯ後編集手段
１９    ジャンプ手段
２０    履歴マーク作成手段
３０    記憶部
３１    プログラム記憶部
３１ａ  コンピュータプログラム
３２    ヒストリ記憶部
３３    スタック記憶部
１００  立体形状生成システム
【図１】
2010277305.tif 000003
【図２】
2010277305.tif 000004
【図３】
2010277305.tif 000005
【図４】
2010277305.tif 000006
【図５】
2010277305.tif 000007
【図６】
2010277305.tif 000008