유니티 보이드(Boid) 시뮬레이션 샘플 프로젝트(Sebastian Lague, Boids)

반응형

유니티 보이드(Boid) 시뮬레이션 샘플 프로젝트

보이드(Boids, bird-oid object)는 새 또는 물고기의 무리 짓기 행동(flocking behaviour)과 관련된 집단 운동을 시뮬레이션하는 분산 행동 모델로 세 가지 기본 규칙인 분리, 정렬, 응집을 적용하여 동물 무리의 자연스러운 움직임을 재현합니다.

분산 행동 모델(Distributed Behavior Model) 보이드(Boids) 

 

분산 행동 모델(Distributed Behavior Model) 보이드(Boids) 유니티 시뮬레이션 레퍼런스

분산 행동 모델(Distributed Behavior Model) 보이드(Boids) 유니티 시뮬레이션 레퍼런스분산 행동 모델분산 행동 모델(Distributed Behavior Model)은 다수의 개체가 중앙 제어 없이 각각 독립적인 로컬 규칙에

learnandcreate.tistory.com

1)아래는 유니티에서 세 가지 규칙( 분리, 정렬, 응집)을 적용하여 보이드 시뮬레이션을 구현한 Sebastian Lague의 샘플 프로젝트입니다.
https://github.com/SebLague/Boids/tree/master

 

GitHub - SebLague/Boids

Contribute to SebLague/Boids development by creating an account on GitHub.

github.com

https://youtu.be/bqtqltqcQhw

 

 

 

2)깃허브에서 프로젝트를 다운로드하고 유니티에서 데모씬을 열기합니다(Obstacles)

 

객체 집단의 보이드를 시뮬레이션할 환경

 

Spawner

3)Spawner는 씬에 반경내의 개수만큼 참조 보이드 객체 프리팹을 생성합니다.

 

Spawner에서 참조하는 보이드 프리팹(Boid) 을 무작위 위치에 생성

 

보이드 객체는 Boid 스크립트를 포함

 

BoidManager

4)BoidManager 스크립트는 게임을 시작할때  전체 보이드 객체를  보이드 설정(BoidSettings)으로 초기화

 

Boid의 초기화 함수(Initialize)

 

5)BoidSettings(ScriptableObject)는 개별 보이드의 분리, 정렬, 응집( Cohesion, Seperate, Target )를 포함하여  속도, 인지반경, 회피반경등을 설정합니다.



6)BoidManager  업데이트함수에서 보이드 시뮬레이션 업데이트( 컴퓨트 쉐이더 업데이트 , 개별 Boid 객체 업데이트)

 

개별 Boid 객체 UpdateBoid함수(SteerTowards 방향설정, 충돌회피,기타)

반응형

댓글

Designed by JB FACTORY