JP4389350B2 - Object attribute change processing device, object attribute change processing method, three-dimensional model processing device, three-dimensional model processing method, and program providing medium - Google Patents

Object attribute change processing device, object attribute change processing method, three-dimensional model processing device, three-dimensional model processing method, and program providing medium Download PDF

Info

Publication number
JP4389350B2
JP4389350B2 JP2000145984A JP2000145984A JP4389350B2 JP 4389350 B2 JP4389350 B2 JP 4389350B2 JP 2000145984 A JP2000145984 A JP 2000145984A JP 2000145984 A JP2000145984 A JP 2000145984A JP 4389350 B2 JP4389350 B2 JP 4389350B2
Authority
JP
Japan
Prior art keywords
attribute
attribute change
overlap
edited
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000145984A
Other languages
Japanese (ja)
Other versions
JP2001325602A5 (en
JP2001325602A (en
Inventor
博之 勢川
浩之 塩谷
哲一 開
友一 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2000145984A priority Critical patent/JP4389350B2/en
Publication of JP2001325602A publication Critical patent/JP2001325602A/en
Publication of JP2001325602A5 publication Critical patent/JP2001325602A5/ja
Application granted granted Critical
Publication of JP4389350B2 publication Critical patent/JP4389350B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、オブジェクト属性変更処理装置、オブジェクト属性変更処理方法、および3次元モデル処理装置、3次元モデル処理方法、並びにプログラム提供媒体に関する。さらに、詳細には、例えばPC、CAD等のディスプレイに表示されたオブジェクトに対する属性変更処理を、オペレータが容易に理解できるとともに操作性を向上させた処理として実行可能としたオブジェクト属性変更処理装置、オブジェクト属性変更処理方法、および3次元モデル処理装置、3次元モデル処理方法、並びにプログラム提供媒体に関する。
【0002】
【従来の技術】
従来の画像処理システムにおいて、編集対象のオブジェクトのサイズ変更のようなオブジェクト属性変更処理を実行しようとする場合、アプリケーションウインドウの上部に位置するメニューの中から該当するメニューを選択して、プルダウンを実行して、さらに、所望のサイズメニューを選択して実行するといった煩雑な処理が要求される。あるいは、キーボード上のキーの組み合わせで、上述と同様のメニュー表示を実行して、メニュー選択を実行して属性変更処理を行なう構成もある。さらに、ディスプレイに表示されるサイズ変更処理を示すアイコンを選択することによってサイズ変更処理を実行させる処理形態も実現されている。
【0003】
【発明が解決しようとする課題】
しかしながら、上記の従来の方法、すなわち
1)メニューによる属性変更処理方法
2)キーの組み合わせによる属性変更処理方法
3)アイコンを選択することによる属性変更処理方法
のいずれにおいても、次のような問題がある。
ユーザーは編集中のオブジェクトに興味があるのに、サイズを変更している間、その興味対象から別のものに注目対象を移さなければならない。また、1)、2)の処理を実行するためには、メニューの場所等を知っていることが必要であり、ある程度システムに慣れていることが要請される。さらに、上記1)、2)、3)に共通する課題は、該当処理が、どのオブジェクトに対する処理であるかを明示する方法(いわゆる選択(select)操作)が必要であったり、処理順や組み合わせなどの約束事をユーザーに強いたりすることである。これら、従来技術における属性変更処理方法は、いずれもインターフェースとしてユーザーにとって「直感的」でない。
【0004】
本発明は、このような従来技術における問題点を解決することを目的とするものであり、コンピュータを利用したオブジェクト編集システムの作業を容易に実行可能とし、コンピュータのマウス、キーボード等、各種の入力装置の扱いに不慣れな低年齢の幼児や高齢者にとってのインターフェースとして有効なシステム、方法を実現し、デジタル技術を使った情操教育玩具や、オンラインショッピングまたはコミュニケーションツールへの応用が適用可能なオブジェクト属性変更処理装置、オブジェクト属性変更処理方法、および3次元モデル処理装置、3次元モデル処理方法、並びにプログラム提供媒体を提供することを目的とする。
【0005】
【課題を解決するための手段】
本発明の第1の側面は、
ディスプレイに表示される編集対象オブジェクトの属性を変更するオブジェクト属性変更処理装置であり、
ディスプレイに表示された処理対象である編集対象オブジェクトに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定し、該重なり判定に基づいて、前記編集対象オブジェクトの属性変更モードへの切り換え処理を実行する制御手段を有し、
前記制御手段は、編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更する処理を実行する構成を有することを特徴とするオブジェクト属性変更処理装置にある。
【0014】
さらに、本発明の第2の側面は、
ディスプレイに表示される編集対象オブジェクトの属性を変更するオブジェクト属性変更処理方法であり、
ディスプレイに表示された処理対象である編集対象オブジェクトに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定する重なり判定ステップと、
前記重なり判定に基づいて、前記編集対象オブジェクトの属性変更モードへの切り換え処理を実行するモード切り換えステップと、
前記編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更するオブジェクト属性変更ステップと、
を有することを特徴とするオブジェクト属性変更処理方法にある。
【0022】
さらに、本発明の第3の側面は、
ディスプレイに表示される編集対象オブジェクトとしての3次元モデルの属性を変更する3次元モデル処理装置であり、
ディスプレイに表示された処理対象である3次元モデルに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定し、該重なり判定に基づいて、前記3次元モデルの属性変更モードへの切り換え処理を実行する制御手段を有し、
前記制御手段は、編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更する処理を実行する構成を有することを特徴とする3次元モデル処理装置にある。
【0025】
さらに、本発明の第4の側面は、
ディスプレイに表示される編集対象オブジェクトとしての3次元モデルの属性を変更する3次元モデル処理方法であり、
ディスプレイに表示された処理対象である3次元モデルに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定する重なり判定ステップと、
前記重なり判定に基づいて、前記3次元モデルの属性変更モードへの切り換え処理を実行するモード切り換えステップと、
前記編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更するオブジェクト属性変更ステップと、
を有することを特徴とする3次元モデル処理方法にある。
【0028】
さらに、本発明の第5の側面は、
ディスプレイに表示される編集対象オブジェクトの属性を変更するオブジェクト属性変更処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムを提供するプログラム提供媒体であって、前記コンピュータ・プログラムは、
ディスプレイに表示された処理対象である編集対象オブジェクトに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定する重なり判定ステップと、
前記重なり判定に基づいて、前記編集対象オブジェクトの属性変更モードへの切り換え処理を実行するモード切り換えステップと、
前記編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更するオブジェクト属性変更ステップと、
を有することを特徴とするプログラム提供媒体にある。
【0029】
本発明の第5の側面に係るプログラム提供媒体は、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ・プログラムをコンピュータ可読な形式で提供する媒体である。媒体は、CDやFD、MOなどの記憶媒体、あるいは、ネットワークなどの伝送媒体など、その形態は特に限定されない。
【0030】
このようなプログラム提供媒体は、コンピュータ・システム上で所定のコンピュータ・プログラムの機能を実現するための、コンピュータ・プログラムと提供媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、該提供媒体を介してコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の他の側面と同様の作用効果を得ることができるのである。
【0031】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【0032】
【発明の実施の形態】
以下に本発明のオブジェクト属性変更処理装置、オブジェクト属性変更処理方法、および3次元モデル処理装置、3次元モデル処理方法、並びにプログラム提供媒体の実施の形態を説明する。以下、具体的な実施例として5つの形態、実施例1〜5に分けて説明する。実施例1から実施例5は編集対象オブジェクト(「編集対象物体」と呼ぶこともある)のサイズ変更(以降、「スケーリング」と呼ぶこともある)に関する実現方法である。以下の実施例においては物体の属性の一つである「サイズ(大きさ)」を変更するための方法・装置として説明するが、これは例えば対象物体の色や明るさや光沢度や構成するポリゴンの数などといった、オブジェクトの様々な属性を変更するためにも同じ方法・装置を適用することができる。
【0033】
以後「定義領域」と呼ぶのは、編集対象オブジェクトがその領域に重なった場合にサイズ変更が行なうことができるようになる、領域のことである。これより以降の説明の中で「仮想空間」と呼ぶのは計算機(コンピュータ)内で編集を行なう空間である。編集対象が2次元であれば仮想空間は2次元空間であり、3次元であれば仮想空間は3次元空間となる。
【0034】
実施例1から実施例3は定義領域と対象オブジェクトが領域を共有している間、サイズ変更モードに入り、その後の相対関係の変化により連続的なサイズの変更を行なう。実施例4では定義領域と対象オブジェクトが領域を共有する度に、定められた量だけサイズ変更を行なう。実施例5ではこれまでの4つの実施例にボタンのON/OFFを組み合わせた形態を論じる。これら複数の実施例に共通する構成部分の説明をまず行なう。
【0035】
[各実施例共通部]
本発明の処理システムはコンピュータを用いた、図や絵あるいは3次元物体(これらを総称して編集対象オブジェクトと呼ぶ)などのコンピュータ内での編集処理を実行する編集装置である。
【0036】
図1は、本発明を適用したオブジェクト属性変更処理装置の制御手段を中心とするハードウェア構成例を示すブロック図である。処理プログラムを実行する演算処理回路101と、処理プログラムが格納されるプログラムメモリ102と、処理データを格納するデータメモリ103と、編集対象オブジェクトの位置・属性や定義領域の位置・属性や編集内容などの情報を格納するデータメモリ103と、処理対象となるオブジェクトである図形、3次元物体、定義領域、あるいはユーザーへの指示などを描画するための画像情報を格納するフレームメモリ104と、フレームメモリ104に格納された画像信号を表示する画像表示装置105と、マウスや各種センサなどを構成要素として持つ(詳細は各実施例にて述べる)入力装置106と、編集対象物体あるいは編集内容などを記憶する外部記憶装置107と、各回路を接続してプログラムやデータを伝送するバス108とを備えている。
【0037】
外部記憶装置107は、ハードディスクドライブ(HDD)や、光ディスクなどのランダムアクセスが可能な記憶媒体が望ましいがテープストリーマーなどのランダムアクセスの不得手な記憶媒体でも構成可能であるしメモリースティックに代表される不揮発性の半導体メモリでもよい。あるいはネットワーク接続された他のシステムの外部記憶装置でもよい。またそれらの組み合わせでもよい。外部記憶装置107には、プログラムや編集対象オブジェクト情報、例えば3次元モデル情報が格納される。データメモリ103に格納されるオブジェクトに関する情報やツールの状態など、プログラムの処理に必要とされる情報を外部記憶装置107に格納することも可能である。
【0038】
入力装置106では、各種入力デバイスからの計測値を取得する。編集対象オブジェクトが3次元モデルである場合は、編集対象オブジェクトである3次元モデルに対応する3次元センサ、及び編集処理ツールの位置ならびに姿勢を更新するために、3次元センサや3次元マウスなどの3次元入力デバイスの計測値を取得する。例えば、オペレータがその位置、姿勢を自由に変更可能な3次元センサが入力装置として使用可能である。なお、本発明の編集装置は、2次元図形にも適用可能であり、マウス、タブレットなどの2次元入力デバイスも使用可能である。また、キーボードあるいは、オン/オフの状態を持つプッシュボタンなどから、各種入力値を取得する構成として各種の指示入力、例えば編集ツールの設定、切り換え処理等を行なうように構成してもよい。以下の説明では、オフの状態からオンの状態になることを「ボタンが押された」、オフの状態からオンの状態になることを「ボタンが放された」、ボタンが押されてからすぐに放される動作を「ボタンがクリックされた」と呼ぶこととする。また、これらすべてのボタン操作による指示入力をイベント入力と呼ぶ。
【0039】
データメモリ103は、例えば編集オブジェクトが3次元モデルである場合、3次元モデルの位置ならびに姿勢情報や、表面属性情報などの様々な3次元モデル情報が格納される。3次元モデル情報は、例えば、ポリゴンやボクセル、NURBSなどの自由曲面などによって表現するためのパラメータの情報である。
【0040】
演算処理回路101では、入力装置から得られた計測値を基に、編集対象オブジェクトの位置等を更新する。編集対象が3次元モデルである場合は、3次元モデルと編集ツールの位置ならびに姿勢情報を更新し、必要であればデータメモリ103に格納されている3次元モデル情報を変更する。例えば、コンピュータグラフィックスで表現された3次元モデル表面の形状や色などの表面情報を変更するための処理が演算処理回路101において実行され、データメモリ103に格納されている3次元オブジェクトの表面の色等の属性情報を変更する。
【0041】
画像表示装置105には、編集対象オブジェクトとして、例えば3次元モデル、あるいは2次元図形等が表示される。さらに、編集対象オブジェクトに対して拡大等の属性変更変形、ペイント等、各種処理を施すためのツール(またはポインタ)が表示される。
【0042】
編集対象が3次元モデルである場合、編集ツールは、ツール操作用3次元センサの操作に応じて位置ならびに姿勢情報が変更される構成が好ましい。編集対象オブジェクトが3次元モデルである場合は、画像表示装置105に表示された3次元モデルはオブジェクトは、3次元モデル操作用3次元センサの操作に応じて位置ならびに姿勢情報が変更可能な構成とすることが好ましい。3次元モデル操作用3次元センサ、ツール操作用3次元センサは、磁気センサ、超音波センサ等によって構成され、磁気、あるいは超音波により、それぞれの位置、姿勢情報が取得される。なお、3次元モデルを動かす必要がなければ、3次元モデル操作用3次元センサは必ずしも必要とはしない。この場合は、編集ツールのみの操作で固定した3次元モデルに対する拡大、ペイント、変形等の処理を行なう。以下、本発明の具体的な実施例について、それぞれ詳細に説明する。
【0043】
[実施例1]
実施例1で示すのは編集対象オブジェクトの位置が変化して、サイズ変更のための定義領域を固定とした構成例である。コンピュータのディスプレイ上での処理イメージを図2に示す。画面2−1で示す201はサイズ変更のための定義領域、202は編集対象オブジェクトである。編集対象オブジェクト202はユーザーが、編集対象オブジェクト202に対応する入力装置からの入力により任意の位置に移動でき、定義領域201は編集作業を行なう空間(あるいは平面)内の決まった位置に配置される。
【0044】
編集対象オブジェクト202を移動するためには図1で示した入力装置106を構成するものの1つとしてマウスを用いることができる。図3にマウスを入力装置として用いた場合の操作状況を示す図を示す。位置入力装置はマウスに限定されるものではなく例えば図4のようにタブレットなどのほかの入力装置を利用することが可能である。
【0045】
タブレットを利用した例がマウスを使った例に対し有利なのは、図4に示すように仮想空間上の定義領域からタブレットの座標空間上に写像した部分に物理的に枠401を設けることで作業領域内の定義領域の存在位置をユーザーにより直接的に知らしめることのできる点にある。編集対象システムが3次元のCG(コンピュータグラフィックス)あるいはCAD(コンピュータ支援設計)のシステムである場合には入力装置が3次元センサ(3次元タブレット、磁気センサ、光学センサ、超音波センサなどのセンサあるいはそれらの組み合わせ)を利用する。以下の説明においてはこれらの位置入力用のデバイスを総称してポインティングデバイスと呼ぶこととする。
【0046】
図2に戻り操作概要の説明を続ける。画面2−2に示すように編集対象オブジェクト202が定義領域201とその領域を共有するときに対象物体のサイズを変更できるモードに入る。このモード変更は、画面2-2,画面2−3に示すような、編集対象オブジェクト202を囲む識別可能なインディケータ203を表示、非表示とすることでオペレータに知らせる構成とする。画面2-2,画面2−3に示すようなインディケータ203を表示することで、表示でサイズ変更モードに入ったことがユーザーによって把握される。ただし、この表示は、本発明の構成において必要不可欠ではない。また、インディケータの形態も様々な形態が適用可能である。例えば編集対象オブジェクトの濃淡の反転表示等の形態としてもよい。
【0047】
定義領域201内で対象物体を移動すると移動方向と移動量に応じてサイズを変更する(画面2−3)。すなわち編集対象のオブジェクトが定義領域と重なりを持ったときから重なりがなくなったときまでの移動量に基づきオブジェクトのサイズ変更を行なう。ここでは、モードの切り換えを定義領域201と編集対象オブジェクト202とが、「重なりを持つかどうか」を判定することによって行なう構成としている。「重なりを持つかどうか」の判定処理としては、例えば次に挙げる手法のいずれかを適用できる。
【0048】
(1)編集対象オブジェクト202を表現するモデルと定義領域201を表現するモデル間で論理的(Boolean)演算が可能であれば、二つの論理積が空であるか否かで重なりを知ることができ、この論理積によって「重なりを持つかどうか」を判別する。このアプローチでは両者の本当の物理的な重なりを計算できる。ただし、2次元世界では計算が簡単であるが、3次元が編集対象空間であるとボリュームデータ(ボクセル)を使う場合やポリゴンモデルやパラメトリックな曲線面を使った場合のいずれにせよ扱うデータ量や計算コストが大きくなる。
【0049】
(2)編集対象ならびに定義領域にはバウンディングボックスと呼ばれる、「対象物体を含む最小の長方形(2次元の場合)や直方体(3次元の場合)」が定義できる。この領域情報を常に定義領域201、編集対象オブジェクト202のそれぞれに属性として保有する構成とする。定義領域201、編集対象オブジェクト202の各々のバウンディングボックス同士の重なりを検出することにより、「重なりを持つかどうか」を判別する。バウンディングボックスの例は2次元の場合は図5(a)、3次元の場合は図5(b)のようになる。
【0050】
表示されている定義領域の境界がそのままバウンディングボックスであるとインターフェースとしては直感性が増加する。重なりの判定方法は以下の二つの方法が考えられる。このバウンディングボックスを用いた重なり判定方法には、さらに異なる態様での判定方法がある。
【0051】
(2−1)部分的に少しでも重なりがあった場合を「重なった」とする方法。これは、図6に示すようにバウンディングボックス同士が、その一部領域で重なりを持ったとき、「重なった」と判定する方法である。例えば3次元空間を対象とすると、オブジェクトのバウンディングボックスが図6に示すバウンディングボックス601、定義領域(=自身のバウンディングボックス)がバウンディングボックス602であるとき、ボックス同士の重なり603があるかどうかをチェックする。
【0052】
(2−2)一方のバウンディングボックスが他方のボックスに完全に包含されるときに「重なった」とする方法。
これは図7に示すように、いずれかのバウンディングボックスが、他のバウンディングボックスに対して全領域で重なりを持ったとき、「重なった」と判定する方法である。3次元モデルの例では図7のような関係になったとき重なりが有ると判定する。図7では一方のバウンディングボックス701が他方のバウンディングボックス702に完全に含まれる構成となっている。
【0053】
ただし、図2に示す画面2−2の方法を適用する場合はどちらかのバウンディングボックスが必ず他方に包含されるための制約が必要となる。例えば3次元のバウンディングボックスの場合、いずれかのバウンディングボックスがx,y,z方向で他方のバウンディングボックスより小さいことが必要となる。これらの制約を考慮すると、前者(2−1)の手法がより現実的である。ただ、バウンディングボックスは対象物体の形状によっては予想より大きくなる場合が多く、この場合には重なっていないのに重なっていると判定される場合もあることが注意点としてあげられる。例を挙げると、図8において編集対象オブジェクト801が図のような形状であるとき、そのバウンディングボックスはバウンディングボックス802となる。バウンディングボックス802は、定義領域803と重なり804を持つが、オブジェクト801は定義領域803との重なりは持っていない。このような形状の場合には、注意が必要である。
【0054】
(3)編集対象オブジェクトに関連付けられた点が、定義領域のバウンディングボックス内にあるかどうかを判定するアプローチ。編集対象オブジェクトに関連付けられた点をどのように決定するかが鍵になるが、これに対しては、(3−1)オブジェクトのバウンディングボックスの重心を用いる方法。(3−2)オブジェクトそのものの重心を計算する方法。(3−3)ポインティングデバイスでオブジェクトを選択した時点の位置(オブジェクトのローカル座標内の位置)、などが考えうる。計算量や直感性を意識すると、(3−1)が有利である。(3−1)オブジェクトのバウンディングボックスの重心を用いる処理例を図9に示す。編集対象オブジェクトのバウンディングボックス901の重心903が定義領域のバウンディングボックス902内に位置するときに両バウンディングボックスが重なりを持つという判定を行なう。
【0055】
本発明のシステムにおいては、上記のいずれの方法でも実装が可能であるが、以下の実施例ではオブジェクトのバウンディングボックスの重心が、定義領域(=バウンディングボックス)内に有るかどうかを調べることを「重なりをチェックする」方法として採用する。
【0056】
さて、編集対象オブジェクトのサイズ変更の方法に関してその処理方法について詳細に説明を加える。演算処理回路(CPU)101は、プログラムメモリ102に記録されているプログラムにしたがって、各種の処理を実行する。演算処理回路(CPU)101で行われる処理を説明するフローチャートを図10に示す。なお、ステップ内でデータを処理する必要がある場合にそのデータがどこから来たものか示した方がよりシステムの振る舞いが明確になるので、ステップ内容に応じてはデータの流れを表わすデータフロー図(図11)も参照しながらの説明を行なう。ちなみにデータフロー図とはオブジェクト指向分析では広く知られた表記法であるが、システムで計算される値の間の関数的な関係を示し、そこには入力値・出力値・内部データストアを含む。データフロー図は、オブジェクト内部のデータソースからデータを変換するプロセスを経由して、他のオブジェクト内部の目標へ至るデータの流れを示すグラフである。データフロー図では、データを変換するプロセス(楕円で示される)、データを運ぶデータフロー(矢印で示される)、データの生産と消費を示すアクターオブジェクト(長方形で示される)、受動的にデータの格納を行なうデータストアオブジェクト(2本の太い直線に挟まれ示される)によって構成されている。
【0057】
図10に示したフローチャートはサブルーチンであり、メインのルーチンの中からあるイベントがあればコールされることになる。本実施例ではある定義された時間ごとにイベントを発生させてコールさせることとするが、他のハードウエアからの割り込みをイベントとして用いるなどの他の方法でも実装可能である。本システムはサイズ変更のできる状態(以後、スケーリングモードと呼ぶ)とそうでない状態の2つの状態を持つが、最初に図10に示したサブルーチンを呼ぶ前はスケーリングモードでない状態であるように初期化されていることをメインルーチンは保証する必要がある。以下の説明ではスケーリングモードであるときにはスケーリングフラグをONにし、そうでない状態のときはスケーリングフラグをOFFにする。よって第1回目のイベント発生前にはスケーリングフラグはOFFになっている。
【0058】
図10に示したサブルーチンがコールされるとまずS101のステップの処理を行なう。このステップではポインティングデバイスから得られた位置情報を用いて、コンピュータ内のワールド座標系における位置を算出する。データの流れは図11のA101[編集対象オブジェクトの位置入力装置]のポインティングデバイスで得られた位置情報がP101[編集対象オブジェクトの仮想空間上の位置の算出]のプロセスへ取り込まれ位置算出処理が行なわれる。図11のP101[編集対象オブジェクトの仮想空間上の位置の算出]は、図10のS101すなわち本ステップでの処理に対応している。
【0059】
続いてS102においてオブジェクトの位置と定義領域で重なりがあるかどうかを算出する。このとき固定されている定義領域の領域データは図1のデータメモリ103あるいは外部記憶装置107に記憶されているので、これら(図11ではD101[定義された領域の位置(領域)データ])の記憶手段から該当データを、またオブジェクトの位置情報は上記算出結果を図11のP101[編集対象オブジェクトの仮想空間上の位置の算出]からデータを得て、重なりを算出する。図11のP102[重なりを計算]が本ステップS102の処理に対応する。重なり判定の方法については前述した手法のいずれかを適用する。
【0060】
S103の判定で重なりがない場合にはスケーリングフラグをOFFにして本サブルーチンを抜ける。重なりがある場合には続いてS104で現在既にスケーリングモードに入っているかをフラグによって判断する。初めて重なりを持ったとき、あるいは重なりのない状態から重なり状態になったときはまだスケーリングモードでない状態なので次にS107の処理を行なう。
【0061】
S107ではスケーリングフラグをONにするとともに図2で説明したインディケータ203を表示することにより、スケーリングモード状態にあることを示す。図2のインディケータ203ではオブジェクトのまわりに長方形状のインディケータによりモードを示しているが、インディケータは他の形状を用いることも可能であるし、インディケータを用いずオブジェクトの色を変えたりするなどの表示方法も可能である。
【0062】
S107の処理後はS108においてS101で算出した位置データを保存しておく。これは定義領域にオブジェクトが入った(重なりのない状態から重なった)時点でのコンピュータ仮想空間(または平面)上の位置情報を記録しておくということにあたる。データフロー図(図11)ではP101[編集対象オブジェクトの仮想空間上の位置の算出]からD102[基準位置データとして格納]へとデータが流れる。この流れが起きるのはこのステップにおいてのみである。S108の処理後、本サブルーチンから抜ける。
【0063】
さて、S104でスケーリングフラグがONだった場合には既にスケーリングモードであることから、前述のS108で記録されている位置情報があるのでこれと今回S101で算出した位置情報との差すなわち移動量を算出する。図11のD101[定義された領域の位置(領域)データ]内のデータと今回P101[編集対象オブジェクトの仮想空間上の位置の算出]から得られた位置データを用いて処理する(P103[移動量算出])。なお、P102[重なりの計算]から来るデータは重なりがあったかなかったか(0か1)だけである。ここで移動量の算出方法について次のような方法がある。
【0064】
(1)単純に移動量のユークリッド距離を計算する方法。図12でdと書かれた距離情報である。図12では、P1が定義領域と重なり始めた際の点で、P2が最新の位置情報である。距離d,1201とはP1からP2へのベクトルのノルム(長さ)である。
【0065】
(2)定義された軸方向の移動成分を取り出し、それを移動量とする方法。図13の例ではx軸が定義してあり、移動量としてdxを用いる。軸は複数持つ事ができ、2軸の場合を図14、3軸の場合を図15に示す。各軸方向の成分の長さを算出するためには、各軸方向の単位ベクトルとP1からP2のベクトルの内積を求めればよい。その性質上、軸に対する向きによって正負または0の値を持つことになる。図14や図15などのように複数の軸が定義できる場合には、それぞれの軸方向の移動量を異なる属性に関連付けることができる。例えば図15の例の場合は、dx、dy、dzをそれぞれ物体のx軸方向、y軸方向、z軸方向のサイズ変更に用いることができ、また、dx、dy、dzをそれぞれ物体の反射光の明るさ、光沢、色に関連付けることができる。この軸の設定方法にも二通りある。ワールド座標に対して相対関係が常に一定であるように設定する方法と定義領域のローカル座標に対して相対関係が常に一定であるように設定する方法である。しかしこの実施例では定義領域が固定であるのでこの二つに明確な差異は生じない。なお、本実施例では定義領域のx軸方向の成分を移動距離として使うこととする。
【0066】
図10のフローの説明に戻る。算出された移動量をもとにS106の編集対象オブジェクトに対するサイズ変更(スケーリング)処理を行なう。データフロー図(図11)においてはP103[移動量算出]から得られた移動量をP104[サイズ変更]のサイズ変更に用いている。P104[サイズ変更]は本ステップS106の処理に対応している。ここでのサイズ変更処理はたとえば次のように行われる。図11のP103[移動量算出]から得られた移動量データがdistとすると(本実施例ではdist=dxとなる)、スケーリングファクターすなわちサイズ変更比例係数をsとすると、s=1+k・distで算出したsを適用して(乗ずることにより)サイズ変更を行なう。なお前式でkは任意の定数である。この式を用いると直線的にサイズが変更できる。本実施例では移動量distは負の値もとりうるのでその場合には物体のサイズは元より小さくなる。もちろん前式ではない他の関数を適用することもできる。S106の処理が完了すると本サブルーチンを抜ける。
【0067】
なお、上記実施例では変形できるモード(状態)にあるかどうかをフラグによって識別したが、状態を記述するほかの方法(例えばデザインパターンの一つであるステートパターンなど)を用いても実装することができる。
【0068】
[実施例2]
実施例2で示すのは編集対象オブジェクトの位置を固定して、サイズ変更のための定義領域の位置を変化させる構成である。ポインティングデバイスが一つしかないときには、編集中のオブジェクトを一度作業空間(または平面)において、この移動可能な定義領域にポインティングデバイスの制御を移すなどの手順が事前に必要となる。この実施例を実現するための入力装置(図1の106)としては、実施例1と同様にマウスを用いたり(図3、但し指し示すものは定義領域となる)、タブレットを用いたり(図4、但し指し示すものは定義領域となる)または他のセンサやポインティングデバイスなどを用いる。
【0069】
ユーザーが編集対象オブジェクトのサイズを変更させるときの本システムの振る舞いを図16に示す。動かないオブジェクト1602に対し、画面3−2のように定義領域1601を移動させてオブジェクト1602に重ねあわせてサイズ変更モードに入る。この時、実施例1と同様、インディケータ1603を表示することが望ましいる。定義領域1601を移動することで画面3−3のようにオブジェクト1602の属性(サイズ)を変更する。
【0070】
この実施例では実装としては基本的には実施例1と大きな相違点がない。フローチャートを図17に、データフロー図を図18に示す。本フローチャートに示される処理はサブルーチンであり、実施例1と同様にメインルーチン内よりある一定時間ごとによばれることとする。実施例2での処理が実施例1と異なる点はS201で得られる位置情報が図10のS101とは異なり定義領域の位置情報であるということだけである。
【0071】
図18のA201[定義領域の位置(ならびに姿勢)入力装置]のポインティングデバイスで得られた位置情報がP201[定義領域の仮想空間上の位置(並びに姿勢)の算出]のプロセスへ取り込まれ位置算出処理が行なわれる。P202[重なりを計算]とP203[移動量を算出]で使われるのは固定の編集対象オブジェクト位置と、ポインティングデバイスから得られた定義領域の位置である。また、重なり始めたときの位置として記憶されるのはやはり定義領域の位置である。よってS208でいう基準位置は図18のP201[定義領域の仮想空間上の位置(並びに姿勢)の算出]からD202[基準位置データ格納]へと入る定義領域の位置である。
【0072】
図18のP203[移動量算出]は、図18のD201[編集対象オブジェクトの位置データ]内のデータとP201[定義領域の仮想空間上の位置(ならびに姿勢)の算出]から得られた位置データを用いて処理する(P203[移動量算出])。これは、図17のS205に対応する。P203[移動量算出]から得られた移動量をP204[サイズ変更]のサイズ変更に用いている。P204[サイズ変更]はステップS206の処理に対応している。
【0073】
S205で行われる移動量の算出については次のようになる。実施例1の説明において移動量の算出方法のうち、定義された軸方向成分を取り出す計算ではワールド座標に対して相対関係が常に一定であるように設定する方法と定義領域のローカル座標に対して相対関係が常に一定であるように設定する方法の2つの方法が有るとした。本実施例では定義領域のみが移動するので、ワールド座標に対して相対関係が常に一定であるよう軸に関する定義領域の位置変化を使うこととする。定義領域のローカル座標に関する軸を用いることもできるが、この方法については実施例3の項で後述する。それ以外の部分については実施例1と基本的に同じなので、実施例1における説明を参照されたい。
【0074】
[実施例3]
実施例3で示すのは編集対象オブジェクトの位置、ならびにサイズ変更用定義領域の位置の両方が変化する場合である。
【0075】
基本的な振る舞いは実施例1や実施例2と同じで編集対象オブジェクトと定義領域が重なり始めた位置から重なりが終わった位置までの移動量でサイズ変更を行なう。
【0076】
この実施例の具体的な実装方法をこれより述べる。基本的に実施例1あるいは2と共通部分が多い。共通の部分は実施例1で説明を行なったので、異なる部分に対しての説明を主にこれより行なう。システムの構成例は図1に示す通りである。構成そのものは実施例1と同じである。ただし図1の入力装置106に関しては2つ以上のポインティングデバイスが必要となる。構成例を図19、図20に示す。図19の構成例ではマウスを2つ用い、一方が編集対象オブジェクト、他方が定義領域に対応している。図20の構成では、マウスとタブレットの組み合わせでそれぞれの移動を実現している。ただし、タブレットでペンを2つ以上センシングできるデバイスを用いれば図21のように、本実施例において適用可能なポインティングデバイスを構成することができる。すなわち、一方のペンで編集対象オブジェクト、他方のペンで定義領域の移動を行なうように構成する。
【0077】
編集対象作業空間が3次元であれば図22のように2つの3次元入力センサによって構成することができる。図22で3次元空間上の編集対象オブジェクト2202に対応づけられた入力用ポインティングデバイス2204、3次元空間上の定義領域2201に対応づけられた入力用ポインティングデバイス2203をオペレータが操作することでディスプレイ上の編集対象オブジェクト2202、定義領域2201の相対移動を行なう。オペレータは、左右両手に持ったそれぞれのポインティングデバイスを自由に動かすことができ、左手で操る編集対象物体に対して、左手で操るサイズ変更用定義領域を重ねてその相対位置を変化させることによりサイズ変更を行なう。
【0078】
図1の演算処理回路101で行われる処理を表わすフローチャートを図23に示す。また、システム全体にわたるデータの流れを述べるためのデータフロー図を図24に示す。本フローチャートに示される処理はサブルーチンであり、実施例1などと同様にメインルーチン内である定義時間ごとに発生するイベントがあると呼ばれるものとする。
【0079】
実施例3での処理が実施例1や2と大きく異なる点はデータフロー図(図24)を見るとわかりやすい。まず、アクターとしての入力がA301[編集対象オブジェクトの位置入力装置]とA302[定義領域の位置入力装置]と2つになっていることであり、したがってその情報に対する仮想空間における位置(または+姿勢)の算出処理もそれぞれに必要になっていることである。フローチャート(図23)でもこれまで1ステップであった部分がS301とS302の2ステップになっている。すなわた、S301では、編集対象オブジェクト、S302では、定義領域の位置をそれぞれ求める。
【0080】
ステップS303〜S309は、実施例1における処理フロー(図10)のステップS102〜S108とほぼ同様である。以下、相違点について説明する。実施例3においては、実施例1や2のように、重なり始めたときの位置を基準位置として記憶する必要がある(図23のS309)が、このとき、対象物体の位置と定義領域の位置をそれぞれの基準位置として記憶する。データフロー図(図24)ではD301[定義位置データ格納]とD302[オブジェクト基準位置データ格納]へと記憶される。P305[定義領域の仮想空間上の位置(領域)の算出]からD301[定義位置データ格納]、P301[編集対象オブジェクトの仮想位置空間上の位置の算出]からD302[オブジェクト基準位置データ格納]へデータが流れるのはこのS309のときだけである。データストアはこのように2つ必要になる。
【0081】
さて、これまでの実施例と比べて計算が少し複雑になるのが移動量計算ステップS306である。このステップはデータフロー図(図24)においてはP303[移動量を算出]で表されるが、この算出プロセスで使われるデータは、
▲1▼P305[定義領域の仮想空間上の位置(領域)の算出]からの今回算出された仮想空間上の定義領域の位置と姿勢
▲2▼P301[編集対象オブジェクトの仮想位置空間上の位置の算出]からの今回算出された仮想空間上の対象物体の位置
▲3▼D301[定義位置データ格納]からの定義領域の基準位置
▲4▼D302[オブジェクト基準位置データ格納]からの対象物体の基準位置
である。
【0082】
ちなみにP302[重なりを計算]からの矢印は重なりがあったかどうかの1か0かの情報の流れを示すのみである。さて、本ステップ(S306)における算出方法の一例は、上の4種類のデータのうち▲3▼と▲1▼を使って定義位置の移動量を計算し▲4▼と▲2▼を使い対象物体の移動量を計算後その2つの計算結果を使って定義領域に対する対象物体の相対的な移動量を算出する方法である。上では2つの段階に分けて算出する表現を取ったが、数式にするとこれを一つのステップにまとめることができる。いずれにせよ、定義領域のローカル座標における対象物体の移動量がここで計算されるのである。他の部分はこれまでの実施例と同様である。
【0083】
[実施例3の変更例]
上記実施例3は定義領域と対象物体の基準位置をそれぞれ維持する必要があり、しかも移動量算出ステップで扱うデータの種類が多かったが、あらかじめ相対位置情報で管理しておくとデータの流れはすっきりとする。この実施例3のマイナー変更例を実現するためのフローチャートが図25であり、データフロー図が図26となる。本実施例では、図25に示すように新たにS311という、定義領域のローカル座標系における対象物体の位置を算出するステップを追加している。
【0084】
重なり算出ステップ(S303)が、実施例1などと同様に対象物体のバウンディングボックスの重心と定義領域(=そのバウンディングボックス)との重なりを使うので、図25のS303での算出はS311の結果を使うと容易になる。またS309での基準位置の記憶もデータ一つだけでよく(図26のP306[編集対象オブジェクトの定義領域との相対位置の算出]からD301[相対位置基準位置データ格納]への流れ)、S308の移動量算出ステップも容易になる。実際に、図26のようにデータの流れの管理が容易になるメリットを持つ。
【0085】
実施例3ならびにそのマイナー変更版では移動量の算出に対象物体の定義領域に対する相対的な移動量を用いたが、これに対し対象物体のワールド座標系に対する移動量を用いる方法も考えられる。この場合、定義領域はただサイズ変更モードのON・OFFのみに使われることになる。用途によればこの方法の方が入力しやすい場合もある。
【0086】
[実施例4]
これまでの実施例では連続的にサイズを変更することを特徴としているが、この実施例4ではある一定の度合いでのサイズ変更を繰り返して行なうことで所望するサイズに変更することを特徴とする。この実施例においてもこれまで説明した実施例1から実施例3のようにそれぞれの位置を固定したり移動可能にしたりといった構成が可能であるが、本実施例では上記実施例3のように編集対象オブジェクトと定義領域の両方がユーザーによって移動可能な場合に限って説明を行なうこととする。図1の入力装置106は、例えば図27のような構成として実現できる。図27で仮想空間上の編集対象オブジェクト2702に対応づけられた入力用ポインティングデバイス2704、仮想空間上の定義領域2701に対応づけられた入力用ポインティングデバイス2702の両センサをオペレータが操作することによってセンサの3次元空間での動きを検出してディスプレイ上の編集対象オブジェクト2702と定義領域2701とを相対移動させる。
【0087】
図27では定義領域2701が一例として「魔法の杖」のメタファーになっており、それに対応するポインティングデバイス2703もやはりその形状によりその機能をわかりやすく示すものとなっている。振る舞いとしては図28に示すように、定義領域2801が編集対象オブジェクト2802に重なると決められた増分だけサイズを変更している。定義領域は、図29の(a)のようにサイズを大きくするためだけの定義領域(L)と29(b)のように小さくするための定義領域(S)の二つを独立に持つ実装方法がある。
【0088】
また、図30のようにサイズ変更を大きくする部分としての定義領域L,3001と小さくする部分としての定義領域S,3002の2つの領域を結合した状態で一つのセンサに対応させる実装方法も有る。本実施例では図29の(a)の構成を使った場合について説明する。ここで説明する方法は他の方法にも簡単に応用が可能である。
【0089】
図1の演算処理回路101で行なわれる処理を表わすフローチャートを図31に示す。また、システム全体にわたるデータの流れを述べるためのデータフロー図を図32に示す。本フローチャートに示される処理はサブルーチンであり、実施例1などと同様にメインルーチン内である定義時間ごとに呼ばれるものとする。
【0090】
本サブルーチンではS401ならびにS402のステップで、実施例3のとき同様に、それぞれ対象物体と定義領域の仮想空間内での領域位置が算出される。しかしこれらのデータが使われるのは重なりがあるかどうかを計算するためだけである。このことはデータフロー図(図32)を見ても明白である。
【0091】
アクターとしての入力は、実施例3と同様、A401[編集対象オブジェクトの位置入力装置]とA402[定義領域の位置入力装置]と2つになっており、したがってその情報に対する仮想空間における位置(または+姿勢)の算出処理(P401,P405)もそれぞれに必要になる。P401[編集対象オブジェクトの仮想空間上の位置の算出]と、P405[定義領域の仮想空間上の位置(領域)の算出]に基づいてP402[重なりを計算]が実行される。
【0092】
P402[重なりを計算]における重なりの計算については実施例1同様に、本実施例でも対象オブジェクトのバウンディングボックスの重心が、定義領域のバウンディングボックスの中にあるかどうかで算出することとする(S404)。算出方法については実施例1のところで書いたように他の実装方法もある。
【0093】
判別ステップS404で重なりがあった場合で、スケーリングフラグがonでなかった場合には、領域の中に対象物体が入った瞬間であるのでこのときにS406でフラグをonしたのち、S407で対象物体に対してサイズ変更、すなわちP404[一定量サイズ変更]を行なう。サイズ変更は固定された増分をΔsとすると、s=1+Δsとして算出したsをスケールファクター(係数)としてサイズ変更を行なう。
【0094】
このルーチンにおいてスケーリングフラグの振る舞いはこれまで紹介した実施例1から3までのものと同じであるが、領域に入ったときだけサイズ変更を行なうことを保証するために使用されているところが異なる。
【0095】
[実施例5]
これまで説明を加えてきた実施例1から4についてであるが、入力装置(図1における106)に上記実施例で用いた位置入力に加えてさらにon/offを検出できるボタンなどのイベントを発生するデバイスとの組み合わせにより異なった入力指示方法が可能となる。ここでは実施例1に関してのバリエーションを説明する。
【0096】
この実施例ではユーザーは以下のようなシナリオで編集オブジェクトへの変形操作を行なう。図2を再び参照して説明する。
【0097】
画面2−1の状態から編集対象オブジェクト202を定義領域201に入れる。画面2−2のように編集対象オブジェクト202が定義領域201に入るとインディケータ203が表示される。インディケータ203は定義領域に入った(重なった)ことを示しているので、このときにボタンを押せばスケーリングモードに入る。ユーザはボタンを押しながら対象物体を移動すると移動量に応じて対象物体のサイズが変化する(画面2−3)。ユーザーがボタンを離すとその時点でサイズ変更が確定(すなわち終了)する。
【0098】
本実施例の実施例1との相違点は前述の通り図1の入力装置106にボタンが追加されることであり、図1の演算処理回路101で処理されるルーチンも異なる。図33にそのサブルーチンを示す。これまでと同様、メインルーチン内においてある時間ごとに発生するイベントによってこのサブルーチンは呼ばれる。異なるのはS504、すなわちボタンが押されているか否かの判定処理が追加されたことである。なお、S504ではボタンが押されたかどうかのチェックをするのみでなく、前述のシナリオで登場したインディケータを表示することも行なう。他の部分は実施例1と同じである。データフロー図も図11と同様のフローとなる。
【0099】
すなわち、本実施例では、S504のボタンが押されているの判定がYesであれば、S505以下のスケーリングモードによる処理が実行され、S504のボタンが押されているの判定がNoであればスケーリングモードによる処理は実行されず、S510においてスケーリングフラグがOFFに設定されて、処理を終了する。
【0100】
本実施例は実施例1をベースにした例として説明しているが、ボタンの付加は実施例2から4に対しても適用できる。実施例3に適用した例を参考までに図34に挙げる。
【0101】
図34において、S601〜S604は実施例3の図23のS301〜S304と同様である。S304のYesの判定の次ステップとして、S605のボタンが押されているか否かの判定処理が追加されている。なお、S605ではボタンが押されたかどうかのチェックをするのみでなく、前述のシナリオで登場したインディケータを表示することも行なう。以下のステップは実施例3と同様である。S605のボタンが押されているの判定がYesであれば、S606以下のスケーリングモードによる処理が実行され、S605のボタンが押されているの判定がNoであればスケーリングモードによる処理は実行されず、S611においてスケーリングフラグがOFFに設定されて、処理を終了する。
【0102】
また、実施例1にボタンを付加し、さらに、ボタンを押したまま、編集対象オブジェクトが定義領域を離れた場合に、スケーリング処理を続行する構成の処理フローを図35に示す。
【0103】
図35の処理フローにおいて、S701,S702は、実施例1の処理フローである図10のS101,S102と同様の処理である。S703では、スケーリングフラグがONであるか否かが判定される。Yesの判定である場合は、S711においてボタンが押下中であるか否かが判定される。Yesの場合は、スケーリングモードが続行されていると判定され、S706で基準位置との差(移動量)が算出され、S707で移動量に基づいてスケーリング処理が実行される。
【0104】
S711においてボタンが押されていないと判定されると、S710に進みスケーリングフラグをOFFとしてスケーリングモードから抜ける。
【0105】
また、S704において重なりがあると判定された場合、S705においてボタンが押下中であるか否かが判定される。Yesの場合は、スケーリングフラグをON(S708)とし、S709で今回の仮想世界でのオブジェクトの位置を基準位置として保存する。S705においてボタンが押されていないと判定されると、S710に進みスケーリングフラグをOFFとしてスケーリングモードから抜ける。
【0106】
この処理は、ボタンを押したまま、編集対象オブジェクトが定義領域を離れた場合に、スケーリング処理を続行することを可能としたものである。本構成も、他の実施例2〜4においても適用できる。実施例4における構成としては、ボタンを押下中は、一定量のサイズ変更が繰り返し実行される構成として実現することができる。
【0107】
なお、図1に示したオブジェクト属性変更処理装置では、属性変更の処理プログラムをプログラムメモリ102に格納しているが、例えばCD−ROMあるいはDVD−ROM、CD−R、CD−RW、DVD−RAM、DVD−RW、DVD+RWのような光ディスクに格納してもよいし、MOのような光磁気ディスクに格納してもよい。また、ハードディスクあるいはフロッピーディスクのような磁気ディスクに格納してもよい。あるいはメモリースティックのような半導体メモリに格納してもよい。いずれにしても、これまでの実施例で論じてきた編集のための入力方法に関する処理プログラムを供給する供給媒体からその処理プログラムを読み出して実行すれば、該物体への編集において該物体のサイズなどの属性変更などを容易かつ効果的に行なうことができるようになる。
【0108】
上述した実施例においては物体の属性の一つである「サイズ(大きさ)」を変更するための方法・装置として説明したが、上述した定義領域を例えば編集対象オブジェクトの色や明るさや光沢度や構成するポリゴンの数などといった、オブジェクトの様々な属性を変更する定義領域として定義する構成とすることにより、オブジェクトの様々な属性を上述のスケーリング処理と同様に変更する構成が実現される。本発明は、スケーリング処理に限らず、編集対象オブジェクトの属性の変更処理全般に適用可能なものである。例えば、オブジェクト変形ツール、仮想カタログビューワーのユーザーインターフェースとして応用できる。
【0109】
上述の構成では、スケーリング処理として、定義領域での移動距離に基づく拡大処理を中心として説明したが、例えば変形処理として、3次元モデルに対してへこみあるいは凸部を形成する処理に適用する構成として、定義領域内での編集対象オブジェクトの移動距離に応じて、へこみあるいは凸部の大きさを変更するようにオブジェクトの属性を変更する処理を実行したり、また、オブジェクトの色属性を定義領域内での編集対象オブジェクトの移動距離に応じて、RGB値を変更するように構成することが可能である。
【0110】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0111】
【発明の効果】
上述の説明から、明らかなように、本発明のオブジェクト属性変更処理装置、オブジェクト属性変更処理方法、および3次元モデル処理装置、3次元モデル処理方法、並びにプログラム提供媒体によれば、編集対象オブジェクトと定義領域との重なりに基づいて、編集対象オブジェクトの属性変更モードへの切り換えを実行し、定義領域内での移動、あるいは定義領域への重なりの発生に基づいて所定の属性変更、例えばスケーリング処理が実行される構成であるので、コンピュータを利用したオブジェクト編集システムの作業が容易に実行可能となる。従って、コンピュータのマウス、キーボード等、各種の入力装置の扱いに不慣れな低年齢の幼児や高齢者にとってのインターフェースとして有効である。デジタル技術を使った情操教育玩具や、オンラインショッピングまたはコミュニケーションツールへの応用が期待できる。
【図面の簡単な説明】
【図1】本発明のオブジェクト属性変更処理装置のハードウェア構成例を示すブロック図である。
【図2】本発明のオブジェクト属性変更処理装置の実施例1の処理概要を説明する図である。
【図3】本発明のオブジェクト属性変更処理装置の実施例1の入力装置例(その1)を示す図である。
【図4】本発明のオブジェクト属性変更処理装置の実施例1の入力装置例(その2)を示す図である。
【図5】本発明のオブジェクト属性変更処理装置における重なり判定に適用可能なバウンディングボックスについて説明する図(その1)である。
【図6】本発明のオブジェクト属性変更処理装置における重なり判定に適用可能なバウンディングボックスについて説明する図(その2)である。
【図7】本発明のオブジェクト属性変更処理装置における重なり判定に適用可能なバウンディングボックスについて説明する図(その3)である。
【図8】本発明のオブジェクト属性変更処理装置における重なり判定に適用可能なバウンディングボックスについて説明する図(その4)である。
【図9】本発明のオブジェクト属性変更処理装置における重なり判定に適用可能なバウンディングボックスについて説明する図(その5)である。
【図10】本発明のオブジェクト属性変更処理装置における実施例1の処理を説明するフローチャート図である。
【図11】本発明のオブジェクト属性変更処理装置における実施例1の処理を説明するデータフロー図である。
【図12】本発明のオブジェクト属性変更処理装置における移動距離算出に適用可能な距離算出処理例について説明する図(その1)である。
【図13】本発明のオブジェクト属性変更処理装置における移動距離算出に適用可能な距離算出処理例について説明する図(その2)である。
【図14】本発明のオブジェクト属性変更処理装置における移動距離算出に適用可能な距離算出処理例について説明する図(その3)である。
【図15】本発明のオブジェクト属性変更処理装置における移動距離算出に適用可能な距離算出処理例について説明する図(その4)である。
【図16】本発明のオブジェクト属性変更処理装置の実施例2の処理概要を説明する図である。
【図17】本発明のオブジェクト属性変更処理装置における実施例2の処理を説明するフローチャート図である。
【図18】本発明のオブジェクト属性変更処理装置における実施例2の処理を説明するデータフロー図である。
【図19】本発明のオブジェクト属性変更処理装置の実施例3の入力装置例(その1)を示す図である。
【図20】本発明のオブジェクト属性変更処理装置の実施例3の入力装置例(その2)を示す図である。
【図21】本発明のオブジェクト属性変更処理装置の実施例3の入力装置例(その3)を示す図である。
【図22】本発明のオブジェクト属性変更処理装置の実施例3の入力装置例(その4)を示す図である。
【図23】本発明のオブジェクト属性変更処理装置における実施例3の処理を説明するフローチャート図である。
【図24】本発明のオブジェクト属性変更処理装置における実施例3の処理を説明するデータフロー図である。
【図25】本発明のオブジェクト属性変更処理装置における実施例3の変更例の処理を説明するフローチャート図である。
【図26】本発明のオブジェクト属性変更処理装置における実施例3の変更例の処理を説明するデータフロー図である。
【図27】本発明のオブジェクト属性変更処理装置の実施例4の入力装置例(その1)を示す図である。
【図28】本発明のオブジェクト属性変更処理装置の実施例4の処理概要を説明する図である。
【図29】本発明のオブジェクト属性変更処理装置の実施例4の定義領域の例(その1)を示す図である。
【図30】本発明のオブジェクト属性変更処理装置の実施例4の定義領域の例(その2)を示す図である。
【図31】本発明のオブジェクト属性変更処理装置における実施例4の処理を説明するフローチャート図である。
【図32】本発明のオブジェクト属性変更処理装置における実施例4の処理を説明するデータフロー図である。
【図33】本発明のオブジェクト属性変更処理装置における実施例5の処理(その1)を説明するフローチャート図である。
【図34】本発明のオブジェクト属性変更処理装置における実施例5の処理(その2)を説明するフローチャート図である。
【図35】本発明のオブジェクト属性変更処理装置における実施例5の処理(その3)を説明するフローチャート図である。
【符号の説明】
101 演算処理回路
102 プログラムメモリ
103 データメモリ
104 フレームメモリ
105 画像表示装置
106 入力装置
107 外部記憶装置
108 バス
201 定義領域
202 編集対象オブジェクト
203 インディケータ
401 枠
601,602 バウンディングボックス
603 重なり領域
701,702 バウンディングボックス
801 編集対象オブジェクト
802,803 バウンディングボックス
804 重なり領域
901,902 バウンディングボックス
903 重心
1601 定義領域
1602 編集対象オブジェクト
1603 インディケータ
2201 定義領域
2202 編集対象オブジェクト
2203,2204 3次元センサ
2701 定義領域
2702 編集対象オブジェクト
2703,2704 3次元センサ
2801 定義領域
2802 編集対象オブジェクト
3001 定義領域L
3002 定義領域S
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an object attribute change processing device, an object attribute change processing method, a 3D model processing device, a 3D model processing method, and a program providing medium. More specifically, for example, an object attribute change processing device, an object which enables an operator to easily perform attribute change processing for an object displayed on a display such as a PC or CAD, as a process with improved operability The present invention relates to an attribute change processing method, a three-dimensional model processing device, a three-dimensional model processing method, and a program providing medium.
[0002]
[Prior art]
In the conventional image processing system, if you want to execute object attribute change processing such as changing the size of the object to be edited, select the appropriate menu from the menu located at the top of the application window and execute pull-down. Further, complicated processing such as selecting and executing a desired size menu is required. Alternatively, there is a configuration in which a menu display similar to that described above is executed by a combination of keys on the keyboard, and menu selection is executed to perform attribute change processing. Furthermore, a processing mode is also realized in which the size changing process is executed by selecting an icon indicating the size changing process displayed on the display.
[0003]
[Problems to be solved by the invention]
However, the conventional method described above, ie
1) Attribute change processing method by menu
2) Attribute change processing method by key combination
3) Attribute change processing method by selecting an icon
In either case, there are the following problems.
The user is interested in the object being edited, but must change the focus of interest from one object of interest to another while resizing. Further, in order to execute the processes 1) and 2), it is necessary to know the location of the menu and the like, and it is required to be familiar with the system to some extent. Furthermore, the problems common to the above 1), 2), and 3) are that a method (so-called selection operation) that clearly indicates to which object the corresponding processing is processing is necessary, processing order, or combination For example, to force the user to make a promise. None of these attribute change processing methods in the prior art is “intuitive” to the user as an interface.
[0004]
The object of the present invention is to solve such problems in the prior art, making it possible to easily perform the work of an object editing system using a computer, and various inputs such as a computer mouse and keyboard. Object attributes that realize systems and methods that are effective as an interface for young children and elderly people who are unfamiliar with device handling, and that can be applied to emotional educational toys using digital technology, online shopping, or communication tools An object is to provide a change processing device, an object attribute change processing method, a three-dimensional model processing device, a three-dimensional model processing method, and a program providing medium.
[0005]
[Means for Solving the Problems]
  The first aspect of the present invention is:
  An object attribute change processing device that changes an attribute of an object to be edited displayed on a display,
  It is determined whether or not there is an overlap between the object area associated with the edit target object displayed on the display and the attribute change definition area defined on the display, and the edit target is determined based on the overlap determination. Control means for executing processing for switching to object attribute change modeHave
The control means determines a change amount of the attribute of the edit target object based on a change amount of a relative positional relationship between the object region associated with the edit target object and the attribute change definition region, and the determination Configured to execute processing for changing the attribute of the object to be edited based on the attribute change amountIn the object attribute change processing device.
[0014]
  Furthermore, the second aspect of the present invention provides
  It is an object attribute change processing method that changes the attribute of the object to be edited displayed on the display.
  An overlap determination step for determining whether or not there is an overlap between an object region associated with an edit target object displayed on the display and an attribute change definition region defined on the display;
  Based on the overlap determination, a mode switching step for performing a switching process to the attribute change mode of the object to be edited,
A change amount of the attribute of the edit target object is determined based on a change amount of a relative positional relationship between the object region associated with the edit target object and the attribute change definition region, and the determined attribute change amount An object attribute changing step for changing the attribute of the object to be edited based on
  In the object attribute change processing method.
[0022]
  Furthermore, the third aspect of the present invention provides
  A 3D model processing apparatus for changing attributes of a 3D model as an object to be displayed displayed on a display;
  It is determined whether or not there is an overlap between the object region associated with the three-dimensional model to be processed displayed on the display and the attribute change definition region defined on the display, and based on the overlap determination, the three-dimensional Control means for executing switching process to attribute change mode of modelHave
The control means determines a change amount of the attribute of the edit target object based on a change amount of a relative positional relationship between the object region associated with the edit target object and the attribute change definition region, and the determination Configured to execute processing for changing the attribute of the object to be edited based on the attribute change amountIn the three-dimensional model processing apparatus,
[0025]
  Furthermore, the fourth aspect of the present invention provides
  A 3D model processing method for changing an attribute of a 3D model as an object to be displayed displayed on a display,
  An overlap determination step for determining whether or not there is an overlap between the object region associated with the three-dimensional model to be processed displayed on the display and the attribute change definition region defined on the display;
  A mode switching step for executing a switching process to the attribute change mode of the three-dimensional model based on the overlap determination;
A change amount of the attribute of the edit target object is determined based on a change amount of a relative positional relationship between the object region associated with the edit target object and the attribute change definition region, and the determined attribute change amount An object attribute changing step for changing the attribute of the object to be edited based on
  There is a three-dimensional model processing method characterized by comprising:
[0028]
  Furthermore, the fifth aspect of the present invention provides
  A program providing medium for providing a computer program for causing an object attribute change process for changing an attribute of an object to be displayed displayed on a display to be executed on a computer system, the computer program comprising:
  An overlap determination step for determining whether or not there is an overlap between an object region associated with an edit target object displayed on the display and an attribute change definition region defined on the display;
  Based on the overlap determination, a mode switching step for performing a switching process to the attribute change mode of the object to be edited,
A change amount of the attribute of the edit target object is determined based on a change amount of a relative positional relationship between the object region associated with the edit target object and the attribute change definition region, and the determined attribute change amount An object attribute changing step for changing the attribute of the object to be edited based on
  There is a program providing medium characterized by comprising:
[0029]
The program providing medium according to the fifth aspect of the present invention is a medium that provides a computer program in a computer-readable format to, for example, a general-purpose computer system that can execute various program codes. The form of the medium is not particularly limited, such as a storage medium such as a CD, FD, or MO, or a transmission medium such as a network.
[0030]
Such a program providing medium defines a structural or functional cooperative relationship between a computer program and a providing medium for realizing a function of a predetermined computer program on a computer system. . In other words, by installing a computer program in the computer system via the provided medium, a cooperative action is exhibited on the computer system, and the same effects as the other aspects of the present invention are obtained. Can do it.
[0031]
Other objects, features, and advantages of the present invention will become apparent from a more detailed description based on embodiments of the present invention described later and the accompanying drawings.
[0032]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of an object attribute change processing device, an object attribute change processing method, a 3D model processing device, a 3D model processing method, and a program providing medium according to the present invention will be described below. In the following, specific embodiments will be described in five forms, Examples 1 to 5. The first to fifth embodiments are implementation methods relating to the size change (hereinafter also referred to as “scaling”) of the edit target object (sometimes referred to as “edit target body”). In the following embodiments, a method / apparatus for changing “size”, which is one of the object attributes, will be described. The same method / apparatus can be applied to change various attributes of an object, such as the number of objects.
[0033]
Hereinafter, the “definition area” refers to an area where the size can be changed when the object to be edited overlaps the area. In the following description, what is called “virtual space” is a space for editing in a computer (computer). If the editing target is two-dimensional, the virtual space is a two-dimensional space, and if it is three-dimensional, the virtual space is a three-dimensional space.
[0034]
In the first to third embodiments, the size change mode is entered while the definition area and the target object share the area, and the size is continuously changed by the change of the relative relationship thereafter. In the fourth embodiment, every time the definition area and the target object share the area, the size is changed by a predetermined amount. In the fifth embodiment, a mode in which button ON / OFF is combined with the previous four embodiments will be discussed. First, components common to the plurality of embodiments will be described.
[0035]
[Common to each example]
The processing system of the present invention is an editing apparatus that executes editing processing in a computer, such as a figure, a picture, or a three-dimensional object (collectively referred to as an object to be edited) using a computer.
[0036]
FIG. 1 is a block diagram showing a hardware configuration example centering on control means of an object attribute change processing apparatus to which the present invention is applied. Arithmetic processing circuit 101 for executing the processing program, program memory 102 for storing the processing program, data memory 103 for storing the processing data, position / attribute of the object to be edited, position / attribute of the definition area, editing contents, etc. A data memory 103 for storing information on the image, a frame memory 104 for storing image information for drawing a figure, a three-dimensional object, a definition area, or an instruction to the user as an object to be processed, and a frame memory 104 An image display device 105 for displaying the image signal stored in the input device, an input device 106 having a mouse, various sensors, and the like as constituent elements (details will be described in each embodiment), and an object to be edited or edit contents. The external storage device 107 and a bus 1 for connecting each circuit to transmit programs and data And a 8.
[0037]
The external storage device 107 is preferably a storage medium capable of random access, such as a hard disk drive (HDD) or an optical disk, but can also be configured as a random access storage medium such as a tape streamer, or a nonvolatile memory represented by a memory stick. May be a semiconductor memory. Alternatively, it may be an external storage device of another system connected to the network. A combination thereof may also be used. The external storage device 107 stores programs and edit target object information, for example, three-dimensional model information. It is also possible to store in the external storage device 107 information necessary for processing the program, such as information relating to objects stored in the data memory 103 and tool status.
[0038]
The input device 106 acquires measurement values from various input devices. When the edit target object is a 3D model, a 3D sensor, a 3D mouse, or the like is used to update the position and orientation of the 3D sensor corresponding to the 3D model that is the edit target object and the edit processing tool. The measurement value of the three-dimensional input device is acquired. For example, a three-dimensional sensor that allows an operator to freely change its position and posture can be used as an input device. The editing apparatus of the present invention can be applied to a two-dimensional figure, and a two-dimensional input device such as a mouse or a tablet can be used. Further, as a configuration for acquiring various input values from a keyboard or a push button having an on / off state, various instruction inputs such as editing tool setting and switching processing may be performed. In the following explanation, “button pressed” means that it will be turned on from off state, “button was released” that it will turn from off state to “on” state, immediately after the button is pressed The operation released to is called “button clicked”. Also, the instruction input by all these button operations is called event input.
[0039]
For example, when the editing object is a three-dimensional model, the data memory 103 stores various three-dimensional model information such as position and orientation information of the three-dimensional model and surface attribute information. The three-dimensional model information is, for example, parameter information for expressing by a free-form surface such as a polygon, a voxel, or NURBS.
[0040]
The arithmetic processing circuit 101 updates the position and the like of the edit target object based on the measurement value obtained from the input device. When the editing target is a three-dimensional model, the position and orientation information of the three-dimensional model and editing tool is updated, and the three-dimensional model information stored in the data memory 103 is changed if necessary. For example, processing for changing surface information such as the shape and color of the surface of a three-dimensional model represented by computer graphics is executed in the arithmetic processing circuit 101 and the surface of the three-dimensional object stored in the data memory 103 is processed. Change attribute information such as color.
[0041]
For example, a three-dimensional model or a two-dimensional figure is displayed on the image display device 105 as an object to be edited. Further, a tool (or pointer) for performing various processing such as attribute change deformation such as enlargement, painting, etc. is displayed on the object to be edited.
[0042]
When the editing target is a three-dimensional model, the editing tool preferably has a configuration in which position and orientation information is changed according to the operation of the tool operating three-dimensional sensor. When the object to be edited is a 3D model, the 3D model displayed on the image display device 105 has a configuration in which the position and orientation information can be changed according to the operation of the 3D sensor for 3D model operation. It is preferable to do. The three-dimensional sensor for operating a three-dimensional model and the three-dimensional sensor for operating a tool are constituted by a magnetic sensor, an ultrasonic sensor, or the like, and their position and orientation information is acquired by magnetism or ultrasonic waves. If there is no need to move the three-dimensional model, the three-dimensional model manipulation three-dimensional sensor is not necessarily required. In this case, enlargement, painting, deformation, etc. are performed on the fixed three-dimensional model by operating only the editing tool. Hereinafter, specific examples of the present invention will be described in detail.
[0043]
[Example 1]
The first embodiment shows a configuration example in which the definition area for changing the size is fixed by changing the position of the object to be edited. A processing image on a computer display is shown in FIG. Reference numeral 201 shown on the screen 2-1 is a definition area for size change, and 202 is an object to be edited. The edit target object 202 can be moved to an arbitrary position by an input from an input device corresponding to the edit target object 202, and the definition area 201 is arranged at a predetermined position in a space (or a plane) where editing is performed. .
[0044]
In order to move the object 202 to be edited, a mouse can be used as one of the components of the input device 106 shown in FIG. FIG. 3 is a diagram showing an operation situation when a mouse is used as an input device. The position input device is not limited to a mouse, and other input devices such as a tablet can be used as shown in FIG.
[0045]
The example using the tablet is advantageous over the example using the mouse, as shown in FIG. 4, in which the work area is physically provided by providing a frame 401 in the portion mapped from the definition area in the virtual space to the coordinate space of the tablet. The location of the definition area inside can be directly informed by the user. When the editing target system is a three-dimensional CG (computer graphics) or CAD (computer-aided design) system, the input device is a sensor such as a three-dimensional sensor (three-dimensional tablet, magnetic sensor, optical sensor, ultrasonic sensor, etc.) Or a combination thereof). In the following description, these position input devices are collectively referred to as a pointing device.
[0046]
Returning to FIG. 2, the description of the operation outline will be continued. As shown in the screen 2-2, when the editing target object 202 shares the area with the definition area 201, a mode in which the size of the target object can be changed enters. This mode change is configured to notify the operator by displaying or hiding the identifiable indicator 203 surrounding the edit target object 202 as shown in the screens 2-2 and 2-3. By displaying the indicator 203 as shown in the screen 2-2 and the screen 2-3, the user knows that the display has entered the size change mode. However, this display is not indispensable in the configuration of the present invention. Various forms of the indicator can be applied. For example, it may be in a form such as a shaded display of the object to be edited.
[0047]
When the target object is moved in the definition area 201, the size is changed according to the moving direction and the moving amount (screen 2-3). That is, the size of the object is changed based on the amount of movement from when the object to be edited overlaps the definition area to when the object disappears. Here, the mode is switched by determining whether the definition area 201 and the editing target object 202 have “overlap”. As the determination process of “whether or not there is an overlap”, for example, any of the following methods can be applied.
[0048]
(1) If a logical operation can be performed between a model expressing the object to be edited 202 and a model expressing the definition area 201, it is possible to know the overlap depending on whether or not two logical products are empty. It is possible to determine whether or not there is an overlap by this logical product. This approach can calculate the true physical overlap between the two. However, calculation is easy in the 2D world, but if 3D is the editing target space, volume data (voxel) or using a polygon model or parametric curved surface, Calculation cost increases.
[0049]
(2) In the editing target and the definition area, a “minimum rectangle including the target object (in the case of two dimensions) or a rectangular parallelepiped (in the case of three dimensions)” called a bounding box can be defined. The area information is always held as an attribute in each of the definition area 201 and the edit target object 202. By detecting the overlap between the bounding boxes of the definition area 201 and the edit target object 202, it is determined whether or not there is an overlap. An example of the bounding box is as shown in FIG. 5A for the two-dimensional case and FIG. 5B for the three-dimensional case.
[0050]
If the boundary of the displayed definition area is a bounding box as it is, the intuitiveness of the interface increases. The following two methods can be considered as the method for determining the overlap. The overlap determination method using the bounding box includes a determination method in a different mode.
[0051]
(2-1) A method in which “overlap” is defined when there is a slight overlap. This is a method of determining that the bounding boxes are “overlapped” when the bounding boxes overlap in a partial area as shown in FIG. 6. For example, in the case of a three-dimensional space, if the bounding box of the object is the bounding box 601 shown in FIG. To do.
[0052]
(2-2) A method of “overlapping” when one bounding box is completely contained in the other box.
As shown in FIG. 7, this is a method for determining that “one overlap” occurs when any of the bounding boxes overlaps the other bounding boxes in the entire region. In the example of the three-dimensional model, it is determined that there is an overlap when the relationship is as shown in FIG. In FIG. 7, one bounding box 701 is completely included in the other bounding box 702.
[0053]
However, when the method of the screen 2-2 shown in FIG. 2 is applied, it is necessary to restrict one of the bounding boxes to be included in the other. For example, in the case of a three-dimensional bounding box, one of the bounding boxes needs to be smaller than the other bounding box in the x, y, and z directions. Considering these restrictions, the former method (2-1) is more realistic. However, the bounding box is often larger than expected depending on the shape of the target object. In this case, it may be determined that the bounding box is overlapped although it is not overlapped. For example, when the editing target object 801 has a shape as shown in FIG. 8, the bounding box becomes a bounding box 802. The bounding box 802 has an overlap 804 with the definition area 803, but the object 801 has no overlap with the definition area 803. Care must be taken in the case of such a shape.
[0054]
(3) An approach for determining whether or not the point associated with the object to be edited is within the bounding box of the definition area. How to determine the point associated with the object to be edited is the key. (3-1) A method using the center of gravity of the bounding box of the object. (3-2) A method of calculating the center of gravity of the object itself. (3-3) A position at the time of selecting an object with the pointing device (a position in the local coordinates of the object) can be considered. Considering the calculation amount and intuition, (3-1) is advantageous. (3-1) A processing example using the center of gravity of the bounding box of the object is shown in FIG. When the center of gravity 903 of the bounding box 901 of the object to be edited is located within the bounding box 902 of the definition area, it is determined that both bounding boxes have overlap.
[0055]
The system of the present invention can be implemented by any of the above methods, but in the following embodiment, it is checked whether or not the center of gravity of the bounding box of the object is within the definition area (= bounding box). Adopt as a method to “check overlap”.
[0056]
Now, a method for changing the size of the object to be edited will be described in detail. An arithmetic processing circuit (CPU) 101 executes various processes according to a program recorded in the program memory 102. FIG. 10 is a flowchart for explaining processing performed by the arithmetic processing circuit (CPU) 101. In addition, when it is necessary to process data within a step, it is clearer how the system behaves by showing where the data came from, so a data flow diagram that represents the flow of data depending on the content of the step The description will be made with reference to FIG. By the way, the data flow diagram is a notation well-known in object-oriented analysis, but it shows a functional relationship between values calculated by the system, including input values, output values, and internal data stores. . A data flow diagram is a graph showing the flow of data from a data source inside an object to a target inside another object through a process of converting data. In the data flow diagram, the process of transforming the data (shown by ellipses), the data flow carrying the data (shown by arrows), the actor object showing the production and consumption of the data (shown by rectangles), the data passively It is composed of data store objects (stored between two thick straight lines) that perform storage.
[0057]
The flowchart shown in FIG. 10 is a subroutine, and is called if there is an event in the main routine. In this embodiment, an event is generated and called at every defined time, but can be implemented by other methods such as using an interrupt from other hardware as an event. This system has two states: a state where the size can be changed (hereinafter referred to as scaling mode) and a state where it cannot be changed, but it is initialized so that it is not in the scaling mode before calling the subroutine shown in FIG. The main routine needs to guarantee that this is done. In the following description, the scaling flag is turned on when the scaling mode is set, and the scaling flag is turned off when the scaling mode is not set. Therefore, the scaling flag is OFF before the first event occurs.
[0058]
When the subroutine shown in FIG. 10 is called, first, the process of step S101 is performed. In this step, the position in the world coordinate system in the computer is calculated using the position information obtained from the pointing device. As for the data flow, the position information obtained by the pointing device of A101 [position input device for edit target object] in FIG. 11 is taken into the process of P101 [calculation of position of edit target object in virtual space] and the position calculation process is performed. Done. P101 [calculation of the position of the object to be edited in the virtual space] in FIG. 11 corresponds to S101 in FIG. 10, that is, the processing in this step.
[0059]
Subsequently, in S102, it is calculated whether there is an overlap between the position of the object and the definition area. Since the area data of the definition area fixed at this time is stored in the data memory 103 or the external storage device 107 in FIG. 1, these (D101 [position (area) data of defined area] in FIG. 11) of these are stored. The corresponding data is obtained from the storage means, and the position information of the object is obtained from the above calculation result P101 of FIG. 11 [Calculation of the position of the object to be edited in the virtual space] to calculate the overlap. P102 [calculate overlap] in FIG. 11 corresponds to the processing in step S102. Any of the above-described methods is applied as the overlap determination method.
[0060]
If there is no overlap in the determination of S103, the scaling flag is turned off and the present subroutine is exited. If there is an overlap, in S104, it is determined from the flag whether the scaling mode is already entered. When there is an overlap for the first time, or when the overlap state is reached from the state where there is no overlap, since it is not yet the scaling mode, the process of S107 is performed next.
[0061]
In S107, the scaling flag is turned ON and the indicator 203 described in FIG. In the indicator 203 in FIG. 2, the mode is indicated by a rectangular indicator around the object. However, the indicator can use other shapes, and displays such as changing the color of the object without using the indicator. A method is also possible.
[0062]
After the processing of S107, the position data calculated in S101 is stored in S108. This corresponds to recording the position information on the computer virtual space (or plane) at the time when the object enters the definition area (from the non-overlapping state). In the data flow diagram (FIG. 11), data flows from P101 [calculation of the position of the object to be edited in the virtual space] to D102 [store as reference position data]. This flow only occurs at this step. After the processing of S108, the process exits from this subroutine.
[0063]
If the scaling flag is ON in S104, it is already in the scaling mode, so there is the position information recorded in S108 described above, so the difference between this and the position information calculated in S101, that is, the amount of movement is calculated. calculate. Processing is performed using the data in D101 [position (area) data of defined area] in FIG. 11 and the position data obtained from P101 [calculation of the position of the object to be edited in the virtual space] (P103 [movement Amount calculation]). The data coming from P102 [overlap calculation] is only whether or not there is an overlap (0 or 1). Here, there are the following methods for calculating the movement amount.
[0064]
(1) A method of simply calculating the Euclidean distance of the movement amount. It is the distance information written as d in FIG. In FIG. 12, P2 is the latest position information at the point when P1 begins to overlap the definition area. The distance d, 1201 is the norm (length) of the vector from P1 to P2.
[0065]
(2) A method in which a defined axial movement component is extracted and used as a movement amount. In the example of FIG. 13, the x-axis is defined, and dx is used as the movement amount. A plurality of axes can be provided, and the case of two axes is shown in FIG. 14 and the case of three axes is shown in FIG. In order to calculate the length of the component in each axial direction, the inner product of the unit vector in each axial direction and the vector from P1 to P2 may be obtained. Due to its nature, it has a value of positive or negative or 0 depending on the direction with respect to the axis. When a plurality of axes can be defined as shown in FIGS. 14 and 15, the amount of movement in each axial direction can be associated with different attributes. For example, in the example of FIG. 15, dx, dy, and dz can be used to change the size of the object in the x-axis direction, the y-axis direction, and the z-axis direction, respectively, and dx, dy, and dz are reflected on the object, respectively. Can be related to light brightness, gloss, and color. There are two ways to set this axis. There are a method of setting the relative relationship always constant with respect to the world coordinates and a method of setting the relative relationship always constant with respect to the local coordinates of the definition area. However, since the definition area is fixed in this embodiment, there is no clear difference between the two. In this embodiment, the component in the x-axis direction of the definition area is used as the movement distance.
[0066]
Returning to the description of the flow of FIG. Based on the calculated movement amount, a size change (scaling) process is performed on the editing target object in S106. In the data flow diagram (FIG. 11), the movement amount obtained from P103 [movement amount calculation] is used for the size change of P104 [size change]. P104 [size change] corresponds to the processing in step S106. The size changing process here is performed as follows, for example. If the movement amount data obtained from P103 [movement amount calculation] in FIG. 11 is dist (dist = dx in this embodiment), s = 1 + k · dist, where s is the scaling factor, that is, the size change proportional coefficient. The size is changed by applying (multiplying) the calculated s. In the above equation, k is an arbitrary constant. Using this formula, the size can be changed linearly. In this embodiment, the movement amount dist can take a negative value, and in this case, the size of the object becomes smaller than the original size. Of course, other functions that are not the previous equations can be applied. When the process of S106 is completed, this subroutine is exited.
[0067]
In the above embodiment, whether or not the mode is in a deformable mode (state) is identified by a flag. However, other methods for describing the state (for example, a state pattern which is one of design patterns) can be implemented. Can do.
[0068]
[Example 2]
In the second embodiment, the position of the editing target object is fixed, and the position of the definition area for changing the size is changed. When there is only one pointing device, a procedure such as transferring the control of the pointing device to the movable definition area once in the work space (or plane) is required in advance. As an input device (106 in FIG. 1) for realizing this embodiment, a mouse is used as in the first embodiment (FIG. 3, but what is indicated is a definition area), or a tablet is used (FIG. 4). However, what is indicated is a definition area) or another sensor or pointing device is used.
[0069]
FIG. 16 shows the behavior of this system when the user changes the size of the object to be edited. The definition area 1601 is moved with respect to the object 1602 that does not move as shown in the screen 3-2, and the object 1602 is overlapped to enter the size change mode. At this time, it is desirable to display the indicator 1603 as in the first embodiment. By moving the definition area 1601, the attribute (size) of the object 1602 is changed as in the screen 3-3.
[0070]
In this embodiment, there is basically no significant difference from the first embodiment in terms of mounting. A flowchart is shown in FIG. 17, and a data flow diagram is shown in FIG. The processing shown in this flowchart is a subroutine, and is called at certain intervals from the main routine as in the first embodiment. The only difference between the processing in the second embodiment and the first embodiment is that the position information obtained in S201 is the position information of the definition region unlike S101 in FIG.
[0071]
Position information obtained by the pointing device of A201 [definition area position (and orientation) input device] in FIG. 18 is incorporated into the process of P201 [calculation of position (and orientation) of the definition area in the virtual space]. Processing is performed. What is used in P202 [Calculate overlap] and P203 [Calculate movement amount] is a fixed edit target object position and a position of a definition area obtained from a pointing device. Also, the position of the definition area is also stored as the position when it starts to overlap. Therefore, the reference position in S208 is the position of the definition area entering from P201 [calculation of position (and orientation) of the definition area in the virtual space] in FIG. 18 to D202 [reference position data storage].
[0072]
P203 [movement amount calculation] in FIG. 18 is position data obtained from the data in D201 [position data of the object to be edited] in FIG. 18 and P201 [calculation of the position (and orientation) of the definition area in the virtual space]. (P203 [movement amount calculation]). This corresponds to S205 in FIG. The movement amount obtained from P203 [movement amount calculation] is used for the size change of P204 [size change]. P204 [size change] corresponds to the process of step S206.
[0073]
The movement amount calculation performed in S205 is as follows. In the description of the first embodiment, among the calculation methods of the movement amount, in the calculation for extracting the defined axial component, the method for setting the relative relationship to the world coordinates to be always constant and the local coordinates in the definition area There are two methods for setting the relative relationship to be always constant. In this embodiment, since only the definition area moves, the position change of the definition area with respect to the axis is used so that the relative relationship with respect to the world coordinates is always constant. An axis related to the local coordinates of the definition area can be used, but this method will be described later in the section of the third embodiment. Since the other portions are basically the same as those in the first embodiment, refer to the description in the first embodiment.
[0074]
[Example 3]
The third embodiment shows a case where both the position of the object to be edited and the position of the definition area for size change are changed.
[0075]
The basic behavior is the same as in the first and second embodiments, and the size is changed by the amount of movement from the position where the edit target object and the definition area start to overlap to the position where the overlap ends.
[0076]
A specific mounting method of this embodiment will now be described. Basically, there are many common parts with Example 1 or 2. Since common parts have been described in the first embodiment, different parts will be mainly described. A configuration example of the system is as shown in FIG. The configuration itself is the same as that of the first embodiment. However, two or more pointing devices are required for the input device 106 of FIG. A configuration example is shown in FIGS. In the configuration example of FIG. 19, two mice are used, one corresponding to the object to be edited and the other corresponding to the definition area. In the configuration of FIG. 20, each movement is realized by a combination of a mouse and a tablet. However, if a device capable of sensing two or more pens with a tablet is used, a pointing device applicable in this embodiment can be configured as shown in FIG. That is, the editing object is moved with one pen, and the definition area is moved with the other pen.
[0077]
If the work space to be edited is three-dimensional, it can be constituted by two three-dimensional input sensors as shown in FIG. In FIG. 22, the operator operates the input pointing device 2204 associated with the editing target object 2202 in the three-dimensional space and the input pointing device 2203 associated with the definition area 2201 in the three-dimensional space on the display. The relative object 2202 and the definition area 2201 are moved relative to each other. The operator can freely move each pointing device held in both the left and right hands, and the size can be changed by changing the relative position of the object to be edited with the left hand by overlapping the definition area for resizing with the left hand. Make changes.
[0078]
FIG. 23 is a flowchart showing processing performed by the arithmetic processing circuit 101 in FIG. FIG. 24 shows a data flow diagram for describing the flow of data throughout the system. The processing shown in this flowchart is a subroutine, and it is assumed that there is an event that occurs every defined time in the main routine, as in the first embodiment.
[0079]
The point in which the processing in the third embodiment is greatly different from that in the first and second embodiments can be easily understood from the data flow diagram (FIG. 24). First, there are two inputs as an actor: A301 [position input device for editing object] and A302 [position input device for definition area], and therefore the position (or + posture) in the virtual space for that information. ) Is also required for each. Also in the flowchart (FIG. 23), the portion that has been one step so far is two steps of S301 and S302. In other words, the object to be edited is obtained in S301, and the position of the definition area is obtained in S302.
[0080]
Steps S303 to S309 are substantially the same as steps S102 to S108 in the processing flow (FIG. 10) in the first embodiment. Hereinafter, differences will be described. In the third embodiment, as in the first and second embodiments, it is necessary to store the position at the start of overlapping as a reference position (S309 in FIG. 23), but at this time, the position of the target object and the position of the definition area Are stored as respective reference positions. In the data flow diagram (FIG. 24), D301 [definition position data storage] and D302 [object reference position data storage] are stored. From P305 [Calculation of position (area) of definition area in virtual space] to D301 [Definition position data storage], P301 [Calculation of position of object to be edited in virtual position space] to D302 [Object reference position data storage] Data flows only at S309. Two data stores are required in this way.
[0081]
Now, it is the movement amount calculation step S306 that makes the calculation a little more complicated than in the previous embodiments. This step is represented by P303 [Calculate movement amount] in the data flow diagram (FIG. 24). The data used in this calculation process is:
(1) Position and orientation of the definition area in the virtual space calculated this time from P305 [Calculation of position (area) of the definition area in the virtual space]
(2) The position of the target object in the virtual space calculated this time from P301 [Calculation of the position of the editing target object in the virtual position space]
(3) Reference position of definition area from D301 [definition position data storage]
(4) Reference position of the target object from D302 [Object reference position data storage]
It is.
[0082]
Incidentally, the arrow from P302 [Calculate Overlap] only shows the flow of information of 1 or 0 indicating whether or not there is an overlap. An example of the calculation method in this step (S306) is to calculate the amount of movement of the defined position using (3) and (1) among the above four types of data, and use (4) and (2). This is a method of calculating the relative movement amount of the target object with respect to the definition area using the two calculation results after calculating the movement amount of the object. In the above, the expression calculated in two stages is taken, but if it is expressed as a mathematical expression, it can be combined into one step. In any case, the amount of movement of the target object in the local coordinates of the definition area is calculated here. Other parts are the same as in the previous embodiments.
[0083]
[Modification of Example 3]
In the third embodiment, it is necessary to maintain the definition area and the reference position of the target object, respectively, and there are many types of data handled in the movement amount calculation step. Clean. FIG. 25 is a flowchart for realizing a minor modification of the third embodiment, and FIG. 26 is a data flow diagram. In this embodiment, as shown in FIG. 25, a step of newly calculating the position of the target object in the local coordinate system of the definition area, called S311, is added.
[0084]
Since the overlap calculation step (S303) uses the overlap between the center of gravity of the bounding box of the target object and the definition area (= the bounding box) as in the first embodiment, the calculation in S303 in FIG. 25 uses the result of S311. Easy to use. Further, only one piece of data is required to store the reference position in S309 (flow from P306 [calculation of relative position with respect to the definition area of the object to be edited] in FIG. 26 to D301 [store relative position reference position data]), and S308. The movement amount calculating step is also facilitated. Actually, there is an advantage that the management of the data flow becomes easy as shown in FIG.
[0085]
In the third embodiment and the minor modified version thereof, the movement amount relative to the definition area of the target object is used for the calculation of the movement amount. On the other hand, a method using the movement amount of the target object with respect to the world coordinate system is also conceivable. In this case, the definition area is used only for ON / OFF of the resize mode. Depending on the application, this method may be easier to enter.
[0086]
[Example 4]
In the embodiments so far, the feature is that the size is continuously changed, but in this embodiment 4, the size is changed to a desired size by repeatedly performing the size change at a certain degree. . Also in this embodiment, it is possible to configure each position to be fixed or movable as in Embodiments 1 to 3 described so far, but in this embodiment, editing is performed as in Embodiment 3 above. The description will be made only when both the target object and the definition area can be moved by the user. The input device 106 in FIG. 1 can be realized, for example, with a configuration as shown in FIG. In FIG. 27, the operator operates both the input pointing device 2704 associated with the editing target object 2702 in the virtual space and the input pointing device 2702 associated with the definition area 2701 in the virtual space. The movement in the three-dimensional space is detected and the editing object 2702 and the definition area 2701 on the display are relatively moved.
[0087]
In FIG. 27, the definition area 2701 is a metaphor of “magic wand” as an example, and the corresponding pointing device 2703 also shows its function in an easy-to-understand manner by its shape. As the behavior, as shown in FIG. 28, the size is changed by an increment determined that the definition area 2801 overlaps the editing target object 2802. The definition area is independently implemented with two definition areas (L) only for increasing the size as shown in FIG. 29A and definition areas (S) for reducing the size as shown in 29 (b). There is a way.
[0088]
In addition, as shown in FIG. 30, there is also a mounting method in which two areas of a definition area L and 3001 as a part to increase the size change and a definition area S and 3002 as a part to be reduced are combined to correspond to one sensor. . In this embodiment, the case where the configuration of FIG. 29A is used will be described. The method described here can be easily applied to other methods.
[0089]
FIG. 31 is a flowchart showing processing performed by the arithmetic processing circuit 101 in FIG. FIG. 32 shows a data flow diagram for describing the flow of data throughout the system. The process shown in this flowchart is a subroutine, and is called at every defined time in the main routine as in the first embodiment.
[0090]
In this subroutine, in the steps of S401 and S402, similarly to the case of the third embodiment, the area positions of the target object and the definition area in the virtual space are calculated. But these data are only used to calculate whether there is overlap. This is apparent from the data flow diagram (FIG. 32).
[0091]
As in the third embodiment, there are two inputs as an actor, A401 [position input device for editing object] and A402 [position input device for definition area]. Therefore, the position (or the virtual space) for that information (or + Position) calculation processing (P401, P405) is also required for each. P402 [Calculate overlap] is executed based on P401 [Calculation of position of edit target object in virtual space] and P405 [Calculation of position (area) of definition area in virtual space].
[0092]
Similar to the first embodiment, the calculation of the overlap in P402 [Calculate Overlap] is also calculated in this embodiment based on whether or not the center of gravity of the bounding box of the target object is within the bounding box of the definition area (S404). ). As for the calculation method, there are other mounting methods as described in the first embodiment.
[0093]
If there is an overlap in the determination step S404 and the scaling flag is not on, it is the moment when the target object has entered the area, so at this time the flag is turned on in S406 and then the target object in S407. Is changed in size, that is, P404 [change in size by a certain amount] is performed. The size change is performed using s calculated as s = 1 + Δs as a scale factor (coefficient), where Δs is a fixed increment.
[0094]
In this routine, the behavior of the scaling flag is the same as that of the first to third embodiments introduced so far, but is different in that it is used to ensure that the size is changed only when entering the area.
[0095]
[Example 5]
Regarding the first to fourth embodiments that have been described so far, in addition to the position input used in the above embodiment, an event such as a button that can detect on / off is generated in the input device (106 in FIG. 1). Different input instruction methods are possible depending on the combination with the device. Here, the variation regarding Example 1 is demonstrated.
[0096]
In this embodiment, the user performs a transformation operation into an edit object in the following scenario. A description will be given with reference to FIG. 2 again.
[0097]
The editing object 202 is entered into the definition area 201 from the state of the screen 2-1. When the edit target object 202 enters the definition area 201 as in the screen 2-2, the indicator 203 is displayed. Since the indicator 203 indicates that it has entered (overlapped) the definition area, if the button is pressed at this time, the scaling mode is entered. When the user moves the target object while pressing the button, the size of the target object changes according to the amount of movement (screen 2-3). When the user releases the button, the resize is finalized (ie finished).
[0098]
The difference between the present embodiment and the first embodiment is that a button is added to the input device 106 of FIG. 1 as described above, and the routine processed by the arithmetic processing circuit 101 of FIG. 1 is also different. FIG. 33 shows the subroutine. As before, this subroutine is called by an event that occurs every certain time in the main routine. The difference is that S504, that is, a process for determining whether or not the button is pressed is added. In S504, not only is it checked whether or not the button has been pressed, but an indicator that appears in the above-described scenario is also displayed. Other parts are the same as those in the first embodiment. The data flow diagram is the same flow as in FIG.
[0099]
In other words, in this embodiment, if the determination in step S504 is “Yes”, the processing in the scaling mode in step S505 and subsequent steps is executed. If the determination in step S504 is “No”, the scaling is performed. Processing according to the mode is not executed, the scaling flag is set to OFF in S510, and the processing ends.
[0100]
Although this embodiment is described as an example based on the first embodiment, the addition of a button can be applied to the second to fourth embodiments. An example applied to the third embodiment is shown in FIG. 34 for reference.
[0101]
34, S601 to S604 are the same as S301 to S304 of FIG. As the next step of the determination of Yes in S304, a process for determining whether or not the button in S605 has been pressed is added. In S605, not only is it checked whether or not the button has been pressed, but an indicator that appears in the above-described scenario is also displayed. The following steps are the same as those in the third embodiment. If the determination in step S605 is pressed is Yes, processing in S606 and subsequent scaling modes is executed, and if the determination in step S605 is pressed is No, processing in the scaling mode is not executed. In step S611, the scaling flag is set to OFF, and the process ends.
[0102]
Further, FIG. 35 shows a processing flow of a configuration in which the scaling process is continued when the button is added to the first embodiment and the editing target object leaves the definition area while the button is pressed.
[0103]
In the processing flow of FIG. 35, S701 and S702 are the same processing as S101 and S102 of FIG. In S703, it is determined whether the scaling flag is ON. If the determination is Yes, it is determined in S711 whether or not the button is being pressed. In the case of Yes, it is determined that the scaling mode is continued, a difference (movement amount) from the reference position is calculated in S706, and scaling processing is executed based on the movement amount in S707.
[0104]
If it is determined in S711 that the button is not pressed, the process proceeds to S710 and the scaling flag is turned off to exit the scaling mode.
[0105]
If it is determined in S704 that there is an overlap, it is determined in S705 whether or not the button is being pressed. In the case of Yes, the scaling flag is set to ON (S708), and the position of the object in the current virtual world is stored as a reference position in S709. If it is determined in S705 that the button has not been pressed, the process proceeds to S710 and the scaling flag is turned OFF to exit the scaling mode.
[0106]
This process makes it possible to continue the scaling process when the object to be edited leaves the definition area while pressing the button. This configuration can also be applied to the other Examples 2 to 4. The configuration in the fourth embodiment can be realized as a configuration in which a certain amount of size change is repeatedly executed while the button is pressed.
[0107]
In the object attribute change processing apparatus shown in FIG. 1, an attribute change processing program is stored in the program memory 102. For example, a CD-ROM or DVD-ROM, CD-R, CD-RW, DVD-RAM , DVD-RW, DVD + RW, or a magneto-optical disk such as MO. Further, it may be stored in a magnetic disk such as a hard disk or a floppy disk. Alternatively, it may be stored in a semiconductor memory such as a memory stick. In any case, if the processing program is read out and executed from the supply medium that supplies the processing program related to the input method for editing discussed in the embodiments so far, the size of the object in editing to the object, etc. It is possible to easily and effectively change the attribute of the item.
[0108]
In the above-described embodiments, the method and apparatus for changing the “size” that is one of the attributes of the object has been described. However, for example, the definition area described above is used for the color, brightness, and glossiness of the object to be edited. By defining a definition area for changing various attributes of the object such as the number of polygons to be configured, etc., a configuration for changing the various attributes of the object in the same manner as the above-described scaling processing is realized. The present invention is not limited to scaling processing, and can be applied to general processing for changing attributes of an object to be edited. For example, it can be applied as a user interface of an object transformation tool or a virtual catalog viewer.
[0109]
In the above-described configuration, the scaling processing has been described centering on the enlargement processing based on the moving distance in the definition area. Depending on the movement distance of the object to be edited in the definition area, execute processing to change the attribute of the object so that the size of the dent or convex part is changed, and change the color attribute of the object in the definition area. The RGB value can be changed according to the movement distance of the object to be edited.
[0110]
The present invention has been described in detail above with reference to specific embodiments. However, it is obvious that those skilled in the art can make modifications and substitutions of the embodiments without departing from the gist of the present invention. In other words, the present invention has been disclosed in the form of exemplification, and should not be interpreted in a limited manner. In order to determine the gist of the present invention, the claims section described at the beginning should be considered.
[0111]
【The invention's effect】
As is apparent from the above description, according to the object attribute change processing device, the object attribute change processing method, the 3D model processing device, the 3D model processing method, and the program providing medium of the present invention, Based on the overlap with the definition area, switching to the attribute change mode of the object to be edited is performed, and a predetermined attribute change, for example, a scaling process is performed based on the occurrence of the movement in the definition area or the occurrence of the overlap to the definition area. Since the configuration is executed, the work of the object editing system using a computer can be easily executed. Therefore, it is effective as an interface for young children and elderly people who are unfamiliar with handling various input devices such as a computer mouse and keyboard. Applications to emotional educational toys using digital technology, online shopping, and communication tools can be expected.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a hardware configuration example of an object attribute change processing device according to the present invention.
FIG. 2 is a diagram for explaining the outline of processing in Embodiment 1 of the object attribute change processing device of the present invention;
FIG. 3 is a diagram illustrating an input device example (part 1) according to the first embodiment of the object attribute change processing device of the invention;
FIG. 4 is a diagram illustrating an input device example (part 2) according to the first embodiment of the object attribute change processing device of the invention;
FIG. 5 is a diagram (No. 1) for explaining a bounding box applicable to overlap determination in the object attribute change processing device of the present invention;
FIG. 6 is a diagram (part 2) illustrating a bounding box applicable to overlap determination in the object attribute change processing device according to the present invention.
FIG. 7 is a diagram (No. 3) for explaining a bounding box applicable to overlap determination in the object attribute change processing device of the present invention;
FIG. 8 is a diagram (part 4) illustrating a bounding box applicable to overlap determination in the object attribute change processing device of the present invention;
FIG. 9 is a diagram (No. 5) illustrating a bounding box applicable to overlap determination in the object attribute change processing device of the invention.
FIG. 10 is a flowchart for explaining processing of the first embodiment in the object attribute change processing device of the present invention.
FIG. 11 is a data flow diagram illustrating processing of the first exemplary embodiment in the object attribute change processing device according to the present invention.
FIG. 12 is a diagram (part 1) illustrating an example of a distance calculation process applicable to the movement distance calculation in the object attribute change processing device according to the invention.
FIG. 13 is a diagram (part 2) illustrating an example of a distance calculation process applicable to the movement distance calculation in the object attribute change processing device of the present invention.
FIG. 14 is a diagram (No. 3) illustrating an example of a distance calculation process applicable to the movement distance calculation in the object attribute change processing device according to the invention.
FIG. 15 is a diagram (No. 4) illustrating an example of the distance calculation process applicable to the movement distance calculation in the object attribute change processing device according to the invention.
FIG. 16 is a diagram for explaining the outline of processing in Embodiment 2 of the object attribute change processing device of the present invention;
FIG. 17 is a flowchart for explaining processing of the second embodiment in the object attribute change processing device of the present invention;
FIG. 18 is a data flow diagram illustrating processing of the second embodiment in the object attribute change processing device of the present invention.
FIG. 19 is a diagram showing an example (part 1) of an input device according to the third embodiment of the object attribute change processing device of the invention;
FIG. 20 is a diagram illustrating an input device example (part 2) of the object attribute change processing device according to the third embodiment of the present invention;
FIG. 21 is a diagram showing an input device example (part 3) of the object attribute change processing device according to the third embodiment of the present invention;
FIG. 22 is a diagram showing an input device example (part 4) of the object attribute change processing device according to the third embodiment of the present invention;
FIG. 23 is a flowchart for explaining processing of the third embodiment in the object attribute change processing device of the present invention.
FIG. 24 is a data flow diagram for explaining processing of a third embodiment in the object attribute change processing device of the present invention.
FIG. 25 is a flowchart for explaining processing of a modification example of the third embodiment in the object attribute change processing apparatus of the present invention;
FIG. 26 is a data flow diagram illustrating a process of a modification example of the third embodiment in the object attribute change processing apparatus of the present invention.
FIG. 27 is a diagram showing an example (part 1) of an input device according to the fourth embodiment of the object attribute change processing device of the invention;
FIG. 28 is a diagram for explaining an outline of processing in the embodiment 4 of the object attribute change processing apparatus of the present invention;
FIG. 29 is a diagram illustrating an example (part 1) of a definition area according to the fourth embodiment of the object attribute change processing device of the invention;
FIG. 30 is a diagram showing an example (part 2) of the definition area in the object attribute change processing device according to the fourth embodiment of the present invention;
FIG. 31 is a flowchart for explaining processing of the fourth embodiment in the object attribute change processing device of the present invention;
FIG. 32 is a data flow diagram for explaining processing of a fourth embodiment in the object attribute change processing device of the present invention;
FIG. 33 is a flowchart for explaining the process (No. 1) of the fifth embodiment in the object attribute change processing apparatus of the present invention;
FIG. 34 is a flowchart for explaining the process (No. 2) of the fifth embodiment in the object attribute change processing apparatus of the present invention;
FIG. 35 is a flowchart for explaining the process (No. 3) of the fifth embodiment in the object attribute change processing apparatus of the present invention;
[Explanation of symbols]
101 Arithmetic processing circuit
102 Program memory
103 Data memory
104 frame memory
105 Image display device
106 Input device
107 External storage device
108 Bus
201 Definition area
202 Object to be edited
203 indicator
401 frame
601 and 602 bounding boxes
603 Overlap area
701, 702 Bounding box
801 Object to be edited
802, 803 Bounding box
804 Overlap area
901,902 bounding box
903 center of gravity
1601 Definition area
1602 Object to be edited
1603 Indicator
2201 Definition area
2202 Objects to be edited
2203, 2204 Three-dimensional sensor
2701 definition area
2702 Object to be edited
2703, 2704 3D sensor
2801 definition area
2802 Object to be edited
3001 Definition area L
3002 Definition area S

Claims (9)

ディスプレイに表示される編集対象オブジェクトの属性を変更するオブジェクト属性変更処理装置であり、
ディスプレイに表示された処理対象である編集対象オブジェクトに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定し、該重なり判定に基づいて、前記編集対象オブジェクトの属性変更モードへの切り換え処理を実行する制御手段を有し、
前記制御手段は、編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更する処理を実行する構成を有することを特徴とするオブジェクト属性変更処理装置。
An object attribute change processing device that changes an attribute of an object to be displayed displayed on a display,
It is determined whether or not there is an overlap between the object area associated with the edit target object displayed on the display and the attribute change definition area defined on the display, and the edit target is determined based on the overlap determination. Having a control means for executing switching processing to the object attribute change mode ;
The control means determines a change amount of the attribute of the edit target object based on a change amount of a relative positional relationship between the object region associated with the edit target object and the attribute change definition region, and the determination An object attribute change processing device having a configuration for executing a process of changing the attribute of the object to be edited based on the attribute change amount .
前記制御手段は、  The control means includes
前記編集対象オブジェクトの一部あるいは全部が、前記定義領域とその位置を共有したことを条件として、前記編集対象オブジェクトの属性を変更するモード(状態)とする制御を実行する構成を有することを特徴とする請求項1に記載のオブジェクト属性変更処理装置。  A configuration in which a part or all of the object to be edited has a configuration to execute a control to change the attribute of the object to be edited (state) on condition that the definition area and the position thereof are shared. The object attribute change processing device according to claim 1.
前記制御手段は、  The control means includes
前記編集対象オブジェクトに基づくバウンディングボックスの一部あるいは全部が、前記定義領域とその位置を共有したことを条件として、前記編集対象オブジェクトの属性を変更するモード(状態)とする制御を実行する構成を有することを特徴とする請求項1に記載のオブジェクト属性変更処理装置。  A configuration for executing control for setting a mode (state) for changing an attribute of the edit target object on condition that a part or all of the bounding box based on the edit target object shares the position with the definition area. The object attribute change processing device according to claim 1, further comprising:
ディスプレイに表示される編集対象オブジェクトの属性を変更するオブジェクト属性変更処理方法であり、
ディスプレイに表示された処理対象である編集対象オブジェクトに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定する重なり判定ステップと、
前記重なり判定に基づいて、前記編集対象オブジェクトの属性変更モードへの切り換え処理を実行するモード切り換えステップと、
前記編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更するオブジェクト属性変更ステップと、
を有することを特徴とするオブジェクト属性変更処理方法。
It is an object attribute change processing method that changes the attribute of the object to be edited displayed on the display.
An overlap determination step for determining whether or not there is an overlap between an object region associated with an edit target object displayed on the display and an attribute change definition region defined on the display;
Based on the overlap determination, a mode switching step for performing a switching process to the attribute change mode of the object to be edited,
A change amount of the attribute of the edit target object is determined based on a change amount of a relative positional relationship between the object region associated with the edit target object and the attribute change definition region, and the determined attribute change amount An object attribute changing step for changing the attribute of the object to be edited based on
An object attribute change processing method characterized by comprising:
前記オブジェクト属性変更処理方法において、  In the object attribute change processing method,
前記重なり判定ステップは、  The overlap determination step includes
前記編集対象オブジェクトの一部あるいは全部が、前記定義領域とその位置を共有したことを条件として、重なり判定を行なうことを特徴とする請求項4に記載のオブジェクト属性変更処理方法。  5. The object attribute change processing method according to claim 4, wherein overlap determination is performed on the condition that a part or all of the editing object shares a position with the definition area.
前記オブジェクト属性変更処理方法において、  In the object attribute change processing method,
前記重なり判定ステップは、  The overlap determination step includes
前記編集対象オブジェクトに基づくバウンディングボックスの一部あるいは全部が、前記定義領域とその位置を共有したことを条件として、重なり判定を行なうことを特徴とする請求項4に記載のオブジェクト属性変更処理方法。  5. The object attribute change processing method according to claim 4, wherein an overlap determination is performed on the condition that a part or all of the bounding box based on the object to be edited shares the position with the definition area.
ディスプレイに表示される編集対象オブジェクトとしての3次元モデルの属性を変更する3次元モデル処理装置であり、
ディスプレイに表示された処理対象である3次元モデルに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定し、該重なり判定に基づいて、前記3次元モデルの属性変更モードへの切り換え処理を実行する制御手段を有し、
前記制御手段は、編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更する処理を実行する構成を有することを特徴とする3次元モデル処理装置。
A 3D model processing apparatus for changing attributes of a 3D model as an object to be displayed displayed on a display;
It is determined whether or not there is an overlap between the object region associated with the three-dimensional model to be processed displayed on the display and the attribute change definition region defined on the display, and based on the overlap determination, the three-dimensional Having a control means for executing a process of switching to the attribute change mode of the model;
The control means determines a change amount of the attribute of the edit target object based on a change amount of a relative positional relationship between the object region associated with the edit target object and the attribute change definition region, and the determination A three-dimensional model processing apparatus having a configuration for executing a process of changing the attribute of the object to be edited based on the attribute change amount .
ディスプレイに表示される編集対象オブジェクトとしての3次元モデルの属性を変更する3次元モデル処理方法であり、  A 3D model processing method for changing an attribute of a 3D model as an object to be displayed displayed on a display,
ディスプレイに表示された処理対象である3次元モデルに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定する重なり判定ステップと、  An overlap determination step for determining whether or not there is an overlap between the object region associated with the three-dimensional model to be processed displayed on the display and the attribute change definition region defined on the display;
前記重なり判定に基づいて、前記3次元モデルの属性変更モードへの切り換え処理を実行するモード切り換えステップと、  A mode switching step for executing a switching process to the attribute change mode of the three-dimensional model based on the overlap determination;
前記編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更するオブジェクト属性変更ステップと、  A change amount of the attribute of the edit target object is determined based on a change amount of a relative positional relationship between the object region associated with the edit target object and the attribute change definition region, and the determined attribute change amount An object attribute changing step for changing the attribute of the object to be edited based on
を有することを特徴とする3次元モデル処理方法。  A three-dimensional model processing method characterized by comprising:
ディスプレイに表示される編集対象オブジェクトの属性を変更するオブジェクト属性変更処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムを提供するプログラム提供媒体であって、前記コンピュータ・プログラムは、
ディスプレイに表示された処理対象である編集対象オブジェクトに関連づけられたオブジェクト領域と、前記ディスプレイおいて定義される属性変更定義領域との重なりの有無を判定する重なり判定ステップと、
前記重なり判定に基づいて、前記編集対象オブジェクトの属性変更モードへの切り換え処理を実行するモード切り換えステップと、
前記編集対象オブジェクトに関連づけられたオブジェクト領域と、前記属性変更定義領域との相対的な位置関係の変化量に基づいて、前記編集対象オブジェクトの属性の変化量を決定し、該決定した属性変化量に基づいて、前記編集対象オブジェクトの属性を変更するオブジェクト属性変更ステップと、
を有することを特徴とするプログラム提供媒体。
A program providing medium for providing a computer program for causing an object attribute changing process for changing an attribute of an object to be displayed displayed on a display to be executed on a computer system, the computer program comprising:
An overlap determination step for determining whether or not there is an overlap between an object region associated with an edit target object displayed on the display and an attribute change definition region defined on the display;
Based on the overlap determination, a mode switching step for performing a switching process to the attribute change mode of the object to be edited,
A change amount of the attribute of the edit target object is determined based on a change amount of a relative positional relationship between the object region associated with the edit target object and the attribute change definition region, and the determined attribute change amount An object attribute changing step for changing the attribute of the object to be edited based on
A program providing medium comprising:
JP2000145984A 2000-05-18 2000-05-18 Object attribute change processing device, object attribute change processing method, three-dimensional model processing device, three-dimensional model processing method, and program providing medium Expired - Fee Related JP4389350B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000145984A JP4389350B2 (en) 2000-05-18 2000-05-18 Object attribute change processing device, object attribute change processing method, three-dimensional model processing device, three-dimensional model processing method, and program providing medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000145984A JP4389350B2 (en) 2000-05-18 2000-05-18 Object attribute change processing device, object attribute change processing method, three-dimensional model processing device, three-dimensional model processing method, and program providing medium

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009193245A Division JP4868044B2 (en) 2009-08-24 2009-08-24 Object attribute change processing device, object attribute change processing method, and 3D model processing device and 3D model processing method

Publications (3)

Publication Number Publication Date
JP2001325602A JP2001325602A (en) 2001-11-22
JP2001325602A5 JP2001325602A5 (en) 2007-04-05
JP4389350B2 true JP4389350B2 (en) 2009-12-24

Family

ID=18652413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000145984A Expired - Fee Related JP4389350B2 (en) 2000-05-18 2000-05-18 Object attribute change processing device, object attribute change processing method, three-dimensional model processing device, three-dimensional model processing method, and program providing medium

Country Status (1)

Country Link
JP (1) JP4389350B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004199496A (en) * 2002-12-19 2004-07-15 Sony Corp Information processor and method, and program
JP2005242854A (en) * 2004-02-27 2005-09-08 Nippon Telegr & Teleph Corp <Ntt> Method and device for displaying three-dimensional data, and program
JP5398728B2 (en) 2009-03-23 2014-01-29 パナソニック株式会社 Information processing apparatus, information processing method, recording medium, and integrated circuit

Also Published As

Publication number Publication date
JP2001325602A (en) 2001-11-22

Similar Documents

Publication Publication Date Title
US10852913B2 (en) Remote hover touch system and method
US6025847A (en) Three dimensional modeling system with visual feedback
TWI247268B (en) Figure display control device and recording medium for executing display of graph and figure
US5588098A (en) Method and apparatus for direct manipulation of 3-D objects on computer displays
Bourdot et al. VR–CAD integration: Multimodal immersive interaction and advanced haptic paradigms for implicit edition of CAD models
US5583977A (en) Object-oriented curve manipulation system
Dani et al. Creation of concept shape designs via a virtual reality interface
US9513716B2 (en) Bimanual interactions on digital paper using a pen and a spatially-aware mobile projector
US7420556B2 (en) Information processing method and information processing apparatus
CN104011629A (en) Enhanced target selection for a touch-based input enabled user interface
JP2004199496A (en) Information processor and method, and program
JPH10283158A (en) Stereoscopic display device for window and method therefor
Eiriksson et al. Augmented reality interfaces for additive manufacturing
JP4868044B2 (en) Object attribute change processing device, object attribute change processing method, and 3D model processing device and 3D model processing method
US5418712A (en) Manipulation performance evaluating apparatus for evaluating manipulation performance of a commodity having operating parts
JP4389350B2 (en) Object attribute change processing device, object attribute change processing method, three-dimensional model processing device, three-dimensional model processing method, and program providing medium
Wang et al. Key technique of assembly system in an augmented reality environment
JP2001338306A (en) Device and method for changing processing of editing tool attribute, device and method for processing three- dimensional model, and program providing medium
Raymaekers et al. Improving sketching by utilizing haptic feedback
JP4769942B2 (en) 3D design support system and 3D design support method
Dickinson et al. Pen–tablet as a CAD interface alternative
WO1995011482A1 (en) Object-oriented surface manipulation system
KR102392675B1 (en) Interfacing method for 3d sketch and apparatus thereof
Kuester et al. Designers workbench: toward real-time immersive modeling
US11941773B2 (en) Method for designing a three-dimensional mesh in a 3D scene

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090623

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090824

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090915

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090928

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131016

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees