パターンに基づく人体モデルの皮膚変形手法
鈴木健司†

尾下真樹‡

†九州工業大学大学院 情報工学研究科 情報科学専攻‡九州工業大学 情報工学部 システム創成情報工学科〒820-8502 福岡県飯塚市川津 680-4
E-mail:suzuki@cg.ces.kyutech.ac.jp，oshita@ces.kyutech.ac.jp

本論文では，人体モデルの皮膚の自然な変形を，容易かつリアルタイムに実現する手法を提案する．我々は，人間の皮膚のしわや膨らみ，骨による凹凸の変化が，近くの関節の動きに応じて，比較的決まったパターンで起こることに注目する．本手法では，あらかじめ，人体モデルのどの範囲に，どのパターンの変形が発生するか，利用者が設定する．設定にもとづき，関節角度の変化に応じてパターンを動的に変化させながら，バンプマッピングやディスプレイスメントマッピングを適用することで，皮膚変形を実現する．

Pattern-based skin deformation of human model
Kenji SUZUKI and Masaki OSHITA
Department of Systems Innovation and Informatics, Kyushu Institute of Technology
680-4 Kawazu, Iizuka-Shi, Fukuoka, 820-8502, JapanE-mail:suzuki@cg.ces.kyutech.ac.jp，oshita@ces.kyutech.ac.jp

In this paper, we propose an easy-to-use and real-time method to simulate realistic
deformation of human skin. We utilize the fact that various skin deformations such as varying
wrinkles, skin expansions caused by bending and skin deformations caused by bone shapes
can be categorized into some deformation patterns. A deformation pattern is represented by ahigh map which is dynamically scaled according to the movement of a nearby joint. First, auser of our system specifies the regions on a body model where each deformation pattern isapplied to. Then, during animation, the skin deformation of the body model is realized bychanging height patterns based on the joint angles and by applying bump mapping anddisplacement mapping to the body model.

1. はじめに
近年，コンピュータゲームや映画などで人体モデルを使ったキャラクタアニメーション技術が用いられている．人体モデルを表現するための方法として，ワンスキンモデルが広く使われている．ワンスキンモデルとは，人体の表面の形状を表すポリゴンモデルの内部に，人体の姿勢を表すためのボーンを配置し，ボーンの関節の回転に応じて，ポリゴンモデルの形状を変形する技術である．ワンスキンモデルを利用することで，比較的簡単に人体モデルを表現することが可能だが，ポリゴンモデルの形状を幾何学的に変形しているだけであるため，例えば，屈んだときの腹のしわや，肘を曲げたときの腕の膨らみなど，人体の皮膚特有の変形を再現することはできない．ポリゴンモデルの細かい凹凸を表現する方法として，表面の凹凸の高さの情報をグレースケール画像で表したハイトマップを用いて，陰影による擬似的な凹凸を表現するバンプマッピングや，細分化したポリゴンモデルの頂点位置を直接変化させて凹凸を表現するディスプレイスメントマッピングがある．これらの技術を適用することで，しわなどの皮膚の凹凸を表現することはできるが，静的な凹凸しか表現できないため，姿勢の変化にともなう皮膚変形を表現することはできない．一方，人体モデルのボーンに対して，現実の人間と同様の筋肉の情報を付与し，ボーンの動きに(a) 腹のしわ(b) 肋骨(c) 腕の膨らみ
図 1：パターンを用いた皮膚変形
応じて筋肉を伸縮させ，筋肉の変形に応じた皮
膚の形状の変形を物理計算に従って計算する筋肉モデルがある．筋肉モデルを用いることで自然な皮膚の変形を表現できると言われているが，本技術を使用するためには，利用者は，人体の骨格（ボーン）のどの位置にどのように筋肉がついているかといった解剖学的な専門的知識が必要になる．また，筋肉の情報を設定する作業には非常に多くの手間がかかる．さらに，筋肉の変形にもとづく皮膚形状の計算にはある程度の時間がかかるため，コンピュータゲームなどのリアルタイムな処理が必要な用途に用いることは困難である．そのため，筋肉モデルと同様の自然な人体モデルを，利用者の手間をかけずに，かつ，高速に実現できるような手法が求められている．
本論文では，人体の動作にともなう皮膚の変形が，関節の動きに応じて，いくつかの決まったパターンに応じて生じることに注目し，人体モデルの皮膚変形をリアルタイムかつ簡単に生成する手法を提案する．例えば，人間が「屈む」「肘を曲げる」動作をするとき，屈んだときには必ず腹にしわができ，肘を曲げると筋肉によって腕に膨らみができる．この『ある関節の影響を受けて起こる決まった凹凸』をパターンとしてテクスチャ（ハイトマップ）で表現し，皮膚変形を生成する（図 1）．利用者は，あらかじめ用意されたこれらのパターンテクスチ
ャ（ハイトマップ）を，テクスチャ画像中の対応する変形部位に配置し，その変形がどの関節の動きにともなって生じるかを設定する．人体モデルのアニメーションを生成する際には，人体の各関節の関節角度に応じて，各パターンテクスチャのスケーリングを行うことで，ハイトマップを動的に生成する．動的に生成したハイトマップに従って，バンプマッピングやディスプレイスメントマッピングを適用することで，人体モデルの皮膚変形を実現する．これにより，関節の動きに応じて生じる，人間らしい皮膚の変形を表現可能となる．
本研究では，代表的な皮膚変形のパターンとして，しわ，膨らみ，骨による凹凸の 3 種類を考え，それぞれ異なる方法で変形を適用する．
しわについては，静止姿勢では凹凸が小さく，姿勢の変化に応じて凹凸が大きくなるため，しわのパターンを凹凸を持ったハイトマップにより表現し，関節角度の変化に応じてハイトマップの高さをスケーリングすることで，変形を表現する．膨らみについては，姿勢の変化に応じて隆起のみが起こるため，膨らみのパターンを凸方向の高さを表すハイトマップとして表現し，関節角度の変化に応じてスケーリングする．また，骨による凹凸については，しわや膨らみとは異なり，姿勢によって凹凸の形状は変化せず，凹凸が表面に現れる度合いのみが変化するため，骨のパターンを凸方向の高さを表すハイトマップとして表現し，姿勢の変化に応じて，ハイトマップ中の骨を表す範囲の高さを一定の大きさで増減させる．これらの変形のうち，しわと骨による凹凸の変形については，皮膚の輪郭に与える影響が小さいことから，高速化のため，ハイトマップにもとづいて凹凸を擬似的に表現するバンプマッピングを用いて実現する．一方，膨らみについては，皮膚の輪郭が変化し，擬似的な凹凸では膨らみ具合を表現することができないため，ポリゴンを細分化して実際に形状を変形するディスプレイスメントマッピングにより実現する．
本手法では，あらかじめ人体の主要な変形部位毎に用意されたパターンテクスチャを，人体モデルのどの範囲に適用するのか，利用者が簡単なインターフェースによって指定することができる．そのため，利用者はどの部位にどのような変形が起こるかという知識だけがあれば良く，筋肉モデルを設定する際に必要となるような解剖学的知識は必要なく，また，比較的利用者が設定
ポリゴンモデル

姿勢情報
パターンテクスチャ

変形情報

ハイトマップを描画
しわ

スケーリング（凹凸）膨らみスケーリング（凸のみ）

骨の凹凸

高さ増減

形状変形

ハイトマップ皮膚変形を生成バンプマッピング

ディスプレイスメントマッピング

レンダリング

図 2：システム概要
簡単に変形を設定することができる．ただし，凹凸の高さを関節角度に応じて単純なモデルで変化させているだけであるため，必ずしも自然な皮膚変形とならない場合もあり，筋肉モデルと比較すると不自然な変形となってしまうこともある．
2. 関連研究
人体モデルの皮膚変形手法は，大きくモデルベースの手法とデータベースの手法の 2 通りに分けられ，本手法は後者に当たる．
モデルベースの手法は，何らかの変形モデルに従って，形状変形を計算する手法である．
Paul ら[1]は，前計算した変形モデルを入力として，ワンスキンモデルを線形補間することで，自然な変形を実現する手法を提案した．また，
Lawrence ら[2]は，しわのパターンデータベースから，頂点の圧縮率に応じて類似姿勢を取り出し，しわのパターンをブレンドすることで衣服のしわを生成する手法を提案した．これらの方法では，前もって大量のデータを準備しなければならないため，非常に手間がかかってしまう．
データベースの手法は，利用者が入力した，どのように変形するかというサンプルデータに従って，形状変形を計算する手法である．
Sunil ら[3]や Loviscach ら[4]は頂点の圧縮率マップを動的に生成し，衣服のしわをバンプマッピングによって生成する手法を提案した．この手法は，動的にマップを生成して，バンプマッピングによってしわを生成する点で，本手法と類似している．また，Calorine ら[5]は，変形範囲内のメッシュを細分化し，頂点を曲線で変形させることで衣服・皮膚両方のしわを生成する手法を提案した．この方法では，任意の部位に細かなしわを生成することが可能であるが，人体の動作に応じた自然な皮膚変形の生成を実現できない問題がある．
3. システム概要
本システムは，利用者がはじめに変形情報を設定する処理と，人体モデルの姿勢に応じて皮膚変形を適用した人体モデルを描画するアニメーション処理に分かれる．変形情報とは，各変形部位毎に設定される情報で，使用するパターンテクスチャ，変形を適用する範囲，どの関節の動きに応じてパターンを変化させるか，といった情報を持つ．
変形情報の設定では，変形を行う部位ごとに，利用者がマウスとキーボードを用いて，パターンテクスチャの種類やどの関節に応じて変形を適用するかを決定し，人体モデルのテクスチャマップ上の変形を適用する位置にパターンテクスチャを配置する．
アニメーション処理（図 2）では，設定されたそれぞれの変形情報毎に，姿勢情報から対応する関節角度を姿勢情報から取得して，関節角度の大きさに応じてパターンテクスチャの凹凸の高さを変化させながら，描画処理に用いるハイトマップ上の指定位置に高さの情報を描き込む．次に，動的に生成したハイトマップを用いて，人体モデルに対してバンプマッピング，及び，ディスプレイスメントマッピングを適用しながら，人体モデルを描画する．ただし，現在はディスプレイスメントマッピングは未実装であるため，ポリゴンモデルの細分化は行わず，もとのポリゴンモデルの頂点位置のみを変化させている．
基本となる人体モデルには，ワンスキンモデ
ルを用いる．ワンスキンモデルは，ポリゴンモデルとウェイト行列によって表現される．ウェイト行列とは，各ボーンが各頂点に与える影響を重みで表したものである．姿勢情報が入力されたときに，姿勢情報から求まるボーンの変換行列とウェイト行列にもとづいて，ポリゴンモデルの各頂点の位置を計算することで，ポリゴンモデルを変形させることができる．ポリゴンモデルやウェイト行列は，市販の 3D モデリングソフトウェアなどを用いて作成できる．
アニメーション処理の全ての処理を CPU 上

で行うと処理が遅くなるため，一部の処理はGPU 上で計算することで，高速化する．パターンテクスチャをハイトマップ上にレンダリングする際に，ハイトマップ上の描画される画
素毎にピクセルシェーダが実行され，ピクセルシェーダ内で，変関節角度にもとづくパターンテクスチャの高さ制御計算を行う．また，人体モデルのレンダリングの際に，頂点シェーダを用いてワンスキンモデルの形状変形処理，及び，関節角度とパターンテクスチャにもとづく形状変形処理を行い，ピクセルシェーダを用いてバンプマッピングを行う．

鎖骨

肩甲骨

肋骨
骨による凹凸首腕・ふくらはぎ
腹・腰
太もも
膨らみ

4. 設定インターフェース
4.1 パターンテクスチャ
人体が動作するときに起こるしわや膨らみ，骨による凹凸などの皮膚変形は，ほぼ同じ形状で生成される．そこで，本研究では，皮膚変形が関節毎に決まったパターンをすることに注目し，あらかじめ，変形部位に応じて，パターンテクスチャをそれぞれ用意する．これにより，利用者は，パターンテクスチャを変形部位に指定するだけで，全身の変形を容易に設定できる．
本研究では，人体の主要な皮膚変形を実現するため，11 個のパターンを作成した（図 3）．パ
ターンテクスチャは，画像編集ソフトウェアを用いて作成することができる．本システムでは，必要に応じて，利用者がパターンテクスチャを作成して，追加することもできる．
しわを表すパターンテクスチャのハイトマ
ップでは，標準画素値を 0.5 とし，画素値が0.5 より大きいときに凸，0.5 より小さいときに凹となることを表す．腹や腰には大きな凹みのパターンを共用し，首には大きな凹凸のパターンを利用し，手首には細かな凹凸のパターンを利用する（図 3）．膨らみと骨による凹凸は，標準画素値を 0 として，値が 1 に近づくほど凸となることを表す．膨らみについては，腕やふくらはぎの筋肉による隆起は急な膨らみのパターンを共用し，太ももの広がりにはなだらかな膨らみのパターンを利用する（図 3）．骨による凹凸は，部位によって骨の形状が異なるため，各部位に対応する形状のテクスチャを準備する．現在は，骨による皮膚の変形が顕著に見られる，鎖骨，肋骨，肩甲骨のパターンテクスチャをそれぞれ左右 1 つずつ用意している（図 3）．

手首しわ

図 3：パターンテクスチャの作成例
4.2 パターン指定インターフェース
本システムの利用者は，用意されたパターンテクスチャを用いて，人体モデルのどの範囲に，どのパターンをどのように適用するかを利用者が指定する．利用者は，最初に，キーボードを使って，パターンテクスチャの種類と，どの関節に応じて変化させるかを指定する．その後，マウスを使って，パターンテクスチャを回転や拡大・縮小し，人体モデルのテクスチャ空間上での適用位置を決定する．
本システムでは，設定インターフェース画面と人体モデルレンダリング画面の両方を表示することで，インタラクティブに適用結果を見ながら，パターンテクスチャの配置を調整可能としている．
5. 皮膚変形手法
5.1 関節角度の取得
関節に応じて動的にハイトマップを生成するために，人体モデルの関節の回転角度を取得する．人体モデルの各関節は自由度に応じて最大 x，y，z の３軸の回転軸を持ち，それぞれの回転軸周りの回転角度が θ x ，θ y ，θ z の関節角度で表される．関節角度は，皮膚変形が発生しない初期姿勢のときに 0 とし，姿勢変化が大きくなるほど関節角度も大きな値を持つ．また，例えば，同じ腹関節の動きによる皮膚変形でも，屈んだときは腹にしわができるが，身体をねじったときは腰にしわができるように，回転軸によって異なる変形が生じることがある．一般に，それぞれの回転軸による変形が影響を及ぼし合うことはないことため，本システムでは，このような場合には，関節の各回転軸の向きに対応する変形情報をそれぞれ指定するようにしている．
5.2 ハイトマップの動的生成本手法では、ハイトマップの画素の値が関節角度の値によって大きくなりすぎないようにするため，ハイトマップの描画に非線形な式を用いる．
しわについては，静止姿勢では凹凸が小さく，姿勢の変化に応じて凹凸が大きくなるため，パターンテクスチャに格納された凹凸の高さの情報を関節角度に応じてスケーリングすることで変形を制御する． Cin をパターンテクスチ
ャの対応する画素に格納された高さ，Cout をハイトマップの画素に出力する高さ， k1 を凹凸の大きさを制御する変数とすると，式 1 で表される．

Cout = k1 log(θ + 1)(Cin − 0.5) + 0.5(1)

膨らみについては，姿勢の変化に応じて隆起のみが起こるため，パターンテクスチャに格納された凸方向の高さの情報を関節角度に応じてスケーリングすることで変形を制御する．
k 2 をパターン毎に凸の大きさを制御する変数とすると，式 2 で表される．

Cout = k 3 log(θ + 1)Cin(2)骨による凹凸については，姿勢によって凹凸の形状は変化せず，凹凸が表面に現れる度合いのみが変化するため，パターンテクスチャに格納された凸方向の高さの情報を関節角度に応じて一定の大きさ増減することで変形を制御する．つまり，画素値が 0 の画素については値を変化させず，値を持つときの画素については画素値にオフセットを加える． k 3 を変位の度合いを制御する変数とすると，式 3 で表される．

if Cin = 00⎧(3)Cout = ⎨⎩k 3 log(θ + 1)Cin if 0 < Cin ≤ 1
なお， k1 ， k 2 ， k 3 は，パターンの作成者により手作業で調整した値が，あらかじめパターンごとに，設定されているものとする．
5.3 皮膚変形の生成5.2 で動的に生成した 1 枚のハイトマップを用いて，しわと骨の凹凸はバンプマッピング，

Pouthθ

NPin

図 4：膨らみの生成手法
膨らみはディスプレイスメントマッピングを適用することで，皮膚変形を適用した人体モデルを描画する．ただし，現在はディスプレイスメントマッピングは未実装であるため，ポリゴンの細分化は行わず，もとのポリゴンモデルの頂点座標のみを変形させる．ハイトマップにもとづき，各頂点の座標を法線方向に移動量分移動させる（図 4）． Pin をもとの頂点座標， Poutを移動後の頂点座標， N を頂点法線， hθ を式
2 の画素から決まる移動量とすると，式 4 で表される．

Pout = Pin + N × hθ(4)

6. 実験結果
本手法の有効性を評価するために，人体モデ
ルに腹のしわ，腕の膨らみ，肋骨と肩甲骨による凹凸の 3 つの皮膚変形を設定し，「屈む」「ガッツポーズ」の動作において，皮膚変形を生成する実験を行った（図 5）．実験環境として，
Pentium4(R) 3.2GHz，メモリ 1GB，グラフィックボード（Geforce 6800GT）内蔵の PC を使用し，頂点数 4340，関節数 50 の人体モデルと，256×256 のハイトマップを利用した．
実験結果より，各パターンに対して関節角度の変化を非線形に適用することで，比較的人間の皮膚に近い変形をモデル化できていると思われる．現在の手法において，姿勢の変化に応じて皮膚変形も動的に変化していることから，バンプマッピングを適用した固定のしわを生成する手法と比較すると，自然な皮膚変形を実現できていると考える．また，筋肉モデルで必要な詳細な設定に比べると，パターンテクスチ
ャを設定する作業は比較的容易である．しかし，関節角度に応じて非線形に凹凸を変化させているのみなので，筋肉モデルを用いた方がより人間らしい変形を行うことができる．本手法でも，利用者がパターンテクスチャをある程度作り込むことで品質の向上は望めるが，人体の正確な構造設定に基づいた筋肉モデルのような，リアルな皮膚変形を再現するのは困難である

(a) 「屈む」動作によるしわと骨による凹凸(b) 「ガッツポーズ」をすることによる膨らみ
図 5：実験結果と考える．また，実際の皮膚変形はより複雑で，皮膚同士の接触によっても形状は変化する．提案手法では，このような外力にもとづく変形まではモデル化できていない．このような問題を解決するためには，基本的には粗いモデルを用いて、変形部分に対してのみ物理シミュレーションを行うような処理を追加する必要がある．
処理速度について，全て CPU で処理をした場
合は 48[fps]前後の描画速度で，レンダリングにかかる処理時間は 19[ms]前後であったが，3節で説明した通り一部の処理を GPU 上で実行することで描画速度が 150[fps]前後，処理時間が 11[ms]前後まで高速化された．
7. おわりに
本稿では，人体モデルの皮膚変形をリアルタイムに簡単に生成する手法を提案した．人体の動作時の主要な部位の変形をパターン化してテクスチャで表した．関節角度の変化に応じてこのパターンテクスチャを動的に変化させ，バンプマッピングやディスプレイスメントマッピングを用いて描画することで，人体モデルの皮膚変形を高速に実現する方法を提案した．また，利用者がインターフェースによって人体モデルのどの範囲に，どのパターンの変形が発生するかを設定することで，任意の部位に変形を適用できることを確認した．
本手法により，目標とする高速かつ簡単な皮膚変形は実現できた．しかし，現在のシステム
では，テクスチャ空間上で変形部位を指定するインターフェースとなっており，人体モデルのどの部位が変形するのか，直感的に分かりにくいという問題がある．そこで，利用者が人体モデルの変形部位に線を引くことで，直接パターンの適用範囲を設定できるようなインターフェースを開発することを考えている．また，今後の課題として，皮膚同士の接触や外力にもとづく変形を計算する，簡易的な物理モデルを組み合わせることで，より人間らしい変形を実現していきたい．
参考文献[1] Paul G. Kry, Doug L. James, and Dinesh
K. Pai: “EigenSkin: Real Time Large
Deformation Character Skinning inHardware”,
ACM
SIGGRAPH
Symposium on Computer Animation,
pp.153-160, 2002.
[2] Lawrence D. Cutler, Reid Gershbein,
Xiaohuan Corina Wang, Cassidy Curtis,
Erwan Maigret, and Luca Prasso: “AnArt-Directed Wrinkle System for CG
Character Clothing”, ACM SIGGRAPH
Symposium on Computer Animation, pp.
117-126, 2005.
[3] Sunil Hadap, Endre Bangerter, Pascal
Volino,and Nadia Magnenat-Thalmann:“Animating Wrinkles on Clothes”,

Proceedings of the conference on
Visualization ’99, pp. 175-182, 1999.

[4] J.Loviscach, “Wrinkling Coarse Mesheson the GPU”, EUROGRAPHICS 2006.
[5] Calorine
Larboulette,Marie-Paule
Cani: “Real-Time Dynamic Wrinkles”,
Computer Graphics International, 2004.