(57)【特許請求の範囲】
【請求項１】
実空間上に立体像を表示する立体像表示手段と、
前記立体像表示手段により立体表示可能な像を手書きで描画する描画手段と、
前記描画手段により描画された立体像の中の特定範囲の部材を指定する指定手段と、
前記指定手段により指定された部材の立体的な動きを割り当てる動き割り当て手段とを備え、
前記動き割り当て手段により割り当てられた動きを前記立体像表示手段により表示された前記部材に与えることを備えたことを特徴とする３Ｄデザイン支援システム。
【請求項２】
請求項１に記載の３Ｄデザイン支援システムにおいて、
前記立体像表示手段は、操作者の頭部に装着するヘッドマウントディスプレイであり、当該ヘッドマウントディスプレイ自身の位置及び方向を算出する機能を備えて、位置と方向に対応した立体像を表示させることを特徴とする３Ｄデザイン支援システム。
【請求項３】
請求項１に記載の３Ｄデザイン支援システムにおいて、
前記描画手段は、描画時の実空間位置を算出する機能を備えて、算出された実空間位置を、描画位置とすることを特徴とする３Ｄデザイン支援システム。
【請求項４】
請求項１に記載の３Ｄデザイン支援システムにおいて、
前記動き割り当て手段により割り当てられた動きは、前記部材を第１の空間位置と第２の空間位置との間で前記部材を往復移動させる動きであることを特徴とする３Ｄデザイン支援システム。
【請求項５】
請求項１に記載の３Ｄデザイン支援システムにおいて、
前記動き割り当て手段により割り当てられた動きは、空間上の軸を中心にして前記部材を回動させる動きであることを特徴とする３Ｄデザイン支援システム。
【請求項６】
請求項１に記載の３Ｄデザイン支援システムにおいて、
前記指定手段による前記部材の指定は、直方体としての部材の対角線を指定することで行うことを特徴とする３Ｄデザイン支援システム。
【請求項７】
請求項１に記載の３Ｄデザイン支援システムにおいて、
前記指定手段による前記部材の指定は、立方体としての部材を複数の方向から囲むことを特徴とする３Ｄデザイン支援システム。
【請求項８】
請求項１に記載の３Ｄデザイン支援システムにおいて、
前記描画手段による像の描画を行う際に、所定距離の線が描画されるごとに、前記立体像表示手段での線の表示形態を変化させたことを特徴とする３Ｄデザイン支援システム。
【請求項９】
請求項１に記載の３Ｄデザイン支援システムにおいて、
前記描画手段による像の描画を行う際に、空間に描いた仮想的な物体と、前記仮想的な物体の周囲にある実物とを結ぶ線を描き、
前記実物の動きに連動して、前記結ぶ線の描画位置及び長さを変化させることを特徴とする３Ｄデザイン支援システム。
【請求項１０】
請求項１に記載の３Ｄデザイン支援システムにおいて、
前記描画手段により描画された像を、前記立体像表示手段で拡大表示して、実空間上にほぼ実物大の立体像を表示させることを特徴とする３Ｄデザイン支援システム。
【請求項１１】
実空間上に立体像を表示する立体像表示処理と、
前記立体表示される像を手書きで描画する描画処理と、
前記描画処理により描画されて表示された立体像の中の特定範囲の部材を指定する指定処理と、
前記指定処理により指定された部材の立体的な動きを割り当てる動き割り当て処理とを行い、
前記動き割り当て処理により割り当てられた動きを前記立体像表示処理で表示された前記部材に与えることを特徴とする３Ｄデザイン支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば各種工業製品のデザインを検証するのに使用して好適な３Ｄデザイン支援システム及び３Ｄデザイン支援方法に関する。
【背景技術】
【０００２】
近年の情報技術の発展により、自動車、工業、電気製品などの様々なデザイン活動でコンピュータを利用した高度なデザイン支援システムが使用されるようになってきている。しかしながら、逆に高度なデザイン支援システムが、リアリティの高さ、操作の複雑さなどから、デザイナの知的で創造的な活動を阻害しているという事例が報告されてきている。
【０００３】
従来、デザイナは、ペンと紙を用いて、頭の中でデザインイメージを膨らませ、スケッチ画に反映するという、スケッチと頭の中でのイメージ作業を行ったり来たりして繰り返し推敲し、デザインを完成させていく。また、自動車、電気製品等のようにデザイン対象が３次元構造を持ったものが多く、デザイナは頭の中の３次元イメージと、２次元スケッチ画を連携してデザインしていく必要がある。
【０００４】
そこで、スケッチ活動と３次元表示を利用するスケッチシステムや、さらには３次元空間に直接スケッチするデザインシステムが研究されてきている。このようなデザイン支援システムは、２次元スケッチから３次元モデルを生成するシステム、３次元空間を固定して提示する３次元スケッチシステム、３次元空間を頭の向きに合わせて提示する３次元スケッチシステムに分類することができる。
【０００５】
２次元でのスケッチを利用した研究では、入力としてデザイナのスケッチ画を利用し、そのスケッチを３次元表示して、デザイナは３次元イメージとして検討することができる。また、３次元表示の自然な拡張である、３次元空間に直接スケッチする研究では、デザイナは頭の中の３次元イメージをそのまま３次元空間に描画して表現できるようになった。そして、３次元空間を固定して提示するデザイン活動だけでなく、３次元空間をデザイナの頭の向きに合わせて提示するスケッチシステムがあり、デザイナのデザイン活動範囲の自由度は拡大している。
【０００６】
このような研究が試みられてきて、デザイナからも興味をもたれ、スケッチの利用や２次元イメージの重要性が理解されてきた。特許文献１には、２次元スケッチから３次元モデルを生成するシステムについての一例が記載されている。
【特許文献１】特開２００１−５２２１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来提案されてきたスケッチ支援システムは、現在、実際のデザイン設計の場面では、使用されていないという問題がある。デザイナは、最初のうちはそれらのシステムに興味を持つが、興味を保ち続け、実際に使用し続けようとは思わなかった。
【０００８】
その理由としては、従来のような３次元スケッチシステムは、２次元スケッチだけのデザイン活動との明確な差別化ができず、結局３次元表示や３次元スケッチを利用せずデザインできてしまう。つまり、従来のスケッチ支援システムは、３次元表示や３次元スケッチを利用する必然性が欠如していた。
【０００９】
また、従来の３次元スケッチシステムでは、入力されたスケッチをすぐにきれいに表示、編集して見た目に美しいモデルをデザインすることを重要視し、従来のデザイナのペンと紙を利用したスケッチ活動のような創造的なデザイン活動を支援しているとはいえなくなってきている。
【００１０】
このような、従来の３次元スケッチシステムに欠如していた問題点から、
１）実物大でスケッチできるような支援、
２）実物大のスケッチを操作してデザインを検討できる支援
３）３次元空間で複数人での協調的なスケッチ活動ができる支援
という、３次元表示や３次元スケッチの特徴を最大限活かせるスケッチ支援システムが必要である。
【００１１】
かかる点に鑑み、本発明は、デザイナの頭の中にある３次元イメージを３次元空間にそのままの実物大の大きさでスケッチして、実際にスケッチを操作して確認できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
この課題を解決するために、本発明は、実空間上に立体像を表示するようにした上で、その立体表示可能な像を手書きで描画するようにし、描画された立体像の中の特定範囲の部材を指定し、その指定された部材の立体的な動きを割り当てるようにし、割り当てられた動きを立体像として表示された部材に与えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、３次元空間上に手書きで立体像を描くことができると共に、その描かれた立体像の中の特定の部材を３次元空間上で動かして、手書きでデザインされた立体像の動きなどを、実物大で検証することが可能になり、簡単に各種工業製品のデザインを検証できるという効果が得られる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施の形態を、添付図面を参照して説明する。図１は、本発明を適用したシステム構成例を示したものである。
【００１５】
図１の構成について説明すると、本例の場合には、コンピュータ装置とその周辺機器で構成される情報処理装置１０を用意し、その情報処理装置１０と、ヘッドマウントディスプレイ（以下ＨＭＤと称する）２０と、スタイラスペン３０と、パレット４０とを用意し、それぞれの間で、無線信号の伝送を行うシステム構成としてある。ＨＭＤ２０は、立体画像の表示手段として使用され、操作を行うユーザ（デザイナ）が頭部に装着して、両目（又は何れか一方の目の前で画像を表示させて、そのＨＭＤ２０に、現在位置の周囲に描画された映像を表示させる。本例の場合、ＨＭＤ２０は、シースルータイプのものを使用してあり、ＨＭＤ２０で表示される映像は、スタイラスペン３０で描画された線だけであり、周囲の景色は実際の画像が見える状態となっている。スタイラスペン３０は、立体像の描画手段として使用され、操作を行うユーザ（デザイナ）が所持して使用され、スタイラスペン３０で描画させる操作があると、そのときのペン先の位置に、描画が行われる。パレット４０は、スタイラスペン３０で描画する色などを変えるために使用される。
【００１６】
まず、情報処理装置１０について説明すると、情報処理装置１０はアンテナ１１を備え、アンテナ１１で受信した信号を受信部１２で受信し、送信部１９の出力を無線送信させる構成としてある。ＨＭＤ２０，スタイラスペン３０，パレット４０との無線伝送方式としては、例えばＩＥＥＥ８０２．１１方式として規格化された各種無線伝送方式やBluetooth（商標）などの規格が適用可能である。
【００１７】
受信部１２については、ＨＭＤ２０及びスタイラスペン３０からは、それぞれの三次元空間（実空間）上の位置の判定に必要な情報が送信され、その位置判定に必要な情報を３次元空間位置判定部１３に供給して、ＨＭＤ２０及びスタイラスペン３０の三次元空間位置を判定する算出処理が行われる。ＨＭＤ２０については、位置だけでなく、ユーザが向いている方向についても判定される。また、スタイラスペン３０及びパレット４０からは、それぞれに用意されたボタンなどの操作情報が送信され、その操作情報が操作判別部１４で判別される。
【００１８】
３次元空間位置判定部１３で判別されたＨＭＤ２０及びペン３０の三次元空間位置と、操作判別部１４で判別された操作情報は、制御部１５に送られる。制御部１５は、スタイラスペン３０の操作に基づいて、３次元空間中に立体画像を描画させる処理を行い、その描画された立体画像を画像生成用メモリ１７に記憶させる。なお、制御部１５には、立体画像描画用のプログラム（ソフトウェア）が記憶されたプログラムメモリ１６が接続してあり、そのプログラムの実行で、以下に説明する立体画像の描画や表示の制御が行われる。後述する立体画像中の特定部材の動きなどについても、このプログラムに基づいて処理される。
【００１９】
描画された立体像の画像信号については、画像生成部１８で生成される。この描画を行う際には、現在のＨＭＤ２０の位置と方向を判断して、その位置と方向でユーザが見える画像を描画する。描画された画像信号は、送信部１９で無線送信処理され、アンテナ１１から無線送信される。
【００２０】
図２は、ＨＭＤ２０の構成例を示した図である。ＨＭＤ２０は、アンテナ２１を備え、アンテナ２１で受信した信号を受信部２２で受信し、送信部２７の出力を無線送信させる構成としてある。受信部２２で受信した信号については、画像処理部２３に供給して、画像信号を生成させ、生成された画像信号を表示部２４に表示させる。表示部２４としては、装着したユーザの両目の前に画像を表示する比較的小型の表示パネルを使用してある。なお、シースルータイプのものを使用してあるので、デザイナの周囲の背景は見えた状態で、表示された立体像を構成する線（ユーザが手書きで描画した線）だけが背景に浮かび上がって表示された状態となる。
【００２１】
また、ＨＭＤ２０は、位置センサ２５を備え、その位置センサ２５の検出情報を位置情報生成部２６に送り、位置及び方位の情報を生成させて、送信部２７で無線送信させる。なお、ＨＭＤ２０は複数用意して、複数人で同時に画像を見れるようにしてもよい。但し、それぞれのＨＭＤ２０は位置や視線方向が異なるので、それぞれのＨＭＤ２０用に個別に画像信号を生成させる必要がある。
【００２２】
図３は、ペン３０の構成例を示した図である。ペン３０は、位置センサ３１を備え、その位置センサ３１の検出情報を位置情報生成部３２に送り、位置の情報を生成させて、送信部３３で無線送信させる。また、ペン３０に用意された操作ボタン３４の操作に基づいて、ボタン操作情報をボタン操作情報生成部３５で生成させ、その生成されたボタン操作情報を、送信部３３で無線送信させる。
【００２３】
なお、ＨＭＤ２０やペン３０の位置については、絶対的な位置情報でもよいが、基準となる点からの動き量などで示される相対的な位置情報でもよい。これらの情報を得るためのセンサとしては、例えば３次元磁気センサが使用可能である。ジャイロセンサなどを使用してもよい。
【００２４】
本システムでは、実世界と対応させながら描画するので、ユーザの持つスタイラスペンの先にある描画位置、と描画のサイズに関して、実世界と仮想世界であわせる必要がある。よって、３次元位置計測で得られたデータを３次元座標変換する処理が行われる。このキャリブレーションの流れは、
１）．実世界に置かれた座標系から３次元磁気センサの計測座標系への座標変換行列
２）．計測座標系から、ユーザに提示される、情報処理装置が扱う座標系（OpenGL）への座標変換行列
３）．情報処理装置が扱う座標系から、ユーザの両眼位置で決まる視界座標系への座標変換行列
の３つの変換処理が必要となる。以上の変換をして、実空間と、ユーザが見る仮想のスケッチの位置あわせを行う。図４は、この変換処理状態の例を示した図である。
【００２５】
上述した１）．の処理では、実世界に置いたキャリブレーション用の角紙管ラックと、３種類のセンサ（スタイラスペン、頭（ＨＭＤ）、パレット）を用いて、実世界の座標系を計測座標系にアフィン変換する。２）．の処理では、実際にＨＭＤ２０を装着して、OpenGLで仮想的に表示した座標を、実世界の角紙管ラックと合わせ、アフィン変換をする。３）．の処理では、今回使用するＨＭＤ２０の表示画面の奥行きの位置と対角（画角）に合せて、OpenGLのパラメータを設定する。以上のキャリブレーションにより、３次元位置検出装置から１ｍ以内で、１ｃｍ以下の誤差に抑えることができる。
【００２６】
次に、以上説明したシステム構成で、実際にデザイナ（ユーザ）がデザインを行う例について説明する。図５に、本例におけるデザインフローを示す。まず、デザイナは３次元空間で、描きたい対象を実物大でスケッチする（ステップＳ１）。次に、スケッチを操作できるようにするため、実物大でデザインしたスケッチに動きの意味付けを行う（ステップＳ２）。そして、実際のデザイン対象を操作するように、デザインしたスケッチを操作して評価する（ステップＳ３）。この、プロセスを修正等、繰り返して行い（ステップＳ５）、試行錯誤をしながら、デザイン活動を行って、完成させるものである（ステップＳ４）。
【００２７】
従来の３次元表示や３次元スケッチを利用したデザインシステムは、３次元空間という２次元平面での活動とは異なる大きい領域が与えられるにもかかわらず、その３次元ならではの特徴を活かしきれていなかった。そこで本例では、その３次元空間を十分活かすために、ユーザが自らの身体を利用しながら３次元空間内でデザインを進めていくようにしてあることを特徴とする。３次元空間のスケッチ活動において、デザイナ自身の身体を利用することは、
１）．３次元空間で自由に移動するデザイン活動における基準
２）．３次元スケッチを実物大で描くための基準
３）．実物大のスケッチを操作してデザインを検討するための基準
を持つことができ、デザイナのデザイン活動を阻害しないで、創造的な３次元スケッチシステムを実現できる。つまり、本例においては、３次元空間の特徴を活かしデザイナに３次元スケッチを利用する必然性を把握してもらうため、デザイナの身体性に着目した。
【００２８】
これにより、従来の３次元を利用したスケッチ支援システムでは、３次元イメージを想像することしかできなかったが、本例においては、実物大で３次元スケッチができ、さらに、実物大スケッチを操作してデザインを検討できる。
また、本例では、デザイナの手書きスケッチをきれいに表示するのでなく、創造的な３次元スケッチ活動を支援するため、そのままの形でスケッチを表示し、３次元空間での位置、奥行き等の描画の困難さをデザイナの身体性を利用して支援していく。これにより、デザイナ自身の身体の動きを利用した、３次元空間でのより自然な描画活動を目指すために利用されるものである。
【００２９】
従来、３次元を利用したモデリングツールは多くあるが、それらの研究はデザイナの３次元イメージを、３次元モデルとして表示、作成することにとどまっていた。しかし、それだけでは３次元を利用する必然性とはいえず、立体的に３次元で表示し、なおかつ、デザイナの３次元イメージを実際の大きさで、実物大でスケッチすることが重要である。具体的には、例えば本例の場合には、図６に示すように、ＨＭＤ２０を頭部に装着したデザイナが、スタイラスペン３０を所持して、空間上に仮想的に立体的な機器１００を実物大でスケッチすることができるものである。図６例では、コピー機を手書きでスケッチした例としてある。この機器１００は、ＨＭＤ２０で表示されるものである。
【００３０】
このように実物大に３次元スケッチするためにデザイナの身体性を利用することにより、実物大スケッチの大きさをデザイナ自身の身体と比べて、直感的に想像することができる。また、デザイナ自身が回り込む、しゃがむ等の身体を動かして描画することにより、実物大で描いている感覚を持つことができる。
【００３１】
このような立体表示を行うために、本例においては、３次元スケッチ活動を実世界を背景としてスケッチすることにより、スケッチの位置、大きさ、向き等が、直感的に想像できる支援をする。また、実際のパレット４０を用いて、各機能を選べるようにすることで、実世界で描画している感覚をデザイナに与える。そして、実世界のペン３０で、実世界のパレット４０上のメニューを選ぶことで、より実世界を基準にできるようになる。
【００３２】
このようにして、３次元仮想空間で実物大を創造できるようにするため、描いたスケッチと、デザイナ自身との位置や大きさの関係を創造できるようになる。これにより、デザイナは、自分の身体を利用して直感的に実物大でスケッチできる。さらに、３次元空間に仮想的なものを表示して、デザイナに実物大でスケッチできるための支援をする。これは、デザイナがスケッチ活動で、実物大の大きさを把握できるように長さなどの把握が必要である。しかし、仮想的な表示は、逆にデザイナの視界やデザイン活動の邪魔になってしまうこともあるので、自然に提示させなければいけない。
したがって、３次元空間にデザイナが実物大でスケッチできるように、
１）．実世界の背景を基準として、実物大で３次元スケッチする支援
１）．３次元空間で、実物大スケッチとデザイナとの位置、大きさの関係を把握できる支援
１）．実物大の大きさを支援するために、スケッチの長さの支援
を行う必要がある。
【００３３】
次に、本例におけるスケッチへの動きの意味付けを分類し、スケッチに動きを付けて操作するまでの流れを説明する。本例で対象としている実際の機器をユーザが操作するときの操作手法には、押す、持ち上げる、引く、ひねる、押して曲げる等があり、またボタンを押したら光るといった操作後に起こる事象もある。
【００３４】
これらをスケッチ上で再現するために、本例ではこれらを図７に示すように分類し、スケッチへの意味づけから、操作までの流れを行うようにした。
【００３５】
まず、スケッチへの動きの意味づけフェーズには、スケッチしたものを個々に動きを教えるフェーズと、個々に動きを教えたスケッチ間に、相互作用(IF-THEN)を教えるフェーズに分類する。以下で、それぞれについて例を用いて説明する。
スケッチへの動きの意味づけとしては、
１）．個々のスケッチに動きを教える処理
個々のスケッチに動きを教えていくフェーズで、さらに２つに分類できる。
I.可動範囲を教える。
描画したスケッチが動く範囲、向きを教える。移動や回転等の動きの必要なスケッチしたボタン、ダイヤル、引き出し、レバー等に、可動範囲を教える。
II.オン／オフ（表示、非表示）を教える。
描画したスケッチが消えたり、表示されたりする動きを教える。これは実際に操作するものではなく、操作した結果、起こる事象を教える。（例、スケッチのランプの明かりが表示、非表示に切り替わる）
【００３６】
２）．スケッチに相互作用を教える処理
動きのついたスケッチ間の関係をIF-THENルールで教えていくフェーズで、２つに分類できる。
I.可動範囲(IF)＋可動範囲(THEN) 
個々に可動範囲のついたスケッチ間の相互作用を教える。（例、レバーの動きに対応して動くバー）
II.可動範囲(IF)＋オン／オフ(THEN)
可動範囲のついたスケッチと、ON-OFFのついたスケッチ間の動きを教える。（例、ボタンを押すとランプが光る）
【００３７】
次に、このように意味付けられたものの操作について説明する。；
スケッチへの意味づけによって作られた動きから、操作は３つに分類できる。
１番目は、可動範囲だけがついたスケッチであり、机の引き出しや、コピー機の上蓋のように、関連した他の動きがない操作のことを指す。
２番目は、複数の可動範囲のついたスケッチの操作で、ダイヤルやレバーを操作すると、それに対応する表示バーが移動する。
３番目は、可動範囲とオン／オフのついたスケッチ間の操作で、ボタンを押すという操作をスケッチにすると、ランプがオフからオンに変わり、光るという事象が起こる操作を行うことができる。
【００３８】
ここまでの処理をまとめたものが、図８の流れである。即ち、まず実物大スケッチフェーズでスケッチし、スケッチの選択フェーズ（３種類の選択手法）に行く。選択されたスケッチは、実物大をスケッチしているときは、ペンとスケッチを一体化して、移動、コピーする。スケッチ選択して、スケッチに動きを付けるフェーズに行くと、同じように一体化して、２種類（可動範囲、オン／オフ）の動きを教えることができる。ここで、動き（可動範囲）が教えられたスケッチは、操作フェーズで操作することができる。また、動きのついたスケッチ間に、相互作用（IF-THEN）をつけることができ、実際にスケッチを操作しながら教えていく。
【００３９】
図９は、ここまでの動きを含めたデザインプロセスの例を示したフローチャートである。まず、３次元空間に実物大でスケッチをする（ステップＳ１１）。そして、どのスケッチを編集するか、動きを教えるかを指定するため選択をする（ステップＳ１２）。スケッチを選択すると、スケッチの編集や動きを教えることができる（ステップＳ１３）。そして、スケッチに動きを教えると（ステップＳ１４）、スケッチをすぐ操作することができる（ステップＳ１５）。また、動きをつけたスケッチ間で相互作用を教え（ステップＳ１６）、操作することもできる。スケッチを実体のように操作して、修正したい動きには、すぐ編集できる（ステップＳ１７）。そして、実物大のスケッチを操作してみて、修正したい箇所があればすぐ実物大スケッチ作業に戻りスケッチを修正できる（ステップＳ１８）。このようなプロセスを繰り返し、デザイナの頭の中のデザイン対象と、実体を想像できるスケッチとを繰り返し推敲することで、３次元実物大スケッチモデルを作成していく。
【００４０】
図１０は、実物大スケッチを操作する場合の例である。この例では、図６に示した手書きのコピー機１００の上蓋１０１を、支点軸１０３を中心に立体的に回動させて開いたり、トレイ１０２を引き出すように往復移動させる操作を行うようにした例である。
【００４１】
このような操作ができることで、図１１に示すようにデナイナが検証できる。即ち、最初に「どんなコピー機がいいかな」と、コピー機の形状を想像して、３次元空間に自由に実物大で手書きスケッチをしていく。デザイナは、「全体の幅は１ｍぐらいで高さは１．５ｍぐらい」、「操作パネルはこのぐらいの高さが見やすくて、操作しやすそうだな」、「紙はここから出てくれば取りやすそうだ」等と、身体性を利用し、実際のコピー機を操作しているユーザを想像しながら描画できる。また、複数人でデザインをすれば、一緒にデザインしている人と、意見を言い合いながら検討していくことができる。
【００４２】
次に、スケッチに動きを付ける処理を行う。即ち、デザイナが「どう動くか考えよう」と考えたときに、動かしたい部分（ボタン、引き出し、印刷された紙の出口、上蓋等）にどのように動かすかをスケッチに意味づけすることができる。デザイナは、「引き出しはこのぐらい開けることができるようにしよう」、「上蓋はどの向きに角度を変えながら持ち上げられるようにしようか」、「このボタンを押したらランプを光らそう」等と、検討しながらスケッチに意味を付けていく。
【００４３】
さらに、スケッチを操作することができる。即ち、デザイナが「実際に動かしてみよう」と、スケッチしたコピー機を動かし操作できる。これによってデザイナは、「印刷された紙の取り出し口は操作パネルの前にいると遠くて手が届かない」、「このボタンを操作するとランプが見えにくい」、「トレイはかがまないと操作しにくい」等と、ただ実物大で見るだけでなく、実際のコピー機のように操作して実感しながらデザインを評価することができる。
【００４４】
そして、動きや操作に基づいて修正することができる。即ち、デザイナは「修正しよう」と、実際の状況を実感しながら操作することにより気づいた箇所をすぐその場で修正できる。「ボタンの位置はもっと上にしよう」、「紙の取り出し口の向きを変えてみよう」等の箇所を簡単にスケッチで修正して、またすぐ操作することができる。
【００４５】
図１２は、カップのリサイクルマシン２００を手書きでデザインした場合の例である。デザイン対象であるカップのリサイクルマシン２００の機能は、ユーザが挿入口にカップを入れるとそのカップを読み取り、コインを返してくれる。もし、読み取ることができないと、カップは返却される。デザイナは上記で述べたコピー機１００の場合と同様の処理で、カップのリサイクルマシンをデザインする。また、カップとコインは実際のものを利用し、カップの読み取りに成功したかどうかを示す状態ランプは、操作盤をスケッチして操作をする。
【００４６】
そして、マシンの概観を実物大スケッチで描いてから、「操作盤の×ボタンを押したら、赤いランプを光らそう」と描いたスケッチに意味づけを行う。テストでは、デザインしたマシンを操作するユーザ役と、仮想的なマシンの内に位置していて、マシンの行動を演じるコンピュータ役がいる。ユーザ役が実際のマシンを操作するように、実際のカップをスケッチした挿入口から投入すると、コンピュータ役が受け取り、そのカップが読み取れるかどうかを決める。読み取れると判断すると、スケッチの操作盤の○ボタンを押して、スケッチのマシンの○ランプを光らし、実際のコインをコイン返却口から返す。読み取れないと判断すると、スケッチの操作盤の×ボタンを押して、スケッチのマシンの×ランプを光らし、今ユーザ役が入れた実際のカップをカップ返却口から返す。
このテストで、ユーザ役は、実際のマシンを利用するときの状況で操作し、マシンもそのように動くので、「挿入口の位置が高い」、「カップの挿入口と返却口は１つの口にできないか」といった問題点を見つけることができる。そして、その修正点をすぐその場で修正して、またテストを繰り返していく。
【００４７】
従来のデザイン支援システムでは、３次元で表現したスケッチに対して、「操作する」ということは、描画したものを回して、異なる向きから見ることができるようにすることや、ある位置まで移動をさせるといった、モデリングのための機能だけであった。また、３次元空間で描き終わったスケッチに対しては、ただ立体的に３次元視覚化して３次元イメージとして確認するだけだった。しかし本例の場合には、３次元空間でデザインをする必然性を見出すため、実物大で描画したスケッチを、あたかも実際にそのスケッチ対象を操作しているときのように、身体を動かして操作ができるデザインシステムとなっている。よって、実物大スケッチを操作してデザインを検討することができ、３次元空間を活かした創造的なデザイン活動を支援できる。
【００４８】
次に、実物大でスケッチするときに必要な機能について説明する。本例においては、実物大で描くための長さの支援としての、スケッチ目盛機能と、３次元空間でデザイン活動するときの身体を利用する支援としての、リード機能について説明する。
【００４９】
まず、スケッチ目盛について説明すると、実物大でスケッチするためには、「縦１ｍぐらい」といった長さの間隔をつかむことが重要である。本例のシステムではシースルー型のＨＭＤを利用するので、自分の身体、実世界の背景を利用して、「高さは肩ぐらい」等の大きさは検討できる。これはデザイナの身体的な特徴を利用しており重要であるが、描画位置、向きに関係なく長さの間隔の支援が必要である。
【００５０】
ここで、長さの間隔をつかむために、仮想的にきれいな定規の利用や、スケッチ中での明白な表示の変化を利用してデザイナに教えるのは、反対に創造的な活動を阻害することになる。よって、デザイナに最低限の表示で、なおかつできるだけ作業量を増やさず、大体の長さの間隔を伝えることが重要である。
【００５１】
そこで本例においては、描画中のスケッチ自体に、デザイナが指定した長さの間隔毎にマークを表示して支援する。長さの間隔は０ｃｍ（支援しない）、３０ｃｍ、５０ｃｍ、１ｍと指定できる。マークの表示のさせ方は、描き始めから指定した間隔毎に、スケッチ上の１ｃｍの範囲をグレーで表示して、ユーザに気づかせるようにした。また、このスケッチ目盛の表示は、描画中のときは現在描いているスケッチに表示され、描き終わると一番最近描いたスケッチ上に表示されている。
【００５２】
これは、デザイナの描画中の主な活動はスケッチであるので、例えば、新しく仮想的なツールを使い、作業量を増やすのでなく、描いているスケッチに表示する。また、例えば、スケッチに集中できるように、あまり目立たないグレーで表示させるようにする。図１３は、このようにしてスケッチ目盛を表示させた例である。この例では、線９０をペンを使用して空間上に仮想的に描く際に、約５０ｃｍ間隔で目盛り９１として、表示色の変わる個所を設けるようにしてある。
【００５３】
次に、リード機能について説明する。本例におけるリードツールには、以下にあげる２つの機能がある。
１）．３次元仮想空間でのデザイナの位置と、スケッチや、３次元空間上の点を結ぶ支援
２）．３次元仮想空間と実世界空間との間を結ぶ補助線としての支援
【００５４】
１）．では、３次元仮想空間でのデザイナの位置に対する、スケッチや、３次元空間上の点の位置を把握するための支援をする。
本例では、デザイナが身体を動かしながら３次元スケッチすることを重要視している。それは、直感的に実物大で３次元スケッチできること、また、３次元空間での奥行きを自然に知覚できることである。
そのために、３次元空間のスケッチ上の点や、デザイナが全体を眺めるのに頻繁に移動する点にマーキングをして、３次元スケッチ活動中にいつでも、その点の位置をすぐ把握できるようにするための支援をする。この点とは、デザイン活動中に、デザイナが、後でまた来るだろうと思う点（スケッチの角や、スケッチ全体を見やすい点）や、長い線をスケッチ中に一旦スケッチを止め、回りこんで奥行き等を確認して、また長い線の途中から描き始めようと思っている点などである。
【００５５】
そこで、リード線を張るように、マーキングしたい点にスケッチで印をつけ、もう一方の点は、デザイナ自身と一緒に動く、スタイラスペンかパレットにつける。これによって、戻りたいマーキング点と、ユーザの動きによって移動するユーザ自身の点にリード線が張られ、ユーザは他の位置で活動中であっても、リード線を見て自分がマーキングした点をすぐ識別できる。さらに、マーキング点にたどりつくことや、複数のリード線の識別を容易にするため、リ−ド線がゴムのように長さによって太さを変えるようにする。つまり、マーキング点との距離が遠いときにリード線は細くなり、近いときは太くなる。
【００５６】
２）．では、３次元仮想空間と、実世界空間との間に補助線を付け、デザイナが３次元スケッチ中に実世界の基準を把握できるように支援をする。
本例では、３次元空間で実世界の背景を基準として、３次元スケッチ活動することを重要視している。これにより、実世界の背景から、実物大スケッチを描くために、大きさ、向き等を直感的に想像できる。
さらには、実世界に実物大で描くので、実世界上の背景の中での位置を想像しながら描くことは、より実物大での３次元スケッチのための直感的な支援をすることができる。例えば、「この棚と机の間にコピー機を実物大でスケッチしよう」、「この角のスペースに入る冷蔵庫を実物大でスケッチしよう」といったように、実世界の実物のものを基準として、３次元スケッチすることで、より大きさや向きを想像できる。
このような、実世界の基準を想像するために、実世界の物や、床、壁等と、３次元仮想空間の点に補助線を引く支援をする。
図１４は、このリード機能を利用した描画活動を示す。この図１４に示すように、空間に描いた仮想的な物体と、その仮想的な物体の周囲にある実物（ここではデザイナの腕）とを結ぶ線を描き、実物の動きに連動して、結ぶ線の描画位置及び長さを変化させるようにしてある。
【００５７】
次に、スケッチ編集について説明する。
スケッチを編集できる機能は、編集したいスケッチを、後述する選択インタフェースで選択し、移動、コピー、色変更ができる。
スケッチを動かすインタフェースは、ペンとスケッチを一体化して、移動、コピーを行う。
【００５８】
まず色変更について説明する。
本システムでは、３次元空間でパレットを利用してメニューを選択する構成としてあるが、色のように何種類も候補がある場合は、パレット上での選択は困難である。使用できる色を数種類にすれば可能だが、それでは自由な描画活動を制限してしまう。
【００５９】
そこで、３次元の特徴を活かすため、３軸（x軸、y軸、z軸）に、ＲＧＢ（赤、緑、青）それぞれの色の意味をもたせ、パレット上の３次元立方体内で、自由にスケッチをして色を変更する。図１５はその例を示したものである。但し、図面では着色していないので、色の変化が濃淡で示されている。色変更中のフィードバックを、描いているスケッチに反映させる。
【００６０】
また、色変更は、描画する際の色変更と、描画したスケッチの色も変更できる。操作は、スケッチを選択してから、同じように、パレット上の３次元空間の立法体内でスケッチしながら変更する。そして、どの色にするか検討中の際は選択されている実物大のスケッチの色も同じように変更され、その場ですぐ様々な色に変更し確認できる。
【００６１】
次に、スケッチされた立体物（機器）の中の動かしたい個所（部材）を選択する処理例について説明する。本例では、デザイナが自由に描いたスケッチに、自由に動きを教えるようにしてあり、描画したスケッチを認識するのでなく、描いたスケッチをデザイナが選択する機能が必要である。
【００６２】
本システムでは３種類の選択手法を用意する。１つ目は、一般的な通常の選択手法として、スタイラスペンのクリックで、一番近いストロークを1本ずつ選択していく。他の選択手法として、対角線選択手法と、スケッチ選択手法とを用意する。
【００６３】
対角線選択手法について説明する。この選択手法は、２次元ＧＵＩにおける選択機能を３次元空間に拡張した手法である。具体的には、スタイラスペンでドラッグをして３次元空間に対角線を引き直方体を作ると、その範囲内のスケッチが全て選択される。３次元空間の提示装置としてＨＭＤを利用しているので、デザイナの向きによって、表示の軸が変わり固定されていない。そのため、対角線を引き始めの頭の向きに軸を作り、その向きに直方体を構築して選択していく。図１６に、この機能を利用した描画による選択例を示す。
【００６４】
次に、スケッチ選択手法について説明する。これは、本例の特徴である実物大でスケッチし、３次元空間を移動できる環境を活かした選択手法である。
【００６５】
この場合には、まず、実物大で描いたスケッチが、図１７に示すようにデザイナのＨＭＤを通した視野内に入るように、後ろに下がるなどして移動する。視野内に入ると、デザイナは描画しながら視野内の実物大スケッチ４００に沿って囲む線４０１をペン３０で描く。すると、視点から、実物大スケッチに沿って囲んだ選択用のスケッチを通って、選択領域が拡大していく。これによって、実物大を対象とした大きなスケッチでも1回で容易に選択できる。
【００６６】
但し、この手法を用いると、選択範囲が距離に応じて広がっていき、選択したくないスケッチまで選択されてしまう可能性もあるので、アンド（ＡＮＤ）演算で選択範囲を絞っていくこともできるようにする必要がある。即ち、例えば図１８に示すように、ある方向から部材４００を囲む線４０１で選択したとき、この部材４００の背後にある部材４１０も同時に選択されてしまう。このような場合、図１９に示すように、異なる方向から再度、部材４００を囲む線４０２で選択し、斜線で示す範囲に選択範囲を狭め、選択範囲から部材４１０を排除する。
【００６７】
このようにして、スケッチ中の動きを与える範囲を選択することができる。
【００６８】
次に、このようにして選択した部材に対して、動きの意味づけを行う処理について説明する。この場合には、例えば、スケッチをペンと一体化させることによって、図２０及び図２１に示すように、移動、角度指定等をユーザが自由に、統一した簡単なインタフェースで動きを付けることができる。一体化は、選択されたスケッチにペンを埋め込むように、近づけて、スケッチをドラッグすることによって、ペンが取手のようになり、一体化して、向き、移動を変えていくことができる。これは、デザイナがスケッチを自由に動かすことができ直感的な手法である。また、この一体化手法は、同じようにスケッチを動かすインタフェースであるスケッチ編集時の移動やコピー機能でも利用する。
【００６９】
また、実際に操作するときを実感しながらスケッチに動きを付けることができる。これは、スケッチをペンと一体化して、デザイナが自由にスケッチに動きを付けることができるので、実際に操作するときの動きを演じる例示手法である。本例の場合には実物大デザインであり、実際のデザイン対象を操作するときを実感しながら、動きを付けることによって、実際に操作する状況が想像しやすくなる。
【００７０】
次に、オン・オフの意味付けについて説明する。
これは、描いたスケッチを表示、非表示と切りかえることができるようにスケッチに意味をつけるインタフェ−スである。
選択されているスケッチにペンを近づけ、スケッチに埋め込み、クリックすることで、スケッチの色をグレーにする。つまり、スケッチを非表示（OFF）にしてあげるように、動きを付ける。これは、選択したスケッチ内にスイッチがあるようにクリックで教えていく。
【００７１】
次に、スケッチ内の部材に相互作用を教える処理について説明する。
これは、個々の動きを付けたスケッチ間に、相互作用を教えるインタフェースは、ルールのIF（操作する条件）と、THEN（操作して起こる条件）の組を実際に、スケッチを操作して、作成していく。スケッチの動きの付け方には２種類のパターンがあり、可動範囲(IF)＋可動範囲(THEN)と、可動範囲(IF)＋ON-OFF(THEN)の２つに分類することができる。相互作用を教えるときは、実際に実物大スケッチを操作しながら行うので、実際のユーザの操作状況をイメージしながら、検討できる。
相互作用を教える流れは、
１）．IF（操作する条件）を教える（動きのついたスケッチを操作）
２）．THEN（操作して起こる条件）を教える（動きのついたスケッチを操作）
３）．作成中のルールに名前を付けるため、スケッチで自由にルールアイコンを描く
４）．ルールを登録・確認する
という順で行う。図２２はその相互作用を登録する処理例である。まず、１）．と２）．の説明のため、２つに分類した相互作用を説明する。
【００７２】
可動範囲(IF)＋可動範囲(THEN)の処理
これは、スケッチとペンを一体化して動きを付けたスケッチ同士の相互作用を教えるインタフェースである。操作インタフェースを利用して、IFモードとTHENモードでスケッチを操作して相互作用を教えていく。
例えば、図２２の例である「小、中、大の３段階あるレバーを引くと、バーが小、中、大と移動する」や、他に「ダイヤルを回すと、それとともに棚が出てくる」といった、デザイナの操作に対する作用を教えることができる。
【００７３】
可動範囲(IF) ＋ ON-OFF(THEN)の処理
これは、スケッチとペンを一体化して動きを付けたスケッチを操作して、ON-OFFの動きのついたスケッチをフィードバックで返す相互作用を教えるインタフェースである。操作インタフェースを利用して、IFモードで条件の付けたいスケッチを操作して、THENモードでON-OFFのついたスケッチにペンを埋め込みスイッチを押すようにクリックすることで、条件をつける。
例えば、２２の例のように「ボタンを押したらランプが光る」や、他に「コピーボタンを押すと紙が出てくる」といった、操作をする作用を教えることができる。
【００７４】
次に、各相互作用に固有のアイコンを作成する。
即ち、IF,THENの条件をつけてから、現在作成中の相互作用のアイコンをスケッチで作る。従来、２次元ＧＵＩで作成した対象を保存して、後で表示して確認、削除するために、リストとして表示されているインタフェースは種々存在する。しかし、３次元空間では、作成したものを保存しておくのは問題である。パレット上にＧＵＩのように表示することは、領域が狭く３次元空間では細かい作業が困難であり、難しい。
【００７５】
そこで、３次元空間の好きな位置に、後で見てすぐどのルールか思い出せるよう、自分の好きなようにルールのアイコンを自由にスケッチできるインタフェースを利用する。これにより、作成したルールの表示、確認、削除が、自分が直感的にわかっているアイコンを選択することによってできる。
【００７６】
図２２の例では、「ボタンを押したら光る」という相互作用のアイコンを“ボタン”という名前にすることや、「レバーを操作すると、バーが対応して動く」では、３段階あるので、それぞれ“１”、“２”、“３”という名前のついた３個のアイコンを描画することができる。
【００７７】
次に、スケッチを操作するインタフェースについて説明する。
ここでは、実際の状況を想定して操作することで、可動範囲を付けたスケッチに対して操作をする。
可動範囲を付けたスケッチのボリューム内に入ったら、スケッチを操作できる。ドラッグで、動かせる方向へ操作していき、もし途中で、方向や位置が違い、ペンがボリュームから出てしまったら、その位置でスケッチは止まるようにする。これにより、実物のように操作している、感じを持たせている。
【００７８】
次に、ペンとスケッチの一体化手法について説明する。
ここでは、選択されたスケッチに、移動とコピーと動きを教える（可動範囲）機能において利用するペンとスケッチの一体化手法について説明する。このインタフェースは、ペンをスケッチに埋め込み、ペンとスケッチを一体化して自由にスケッチを動かすことができる。以下で、ペンとスケッチの一体化手法について説明する。ここでは、例としてスケッチに動きを教える（可動範囲を教える）操作の流れを詳しく説明する。
【００７９】
１）．選択されたスケッチのボリュームを構築する(図２４)。まず、選択された各スケッチ内の全点から、世界座標系における３軸の座標の最小値(min)、最大値(max)を取得する。その６点（X-min, X-max, Y-min, Y-max, Z-min, Z-max）から、スケッチを含む直方体を生成する。その直方体をボリュームとして考え、ボリュームの範囲内にペンを埋め込めば、そのスケッチを動かせる状態とする。
【００８０】
２）．ペンをボリュームの範囲内に入れてドラッグをすると、ペンとスケッチが一体化して動き、ペンの位置、向きの変化に合わせてスケッチも動く。ここで、一体化したスケッチの位置と向きの計算を説明する。
まず、スケッチを世界座標系の原点に平行移動させる。次に、スケッチの内部でドラッグしたときの、始点の向きだけ逆回転させる。そして、現在のペンの向きの分だけスケッチを回転させ、現在の位置に平行移動する（図２５）。
【００８１】
３）．ドラッグしながらペンとスケッチを一体化させて動きを教えていく。このとき、ペンがたどった位置と向きの軌跡情報を保存する（図２６）。
【００８２】
一体化手法を用いたスケッチを編集する機能には、移動とコピーがある。移動はペンとスケッチを一体化して、ドラッグ操作で移動できる。コピーは選択したスケッチをクリックでコピーしてペンにくっつけ、再びクリックして様々な位置や向きにスケッチを貼り付けることができる。
【００８３】
次に、スケッチの操作について説明する。ここでは、動きが付けられたスケッチの操作について説明する。このインタフェースは、スケッチに相互作用を教えるインタフェース、実際に操作するインタフェースで用いる。
【００８４】
動きが付けられたスケッチには、動く位置と向きからなる軌跡情報と、ボリューム情報が保存されている。操作をするための流れは、
１）．動きの付けられたスケッチのボリューム内にペンを入れる。
２）．ドラッグをすると、まずそのペンでつかんだスケッチのボリューム内の点と、登録されている軌跡情報から、操作するための軌跡を計算する。
３）．ドラッグをしたままその作成された軌跡の方向にたどっていくことで、操作しているようにスケッチが動く（図２７）。
【００８５】
以上説明したように、本システムによると、
１．デザイナの身体性を利用した実物大スケッチ
２．実世界の背景を利用した実物大スケッチ
３．実物大スケッチを操作してデザインの検討
４．３次元空間で協調的なデザイン活動
を実現することができる。
【００８６】
なお、上述した実施の形態では、３次元空間上に立体像を表示させる手段としては、デザイナ自身が頭部に装着するヘッドマウントディスプレイを使用したが、実空間上に３次元映像と投影する表示手段を使用してもよい。また、図１〜図３の構成では、情報処理装置とＨＭＤ及びペンは、無線で伝送を行う構成としたが、ケーブルで接続する構成としてもよい。
【００８７】
また、上述した実施の形態では、実空間上に直接立体像をペンで描画するようにしたが、例えば、デザイナがペン３０を使用して手元で数分の１のサイズで立体像を空間中に描画し、その描画された立体像を数倍に拡大させて、ほぼ実物大で実空間上に表示させて、各部材の動きなどを行うようにして、検証するようにしてもよい。このようなサイズ変更が出来ることで、デザイナが一人で描くことが困難な大型の機器を手書きでスケッチして、実物大で検証できるようになる。
【図面の簡単な説明】
【００８８】
【図１】本発明の一実施の形態によるシステム例を示す構成図である。
【図２】一実施の形態によるヘッドマウントディスプレイの例を示す構成図である。
【図３】一実施の形態によるペンの例を示す構成図である。
【図４】一実施の形態による３次元座標変換の例を示す説明図である。
【図５】一実施の形態によるデザインプロセスの例を示すフローチャートである。
【図６】一実施の形態による実物大スケッチの例を示す説明図である。
【図７】一実施の形態によるスケッチに動きを意味付ける流れの例を示すフローチャートである。
【図８】一実施の形態によるスケッチインターフェイスの例を示す説明図である。
【図９】一実施の形態による詳細なデザインプロセスの例を示すフローチャートである。
【図１０】一実施の形態による実物大スケッチの操作例を示す説明図である。
【図１１】一実施の形態によるコピー機の検証例を示す説明図である。
【図１２】一実施の形態によるリサイクルマシンの例を示す説明図である。
【図１３】一実施の形態によるスケッチ目盛りの表示例を示す説明図である。
【図１４】一実施の形態によるリード機能の例を示す説明図である。
【図１５】一実施の形態によるスケッチの色の変更例を示す説明図である。
【図１６】一実施の形態による対角線選択の例を示す説明図である。
【図１７】一実施の形態による囲み込みでの選択の例を示す説明図である。
【図１８】一実施の形態による囲み込みでの一方からの選択の例を示す説明図である。
【図１９】一実施の形態による囲み込みでの他方からの選択の例を示す説明図である。
【図２０】一実施の形態による直線的な動きの例を示す説明図である。
【図２１】一実施の形態による回動させる動きの例を示す説明図である。
【図２２】一実施の形態による相互作用を教える処理例を示す説明図である。
【図２３】一実施の形態によるデザインプロセスの例を示すフローチャートである。
【図２４】一実施の形態によるスケッチのボリューム作成例を示す説明図である。
【図２５】一実施の形態によるペンとスケッチの一体化インタフェース例を示す説明図である。
【図２６】一実施の形態によるスケッチに動きを教える操作の模式図である。
【図２７】一実施の形態による操作例を示す模式図である。
【符号の説明】
【００８９】
１０…情報処理装置、１１…アンテナ、１２…受信部、１３…３次元空間位置判定部、１４…操作判別部、１５…制御部、１６…プログラムメモリ、１７…画像生成用メモリ、１８…画像生成部、１９…送信部、２０…ヘッドマウントディスプレイ（ＨＭＤ）、２１…アンテナ、２２…受信部、２３…画像処理部、２４…表示部、２５…位置センサ、２６…位置情報生成部、２７…送信部、３０…スタイラスペン、３１…位置センサ、３２…位置情報生成部、３３…送信部、３４…ボタン、３５…ボタン操作情報生成部、３６…アンテナ
【図１】
0004769942.tif 000002
【図２】
0004769942.tif 000003
【図３】
0004769942.tif 000004
【図４】
0004769942.tif 000005
【図５】
0004769942.tif 000006
【図６】
0004769942.tif 000007
【図７】
0004769942.tif 000008
【図８】
0004769942.tif 000009
【図９】
0004769942.tif 000010
【図１０】
0004769942.tif 000011
【図１１】
0004769942.tif 000012
【図１２】
0004769942.tif 000013
【図１３】
0004769942.tif 000014
【図１４】
0004769942.tif 000015
【図１５】
0004769942.tif 000016
【図１６】
0004769942.tif 000017
【図１７】
0004769942.tif 000018
【図１８】
0004769942.tif 000019
【図１９】
0004769942.tif 000020
【図２０】
0004769942.tif 000021
【図２１】
0004769942.tif 000022
【図２２】
0004769942.tif 000023
【図２３】
0004769942.tif 000024
【図２４】
0004769942.tif 000025
【図２５】
0004769942.tif 000026
【図２６】
0004769942.tif 000027
【図２７】
0004769942.tif 000028