더 맛있는 Boids를 그리고 싶습니다.
Boids란?
コンピュータ上の鳥オブジェクトに以下の三つの動作規則を与え、多数を同時に動かして群れの振る舞いをシミュレーションする。
分離(Separation)
鳥オブジェクトが他の鳥オブジェクトとぶつからないように距離をとる。
整列(Alignment)
鳥オブジェクトが他の鳥オブジェクトと概ね同じ方向に飛ぶように速度と方向を合わせる。
結合(Cohesion)
鳥オブジェクトが他の鳥オブジェクトが集まっている群れの中心方向へ向かうように方向を変える。
인용 - 보이드_(인공생명) - wikipedia
참고문헌
도전과 개선
우선, 기본의 룰 대로에 코드를 썼습니다만 상당히 움직임이 단조롭게 되어 버려 뭔가, 좋은 느낌이 아니다. (단 그룹의 덩어리가 여러 방향으로 움직일 뿐이 되어 버린다.)
그래서 규칙을 추가하거나 수치를 이용하여 더 좋은 움직임을 하는 Boids를 만들 수 없는지 시도해 보았습니다.
실제로 한 일
1. 조인 규칙 변경
다른 새 오브젝트와 결합할지 여부를 때의 새 오브젝트 간의 거리에 따라 결정하도록 했다.
그렇게 함으로써, 그룹을 복수 할 수 있게 되고, 또한 거리에 따라서는 그룹의 결합이 행해져 복잡성이 증가한 것 같다.
2. 정렬 규칙 변경
군중 중심이 아니라 군중심에서 가장 멀리 떨어진 새 객체를 리더로 하여 그 쪽으로 향하도록 변경을 했다. 장면에 의해 리더가 대신, 보다 종횡무진으로 장면을 오가게 되었습니다.
3. 그룹의 새 개체 수를 활용
군이 클수록, 색이 짙어지도록 하고, 각각의 군이 가시화할 수 있게 해 보았다. (여기는 아직 개선의 여지가 있을 것 같다)
실제로 만든 것
nuuullnull/Unity-Boids
미래의 도전
아직도, 여러가지 룰의 추가로 재미있게 될 것 같은 생각이 들기 때문에, 값이라든지 잘 사용해 돌릴 수 있도록(듯이) 하고 싶다.
그리고 Unity, C#의 작법이 아직 제대로 잘 모르기 때문에 공부하고 싶습니다.
코드로 이상한 곳이라면 꼭 알려주세요!
Reference
이 문제에 관하여(더 맛있는 Boids를 그리고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/null_tokyo/items/886b359215d7ca756bf6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)