スケッチ入力を用いた氷・霜アニメーション生成のための初期値最適化による成長速度制御
1940639

理学専攻 情報科学コース(a) 40 フレーム

天野 幹子(b) 80 フレーム
図 1:

(指導教員：伊藤 貴之)(c) 120 フレーム

レンダリング結果の一例

1 はじめに2 処理手順3 次元コンピュータグラフィックス（以下 3DCG と称する）を用いた映像がメジャーになり，ビジュアルエフェク
ツ（以下 VFX と称する）は映画やコンピュータゲームなどに広く適用されている．自然現象を実際のように再現するアニメーションによって，様々なシーンにおいてリアリティを高めることができる．近年では VFX の作成をサポートするために，多くのソフトウェアやツールが開発されている．
氷と霜の結晶化は，VFX の中でも重要な自然現象の 1 つである．氷と霜の結晶化は複雑な樹枝状成長を伴う．いく
つかのシミュレーション方法が CG における氷や霜の形成手法として提案されている．雪の結晶について，結晶の多様な形状を少ないパラメータのみの単純なモデルで表現するもの[1]がある．また，氷や霜の樹枝状成長の成長過程を誘導やデザインするものも複数提案されている．しかしこ
れらの方法は，マップにより成長の方向指定を行うのみであったり，広がりの道筋を細かく色分けして描くものであるなど，ユーザ所望の最終的な広がりの形状に焦点を当てたものではなく，入力の工数も多い．また，ユーザ所望のアニメーションを作成するためには，シミュレーションの実行とパラメータの調整作業を何度も繰り返して試行錯誤的に調整する必要があり，多くの時間と労力を要するという問題がある．そこでユーザが望む形状の氷・霜の形成アニメーションについて，スケッチ入力による最終的な広がりの形状指定や最適化を導入し，単純なパラメータ操作のみで作成可能とすることで，この問題に対処することができると考える．
本研究では，ユーザがスケッチ入力とパラメータの調整を行うのみで，シミュレーションによって多様な広がりを創り出すことのできるツールを実現した．従来手法に新たなパラメータを導入することで霜のランダムな広がりを表現・制御し，かつその成長速度を初期値最適化により制御可能とした．
ツールの実装は汎用 CG ソフトウェア Houdiniで行った．

2.1 スケッチ入力と格子点配置
ユーザはまず，2 次元平面上にペイント操作を通して氷や霜の広がりの範囲を入力する．次にユーザによって指定された領域内部に均等にシミュレーション空間を離散化するためのポイントを配置する．本手法では Reiter の手法[1]をベースにシミュレーションを行うため，同様にポイントを正六角形状になるよう配置する（図 2 参照）．ユーザは次に，領域内に配置したポイントから始点となる点（seedpoint）を選択する．その際，始点となる点は複数点指定しても問題なくシミュレーションを行うことができる．

2.2 拡散シミュレーション
上述のように設定した領域においてシミュレーションを行う．まず各格子点にユーザ指定の初期値 𝛽 を割り当てる．
その値を用いたフレームごとの計算に雪の結晶の多様な形状のシミュレーションを行う既存手法[1]を適用する．各フレームにおける格子点の状態に応じて各格子点を ice 格子とその隣接点，それ以外の点の 2 つの状態に分類し，各状態に対して別の処理を適用する（図 2）．格子点の持つ値が1.0 以上の点は ice 格子として分類され，この ice 格子が氷・霜として可視化される．

図 2: 小領域での Reiter の手法[1]による結晶成長アルゴリ
ズム
しかし，Reiter の手法では霜の成長のランダム性を表す

1ことはできない．我々はこの問題を解決するために擬似乱数 (0.0 ≤ 𝑟𝑡 (𝑝) ≤ 1.0) を導入することにより，Reiter の手法を拡張する．ユーザ指定の閾値 𝑟𝑡ℎ を設定することで，その閾値と各格子点に付与した擬似乱数を比較し，各フレームで適用する処理を決定する．この拡張方法により複雑な成長の表現が可能になり，Reiter の手法と比べ，氷のさまざまな成長パターンを表すことができる．

ップ０，ステップ３の広がりの様子を示す．
表 1: 閾値 0.8 の最急降下法による初期値
ステップ

初期値

終了フレーム

00.25

162

2.3 初期値の最適化

10.294132

135

シミュレーションの初期値 𝛽 を最適化することで，氷の成長速度を制御する．本論文では最適化の方法として最急降下法を用いる．シミュレーションにおいて各ポイントに与える初期値 𝛽 が変わると，各格子点の持つシミュレーシ
ョン過程の値，ひいては広がりの速度が変化する．この初期値 𝛽 の最適化を行うことで，ユーザの所望のフレームで氷がスケッチした領域の端に到達するよう制御する．ユー
ザが設定した目標終了フレームとシミュレーション結果の終了フレームの差が十分小さくなった場合に最適化計算を終了し，その時点の 𝛽𝑖（𝑖 は最急降下法のステップ数）を最終的な初期値として採用する．本論文では，誤差がアニメーション再生時の時間において 1/6 秒以下であれば十分に小さいと仮定し，シミュレーションにおいて設定した 1 フレーム当たりの時間幅から 1/6 秒に相当するフレーム以内となった場合に収束したとみなす．

20.316651

124

30.315713

127

100 frame

113 frame

127 frame(a) ステップ 02.4 結晶生成とレンダリング
2.2 節で述べた通り，各格子点の持つ値が閾値を超えた時点で ice 格子として分類される．ice 格子となったポイントに六角柱を配置することで厚みを持たせ，結晶とした．また，レンダリングは汎用 CG ソフトウェアである Houdini
内のレンダラーMantra の glass マテリアルのパラメータを調整して行った（図 1）．

(b) ステップ 3
図 4: 表 1 ステップ 0，ステップ 3 の各フレームでのシミュ
レーションの様子

4 まとめ
我々は，氷・霜の広がりを表現するアニメーション制作について，スケッチ入力とシミュレーションを用いてインタラクティブに映像を作成するツールの実装を行った．その際，平面のオブジェクト上において従来手法にランダム性の追加実装すること，そして最急降下法を用いて初期値の最適化を行うことによって，ユーザの表現の幅を広げると共に，ユーザにとって扱いやすいツールを目指した．
我々は実験で， 𝛽 がわずかに変化する場合，必ずしも 𝛽の変化と終了フレームが比例するとは限らないことを発見した．初期値のみの最適化では広がりの形状が変化してしまうことが関係しており，複数パラメータの最適化が必要であると考えている．
今後の展望として，どの方向の領域の境界へも氷・霜の広がりの到達時間が等しくなるよう，広がりの始点から境界までの距離を考慮した最適化を行いたい．また，平面のオブジェクトにとどまらず，3D のオブジェクトに対しても適用可能とすることや結晶生成の方法の検討も今後の課題である．

3 実行例
3.1 疑似乱数の導入
ユーザ指定の閾値を 0.0 とし，従来手法[1]と同様の広がりを実現した場合と，閾値を大きくしランダム性を導入した場合の画像を図 3 に示す．2 つの場合を比較すると，擬似乱数の導入によってランダム性を追加することで，閾値0.0 の成長と比較して広がりの方向が一様でないランダムな成長を表現することが可能となったことが見て取れる．

図 3: 同じ条件で閾値を変えた場合のランダム性の同フレームにおける比較．
（左）閾値 0.0/（右）閾値 0.8

謝辞： 本研究にあたり研究方針や最適化について多くのアドバイスをいただいた富山大学の佐藤周平先生に感謝の意を表する．

3.2 最急降下法による初期値の最適化

参考文献

最適化の実験結果を示す．乱数 𝑟𝑡ℎ の閾値が 0.8 の場合に目標終了フレームを 130，ステップ幅 η を 1.0 × 10−6 として最急降下法を適用した結果を示す．表 1 にはステップごとの初期値と終了フレーム，図 4 に同一フレームごとのステ[1] Clifford A. Reiter, A local cellular model for snow crystal
growth, Chaos, Solitons & Fractals, vol.23, pp. 1111-1119,
2005.

2