JPH10334278A - 仮想粘土システムおよびそのシミュレーション方法 - Google Patents
仮想粘土システムおよびそのシミュレーション方法Info
- Publication number
- JPH10334278A JPH10334278A JP13735997A JP13735997A JPH10334278A JP H10334278 A JPH10334278 A JP H10334278A JP 13735997 A JP13735997 A JP 13735997A JP 13735997 A JP13735997 A JP 13735997A JP H10334278 A JPH10334278 A JP H10334278A
- Authority
- JP
- Japan
- Prior art keywords
- particles
- particle
- virtual
- information
- shape
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
物体の形状のシミュレーションを行うことが課題であ
る。 【解決手段】 コンピュータ上の仮想空間11には、小
さな仮想粒子の集合であるバーチャクレイ15が生成さ
れ、その表面に張られた皮膜により物体の形状を表す。
ユーザが、制御情報入力装置13から変形指示を入力す
ると、粒子間の相互作用により各粒子が移動し、バーチ
ャクレイ15が変形する。その形状変化の様子は感覚情
報出力装置12によりユーザに提示される。感覚情報出
力装置12は、物体の触覚や反力も出力することがで
き、ユーザは、粘土をこねるような感覚で物体を変形さ
せることができる。
Description
り実現される仮想空間(サイバースペース)において、
粘土のモデルを用いて物体の形状変化のシミュレーショ
ンを行うシステムとその方法に関する。
おいて、製品イメージを明確にするために、デザイナー
は、しばしば、その模型を形成することがある。デザイ
ナーは、製品の縮小模型から実物大模型まで、様々な大
きさ/形状の模型を試行錯誤しながら形成し、最終的な
製品のデザインを決定する。
える重要な要素であるため、最適なデザインを決定する
ために、多数の模型が形成される。しかし、模型形成は
実際の素材(粘土・木材・紙など)を利用して行われる
ため、素材の加工に少なからぬ労力を要する。したがっ
て、模型形成には、膨大なコスト(労力・時間)を要す
るという問題がある。
質を落とさずに労力・時間を軽減することができれば、
製品コストの低下に繋がる。また、一方では、デザイン
に必要な他の工程にかける割り当て時間を、充分に取る
ことができるようになると見込まれる。
ず、コンピュータを用いて生成される仮想世界(バーチ
ャルリアリティ)における仮想的な建造物や造形品の設
計製作においても、同様なことがいえる。
(computer-aided design )や3Dグラフィクスなどに
おいて、3Dの造形ソフトウェアも利用されている。し
かし、この造形ソフトウェアは、2次元(2D)のドロ
ー系のソフトウェアを継承しているために、物体の形状
の作成時に2Dのポインティングデバイスによる強い制
約を受けることがある。
進複写や回転複写などを利用した3D物体の再現、曲面
の一部を表すパッチを制御することによる3D物体の表
面形成・曲面の操作などを行うこともある。
は、複雑で非効率的な操作がユーザに要求され、一通り
の操作手順を覚えるまでは、物体の形状を作成すること
は困難である。このように、3Dの造形ソフトウェアに
よれば、素材を加工する手間を省くことができるが、操
作のための特殊技能の習得が必要であり、誰でも簡単に
利用できるわけではないという問題がある。
される仮想空間において、簡単な操作で、効率よく物体
の形状のシミュレーションを行うことのできるシステム
とその方法を提供することである。
土システムの原理図である。図1の仮想粘土システム
は、コンピュータを用いて実現され、入力手段1、変形
手段2、記憶手段3、形状生成手段4、および出力手段
5を備える。
集合データと、その粒子の集合内の各粒子の位置を表す
位置データとを記憶し、形状生成手段4は、上記粒子の
集合の形状を表す形状データを生成する。また、入力手
段1は、上記粒子の集合に対するユーザからの指示情報
を入力し、変形手段2は、その指示情報に従って、上記
集合内の少なくとも一部の粒子の位置を変更すること
で、上記形状を動的に変化させる。そして、出力手段5
は、上記形状データに基づく形状情報を出力する。
ることで、その形状を自由に変化させることができ、仮
想空間における粘土のような素材の性質をシミュレート
する。記憶手段3には、粒子の集合に含まれる粒子の数
や各粒子の識別子などを含む粒子集合データと、仮想空
間における各粒子の位置を表す位置データが記憶されて
おり、形状生成手段4は、各粒子の位置データをもとに
して、集合全体が表す仮想的な物体の形状データを生成
する。
させる指示情報を入力し、変形手段2は、それに従っ
て、位置を変更すべき粒子とその移動量を計算する。こ
れにより、集合内の粒子の一部または全部の位置データ
が変更され、形状生成手段4は、更新された位置データ
をもとにして、さらに形状データを生成する。そして、
出力手段5は、生成された形状データに基づき、物体の
形状情報を画像などの形で出力する。
続的に指示情報が入力されたとき、各制御時刻における
形状データが計算され、対応する形状情報が出力され
る。したがって、ユーザは、指示情報を入力しながら、
仮想的な物体の形状の変化をリアルタイムで認識するこ
とができる。
内部の構造を粒子の集合として表すことで、表面の変形
操作を、各粒子の移動によりシミュレートすることがで
きる。これにより、内部構造を持つ粘土をこねるような
感覚で、直観的に変形操作を行うことが可能となり、指
示情報の入力方法も簡単化される。また、出力手段5と
して、表示装置以外の出力装置を用いることで、仮想的
な物体の触覚情報や物体上で発生した力の情報をユーザ
に伝達することもできる。
3の入力装置23に対応し、変形手段2と形状生成手段
4はCPU(中央処理装置)21とメモリ22に対応
し、記憶手段3はメモリ22に対応し、出力手段5は出
力装置24に対応する。
明の実施の形態を詳細に説明する。従来の模型形成では
実際の素材を利用しているが、模型形成をコンピュータ
上でシミュレートすれば、素材のコストや素材加工に要
する時間を削減することができる。また、従来の造形ソ
フトウェアにおける操作とは別に、より現実世界に近い
ような操作性を実現できれば、一層、模型生成時間を短
縮できる。このために必要な技術としては、次のような
ものが挙げられる。 (1)コンピュータ上の仮想世界において、素材の物理
的・物質的性質をシミュレートできること (2)コンピュータ上の仮想世界において、現実世界の
操作性をシミュレートできること また、コンピュータ上で実現することの利点は、現実世
界では実現不可能な操作を実現できる可能性があること
である。
状を保持できる素材の代表として粘土を選び、コンピュ
ータ上の素材として仮想的な粘土(以下、仮想粘土また
はバーチャクレイ(Virtuaclay)と呼ぶ)を想定する。
そして、コンピュータ上で、仮想的な物理法則の下に、
仮想粘土の形状の変化をシミュレートする。図2は、こ
のようなシミュレーションを行う仮想粘土システム(バ
ーチャクレイシステム)を示している。
11に存在するバーチャクレイ15は多数の粒子から成
っており、バーチャクレイ15のモデルとその内部状態
がデータとして保持されている。ユーザは、制御情報入
力装置13から仮想空間11に制御情報を入力し、感覚
情報出力装置12から感覚情報を受け取る。また、出力
装置14は、必要に応じて、バーチャクレイモデルのデ
ータやその他のオブジェクトのデータを出力する。
グラミングにおける情報の単位であり、データとそれに
適用される手続きであるメソッドとの組みを有する。オ
ブジェクトに定義されたメソッドを実行することで、様
々な情報処理が実現される。バーチャクレイシステムに
おけるオブジェクトの詳細については、後述することに
する。
15を仮想的に加工するための指示を入力する装置であ
り、例えば、2D/3Dポインティングデバイス、イン
スツルメントグローブ、力入力装置が用いられる。ま
た、感覚情報出力装置12は、加工されたバーチャクレ
イ15の形状等を出力する装置であり、例えば、2D/
3D表示装置、触覚出力装置、力出力装置が用いられ
る。
ウスであり、3Dポインティングデバイスは、例えば、
3Dの移動と回転を含む操作性を持つポインティングデ
バイスである。また、インスツルメントグローブは、仮
想世界での様々な手の動きを可能にする3D位置センサ
ー付きのグローブで、データグローブとも呼ばれる。各
センサーは、指の位置と動きを正確に検出し、仮想世界
での物体の移動や変形に反映させる。
のジンバル(gimbal)の中に指先を入れて力を入力する
装置で、指先の位置を入力する3D位置センサーとして
も機能する。このような力入力装置は、力出力装置の機
能を兼ねることもでき、素材からの反力をリアルタイム
で指先にフィードバックする。これにより、ユーザは、
仮想空間の物体の堅さや表面の摩擦等を感じることがで
きる。
のディスプレイ装置以外に、例えば、仮想世界を知覚
(人工感覚)するためのヘッドマウントディスプレイが
用いられる。また、触覚出力装置としては、例えば、イ
ンスツルメントグローブに装着されたバイブレータが用
いられる。このような入出力装置を利用することで、仮
想世界の素材加工操作と現実世界のそれとの差異が低減
される。
シミュレートするには様々な手法が考えられる。ここで
は、必ずしも力学系を正確にシミュレートする必要はな
く、リアルタイムなインタラクションが要求される点を
考慮して、模型の自然な作成環境をシミュレートすれば
よい。この環境を支配する規則を近似物理法則または擬
似物理法則と呼ぶことにし、それをコンピュータ上の近
似計算で実現する。
こねる、つける、引き延ばす、つまむ、合わせる、混ぜ
るなどが考えられるが、これらの操作機能を擬似物理法
則の下で実現する。より具体的には、制御情報入力装置
13から指示される操作機能を、仮想空間11における
簡単な力学的基本要素の組合せで実現する。そして、こ
れらの操作に伴う触覚または力覚の情報を、感覚情報出
力装置12を介して出力する。
イシステムによれば、模型の複製、拡大・縮小、移動、
さらには模型表面の平滑化、修正、変更、部品化、再利
用などの操作を簡易に行うことができる。特に、拡大・
縮小などは、現実の模型では不可能な操作であるが、小
さなバーチャクレイで概形を作っておいてからそれを大
きくして細部を加工する場合などに便利である。
例えば、図3に示すようなコンピュータ(情報処理装
置)により実現される。図3の情報処理装置は、CPU
(中央処理装置)21、メモリ22、入力装置23、出
力装置24、外部記憶装置25、媒体駆動装置26、ネ
ットワーク接続装置27を備え、それらの各装置はバス
28により互いに結合されている。
ログラムを実行して、バーチャクレイシステムの処理を
実現する。メモリ22としては、例えばROM(read o
nlymemory)、RAM(random access memory)等が用
いられる。
13やキーボードなどに相当し、ユーザからの操作指示
の入力に用いられる。出力装置24は、図2の感覚情報
出力装置12やプリンタなどに相当し、仮想世界の模型
などの情報の出力に用いられる。
ク装置、光ディスク装置、光磁気ディスク(magneto-op
tical disk)装置等であり、プログラムやデータを保存
することができる。また、作成された模型のデータを保
存するデータベースとしても使用することができる。
駆動し、その記憶内容にアクセスする。可搬記録媒体2
9としては、メモリカード、フロッピーディスク、CD
−ROM(compact disk read only memory )、光ディ
スク、光磁気ディスク等、任意のコンピュータ読み取り
可能な記録媒体を使用することができる。この可搬記録
媒体29には、データのほかに、バーチャクレイシステ
ムの処理を行うプログラムが格納される。
cal area network)などの任意の通信ネットワークに接
続され、通信に伴うデータ変換などを行う。情報処理装
置は、ネットワーク接続装置27を介して、ネットワー
クから必要な情報を受け取ることができる。
する技術を列挙する。 (1)3Dのパッチで物体の表面を形成し、制御点をイ
ンタラクティブに制御する。このアルゴリズムによる設
計方法は、次の2つの文献に記載されている。H. J. La
mousin and W. N. Waggenspack, Jr.,“NURBS-Based Fr
ee-Form Deformations, ”IEEE Computer Graphics and
Applications, 11, pp.59-65,(1994).H. Qin and D. T
erzopoulos,“D-NURBS: A Phisics-Based Framework fo
r Geometric Design ”IEEE Transactions on Visualiz
ation and Computer Graphics,Vol. 2, No. 1, pp.85-9
6,(1996). (2)体積という量を定義したソリッドモデルを想定
し、変形時において体積を保存するという制約の下で、
その形状を制御する。この技術については、次の文献に
記載されている。A. Rappoport, A. Sheffer and M. Be
rcovier,“Volume-Preserving Free-FormSolids, ”IEE
E Transactions on Visualization and Computer Graph
ics, Vol.2, No. 1, pp.19-27,(1996). (3)高分子の構造を表示する際に、結合構造だけでは
なく、分子の表面を計算して、その空間に占める形状を
表現する。この技術については、次の文献に記載されて
いる。A. Varshneym, F. P. Brooks, Jr. and W. V. Wr
ight, “Computing Smooth Molecular Surfaces,”IEEE
Computer Graphics and Applications, 9, pp.19-25,
(1994). (4)人の指などで可塑性のある物体を変形させる際の
作用・反作用をシミュレートする。物体の弾性を指先の
触覚に対して表現し、かつ、指先からの力を検出して、
シミュレーション用のデータに変換するデバイスを通じ
て、変形の相互作用を実現する。この技術については、
次の文献に記載されている。K. Hirota and M. Hirose,
“Providing Force Feedback in Virtual Environment
s, ”IEEE Computer Graphics and Applications, 9, p
p.22-39,(1995). (5)オブジェクト間のメッセージパッシングにより、
多体問題の並列計算を行う。この技術については、次の
文献に記載されている。八杉昌宏&米澤明憲,“N体問
題の並列オブジェクト指向アルゴリズム,”日本ソフト
ウェア科学会第8回大会論文集,pp.405-408,(1992). (6)仮想空間における物体と物理法則を定義し、指と
物体および物体相互の干渉計算を行う体系的なソフトウ
ェアを構築する。この技術については、次の文献に記載
されている。広田光一&木島竜吾,“バーチャルリアリ
ティ・ソフトウェア,”共立出版,仮想現実学への序
曲,bit8月号別冊,pp.132-142,(1994).この文献に
は、変形面とスイッチを用いた特殊なインタフェースを
持つ電子粘土システムが紹介されているが、これは単に
物体の表面の形状変化をシミュレートするシステムであ
り、内部に多数の粒子を持つ本発明のバーチャクレイと
は本質的に異なる。
システム実現のための必須技術というわけではなく、現
状においてこれらの技術を組み合わせることにより、バ
ーチャクレイシステムが技術的に実施可能であることを
示しているに過ぎない。
が実装されるモデルについて説明する。このバーチャク
レイのモデルと上述した関連技術を統合して、バーチャ
クレイシステムが実現される。
どの任意の形状の仮想粒子の集合として定義され、それ
がバーチャクレイの概形を形成する。各粒子は、符号や
番号などの識別情報により区別し、粒子の集合の表面に
皮膜を形成して、物体の形状を表すことにする。形状の
変化は、各粒子の位置を変えることで制御される。
り、粒子と粒子、粒子の近傍と近傍、粒子と外因作用
(ユーザの指の動きなど)の間において、相互作用(イ
ンタラクション)が定義される。この相互作用として
は、実際の物理法則による物理シミュレーションを用い
てもよく、処理の高速化のために適当な擬似物理法則を
利用してもよい。
仮想粒子の構造を示している。図4の粒子は、空間の位
置情報として、ユークリッド座標系における中心位置の
座標X=(x1 ,x2 ,x3 )を有する。そして、その
位置を中心に、複数の層から成る近傍構造31を持って
いる。
と呼ばれ、粒子の中心Xから半径r C の大きさで球状に
広がっている。各粒子は他の粒子の核32に侵入できな
い性質を持つ。これに対して、他の層は、相互作用場
(Interaction field )と呼ばれ、弾性や粘性といった
他の粒子との間の相互作用を規定する。これらの層のう
ち最も外側のものは、中心Xから半径rI の大きさで球
状に広がり、粒子の大きさを決定している。
内側の層の性質がより外側の層の性質に優先される。し
たがって、弾性などの相互作用が定義された層であって
も、他の粒子の核32には侵入することができない。
は、粒子−粒子相互作用、粒子−外因子相互作用とし
て、相互作用の相手に応じて決められる。粒子−粒子相
互作用は、粒子間の位置関係(距離)を媒介パラメータ
として定義され、単に、引力、斥力、侵入禁止といった
単純な性質にとどまらず、他の様々な性質を規定する。
これにより、多様な材質のバーチャクレイが構成され
る。
な粒子を用いて、奇妙な手ごたえを持つ素材を表現する
ことができる。また、特定の粒子とのみ引き合う/斥け
合う性質を用いることで、フラクタル結晶構造のような
状態を創り出すことができる。また、それに色付けする
ことで、陶器の釉薬のような面白い視覚的効果が得られ
る。
ミュレーションにより確かめることができ、各ユーザ
は、思い思いに近傍構造31を設計して、その情報をラ
イブラリとして保存しておくことができる。ライブラリ
の情報は、必要に応じて呼び出されて、再利用される。
仮想粒子間の相互作用の例を説明する。図5は、粒子の
移動操作による隣接粒子への影響の伝播を示している。
図5において、粒子Pの位置をX=(x1 ,x2 ,
x3 )とし、粒子Pに対する移動操作はベクトルΔX=
(Δx1 ,Δx2 ,Δx3 )で表現されるものとする。
この位置変更操作による粒子Pの移動後の位置X′は、
X′=X+ΔXにより計算される。粒子Pが移動するこ
とにより、粒子Pに接触していた粒子Qは次のように移
動する。
y3 )とする。XとYを結ぶ直線XYに対してベクトル
ΔXを垂直に射影して得られるベクトルを、ベクトルΔ
Y=Proj(ΔX,XY)とする。このベクトルΔY
が、粒子Qの移動操作のベクトルとなる。したがって、
粒子Pの移動に伴う粒子Qの移動後の位置は、Y′=Y
+ΔY=Y+Proj(ΔX,XY)となる。粒子Rに
ついても同様の計算が行われる。
asticity/elasticity )を模した近傍の効果を示してい
る。粒子間の弾性を模倣する規則は、上述の相互作用場
の性質で実現される。今、2つの粒子PとQの相互作用
場が交叉していないとする。2つの粒子の相互作用場
は、互いの相互作用場の侵入を許すが、より内部の核の
侵入は許さない。移動操作により侵入される粒子をP、
侵入する粒子をQとし、次のような規則を割り付ける。
とし、粒子Qの場が粒子Pの場にQ→P方向にrだけ侵
入した場合、適当な係数をcP (0<cP <1)とし
て、粒子PをQ→P方向にcP rだけ移動させる。ま
た、粒子Qは、適当な係数をcQ(0<cQ <1)とし
て、P→Q方向にcQ rだけ押し戻され、そのQ→P方
向の移動量はr−cQ rとなる。その結果、粒子Pの中
心XはX′の位置に移動し、粒子Qの中心YはY′の位
置に移動する。典型的には、このような規則により粒子
間の弾性が模倣される。
性(viscosity )を模した近傍の効果を示している。粒
子間の粘性を模倣する規則も、相互作用場の性質で実現
される。今、2つの粒子PとQの相互作用場が交叉して
いるとする。粒子PがQ→P方向にrだけ移動すると、
適当な係数をdQ (0<dQ <1)として、粒子QはQ
→P方向にdQ rだけ移動する。その結果、粒子Pの中
心XはX′の位置に移動し、粒子Qの中心YはY′の位
置に移動する。このような規則により粒子間の粘性が模
倣される。
触している粒子を分離させるような操作も可能である。
この場合も、上述の移動による変形と同様な計算を行う
が、移動ベクトルの方向は逆になる。図5のような移動
操作を粒子の押し込みと呼ぶならば、この移動操作は粒
子の引き剥がしと呼ぶことができる。
への影響の伝播を示している。図8において、粒子Pの
位置をXとし、粒子Pに対する移動操作はベクトルΔX
で表現されるものとする。このとき、粒子Pの移動後の
位置X′は、X′=X+ΔXにより与えられる。粒子P
が移動することにより、粒子Pに接触していた粒子Qは
次のように移動する。
XYに対してベクトルΔXを垂直に射影して得られるベ
クトルをProj(ΔX,XY)とする。このとき、引
き剥がしによる移動量の伝達率(transmission efficie
ncy )をcT として、粒子Qの移動ベクトルを、ベクト
ルΔY=cT Proj(ΔX,XY)とする。したがっ
て、粒子Pの移動に伴う粒子Qの移動後の位置は、Y′
=Y+ΔY=Y+cTProj(ΔX,XY)となる。
粒子Rについても同様の計算が行われる。
に、最初に移動する粒子から遠く離れるに従って急激に
小さくなるように設定される。したがって、一定距離よ
り遠く離れた粒子は、引き剥がしの影響を受けることは
ない。このような伝達率は、粘性を模倣した規則により
実現することができる。このような引き剥がしの規則を
用いて、いくつかの粒子を元の集合から分離する操作
と、それによるバーチャクレイの変形を実現できる。
に対する操作としては、次のようなものが挙げられる。
まず、表面の皮膜が連続したままの変形操作には、皮膜
に穴を空けないような操作と、皮膜に穴を空けるような
操作とがある。
ば、任意の粒子の移動による変形、いくつかの粒子を固
定したまま他の粒子を移動させるような変形が含まれ、
後者の場合は、粒子集合内に、変形操作の影響を受けな
い部分集合を設定できる。また、粒子集合内の部分集合
単位の移動による変形も考えられる。皮膜に穴を空ける
操作の場合は、うがたれる穴を中心として、局所的に粒
子集合の最外殻の位置が再計算される。
よる変形操作も、皮膜が連続したままの変形操作の1つ
である。この操作には、粒子集合の並進操作、回転操
作、拡大/縮小操作などが含まれる。アフィン変換操作
は、例えば、画面表示された操作パネル上での指示に対
して割り当てられたり、データグローブを装着した手に
よるジェスチャに対して割り当てられたりする。
る入力に閾値を設定しておき、入力がしきい値より小さ
ければアフィン変換を行うようにすることもできる。さ
らに、上述の部分集合単位で、アフィン変換による変形
を行ってもよい。
置を均一にする操作で、粒子の数をを増減したり、粒子
の近傍構造を変えたり、粒子の識別符号を置換したりす
る操作を含む。例えば、色の異なる2種類の粒子を含む
バーチャクレイをコネルことにより、色の分布を均一に
することができる。
を加工することも可能である。例えば、仮想的なマーカ
は、粒子集合の領域や境界を指定するために用いられ、
仮想的な馬楝(ばれん)は、表面形状の変更/整形のた
めに用いられ、力学的ファンは、風圧により表面形状を
変化させるために用いられる。このような表面仕上げの
ために用いられる道具は、フィニッシャ(finisher)と
呼ばれ、具体的には、粒子の位置データをフィルタリン
グすることで、それらをなめらかに配置する処理を行
う。
のパラメータ値を変更することで、バーチャクレイの特
性を変更する操作を行うこともできる。例えば、温度の
変化により粒子間の結合の強さを表すパラメータを変化
させて、凝固、融解、気化などの現象をシミュレートす
ることができる。この場合、バーチャクレイを加熱する
仮想的な道具として、ドライヤーを定義しておいてもよ
い。
次のようにして行われる。2つの粒子集合を接合した場
合、各集合に属する粒子は、図10に示すように、同一
の皮膜に覆われる場合と、図11に示すように、異なる
皮膜に覆われる場合とがある。
結合させると、これらに属する粒子は互いに混ざり合う
のに対して、図11の接合操作では、粒子集合L、Rは
接触しているだけで、それらの粒子は混ざり合っていな
い。どちらの場合も、結合後の粒子は、次の変形操作を
受ける際の基本単位として扱われる。
は、図12に示すように、元の集合が2つ以上の部分集
合に分けられ、部分集合同士が接触しないように、それ
ぞれ、異なる皮膜で覆われる。この操作においては、ま
ず、元の集合の最外殻の粒子において分離する位置を指
定し、適当な規則を決めて分離境界を設定する。そし
て、境界上の粒子を部分集合に振り分け、それぞれの新
しい最外殻粒子を決める。
して行うことで、バーチャクレイの外見が変化する。こ
のバーチャクレイの外見を決めるのが皮膜であり、皮膜
生成は、粒子集合に対する作用の一つとして定義され
る。皮膜の形状は、粒子集合の最外殻を成す粒子の位置
により決められるが、その表面を表現するパッチとして
は任意のものを採用することができる。また、粒子集合
内の各粒子は、最外殻に位置するか否かを示す識別情報
を持っている。
の計算には、例えば、線形計画法を利用することができ
る。線形計画問題の代表的な解法として知られているシ
ンプレックス法は、解を表す空間の許容領域の境界上に
位置する頂点をたどって、最適解に到達する方法であ
る。シンプレックス法に基づく最外殻粒子の計算方法の
詳細は、上述の“Computing Smooth Molecular Surface
s ”に記述されているが、そのアルゴリズムについては
後述することにする。
合、粒子の複雑な空間配置から最外殻を一度で計算する
必要はなく、複雑なバーチャクレイの形状は、逐次的に
生成されていく。局所的な変形で形状が変わることを考
えれば、そのような変形が加えられる度にローカルに最
外殻を更新することで、計算は簡単になる。
反作用の計算も定義することができる。反作用の模倣に
利用可能な量としては、粒子の平均移動ベクトル、粒子
の仮想的な重さ(質量)、作用点となる最外殻の粒子の
移動ベクトル、反作用の計算における近傍の相互作用の
パラメータなどがある。
例えば、基本操作に対する反作用をテーブル化してメモ
リに格納しておき、該当する操作が行われたときにそれ
を参照する方法がある。この場合、音を出す、色を変化
させる、手応え(反力)を出力するなどの反作用があら
かじめ設定される。
量、仮想質量などから反作用を計算することもでき、近
傍系の弾性や粘性による損失移動ベクトルから反作用を
計算することもできる。
ら、本実施形態のバーチャクレイシステムの構成をより
詳細に説明する。図13は、バーチャクレイシステムの
ブロック図である。図13のシステムは、図3に示した
ような情報処理装置を用いて実現され、入力装置23と
して、2D/3Dポインティングデバイス(PD)4
1、データグローブ(DG)42、および力入力装置
(FI)43を備え、出力装置24として、2D/3D
ディスプレイ(DS)44、バイブレータ(VB)4
5、および力出力装置(FO)46を備える。
り、2D/3Dポインティングデバイスのモデル(P
D′)51、データグローブのモデル(DG′)52、
力入力装置のモデル(FI′)53、オペレーションパ
ネルのモデル(OP′)54、ジェスチャシステムのモ
デル(GS′)55、バーチャクレイのモデル(V
C′)56、2D/3Dディスプレイのモデル(D
S′)57、バイブレータのモデル(VB′)58、お
よび力出力装置のモデル(FO′)59が生成される。
報をOP′54、DS′57、およびVC′56に伝
え、DG′52は、DG42から入力された情報をO
P′54、GS′55、DS′57、およびVC′56
に伝え、FI′53は、FI43から入力された情報を
DS′57およびVC′56に伝える。また、OP′5
4は、PD′51、DG′52、およびGS′55から
受け取った情報をDS′57およびVC′56に伝え、
GS′55は、DG′52から受け取った情報をOP′
54およびDS′57に伝える。
(オペレーション)、ツール、粒子のパラメータなどの
定義を、データや手続きとして持っている。オペレーシ
ョンとしては、粒子生成(create)、粒子消去(discar
d )、変形(deformation )、固定(fix )、固定解除
(unfix )、グループ化(group )、グループ解除(un
group )、並進(translate )、回転(rotate)、スケ
ール変更(scale )、皮膜生成(surface generation)
などの手続きが定義される。
を表し、粒子消去とは、既存の粒子を消去する操作を表
す。また、変形とは、粒子集合を変形する操作を表し、
通常、各粒子の移動を伴う。また、固定とは、移動しな
い粒子の指定操作を表し、固定解除とは、その指定を解
除する操作を表す。
合を1つの集合に統合する操作を表し、グループ解除と
は、1つの粒子集合を2つ以上の集合に分割する操作を
表す。また、並進、回転、およびスケール変更は、粒子
集合のアフィン変換操作を表し、皮膜生成とは、粒子集
合の表面に皮膜を生成する操作を表す。
グループ解除の際に粒子集合の境界を指定するマーカ
や、外形を整えるフィニッシャなどの手続きが定義さ
れ、粒子のパラメータとしては、核の半径rC 、相互作
用場の半径rI 、弾性係数、粘性係数などが定義され
る。
FI′53、およびOP′54から受け取った情報に基
づいて、対応する手続きを実行し、その結果得られた情
報をOP′54、DS′57、VB′58、およびF
O′59に伝える。
52、FI′53、OP′54、GS′55、およびV
C′56から受け取った情報に基づき、DS44に画像
を表示させ、VB′58は、VC′56から受け取った
情報に基づき、VB45を振動させ、FO′59は、V
C′56から受け取った情報に基づき、FO46から力
を出力させる。
すようなバーチャクレイモデルの粒子集合P(tS )
は、次のように記述される。 P(tS )={...,pi (tS ),pi+1 (tS ),...} (1) ここで、pi (tS )は、サンプリング時刻tS におけ
るi番目の粒子(i=1,2,3,...)の中心位置
を表す3次元空間の座標であり、 pi (tS )=[xi (tS ),yi (tS ),zi (tS )]T (2) と書ける。通常、粒子の位置が変化するのは、なんらか
の操作が行われたときであるので、tS としては、操作
入力があったときの時刻が採用されることになる。ま
た、P(tS )の外形を表す皮膜は、Surface
(P(tS ))と記述される。
に、 Q(tS )={...,qi (tS ),qi+1 (tS ),...} (3) と記述され、その皮膜はSurface(Q(tS ))
と記述される。以下では、特に断らない限り、位置座標
やベクトルは3次元の量を表すものとする。図15は、
PD41の例とDS44の画面の例を示している。例え
ば、ユーザが2Dまたは3DのPD41を操作して、変
位ベクトルΔxpd(tS )と変位操作の作用点の位置x
pd(tS-1 )の情報を入力する場合を考える。PD41
が2Dのマウスなどの場合、z軸方向の変位はクリック
回数またはクリック間隔などにより指定される。
pd(tS )が入力されると、PD′51は、次式によ
り、それらをモデルの世界の変位ベクトルΔx′pd(t
S )に変換する。 Δx′pd(tS )=Gain(Δx′pd(tS ))+Offset (4) ここで、Gainは適当な関数であり、Offsetは
定数である。Gainの関数形は、実験により決められ
る。xpd(tS-1 )もまた、(4)式と同様にして、仮
想世界の座標x′pd(tS-1 )に変換される。
x′pd(tS-1 )に基づき変形オペレーションを実行し
て、粒子集合P(tS )を変形する。このとき、PD′
51の入力手続きとして、次のような計算が行われる。 Δpi (tS )=Δx′pd(tS ), (5) ∀i,|x′pd(tS-1 )−pi (tS-1 )|<rI , pi (tS-1 )∈P(tS-1 ) ここで、Δpi (tS )は、各粒子の移動ベクトルを表
し、pi (tS-1 )は、変位前の時刻tS-1 における粒
子集合P(tS-1 )の各粒子の位置を表す。したがっ
て、x′pd(tS-1 )が相互作用場内に入っているよう
な粒子のみが、ベクトルΔx′pd(tS )の作用を受け
て移動し、その他の粒子の位置は変化しない。
ゴリズムに従って、最初に移動した粒子の移動ベクトル
Δpi (tS )の影響を、粒子集合P(tS-1 )全体に
反映させ、操作後の粒子集合P(tS )を生成する。そ
して、皮膜生成オペレーションを実行して、Surfa
ce(P(tS ))を生成し、その情報を出力する。
(tS ))の情報に基づき、そのグラフィックデータを
生成し、DS44の画面に表示する。図15では、時刻
tS-1 における粒子集合P(tS-1 )の形状が示されて
いるが、粒子集合P(tS )の形状も同様にして表示さ
れる。
VB45の例を示している。VB′58は、VC′56
から粒子集合P(tS )の情報を受け取り、DG′52
からモデルの世界におけるk番目のVB45の位置の座
標情報x′dg,k(tS )を受け取る。ここで、k=1,
2,3,4,5,6,7,8,9,10であり、k=
1,2,3,4,5は左手の各指に装着されたVB45
に対応し、k=6,7,8,9,10は右手の各指に装
着されたVB45に対応する。そして、それらの情報に
基づき、振動データを表す関数Vk (tS )を次のよう
に計算する。 Vk (tS )=Vk (Σi |pi (tS )−x′dg,k(tS )|), (6) ∀i,|pi (tS )−x′dg,k(tS )|<rI , pi (tS )∈P(tS ) ここで、|pi (tS )−x′dg,k(tS )|は、pi
(tS )とx′dg,k(tS )の距離を表し、Σi は、す
べての粒子に関する総和を表す。したがって、Vk (t
S )は、各粒子とVB45の仮想的な位置との間の距離
の総和をパラメータとする関数として定義され、その関
数形は実験により決められる。また、x′dg,k(tS )
がいずれかの粒子の相互作用場内に入っているようなV
B45のみについて、Vk (tS )が計算され、その他
のVB45についてはVk (tS)は0に設定される。
k (tS )は、各VB45に出力されて、それを振動さ
せる。このようなVB′58によれば、仮想世界におい
て、変形操作に伴って移動した粒子に触れたVB45の
みが振動し、バーチャクレイに接触したときの感覚を表
現することができる。
ねる力入出力装置の例を示している。FO′59は、V
C′56から粒子集合P(tS )の情報を受け取り、F
I′53からモデルの世界におけるk番目の座標情報
x′f,k (tS )を受け取る。x′f,k (tS )は、力
入出力装置47のジンバル48の位置を表し、k=1,
2,3,4,5は左手の各指先に対応し、k=6,7,
8,9,10は右手の各指に対応する。そして、それら
の情報に基づき、力データを表す関数Fk (tS)を次
のように計算する。 Fk (tS )=Fk (Σi |pi (tS )−x′f,k (tS )|), (7) ∀i,|pi (tS )−x′f,k (tS )|<rI , pi (tS )∈P(tS ) ここで、Fk (tS )は、各粒子とジンバル48の仮想
的な位置との間の距離の総和をパラメータとする関数と
して定義され、その関数形は実験により決められる。ま
た、x′f,k (tS )がいずれかの粒子の相互作用場内
に入っているようなジンバル48のみについて、F
k (tS )が計算され、その他のジンバル48について
はFk (tS )は0に設定される。
は、ジンバル48に出力されて、指先に力を与える。こ
のようなFO′59によれば、仮想世界において、変形
操作に伴って移動した粒子に触れた指先のみに反力が返
され、バーチャクレイからの力の感覚を表現することが
できる。
る。DG42上には、多数の位置センサが組込まれてお
り、k番目のセンサの位置座標は、xdg,k(tS )と記
述される。この場合、kの値の上限はセンサの個数に対
応して決められる。DG′52は、DG42から各操作
時刻におけるxdg,k(tS )の情報を受け取ると、
(4)式と同様にして、それらをモデルの世界の座標情
報x′dg,k(tS )に変換し、VC′56とDS′57
に渡す。
dg,k(tS-1 )、x′dg,k(tS )に基づき変形オペレ
ーションを実行して、粒子集合P(tS )を変形する。
このとき、DG′52の入力手続きとして、次のような
計算が行われる。 Δpi (tS )=x′dg,k(tS )−x′dg,k(tS-1 ), (8) ∀i,|x′dg(tS )−pi (tS-1 )|<rI , pi (tS-1 )∈P(tS-1 ) ここでは、x′dg(tS )が相互作用場内に入っている
ような粒子のみが、移動ベクトルΔpi (tS )に従っ
て移動し、その他の粒子の位置は変化しない。ベクトル
Δpi (tS )は、x′dg,k(tS )とx′dg,k(t
S-1 )の差分として与えられる。
ゴリズムに従って、最初に移動した粒子の移動ベクトル
Δpi (tS )の影響を、粒子集合P(tS-1 )全体に
反映させ、操作後の粒子集合P(tS )を生成する。そ
して、皮膜生成オペレーションを実行して、Surfa
ce(P(tS ))を生成し、その情報を出力する。
(tS ))とx′dg,k(tS )の情報に基づき、バーチ
ャクレイと手のグラフィックデータを生成し、DS44
の画面に表示する。図18では、時刻tS-1 における粒
子集合P(tS-1 )と手の形状が示されているが、時刻
tS における粒子集合P(tS )と手の形状も同様にし
て表示される。
を入力する例を示している。FI′53は、力入出力装
置47からk番目の座標情報xf,k (tS-1 )と、入力
された力ベクトルfin,k(tS-1 )を受け取る。xf,k
(tS )は、図17と同様に、力入出力装置47のジン
バル48の位置を表し、fin,k(tS-1 )は、その位置
において入力された力を表す。FI′53は、(4)式
と同様にして、それらをモデルの世界の量x′f,k (t
S-1 )、f′in,k(tS-1 )に変換し、VC′56に渡
す。
f,k (tS-1 )、f′in,k(tS-1 )に基づき変形オペ
レーションを実行して、粒子集合P(tS )を変形す
る。このとき、FI′53の入力手続きとして、次のよ
うな計算が行われる。 Δpi (tS )=Displacement(f′in,k(tS-1 )),(9) ∀i,|x′f,k (tS-1 )−pi (tS-1 )|<
rI , pi (tS-1 )∈P(tS-1 ) ここでは、x′f,k (tS-1 )が相互作用場内に入って
いるような粒子のみが、移動ベクトルΔpi (tS )に
従って移動し、その他の粒子の位置は変化しない。ベク
トルΔpi (tS )は、f′in,k(tS-1 )をパラメー
タとする関数Displacementにより計算され
る。Displacementの関数形は、実験により
決められる。
ゴリズムに従って、最初に移動した粒子の移動ベクトル
Δpi (tS )の影響を、粒子集合P(tS-1 )全体に
反映させ、操作後の粒子集合P(tS )を生成する。そ
して、皮膜生成オペレーションを実行して、Surfa
ce(P(tS ))を生成し、その情報を出力する。D
S′57は、Surface(P(tS ))の情報に基
づき、バーチャクレイのグラフィックデータを生成し、
DS44の画面に表示する。
れたオペレーションパネルを示している。OP′54に
は、VC′56が持っているオペレーション、ツール、
粒子のパラメータに対応する手続きがあらかじめ定義さ
れており、それらがメニュー項目として、DS44の画
面に表示される。
て、CREATE、DISCARD、BIGGER、S
MALLER、GROUP、UNGROUP、TRAN
SLATE、ROTATEなどの項目が表示され、ツー
ルとして、MARKERとFINISHERの項目が表
示され、パラメータとして、AFFECT、UNAFF
ECT、ELASTICITY、およびVISCOSI
TYの項目が表示されている。これらの項目のいずれか
を指定することで、対応する動作が行われる。
GER、SMALLER、GROUP、UNGROU
P、TRANSLATE、ROTATEは、それぞれ、
粒子生成、粒子消去、拡大、縮小、グループ化、グルー
プ解除、並進、回転、変形のオペレーションを表す。こ
のうち、TRANSLATEとROTATEについて
は、それぞれ、並進の向きと回転軸の向きも明示され
る。
の半径rI とその性質の設定に用いられ、UNAFFE
CTは、粒子の核の半径rC とその性質の設定に用いら
れる。ELASTICITYとVISCOSITYは、
それぞれ、弾性係数と粘性係数の設定に用いられ、
“+”は性質を強める指示を表し、“−”は性質を弱め
る指示を表す。
項目を指定すると、OP′54は、PD′51からx′
pd(tS-1 )を受け取り、DG′52からx′dg,k(t
S-1)を受け取る。そして、x′pd(tS-1 )または
x′dg,k(tS-1 )が、画面上のいずれかの項目に対応
する領域内にあるかどうかを判定し、その位置がいずれ
かの項目に対応していれば、該当項目の処理を行う。こ
のとき、必要に応じて、VC′56に処理を依頼する。
P′54は、指定された粒子集合P(tS-1 )、Q(t
S-1 )の情報をVC′56から受け取り、次のような演
算を行う。 Group(P(tS-1 ),Q(tS-1 )) ={P(tS ),Q(tS )}, (10) P(tS )=P(tS-1 ),Q(tS )=Q(tS-1 ) ここで、Groupは、与えられた粒子集合をグループ
化する演算子であり、グループ{P(tS ),Q
(tS )}の情報は、VC′56に出力される。これ以
後、粒子集合P(tS )とQ(tS )は1つの操作対象
とみなされる。
P′54は、指定されたグループ{P(tS-1 ),Q
(tS-1 )}の情報をVC′56から受け取り、次のよ
うな演算を行う。 UnGroup({P(tS-1 ),Q(tS-1 )}) =P(tS ),Q(tS ), (11) P(tS )=P(tS-1 ),Q(tS )=Q(tS-1 ) ここで、UnGroupは、与えられたグループを解除
する演算子であり、グループを解除された粒子集合P
(tS ),Q(tS )の情報は、VC′56に出力され
る。これ以後、粒子集合P(tS )とQ(tS )は別々
の操作対象とみなされる。
と、OP′54は、指定された並進ベクトルxC による
並進オペレーションの実行を、VC′56に依頼する。
これを受けて、VC′56は、次のような演算を行う。 Translate({...,pi (tS-1 ),...},xC ) ={...,pi (tS ),...} (12) pi (tS )=pi (tS-1 )+xC ここで、Translateは、各粒子の位置座標pi
(tS-1 )にベクトルx C を加算する演算子である。
P′54は、指定された回転ベクトルφC による回転オ
ペレーションの実行を、VC′56に依頼する。これを
受けて、VC′56は、次のような演算を行う。 Rotate({...,pi (tS-1 ),...},φC ) ={...,pi (tS ),...} (13) pi (tS )=R(φC )pi (tS-1 ) ここで、Rotateは、各粒子の位置座標pi (t
S-1 )に、回転ベクトルφ C により記述される回転行列
R(φC )を乗算する演算子である。
が指定されると、OP′54は、指定された定ベクトル
cによるスケール変更オペレーションの実行を、VC′
56に依頼する。これを受けて、VC′56は、次のよ
うな演算を行う。 Scale({...,pi (tS-1 ),...},c) ={...,pi (tS ),...} (14) pi (tS )=diag(c)pi (tS-1 ) ここで、Scaleは、各粒子の位置座標p
i (tS-1 )に、ベクトルcの各成分を対角要素とする
対角行列diag(c)を乗算する演算子である。
なしで指定するためのジェスチャシステムを示してい
る。この機能を利用する場合、ユーザはDG42を装着
した手で、決められたジェスチャを行う。このとき、G
S′55は、DG′52から各センサの位置の履歴情報
{...,x′dg,k(tS-2 ),x′
dg,k(tS-1 ),...}を受け取り、その情報が特定
のジェスチャパターンと類似しているかどうかを判定す
る。
る各センサの位置の変化を表す情報であり、並進ジェス
チャパターン、回転ジェスチャパターン、拡大/縮小ジ
ェスチャパターンなど、図20に示した各メニュー項目
に対応するパターンが用意される。GS′55は、これ
らのジェスチャパターンをあらかじめデータとして保持
しており、ジェスチャパターンと入力された履歴情報の
類似度を計算して、それらを比較する。
チャパターンに対応する項目が指定されたものとみな
し、その項目の処理をOP′54に依頼する。また、そ
のジェスチャの表示をDS′57に依頼する。これを受
けて、DS′57は、対応するジェスチャの画像をDS
44の画面に表示する。
システムによれば、2Dのポインティングデバイスおよ
びディスプレイの操作性によって制限を受けている3D
CADや3Dグラフィクスなどの作業方法を、より直
観的なものに進化させることができる。現在、入力装置
として、データグローブ、3Dマウス、力入力装置など
が普及しつつあり、出力装置として、ヘッドマウントデ
ィスプレイが一般化されつつあるので、バーチャクレイ
システムにおいて、これらを利用することは容易であ
る。
な形を直観的に生成する機能を、従来の3D CADや
3Dグラフィクスのプラグインツールとして提供するこ
ともできる。その結果、実世界の3D物体のデザイン
や、あるいは仮想世界における建造物や造形品の設計製
作にあたり、時間効率を高めることができる。
ら、バーチャクレイシステムにおける各処理と、それに
伴うバーチャクレイの変化について、さらに詳細に説明
する。以下では、システムのソフトウェアを、オブジェ
クト指向プログラミングにより構築するものとし、図1
3のPD′51、DG′52、FI′53、OP′5
4、GS′55、VC′56、DS′57、VB′5
8、およびFO′59のそれぞれに対応するオブジェク
トを生成する。
テムにおける一般的な処理のフローチャートである。シ
ステムは、起動されると、まず、メモリ22上において
上述の各オブジェクトを起動し、それらをメッセージ待
ちの状態にする(ステップS1)。そして、オブジェク
トがメッセージを受信したかどうかを判定する(ステッ
プS2)。
は、そのメッセージに関する処理を行い(ステップS
3)、オブジェクトの内部状態を更新して(ステップS
4)、システム終了の指示が入力されたかどうかを判定
する(ステップS5)。その指示がなければ、それが入
力されるまでステップS2以降の処理を行う。また、ス
テップS2において、どのオブジェクトもメッセージを
受信していない場合は、ステップS5の処理を行う。
ージの送受信処理のフローチャートである。送信側のオ
ブジェクトは、メソッド実行を依頼するメッセージを配
送した後(ステップS11)、待機状態となる(ステッ
プS12)。
ジを受信すると(ステップS21)、指定されたメソッ
ドを実行し(ステップS22)、その結果に基づいてデ
ータなどの内部状態を更新する(ステップS23)。そ
して、必要な情報を、送信側のオブジェクトに返送した
り、新たなメッセージを他のオブジェクトに配送したり
して(ステップS24)、待機状態となる。
の組合わせを、[送信側オブジェクト>>受信側オブジ
ェクト]のように表すと、バーチャクレイシステムにお
ける主な組合わせは次のようになる。 [PD′>>VC′],[PD′>>OP′],[PD′>>DS′], [DG′>>VC′],[DG′>>OP′],[DG′>>GS′], [DG′>>DS′], [FI′>>VC′],[FI′>>DS′], [OP′>>VC′],[OP′>>DS′], [GS′>>OP′],[GS′>>DS′], [VC′>>DS′],[VC′>>VB′],[VC′>>FO′] もちろん、必要に応じて、上記組合わせ以外のオブジェ
クト間でメッセージを配送することも可能である。これ
らのオブジェクトと、図13のPD41、DG42、F
I43、DS44、VB45、およびFO46は、以下
のようにして動作する。
である。PD41は、ユーザに操作されることで動作を
開始し(ステップS31)、操作量を信号に変換する
(ステップS32)。そして、その信号をPD′51に
出力して(ステップS33)、次の操作待ちの状態にな
る(ステップS34)。
である。DG42は、ユーザの手に装着されて操作され
ることで動作を開始し(ステップS41)、各センサの
位置の変化を信号に変換する(ステップS42)。そし
て、その信号をDG′52に出力して(ステップS4
3)、次の操作待ちの状態になる(ステップS44)。
である。FI43は、ユーザの指先に装着されて操作さ
れることで動作を開始し(ステップS51)、指先の位
置の変化を信号に変換する(ステップS52)。そし
て、その信号をFI′53に出力して(ステップS5
3)、次の操作待ちの状態になる(ステップS54)。
トである。PD′51は、PD41からの信号を受け取
って動作を開始し(ステップS61)、信号の値からP
D′51の位置(ポイント)の変移量を確定する(ステ
ップS62)。PD′51の位置と変移量は、例えば、
図15の位置情報x′pdと変位ベクトルΔx′pdに対応
する。
テップS63)、メッセージの宛先を確定する(ステッ
プS64)。宛先がVC′56の場合は、位置情報と変
移量をVC′56に対するメッセージとして出力し(ス
テップS65)、PD41からの信号待ちの状態になる
(ステップS66)。また、宛先がOP′54の場合
は、位置情報と変移量をOP′54に対するメッセージ
として出力し(ステップS67)、信号待ちの状態にな
る(ステップS66)。
トである。DG′52は、DG42からの信号を受け取
って動作を開始し(ステップS71)、信号の値からD
G′52のセンサの位置の変移量を確定する(ステップ
S72)。DG′52の位置と変移量は、例えば、図1
8の位置情報x′dg,kと、連続する2つの時刻間のx′
dg,kの差に対応する。
テップS73)、メッセージの宛先を確定する(ステッ
プS74)。宛先がVC′56の場合は、位置情報と変
移量をVC′56に対するメッセージとして出力し(ス
テップS75)、DG42からの信号待ちの状態になる
(ステップS76)。また、宛先がOP′54の場合
は、位置情報と変移量をOP′54に対するメッセージ
として出力し(ステップS77)、信号待ちの状態にな
る(ステップS76)。
トである。FI′53は、FI43からの信号を受け取
って動作を開始し(ステップS81)、信号の値からF
I′53の位置と入力された力を確定する(ステップS
82)。FI′53の位置と力は、例えば、図19の位
置情報x′f,k と力ベクトルf′in,kに対応する。
テップS83)、メッセージの宛先を確定する(ステッ
プS84)。宛先がVC′56の場合は、位置情報と力
情報をVC′56に対するメッセージとして出力し(ス
テップS85)、FI43からの信号待ちの状態になる
(ステップS86)。また、宛先がOP′54の場合
は、位置情報と力情報をOP′54に対するメッセージ
として出力し(ステップS87)、信号待ちの状態にな
る(ステップS86)。
トである。OP′54は、DS44の画面に表示された
オペレーションパネル(OP)から入力されるイベント
を受け付け(ステップS91)、それに基づき操作を確
定する(ステップS92)。そして、OP′54からV
C′56に対する操作をメッセージとしてVC′56に
出力し(ステップS93)、オペレーションパネルから
のイベント待ちの状態になる(ステップS94)。
トである。VC′56は、PD′51、DG′52、F
I′53、またはOP′54からのメッセージを受け取
って動作を開始し(ステップS101)、バーチャクレ
イに対する変形操作の作用点および移動量を確定する
(ステップS102)。次に、変形操作を起動し(ステ
ップS103)、作用点が相互作用場内に存在する粒子
の移動処理を行い(ステップS104)、反作用を確定
する(ステップS105)。
106)、最外殻粒子を更新する(ステップS10
7)。そして、バーチャクレイの表面情報(パッチ情
報)を更新し(ステップS108)、その表面情報をD
S′57に対するメッセージとして出力する(ステップ
S109)。また、反作用をVB′58またはFO′5
9に対するメッセージとして出力し(ステップS11
0)、次のメッセージ待ちの状態となる(ステップS1
11)。
S102、S103、S104、S105、およびS1
06における処理のフローチャートである。処理が開始
されると、VC′56は、まず、バーチャクレイの粒子
集合の中で、PD′51、DG′52、FI′53、ま
たはOP′54により直接操作される粒子の部分集合P
(0) を特定し、P(0) に含まれる各粒子の位置をpi
(0) とする(図32、ステップS121)。例えば、図
34に示すような粒子集合において、移動作用61が入
力された場合、粒子62が直接操作される粒子となる。
122)、集合P(k-1) 内の各粒子に対する移動作用
{Δpi (k-1) }から、各粒子の暫定的な位置p′i を
次式により計算する(ステップS123)。 p′i =pi (k-1) +Δpi (k-1) (15) 次に、集合P(k-1) 内の各粒子の暫定的な位置p′i に
おける相互作用場間の相互作用と位置の調整規則を用い
て調整を行い、調整後の位置p″i を決定する(ステッ
プS124)。 p″i =I(p′i ;p′1 ,...,p′i-1 , p′i+1 ,...,p′n(k-1)) (16) ここで、(16)式の右辺は位置p′i を調整する演算
を表し、n(k−1)は集合P(k-1) 内の粒子の個数を
表す。調整規則としては、例えば、相互作用場間で交差
が生じないという条件が用いられる。暫定的な移動の結
果、2つ以上の粒子の相互作用場が交差している場合
は、いずれか1つの粒子にその場所を占有させ、他の粒
子の位置を変更する。
較して、その番号がより小さいもの(順位がより高いも
の)にその場所を占有させることにする。図34の場合
は、集合P(0) に含まれる粒子の数は1個だけなので、
調整の必要はなく、p″i =p′i となる。
ルvi (k-1) を次式により計算する(ステップS12
5)。 vi (k-1) =p″i −pi (k-1) (17) そして、集合P(k-1) の各粒子に接触している他の粒子
と、集合P(k-1) の各粒子がベクトルvi (k-1) により
移動することで新たに接触する他の粒子とから成る集合
P(k) を特定する(ステップS126)。図34の場
合、粒子62が移動することで、図35に示されるよう
にして、その影響が段階的に他の粒子に伝播する。
の位置を表し、太線の円は移動後の粒子の位置を表す。
ここで、粒子62が属する集合P(0) を粒子層L1とす
ると、粒子62に接触している2個の粒子が、集合P
(1) に対応する粒子層L2に含まれることになる。以下
同様に、粒子層Lk(k=1,2,3,4,5)の粒子
は集合P(k-1) に含まれる。
j (k) と、それに接触する集合P(k -1) の粒子の相互作
用場φi (k-1) および移動ベクトルvi (k-1) とから、
集合P(k) の各粒子に対する移動作用Δpj (k) と、そ
の粒子からの反作用Δbj (k -1) を、次式により計算す
る(図33、ステップS127)。 Δpj (k) =Σi F(vi (k-1) ,φj (k) ,φi (k-1) ) ≒Σi αjiPROJji(vi (k-1) ), (18) 0<αji<1 Δbj (k-1) =Σi B(vi (k-1) ,φj (k) ,φi (k-1) ) ≒Σi βjiPROJji(vi (k-1) ), (19) −1<<βji<0 ここで、PROJji(vi (k-1) )は、pi (k-1) とp
j (k) を結ぶ直線上にベクトルvi (k-1) を射影する関
数であり、αjiとβjiは、相互作用場φj (k)、φi
(k-1) により決められる係数である。ただし、βjiの絶
対値は1より十分に小さいものとする。
(k-1) の各粒子への反作用{Δb′i (k -1) }を求め
て、次式により位置p″i の変動を計算する。 p′′′i =p″i +Δb′i (k-1) (20) Δb′i (k-1) は、集合P(k) の各粒子からの反作用Δ
bj (k-1) を、pi (k -1) とpj (k) を結ぶ直線上に射
影することで求められる。
位置p′′′i における相互作用場間の相互作用と、上
述の調整規則を用いて調整を行い、調整後の位置
p′′′′ i を決定する(ステップS129)。 p′′′′i =I(p′′′i ;p′′′1 ,...,p′′′i-1 , p′′′i+1 ,...,p′′′n(k-1)) (21) そして、p′′′′i を最終的な位置pi (k-1) として
確定する(ステップS130)。次に、すべての粒子の
位置が確定したかどうかを調べ(ステップS131)、
位置が確定していない粒子があれば、k=k+1とおい
て(ステップS132)、ステップS123以降の処理
を繰り返す。そして、すべての粒子の位置が確定する
と、それらの情報により粒子位置を更新し、この処理を
終了する。
すように、粒子層L4の2つの粒子63、64が交差し
たとする。このとき、VC′56は交差を解消するため
に、図37に示すように、これらの粒子63、64の識
別子k、mを比較して、粒子63の位置を変更すること
に決定する。
るが、ここでは、周辺の粒子65、66、64、67か
ら遠ざかる向きのベクトルをそれぞれ求め、それらの合
成ベクトル68により、変更位置を決定する。こうし
て、図38に示すように、各粒子の位置が確定される。
図39は、図31のステップS107における最外殻粒
子の更新処理のフローチャートである。ここでは、シン
プレックス法を用いて、最外殻粒子を決定する。処理が
開始されると、VC′56は、まず、図40に示すよう
に、粒子集合全体を取り囲むシンプレックス(単体)7
1を計算する(ステップS141)。そして、各粒子の
近傍を基本にして、2つの粒子間に相互作用がある場合
に、互いの影響が等しくなるような平面を計算する(ス
テップS142)。
子を囲む半空間を計算する(ステップS143)。図4
0の粒子集合においては、粒子aを囲む半空間は、粒子
aと粒子bの境界a&bと、粒子aと粒子cの境界a&
cと、粒子aと粒子dの境界a&dの3つの平面により
区切られる。
ップS144)。凸包とは、空間内の点の任意の部分集
合を含む最小の凸集合であり、凸集合とは、空間内の点
の部分集合であって、その任意の2点を結ぶ線分もまた
その部分集合に含まれるという性質を持つ。したがっ
て、粒子を囲む凸包とは、言い換えれば、粒子の近傍を
含む最小の凸集合のことである。
は、平面a&b、a&c、a&d、およびシンプレック
ス71の表面により決定される。同様にして、他の粒子
を囲む凸包も、図42に示すように決定される。
する(ステップS145)。ここでは、粒子集合を取り
囲むシンプレックスが、ある粒子の凸包の一部であれ
ば、その粒子を最外殻粒子とする。そして、最外殻粒子
の集合を、図31のステップS108の処理に出力して
(ステップS146)、処理を終了する。図42の場合
は、シンプレックス71を含む凸包の中の粒子a、b、
e、f、cが、最外殻粒子となる。
トである。FO′59は、VC′56からのメッセージ
を受け取って動作を開始し(ステップS151)、作用
点における反作用ベクトルを確定する(ステップS15
2)。
(ステップS153)。この力情報は、例えば、図17
の力データFk に対応する。そして、力情報をFO46
に対するメッセージとして出力し(ステップS15
4)、VC′56からのメッセージ待ちの状態になる
(ステップS155)。
トである。VB′58は、VC′56からのメッセージ
を受け取って動作を開始し(ステップS161)、作用
点における反作用ベクトルを振動情報に変換する(ステ
ップS162)。この振動情報は、例えば、図16の振
動データVk に対応する。そして、振動情報をVB45
に対するメッセージとして出力し(ステップS16
3)、VC′56からのメッセージ待ちの状態になる
(ステップS164)。
トである。DS′57は、VC′56からのメッセージ
を受け取って動作を開始し(ステップS171)、バー
チャクレイの表面情報を確定し(ステップS172)、
表面のレンダリング(rendering )を行って、バーチャ
クレイの画像データを生成する(ステップS173)。
この表面情報は、例えば、図15のSurfaceに対
応する。そして、画像データをDS44に対するメッセ
ージ(画像信号)として出力し(ステップS174)、
VC′56からのメッセージ待ちの状態になる(ステッ
プS175)。
D′51、DG′52、FI′53、OP′54、およ
びGS′55からメッセージを受け取り、それに対応す
る画像データを生成して、DS44に出力する。
である。FO46は、FO′59からのメッセージを受
け取って動作を開始し(ステップS181)、力情報を
確定する(ステップS182)。そして、力情報を提示
し(ステップS183)、FO′59からのメッセージ
待ちの状態になる(ステップS184)。
である。VB45は、VB′58からのメッセージを受
け取って動作を開始し(ステップS191)、振動情報
を確定する(ステップS192)。そして、振動情報を
提示し(ステップS193)、VB′58からのメッセ
ージ待ちの状態になる(ステップS194)。
である。DS44は、DS′57からのメッセージを受
け取って動作を開始し(ステップS201)、画像信号
を確定する(ステップS202)。そして、画像を表示
し(ステップS203)、DS′57からのメッセージ
待ちの状態になる(ステップS204)。
シンプルな反作用の出力処理の例を示すフローチャート
である。PD′51またはDG′52からのメッセージ
により、移動作用がVC′56の粒子に働くと(ステッ
プS211)、VC′56は、その移動作用と近傍の相
互作用から、移動ベクトルvを計算する(ステップS2
12)。
vの向きを反転した反転ベクトル−vを計算し(ステッ
プS213)、反転ベクトル−vと移動作用の作用点の
情報を、反作用メッセージとしてVB′58またはF
O′59に配送する(ステップS214)。このメッセ
ージを受け取ったVB′58またはFO′59は、その
情報をもとにVB45またはFO46を駆動し(ステッ
プS215)、処理を終了する。
理に基づくバーチャクレイの変形操作を示している。図
51は、DS44に表示されたバーチャクレイの外形を
示しており、ユーザは、PD41、DG42、またはF
I43を操作することで、このバーチャクレイを変形す
ることができる。
およびFI43からの作用を直接受けるだけでなく、D
S44に表示されたオペレーションパネル上の操作に基
づく作用も受ける。これらの入力デバイスからは、変形
操作の作用点と移動量の情報が入力される。
3の操作は、それぞれ、図24、25、26の動作に従
って信号に変換され、それらのデバイスの制御オブジェ
クトPD′51、DG′52、FI′53に送信され
る。
FI′53は、それぞれ、図27、28、29の処理に
従って、入力デバイスからの信号をVC′56への操作
メッセージに変換する。これらのオブジェクトは、入力
デバイスの状態を判定したり、操作条件を判定したりす
ることで、変形操作のメッセージを生成し、VC′56
に送信する。また、必要に応じて、OP′54への操作
メッセージも送信される。
力デバイスの操作により発生するイベントを確定し、V
C′56に対するメッセージ(変形操作の文脈では、変
形メッセージ)を生成して送信する。
する粒子を示している。このバーチャクレイは、変形前
の表面情報および変形作用による移動の前の仮想粒子の
情報を持つ。以下、変形操作を図31のフローチャート
に従って説明する。
は、各オブジェクトPD′51、DG′52、FI′5
3、OP′54からのメッセージを受け取り(ステップ
S101)、メッセージの内容を処理して、移動操作の
作用点と移動量を確定し(ステップS102)、変形操
作を起動して、変形作用ベクトル81を生成する(ステ
ップS103)。
53に示すような粒子の移動処理を行い(ステップS1
04)、反作用を確定し(ステップS105)、各粒子
の位置を更新する(ステップS106)。図53には、
移動前の粒子の位置、移動後の粒子の位置、および反作
用ベクトル82が示されている。
54に示すように、最外殻粒子を更新し(ステップS1
07)、バーチャクレイの表面情報を更新する(ステッ
プS108)。この段階で、VC′56は、表面情報を
メッセージとしてDS′57へ送信し(ステップS10
9)、反作用をメッセージとしてVB′58またはF
O′59へ送信する(ステップS110)。
取ったFO′59、VB′58は、それぞれ、図43、
44の処理に従ってメッセージを処理し、FO46、V
B45に対して動作メッセージを送信する。また、V
C′56から表面情報のメッセージを受け取ったDS′
57は、図45の処理に従って、バーチャクレイの表面
のレンダリングを行い、画像信号を生成し、それをメッ
セージとしてDS44に送信する。
44は、それぞれ、対応する制御オブジェクトFO′5
9、VB′58、DS′57からメッセージを受け取
る。FO46は、図46動作に従って、力情報をユーザ
に提示し、VB45は、図47の動作に従って、振動情
報をユーザに提示し、DS44は、図48の動作に従っ
て、バーチャクレイの画像を表示する。こうして、DS
44の画面には、図55に示すような変形後のバーチャ
クレイの表面が表示される。
5に示されるような滑らかな曲面に限られず、移動後の
粒子の位置に基づく任意の形状をとることができる。例
えば、図56に示されるように、最外殻粒子の表面に沿
った曲面でもよく、図57に示されるように、最外殻粒
子の中心を頂点とする多面体でもよい。
示したように、バーチャクレイを仮想的にちぎる場合の
変形操作の例を示している。時刻ts-1 において、バー
チャクレイの各粒子が図58に示すように配置されてい
るとすると、VC′56は、まず、図59に示すよう
に、直接「ちぎる」操作の対象となる粒子層P0 を決定
し、その層の各粒子に同じ移動ベクトル91を割り当て
る。そして、移動の単位となる粒子層P1 、P2 、P3
を決定する。ここでは、層P0 から最も離れた層P3 の
粒子92の位置は固定しておく。
に、層P0 の粒子を移動ベクトル91により暫定的に移
動させる。ここでは、すべての粒子が平行に移動し、位
置を補正する必要がないので、暫定的な移動先がそのま
ま次の位置として確定する。次に、図61に示すよう
に、次の層P1 の移動ベクトル93、94を決定する。
これらのベクトルの向きは、前の層のベクトル91に依
存して決まる。
層で移動ベクトルを計算し、暫定的な粒子の位置をすべ
て決定する。粒子同士が重なる場合は位置を補正する
が、この例では補正は起こらない。その結果、各粒子の
位置は、図62のようになる。
に、層P3 の粒子92が固定されていることによる反作
用を合成し、関連する粒子を移動させる。この反作用
は、粒子間の粘性などの相互作用により決定される。そ
して、各粒子の位置の調整を行い、最外殻粒子を決定し
て、皮膜を計算する。その結果、時刻ts におけるバー
チャクレイの形状は、図64のようになる。
が続けられている場合は、VC′56は、図65に示す
ように、移動ベクトル95を計算し、図66に示すよう
に、粒子層を計算して、暫定的な移動を行う。そして、
反作用を計算し、図67に示すように、時刻ts+1 にお
ける各粒子の位置を決定する。
し、皮膜を計算する。このとき、一定距離以上離れた粒
子は、互いに異なる粒子集合として扱い、それぞれ、異
なる皮膜で覆うことにする。その結果、時刻ts+1 にお
けるバーチャクレイの形状は、図68に示すように、2
つの皮膜96、97で表現される。こうして、図58の
バーチャクレイが2つに分割される。
示したように、バーチャクレイを仮想的にくっつける場
合の変形操作の例を示している。時刻ts-1 において、
バーチャクレイの各粒子が図69に示すように配置され
ているとすると、VC′56は、まず、図70に示すよ
うに、直接「くっつける」操作の対象となる粒子層P 0
を決定し、その層の各粒子に移動ベクトル101、10
2を割り当てる。そして、移動の単位となる他の粒子層
P1 を決定する。
に、層P0 の粒子を移動ベクトル101、102により
暫定的に移動させ、図72に示すように、粒子同士の重
なりがなくなるように位置を補正する。
移動ベクトル103、104、105、106を決定す
る。これらのベクトルの向きは、前の層のベクトル10
1、102に依存して決まる。そして、図74に示すよ
うに、移動ベクトル103、104、105、106に
より、層P1 の粒子を暫定的に移動させる。ここでは、
粒子同士が重ならないので、補正は行われない。
て、皮膜を計算する。その結果、時刻ts におけるバー
チャクレイの形状は、図75のようになり、図69の2
つのバーチャクレイが接合される。
クレイを平行移動させる場合の操作の例を示している。
時刻ts-1 において、バーチャクレイの各粒子が図76
に示すように配置されているとすると、VC′56は、
まず、図77に示すように、すべての粒子に同じ移動ベ
クトル111を割り当てる。
ル111により暫定的に移動させる。平行移動の場合
は、位置の補正などは必要ないので、暫定的な移動先が
そのまま次の位置として確定する。そして、最外殻粒子
を決定して、皮膜を計算する。その結果、時刻ts にお
けるバーチャクレイは、図78のようになる。
PD′51、DG′52、FI′53、OP′54、G
S′55、VC′56、DS′57、VB′58、およ
びFO′59を、オブジェクト指向プログラミングによ
り実現するものとしたが、これに限らず、任意のプログ
ラミング方法を用いることができる。また、入出力装置
は、図13のPD41、DG42、FI43、DS4
4、VB45、およびFO46に限られることはなく、
キーボードやプリンタなど、他の任意の装置を用いるこ
とができる。
より結合されたホストコンピュータ上にバーチャクレイ
システムを構築し、ユーザ端末からのアクセスにより、
それを起動することもできる。この場合、必要な入出力
装置はユーザ端末に備えられ、ネットワークを介して、
入出力情報がやり取りされる。
れた物体の形状を簡単な操作で変更することができ、形
状のシミュレーションが効率よく行われる。また、物体
を構成する粒子に対して様々な性質を定義することがで
き、多様なシミュレーションが可能になる。
る。
る。
す図である。
ートである。
る。
トである。
る。
ある。
ある。
ある。
ある。
ある。
る。
る。
る。
ある。
ある。
ある。
3、104、105、106、111 移動ベクトル 71 シンプレックス 72 凸包 81 変形作用ベクトル 82 反作用ベクトル 96、97 皮膜
Claims (17)
- 【請求項1】 仮想粒子の集合を表す粒子集合データ
と、該集合内の各粒子の位置を表す位置データとを記憶
する記憶手段と、 前記粒子の集合の形状を表す形状データを生成する形状
生成手段と、 前記粒子の集合に対するユーザからの指示情報を入力す
る入力手段と、 前記指示情報に従って、前記集合内の少なくとも一部の
粒子の位置を変更することで、前記形状を動的に変化さ
せる変形手段と、 前記形状データに基づく形状情報を出力する出力手段と
を備えることを特徴とする、 コンピュータを用いた仮想粘土システム。 - 【請求項2】 前記集合内の各粒子の機能的な近傍を定
義し、2つ以上の粒子の近傍間における第1の相互作用
と、1つの粒子の近傍と前記指示情報に基づく外因作用
との間における第2の相互作用とを計算する相互作用計
算手段をさらに備えることを特徴とする請求項1記載の
仮想粘土システム。 - 【請求項3】 前記相互作用計算手段は、前記粒子の近
傍として、球体および立方体のうちいずれか一方の空間
を定義することを特徴とする請求項2記載の仮想粘土シ
ステム。 - 【請求項4】 前記相互作用計算手段は、仮想的な物理
法則に基づく近似計算を用いて前記第1および第2の相
互作用を計算することを特徴とする請求項2記載の仮想
粘土システム。 - 【請求項5】 前記相互作用計算手段は、前記粒子の仮
想的な弾性および粘性のうち少なくとも一方に基づいて
前記第1の相互作用を計算し、前記外因作用に対する仮
想的な反作用に基づいて前記第2の相互作用を計算する
ことを特徴とする請求項4記載の仮想粘土システム。 - 【請求項6】 前記形状生成手段は、前記粒子の集合の
表面を表す膜データを含む前記形状データを生成するこ
とを特徴とする請求項1記載の仮想粘土システム。 - 【請求項7】 前記入力手段は、前記指示情報として、
前記粒子の生成、前記粒子の消去、前記粒子の集合の変
形、前記粒子の位置の固定、固定解除、前記粒子のグル
ープ化、グループ解除、前記粒子の集合の並進、前記粒
子の集合の回転、前記粒子の集合のスケール変更、およ
び前記粒子の集合の表面の整形のうち、少なくとも1つ
以上の操作の指示を入力することを特徴とする請求項1
記載の仮想粘土システム。 - 【請求項8】 前記出力手段は、前記形状情報を視覚的
に表示する2次元表示手段および3次元表示手段のうち
のいずれかを含むことを特徴とする請求項1記載の仮想
粘土システム。 - 【請求項9】 前記粒子の集合が表す仮想的な物体の触
覚情報を出力する触覚出力手段をさらに備えることを特
徴とする請求項1記載の仮想粘土システム。 - 【請求項10】 前記粒子の集合が表す仮想的な物体上
で発生した力の情報を伝達する力出力手段をさらに備え
ることを特徴とする請求項1記載の仮想粘土システム。 - 【請求項11】 前記入力手段は、2次元ポインティン
グ手段、3次元ポインティング手段、前記ユーザの手の
位置を検出する位置検出手段、力入力手段、画面上に表
示されたオペレーションパネル手段、および前記ユーザ
のジェスチャを検出するジェスチャ検出手段のうちのい
ずれかであることを特徴とする請求項1、8、9、また
は10記載の仮想粘土システム。 - 【請求項12】 前記位置検出手段およびジェスチャ検
出手段は、複数の位置センサ手段を含むグローブ型デバ
イスであることを特徴とする請求項11記載の仮想粘土
システム。 - 【請求項13】 仮想粒子の集合を表す粒子集合データ
と、該集合内の各粒子の位置を表す位置データとを記憶
する記憶手段と、 前記粒子の集合に対するユーザからの指示情報を入力す
る入力手段と、 前記指示情報に従って、前記集合内の少なくとも一部の
粒子の位置を変更することで、前記形状を動的に変化さ
せる変形手段と、 前記粒子の集合が表す仮想的な物体の触覚情報および該
物体上で発生した力の情報のうち、少なくとも一方の情
報を出力する出力手段とを備えることを特徴とする、 コンピュータを用いた仮想粘土システム。 - 【請求項14】 あらかじめ記憶された仮想粒子の集合
を表す粒子集合データと、該集合内の各粒子の位置を表
す位置データとを用いて、該粒子の集合の形状を表す形
状データを生成する機能と、 前記粒子の集合に対するユーザからの指示情報を入力す
る機能と、 前記指示情報に従って、前記集合内の少なくとも一部の
粒子の位置を変更することで、前記粒子の集合の形状を
動的に変化させる機能と、 前記形状データに基づく形状情報を出力する機能とをコ
ンピュータに実現させるためのプログラムを記録したコ
ンピュータ読み取り可能な記録媒体。 - 【請求項15】 あらかじめ記憶された仮想粒子の集合
を表す粒子集合データと、該集合内の各粒子の位置を表
す位置データとを用いて、該粒子の集合の形状を表す形
状データを生成する機能と、 前記粒子の集合に対するユーザからの指示情報を入力す
る機能と、 前記指示情報に従って、前記集合内の少なくとも一部の
粒子の位置を変更することで、前記粒子の集合の形状を
動的に変化させる機能と、 前記粒子の集合が表す仮想的な物体の触覚情報および該
物体上で発生した力の情報のうち、少なくとも一方の情
報を出力する機能とをコンピュータに実現させるための
プログラムを記録したコンピュータ読み取り可能な記録
媒体。 - 【請求項16】 あらかじめ記憶された仮想粒子の集合
を表す粒子集合データと、該集合内の各粒子の位置を表
す位置データとを用いて、該粒子の集合の形状を表す形
状データを生成し、 前記粒子の集合に対するユーザからの指示情報を入力
し、 前記指示情報に従って、前記集合内の少なくとも一部の
粒子の位置を変更することで、前記粒子の集合の形状を
動的に変化させ、 前記形状データに基づく形状情報を出力することを特徴
とする、 コンピュータを用いたシミュレーション方法。 - 【請求項17】 あらかじめ記憶された仮想粒子の集合
を表す粒子集合データと、該集合内の各粒子の位置を表
す位置データとを用いて、該粒子の集合の形状を表す形
状データを生成し、 前記粒子の集合に対するユーザからの指示情報を入力
し、 前記指示情報に従って、前記集合内の少なくとも一部の
粒子の位置を変更することで、前記粒子の集合の形状を
動的に変化させ、 前記粒子の集合が表す仮想的な物体の触覚情報および該
物体上で発生した力の情報のうち、少なくとも一方の情
報を出力することを特徴とする、 コンピュータを用いたシミュレーション方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13735997A JP3904671B2 (ja) | 1997-05-28 | 1997-05-28 | 仮想粘土システムおよびそのシミュレーション方法 |
US09/031,916 US6040840A (en) | 1997-05-28 | 1998-02-27 | Virtual clay system and its method of simulation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13735997A JP3904671B2 (ja) | 1997-05-28 | 1997-05-28 | 仮想粘土システムおよびそのシミュレーション方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10334278A true JPH10334278A (ja) | 1998-12-18 |
JP3904671B2 JP3904671B2 (ja) | 2007-04-11 |
Family
ID=15196826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13735997A Expired - Fee Related JP3904671B2 (ja) | 1997-05-28 | 1997-05-28 | 仮想粘土システムおよびそのシミュレーション方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6040840A (ja) |
JP (1) | JP3904671B2 (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6967650B1 (en) | 1999-07-21 | 2005-11-22 | Namco Ltd. | Image generating system and program |
KR100603019B1 (ko) * | 2004-07-01 | 2006-07-24 | 한국과학기술연구원 | 햅틱 인터페이스를 이용한 도자기 디자인 시스템 |
US7119817B1 (en) | 1999-07-21 | 2006-10-10 | Namco Bandai Games Inc. | Image generating system and program |
JP2009134681A (ja) * | 2007-11-07 | 2009-06-18 | Canon Inc | 画像処理装置、画像処理方法 |
JP2009271746A (ja) * | 2008-05-08 | 2009-11-19 | Sony Corp | 情報入出力装置及び情報入出力方法、並びにコンピュータ・プログラム |
JP2011238068A (ja) * | 2010-05-11 | 2011-11-24 | Nippon Hoso Kyokai <Nhk> | 仮想力覚提示装置及び仮想力覚提示プログラム |
US8698804B2 (en) | 2007-11-07 | 2014-04-15 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
US9082213B2 (en) | 2007-11-07 | 2015-07-14 | Canon Kabushiki Kaisha | Image processing apparatus for combining real object and virtual object and processing method therefor |
JP6140871B1 (ja) * | 2016-08-09 | 2017-05-31 | 株式会社コロプラ | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
US9983409B2 (en) | 2012-09-27 | 2018-05-29 | Kyocera Corporation | Stereoscopic display device and control method |
JP2019046404A (ja) * | 2017-09-07 | 2019-03-22 | 富士ゼロックス株式会社 | 造形制御装置、造形制御プログラム |
US10255658B2 (en) | 2016-08-09 | 2019-04-09 | Colopl, Inc. | Information processing method and program for executing the information processing method on computer |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US7225404B1 (en) * | 1996-04-04 | 2007-05-29 | Massachusetts Institute Of Technology | Method and apparatus for determining forces to be applied to a user through a haptic interface |
US6084587A (en) | 1996-08-02 | 2000-07-04 | Sensable Technologies, Inc. | Method and apparatus for generating and interfacing with a haptic virtual reality environment |
US6552722B1 (en) * | 1998-07-17 | 2003-04-22 | Sensable Technologies, Inc. | Systems and methods for sculpting virtual objects in a haptic virtual reality environment |
US6421048B1 (en) * | 1998-07-17 | 2002-07-16 | Sensable Technologies, Inc. | Systems and methods for interacting with virtual objects in a haptic virtual reality environment |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
US6483499B1 (en) * | 2000-04-21 | 2002-11-19 | Hong Kong Productivity Council | 3D sculpturing input device |
IL136373A0 (en) * | 2000-05-25 | 2001-06-14 | Itpen Ltd Partnership Israel | Representation of three-dimensional bodies on computer screens and games involving such representations |
JP2002200343A (ja) * | 2000-10-30 | 2002-07-16 | Sony Computer Entertainment Inc | 記録媒体、プログラム、方法、プログラム実行システムおよびプログラム実行装置 |
US6867770B2 (en) * | 2000-12-14 | 2005-03-15 | Sensable Technologies, Inc. | Systems and methods for voxel warping |
US6958752B2 (en) | 2001-01-08 | 2005-10-25 | Sensable Technologies, Inc. | Systems and methods for three-dimensional modeling |
US6930364B2 (en) * | 2001-09-13 | 2005-08-16 | Silicon Light Machines Corporation | Microelectronic mechanical system and methods |
JP3621081B2 (ja) * | 2001-10-02 | 2005-02-16 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理システム、画像処理方法、コンピュータプログラム、記録媒体、半導体デバイス |
US7382378B2 (en) * | 2003-10-30 | 2008-06-03 | Sensable Technologies, Inc. | Apparatus and methods for stenciling an image |
US7889209B2 (en) | 2003-12-10 | 2011-02-15 | Sensable Technologies, Inc. | Apparatus and methods for wrapping texture onto the surface of a virtual object |
US7626589B2 (en) * | 2003-12-10 | 2009-12-01 | Sensable Technologies, Inc. | Haptic graphical user interface for adjusting mapped texture |
US20050219249A1 (en) * | 2003-12-31 | 2005-10-06 | Feng Xie | Integrating particle rendering and three-dimensional geometry rendering |
US7149596B2 (en) * | 2004-01-13 | 2006-12-12 | Sensable Technologies, Inc. | Apparatus and methods for modifying a model of an object to enforce compliance with a manufacturing constraint |
US8442331B2 (en) | 2004-02-15 | 2013-05-14 | Google Inc. | Capturing text from rendered documents using supplemental information |
US7707039B2 (en) | 2004-02-15 | 2010-04-27 | Exbiblio B.V. | Automatic modification of web pages |
US10635723B2 (en) | 2004-02-15 | 2020-04-28 | Google Llc | Search engines and systems with handheld document data capture devices |
US7812860B2 (en) | 2004-04-01 | 2010-10-12 | Exbiblio B.V. | Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device |
US20060098900A1 (en) | 2004-09-27 | 2006-05-11 | King Martin T | Secure data gathering from rendered documents |
US7894670B2 (en) | 2004-04-01 | 2011-02-22 | Exbiblio B.V. | Triggering actions in response to optically or acoustically capturing keywords from a rendered document |
US9143638B2 (en) | 2004-04-01 | 2015-09-22 | Google Inc. | Data capture from rendered documents using handheld device |
US8146156B2 (en) | 2004-04-01 | 2012-03-27 | Google Inc. | Archive of text captures from rendered documents |
US20060081714A1 (en) | 2004-08-23 | 2006-04-20 | King Martin T | Portable scanning device |
US9116890B2 (en) | 2004-04-01 | 2015-08-25 | Google Inc. | Triggering actions in response to optically or acoustically capturing keywords from a rendered document |
WO2008028674A2 (en) | 2006-09-08 | 2008-03-13 | Exbiblio B.V. | Optical scanners, such as hand-held optical scanners |
US9008447B2 (en) | 2004-04-01 | 2015-04-14 | Google Inc. | Method and system for character recognition |
US7990556B2 (en) | 2004-12-03 | 2011-08-02 | Google Inc. | Association of a portable scanner with input/output and storage devices |
US8081849B2 (en) | 2004-12-03 | 2011-12-20 | Google Inc. | Portable scanning and memory device |
US8713418B2 (en) | 2004-04-12 | 2014-04-29 | Google Inc. | Adding value to a rendered document |
US8874504B2 (en) | 2004-12-03 | 2014-10-28 | Google Inc. | Processing techniques for visual capture data from a rendered document |
US8489624B2 (en) | 2004-05-17 | 2013-07-16 | Google, Inc. | Processing techniques for text capture from a rendered document |
US8620083B2 (en) | 2004-12-03 | 2013-12-31 | Google Inc. | Method and system for character recognition |
US8346620B2 (en) | 2004-07-19 | 2013-01-01 | Google Inc. | Automatic modification of web pages |
US20060119578A1 (en) * | 2004-11-11 | 2006-06-08 | Thenkurussi Kesavadas | System for interfacing between an operator and a virtual object for computer aided design applications |
US7769573B2 (en) * | 2006-05-26 | 2010-08-03 | Zymeworks Inc. | System and method for modeling interactions |
US7643199B2 (en) * | 2007-06-19 | 2010-01-05 | Qualcomm Mems Technologies, Inc. | High aperture-ratio top-reflective AM-iMod displays |
US8065127B2 (en) * | 2007-09-24 | 2011-11-22 | Siemens Corporation | Particle system architecture in a multi-body physics simulation |
WO2010096193A2 (en) | 2009-02-18 | 2010-08-26 | Exbiblio B.V. | Identifying a document by performing spectral analysis on the contents of the document |
US8447066B2 (en) | 2009-03-12 | 2013-05-21 | Google Inc. | Performing actions based on capturing information from rendered documents, such as documents under copyright |
WO2010105244A2 (en) * | 2009-03-12 | 2010-09-16 | Exbiblio B.V. | Performing actions based on capturing information from rendered documents, such as documents under copyright |
US8473862B1 (en) | 2009-05-21 | 2013-06-25 | Perceptive Pixel Inc. | Organizational tools on a multi-touch display device |
US9081799B2 (en) | 2009-12-04 | 2015-07-14 | Google Inc. | Using gestalt information to identify locations in printed information |
US9323784B2 (en) | 2009-12-09 | 2016-04-26 | Google Inc. | Image search using text-based elements within the contents of images |
US20130031142A1 (en) * | 2011-07-29 | 2013-01-31 | Starcounter Ab | Systems And Methods For Database Usage Visualization |
US20140290531A1 (en) * | 2011-08-16 | 2014-10-02 | The University Of Chicago | Methods of Designing Aggregates Optimized for Specified Properties |
US9802364B2 (en) | 2011-10-18 | 2017-10-31 | 3D Systems, Inc. | Systems and methods for construction of an instruction set for three-dimensional printing of a user-customizableimage of a three-dimensional structure |
US8760751B2 (en) | 2012-01-26 | 2014-06-24 | Qualcomm Mems Technologies, Inc. | Analog IMOD having a color notch filter |
US8803861B2 (en) | 2012-02-23 | 2014-08-12 | Qualcomm Mems Technologies, Inc. | Electromechanical systems device |
USD835142S1 (en) * | 2016-06-07 | 2018-12-04 | Beijing Kingsoft Internet Security Software Co., Ltd. | Mobile communication terminal with animated graphical user interface |
USD819658S1 (en) * | 2017-01-03 | 2018-06-05 | Faraday & Future Inc. | Vehicle display screen or portion thereof with animated graphical user interface |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4841292A (en) * | 1986-08-11 | 1989-06-20 | Allied-Signal Inc. | Third dimension pop up generation from a two-dimensional transformed image display |
JPH05314091A (ja) * | 1992-05-01 | 1993-11-26 | Toyota Central Res & Dev Lab Inc | 流動基質中の粒子の運動解析方法 |
WO1993023835A1 (en) * | 1992-05-08 | 1993-11-25 | Apple Computer, Inc. | Textured sphere and spherical environment map rendering using texture map double indirection |
-
1997
- 1997-05-28 JP JP13735997A patent/JP3904671B2/ja not_active Expired - Fee Related
-
1998
- 1998-02-27 US US09/031,916 patent/US6040840A/en not_active Expired - Lifetime
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7119817B1 (en) | 1999-07-21 | 2006-10-10 | Namco Bandai Games Inc. | Image generating system and program |
US6967650B1 (en) | 1999-07-21 | 2005-11-22 | Namco Ltd. | Image generating system and program |
KR100603019B1 (ko) * | 2004-07-01 | 2006-07-24 | 한국과학기술연구원 | 햅틱 인터페이스를 이용한 도자기 디자인 시스템 |
US8698804B2 (en) | 2007-11-07 | 2014-04-15 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
JP2009134681A (ja) * | 2007-11-07 | 2009-06-18 | Canon Inc | 画像処理装置、画像処理方法 |
US9082213B2 (en) | 2007-11-07 | 2015-07-14 | Canon Kabushiki Kaisha | Image processing apparatus for combining real object and virtual object and processing method therefor |
JP2009271746A (ja) * | 2008-05-08 | 2009-11-19 | Sony Corp | 情報入出力装置及び情報入出力方法、並びにコンピュータ・プログラム |
US8648797B2 (en) | 2008-05-08 | 2014-02-11 | Sony Corporation | Information input/output device, information input/output method and computer program |
JP4645678B2 (ja) * | 2008-05-08 | 2011-03-09 | ソニー株式会社 | 情報入出力装置及び情報入出力方法、並びにコンピュータ・プログラム |
JP2011238068A (ja) * | 2010-05-11 | 2011-11-24 | Nippon Hoso Kyokai <Nhk> | 仮想力覚提示装置及び仮想力覚提示プログラム |
US9983409B2 (en) | 2012-09-27 | 2018-05-29 | Kyocera Corporation | Stereoscopic display device and control method |
US10101585B2 (en) | 2012-09-27 | 2018-10-16 | Kyocera Corporation | Stereoscopic display device and control method |
JP6140871B1 (ja) * | 2016-08-09 | 2017-05-31 | 株式会社コロプラ | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
JP2018025955A (ja) * | 2016-08-09 | 2018-02-15 | 株式会社コロプラ | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
US10255658B2 (en) | 2016-08-09 | 2019-04-09 | Colopl, Inc. | Information processing method and program for executing the information processing method on computer |
US10664950B2 (en) | 2016-08-09 | 2020-05-26 | Colopl, Inc. | Information processing method and system for executing the information processing method |
US10719911B2 (en) | 2016-08-09 | 2020-07-21 | Colopl, Inc. | Information processing method and system for executing the information processing method |
JP2019046404A (ja) * | 2017-09-07 | 2019-03-22 | 富士ゼロックス株式会社 | 造形制御装置、造形制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
US6040840A (en) | 2000-03-21 |
JP3904671B2 (ja) | 2007-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3904671B2 (ja) | 仮想粘土システムおよびそのシミュレーション方法 | |
US5973678A (en) | Method and system for manipulating a three-dimensional object utilizing a force feedback interface | |
Gao et al. | Haptic B-spline surface sculpting with a shaped tool of implicit surface | |
US6191796B1 (en) | Method and apparatus for generating and interfacing with rigid and deformable surfaces in a haptic virtual reality environment | |
US6310619B1 (en) | Virtual reality, tissue-specific body model having user-variable tissue-specific attributes and a system and method for implementing the same | |
Zheng et al. | Desktop virtual reality interface for computer aided conceptual design using geometric techniques | |
US6629065B1 (en) | Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments | |
US6529210B1 (en) | Indirect object manipulation in a simulation | |
US5712964A (en) | Computer graphics data display device and method based on a high-speed generation of a changed image | |
US7536655B2 (en) | Three-dimensional-model processing apparatus, three-dimensional-model processing method, and computer program | |
Henriksen et al. | Virtual trackballs revisited | |
Lamberti et al. | Virtual character animation based on affordable motion capture and reconfigurable tangible interfaces | |
Gao et al. | A 6-DOF haptic interface and its applications in CAD | |
CN111665933A (zh) | 虚拟或者增强现实中的对象操作方法及装置 | |
US20150169156A1 (en) | Method and Mechanism for Human Computer Interaction | |
Davison et al. | LifeBrush: Painting, simulating, and visualizing dense biomolecular environments | |
Trika et al. | Virtual reality interfaces for feature-based computer-aided design systems | |
Wong et al. | Virtual 3d sculpting | |
JP3722994B2 (ja) | 物体の接触感シミュレーション装置 | |
Sidney et al. | Mapping virtual object manipulation to sound variation | |
Nishino et al. | A virtual environment for modeling 3D objects through spatial interaction | |
Chang et al. | Fabricating Behavior Sensor Computing Approach for Coexisting Design Environment. | |
Moo-Young et al. | Virtual materiality: Realistic clay sculpting in vr | |
Knopf et al. | Deformable mesh for virtual shape sculpting | |
Sener et al. | Towards' virtual clay'modelling-challenges and recommendations: a brief summary of the literature |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060919 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061107 |
|
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: 20070109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070110 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120119 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130119 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130119 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140119 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |