|

立体形状で与えられたモデルから,2次元の布のパーツを自動的に計算し,そのパーツを組み上げて「ぬいぐるみモデル」を構築するシステムを開発した (図2).ぬいぐるみ作成は,型紙を元に布を裁断して,縫合し,綿を詰めるという工程からなるが,自分の思い通りのぬいぐるみを作成するためには,それに対応する型紙の生成が必要不可欠である.ところが,通常3次元形状から型紙を作成する工程は,ぬいぐるみ設計の専門知識をもつ者によって行われており,素人には困難である.その工程をコンピュータ支援によって素人にでも手軽にできるようにすることが狙いである.
入力となる3次元モデル(入力モデル)は任意の閉じた多面体(メッシュ)であり,通常のCGモデラーを用いて作成するか,既存のものを利用することを仮定している(図2(a)).この入力モデルに対してユーザは自分のセンスを生かした縫い目を入力していく(図2(b)).システムは入力された縫い目を元に,入力モデルの形状を構築するための型紙パターンを自動で提示する(図2(c)).入力モデルは布で作られているということをまったく考慮していない形状であるため,出力された型紙パターンを実際に縫い合わせてもぬいぐるみ形状は必ず入力モデルとは違う形になる.そのため,この型紙パターンを使って縫い合わせたらどのようなぬいぐるみ形状になるかをシミュレーションする(図2(d)).これによりユーザは,実際に作る前に出来上がりのぬいぐるみ形状を検証することが可能となり,試行錯誤によって満足する縫い目になったら実際にぬいぐるみを作成するということが可能となる.

(a)
(b)
(c)
(d)
図2:3次元モデルから型紙の作成と
出来上がりのぬいぐるみ形状の検証を行なうプロセス
以下に,それぞれの機能に関しての詳細を記述する.
4.1
縫い目入力機能
与えられた立体形状から,ぬいぐるみを構成する大きなパーツ(手とか足とか)に分割するための分割線を決定する.
4.1.1 3Dモデルをモデリングする際のユーザ操作履歴を活用して,形状分割を行う.(布制約付きモデリング)
ぬいぐるみは,布を縫い合わせた袋状の構造に綿が詰められたものであり,布の伸縮力と綿から受ける圧力が平衡するところで形が決まる.そのためぬいぐるみとして成立する形は,このような構造力学的な条件を満たしたものだけとなる.既存のモデルを入力とする場合は,入力モデルは一般にこのような条件を満たしていないため,出来上がるぬいぐるみ形状は必ず入力モデルとは異なる形状となる.この差分が大きいことが,ユーザが意図したぬいぐるみを作る上で問題となっている.
そこで,最初からぬいぐるみとして成立する形状しかモデリングできないモデラーを使ってモデリングを行えば,この問題は解決する.このぬいぐるみの成立条件は,布という素材のもつ制約に起因しているので布の変形の物理シミュレーションによって扱うことができる.モデリングとシミュレーションを並行に走らせることで,出来上がりの形状を見ながらモデリングができるというフレームワークを作った.
今回は図3〜5に示すようなぬいぐるみモデラーの簡単なプロトタイプを作成した.入力インタフェースはTeddy [Igarashi99]に準じており,パソコン初心者でも簡単にモデリングが行える.ユーザからの入力はなるべく簡単なものとするため,特にメニューなどを多用せず,ユーザの入力から,ユーザが次に何をしたいかをシステムが判断してそのモードに入る.
たとえば,図3のように,何もないところにユーザがストロークで円を描くと,システムはモデルを初期生成するモードに入る.ユーザがオブジェクトを横切るようにストロークを描くと,図4のように物体をカットするモードになる.図5のように物体の上で円を描くと,突起生成モードに入り,システムはユーザに「EXTRUSION / CUT」という表示を示し,もう1本外形のストロークを描くよう指示する.
シミュレーション部分に関しては,現在は簡単なバネモデルを用いている.なお,布のシミュレーションについては,Physically Based Modeling という分野で多数の研究が行われている[Baraff98,
Choi02]ので,今後それをぬいぐるみに拡張することに取り組んでいく予定である.

(a)
(b)
(c)
(d)
図3:ぬいぐるみモデラーの例1(初期生成):ユーザがストロークを描く(a)と,モデリングができ(b),対応する型紙が提示される(c). (d)は(b)を斜めから見たところ.

(a)
(b)
(c)
(d)
図4:ぬいぐるみモデラーの例2(カット):ユーザが物体を横切るようにストロークを描く(a)と,物体がカットされ(b),対応する型紙が生成される(c).(d)は(c)を斜めから見たところ.

(a)
(b)
(c) (d)

(e)
(f)
(g) (h)
図5:ぬいぐるみモデラーの例2(突起生成):ベースとなる物体(a)と,そのパターン(b)に対して,ユーザが突起の基盤となる円を描く(c).描き終わると突起生成モードに入る(d). 突起を生成したい向きに角度を変更し(e),ユーザがストロークで突起の外形を描く(f)と,突起が生成され,パターンのほうも対応したパターンにインタラクティブに変化する(h).
参考文献:
[Igarashi99]
Igarashi, T., Matsuoka, S., Tanaka, H."Teddy: A Sketching Interface
for 3D Freeform Design" ACM SIGGRAPH'99, 1999, pp.409-416.
[Baraff98] Baraff, D. and Witkin, A. Large
Steps in Cloth Simulation. Proceedings Computer Graphics, Annual Conference
Series, ACM Press, pp.43-54, 1998.
[Choi02]
Choi, K.-J. and Ko, H.-S. Stable but Responsive Cloth, ACM Transactions
on Graphics (Proceedings SIGGRAPH 2002), Volume 21, Issue 3, pp.81-97,
2002.
4.1.2 一般的な曲面で覆われた立体形状の場合は,その形状の特徴個所を認識することにより形状分割を行なう.
入力モデルに対して自動での特徴線抽出には,SOD (Second order Differences) を用いた.これは,隣接面の法線間の角度(鋭さ)を測るもので,これによって自動で得られた結果の例をいくつか図6に示す.

(a)
(b)
(c)
(d)
図6:自動で縫い目を入力した例:(a) くまの頭;(b)くま全体;(c)リス;(d)タツ
図6を見ると,耳の付け根や首,手足の付け根など,ユーザが縫い目を手動で入力するにはしづらいが,縫い目として切れて欲しいパーツの分かれ目である部分に自動で縫い目が入っていることがわかる.逆に,顔や胴体,おなか部分など,ユーザが自分で自由にデザインしたいような部分には縫い目が入っていないことがわかる.このように,ぬいぐるみを作成するための自動縫い目入力機能としては,自由にデザインしたい部分には入らず,ユーザが入力しづらいが縫い目を必要としている部分に入ることを目的としていることから,SODの利用は適していると言える.
3次元モデルに対して,縫い目を入れ終わったものから2次元パターンへ展開する.3次元メッシュから2次元座標を割り振る研究はいくつか存在する[Sorkine02, Levy02,
Sheffer02]が,いずれも基本的にTexture Map用である.本システムではABF++[Sheffer04]を利用して,角度ベースで3次元モデルから2次元へ展開をし,3次元上の三角形パッチと対応する2次元上の三角形パッチの面積がなるべく同じになるような調整を加えて大きさ調整をしている.
参考文献:
[Sorkine02]
Olga Sorkine and Daniel Cohen-Or and Rony Goldenthal and Dani Lischinski.
Bounded-distortion piecewise mesh parameterization. Proceedings of IEEE
Visualization '02. pp. 355-362, 2002.
[Levy02] Bruno Levy,
Sylvain Petitjean, and Nicolas Ray. Least Squares Conformal Maps : A new
Parametrization Method for Geoscience. In International gOcad Meeting, 2002.
[Sheffer02]
A. Sheffer, E. de Sturler, Smoothing an Overlay Grid to Minimize Linear
Distortion in Texture Mapping, ACM Transactions on Graphics, 21(4),
2002
[Sheffer05]
A. Sheffer, B. Lévy, M. Mogilnitsky, A, Bogomyakov, ABF++: Fast and Robust
Angle Based Flattening, ACM Transactions on Graphics, 24(2), 311-330
2005.
入力モデルは布で作られているということをまったく考慮していない形状であるため,出力された型紙パターンを実際に縫い合わせてもぬいぐるみ形状は必ず入力モデルとは違う形になる.そのため,この型紙パターンを使って縫い合わせたらどのようなぬいぐるみ形状になるかをシミュレーションする.これによりユーザは,実際に作る前に出来上がりのぬいぐるみ形状を検証することが可能となり,試行錯誤によって満足する縫い目になったら実際にぬいぐるみを作成するということが可能となる.
シミュレーションは単純なバネモデルを用いている.まず,それぞれの頂点に対して,物体の内側から外側へ(法線方向へ)膨らます力をかけ,頂点を移動させる(図7(a)).ある程度ふくらんだら,膨らまし方向の力をなくし,バネモデルを用いてそれぞれのエッジの長さを調整する(図7(b)).この2つのステップを3次元形状が収束するまで繰り返す.
今後,布のシミュレーションの一分野である,Physically Based Modeling という分野で多数の研究が行われている[Baraff98,
Choi02]ため,それをぬいぐるみに拡張することに取り組んでいく予定である.

(a)第1ステップ
(b)第2ステップ
図7:縫い合わせシミュレーションの2段階ステップ

(a) (b)

(c)
(d)

(e) (f)

(g)
(h)

(i)
(j)
図8:同じ3次元モデルを入力として,異なる縫い目を入れてシミュレーションした例:(a)(b)入力した3次元モデルに縫い目をデザインしたところ;(c)(d)モデルに対してぬいぐるみ化のシミュレーションを行ったところ;(e)(f)ぬいぐるみ化したモデルを違う角度から見たところ;(g)(h)システムによって生成された型紙;(i)(j)実際に縫って作成したぬいぐるみ.
4.4.実証実験
本システムのユーザビリティの評価をするために日本科学未来館(館長:毛利衛)のご協力を得て,8月25日(金),26日(土)の2日間に日本科学未来館に来館した一般男女38人を対象に実証実験を行った.

図10:実証実験会場の様子(日本科学未来館にて)
操作説明などをした後,一人約30分程度で好きなモデルを作ってもらった.被験者は小学生高学年から大人まで実にさまざまな年齢層の人がいた.


図11:本システムを利用してぬいぐるみをデザインした例
アンケートによると,「面白かった」「楽しかった」という意見がほとんどで,「自分だけのオリジナルのぬいぐるみが作れると思うとわくわくした」「描いた部分がしだいに“ ぷくぷく”ともりあがってくる様子がリアルでよかった」という声もあった.また,マウスで絵を描くことや,突起生成の操作に関しては小学生程度の子供にはとても難しく,「丸を描くだけでも難しかった」「自分の思い通りにならなかった」「基本図形やパーツをテンプレートとして用意してそこから選べると良い」などの意見があった.さらに持ち帰った型紙を利用して実際にぬいぐるみを作成してくれた人の例を図12に紹介する.このように素人でも簡単にオリジナルのぬいぐるみを作成することができる.

図12:実際にぬいぐるみを作成してくれた人の例
|