平成14年度 未踏層ソフトウェア創造事業 成果報告論文集, 2003年5月

実時間衣服シミュレーションライブラリの開発
Real-Time Cloth Simulation Library and Virtual Try-On System尾下 真樹 1）
Masaki Oshita1) 九州工業大学 情報工学部 制御システム工学科（〒820-8502 福岡県飯塚市川津 680-4 E-mail: oshita＠ces.kyutech.ac.jp）
ABSTRACT. A library for real-time cloth simulation has been developed in this project. Cloth simulation
requires a lot of computational time and it is difficult to simulate a realistic cloth in real-time. The method
developed by the author combines particle-based dynamic simulation of a coarse cloth model and dynamic
deformation of a fine cloth surface. Employing the dynamic surface deformation, realistic wrinkles are added on acoarse cloth model in real-time. This paper also presents the virtual try-on system that gives the user anexperience that he or she is trying-on any cloth in virtual environments by combining a motion capture device
with the real-time cloth simulation method. This is a novel and interesting application that the real-time cloth
simulation has just made it real.

図 1 実時間衣服シミュレーションライブラリを使用したアニメーション結果の例

１．背景
近年、３次元コンピュータアニメーション（例えば、Final Fantasy the Movie、Shrek、Monster, Inc などの CG映画）の製作において、衣服の動力学シミュレーションが広く使われるようになりつつある。一般に、コンピュータアニメーションを製作する際に、衣服などの非剛体の複雑な動きをアニメータが手作業で作成するのは非常に困難である。そこで、動力学シミュレーションを用いて衣服の動きを計算するためのさまざまな方法がこれまでに研究開発されてきた。
衣服の動力学シミュレーションのための手法として、現在、粒子モデルによる手法が最も一般的に用いられている。粒子モデルでは、衣服を細かい粒子の集まりとして表現し、粒子間にはたらく張力などをモデル化する。
このモデルにもとづき、粒子全体の運動方程式を解くことによって衣服の動きが計算される。しかし、衣服のしわなどの細部の特徴を表現するためには、大量の粒子（例
えばシャツ一枚につき数千〜数十万個程度）が必要であるとされており、現在の計算機では、比較的高速な計算方法[1]を用いても１フレームの動きを計算するために数秒程度の時間が必要となる。そのため、現状では既存の手法をそのままリアルタイムでのアニメーション適用することは困難である。リアルタイムでシミュレーションを行うためには、粒子の数を極端に少なくするしかな
く、そのままでは衣服と体の衝突処理やしわなどの細かい形状変化を取り扱うことができない。そのため、現在のコンピュータゲームなどでは、衣服シミュレーションはまだほとんど用いられておらず、衣服の形状は固定されているのが一般的である。結果として、動かない衣服の不自然さを隠すため、体に密着した服を着たキャラクタが主に使われている。
従来は、衣服シミュレーションの主な用途は映画やＣＭなどの映像製作であった。そのため、多少時間はかかってもより正確な結果を出せる手法が求められていた。
しかし、近年の家庭用パソコンやゲーム専用機の性能向上により、コンピュータゲームなどのリアルタイムなアプリケーションにおいても、より自然なアニメーションを生成するために衣服シミュレーションを行うことが期待されている。コンピュータゲームなどの用途では、必ずしも正確なシミュレーション結果ではなくとも、「それらしい」動きを高速に計算することが求められる。そ(a)

(b)
スクリーン
利用者はあたかも鏡を見ているかのような感覚で、任意の衣服の試着を楽しむことができる。

利用者

モーションキャプチャ
機器による利用者の動きの取り込み

シミュレーションの結果を利用者に提示

実時間衣服シミュレーション
人体モデル

図 2 実時間衣服シミュレーションの例。(a) 少数の粒子による動力学シミュレーション。(b) 衣服の表面形状を生成。のため、従来のシミュレーション手法を単純に高速化して適用するよりも、リアルタイム用途に特化した何らかの近似モデルを導入することが必要であると考えられる。
しかしながら、このようなアプローチは研究レベルでもまだほとんど提案されていない状況である。

２．目的
このような背景を踏まえ、本プロジェクトでは、実時間衣服シミュレーションライブラリの開発を目標とする。
本ライブラリでは、粒子モデルによる動力学シミュレーションと幾何的な曲面制御手法の組み合わせることになって、衣服の自然なアニメーションを高速に生成する（図1）。本手法では、まず、最小限の粒子のみを用いて動力学シミュレーションを行い衣服のおおまかな動きを計算する（図 2(a)）。その後、計算された粒子の位置をもとに、幾何学的な曲面生成手法を用いることで、最終的な衣服の表面形状を生成する（図 2(b)）。この時、衣服の下の人体形状に応じて、衣服の表面形状を変形する。また、衣服の表面に働く力を分析することによって、衣服のしわなどの細部の形状変化を計算する。このようなアプローチにより、今までのアプローチでは困難であった、実時間処理による自然な衣服シミュレーションを実現する。
また、本プロジェクトでは、実時間衣服シミュレーションライブラリの具体的なアプリケーションとして、仮想試着システムを開発した。仮想試着システムとは、利用者が仮想空間内でさまざまな衣服を試着して楽しむことができるようなシステムである（図 3）。利用者がスクリーンの前に立ってポーズを取ると、その動作をモーションキャプチャシステムによって取り込み、仮想空間内で任意の衣服を着せた状態で動力学シミュレーションを行って、その様子をリアルタイムにスクリーンに映し出すといったイメージである。このようないわば「魔法の鏡」のようなシステムは、アイデアとしては古くから提唱されており、衣服シミュレーションの開発者にとっては大きな目標の一つとなっている。しかし、現在のシミュレーション技術をそのまま適用しただけではリアルタイムにシミュレーションを行うことは困難である。今回開発する衣服シミュレーションライブラリを利用することで、カメラの前でポーズをとる利用者の動きに合わせて、リアルタイムに別の衣服を着た姿をスクリーンに映し出すことが可能となる。開発ライブラリの応用例としてこのような魅力的なシステムを提示することによって、見る人に大きな感銘を与えることが期待できる。

衣服モデル

図 3 仮想試着システムのイメージ図

３．開発内容本プロジェクトでは、開発物として、主に下記の２つのソフトウェアを開発した。
•実時間衣服シミュレーションライブラリ•

仮想試着システムのプロトタイプ

また、これらに加えて、市販のソフトウェアで作成した衣服データや人体データを上記のソフトウェアから読み込むための機能などを開発した。
以下に、今回の開発環境、及び、開発したそれぞれのソフトウェアの内容について、順番に説明する。
（１） 開発環境
今回の開発では、開発言語として C++を使用し、Windows 上で開発を行った。開発のための統合環境として、Microsoft Visual Studio 6 を使用した。
今回の開発ソフトウェアは、基本的には ANSI C++ で書かれており、３Ｄ描画にも汎用性の高い API であるOpenGL を使用している。そのため、基本的には Unix 環境やコンピュータゲーム環境などの Windows 以外の環境でも容易に動作させることが可能である。
今回は、ウィンドウ操作や設定用ダイアログなどのユーザーインターフェースに関連する箇所のみ、Visual
C++ の標準ライブラリである MFC を使用して実装した。
（２） 衣服・人体モデルデータの変換・読み込み機能
衣服シミュレーション計算を行うためには、衣服データや、その衣服を身に着けるキャラクタの人体モデルデータが必要となる。これらのデータは、なるべく市販のアニメーションツールを用いて作成したデータを容易に利用できることが望ましい。また、これらのデータのやりとりにはなるべく標準的なファイルフォーマットを用いることが望ましい。
しかしながら、フォーマットが一般に公開されていて、なおかつ市販のアプリケーションから容易に出力することができるような、一般的な人体モデルデータ・衣服データのためのフォーマットは存在していない状況である。
そこで、市販のアニメーションツールからこれらのデータを適切なファイルフォーマットでエクスポートするためのプラグイン、及び、衣服シミュレーションライブラリ側でエクスポートしたデータを読み込むための機能を開発した。
a） 人体モデルデータの変換・読み込み機能
人体モデルデータの作成環境として、現在広く使われ図 4 人体モデルデータ（3ds max）

図 5 衣服型紙データ（DressingSim）ているアニメーションツールのひとつである discreet 社の 3ds max を使用することとした（図 4）。3ds max では、ユーザがプラグインを開発することで、3ds max 上のデータを任意のファイル形式で出力するような拡張を行うことができるようになっている。プラグインの言語としては、3ds max の独自スクリプトに加えて、C++を使用することができる。
一般にコンピュータアニメーションやコンピュータゲームで使用されるキャラクタの人体モデルには、ワンスキンモデルという表現方法が使われている。これは、人間の体を骨格に相当するボーンと、そのボーンに従って変形するスキン（表面形状）の組み合わせによって扱う方法である。
本プロジェクトでは、なるべく既存のフォーマットを利用するために、ボーンとスキンを別々のファイルとして出力することとした。まず、ボーンに相当する骨格情報は、一般的な骨格、及び、その動作データを表現するためのファイルフォーマットである BVH 形式で出力することとし、2ds max 上で定義されたボーンを BVH 形式で出力するためのプラグインを開発した。また、スキンの幾何形状については、一般的な幾何形状データのファイルフォーマットである Wavefront Obj 形式で出力することとし、そのためのプラグインを開発した。さらに、ボーンとスキンの間の対応関係を記述するためのファイルフォーマットとして、各ボーンからスキンの各頂点への影響力を CSV 形式で表した独自形式で出力するプラグインを開発した。
実時間衣服シミュレーションライブラリ側では、上記の３種類のファイルを同時に読み込んで、人体モデルとしてプログラム内で利用するためのクラスライブラリを開発した。
なお、仮想試着システムで実際に使用するための人体モデルデータとしては、オーダーメイドで購入した 3ds
max 用の人体データを利用した。

ャラクタに着せ付けることができる。
衣服モデルデータの幾何形状については、人体モデルの幾何形状と同様、Wavefront Obj 形式で出力することとし、実時間衣服シミュレーションライブラリ側ではそのファイルを読み込んで使用した。
ただし、DressingSim for max 上で生成された衣服モデ
ルをそのままエクスポートすると、衣服がもとの型紙に応じて複数のパーツに分かれてしまい、一枚の衣服としてシミュレーションできないという問題がある。そこで、衣服データの読み込み時に、複数のパーツで共有している頂点を結合し、一枚の連続した衣服として読み込むような機能を追加した。
また、一般に衣服シミュレーションを行う場合は、衣服の縦糸・横糸の影響をうまくモデル化するために、衣服を四角面の集合として表現することが望ましいとされている。しかし、DressingSim for max から出力した衣服モデルは三角面の集合として表現されている。これをそのまま使用して今回の衣服シミュレーション手法を適用すると、不自然な斜め方向のしわが生成されたりするといった問題が生じる。そこで、三角面の集合として表現された衣服データを読み込んだ後で、その辺の方向や三角面同士の組み合わせを判定して、適切な２つの三角面を組み合わせることで四角面に変換する機能を追加した。
なお、仮想試着システムで実際に使用するための衣服データとしては、DressingSim にサンプルとして付属していた型紙データ、及び、デジタルファッション社にオーダーメイドで作成してもらった型紙データを使用した。

b） 衣服モデルデータの変換・読み込み機能
衣服モデルデータの作成には、デジタルファッション社から販売されている衣服デザイン・シミュレーションソフトである DressingSim を使用した（図 5）。本ソフトは、衣服の型紙データから衣服のモデルを生成する機能を持っている。そのため、実際の衣服の製作に使用された型紙データが入手できれば、その衣服を仮想空間内で実現することが可能である。また、デジタルファッション社は、DressingSim for max という 3ds max 用のプラグインを販売しており、このプラグインを利用することで、型紙データから生成された衣服データを 3ds max 上でキ（３） 実時間衣服シミュレーションライブラリa） システム構成
実時間衣服シミュレーションライブラリ、及び、そのライブラリを利用するアプリケーションの構成を図 6 に示す。本ライブラリは、内部データとして衣服モデルとシーン情報（キャラクタの幾何形状データや姿勢情報）を含む。本ライブラリを利用するアプリケーションは、各時刻ごとにシーンの変化（キャラクタの姿勢変化）をライブラリに入力する。衣服シミュレーションモジュー
ルは、入力されたシーン変化に応じて衣服の動きを計算する。シーン情報は衣服の衝突判定・接触処理にのみ使用され、基本的にライブラリ側からはその状態を変化させることはない。本ライブラリでは、キャラクタの動きの処理はアプリケーション側に完全に任させている。このように、本ライブラリ自体は衣服シミュレーションにのみ専念するため、コンピュータゲームなどの既存のアアプリケーション

実時間衣服シミュレーションライブラリ

キャラクタの幾何形状

アプリケーション

キャラクタの姿勢情報

モーションキャプチャデバイス

実時間衣服･シミュレーション･
ライブラリ

データ取得処理

衣服モデル

シミュレーション モジュール

レンダリング モジュール

図 6 実時間衣服シミュレーションライブラリのシステム構成

図 7 仮想試着システムのシステム構成

プリケーションから簡単に利用することが可能であると考えられる。
また、本ライブラリは一般的な３Ｄ描画 API である
OpenGL を用いて衣服を画面にレンダリングする機能を持つ。必要であれば、本ライブラリのレンダリング機能は使用せず、アプリケーション側で衣服モデルのデータを取得して自力で描画しても構わない。
先述のように、本ライブラリは、インターフェースなどの Windows や MFC に依存する部分とは完全に独立しており、ANSI C++ で実装されている。従って、衣服シミュレーション機能だけであれば、Unix などの Windows以外の環境でもすぐに利用可能である。

衣服シミュレーションの結果はアプリケーションのウィンドウに描画される、その画面をプロジェクタを用いて投影することで利用者に提示している。

b） 実時間衣服シミュレーション
今回の開発のメインとなるのが、この実時間衣服シミュレーション機能である。本ライブラリの基本的なアイデアは、2 章で述べたように、粗いモデル（少数の粒子）を使用した動力学シミュレーションと、最終的な詳細モデルの表面形状を生成するための幾何学的な形状処理を組み合わせることにある。
幾何学的な形状処理を組み合わせることによって自然な衣服のアニメーションを高速に実現するというアプ
ローチは、筆者が本プロジェクトの前に先行研究として行ったもの[6]も含めて、これまでにいくつかの手法[3][4][2]が提案されている。しかし、衣服と体との接触をうまく扱うためには接触部分にはどうしてもある程度詳細な粒子を用いることが必要になるため、これら既存の手法では衣服と体の接触部分の衣服の形状変化をうまく扱うことができなかった。本プロジェクトで開発した実時間衣服シミュレーションライブラリの特徴は、このよ
うな衣服と体の接触部分をうまく扱うことができるところにある。
実時間衣服シミュレーションの具体的なアルゴリズ
ムについては、現在特許申請中であるため、本論文では詳しい説明は省略する。本プロジェクトで開発した技術は、特許手続きが済み次第、学術論文や今後の IPA の報告会などを通じて公開していく予定である。
（４）b） モーションキャプチャ機器の制御利用者の動きをリアルタイムに取り込むためにモーションキャプチャ機器を使用する。今回のプロトタイプ
では、モーションキャプチャ機器として、磁気式システムである Ascension Tech.社の MotionStar を使用した（図8）。
モーションキャプチャ機器には、磁気式の他にも光学式、機械式などの方式がある。光学式のシステムでは、利用者の体には小さなマーカをつけるだけで良いため、利用者が非常に動きやすいという利点がある。しかし、その一方で、リアルタイムでの制御が難しい、広いスペースを必要とする、システムが高価であるといった問題点がある。機械式は、これらの問題点はない代わりに、全身に関節角度を計測するための機械を身につける必要があるため、非常に動きづらい。そこで、光学式のような問題点もなく、機械式よりはやや動きやすいと考えられる磁気式のシステムを利用することとした。
Ascension Tech.社の MotionStar は、Eather インターフ
ェースを備えており、パソコンと LAN 経由で通信することができる。通信プロトコルは、UDP と TCP の両方に対応しており、制御コマンドや送られてくるセンサのデータフォーマットは公開されている。そこで、これらの情報を参考にして、MotionStar を制御し、送られてくるセンサのデータを取得・記録するためのクラスライブラリを開発した。

仮想試着システムa） システム構成
仮想試着システムの構成を図 7 に示す。モーションキ
ャプチャ機器から取得した利用者の動きのデータを、人体モデルの動きのデータとして衣服シミュレーションライブラリに入力するという非常にシンプルな構成になる。

図 8 モーションキャプチャ機器（Motion Star）

Visual C++ の標準ライブラリである MFC を利用して、アプリケーションフレームワークを開発した。また、ユーザーインターフェースとしては、図 9 右のようなダイアログを使用して、衣服シミュレーションのオプションや、計算過程の可視化方法などを設定することができるようになっている。これらの設定機能は、主にデバッグのために利用した。
また、利用者の動きに合わせてシーン内の人体モデルを動作させた場合、スクリーンには左右逆に表示されてしまう。そこで、鏡と同じように、利用者が右手を上げた時には、スクリーン内の人体モデルも右側の手（左手）を上げて見えるように、左右を反転して画面をレンダリングするような機能を追加した。
図 9 ユーザインターフェース（メイン画面(左)、設定画面(右)）MotionStar からは、利用者の全身に付けたセンサの絶対座標・向きのデータが逐次送られてくる。しかしながら、衣服シミュレーションライブラリでは、人体モデルの姿勢を各関節の回転角度で表現している（これはコンピュータアニメーションやコンピュータゲームで一般に用いられている表現方法である）。そこで、MotionStarから取得したセンサ位置・向きから、利用者の各関節の回転を計算する処理を実装した。
また、利用者の体とプログラムで使用する人体モデルとの間で、身長や体の各部のサイズの差が大きいと、利用者の動きに合わせて人体モデルを動かした時に姿勢が不自然になってしまう。そこで、最初に得られたセンサ
ーのデータから、利用者の体の各部位のサイズや各部位のどこにセンサがついているかを推定し、各部位の長さに応じて人体モデルの長さを修正（スケーリング）する機能を追加した。この、センサーデータから部位のサイズ・センサがついている位置を求めるアルゴリズムについては、すでに既存の手法が論文[5]として発表されているため、その手法を実装して使用した。
c） モーションデータの再生・記録
仮想試着システムを利用するためには、モーションキャプチャシステムが必須となり、そのままでは実行可能な環境が非常に限られてしまう。そこで、MotionStar がない環境でも実時間衣服シミュレーションの結果を確認することができるようにするため、モーションキャプチ
ャから送られてくるデータの代わりに、ファイルから読み込んだモーションデータをもとにキャラクタを動作させる機能を追加した。
動作データのファイル形式として、一般的に使用されている BVH 形式に対応した。BVH 形式のモーションデータは、多くのアニメーションツールから出力することができる。また、BVH 形式のモーションデータを集めたモーションデータ集なども市販されている。
上記のモーションデータの再生機能に加えて、モーションデータをリアルタイムに記録する機能も開発した。
これは、MotionStar を利用して仮想試着システムを使用している時のモーションデータを記録しておき、同じくBVH 形式で出力する機能である。本機能により、仮想試着システムを使用した時の利用者の動きを後から再現して、衣服シミュレーションを行うことが可能になる。
d） ユーザーインターフェース
仮想試着システムのアプリケーション実行中の画面を図 9 に示す。仮想試着システムのプロトタイプでは、e） テスト結果開発した仮想試着システムのプロトタイプを実際にテストしている時の様子を図 10 に示す。利用者の動きに応じて、正面スクリーンに投影さめた画面内のキャラクタが動作し、その衣服の動きがリアルタイムにシミュレーションされている。本プロトタイプでは、Pnetium 4
2.8GHz のパソコン上で、ほぼ秒間 13 フレームでアニメーションが生成され、実時間処理に十分な速度が得られた。モーションキャプチャの遅延のため、利用者の動きにコンマ数秒程遅れて画面内のキャラクタが追従するものの、ほぼ利用者の思い通りに動かすことができた。部
屋の狭さやプロジェクタの設置位置の問題などもあり、2章で述べたような「魔法の鏡」と呼ばれるような理想的なイメージにはやや届かないものの、仮想空間で衣服を身に着けて動き回っているような感覚を得ることができた。本結果から、今回開発した実時間衣服シミュレーションライブラリ、及び、仮想試着システムは十分期待通りの成果を上げることができたと考える。

４．今後の課題・計画
今回の開発プロジェクトでは、実時間衣服シミュレーションライブラリ、及び、仮想試着システムのプロトタイプを開発した。それぞれまだ改良の余地はあるものの、基本的には予定していた機能を実現することができたと考えている。
実時間衣服シミュレーションライブラリでは、今までのコンピュータゲームなどでは実現することができなかった、自然な衣服のシミュレーションを可能にした。計算速度の高速化やより自然なしわの生成などの課題はあるものの、本ライブラリについては、コンピュータゲームなどの実際のアプリケーションへの応用が大いに期待される。
また、仮想試着システムについても、このようなシステムを実現したのはおそらく世界初であり、非常に面白い成果が得られたと考えている。本システムでは、モーションキャプチャ機器などの設備が必要となるため、なかなか一般に利用するのは難しいかもしれないが、将来的には、このシステムを利用することで洋服店でカタロ

図 10 仮想試着システムのテスト中の様子

グ上の衣服を仮想的に試着できるようにする、といったアパレル業界での応用が期待される。
実時間衣服シミュレーションライブラリ、及び、仮想試着システムの両方について、商用化を目指していきたいと考えている。しかしながら、これらのソフトウェアを商品化する場合、コンピュータゲーム業界やアパレル業界などの分野になると考えられるが、これらの業界はかなり特殊な業界であるため、例えばベンチャー企業などを興しても、製品開発・販売などをゼロから行うのはかなり難しいのではないかと予想される。そこで、理想としては、すでに当該業界で活躍している既存の企業に協力する形で、こちらは技術提供を行い、商品化や販売は企業に行ってもらうという方向が実現しやすいのではないかと考えている。
今後は、このような商品化に興味を持ってくれるような企業を探すという目的や、また未踏ソフトウェア創造事業で支援していただいた開発成果を広く知ってもらうという目的から、今回の開発成果を一般に公開していきたいと考えている。具体的には、開発したソフトウェアや、仮想試着システムを利用している様子のムービーなどをウェブサイト上で公開することを予定している。また、もしデモ展示などの機会などがあれば、モーションキャプチャ機器を再度レンタルするなどして、仮想試着システムを多くの人に試してもらうことを検討したい。
また、今回開発した実時間衣服シミュレーション手法に関しても、商用化などの妨げにならないような範囲や順序で、詳しい技術を公開していきたいと考えている。
現在、今回開発した技術に関して、九州大学の産学連携機構（TLO）を通じて特許を申請中である。また、近日中にコンピュータグラフィックス関連の国際会議で論文発表を予定している。今回の開発内容は、衣服シミュレーションの研究分野から見ても非常に興味深い技術であるため、是非、論文として発表し、多くの研究者や利用者からの意見を参考にさらなる改良を加えていきたいと考えている。

参考文献[1][2]

[3]

[4]

[5]

[6]

David Baraff, and Andrew Witkin, "Large Steps in
Cloth Simulation", In Proc. of SIGGRAPH 98, pp.
43-54, 1998.
Frederic Cordier, and Nadia Magnenat-Thalmann,"Real-time Animation of Dressed Virtual Humans", In
Proceedings of EUROGRAPHICS 2002, Computer
Graphics Forum, 21(3), 2002.
Sunil Hadap, Endre Bangerter, Pascal Volino, and Nadia
Magnenat-Thalmann, "Animating Wrinkles on Clothes",
In Proceeding of IEEE Visualization '99, pp. 175-182,
1999.
Young-Min Kang, and Hwan-Gue Cho, "Bilayered
Approximate Integration for Rapid and Plausible
Animation of Virtual Cloth with Realistic Wrinkles", In
Proceedings of Computer Animation 2002, pp. 203-214,
2002.
James F. O'Brien, Robby E. Bodenheimer, Jr, Gabriel J.
Brostow, and Jessica K. Hodgins, "Automatic Joint
Parameter Estimation from Magnetic Motion CaptureData", In Proc. of Graphics Interface 2000, pp 53-60,
2000.
Masaki Oshita, and Akifumi Makinouchi, "Real-Time
Cloth Simulation with Sparse Particles and Curved
Faces", In Proc. of Computer Animation 2001, pp220-227, 2001.