>   >  これが64KB?! デモシーンを支えるプロシージャル技術
これが64KB?! デモシーンを支えるプロシージャル技術

これが64KB?! デモシーンを支えるプロシージャル技術

同じ距離関数のパラメータ変化で実現した金属とサイバー空間

金属のビジュアルとサイバー空間は、同じ距離関数のパラメータ変化によって実現しています。ライティングのパラメータなど、形状以外の変化も行うことで、まったく異なる雰囲気を醸し出しました。前述した『WORMHOLE』のトンネルと同じアプローチですが、本作では、Mandelboxをベースにしました。では、『WORMHOLE』でも利用したfoldRotateを利用して、万華鏡の要領で情報量を増やしました。

▲金属のビジュアル


▲サイバー空間

Mandelboxのスケール変化とライティング

▲Mandelboxも、Menger Spongeと同様にIFSによって距離関数として定義できるフラクタル図形です。【左上】【右上】【左下】では、IFSのスケールのパラメータを徐々に変化させることで、空間の密度が下がって、より複雑なディテールに変化していく様子が見て取れます。【右下】は【右上】のエッジを光らせて、さらにRoughnessやMetallicのライティング用のパラメータを調整したバージョンです。エンジンの構成を単純化し、容量を削減するために、本作ではフォワードレンダリングを採用しました。PBRのライティング処理を実装したので、物理ベースのマテリアルのパラメータを設定できます。作品中のサイバー空間は、【右下】の一部分をズームアップして拡大したり、パラメータをさらに調整してつくり出したものです

Revisionロゴの生成

▲Revisionロゴは、【左】の2Dのドットのパターンを極座標に変形して生成しました。シェーダを用いると座標の変形は数行で実装できるので、ロゴの容量は圧縮前でも300バイト程度です/【右】極座標に変形していくアニメーションの様子


▲本作の最終カット

fBMによる地形のバリエーション生成

本作の後半のグリーティングでは、自分が特に尊敬しているデモ制作グループをイメージした惑星が合計14パターン登場するので、効率の良いバリエーション生成のしくみが必要でした。これらの惑星の地形もプロシージャルに生成しています。

▲【左】fBMテクスチャ。fBM(Fractal Brownian Motion)は「フラクタルノイズ」とも呼ばれ、周波数の異なるノイズを重ね合わせることで生成できます/【右】fBMテクスチャをハイトマップとして利用したシンプルな惑星です。このままだとバリエーションに乏しいので、あの手この手を駆使してアレンジしました


▲【左】ハイトマップのスケールを大きくして荒い山脈のようにアレンジした惑星です/【右】UVをU方向のみに引き伸ばした惑星です


  • ◀UVを歪めて禍々しくアレンジした惑星です。これらはドメインワーピングと呼ばれるテクニックで、fBMの引数のUV座標にfBMを足して、fBMがネストした関数を定義することで実装できます。ハイトマップのスケール、引き伸ばし、ドメインワーピングをパラメータとして、惑星ごとに設定することで、効率的にバリエーションを生成しました


▲『WORMHOLE』に登場する海と雲も、fBMをベースにしてプロシージャル生成しました。このように、fBMは自然界に存在する陸・海・空をリアルに再現するための必須テクニックと言えます



  • 月刊CGWORLD + digital video vol.266(2020年10月号)
    第1特集:バーチャルイベント最前線
    第2特集:動物CGから紐解く美術解剖学との付き合い方
    定価:1,540円(税込)
    判型:A4ワイド
    総ページ数:128
    発売日:2020年9月10日
    cgworld.jp/magazine/cgw266.html

特集