하나를 꺠우치면 열 혹은 그이상을 꺠우칠수있는 응용력이필요합니다...
그런고로 응용법을 생각해봅시다~

아래의 그림을 보면 '스트리트파이터4'라는 게임의 스크린샷인데
춘리라는 게임캐릭터가 공격을 시도하는 장면인데요. 이것을 가지고 예를 들어 설명해보겠습니다.
물론 스트리트파이터4는 3D로 제가 설명하는 방식의 충돌체크를 사용하지않습니다..
그리고 대부분의 2D격투게임들은 바운딩박스라는 방식으로 충돌체크를 합니다.
사용자 삽입 이미지
밑에 사진을 다시 보시면 원으로 충돌 체크를 할시에 필요한 원들이 보입니다.
부위별로 상하좌우 방어 공격 등등의 상태값을 가지겟죠. 그런데 이많은 원들을 항시로 체크해줄려면
프레임소모가 심합니다.
예를들면 충돌원을 1000개씩 가진 캐릭터가 떨어져있어도 1000000번의 충돌연산을 하게됩니다.
그런고로 아래사진처럼 가장큰원을 하나씩 잡고 충돌시 하위 계층의 충돌원과 충돌연산을 시켜주면됩니다.
사용자 삽입 이미지

한번 응용해봅시다.그래픽 불러오기 귀찮고 리소스생산해내기 귀찮으므로 원두개로 딸랑만들수있는 눈사람을 만들어보았습니다.
그리고 충돌체크시 충돌검사하는 갯수를 받아서 화면에 찍어주게하였습니다.



사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
[##_kaAmo_##]
Posted by 랜스.

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다


Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/28
  2. 알콜코더 2009/03/05 10:24  Modify/Delete  Reply  Address

    스파4같은 격투게임은 바운딩 스피어의 충돌안에서 또다시 폴리곤 충돌까지 계산하죠. ^^

    • 랜스 2009/03/06 03:51  Modify/Delete  Address

      오호 ~ 그렇군요!! 바운딩스피어검출방법도 그리 어려운게 아닌데 D3D로 스피어2개뛰어 놓고 한번 해봐야겠습니다>_<

  3. cretom 2009/03/12 18:51  Modify/Delete  Reply  Address

    스파4는 개발 초기엔 일반적인 3D게임(ex:철권)처럼 3차원적으로 판정을 했지만
    후기에 가선 2D게임이였던 시절의 느낌을 살리기 위해 2차원 처리로 바꾸었다고 하네요..
    일반적인 3D게임의 경우는 알콜코더님의 말씀이 맞습니다.

: 1 : 2 : 3 : 4 : 5 :