Boids シミュレーション — パラメータ説明

このページは Boids(群れ振る舞い)の主要なチューニング用パラメータについて、分かりやすく説明するものです。各パラメータがシミュレーションに与える影響、典型的な値域、調整時の注意点を記載しています。

VISION

意味:視認半径(影響範囲) 型:実数(ピクセル)

ある個体(Boid)が仲間を「認識」して群れの振る舞い(凝集や整列)に影響を受ける距離(半径)です。視認半径より内側にいる他個体を近傍として扱います。

典型的な値30〜200(環境サイズやBoid密度による)
効果大きくするとより多くの仲間を参照して滑らかな大規模挙動になる。小さくするとローカルな群れが形成されやすく、小さな塊が分かれやすい。
調整のコツ密度が低いなら大きめ、密度が高いなら小さめ。視認半径を大きくしすぎると反応が遅く、群れが過度にまとまりやすい。
Tip:視認半径と速度(max speed)を同時に調整すると安定した群れを作りやすいです。

SEPARATE_R

意味:分離(避け)半径 型:実数(ピクセル)

衝突回避のために近接していると判断する距離です。ある Boid が他の Boid とこの半径以内に入ると、互いに離れようとする力(分離ベクトル)が働きます。

典型的な値5〜40(Boid の描画サイズに依存)
効果大きくすると個体同士がより早く離れ、重なりが減るが群れが荒くなる。小さすぎると重なりや衝突が生じやすい。
調整のコツBoid の描画サイズの 1.5〜3 倍程度を初期値にすると見た目の重なりが少なくなる。
Tip:視覚的重なりが気になる時はSEPARATE_Rを最初に増やしてみてください。

SEPARATION_K

意味:分離(避け)重み係数 型:実数(倍率)

分離ベクトル(近接個体から離れる方向)に掛ける割合を示します。分離の強さを決める係数で、この値が大きいほど強く離れる力が働きます。

典型的な値0.01〜0.5(アルゴリズムと単位系に依存)
効果値が大きいと衝突回避が強くなり、個体間の間隔が広がる。値が小さいと衝突回避が弱く、重なりや追突が発生しやすい。
調整のコツSEPARATE_R と合わせて調整する。分離が強すぎると群れがまとまらなくなるので徐々に増減して確認する。
Tip:分離の"硬さ"を変えたい場合は、SEPARATION_K を小刻みに変えて挙動を観察してください。

COHESION_K

意味:凝集(群れの中心へ引き寄せる)重み係数 型:実数(倍率)

個体が近傍の仲間の位置の平均(群れの重心)に近づくように働く力の強さを決める係数です。群れのまとまり(中心へ集まる傾向)を制御します。

典型的な値0.001〜0.05
効果値が大きいと個体はより早く群れの中心に向かう。小さいと群れが分散しやすく、まとまりが弱くなる。
調整のコツALIGNMENT_K(整列)とバランスを取る。凝集が強すぎると全体が一点に集まるような不自然さを生むことがある。
Tip:COHESION_K を微小値から試し、群れの「まとまり具合」を見ながら上げていくと安定します。

ALIGNMENT_K

意味:整列(向きを揃える)重み係数 型:実数(倍率)

近傍の仲間の平均速度(向き)に自分の速度を近づける(向きを揃える)強さを制御する係数です。群れの滑らかな同方向移動を生みます。

典型的な値0.01〜0.2
効果値が大きいほど個体は仲間と同じ方向に揃いやすく、整った流れができる。小さいと個体ごとの向きのばらつきが残る。
調整のコツCOHESION_K と合わせて調整する。高い整列と低い凝集で「流れる帯」のような群れ、逆に高い凝集で塊になる傾向が出る。
Tip:速度(max speed)や視認半径と一緒に調整すると、より自然な群れにできます。

まとめ(調整ワークフロー)

  1. まず Boid 数や画面サイズ、Boid 表示サイズを決める。
  2. 視認半径(VISION)を環境スケールに合わせて設定(密度に応じて増減)。
  3. 分離半径(SEPARATE_R)を Boid の見た目に合わせて設定。重なりが気になれば増やす。
  4. COHESION_K(まとまり)と ALIGNMENT_K(向き揃え)を調和させる。まず小さめで試し、徐々に増やす。
  5. SEPARATION_K で衝突回避の強さを調整。見た目の間隔を見ながら増減。