コンピュータ内で生物化学反応を計算する? 「反応拡散」系のプロシージャル技術

プロシージャル・テクスチャの生成手法には、この他、「Reaction-Diffusion」法というものがある。なお、Reaction-Diffusionには訳語として「反応拡散」という言葉が当てられている。

これは画素(テクセル、ピクセル)にたとえて単純化して説明すると、各画素において、周辺画素に何かの影響を及ぼすことを計算し、同時に周辺から自分が何かを及ぼされる計算を単位時間ごとに計算し、これを反復的に繰り返すことで、奇妙な模様の出現を期待する手法になる。場合によっては、その「奇妙な模様」が現れずに不発に終わることもある。 考え方としては、ボクセルベースの流体物理シミュレーションによく似ている。

下図は、アラン・チューリング(Alan Mathison Turing)が発表した「チューリング反応拡散方程式」、自己増殖/自己複製する系を表した「ギーラー・マインハルト(Gierer-Meinhardt)反応拡散」、「ゲイリー・スコット(Gray-Scott)反応拡散」などの、生物化学の研究分野でも研究されている代表的な反応拡散系の生成例だ。

チューリング反応拡散の例。SOFTOLOGYより

ギーラー・マインハルト反応拡散の例。SOFTOLOGYより

ゲイリー・スコット反応拡散の例。SOFTOLOGYより

ギンズバーグ・ランダウ反応拡散の例。SOFTOLOGYより

反応拡散によって生成されたテクスチャは、非常に生き物的というか、気持ち悪い模様となり、これを法線マップ化することで、かなりユニークで不気味な表現が出来るかもしれない。

下は、反応拡散系のプロシージャルテクスチャを求めていくまでのアニメーションだが、パラメータや拡散条件と反応条件の設定によっては収束せずに発散したりループしてしまったりする。奇妙な模様に落ち着かず、でたらめな模様変化を無限に繰り返すだけになってしまうケースもある。

反応拡散のプロシージャル・テクスチャは非常に面白い模様が出てくるが、実際のところ、とても制御が難しいとされる。また、結果は実行し終わるまでわからないため、トライ&エラーで思い通りにデザインがしづらいという問題点も抱える。

(※画像クリックでアニメーションGIFが開きます) 「LABYRINTHINE PATTERN 」反応拡散系の研究者、Aric Hagberg氏のサイトより

(※画像クリックでアニメーションGIFが開きます) 「SPOT SPLITTING」反応拡散系の研究者、Aric Hagberg氏のサイトより

(※画像クリックでアニメーションGIFが開きます) 「SPIRAL BREAKUP 」反応拡散系の研究者、Aric Hagberg氏のサイトより

動物の美しい毛並み模様や昆虫の美しいデザインの羽根模様などは、「どうしてこんな不思議な模様が自然にあるのか」と奇妙に思えてしまうものだが、この反応拡散モデルを利用すると、そうした生物の模様も表されることがわかってきている。植物がL-SYSTEMで表現できることがわかってきていることは本連載第82回で取りあげたが、生物についてもいくつかのものは反応拡散系で説明がつくものがあるとされる。

下図は、動物の毛並みや昆虫の模様について反応拡散系を用いてプロシージャル生成したテクスチャの例だ。

反応拡散系のプロシージャル・テクスチャは動物の毛並みや昆虫の模様も再現可能?

取り扱いは難しい反応拡散系プロシージャル技術だが、その分、得られる結果については面白いものが多く、場合によっては人間の発想を超越したような変な模様も現れる。うまく手懐けることができれば、エイリアンチックなクリーチャーの皮膚表現や、エイリアンの宇宙船の外装表現などなど幅広く活用できそうだ。また、発散してちゃんとした模様が出ない場合でも、その仮定が奇妙で面白ければ、アニメーション・テクスチャとして利用することもできるだろう。(続く)

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