宮崎 慎也 安田 孝美 横井 茂樹 鳥脇 純一郎
グラフィックスハードウェアの進歩に伴い,グラフィックス環境を用いた人間に親しみやすいヒューマンインタフェイスの構築が可能になってきている.CGによるビジュアルな環境を利用すれば,コンピュータ内に定義された仮想空間中の物体を実物と同じように操作することが可能になる.本論文では,仮想空間中に表現された紙に対し「折り曲げ」「折り返し」「折り込み」の対話操作が可能な折り紙のシミュレーションシステムを開発したので報告する.オペレータはスクリーンモニターに表示された3次元仮想空間内の紙をマウスデバイスにより紙面の頂点を摘まんで移動する感覚で操作できるので,実物を折るような感覚で仮想の紙を自由に折ることができる.この操作は視点移動により紙をあらゆる方向から観測しながら行なうことができ,この操作を繰り返すことにより一枚の紙を複雑な形状に容易に加工できる.また,頂点や辺同士を正確に重ねて折る場合にはそれらの微妙なずれは自動的に補正されるので,実際に紙を折るよりも正確かつ容易に仮想空間の紙を折ることができる.本文ではシステムの実現において特に重要な,紙面の接続や重なり関係等の折り紙の状態を2分木リストにより記述する方法,折り操作に従ってリストを高速に変更する方法,マウス入力により3次元空間内にある紙の頂点の位置を移動するための工夫などについても述べる.
Shin-ya Miyazaki, Takami Yasuda, Shigeki Yokoi, and Jun-ichiro Toriwaki With advance of graphics hardwares, possibility of natural man-machine interface using graphic environments is drawing attention. Visual environments using computer graphics are very effective for virtual object manipulation. This paper describes a visual simulation system of ORIGAMI (paper folding art) which realizes interactive folding operations of paper such as 'Bending,' 'Folding up' and 'Tucking in' in real-time. In the system, a piece of virtual paper is defined in a three dimensional (3D) virtual space and displayed on a graphic screen. An operator can fold it freely and iteratively into complex figure, observing it from an arbitrary direction and manipulating it as if he is folding a real paper, by picking and moving a vertex of the paper using a mouse device. If the position of the picked vertex is different from operator's intentional position delicately, it is corrected automatically in the case of matching the picked vertex to another vertex or matching two edges to each other. This function has the operator fold a virtual paper more rapidly and accurately than folding a real paper. This paper also presents how to represent the state of folded paper such as connectivity and overlap relation between paper faces and how to realize interaction using a mouse device in the system.INTERACTIVE MANIPULATION OF ORIGAMI IN 3D VIRTUAL SPACE
1. まえがき
グラフィックスワークステーションの性能が急速に進歩し画像の生成速度が向上するに伴い,グラフィックス環境を利用したヒューマンマシンコミュニケーションの新たな可能性が注目されるようになった.リアルタイムで高速に生成されるコンピュータグラフィックスを利用すれば,オペレータはコンピュータ内に定義された仮想的な3次元世界の物体を実物を操作するような感覚で操作することが可能となり,設計,娯楽,教育,訓練などをはじめとし様々な分野への応用が期待されている.仮想世界の物体に対して実物と同じ様な操作を行なう研究は数多く報告されているが,それらのほとんどは物体とのインタラクションの際に空間内の物体位置を正確に指定したり,力覚をフィードバックしたりするための入力デバイスの開発に重点を置いており,ソフトウェアによる仮想物体の記述や操作などに関しては剛体の移動や切削による塑性素材の加工など単純なものがほとんどである[1] - [8].このような仮想空間操作を様々な分野へ適用していくために,今後はより複雑な性質を持つ仮想物体をコンピュータ内に定義し,仮想物体との様々なインタラクションを実現していくことが必要と考えられる.
本論文では,紙という比較的単純ではあるが折れ曲がるという性質をもつ非剛体の素材を対象とし,3次元の仮想空間に存在する1枚の紙を自由に折るプロセスをリアルタイム操作で実行できるシミュレーションシステムを開発した.オペレータはリアルタイムで変化していく仮想空間の状態をスクリーンを通してモニターしながら,マウスデバイスで制御される空間内の操作点を使って紙の頂点を摘まんで自由に移動できるので,実物の紙を折るような感覚で仮想の紙を折ることができる.基本的な折り方として「折り曲げ」「折り返し」「折り込み」の3種類を用意し,これを組み合わせることにより紙を複雑な形状に容易に加工できる.視点はボタン操作により常時変更が可能であり,折り紙をあらゆる方向から観察しながら操作が行なえる.更に,頂点や辺同士を正確に重ねて折る場合にはそれらの微妙なずれは自動的に補正されるので,実際に紙を折るよりも正確かつ容易に仮想空間の紙を折ることができる.また,本システムは仮想的な空間に対する自由な操作を実現しているため,データグローブやヘッドマウントディスプレイ (H.M.D.) などのデバイスを用いることにより人工現実感システムへの応用も可能である.
2. 折り紙シミュレータ
本システムでは,紙の1つの頂点を移動することにより1回の折り操作を指定する.本章ではこの基本操作により実現される折り方の種類とその入力方法,及びそれらを実現するために必要となるシステムの処理について述べる.
(2) 折り込み (Tucking in)
もう1つの折り方として,ある面を境に面の回転方向が異なる「折り込み」が用意されている.「折り込み」は「折り返し」と同様,平面内の多重折りであるが,紙面同士の関係から「折り込み」が不可能な場合があり,更に多重に重なった「折り込み」では折り方の候補が複数存在する場合がある.本システムでは折り紙を重なり順序を持つ面の集合として表現しており,頂点の移動により折り操作を行なうので,複数候補の「折り込み」からの唯一の選択や,「折り返し」と「折り込み」の選択は頂点の移動先が同一となるためこれらの指定が更に必要となる.実際には折られる全ての面の回転部分の形状が同一で対称的に折り込む場合が多いので,「折り込み」操作をこのような場合に限定した.また,「折り返し」と「折り込み」の選択についてはボタンの On, Off の状態により指定することとした.「折り込み」が可能であるかどうかの判定については,かなり複雑で様々な場合を考慮する必要があり計算処理が膨大となるので行なわないこととした.オペレータは自分の頭の中で折りが可能かどうかをイメージできるので,これは実際の操作においてはそれほど重要な問題とはならなかった.
これらの基本的な折り方を組み合わせることにより複雑な多重折りも実現できる(図2).
(a) 折り返し | (b) 折り曲げ |
(c) 折り込み |
図1 3種類の基本折り
図2 基本折りの組み合わせによる複雑な折り方
図3 面の折れ線と折り曲げ角度
(1) 頂点の選択
マウスの中央ボタンを押した瞬間に Pickerの状態が'PICK'に変わり,紙面の全ての頂点のうちから選択された唯一の頂点 (選択頂点) がPickerによりPickされる.この時Pickerの位置は選択頂点の位置 (選択頂点の移動元) に変更される.Pickerを制御して頂点の空間的な位置を正確に指定することは難しいため,2次元のスクリーン投影像上でPickerから最も近い頂点を選択頂点とすることにする.候補が複数存在する場合は頂点の属する面の順序が視点から最も近いものを選択するようにする.
(2) 頂点の移動
ボタンを押している間 (Pickerの状態'PICK'時) Pickerの移動に伴い自動的かつ逐次的に,選択頂点の移動先座標の獲得,それに従う折れ線と折り曲げ角度の決定,折り結果のスクリーンへの表示が行なわれる.この反復は非常に短い時間間隔で行なわれるので,オペレータはスムーズに変形する折り紙を観測しながら,マウスを操作し頂点を直接移動することにより折れ線と折り曲げ角度をリアルタイムで自由に変化させることができる.
(3) 頂点の解放
ボタンを離した瞬間にPickerの状態が'RELEASE'に変わり,選択頂点の移動先が固定され,この時の折り結果が折り手順のヒストリーに登録される.以後Pickerは頂点と離れて単独で移動する.
図4 マウスデバイスによる基本操作
(1) 頂点同士を重ね合わせて折る
選択頂点とある程度近い頂点が存在すれば選択頂点の位置をその頂点の位置に変更する.
(2) 辺同士を重ね合わせて折る
選択頂点を含む辺とある程度近い辺が存在すれば,それら2辺が同一直線上で重なるように頂点の位置を変更する.2辺の距離には一方の辺と,他方の辺の両端点との距離を利用している.
(3) 折れ線がある2つの頂点を通る
折れ線からある程度近い頂点が2点存在すれば,折れ線がその2点を通るように頂点の位置を変更する.
(4) 基準角度で折り曲げる
折り曲げ角度が90°又は180°(基準角度) にある程度近いならば,折り曲げ角度がその基準角度となるように頂点の位置を変更する.基準角度に180°を加えることにより,「折り返し」,「折り込み」の平面折りを容易にしている.また,折り曲げ角度を180°以下に制限し視点側にしか折り曲げられないようにインタラクションを単純化することにより,更に折り操作を容易にしている.
これらの補正機能が働くとオペレータは,例えば頂点や辺同士が互いに引き合うように,頂点に目に見えない引力が働いているかのように感じられる.この結果,実際に紙を折るよりも正確かつ迅速に仮想の紙を折ることが可能になる.また,これらの補正を解除したい場合にはマウスを大きく移動すればよい.
3. 折り紙のためのデータ構造
本章では折り操作により変化していく折り紙の状態を正確に記述するためのデータ構造について述べる.折り紙は折れ線により分割された複数の面の集合であり,基本的にサーフェイスモデルで表現している.データ全体は面層,辺層,頂点層と呼ばれる3つのデータ層により構成されている.
(1) 二分木リスト構造
折り紙は1回の折り操作によりいくつかの面が2分割されるので,面情報の記憶には基本的に二分木のリスト構造が適している.1つの面の情報を持つ面セルが木の節に位置し,面の2分割の際には対応するセルに子のセルが2つ生成され,それらが分割後の2つの面を表す.葉のセルの集合が現在の折り紙の状態を,木構造全体が折り操作による面分割の過程の全情報を表している.
(2) 面グループと面スタック
過去の「折り曲げ」により全ての面が同一平面上にない場合,同一平面上の面をグループ化することにより全ての面はいくつかのグループ (面グループ) に分けられる.各グループには同一平面上にある複数の面に重なり順序 (面番号) を与える面スタックがあり,全ての面セルはいずれかのグループの面スタックに属する.図5(d)で3つの面のうち面F1は単独で1つのグループを形成する.面セルルックアップテーブルはグループ番号,面番号により対応する面セルを面セルツリーから高速に検索する.
図5 1枚の折り紙を表現するためのデータ構造
図6 面の分割に伴うセルの更新
4. リストの更新
前章で述べたリスト構造のデータ群は折り操作の際に更新される.本章ではデータリストの更新手続きについて述べる.
@選択頂点を含む面は明らかに移動面である(図7の面F1).
Aある面が移動面ならその面の移動部分において辺を共有する面は移動面である(図7の面F2).
B「折り返し」「折り曲げ」の場合,ある面が移動面ならその面と,面の回転していく側で移動部分が重なる面は移動面である.
C「折り込み」の場合,ある2つの面が移動面ならその2面の間にあり,それらの面の移動部分と重なりがある面は移動面である.
D @〜Cの手順により移動面とならなかった面は不動面である(図7の面F3).
図7 折り操作における3種類の面
@ F0 の分割に伴い面セル F1, F2 および辺セル E4 が新しく生成され,E4 を含む面が F1, F2 に決定される.ただし E4 は新しい辺セルツリーの根である.
A E1 の分割に伴い辺セル E11, E12 および頂点セル V4 が新しく生成され,E11, E12 の内容と E4 の1つの端点が決定する.また E11, E4 が F1 の構成辺に E4, E12 が F2 の構成辺に加えられる.V4 の座標もこの時に計算され頂点セルルックアップテーブルに登録される.
B E2 を含む面の1つが F0 から F2 に変更され,E2 が F2 の構成辺に追加される.また E4 の残りの端点が V3 に決定される.
C E3 を含む面の1つが F0 から F1 に変更され,E3 が F1 の構成辺に追加される.
更新手続きは辺の数が4以上の面についても同じ要領である.また多重折りの際には全ての分割面に対して更新手続きが行なわれる.
(a) KABUTO | (b) Cicada |
(c) Plane | (d) Crane |
(e) Yomiuri Press Jun 24, 1994 |
図8 作成例
5. むすび
本文では,折り紙に対する仮想物体操作を実現し,グラフィックス環境において実物感覚で操作が行なえるマンマシンインタフェイスの可能性を示した.折り紙を二分木リストの構造により簡潔に記述した結果,紙の状態変化に対するデータの更新をリアルタイムで高速に行うことができた.またマウスによる座標入力の曖昧な面を自動的に補正することにより,オペレータが意図する操作を確実に行うことができた.
本システムでは物体の操作点が1点であるため折り方にかなりの制約を与えることになった.将来的には操作点を複数にすることにより折り方のバリエーションを増やしたり,紙自体を弾性などの物理的性質を与えて記述することにより更に実物に近いものにすることなども考えている.
謝辞
日頃熱心に御指導、御討論頂く研究室の皆様に感謝します。
参考文献