0.群集シミュレーション


0.はじめに

更新が遅れ、さらに予告と内容も変わってしまいましたが、
先日行われたCEDECで芝村裕吏さんの言っていた群集シミュレーションを試しに作ってみたので紹介してみます。

1.内容

今回はテストということもあり非常に単純な環境でのシミュレーションになっています。
空間上に配置されたオブジェクトが相互にパーソナルスペースを考慮しながら、
ランダムな間隔でランダムな位置に動き回るという内容になっています。

2.パーソナルスペース

wikiによると、
「人間個人の心理に依存した、自己に付随する部分として認識される空間であり、
性別・年齢・個人的経験に左右され、他者との親密さ、よそよそしさ、近づきすぎによる危機感や焦燥感の認識を決定する。」
と書いてありました。
今回は単純にキャラクタが他のキャラクタとの間にとりたい物理的な距離として扱っています。

3.実装

実装も単純に存在しているオブジェクト間の距離をパーソナルスペースより小さくならないように、
総当りで調べて、移動する必要があれば移動量を用意し、もし移動中であればさらに移動量を合成しているだけです。
そのおかげで非常に実行速度が遅くなっています。

4.結果

単純な環境でのシミュレーションな為結果も今いちピントこない部分もありますが、
ためしに作ってみたPCの嫌われモードで他のキャラクタを追いかけている時など時折、
らしさも感じられました。
今回のソース。
戻る。