[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

ポリフォニーデジタル 齋藤 彰氏
 2019年11月23日,福岡県・九州産業大学で「CEDEC+KYUSHU 2019」が開催された。
 ここでは,ポリフォニー・デジタルの齋藤 彰氏による「Procedural Hard surface Modeling メカデザインを周波数で分解したモデリング手法の紹介」の概要を紹介したい。これはHoudiniを使ったプロシージャルモデリングの講演である。

 氏は,CEDEC 2017では,Houdiniでは建物をプロシージャルに生成するための手法を解説していたが,ポリフォニーでは主に景観デザインを担当しているという。要するにGTシリーズのコースを作成している人である。
 普段は景観を作成している人なのだが,講演でのスライドでは,メカや人物,モンスター的なものなどがあふれていた。そういったものをHoudiniでプロシージャルに生成しているというのだ。

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 GTでプロシージャルで生成されたコースが使われたこともあるとのことで,同社ではデータ作成でHoudiniが活用されているようなのだが,今回の齋藤氏の講演はポリフォニーデジタルの社名付きで出てはいるものの,氏の個人的なプロジェクトに関する内容だった。どうやら,デジタルなプラモデルやフィギュア的なものの作成にHoudiniを趣味で使っているということのようだ。会社では背景アセット作成でHoudiniを使い,家に帰って趣味でHoudiniを使っているという。

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
 さて,Houdiniに備わった多くの機能群の一つでよく使われるものにSOP(サーフェスオペレータ)がある。ポリゴンをガンガン加工していくための機能がノードとして用意されており,ノードをつないだネットワークを構築することで複雑な処理もこなすことができる。
 氏は飛行機的なメカを例に,SOPネットワークでの処理の流れを示していた。ボディ形状を決めて翼を取り付け,エンジンなどの構造を加えて,さらにディテールを付け加えて色をつけていくといった流れだ。

 まず,基本形状をスライダーで変形させていき,適当に気に入った感じになるまで形状ガチャを続けていく。ざっと見たところ左右対称くらいしかルールはなさそうな感じだ。さらに設定した各種パラメータのスライダーを操作することで変形こともできるようだ。
 そういったボディの基本形状に対して,さらにサブの形状データをランダムで配置していってシルエットを決めていく。

 ちなみに,塗りの細かいところは自分でやりたいので自動化はしていないそうだ。やはりプラモデル感覚なのだろうか。

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
ボディの大まかな形を決める
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
翼をつける
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
エンジンをつける
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
パーティショニングラインを入れる
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
ディテールで穴などを空ける
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
色をつける

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

それぞれの項目はサブルーチン化(サブネットワーク化)されており,それぞれの機能をライブラリ化したものはHDAと呼ばれる
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 このような流れで,全体的なシルエットからディテールに向かって仕上げていくらしいのだが,いきなりこんなモノを生成するようなことは簡単ではないだろう。こういった複雑なプロシージャルワークフローを構築するにあたって,齋藤氏はそれを周波数の粗密に例えた段階的なモデリング手法として紹介していた。

大まかに周波数別に分けられる。高周波・中周波・低周波それぞれで有効なモデリング手法は異なるという
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 高周波成分となるディテール部分は,複雑な形状になるとそれっぽく配置することが難しくなる。齋藤氏はディテールをつける際のテクニックとして,UVに展開して配置することを勧めていた。複雑な曲面に対して均等に穴を空けたいといった場合などに,UVを使うとよい感じで処理ができるようだ。

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
複雑な形状をUVに展開し,UV平面上に配置したものを元の空間に再配置する
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 そのほか,ディテールを加える手法としてVORONOI分割も多用していることが紹介されたが,そちらについての詳細はSIGGRAPH ASIA 2018で発表しているとのことだった。

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 続いて,低周波部分,すなわちモデルのシルエットをどのように作っていくかという話に移っていった。
 デモでは基本形状に対して,ランダムノイズを使った形状ガチャを繰り返していた。適当な形状を決め,さらに別の形状をランダムに配置して複雑度を上げていくようだ。

ベース形状をまったくランダムなものにするだけでなく,ある程度規則的な流線形(?)をランダムに作り出すこともできる
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
選んだ形状に別の形状をランダムに加えているところ
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 その段階で,斎藤氏が持ち出したのがL-Systemだった。L-Systemは植物のプロシージャル生成でよく使われるもので,一定の規則で枝の階層を伸ばしていくようなアルゴリズムだ。これをシルエットの各部のモデリングとディテールアップに使用しているのだ。結果として,複雑かつなんとなく有機的な雰囲気の形状ができあがる。

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 ちょっと驚いたのは,そのL-Systemを人型形状に適用していたことだ。手足の関節などは決まっているので伸ばしようがないように思えたのだが,あまり気にせずに伸ばしていくようだ。ちょっと脚が短いので1段足す,手も足しておくみたいな感じでデモンストレーションが行われた。結果的には,確かに,頭や手足といった基本構造は残しつつ,複雑度を上げた形状が生成されていた。

人型形状にL-Systemで末端を成長させているところ
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 段数を上げると自然とディテールアップされて派手になるので,同系列のモンスターのグレード分けなども簡単にできるだろうとのことだった。

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

見てもよく分からないが,L-Systemの処理が記述されているらしい
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 すでにあるモデリングデータを,シルエットのベースになる形状としてプロシージャルな形状を生成していくこともできるという。
 スライドでは人体データが示され,その上に一定のルールで形状を作っていくと,服や装備をになることが示された。モデリングデータにぴったりフィットしているので,そのまま歩かせても不自然さはない。

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 また,その応用で,骸骨のデータにランダムで筋肉的な要素を加えて血管や臓器などを段階的に皮膚まで生成していくと,人間そのものではないのだが,それっぽいモンスター的なものができあがる。犬の骨格,蜘蛛の骨格(??)などでの例も示され,モンスターの量産ではかなり威力を発揮しそうに思われた。

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 中周波についてはとくに言及がなかったのだが,さまざまなパーツをどう配置していくかは,プロシージャル処理で氏が重要だと述べていた「手」「目」「脳」の機能の実現で行われるものと思われる。形状を加工する手に相当する部分と,どこに配置するかを判断する目にあたる部分,そして形状を見分ける脳にあたる部分に分けて考えると,SOPのワークフローが整理できるという。

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

なにも考えずにエンジンノズルを配置すると破綻してしまう
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
目に当たる機能で方向を揃えて,内積外積などを使って判断しても穴の空いた形状では構造的におかしくなることがある
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

脳に当たる部分で穴の空いた形状をオイラーの多面体定理を使って判定する
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 最後に齋藤氏が挙げたのが「可能性の空間」という概念だった。これはCEDEC 2018でEmbark StudiosのAnastasia Opara氏が提唱していたものだそうで,いくつかのインスピレーションの組み合わせで構成される「可能性の空間」から最適なものを削り出していくのがアートディレクションであるという主張だ。

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 例として挙げられたのは,クルマと昆虫という2つのインスピレーションだった。まずこの2つの尺度で定義される平面上から,「タイヤがない」などの破綻する部分を真っ先に削り,次に絵としてつまらないものを削り落としていく作業を繰り返してデザインを突き詰めていく。この削り落としを繰り返す部分でプロシージャルが有効であるというのだ。
 プロシージャルであれば多くの可能性を簡単に生成して示すことができ,アーティストはその中から最適なものを選択できるということだろう。手作業だと1個ずつ回すガチャも10連でやれば効率的になるようなものだろうか。

2つの要素で構成される「可能性の空間」全体から,破綻が起きる部分をまず削り,表現的に面白くない部分をさらに削る。プロシージャルを使えば,この平面内のさまざまな可能性を手早く確認することができる
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

3つのイメージによる作例
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
同じイメージをもとにしても,違った表現の可能性が存在する
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

 こういった手法はコンピュータによって自動生成されたバリエーションから選択していくことで,人手では到達できないようなものを作り上げるというジェネレーティブデザインの考え方にも通ずるものがある。
 純粋にデザイン的なものということからか,とくに定量的な評価による最適化過程などは含んでいないようだったが,アーティストのセンスだけで選んでいく過程が効率化すれば,それだけ多彩で高品質なものが期待できる。

通常のワークフローは直線的だが,それぞれの段階でさまざまなバリエーションが作成可能で選択が行われる
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは?  [CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

齋藤氏の使用機材など。1つのデザインにかかる時間は20〜30分ほどだという
[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 
 Houdiniを使えば誰でもすぐにこういったものが作れるわけではないのだろうが,周波数帯による段階的な構築法を意識し,それぞれの部分をきちんと作っていけば凄いものが自動で生成できるようになるというのは講演で示されていたとおりなのだろう。
 今回はハードサーフェスに限定したノウハウが公開されていたが,メカ以外にモンスター的なものにまで有効な手法であり,応用範囲は広そうだった。今後,さらに分野や方向を拡大した知見が蓄積されれば,デザインの現場は大きく変わっていくことになるのかもしれない。

[CEDEC+KYUSHU]周波数分解によるプロシージャルなメカデザインとは? 

CEDEC+KYUSHU 2019公式サイト