挙動の解説

脅威への反応、壁ぞいの移動、そして背後にある昆虫学の研究を紹介します。

GOKIs の住人は決まったアニメーションを再生しているわけではありません。GPU が毎フレーム各個体の状態を評価し、行動を選び、位置と速度を更新しています。挙動のモデルは、ゴキブリの逃走行動に関する査読論文を元に設計されています。

何が逃走の引き金になるのか

マウスカーソルは捕食者として扱われます。各個体は毎フレーム、カーソルとの距離を測ります。

  • 脅威半径: 180 ピクセル。この範囲内に入ったカーソルが脅威と判定されます。
  • 2 段階の反応: 弱い刺激は 警戒 を引き起こします (一旦立ち止まり、状況を見極めます)。強い刺激は 逃走 を引き起こします。

この 2 段階モデルは、Camhi & Nolen (1981) のゴキブリ巨大繊維反応に関する研究に由来します。

逃走の動きかた

逃走するとき、住人はランダムな方向に走るわけではありません。脅威に対する 4 つの好ましい逃走角度 から 1 つを選びます。

角度意味
90°垂直方向への突進
120°斜め後方への離脱
150°鋭く反対方向へ
180°真後ろへ直線的に退避

逃走のうち 約 90% は脅威から離れる方向ですが、残り 10% は意表を突いて脅威に向かう急角度の動きになります。この比率は Domenici et al. (2008) の観察と一致します。

壁ぞいの移動

ゴキブリは何かに触れているときに安心します。GOKIs ではこれを thigmotaxis (壁接触への先天的な好み、個体ごとに値が異なる) としてモデル化しています。逃走中でない住人は次のように振る舞います。

  • 最も近い画面の端 (またはテキスト境界、後述) に向かって移動します。
  • 端に到達すると、その縁に沿って動きます。
  • 角の付近に長く滞留します。

各個体は独自の性格を持っています。生成時に thigmotaxis、boldness (大胆さ)、activity (活発さ) の 3 つの値がガウス分布からサンプリングされます。そのため、2 匹として同じ振る舞いをする個体はおらず、何匹に増やしても見飽きない動きになります。

サバイバル行動とデイリー行動

内部のステートマシンは行動を 2 種類に分けています。

  • サバイバル行動 — ALERT (静止して警戒) と ESCAPE (逃走)。脅威によって発動し、ほかのあらゆる行動より優先されます。
  • デイリー行動 — REST (疲労回復のための休息)、WALL_FOLLOW (端ぞいの移動)、EXPLORE (オープン領域の探索)、SEEK_WALL (端に向かって移動)。脅威が近くにないときに、ユーティリティスコアで選ばれます。

ユーティリティスコアは、現在の疲労、接触欲求、直近の行動履歴 (直前の行動を続けやすい傾向)、個体ごとの性格を加味して算出されます。

テキスト境界

画面の境界に加えて、“GOKIs” という文字の形を SDF (signed distance field) として生成し、もう一つの壁として扱っています。住人はテキストの輪郭も壁として認識するため、暇なときは文字の中に集まる性質があります。長方形の画面境界だけで充分という方は、メニューバーの テキスト境界を表示 をオフにしてください。

参考文献

  • Camhi, J. M. & Nolen, T. G. (1981). Properties of the escape system of cockroaches. Journal of Comparative Physiology.
  • Domenici, P. et al. (2008). Cockroaches keep predators guessing by using preferred escape trajectories. Current Biology.