저는 게으름쟁이고 귀차니즘 대왕입니다

 

그래서 최대한 단순하게 찍어낼수 있게 만들자 를 컨셉으로 AI를 만들었습니다

 

그리고 외국 사이트에서 에셋을 산뒤 바로 찍어내서 프로토타이핑이 가능하도록 만드는게 궁극적 목표였습니다

 

 

 

일단 예제가 될  외국 스토어에서 산 skel mesh와 animset

 

 

 

 

그리고 간단한 AI 상태 정의  , 저기서 AI마다 약간씩 다른 파라미터를 가지게 됩니다.(Hover가 빠진다거나 take damage가 안되는 state가 있다거나)

 

Follow는 NaviMesh를 이용하고 Direct Follow는 일직선상에 있어 NaviMesh가 필요없는 경우의 이동 상태 입니다

 

그리고 Hover는

 

 

http://www.youtube.com/watch?v=iMBhjXs2W2I

 

이런식으로 주위 회전인데  방향, 스피드, 타겟과의 거리(반지름) ,다음 이동 위치의 이동 가능 판정(navi mesh이용)

인데 이건 뭐 다굴 안당하게 하려고 만든거라..

 

 

 

핵심은 Attack pattern인데

 

 

 

이런식으로 무기 위치에 소켓을 박아 놓고 Anim에 Attack Start와 Attack End에 notify를 걸어 Controller에 통지하도록 만든뒤에

 

통지를 받은 Controller가 Pawn의 Socket위치를 Trace해서 target을 찾아낸뒤에 타격 판정을 하도록 만들었습니다

 

그럼 이 anim이 실행될때  Anim의 속도,종류에 따라 타격 판정이 바뀌는 animation 주도적 판정 시스템이 된거 같긴한데..

(anim 속도가 엄청 빨라져 tick과 tick 사이의 위치 변화가 크면 그 사이의 판정이 안들어가는 오류가 있긴 한데

 그정도로 빠른 공격은 욕먹을거 같아서 안넣을꺼니까..)

 

이런 trace 판정 말고도 단순 스킬 공격도 notify형식으로 구현했습니다. 그리고 이렇게 구현한 anim들을

 

AI의 패턴에 의해서 실행하기 위해

 

 

 

이렇게 만들었습니다

 

여러가지 공격타입들을 만들고 , Melee Attack, Strike Attack, JumpAttack 등등등

 

Pattern List에서 시퀸스 대로 처리 되도록 했습니다( 랜덤하게도 처리가능합니다)

 

그리고 Pattern List에서 해당 Attack State가 실행되면

 

해당 Attack state는 해당 Anim을 실행시키고 위의 anim notify를 통해 controller에 통지하고 통지받은

 

controller는 state에 따라 타격판정을 하고..

 

 

뭐 요약하면 이런식이고 내부 코드는 여러가지 규칙(down이나 defense)가 들어가서 좀 더 복잡하긴 합니다;

 

 

디자이너가 할 일은 무기 위치에 소켓박고, Animation 모션마다 적절하게 Notify 넣어주고

 

기획자는 해당 AI 아키타입(위의 윈도우창 프로퍼티)에  해당 공격타입에 재생될 Anim Name, damage, attack range 뭐 등등등

 

만 넣으면 새로운 몬스터가 딱! 하고 나오는 내가 할 거 없는 시스템

 

이라고 생각했는데 난중에 생각해보니 전 혼자라 제가 다 해야되더군요..

 

디자이너, 기획자가 할일을 제가 다 해야되서 귀찮은거 빼면 괜찮은거 같긴 한데 또 고수님들 봤을땐

 

개선점이나 문제점이 있을거 같아서 올려봅니다

 

 

개선점이나 문제점 지적좀 해주세요~