ジェネラティブアートによる髪の流れの表現
厚木麻耶
1. 概 要
髪の毛は長さ・巻きなどの違いによって動き方は変化する．例えば，巻きのある髪の毛はストレートな髪の毛に対して，頭を振った時その髪の軌跡にうねりが加えられる．短い髪の毛は長い髪の毛よりも小さい動きになる．
髪の動きは人によって全く違うものとなり，人の個性の一つであると言うことができる．
髪の毛の流れに関するデジタル作品の多くは動画や複数の静止画を並べることで髪を表現してきた．これらの作品の多くは髪の流れを強調することなく，髪の動きを現実に忠実に再現してきた．本研究では髪の動きを 1 枚の静止画で表現し，かつ各人の髪の個性を強調する手法について論じる．さらに本研究ではジェネラティブアー
トの考え方を採用し，髪の毛の動きのアルゴリズムに加えて髪の艶のパラメータにランダム性を加えることで，美しさを追求したアート作品を生成することを目指す．

2. ジ ェ ネ ラ テ ィ ブ ア ー ト
2.1 ジェネラティブアート
ジェネラティブアートとは，プログラミングされたアルゴリズムから自律的に生成されるアート作品のことである．基本的なアルゴリズムに加えてランダム性を加えることで偶然生まれる美を追求し，ひいては単なるプログラムの計算結果ではない芸術作品を追求する．一般的なジェネラティブアートではランダム性を乱数としてプログラムに組み込むことで，何度実行しても二度と同じ結果を得ることのできない作品を生成する(図1)．
例として文献[1]では，ジェネラティブアートにおける基本的なアルゴリズムを蝋燭の動きとし，自然の風の影響を受けて揺らぐ炎の動きをランダム性としている．

図 1 : ジェネラティブアートのための同一プログラ
ムを 2 回実行した結果
2.2 髪のCG表現本研究では基本的なアルゴリズムを髪の毛の動きとし，ランダム性を髪の間引き・艶として与えることによって，数秒間の髪の毛の動きを閉じ込めた一枚の静止画を生成する．
コンピュータグラフィックス(CG)では髪の動きのシミュレーションが活発に研究されている．本研究ではCGシ
ミュレーションによって生成された髪の動きを参照して髪を表現する．ここで，本来のジェネラティブアートは基本的なアルゴリズムの中に乱数を組み込むため，実行するまでその結果を予測することは全面的に不可能である．一方で本研究が採用するCGシミュレーションにおい(指導教員：伊藤貴之)て，髪の動き自体に予測不可能性はない．これを本来のジェネラティブアートとの違いとして掲げる．

3. 提 案 手 法
3.1 髪の間引き本研究では複数のフレームを重ね描きするため，髪の本数が多すぎると個々の髪の動きを視認しにくい．そこで個々の髪の動きをわかりやすくするために，本研究では髪を間引きする．ここで間引き後の髪の本数に乱数を使うことで，ジェネラティブアートらしい表現のために重要なランダム性を付加する．
3.2 髪の形状処理
文献[2]では，高品質で詳細な髪の毛のアニメーションを，ゲームのようなインタラクティブなアプリケーション上でリアルタイムに処理を実現する方法を提案している．本研究ではこの CG シミュレーションから髪のデータを取得し利用する．データファイルはフレームインデックス・髪の本数・1 本の髪を構成する各頂点の 3 次元
頂点座標が記述されており，髪一本あたりの頂点数は 10となっている．本研究では CG シミュレーション結果として与えられる髪に人工的なテイストを加えるために，髪の形状をベジェ曲線に置き換える．髪 1 本を構成する
10 頂点をベジェ曲線における制御点とし，そのうち 2, 3,5, 6, 8, 9 頂点目を方向点，1, 4, 7, 10 頂点目をアンカーポ
イントとする．
3.3 髪の描画
本研究が採用する CG シミュレーションは髪の動きのみを再現するものであり，髪の色情報は与えられていな
い．現状では髪の色を黒(R=0, G=0, B=0)とする．また本研究では，後述の通り髪の重なりをアルファブレンディングにより表現するが，髪の動きを強調するために髪の移動量からアルファ値を算出する．現在の毛先の頂点座
標を p1，1 フレーム前の毛先の頂点座標を p2，d および kを任意定数としたとき，髪のアルファ値αを以下の式で算出する．
α = min(d, ||p1 – p2||) k(1)なお現状では，髪の動きを観察するカメラ位置のパラメータと，式(1)における任意定数 k を手動設定する必要がある．

4. 結 果本研究ではデータ処理から描画までのシステム全体を，openFrameworks を使用して開発した．使用したデータのフレーム数は 264，間引き前の髪の本数は 4096 であった．
斜め上から髪の動きを眺めることのできる位置(x = 52,y = -266, z = 95)にカメラを設定し(図 2 参照)，式(1)における k を 0.2 としたときの実行結果を図 3 に示す．この結果①~③は，同じシミュレーション結果，同じカメラ位置・同じ k 値に対して，間引きの本数のパラメータのみに乱数を用いて 3 回実行した結果である．

1

を 2 次元に変換し，その奥行きは画像をアルファブレンディングすることで補った．時系列こそ読み取ることはできないが，どのように髪の毛が重なって動いているかを読み取ることができる．しかし，髪の毛の毛先の動きを髪一本のアルファ値に対応させているため，髪一本の中で生まれる繊細な奥行きを表現できていない．

5. ま と め
髪の毛の動きをジェネラティブアートという手法を用いて一枚の静止画として表現する方法を提案した．ジェ
ネラティブアート風に髪の動きを表現するために，CG シミュレーションから得られる髪の動きを参照し，間引き後の髪の本数にランダム性を与えた．
図 2: 髪の毛のモデルとカメラの位置

6. 今 後 の 課 題
今後の課題として以下の 2 点をあげたい．
髪の艶の実装ジェネラティブアートには，思いがけない美を追求するためにアルゴリズムの中に乱数のようなランダム性を組み込むことが一般的である．今回ランダム性として，大量の髪の毛を間引く数式にランダム性を与えた．しかし，結果からもわかるように髪の本数が変わっただけでは全体的な濃さが変わったようにしか見えず，思いがけない美を追求しているとは言うことができない．さらなるランダム性の付加として，髪の艶の数式に乱数を与えることを考える．髪の艶は色の面で描画に大きく影響を与え，生成する一枚の静止画の中により濃淡を付加し予想できない結果を生み出すことを期待できる．
②
3 次元上の奥行き・時系列の表現方法の検討
現在の奥行きの表現方法では，髪の重なりを読み取ることのみ可能である．しかし，髪の毛にはその一本の中でも奥行きは存在する．それを表現するため，奥行きを2 次元で詳細に表すことができる方法を再検討する必要がある．また，本研究の目標は髪の動きを一枚の静止画で表現することであった．動きには必ず時系列が存在し，どのような時系列で髪の毛が動いたかは重要な要素であると考えられる．よって今後その表現方法も検討していきたい．
①①

間引き 3686 本②

間引き 3276 本

7. 参 考 文 献[1] 羽田，中野，亀井，戸塚，煤によるジェネラティブアート生成の試み，芸術科学会論文誌 Vol. 14, No. 5, pp.

220-228, 2015.
[2] C. Wu, T. Kanai, Data-Driven Detailed Hair Animation for
Game Characters, Computer Animation and VirtualWorlds (Special issue for CASA 2016) , Volume 27,
Issue 3-4, pp. 221–230, May-August 2016③
間引き 2047 本
図 3:実行結果例
今回髪の毛のモデルは，ストレートなショートヘアのみであった．巻き髪等のモデルデータは今回使用した CG
シミュレーションからは取得することができず，1 パターンのモデルでは個性を表現できているか判別しづらい．
また，髪の流れの表現に関して，3 次元である髪の動き

2