본문으로 건너뛰기
김도현

Boids 무리 짓기

세 규칙으로 만든 무리

Boids

Boids는 1986년 컴퓨터 그래픽 연구자 크레이그 레이놀즈(Craig Reynolds)가 고안한 인공 생명 시뮬레이션이다. "bird-oid object"를 줄인 이름 그대로, 새 한 마리 한 마리의 움직임을 지정하지 않고도 새떼·물고기떼·양떼 같은 군집 행동을 재현하는 것이 목표였다.

각 보이드는 화면 전체나 무리의 형태를 알지 못한다. 자신의 시야 범위 안에 있는 이웃만 관찰해서 매 순간 속도를 조금씩 조정할 뿐이다. 이 지역적인 규칙만으로 전역적인 패턴이 나타난다. 전체 무리가 뭉쳤다 흩어지고, 한 몸처럼 방향을 트는 것처럼 보인다.

규칙

레이놀즈는 보이드의 조향을 단 세 가지 규칙의 합으로 정의했다.

  • 분리(Separation)는 가까운 이웃과 부딪히지 않도록 멀어지는 방향으로 조향한다. 아주 가까운 거리의 이웃에게서만 반응하기 때문에 무리가 한 점으로 뭉쳐 붙는 것을 막는다.
  • 정렬(Alignment)은 시야 범위 안 이웃들의 평균 속도 방향을 따라가도록 조향한다. 이웃과 같은 방향, 같은 속도로 날게 만들어 무리가 흩어지지 않고 한 방향으로 흘러가게 한다.
  • 응집(Cohesion)은 시야 범위 안 이웃들의 평균 위치, 즉 무리의 중심을 향해 조향한다. 무리에서 너무 멀리 떨어지지 않도록 잡아당긴다.

세 규칙은 매 프레임 동시에 계산되어 하나의 조향 벡터로 더해진다. 어느 하나가 다른 둘을 압도하지 않도록 세기를 조절하는 것이 자연스러운 무리 움직임의 핵심이다.

시각화

아래 데모는 30마리의 보이드가 세 규칙만으로 무리를 이루는 모습이다. 화면 가장자리에 가까워지면 규칙을 어기지 않는 선에서 서서히 방향을 틀어 안쪽으로 돌아온다.

관련 글