オススメ機能
Twitter
お気に入り
記事履歴
ランキング
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2013/08/24 16:01

イベント

[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介

画像集#018のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介
大日本印刷 C&I事業部 ICT開発本部 インタラクションデザイン開発室 櫻井快勢氏
 2013年8月21日から23日まで,日本最大のゲーム開発者向けイベント「CEDEC 2013」が開催された。会場では数多くのゲーム向けセッションが行われていたが,今回取り上げるのは初日に行われたアカデミックに分類されるセッションで,情報処理学会GCAD研究会とのコラボレーションによるものだ。率直に言えば,直接ゲームとの関係はない。しかし,基礎研究が蓄積されていけば,そのうちゲームにも使えるような局面が出てくるかもしれない……そんな研究だと思っていただきたい。

 さて,セッションのタイトルは「コンピュータグラフィックス研究の最前線 〜レンダリング、プロシージャルモデリングとその周辺〜」ということで,どちらかといえばSIGGRAPHでの発表の傾向紹介などがメインだったのだが,本稿では大日本印刷の櫻井快勢氏が担当したプロシージャルモデリングの部分を紹介したい。

画像集#019のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介
 プロシージャルモデリングとは,一定の規則に基づいて形状データを生成していくことを示す言葉である。地形の生成や植物の造形,都市の構築などではすでに実用化されており,ゲームにとっても縁遠いものではない。ただし,今回の題材となったのは「おにぎり」と「毛玉」だ。

 プロシージャルモデリングの利点として,氏は制作時間の短縮とデータ量の削減,そしてなにより品質の均一化が望めることがメリットだという。“職人”の腕に頼らなくても一定の品質のものができあがるというのは,制作効率を上げるうえで極めて意義のあることだ。

 では,おにぎりのような形状を簡単に作成するためにはどうすればいいのか?
 おにぎりというのは,要するにご飯(米粒)の集合体であって,米粒という基本形状が一定の形状に堆積した状態とみなすことができる。櫻井氏は,そのような状態を三次元凝集体と呼んでいる。

画像集#020のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介 画像集#021のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介

 そのような状態を作り出すために,櫻井氏が取ったアプローチは以下のとおりだ。

  1. 基本形状を一定空間内に詰め込む
  2. 基本形状のそれぞれが重ならないように動かす

画像集#022のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介
米粒単位で局所的に堆積している状態を作って全体に展開すれば,全体に堆積しているようになるだろうという考え方に基づいている

 ここで重要になるのは,初期状態でどのように詰め込むかだが,櫻井氏はなによりも穴が開かないようにすることを心がけたようだ。隣接する米粒同士は,必ず重なるような初期配置を実装している。そのために用いられたのが,Poisson Disk Distributionという手法である。
 Poisson Disk Distributionというのは,点と点の距離が一定以下にならない関係の分布を意味している。普通に考えれば米粒がくっつきすぎない分布として使いそうなものなのだが,点と点の距離が一定範囲になることでも知られているので,櫻井氏の実装では必ず米粒がくっつくようにするために使用されている。

 外形に合わせて配置するには,外形の表面に近い部分ほど値が大きくなる陰関数を作成して利用している。

画像集#023のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介 画像集#024のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介
画像集#025のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介

 めり込んだ米を適切な位置に移動させるには,

  1. 近すぎるものは削除する
  2. 重なりを小さくする方向に移動する
  3. 移動量を最小にする

ことを条件にGolden Section Search(黄金分割探索)を繰り返す。結構重そうな処理だが,GPUを使うことで高速化されているとのこと。

画像集#026のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介 画像集#027のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介

 このようにして作られたおにぎりが,下のスライドの(b)だ。米粒が独立しすぎていて,おにぎりとしては少し不自然なので,そこである程度は重なるように干渉量を設定して,調整したものが(a)となる。

画像集#028のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介

画像集#029のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介
構成要素となる米粒の向きは,通常は外形の法線に合わせて回転され,外形に対して滑らかな表面を作るのだが,一定の方向を指定することも可能だ

 出来上がりは写真のようになるのだが,どんな形状に詰め込むこともできるのが見てお分かりになるだろう。大日本印刷の社内でデザイナーに意見を求めたところ,すぐにでも使いたいという声が出てきたという。同時に,構成要素に揺らぎがほしいという要望も出てきたようだ。確かに,米粒のようなちょっと見ただけでは個々の差が分かりにくいものならまだしも,バナナなどでは少しくらい大きさや形の違うものが混在していたほうがリアリティが増すだろう。

画像集#030のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介 画像集#031のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介

画像集#032のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介
 そこで,次は構成要素に揺らぎがある凝集体,すなわち毛玉の生成が目指された。
 毛玉は,いろいろな形状の短繊維が集合して配置されたものだ。外形へのフィッティング,配置と調整に関して,米粒の場合は重なりを調整するために最適なずらし方を探っていたが,短繊維だとぶつかっても無視して処理しているので調整方法は異なる。毛玉での調整は,主に外形表面からはみ出した毛を処理することだ。おにぎりのときの陰関数(外形の内部のみ)の代わりに,符号付距離場を使って外側にはみ出した分を調整可能にしている。

画像集#033のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介 画像集#034のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介
画像集#035のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介 画像集#036のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介

 懸案となっていた短繊維に揺らぎをもたらす方法だが,短繊維の捲縮(縮れ)を指定できるように,ポリラインでの表現形式が採用された。ラインごとの回転や移動が指定でき,縮れ具合がパラメータで調整できるようになっている。
 こういった短繊維について,櫻井氏が友人のすね毛を使って調べた結果,短繊維の強度はそれなりに強いという判断になり,繊維が曲がったりはしないという実装が選ばれているとのこと。

画像集#037のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介 画像集#038のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介
画像集#039のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介 画像集#040のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介

 下のスライドにある鳥の巣を見ても分かるように,普通のモデリング手法では手間のかかりそうな形状が,それなりにリアルに自動生成されている。

画像集#041のサムネイル/[CEDEC 2013]計算でおにぎりや毛玉を作る方法とは? 三次元凝集体のプロシージャルモデリング技術を紹介

 任意の3D形状で任意の空間を満たすという処理は,それなりに需要がありそうな気はする。例えば,3Dツールのプラグインなどで人気を呼びそうだ。ゲームへの応用は未知数だが,ポスター用CG制作とかには向いているかもしれない。なお,特許は取得しておらず,自由に使用できるとのこと。興味のある人は独自に実装してみてはいかがだろうか。

4Gamer「CEDEC 2013」特設ページ

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:04月18日〜04月19日