유니티에서 플로킹(Flocking)을 구현할 때 UnitySteer를 사용하면 손쉽게 구현할 수 있습니다. 아래는 UnitySteer 샘플을 적당히 수정해서 빌드한 것이며 영상의 움직임을 확인하시면 대략 어떤 것인지 감이 오실것입니다. 플로킹은 조타 행동(Steering Behavior) 규칙으로 구현하며 여기에는 분리(Separation), 정렬(Alignment), 응집(Cohesion), 회피(Avoidance) 등과 같은 규칙들이 있습니다. 집단 행동을 자연스럽게 표현하면서도 보다 알뜰하게 메모리를 활용할 수 있는 알고리즘이므로 게임에서 많은 유닛들이 자연스럽게 움직이는 것을 표현하기 위한 기술로 활용될 수 있겠습니다.
오늘 저녁에는 제가 참여하고 있는 유니티 게임 개발 스터디에서 발표를 하게 되어 있습니다. 발표 내용은 유니티 앵그리봇 게임에 등장하는 봇 3종에 관해서 설명하는 것입니다. 적 유닛이 플레이어를 발견하고 공격하고 공격받는 기능을 수행하는 AI(인공지능)가 주된 내용입니다. 보다 효과적인 실험과 설명을 위해 테스트에 필요한 것 외의 모두를 제거한 테스트 씬을 만들었고 아래와 같이 실행됩니다. 지루하지 않으면서 보다 효과적으로 분석을 하려면 분해를 해서 망가뜨려 보고 고장난 부분을 수정해보는 것이 좋습니다. 소스 코드만 들여다 보면 지루해지기 쉬우며 심지어 졸음이 오기도 하죠.^^
게임에 등장하는 봇은 3종류인데 덩치가 큰 봇은 일정 구역을 순찰하고 적이 순찰 지역을 침범하거나 플레이어가 공격을 하면 반응하게 되며 미사일도 발사합니다. 또 다른 소형의 봇은 근처에 다가가면 플레이어를 향해 자폭 공격을 하도록 되어 있으며 날아다니는 작은 봇은 감지 구역 내에 들어가면 갑자기 나타나 근접 공격을 하게 됩니다. 비교적 복잡하지 않은 AI 구성으로 차근 차근 따져본다면 어렵지 않게 파악할 수 있을 것 같네요. 이러한 AI 개발 노하우를 내 것으로 만들기 위해서는 눈으로 익히는 것 보다는 직접 비슷한 형태의 봇을 개발해보는 것도 방법이며 시간을 내서 그렇게 해봐야겠습니다.
댓글을 달아 주세요
어제 저녁에는 애용하고 있는 유니티 플러그인중에 하나인 iTween 샘플을 좀 수정해서 3D 카메라 워킹 모션 그래픽을 빌드해봤습니다. 오늘 여기에 텍스쳐 UV 애니메이션을 이용해서 배경 이미지 스크롤 처리를 해봤습니다. 텍스쳐 UV 애니메이션을 활용해서 동영상도 모델에 입히는 것이 가능한데 적당한 영상을 찾으면 적용해봐야겠어요. 참고로 유니티 3.5 버전에는 작업물을 플래시로 빌드할 수 있는 기능이 추가되어 있어 플래시로 개발 하던 영상 제작을 유니티로도 할 수 있게 되었네요. 물론 플래시 게임 제작도 가능해지는 것이죠.


댓글을 달아 주세요