(57)【特許請求の範囲】
【請求項１】
ディスプレイに表示される編集対象オブジェクトの属性を変更するオブジェクト属性変更処理装置であり、
ディスプレイに表示された処理対象である編集対象オブジェクトに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定し、該重なり判定に基づいて、前記編集対象オブジェクトの属性変更モードへの切り換え処理を実行する制御手段を有し、
前記制御手段は、編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更する処理を実行する構成を有することを特徴とするオブジェクト属性変更処理装置。
【請求項２】
前記制御手段は、
前記編集対象オブジェクトの一部あるいは全部が、前記定義領域とその位置を共有したことを条件として、前記編集対象オブジェクトの属性を変更するモード（状態）とする制御を実行する構成を有することを特徴とする請求項１に記載のオブジェクト属性変更処理装置。
【請求項３】
前記制御手段は、
前記編集対象オブジェクトに基づくバウンディングボックスの一部あるいは全部が、前記定義領域とその位置を共有したことを条件として、前記編集対象オブジェクトの属性を変更するモード（状態）とする制御を実行する構成を有することを特徴とする請求項１に記載のオブジェクト属性変更処理装置。
【請求項４】
ディスプレイに表示される編集対象オブジェクトの属性を変更するオブジェクト属性変更処理方法であり、
ディスプレイに表示された処理対象である編集対象オブジェクトに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定する重なり判定ステップと、
前記重なり判定に基づいて、前記編集対象オブジェクトの属性変更モードへの切り換え処理を実行するモード切り換えステップと、
前記編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更するオブジェクト属性変更ステップと、
を有することを特徴とするオブジェクト属性変更処理方法。
【請求項５】
前記オブジェクト属性変更処理方法において、
前記重なり判定ステップは、
前記編集対象オブジェクトの一部あるいは全部が、前記定義領域とその位置を共有したことを条件として、重なり判定を行なうことを特徴とする請求項４に記載のオブジェクト属性変更処理方法。
【請求項６】
前記オブジェクト属性変更処理方法において、
前記重なり判定ステップは、
前記編集対象オブジェクトに基づくバウンディングボックスの一部あるいは全部が、前記定義領域とその位置を共有したことを条件として、重なり判定を行なうことを特徴とする請求項４に記載のオブジェクト属性変更処理方法。
【請求項７】
ディスプレイに表示される編集対象オブジェクトとしての３次元モデルの属性を変更する３次元モデル処理装置であり、
ディスプレイに表示された処理対象である３次元モデルに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定し、該重なり判定に基づいて、前記３次元モデルの属性変更モードへの切り換え処理を実行する制御手段を有し、
前記制御手段は、編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更する処理を実行する構成を有することを特徴とする３次元モデル処理装置。
【請求項８】
ディスプレイに表示される編集対象オブジェクトとしての３次元モデルの属性を変更する３次元モデル処理方法であり、
ディスプレイに表示された処理対象である３次元モデルに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定する重なり判定ステップと、
前記重なり判定に基づいて、前記３次元モデルの属性変更モードへの切り換え処理を実行するモード切り換えステップと、
前記編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更するオブジェクト属性変更ステップと、
を有することを特徴とする３次元モデル処理方法。
【請求項９】
ディスプレイに表示される編集対象オブジェクトの属性を変更するオブジェクト属性変更処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムを提供するプログラム提供媒体であって、前記コンピュータ・プログラムは、
ディスプレイに表示された処理対象である編集対象オブジェクトに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定する重なり判定ステップと、
前記重なり判定に基づいて、前記編集対象オブジェクトの属性変更モードへの切り換え処理を実行するモード切り換えステップと、
前記編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更するオブジェクト属性変更ステップと、
を有することを特徴とするプログラム提供媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オブジェクト属性変更処理装置、オブジェクト属性変更処理方法、および３次元モデル処理装置、３次元モデル処理方法、並びにプログラム提供媒体に関する。さらに、詳細には、例えばＰＣ、ＣＡＤ等のディスプレイに表示されたオブジェクトに対する属性変更処理を、オペレータが容易に理解できるとともに操作性を向上させた処理として実行可能としたオブジェクト属性変更処理装置、オブジェクト属性変更処理方法、および３次元モデル処理装置、３次元モデル処理方法、並びにプログラム提供媒体に関する。
【０００２】
【従来の技術】
従来の画像処理システムにおいて、編集対象のオブジェクトのサイズ変更のようなオブジェクト属性変更処理を実行しようとする場合、アプリケーションウインドウの上部に位置するメニューの中から該当するメニューを選択して、プルダウンを実行して、さらに、所望のサイズメニューを選択して実行するといった煩雑な処理が要求される。あるいは、キーボード上のキーの組み合わせで、上述と同様のメニュー表示を実行して、メニュー選択を実行して属性変更処理を行なう構成もある。さらに、ディスプレイに表示されるサイズ変更処理を示すアイコンを選択することによってサイズ変更処理を実行させる処理形態も実現されている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記の従来の方法、すなわち
１）メニューによる属性変更処理方法
２）キーの組み合わせによる属性変更処理方法
３）アイコンを選択することによる属性変更処理方法
のいずれにおいても、次のような問題がある。
ユーザーは編集中のオブジェクトに興味があるのに、サイズを変更している間、その興味対象から別のものに注目対象を移さなければならない。また、１）、２）の処理を実行するためには、メニューの場所等を知っていることが必要であり、ある程度システムに慣れていることが要請される。さらに、上記１）、２）、３）に共通する課題は、該当処理が、どのオブジェクトに対する処理であるかを明示する方法（いわゆる選択（ｓｅｌｅｃｔ）操作）が必要であったり、処理順や組み合わせなどの約束事をユーザーに強いたりすることである。これら、従来技術における属性変更処理方法は、いずれもインターフェースとしてユーザーにとって「直感的」でない。
【０００４】
本発明は、このような従来技術における問題点を解決することを目的とするものであり、コンピュータを利用したオブジェクト編集システムの作業を容易に実行可能とし、コンピュータのマウス、キーボード等、各種の入力装置の扱いに不慣れな低年齢の幼児や高齢者にとってのインターフェースとして有効なシステム、方法を実現し、デジタル技術を使った情操教育玩具や、オンラインショッピングまたはコミュニケーションツールへの応用が適用可能なオブジェクト属性変更処理装置、オブジェクト属性変更処理方法、および３次元モデル処理装置、３次元モデル処理方法、並びにプログラム提供媒体を提供することを目的とする。
【０００５】
【課題を解決するための手段】
本発明の第１の側面は、
ディスプレイに表示される編集対象オブジェクトの属性を変更するオブジェクト属性変更処理装置であり、
ディスプレイに表示された処理対象である編集対象オブジェクトに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定し、該重なり判定に基づいて、前記編集対象オブジェクトの属性変更モードへの切り換え処理を実行する制御手段を有し、
前記制御手段は、編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更する処理を実行する構成を有することを特徴とするオブジェクト属性変更処理装置にある。
【００１４】
さらに、本発明の第２の側面は、
ディスプレイに表示される編集対象オブジェクトの属性を変更するオブジェクト属性変更処理方法であり、
ディスプレイに表示された処理対象である編集対象オブジェクトに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定する重なり判定ステップと、
前記重なり判定に基づいて、前記編集対象オブジェクトの属性変更モードへの切り換え処理を実行するモード切り換えステップと、
前記編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更するオブジェクト属性変更ステップと、
を有することを特徴とするオブジェクト属性変更処理方法にある。
【００２２】
さらに、本発明の第３の側面は、
ディスプレイに表示される編集対象オブジェクトとしての３次元モデルの属性を変更する３次元モデル処理装置であり、
ディスプレイに表示された処理対象である３次元モデルに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定し、該重なり判定に基づいて、前記３次元モデルの属性変更モードへの切り換え処理を実行する制御手段を有し、
前記制御手段は、編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更する処理を実行する構成を有することを特徴とする３次元モデル処理装置にある。
【００２５】
さらに、本発明の第４の側面は、
ディスプレイに表示される編集対象オブジェクトとしての３次元モデルの属性を変更する３次元モデル処理方法であり、
ディスプレイに表示された処理対象である３次元モデルに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定する重なり判定ステップと、
前記重なり判定に基づいて、前記３次元モデルの属性変更モードへの切り換え処理を実行するモード切り換えステップと、
前記編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更するオブジェクト属性変更ステップと、
を有することを特徴とする３次元モデル処理方法にある。
【００２８】
さらに、本発明の第５の側面は、
ディスプレイに表示される編集対象オブジェクトの属性を変更するオブジェクト属性変更処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムを提供するプログラム提供媒体であって、前記コンピュータ・プログラムは、
ディスプレイに表示された処理対象である編集対象オブジェクトに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定する重なり判定ステップと、
前記重なり判定に基づいて、前記編集対象オブジェクトの属性変更モードへの切り換え処理を実行するモード切り換えステップと、
前記編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更するオブジェクト属性変更ステップと、
を有することを特徴とするプログラム提供媒体にある。
【００２９】
本発明の第５の側面に係るプログラム提供媒体は、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ・プログラムをコンピュータ可読な形式で提供する媒体である。媒体は、ＣＤやＦＤ、ＭＯなどの記憶媒体、あるいは、ネットワークなどの伝送媒体など、その形態は特に限定されない。
【００３０】
このようなプログラム提供媒体は、コンピュータ・システム上で所定のコンピュータ・プログラムの機能を実現するための、コンピュータ・プログラムと提供媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、該提供媒体を介してコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の他の側面と同様の作用効果を得ることができるのである。
【００３１】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００３２】
【発明の実施の形態】
以下に本発明のオブジェクト属性変更処理装置、オブジェクト属性変更処理方法、および３次元モデル処理装置、３次元モデル処理方法、並びにプログラム提供媒体の実施の形態を説明する。以下、具体的な実施例として５つの形態、実施例１〜５に分けて説明する。実施例１から実施例５は編集対象オブジェクト（「編集対象物体」と呼ぶこともある）のサイズ変更（以降、「スケーリング」と呼ぶこともある）に関する実現方法である。以下の実施例においては物体の属性の一つである「サイズ（大きさ）」を変更するための方法・装置として説明するが、これは例えば対象物体の色や明るさや光沢度や構成するポリゴンの数などといった、オブジェクトの様々な属性を変更するためにも同じ方法・装置を適用することができる。
【００３３】
以後「定義領域」と呼ぶのは、編集対象オブジェクトがその領域に重なった場合にサイズ変更が行なうことができるようになる、領域のことである。これより以降の説明の中で「仮想空間」と呼ぶのは計算機（コンピュータ）内で編集を行なう空間である。編集対象が２次元であれば仮想空間は２次元空間であり、３次元であれば仮想空間は３次元空間となる。
【００３４】
実施例１から実施例３は定義領域と対象オブジェクトが領域を共有している間、サイズ変更モードに入り、その後の相対関係の変化により連続的なサイズの変更を行なう。実施例４では定義領域と対象オブジェクトが領域を共有する度に、定められた量だけサイズ変更を行なう。実施例５ではこれまでの４つの実施例にボタンのＯＮ／ＯＦＦを組み合わせた形態を論じる。これら複数の実施例に共通する構成部分の説明をまず行なう。
【００３５】
［各実施例共通部］
本発明の処理システムはコンピュータを用いた、図や絵あるいは３次元物体（これらを総称して編集対象オブジェクトと呼ぶ）などのコンピュータ内での編集処理を実行する編集装置である。
【００３６】
図１は、本発明を適用したオブジェクト属性変更処理装置の制御手段を中心とするハードウェア構成例を示すブロック図である。処理プログラムを実行する演算処理回路１０１と、処理プログラムが格納されるプログラムメモリ１０２と、処理データを格納するデータメモリ１０３と、編集対象オブジェクトの位置・属性や定義領域の位置・属性や編集内容などの情報を格納するデータメモリ１０３と、処理対象となるオブジェクトである図形、３次元物体、定義領域、あるいはユーザーへの指示などを描画するための画像情報を格納するフレームメモリ１０４と、フレームメモリ１０４に格納された画像信号を表示する画像表示装置１０５と、マウスや各種センサなどを構成要素として持つ（詳細は各実施例にて述べる）入力装置１０６と、編集対象物体あるいは編集内容などを記憶する外部記憶装置１０７と、各回路を接続してプログラムやデータを伝送するバス１０８とを備えている。
【００３７】
外部記憶装置１０７は、ハードディスクドライブ（ＨＤＤ）や、光ディスクなどのランダムアクセスが可能な記憶媒体が望ましいがテープストリーマーなどのランダムアクセスの不得手な記憶媒体でも構成可能であるしメモリースティックに代表される不揮発性の半導体メモリでもよい。あるいはネットワーク接続された他のシステムの外部記憶装置でもよい。またそれらの組み合わせでもよい。外部記憶装置１０７には、プログラムや編集対象オブジェクト情報、例えば３次元モデル情報が格納される。データメモリ１０３に格納されるオブジェクトに関する情報やツールの状態など、プログラムの処理に必要とされる情報を外部記憶装置１０７に格納することも可能である。
【００３８】
入力装置１０６では、各種入力デバイスからの計測値を取得する。編集対象オブジェクトが３次元モデルである場合は、編集対象オブジェクトである３次元モデルに対応する３次元センサ、及び編集処理ツールの位置ならびに姿勢を更新するために、３次元センサや３次元マウスなどの３次元入力デバイスの計測値を取得する。例えば、オペレータがその位置、姿勢を自由に変更可能な３次元センサが入力装置として使用可能である。なお、本発明の編集装置は、２次元図形にも適用可能であり、マウス、タブレットなどの２次元入力デバイスも使用可能である。また、キーボードあるいは、オン／オフの状態を持つプッシュボタンなどから、各種入力値を取得する構成として各種の指示入力、例えば編集ツールの設定、切り換え処理等を行なうように構成してもよい。以下の説明では、オフの状態からオンの状態になることを「ボタンが押された」、オフの状態からオンの状態になることを「ボタンが放された」、ボタンが押されてからすぐに放される動作を「ボタンがクリックされた」と呼ぶこととする。また、これらすべてのボタン操作による指示入力をイベント入力と呼ぶ。
【００３９】
データメモリ１０３は、例えば編集オブジェクトが３次元モデルである場合、３次元モデルの位置ならびに姿勢情報や、表面属性情報などの様々な３次元モデル情報が格納される。３次元モデル情報は、例えば、ポリゴンやボクセル、NURBSなどの自由曲面などによって表現するためのパラメータの情報である。
【００４０】
演算処理回路１０１では、入力装置から得られた計測値を基に、編集対象オブジェクトの位置等を更新する。編集対象が３次元モデルである場合は、３次元モデルと編集ツールの位置ならびに姿勢情報を更新し、必要であればデータメモリ１０３に格納されている３次元モデル情報を変更する。例えば、コンピュータグラフィックスで表現された３次元モデル表面の形状や色などの表面情報を変更するための処理が演算処理回路１０１において実行され、データメモリ１０３に格納されている３次元オブジェクトの表面の色等の属性情報を変更する。
【００４１】
画像表示装置１０５には、編集対象オブジェクトとして、例えば３次元モデル、あるいは２次元図形等が表示される。さらに、編集対象オブジェクトに対して拡大等の属性変更変形、ペイント等、各種処理を施すためのツール（またはポインタ）が表示される。
【００４２】
編集対象が３次元モデルである場合、編集ツールは、ツール操作用３次元センサの操作に応じて位置ならびに姿勢情報が変更される構成が好ましい。編集対象オブジェクトが３次元モデルである場合は、画像表示装置１０５に表示された３次元モデルはオブジェクトは、３次元モデル操作用３次元センサの操作に応じて位置ならびに姿勢情報が変更可能な構成とすることが好ましい。３次元モデル操作用３次元センサ、ツール操作用３次元センサは、磁気センサ、超音波センサ等によって構成され、磁気、あるいは超音波により、それぞれの位置、姿勢情報が取得される。なお、３次元モデルを動かす必要がなければ、３次元モデル操作用３次元センサは必ずしも必要とはしない。この場合は、編集ツールのみの操作で固定した３次元モデルに対する拡大、ペイント、変形等の処理を行なう。以下、本発明の具体的な実施例について、それぞれ詳細に説明する。
【００４３】
［実施例１］
実施例１で示すのは編集対象オブジェクトの位置が変化して、サイズ変更のための定義領域を固定とした構成例である。コンピュータのディスプレイ上での処理イメージを図２に示す。画面２−１で示す２０１はサイズ変更のための定義領域、２０２は編集対象オブジェクトである。編集対象オブジェクト２０２はユーザーが、編集対象オブジェクト２０２に対応する入力装置からの入力により任意の位置に移動でき、定義領域２０１は編集作業を行なう空間（あるいは平面）内の決まった位置に配置される。
【００４４】
編集対象オブジェクト２０２を移動するためには図１で示した入力装置１０６を構成するものの１つとしてマウスを用いることができる。図３にマウスを入力装置として用いた場合の操作状況を示す図を示す。位置入力装置はマウスに限定されるものではなく例えば図４のようにタブレットなどのほかの入力装置を利用することが可能である。
【００４５】
タブレットを利用した例がマウスを使った例に対し有利なのは、図４に示すように仮想空間上の定義領域からタブレットの座標空間上に写像した部分に物理的に枠４０１を設けることで作業領域内の定義領域の存在位置をユーザーにより直接的に知らしめることのできる点にある。編集対象システムが３次元のＣＧ（コンピュータグラフィックス）あるいはＣＡＤ（コンピュータ支援設計）のシステムである場合には入力装置が３次元センサ（３次元タブレット、磁気センサ、光学センサ、超音波センサなどのセンサあるいはそれらの組み合わせ）を利用する。以下の説明においてはこれらの位置入力用のデバイスを総称してポインティングデバイスと呼ぶこととする。
【００４６】
図２に戻り操作概要の説明を続ける。画面２−２に示すように編集対象オブジェクト２０２が定義領域２０１とその領域を共有するときに対象物体のサイズを変更できるモードに入る。このモード変更は、画面２-２,画面２−３に示すような、編集対象オブジェクト２０２を囲む識別可能なインディケータ２０３を表示、非表示とすることでオペレータに知らせる構成とする。画面２-２,画面２−３に示すようなインディケータ２０３を表示することで、表示でサイズ変更モードに入ったことがユーザーによって把握される。ただし、この表示は、本発明の構成において必要不可欠ではない。また、インディケータの形態も様々な形態が適用可能である。例えば編集対象オブジェクトの濃淡の反転表示等の形態としてもよい。
【００４７】
定義領域２０１内で対象物体を移動すると移動方向と移動量に応じてサイズを変更する（画面２−３）。すなわち編集対象のオブジェクトが定義領域と重なりを持ったときから重なりがなくなったときまでの移動量に基づきオブジェクトのサイズ変更を行なう。ここでは、モードの切り換えを定義領域２０１と編集対象オブジェクト２０２とが、「重なりを持つかどうか」を判定することによって行なう構成としている。「重なりを持つかどうか」の判定処理としては、例えば次に挙げる手法のいずれかを適用できる。
【００４８】
（１）編集対象オブジェクト２０２を表現するモデルと定義領域２０１を表現するモデル間で論理的（Ｂｏｏｌｅａｎ）演算が可能であれば、二つの論理積が空であるか否かで重なりを知ることができ、この論理積によって「重なりを持つかどうか」を判別する。このアプローチでは両者の本当の物理的な重なりを計算できる。ただし、２次元世界では計算が簡単であるが、３次元が編集対象空間であるとボリュームデータ（ボクセル）を使う場合やポリゴンモデルやパラメトリックな曲線面を使った場合のいずれにせよ扱うデータ量や計算コストが大きくなる。
【００４９】
（２）編集対象ならびに定義領域にはバウンディングボックスと呼ばれる、「対象物体を含む最小の長方形（２次元の場合）や直方体（３次元の場合）」が定義できる。この領域情報を常に定義領域２０１、編集対象オブジェクト２０２のそれぞれに属性として保有する構成とする。定義領域２０１、編集対象オブジェクト２０２の各々のバウンディングボックス同士の重なりを検出することにより、「重なりを持つかどうか」を判別する。バウンディングボックスの例は２次元の場合は図５（ａ）、３次元の場合は図５（ｂ）のようになる。
【００５０】
表示されている定義領域の境界がそのままバウンディングボックスであるとインターフェースとしては直感性が増加する。重なりの判定方法は以下の二つの方法が考えられる。このバウンディングボックスを用いた重なり判定方法には、さらに異なる態様での判定方法がある。
【００５１】
（２−１）部分的に少しでも重なりがあった場合を「重なった」とする方法。これは、図６に示すようにバウンディングボックス同士が、その一部領域で重なりを持ったとき、「重なった」と判定する方法である。例えば３次元空間を対象とすると、オブジェクトのバウンディングボックスが図６に示すバウンディングボックス６０１、定義領域（＝自身のバウンディングボックス）がバウンディングボックス６０２であるとき、ボックス同士の重なり６０３があるかどうかをチェックする。
【００５２】
（２−２）一方のバウンディングボックスが他方のボックスに完全に包含されるときに「重なった」とする方法。
これは図７に示すように、いずれかのバウンディングボックスが、他のバウンディングボックスに対して全領域で重なりを持ったとき、「重なった」と判定する方法である。３次元モデルの例では図７のような関係になったとき重なりが有ると判定する。図７では一方のバウンディングボックス７０１が他方のバウンディングボックス７０２に完全に含まれる構成となっている。
【００５３】
ただし、図２に示す画面２−２の方法を適用する場合はどちらかのバウンディングボックスが必ず他方に包含されるための制約が必要となる。例えば３次元のバウンディングボックスの場合、いずれかのバウンディングボックスがｘ，ｙ，ｚ方向で他方のバウンディングボックスより小さいことが必要となる。これらの制約を考慮すると、前者（２−１）の手法がより現実的である。ただ、バウンディングボックスは対象物体の形状によっては予想より大きくなる場合が多く、この場合には重なっていないのに重なっていると判定される場合もあることが注意点としてあげられる。例を挙げると、図８において編集対象オブジェクト８０１が図のような形状であるとき、そのバウンディングボックスはバウンディングボックス８０２となる。バウンディングボックス８０２は、定義領域８０３と重なり８０４を持つが、オブジェクト８０１は定義領域８０３との重なりは持っていない。このような形状の場合には、注意が必要である。
【００５４】
（３）編集対象オブジェクトに関連付けられた点が、定義領域のバウンディングボックス内にあるかどうかを判定するアプローチ。編集対象オブジェクトに関連付けられた点をどのように決定するかが鍵になるが、これに対しては、（３−１）オブジェクトのバウンディングボックスの重心を用いる方法。（３−２）オブジェクトそのものの重心を計算する方法。（３−３）ポインティングデバイスでオブジェクトを選択した時点の位置（オブジェクトのローカル座標内の位置）、などが考えうる。計算量や直感性を意識すると、（３−１）が有利である。（３−１）オブジェクトのバウンディングボックスの重心を用いる処理例を図９に示す。編集対象オブジェクトのバウンディングボックス９０１の重心９０３が定義領域のバウンディングボックス９０２内に位置するときに両バウンディングボックスが重なりを持つという判定を行なう。
【００５５】
本発明のシステムにおいては、上記のいずれの方法でも実装が可能であるが、以下の実施例ではオブジェクトのバウンディングボックスの重心が、定義領域（＝バウンディングボックス）内に有るかどうかを調べることを「重なりをチェックする」方法として採用する。
【００５６】
さて、編集対象オブジェクトのサイズ変更の方法に関してその処理方法について詳細に説明を加える。演算処理回路（ＣＰＵ）１０１は、プログラムメモリ１０２に記録されているプログラムにしたがって、各種の処理を実行する。演算処理回路（ＣＰＵ）１０１で行われる処理を説明するフローチャートを図１０に示す。なお、ステップ内でデータを処理する必要がある場合にそのデータがどこから来たものか示した方がよりシステムの振る舞いが明確になるので、ステップ内容に応じてはデータの流れを表わすデータフロー図（図１１）も参照しながらの説明を行なう。ちなみにデータフロー図とはオブジェクト指向分析では広く知られた表記法であるが、システムで計算される値の間の関数的な関係を示し、そこには入力値・出力値・内部データストアを含む。データフロー図は、オブジェクト内部のデータソースからデータを変換するプロセスを経由して、他のオブジェクト内部の目標へ至るデータの流れを示すグラフである。データフロー図では、データを変換するプロセス（楕円で示される）、データを運ぶデータフロー（矢印で示される）、データの生産と消費を示すアクターオブジェクト（長方形で示される）、受動的にデータの格納を行なうデータストアオブジェクト（２本の太い直線に挟まれ示される）によって構成されている。
【００５７】
図１０に示したフローチャートはサブルーチンであり、メインのルーチンの中からあるイベントがあればコールされることになる。本実施例ではある定義された時間ごとにイベントを発生させてコールさせることとするが、他のハードウエアからの割り込みをイベントとして用いるなどの他の方法でも実装可能である。本システムはサイズ変更のできる状態（以後、スケーリングモードと呼ぶ）とそうでない状態の２つの状態を持つが、最初に図１０に示したサブルーチンを呼ぶ前はスケーリングモードでない状態であるように初期化されていることをメインルーチンは保証する必要がある。以下の説明ではスケーリングモードであるときにはスケーリングフラグをＯＮにし、そうでない状態のときはスケーリングフラグをＯＦＦにする。よって第１回目のイベント発生前にはスケーリングフラグはＯＦＦになっている。
【００５８】
図１０に示したサブルーチンがコールされるとまずＳ１０１のステップの処理を行なう。このステップではポインティングデバイスから得られた位置情報を用いて、コンピュータ内のワールド座標系における位置を算出する。データの流れは図１１のＡ１０１［編集対象オブジェクトの位置入力装置］のポインティングデバイスで得られた位置情報がＰ１０１［編集対象オブジェクトの仮想空間上の位置の算出］のプロセスへ取り込まれ位置算出処理が行なわれる。図１１のＰ１０１［編集対象オブジェクトの仮想空間上の位置の算出］は、図１０のＳ１０１すなわち本ステップでの処理に対応している。
【００５９】
続いてＳ１０２においてオブジェクトの位置と定義領域で重なりがあるかどうかを算出する。このとき固定されている定義領域の領域データは図１のデータメモリ１０３あるいは外部記憶装置１０７に記憶されているので、これら（図１１ではＤ１０１［定義された領域の位置（領域）データ］）の記憶手段から該当データを、またオブジェクトの位置情報は上記算出結果を図１１のＰ１０１［編集対象オブジェクトの仮想空間上の位置の算出］からデータを得て、重なりを算出する。図１１のＰ１０２［重なりを計算］が本ステップＳ１０２の処理に対応する。重なり判定の方法については前述した手法のいずれかを適用する。
【００６０】
Ｓ１０３の判定で重なりがない場合にはスケーリングフラグをＯＦＦにして本サブルーチンを抜ける。重なりがある場合には続いてＳ１０４で現在既にスケーリングモードに入っているかをフラグによって判断する。初めて重なりを持ったとき、あるいは重なりのない状態から重なり状態になったときはまだスケーリングモードでない状態なので次にＳ１０７の処理を行なう。
【００６１】
Ｓ１０７ではスケーリングフラグをＯＮにするとともに図２で説明したインディケータ２０３を表示することにより、スケーリングモード状態にあることを示す。図２のインディケータ２０３ではオブジェクトのまわりに長方形状のインディケータによりモードを示しているが、インディケータは他の形状を用いることも可能であるし、インディケータを用いずオブジェクトの色を変えたりするなどの表示方法も可能である。
【００６２】
Ｓ１０７の処理後はＳ１０８においてＳ１０１で算出した位置データを保存しておく。これは定義領域にオブジェクトが入った（重なりのない状態から重なった）時点でのコンピュータ仮想空間（または平面）上の位置情報を記録しておくということにあたる。データフロー図（図１１）ではＰ１０１［編集対象オブジェクトの仮想空間上の位置の算出］からＤ１０２［基準位置データとして格納］へとデータが流れる。この流れが起きるのはこのステップにおいてのみである。Ｓ１０８の処理後、本サブルーチンから抜ける。
【００６３】
さて、Ｓ１０４でスケーリングフラグがＯＮだった場合には既にスケーリングモードであることから、前述のＳ１０８で記録されている位置情報があるのでこれと今回Ｓ１０１で算出した位置情報との差すなわち移動量を算出する。図１１のＤ１０１［定義された領域の位置（領域）データ］内のデータと今回Ｐ１０１［編集対象オブジェクトの仮想空間上の位置の算出］から得られた位置データを用いて処理する（Ｐ１０３［移動量算出］）。なお、Ｐ１０２［重なりの計算］から来るデータは重なりがあったかなかったか（０か１）だけである。ここで移動量の算出方法について次のような方法がある。
【００６４】
（１）単純に移動量のユークリッド距離を計算する方法。図１２でｄと書かれた距離情報である。図１２では、Ｐ１が定義領域と重なり始めた際の点で、Ｐ２が最新の位置情報である。距離ｄ，１２０１とはＰ１からＰ２へのベクトルのノルム（長さ）である。
【００６５】
（２）定義された軸方向の移動成分を取り出し、それを移動量とする方法。図１３の例ではｘ軸が定義してあり、移動量としてｄｘを用いる。軸は複数持つ事ができ、２軸の場合を図１４、３軸の場合を図１５に示す。各軸方向の成分の長さを算出するためには、各軸方向の単位ベクトルとＰ１からＰ２のベクトルの内積を求めればよい。その性質上、軸に対する向きによって正負または０の値を持つことになる。図１４や図１５などのように複数の軸が定義できる場合には、それぞれの軸方向の移動量を異なる属性に関連付けることができる。例えば図１５の例の場合は、ｄｘ、ｄｙ、ｄｚをそれぞれ物体のｘ軸方向、ｙ軸方向、ｚ軸方向のサイズ変更に用いることができ、また、ｄｘ、ｄｙ、ｄｚをそれぞれ物体の反射光の明るさ、光沢、色に関連付けることができる。この軸の設定方法にも二通りある。ワールド座標に対して相対関係が常に一定であるように設定する方法と定義領域のローカル座標に対して相対関係が常に一定であるように設定する方法である。しかしこの実施例では定義領域が固定であるのでこの二つに明確な差異は生じない。なお、本実施例では定義領域のｘ軸方向の成分を移動距離として使うこととする。
【００６６】
図１０のフローの説明に戻る。算出された移動量をもとにＳ１０６の編集対象オブジェクトに対するサイズ変更（スケーリング）処理を行なう。データフロー図（図１１）においてはＰ１０３［移動量算出］から得られた移動量をＰ１０４［サイズ変更］のサイズ変更に用いている。Ｐ１０４［サイズ変更］は本ステップＳ１０６の処理に対応している。ここでのサイズ変更処理はたとえば次のように行われる。図１１のＰ１０３［移動量算出］から得られた移動量データがｄｉｓｔとすると（本実施例ではｄｉｓｔ＝ｄｘとなる）、スケーリングファクターすなわちサイズ変更比例係数をｓとすると、ｓ＝１＋ｋ・ｄｉｓｔで算出したｓを適用して（乗ずることにより）サイズ変更を行なう。なお前式でｋは任意の定数である。この式を用いると直線的にサイズが変更できる。本実施例では移動量ｄｉｓｔは負の値もとりうるのでその場合には物体のサイズは元より小さくなる。もちろん前式ではない他の関数を適用することもできる。Ｓ１０６の処理が完了すると本サブルーチンを抜ける。
【００６７】
なお、上記実施例では変形できるモード（状態）にあるかどうかをフラグによって識別したが、状態を記述するほかの方法（例えばデザインパターンの一つであるステートパターンなど）を用いても実装することができる。
【００６８】
［実施例２］
実施例２で示すのは編集対象オブジェクトの位置を固定して、サイズ変更のための定義領域の位置を変化させる構成である。ポインティングデバイスが一つしかないときには、編集中のオブジェクトを一度作業空間（または平面）において、この移動可能な定義領域にポインティングデバイスの制御を移すなどの手順が事前に必要となる。この実施例を実現するための入力装置（図１の１０６）としては、実施例１と同様にマウスを用いたり（図３、但し指し示すものは定義領域となる）、タブレットを用いたり（図４、但し指し示すものは定義領域となる）または他のセンサやポインティングデバイスなどを用いる。
【００６９】
ユーザーが編集対象オブジェクトのサイズを変更させるときの本システムの振る舞いを図１６に示す。動かないオブジェクト１６０２に対し、画面３−２のように定義領域１６０１を移動させてオブジェクト１６０２に重ねあわせてサイズ変更モードに入る。この時、実施例１と同様、インディケータ１６０３を表示することが望ましいる。定義領域１６０１を移動することで画面３−３のようにオブジェクト１６０２の属性（サイズ）を変更する。
【００７０】
この実施例では実装としては基本的には実施例１と大きな相違点がない。フローチャートを図１７に、データフロー図を図１８に示す。本フローチャートに示される処理はサブルーチンであり、実施例１と同様にメインルーチン内よりある一定時間ごとによばれることとする。実施例２での処理が実施例１と異なる点はＳ２０１で得られる位置情報が図１０のＳ１０１とは異なり定義領域の位置情報であるということだけである。
【００７１】
図１８のＡ２０１［定義領域の位置（ならびに姿勢）入力装置］のポインティングデバイスで得られた位置情報がＰ２０１［定義領域の仮想空間上の位置（並びに姿勢）の算出］のプロセスへ取り込まれ位置算出処理が行なわれる。Ｐ２０２［重なりを計算］とＰ２０３［移動量を算出］で使われるのは固定の編集対象オブジェクト位置と、ポインティングデバイスから得られた定義領域の位置である。また、重なり始めたときの位置として記憶されるのはやはり定義領域の位置である。よってＳ２０８でいう基準位置は図１８のＰ２０１［定義領域の仮想空間上の位置（並びに姿勢）の算出］からＤ２０２［基準位置データ格納］へと入る定義領域の位置である。
【００７２】
図１８のP２０３［移動量算出］は、図１８のＤ２０１［編集対象オブジェクトの位置データ］内のデータとＰ２０１［定義領域の仮想空間上の位置（ならびに姿勢）の算出］から得られた位置データを用いて処理する（Ｐ２０３［移動量算出］）。これは、図１７のＳ２０５に対応する。Ｐ２０３［移動量算出］から得られた移動量をＰ２０４［サイズ変更］のサイズ変更に用いている。Ｐ２０４［サイズ変更］はステップＳ２０６の処理に対応している。
【００７３】
Ｓ２０５で行われる移動量の算出については次のようになる。実施例１の説明において移動量の算出方法のうち、定義された軸方向成分を取り出す計算ではワールド座標に対して相対関係が常に一定であるように設定する方法と定義領域のローカル座標に対して相対関係が常に一定であるように設定する方法の２つの方法が有るとした。本実施例では定義領域のみが移動するので、ワールド座標に対して相対関係が常に一定であるよう軸に関する定義領域の位置変化を使うこととする。定義領域のローカル座標に関する軸を用いることもできるが、この方法については実施例３の項で後述する。それ以外の部分については実施例１と基本的に同じなので、実施例１における説明を参照されたい。
【００７４】
［実施例３］
実施例３で示すのは編集対象オブジェクトの位置、ならびにサイズ変更用定義領域の位置の両方が変化する場合である。
【００７５】
基本的な振る舞いは実施例１や実施例２と同じで編集対象オブジェクトと定義領域が重なり始めた位置から重なりが終わった位置までの移動量でサイズ変更を行なう。
【００７６】
この実施例の具体的な実装方法をこれより述べる。基本的に実施例１あるいは２と共通部分が多い。共通の部分は実施例１で説明を行なったので、異なる部分に対しての説明を主にこれより行なう。システムの構成例は図１に示す通りである。構成そのものは実施例１と同じである。ただし図１の入力装置１０６に関しては２つ以上のポインティングデバイスが必要となる。構成例を図１９、図２０に示す。図１９の構成例ではマウスを２つ用い、一方が編集対象オブジェクト、他方が定義領域に対応している。図２０の構成では、マウスとタブレットの組み合わせでそれぞれの移動を実現している。ただし、タブレットでペンを２つ以上センシングできるデバイスを用いれば図２１のように、本実施例において適用可能なポインティングデバイスを構成することができる。すなわち、一方のペンで編集対象オブジェクト、他方のペンで定義領域の移動を行なうように構成する。
【００７７】
編集対象作業空間が３次元であれば図２２のように２つの３次元入力センサによって構成することができる。図２２で３次元空間上の編集対象オブジェクト２２０２に対応づけられた入力用ポインティングデバイス２２０４、３次元空間上の定義領域２２０１に対応づけられた入力用ポインティングデバイス２２０３をオペレータが操作することでディスプレイ上の編集対象オブジェクト２２０２、定義領域２２０１の相対移動を行なう。オペレータは、左右両手に持ったそれぞれのポインティングデバイスを自由に動かすことができ、左手で操る編集対象物体に対して、左手で操るサイズ変更用定義領域を重ねてその相対位置を変化させることによりサイズ変更を行なう。
【００７８】
図１の演算処理回路１０１で行われる処理を表わすフローチャートを図２３に示す。また、システム全体にわたるデータの流れを述べるためのデータフロー図を図２４に示す。本フローチャートに示される処理はサブルーチンであり、実施例１などと同様にメインルーチン内である定義時間ごとに発生するイベントがあると呼ばれるものとする。
【００７９】
実施例３での処理が実施例１や２と大きく異なる点はデータフロー図（図２４）を見るとわかりやすい。まず、アクターとしての入力がＡ３０１［編集対象オブジェクトの位置入力装置］とＡ３０２［定義領域の位置入力装置］と２つになっていることであり、したがってその情報に対する仮想空間における位置（または＋姿勢）の算出処理もそれぞれに必要になっていることである。フローチャート（図２３）でもこれまで１ステップであった部分がＳ３０１とＳ３０２の２ステップになっている。すなわた、Ｓ３０１では、編集対象オブジェクト、Ｓ３０２では、定義領域の位置をそれぞれ求める。
【００８０】
ステップＳ３０３〜Ｓ３０９は、実施例１における処理フロー（図１０）のステップＳ１０２〜Ｓ１０８とほぼ同様である。以下、相違点について説明する。実施例３においては、実施例１や２のように、重なり始めたときの位置を基準位置として記憶する必要がある（図２３のＳ３０９）が、このとき、対象物体の位置と定義領域の位置をそれぞれの基準位置として記憶する。データフロー図（図２４）ではＤ３０１［定義位置データ格納］とＤ３０２［オブジェクト基準位置データ格納］へと記憶される。Ｐ３０５［定義領域の仮想空間上の位置（領域）の算出］からＤ３０１［定義位置データ格納］、Ｐ３０１［編集対象オブジェクトの仮想位置空間上の位置の算出］からＤ３０２［オブジェクト基準位置データ格納］へデータが流れるのはこのＳ３０９のときだけである。データストアはこのように２つ必要になる。
【００８１】
さて、これまでの実施例と比べて計算が少し複雑になるのが移動量計算ステップＳ３０６である。このステップはデータフロー図（図２４）においてはＰ３０３［移動量を算出］で表されるが、この算出プロセスで使われるデータは、
▲１▼Ｐ３０５［定義領域の仮想空間上の位置（領域）の算出］からの今回算出された仮想空間上の定義領域の位置と姿勢
▲２▼Ｐ３０１［編集対象オブジェクトの仮想位置空間上の位置の算出］からの今回算出された仮想空間上の対象物体の位置
▲３▼Ｄ３０１［定義位置データ格納］からの定義領域の基準位置
▲４▼Ｄ３０２［オブジェクト基準位置データ格納］からの対象物体の基準位置
である。
【００８２】
ちなみにＰ３０２［重なりを計算］からの矢印は重なりがあったかどうかの１か０かの情報の流れを示すのみである。さて、本ステップ（Ｓ３０６）における算出方法の一例は、上の４種類のデータのうち▲３▼と▲１▼を使って定義位置の移動量を計算し▲４▼と▲２▼を使い対象物体の移動量を計算後その２つの計算結果を使って定義領域に対する対象物体の相対的な移動量を算出する方法である。上では２つの段階に分けて算出する表現を取ったが、数式にするとこれを一つのステップにまとめることができる。いずれにせよ、定義領域のローカル座標における対象物体の移動量がここで計算されるのである。他の部分はこれまでの実施例と同様である。
【００８３】
［実施例３の変更例］
上記実施例３は定義領域と対象物体の基準位置をそれぞれ維持する必要があり、しかも移動量算出ステップで扱うデータの種類が多かったが、あらかじめ相対位置情報で管理しておくとデータの流れはすっきりとする。この実施例３のマイナー変更例を実現するためのフローチャートが図２５であり、データフロー図が図２６となる。本実施例では、図２５に示すように新たにＳ３１１という、定義領域のローカル座標系における対象物体の位置を算出するステップを追加している。
【００８４】
重なり算出ステップ（Ｓ３０３）が、実施例１などと同様に対象物体のバウンディングボックスの重心と定義領域（＝そのバウンディングボックス）との重なりを使うので、図２５のＳ３０３での算出はＳ３１１の結果を使うと容易になる。またＳ３０９での基準位置の記憶もデータ一つだけでよく（図２６のＰ３０６［編集対象オブジェクトの定義領域との相対位置の算出］からＤ３０１［相対位置基準位置データ格納］への流れ）、Ｓ３０８の移動量算出ステップも容易になる。実際に、図２６のようにデータの流れの管理が容易になるメリットを持つ。
【００８５】
実施例３ならびにそのマイナー変更版では移動量の算出に対象物体の定義領域に対する相対的な移動量を用いたが、これに対し対象物体のワールド座標系に対する移動量を用いる方法も考えられる。この場合、定義領域はただサイズ変更モードのＯＮ・ＯＦＦのみに使われることになる。用途によればこの方法の方が入力しやすい場合もある。
【００８６】
［実施例４］
これまでの実施例では連続的にサイズを変更することを特徴としているが、この実施例４ではある一定の度合いでのサイズ変更を繰り返して行なうことで所望するサイズに変更することを特徴とする。この実施例においてもこれまで説明した実施例１から実施例３のようにそれぞれの位置を固定したり移動可能にしたりといった構成が可能であるが、本実施例では上記実施例３のように編集対象オブジェクトと定義領域の両方がユーザーによって移動可能な場合に限って説明を行なうこととする。図１の入力装置１０６は、例えば図２７のような構成として実現できる。図２７で仮想空間上の編集対象オブジェクト２７０２に対応づけられた入力用ポインティングデバイス２７０４、仮想空間上の定義領域２７０１に対応づけられた入力用ポインティングデバイス２７０２の両センサをオペレータが操作することによってセンサの３次元空間での動きを検出してディスプレイ上の編集対象オブジェクト２７０２と定義領域２７０１とを相対移動させる。
【００８７】
図２７では定義領域２７０１が一例として「魔法の杖」のメタファーになっており、それに対応するポインティングデバイス２７０３もやはりその形状によりその機能をわかりやすく示すものとなっている。振る舞いとしては図２８に示すように、定義領域２８０１が編集対象オブジェクト２８０２に重なると決められた増分だけサイズを変更している。定義領域は、図２９の（ａ）のようにサイズを大きくするためだけの定義領域（Ｌ）と２９（ｂ）のように小さくするための定義領域（Ｓ）の二つを独立に持つ実装方法がある。
【００８８】
また、図３０のようにサイズ変更を大きくする部分としての定義領域Ｌ，３００１と小さくする部分としての定義領域Ｓ，３００２の２つの領域を結合した状態で一つのセンサに対応させる実装方法も有る。本実施例では図２９の（ａ）の構成を使った場合について説明する。ここで説明する方法は他の方法にも簡単に応用が可能である。
【００８９】
図１の演算処理回路１０１で行なわれる処理を表わすフローチャートを図３１に示す。また、システム全体にわたるデータの流れを述べるためのデータフロー図を図３２に示す。本フローチャートに示される処理はサブルーチンであり、実施例１などと同様にメインルーチン内である定義時間ごとに呼ばれるものとする。
【００９０】
本サブルーチンではＳ４０１ならびにＳ４０２のステップで、実施例３のとき同様に、それぞれ対象物体と定義領域の仮想空間内での領域位置が算出される。しかしこれらのデータが使われるのは重なりがあるかどうかを計算するためだけである。このことはデータフロー図（図３２）を見ても明白である。
【００９１】
アクターとしての入力は、実施例３と同様、Ａ４０１［編集対象オブジェクトの位置入力装置］とＡ４０２［定義領域の位置入力装置］と２つになっており、したがってその情報に対する仮想空間における位置（または＋姿勢）の算出処理（Ｐ４０１，Ｐ４０５）もそれぞれに必要になる。Ｐ４０１［編集対象オブジェクトの仮想空間上の位置の算出］と、Ｐ４０５［定義領域の仮想空間上の位置（領域）の算出］に基づいてＰ４０２［重なりを計算］が実行される。
【００９２】
Ｐ４０２［重なりを計算］における重なりの計算については実施例１同様に、本実施例でも対象オブジェクトのバウンディングボックスの重心が、定義領域のバウンディングボックスの中にあるかどうかで算出することとする（Ｓ４０４）。算出方法については実施例１のところで書いたように他の実装方法もある。
【００９３】
判別ステップＳ４０４で重なりがあった場合で、スケーリングフラグがｏｎでなかった場合には、領域の中に対象物体が入った瞬間であるのでこのときにＳ４０６でフラグをｏｎしたのち、Ｓ４０７で対象物体に対してサイズ変更、すなわちＰ４０４［一定量サイズ変更］を行なう。サイズ変更は固定された増分をΔｓとすると、ｓ＝１＋Δｓとして算出したｓをスケールファクター（係数）としてサイズ変更を行なう。
【００９４】
このルーチンにおいてスケーリングフラグの振る舞いはこれまで紹介した実施例１から３までのものと同じであるが、領域に入ったときだけサイズ変更を行なうことを保証するために使用されているところが異なる。
【００９５】
［実施例５］
これまで説明を加えてきた実施例１から４についてであるが、入力装置（図１における１０６）に上記実施例で用いた位置入力に加えてさらにｏｎ／ｏｆｆを検出できるボタンなどのイベントを発生するデバイスとの組み合わせにより異なった入力指示方法が可能となる。ここでは実施例１に関してのバリエーションを説明する。
【００９６】
この実施例ではユーザーは以下のようなシナリオで編集オブジェクトへの変形操作を行なう。図２を再び参照して説明する。
【００９７】
画面２−１の状態から編集対象オブジェクト２０２を定義領域２０１に入れる。画面２−２のように編集対象オブジェクト２０２が定義領域２０１に入るとインディケータ２０３が表示される。インディケータ２０３は定義領域に入った（重なった）ことを示しているので、このときにボタンを押せばスケーリングモードに入る。ユーザはボタンを押しながら対象物体を移動すると移動量に応じて対象物体のサイズが変化する（画面２−３）。ユーザーがボタンを離すとその時点でサイズ変更が確定（すなわち終了）する。
【００９８】
本実施例の実施例１との相違点は前述の通り図１の入力装置１０６にボタンが追加されることであり、図１の演算処理回路１０１で処理されるルーチンも異なる。図３３にそのサブルーチンを示す。これまでと同様、メインルーチン内においてある時間ごとに発生するイベントによってこのサブルーチンは呼ばれる。異なるのはＳ５０４、すなわちボタンが押されているか否かの判定処理が追加されたことである。なお、Ｓ５０４ではボタンが押されたかどうかのチェックをするのみでなく、前述のシナリオで登場したインディケータを表示することも行なう。他の部分は実施例１と同じである。データフロー図も図１１と同様のフローとなる。
【００９９】
すなわち、本実施例では、Ｓ５０４のボタンが押されているの判定がＹｅｓであれば、Ｓ５０５以下のスケーリングモードによる処理が実行され、Ｓ５０４のボタンが押されているの判定がＮｏであればスケーリングモードによる処理は実行されず、Ｓ５１０においてスケーリングフラグがＯＦＦに設定されて、処理を終了する。
【０１００】
本実施例は実施例１をベースにした例として説明しているが、ボタンの付加は実施例２から４に対しても適用できる。実施例３に適用した例を参考までに図３４に挙げる。
【０１０１】
図３４において、Ｓ６０１〜Ｓ６０４は実施例３の図２３のＳ３０１〜Ｓ３０４と同様である。Ｓ３０４のＹｅｓの判定の次ステップとして、Ｓ６０５のボタンが押されているか否かの判定処理が追加されている。なお、Ｓ６０５ではボタンが押されたかどうかのチェックをするのみでなく、前述のシナリオで登場したインディケータを表示することも行なう。以下のステップは実施例３と同様である。Ｓ６０５のボタンが押されているの判定がＹｅｓであれば、Ｓ６０６以下のスケーリングモードによる処理が実行され、Ｓ６０５のボタンが押されているの判定がＮｏであればスケーリングモードによる処理は実行されず、Ｓ６１１においてスケーリングフラグがＯＦＦに設定されて、処理を終了する。
【０１０２】
また、実施例１にボタンを付加し、さらに、ボタンを押したまま、編集対象オブジェクトが定義領域を離れた場合に、スケーリング処理を続行する構成の処理フローを図３５に示す。
【０１０３】
図３５の処理フローにおいて、Ｓ７０１，Ｓ７０２は、実施例１の処理フローである図１０のＳ１０１，Ｓ１０２と同様の処理である。Ｓ７０３では、スケーリングフラグがＯＮであるか否かが判定される。Ｙｅｓの判定である場合は、Ｓ７１１においてボタンが押下中であるか否かが判定される。Ｙｅｓの場合は、スケーリングモードが続行されていると判定され、Ｓ７０６で基準位置との差（移動量）が算出され、Ｓ７０７で移動量に基づいてスケーリング処理が実行される。
【０１０４】
Ｓ７１１においてボタンが押されていないと判定されると、Ｓ７１０に進みスケーリングフラグをＯＦＦとしてスケーリングモードから抜ける。
【０１０５】
また、Ｓ７０４において重なりがあると判定された場合、Ｓ７０５においてボタンが押下中であるか否かが判定される。Ｙｅｓの場合は、スケーリングフラグをＯＮ（Ｓ７０８）とし、Ｓ７０９で今回の仮想世界でのオブジェクトの位置を基準位置として保存する。Ｓ７０５においてボタンが押されていないと判定されると、Ｓ７１０に進みスケーリングフラグをＯＦＦとしてスケーリングモードから抜ける。
【０１０６】
この処理は、ボタンを押したまま、編集対象オブジェクトが定義領域を離れた場合に、スケーリング処理を続行することを可能としたものである。本構成も、他の実施例２〜４においても適用できる。実施例４における構成としては、ボタンを押下中は、一定量のサイズ変更が繰り返し実行される構成として実現することができる。
【０１０７】
なお、図１に示したオブジェクト属性変更処理装置では、属性変更の処理プログラムをプログラムメモリ１０２に格納しているが、例えばＣＤ−ＲＯＭあるいはＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷのような光ディスクに格納してもよいし、ＭＯのような光磁気ディスクに格納してもよい。また、ハードディスクあるいはフロッピーディスクのような磁気ディスクに格納してもよい。あるいはメモリースティックのような半導体メモリに格納してもよい。いずれにしても、これまでの実施例で論じてきた編集のための入力方法に関する処理プログラムを供給する供給媒体からその処理プログラムを読み出して実行すれば、該物体への編集において該物体のサイズなどの属性変更などを容易かつ効果的に行なうことができるようになる。
【０１０８】
上述した実施例においては物体の属性の一つである「サイズ（大きさ）」を変更するための方法・装置として説明したが、上述した定義領域を例えば編集対象オブジェクトの色や明るさや光沢度や構成するポリゴンの数などといった、オブジェクトの様々な属性を変更する定義領域として定義する構成とすることにより、オブジェクトの様々な属性を上述のスケーリング処理と同様に変更する構成が実現される。本発明は、スケーリング処理に限らず、編集対象オブジェクトの属性の変更処理全般に適用可能なものである。例えば、オブジェクト変形ツール、仮想カタログビューワーのユーザーインターフェースとして応用できる。
【０１０９】
上述の構成では、スケーリング処理として、定義領域での移動距離に基づく拡大処理を中心として説明したが、例えば変形処理として、３次元モデルに対してへこみあるいは凸部を形成する処理に適用する構成として、定義領域内での編集対象オブジェクトの移動距離に応じて、へこみあるいは凸部の大きさを変更するようにオブジェクトの属性を変更する処理を実行したり、また、オブジェクトの色属性を定義領域内での編集対象オブジェクトの移動距離に応じて、ＲＧＢ値を変更するように構成することが可能である。
【０１１０】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１１１】
【発明の効果】
上述の説明から、明らかなように、本発明のオブジェクト属性変更処理装置、オブジェクト属性変更処理方法、および３次元モデル処理装置、３次元モデル処理方法、並びにプログラム提供媒体によれば、編集対象オブジェクトと定義領域との重なりに基づいて、編集対象オブジェクトの属性変更モードへの切り換えを実行し、定義領域内での移動、あるいは定義領域への重なりの発生に基づいて所定の属性変更、例えばスケーリング処理が実行される構成であるので、コンピュータを利用したオブジェクト編集システムの作業が容易に実行可能となる。従って、コンピュータのマウス、キーボード等、各種の入力装置の扱いに不慣れな低年齢の幼児や高齢者にとってのインターフェースとして有効である。デジタル技術を使った情操教育玩具や、オンラインショッピングまたはコミュニケーションツールへの応用が期待できる。
【図面の簡単な説明】
【図１】本発明のオブジェクト属性変更処理装置のハードウェア構成例を示すブロック図である。
【図２】本発明のオブジェクト属性変更処理装置の実施例１の処理概要を説明する図である。
【図３】本発明のオブジェクト属性変更処理装置の実施例１の入力装置例（その１）を示す図である。
【図４】本発明のオブジェクト属性変更処理装置の実施例１の入力装置例（その２）を示す図である。
【図５】本発明のオブジェクト属性変更処理装置における重なり判定に適用可能なバウンディングボックスについて説明する図（その１）である。
【図６】本発明のオブジェクト属性変更処理装置における重なり判定に適用可能なバウンディングボックスについて説明する図（その２）である。
【図７】本発明のオブジェクト属性変更処理装置における重なり判定に適用可能なバウンディングボックスについて説明する図（その３）である。
【図８】本発明のオブジェクト属性変更処理装置における重なり判定に適用可能なバウンディングボックスについて説明する図（その４）である。
【図９】本発明のオブジェクト属性変更処理装置における重なり判定に適用可能なバウンディングボックスについて説明する図（その５）である。
【図１０】本発明のオブジェクト属性変更処理装置における実施例１の処理を説明するフローチャート図である。
【図１１】本発明のオブジェクト属性変更処理装置における実施例１の処理を説明するデータフロー図である。
【図１２】本発明のオブジェクト属性変更処理装置における移動距離算出に適用可能な距離算出処理例について説明する図（その１）である。
【図１３】本発明のオブジェクト属性変更処理装置における移動距離算出に適用可能な距離算出処理例について説明する図（その２）である。
【図１４】本発明のオブジェクト属性変更処理装置における移動距離算出に適用可能な距離算出処理例について説明する図（その３）である。
【図１５】本発明のオブジェクト属性変更処理装置における移動距離算出に適用可能な距離算出処理例について説明する図（その４）である。
【図１６】本発明のオブジェクト属性変更処理装置の実施例２の処理概要を説明する図である。
【図１７】本発明のオブジェクト属性変更処理装置における実施例２の処理を説明するフローチャート図である。
【図１８】本発明のオブジェクト属性変更処理装置における実施例２の処理を説明するデータフロー図である。
【図１９】本発明のオブジェクト属性変更処理装置の実施例３の入力装置例（その１）を示す図である。
【図２０】本発明のオブジェクト属性変更処理装置の実施例３の入力装置例（その２）を示す図である。
【図２１】本発明のオブジェクト属性変更処理装置の実施例３の入力装置例（その３）を示す図である。
【図２２】本発明のオブジェクト属性変更処理装置の実施例３の入力装置例（その４）を示す図である。
【図２３】本発明のオブジェクト属性変更処理装置における実施例３の処理を説明するフローチャート図である。
【図２４】本発明のオブジェクト属性変更処理装置における実施例３の処理を説明するデータフロー図である。
【図２５】本発明のオブジェクト属性変更処理装置における実施例３の変更例の処理を説明するフローチャート図である。
【図２６】本発明のオブジェクト属性変更処理装置における実施例３の変更例の処理を説明するデータフロー図である。
【図２７】本発明のオブジェクト属性変更処理装置の実施例４の入力装置例（その１）を示す図である。
【図２８】本発明のオブジェクト属性変更処理装置の実施例４の処理概要を説明する図である。
【図２９】本発明のオブジェクト属性変更処理装置の実施例４の定義領域の例（その１）を示す図である。
【図３０】本発明のオブジェクト属性変更処理装置の実施例４の定義領域の例（その２）を示す図である。
【図３１】本発明のオブジェクト属性変更処理装置における実施例４の処理を説明するフローチャート図である。
【図３２】本発明のオブジェクト属性変更処理装置における実施例４の処理を説明するデータフロー図である。
【図３３】本発明のオブジェクト属性変更処理装置における実施例５の処理（その１）を説明するフローチャート図である。
【図３４】本発明のオブジェクト属性変更処理装置における実施例５の処理（その２）を説明するフローチャート図である。
【図３５】本発明のオブジェクト属性変更処理装置における実施例５の処理（その３）を説明するフローチャート図である。
【符号の説明】
１０１  演算処理回路
１０２  プログラムメモリ
１０３  データメモリ
１０４  フレームメモリ
１０５  画像表示装置
１０６  入力装置
１０７  外部記憶装置
１０８  バス
２０１  定義領域
２０２  編集対象オブジェクト
２０３  インディケータ
４０１  枠
６０１，６０２  バウンディングボックス
６０３  重なり領域
７０１，７０２  バウンディングボックス
８０１  編集対象オブジェクト
８０２，８０３  バウンディングボックス
８０４  重なり領域
９０１，９０２  バウンディングボックス
９０３  重心
１６０１  定義領域
１６０２  編集対象オブジェクト
１６０３  インディケータ
２２０１  定義領域
２２０２  編集対象オブジェクト
２２０３，２２０４  ３次元センサ
２７０１  定義領域
２７０２  編集対象オブジェクト
２７０３，２７０４  ３次元センサ
２８０１  定義領域
２８０２  編集対象オブジェクト
３００１  定義領域Ｌ
３００２  定義領域Ｓ
【図１】
0004389350.tif 000002
【図２】
0004389350.tif 000003
【図３】
0004389350.tif 000004
【図４】
0004389350.tif 000005
【図５】
0004389350.tif 000006
【図６】
0004389350.tif 000007
【図７】
0004389350.tif 000008
【図８】
0004389350.tif 000009
【図９】
0004389350.tif 000010
【図１０】
0004389350.tif 000011
【図１１】
0004389350.tif 000012
【図１２】
0004389350.tif 000013
【図１３】
0004389350.tif 000014
【図１４】
0004389350.tif 000015
【図１５】
0004389350.tif 000016
【図１６】
0004389350.tif 000017
【図１７】
0004389350.tif 000018
【図１８】
0004389350.tif 000019
【図１９】
0004389350.tif 000020
【図２０】
0004389350.tif 000021
【図２１】
0004389350.tif 000022
【図２２】
0004389350.tif 000023
【図２３】
0004389350.tif 000024
【図２４】
0004389350.tif 000025
【図２５】
0004389350.tif 000026
【図２６】
0004389350.tif 000027
【図２７】
0004389350.tif 000028
【図２８】
0004389350.tif 000029
【図２９】
0004389350.tif 000030
【図３０】
0004389350.tif 000031
【図３１】
0004389350.tif 000032
【図３２】
0004389350.tif 000033
【図３３】
0004389350.tif 000034
【図３４】
0004389350.tif 000035
【図３５】
0004389350.tif 000036