분산 행동 모델(Distributed Behavior Model) 보이드(Boids) 유니티 시뮬레이션 레퍼런스
분산 행동 모델(Distributed Behavior Model) 보이드(Boids) 유니티 시뮬레이션 레퍼런스
분산 행동 모델
분산 행동 모델(Distributed Behavior Model)은 다수의 개체가 중앙 제어 없이 각각 독립적인 로컬 규칙에 따라 행동하면서도 집단으로서의 전체적인 행동을 만들어내는 시스템을 의미합니다(집단의 각 개체가 개별적으로 행동하면서도 집단의 조화로운 움직임을 이루는 원리)
보이드(Boids)
보이드(Boids, bird-oid object)는 새들의 무리 짓기 행동(flocking behaviour of birds)과 관련된 집단 운동을 시뮬레이션하기위해 Craig Reynolds가 개발한 인공 생명 프로그램(artificial life program)입니다. 보이드는 분산 행동 모델의 대표적인 예로 개체들이 서로 상호작용하면서 나타나는 집단의 복잡한 행동을 간단한 규칙으로 구현해내는 것이 핵심입니다.
Flocks, Herds, and Schools:A Distributed Behavioral Model
https://www.cs.toronto.edu/~dt/siggraph97-course/cwr87/
가장 간단한 보이드 세계에 적용되는 세가지 규칙
보이드는 세 가지 기본 규칙인 분리, 정렬, 응집(separation, alignment, cohesion)에 따라 개체(보이드)들의 행동을 정의하고 동물 무리의 자연스러운 움직임을 재현합니다.
https://en.wikipedia.org/wiki/Boids
분리(Separation)
보이드는 너무 가까이 있는 이웃을 피하려고 움직입니다(근접회피) 이 규칙은 서로 충돌을 방지하는 데 도움이 됩니다.
정렬(Alignment)
보이드는 가까운 이웃의 방향을 따라서 움직이려고 합니다. 이를 통해 집단의 동기화된 움직임이 발생합니다.
응집(Cohesion)
보이드는 무리의 중심으로 이동하려고 합니다. 이를 통해 무리가 모여서 움직이게 됩니다.
Coding Adventure: Boids
유니티(Unity) 엔진을 사용하여 보이드를 시뮬레이션하고 보이드의 기본적인 행동 규칙에 대한 설명을 제공합니다. 보이드의 자연스러운 행동을 결정하는 분리, 정렬, 응집의 세 가지 원칙, 황금 비율과 피보나치 수열이 점 분포와 곡선 생성에 활용되는 방법, 장애물 회피와 목표 설정 실험을 통해 보이드들이 실제 환경에서도 잘 작용하는지 확인등
Boids 프로젝트
https://github.com/SebLague/Boids/tree/master
셰이더로 물고기 수영 애니메이션을 만드는 방법
https://www.bitshiftprogrammer.com/2018/01/how-to-animate-fish-swimming-with.html
https://github.com/albertomelladoc/Fish-Animation/blob/master/FishAnimation.shader
Points on a sphere
https://stackoverflow.com/questions/9600801/evenly-distributing-n-points-on-a-sphere/44164075#44164075