テレビやディスプレイなどの映像表示機器がハイビジョン化し、PCやゲーム機によって映し出される映像に対し、ユーザーはとてつもなく高い期待値を持つようになってきている。

こうした時勢におけるゲーム開発、コンピュータベースのアニメーションなどのCG制作おいて、昨今、課題となってきているのは素材作成に関わるコストと制作負荷の増加問題だ。ユーザーの目が肥え、ユーザーの映像表示機器も高品位化しているため、いまや、この部分に、ごまかしは利かなくなっている。かといって開発に使える予算は以前からそうは変わらない。

そこで、注目されてきているのは、高品位な素材群を人間の手でゼロから作るのではなく、コンピュータの力だけで作れないか。あるいはそれがダメならばコンピュータの性能で制作をアシストしてもらって開発効率を上げられないか……そんな技術を業界は求め始めてきている。いわば「コンテンツ制作の自動化」、あるいは「コンテンツ制作の算術的支援」を実現出来ないか、ということだ。

CPUをはじめとするプロセッサは、マルチコアからメニーコアへと進化していくことが確実視されており、こうしたプロセッサの性能進化はFLOPS指標にだけ限定して言えば「ムーアの法則」を超えているとも言われ始め、最近ではプロセッサメーカーの担当者はたびたび「Compute(Computing) is free now」(今や演算は無料である)というキーワードを使うようになってきている。

この莫大な演算力を、前述の「コンテンツ制作の自動化」「コンテンツ制作の算術的支援」に対して有効利用できるかもしれない注目の技術が、最近しばしば耳にすることが増えてきた「プロシージャル技術」(Procedural Techniques)ということになる。ちなみに、綴り的にはプロセデュラルだが、英語発音としてはプロシージャルの方が近い。

久々の再開となる、本連載だが、今回からはしばらく、このプロシージャル技術について見ていきたい。なお、内容的にはCEDEC 2008にて執り行われた北陸先端科学技術大学院大学の宮田一乘教授の講演「プロシージャル技術の動向」についてのレポートを連載用にまとめ直したものになる。今後、重要度を増すこの技術について、一過性の強いイベントレポートではなく、連載の形で残しておきたいと思い直したからである。

プロシージャル技術とはなにか?

基本的なことだが、プロシージャル技術とは何なのか、まずは、ここからだ。

プロシージャル技術とは、一言でいうならば、"人間が見て興味を持てる成果物"を、コンピュータ上で実装したアルゴリズムだけで作り出すテクニックということになる。

8ビットパソコンが全盛時代には、マンデルブローのフラクタル図形が流行したことがあった。これは、数式の組み合わせだけでコンピュータに模様のようなものを描かせるだけだが、その描画結果は、複雑であり、どことなく生物的であり、「何か意味が隠れているのではないか」と人間が興味を抱けるようなものであった。

学術的には、プロシージャル技術の定義、そしてその特長は以下の四点であるとされる。

プロシージャル技術の特長

形状や模様をアルゴリズムでデザインする

人間の手で描かずとも、プログラムの実行結果として「形状」や「模様」が得られるのがプロシージャル技術の用語の定義でもあり、同時に最大の利点でもある。

コンテンツをいわばプログラムとして表現しているために、固定的な膨大なデータを持たずに、必要なときに必要な大きさのコンテンツを取り出せる。とすれば、データ量的な観点からすれば情報が圧縮されている……といえる。

パラメータの変更で、多くのバリエーションが得られる

コンテンツをプログラムとして表現しているので、このプログラムに与えるパラメータを変更することで多様なコンテンツが得られる。

単一のプログラムで膨大な種類のコンテンツが得られると言うことであれば、やはりここでも、データ量的な観点からすれば情報が圧縮できている……ということになる。

形状や模様を短時間に自在に生成できる

プロシージャル技術は、一度、目的のフルゴリズムを実装できてしまえば、あとはパラメータを変えるだけで多様なコンテンツを自動的に得られることになる。これはコンテンツ制作における人的な負荷の低減に繋がる技術といえる。

詳細度を制御可能である

出力するコンテンツの解像度(精細度)は、パラメータの制御自体で細かくも粗くも出来る。すなわち、解像度別のデータを持たずとも自発的にスケーラビリティを持つことになる。

弱点(課題というべきか)も残されている。

プロシージャル技術の弱点(課題)

設計の難易度が高い

アーティストの知性や美的センスで描かれるコンテンツとは違い、開発者がそのコンテンツの特徴を把握、モデル化してアルゴリズムとして実装しなければならないので開発は難しい。

試行が大変である

実装したアルゴリズムが希望するコンテンツを作り上げてくれるかどうかは、ある意味、試しては確認を繰り返すトライ&エラーの作業になりやすい。

時間が掛かる

複雑な計算を多用する高度なアルゴリズムではそれだけ計算時間を要する。生成して利用しようとするコンテンツを取り出せるまでの所要時間が余り掛かってしまっては使いにくい。プロシージャル技術も、他のソフトウェアと同じように、プロセッサパワーとパフォーマンスのバランスが重要なテーマとなる。(続く)

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