■[Flash]群行動

爺は、蟻とか、蜂とかの「群れとしての行動」にすごく興味がある。やつらは、個体としては、それほど考えているとは思えないのだが、集団になると、集団の中の自分の役割を見つけ、秩序が生まれ、まるで、集団が意思を持ったような「群行動」を取る。

上のFlashは、、単純な線で「小魚」をイメージしたものだが、群行動の数理モデルを適用すると、なんとなく、小魚のように見えなくもない^^; ここで言う「群行動」とは、どんなものなのか?

「群行動」のもっとも基本になるのは、自己と他者の「距離感」だと爺は考える。蟻は一定の距離を置くことで、渋滞を回避しているとか、渡り鳥のような幾何的な飛行形体は、空気抵抗をもっとも少なくしているという「システム化サイコー」と叫ぶCMがあるが、ま、大きく分けて、個体ごとの距離が縮まると、一定の距離を保とうとして、互いが遠ざかる「分離」という力が働き、されど、群れとしての方向ベクトルや、周囲の速度に、自分を合わせる「整列」という力も働く。

人間の距離感でたとえると「恋人」と言えば、30cm未満。友達は、少なくとも30cm以上の距離を保つ。しかし、満員電車に詰め込まれると、見も知らぬ人と距離感「0」の不自然な密接状態に置かれることになり、自分の空間を確保したい、他者から「離れたい」というストレスがたまる。それは、本能的なことだと思う。

下記で紹介する「詳解 ActionScript3.0 アニメーション」は「オライリージャパン」の本で、Javaや、Perlなどのスクリプトを書く人なら、知らない人はいないと思うけれど、数々のコンピュータ・プログラミングの本を出している。

本書では「群行動」を乗り物の「操舵行動」として、追求(seek)、逃避(flee)、到着(arive)、追跡(pursue)、回避(evade)、徘徊(wander)、物体回避(object avoidance)、分離(separation)、整列(alignment)に分けて解説し、FlashのActionScriptで、これらを実現するための実装可能なクラスのパッケージとして提供してくれている。

じつは、冒頭のFlashは、99.99%、本書に掲載されているパッケージによるもので、爺のしたことは、キャラクタを「乗り物」から「小魚」に変え、群行動の適用法則のごく僅かな一部分を変更、背景画像を追加したことぐらい^^;

本書には、他にも大量のオブジェクトどうしの衝突判定をどのようにしたら実現できるか、疑似的な3D効果を生む等角投影の方法など、Flashでアニメーションやゲームを作りたい、学びたい人には必携の本だ。

ActionScript 3.0アニメーション
詳解 ActionScript 3.0アニメーション
―衝突判定・AI・3DからピクセルシェーダまでFlash上級テクニック―

Keith Peters/著
相川愛三/翻訳
発行:オライリージャパン
発売:オーム社