我々の身近なプロシージャル技術

多細胞生物は複雑な細胞構造を持つが、理論上は遺伝子をベースにタンパク質を合成していけば複雑な生物が合成できることも知られている。大胆なたとえをすれば、遺伝子がプロシージャル技術であり、その成果物としての生物がプロシージャル技術によって生成されるコンテンツと言うことになる。

まぁ、これは飛躍しすぎたとしても、筆者的には、我々パソコンユーザーやゲームユーザーにおいて最も身近で普及を果たしたプロシージャル技術といえば、広くパソコンやゲーム機に採用された「FM音源」(FM: Frequency Modulation)ではないかと思っている。

FM音源は、全ての音波が多様な周波数、位相、振幅のサイン波の合成波で表現できるという理論に基づいて作られたものだ。FM音源では、サイン波の発信器を、実在する楽器の発音のメカニズムに似せた形で繋ぎ合わせた「アルゴリズム」セットが用意されていた。音を作り込む時には、作りたい音の種類に合いそうな任意のアルゴリズムを選択して、その各発信器で入力波形を任意のパラメータで変調して(畳み込んで)音を作り上げていく。現実世界の音をデジタル録音すると(音長にも依存するが)数百キロバイトから数百メガバイトのデータ量になる。しかし、FM音源であれば数十バイトの変調パラメータだけで鳴らしたいだけの長さの音をいくらでも鳴らせる。もちろん、現実世界の音よりも安っぽくなるケースも多いが、当時の数十キロバイト~数百キロバイト程度のメモリしか持たないパソコンにとっては費用対効果の面で大きなメリットがあったのだ。

現在、注目されているプロシージャル技術も、表現したいコンテンツをなるべく少ないパラメータで算術的に合成する……という発想の方向性としてはFM音源と同じだ。

4基発信器(4OP)タイプのFM音源の全アルゴリズム。シンセサイザーはある意味全てプロシージャル技術?

さて、近代プロシージャル技術となると、本格的な研究開発は1980年代後半から盛んになってきたといわれている。

主に研究対象として盛んだったのは大理石、木目、岩といった自然物を表現するテクスチャの自動生成だ。水、煙、炎といったテーマも研究対象であったが、この分野は、近年では流体物理シミュレーションを実装するような直接的なアプローチへと移行しつつあるという。

そう、プロシージャル技術と物理シミュレーション技術の線引きは難しいのだ。

リアルを突き詰めて完全な自然再現、現実模倣を目指すのが(物理)シミュレーション、擬似的な手法で満足できるレベルのものを合成するのがプロシージャル技術……大体そんな解釈で正しいのではないかと思う。

プロシージャル技術の第一ステップ~コンテンツを言語や記号で表現すること

テクスチャ生成関連のプロシージャル技術の進化促進は、「TOY STORY」などのCGアニメーション映画の制作元として知られるピクサーが1989年に発表したオフラインCG制作システム「RENDERMAN」に含まれる「RENDERMAN SHADING LANGUAGE」(RSL)によってビッグバンを向かえたとされる。

プロシージャル(Procedural)とは直訳すれば「手続き」であり、RSLにはまさにテクスチャを「手続き」として記述できる特徴を備えていた。

図は、CGの分野でプロシージャル技術が話されるときに例示される「煉瓦模様」をRSLで記述した例だ。

RSLによる煉瓦のプロシージャル・テクスチャ

思い返せば、3DMark03のFeature Testに出てきたPixelShader 2.0 Testはまさに大理石や木目の模様をプロシージャルテクスチャで生成したものであった

これは、煉瓦の幅と高さ、セメント(煉瓦の隙間に敷き詰められた白い部分)の幅などを設定することで、任意の煉瓦模様テクスチャを生成できるものとなっている。実際の適用時には、煉瓦とセメントの色が単色だとリアリティに欠けるので、周期ノイズ関数を媒介させて変化を盛り込んでいる(煉瓦の赤の明暗のばらつきがそれ)。プログラムソースの全リストはここで参照できるので、興味のある人は見てみて欲しい。

こうした作り手にスクリプトを書かせるアプローチで、コンテンツを生成させる手法は、最も基本かつローレベルなプロシージャル技術だといえる。

煉瓦の例で行けば、煉瓦テクスチャを生成するのはRSLのランタイムだが、煉瓦テクスチャそのものの実装は人間が行ったので、RSLそのものはプロシージャル技術というよりは、プロシージャル・ツールという位置づけになる。

こうしたスクリプト言語的なプロシージャル技術はテクスチャ生成だけでなく、3Dモデル生成向けのも開発されている。その代表例として「Generative Modeling Language」(GML)というものがある。

GMLでは3Dモデルの基本形状(プリミティブ)を言語で記述していくもので、算術関数と組み合わせていくことで多様かつ複雑な形状ほ構築できる。

四角形を用意し(1)、この四角形を水色で上へ引き伸ばして柱として、さらにこれを丸く切り取って円柱とする(2~3)。斜めにカットして(4~5)、今度はそこを起点として水平方向に円柱を引き伸ばす(6~7)

複雑な幾何学模様が組み込まれた3Dモデルの生成は手作業的なアプローチよりもGML的な手法の方が向いているといえる

より複雑な記述を加えていくことで幾何学的な模様を擁した立体モデルをも生成が出来る。難易度はそれなりに高い手法だが、正確な寸法で、しかも複雑な反復模様的な形状をもった3Dモデルを制作したいときには、人間が角度や座標を気にしながらモデリングするのと比べて効率が高いかもしれない。

なお、GMLについてより詳しく知りたい人はこちらを参照して欲しい。

最新のプロシージャル技術は、こうした基本的な「手続き型アプローチ」の、いわゆるスクリプト的なプロシージャル技術をベースに起きながらも、さらに発展させたものへと進化している。

代表的なものはスクリプト的プロシージャル技術をビジュアルインターフェース(GUI)に載せて応用性を付加したオーサリングシステムの形態だ。

その一例としては、米Darkling Simulations社の開発した「DarkTree」がある。

Darkling Simulation社製品は、日本ではオーク社が代理店を務めており、日本語化されたサイトが用意されているので興味がある人はそちらをご覧頂きたい

これはシェーダやテクスチャをGUIベースで開発できるシステムで、任意の構成部品を組み合わせ、そこに変調パラメータや"種"となるデータを与えることで自在なテクスチャやシェーダを生成できるものになっている。DarkTreeではユーザー(アーティスト)の使い方や感性次第視ではリアル系なものから幻想的なものを作ることができ、実際に既に商用ゲームや映画CGでの開発シーンにおいて実用化が行われている。

DarkTreeの操作画面。各コンポーネントを自在に繋ぎ合わせてプロシージャル・テクスチャを制作できる。GUIベースの直観的な操作でスクリプト作成に相当するプロシージャル・コンテンツが作れる仕組みになっているのだ

各コンポーネントでは入力された情報をどう変調するかを設定することが可能

こうしたノイズテクスチャを媒介して変調することで、算術合成に出がちな規則性を消して自然にリアルに見せることが出来る

任意のコンポーネントを繋ぎ合わせ、各コンポーネントで変調パラメータをセッティングしていくというDarkTreeのやり方は、映像と音というメディアの違いはあれど、前述したFM音源の発信器とパラメータ変調の関係によく似ている。

ゲームにおける"画"の制作はドット絵師主流から、3Dゲームの台頭で3Dモデラーという新しいアーティストを出現させた。

演算力無料時代のプロシージャル技術が当たり前となったとき、こうしたプロシージャル・ベースのオーサリングシステムを使いこなす技量がデザイナやアーティストに要求されることは間違いない。

デザイナ(アーティスト)とはこれまでは画が描ける人を指していたが、もしかすると、プロシージャル時代が到来した将来、コンピュータ上で動作する"画を描くプログラムを設計できる人"がデザイナと呼ばれることになってくるかもしれない。(続く)

プロシージャル技術が浸透していくことでデザイナとアーティストの立ち位置が変わる?

(トライゼット西川善司)