DirectX 11 다크사이더스3 모작
DirectX 11 / PhysX
제작기간 : 약 2개월
제작인원 : 개인
Dark Siders3
____________________________________________________________________________
구현 내용
1. 플레이어
[기본 이동]
-> Navi Mesh를 이용하여, 갈 수 있는 곳과 없는 곳을 판단하여 이동하도록 구현
갈 수 없는 곳의 경우 Sliding Vector를 이용하여 미끄러지도록 구현
-> 점프는 PhysX 중력을 이용하여 구현
이단 점프 시, LinearVelocity를 0으로 초기화 하여 이단점프 구현
[충돌]
-> PhysX의 RigidBody를 캐릭터의 뼈에 행렬을 곱해 부착하여, onContact를 이용해 충돌체크를 구현
-> FilterCallBack을 만들어서 특정 필터의 RigidBody만 충돌할 수 있도록 구현
[Root Animation]
-> 애니메이션 재생 시, 캐릭터의 위치를 Root 기준으로 이동시켜 자연스러운 움직임 구현
[회피 기능]
-> 플레이어 주변에 큰 박스를 부착하여, 해당 박스에 몬스터 공격 콜라이더가 충돌 됐을 때에 회피를 하면, 슬로우 모션 재생
[다중 피격 박스]
-> 플레이어에 다중 피격박스를 부착하여 피격 당한 방향에 따라 다른 애니메이션을재생
[공격]
-> 머리 색을 바꿀 때 마다 다른 무기가 발동 되도록 구현
-> 회피 후 시간을 누적 계산하여 일정 시간 이내 공격 시, 특수 공격 발동
-> 무기를 휘두를 때 무기의 크기에 따라 Vertex를 Map Unmap하여, 트레일 구현
[무기]
-> 노란색 머리일때 창, 보라색 머리일때 검이 발동됨
검의 경우, 대검과 쌍검이 콤보마다 번갈아 가면서 발동됨에 따라, 무리 콜라이더 박스를 생성 삭제하여 충돌하도록 구현
[인벤토리]
-> 소비 아이템을 소지 할 수 있는 인벤토리 (체력회복 소, 중, 대)의 아이템 스왑 및 사용 기능 구현
2. 몬스터
[거미 및 좀비]
-> 플레이어와의 거리를 계산하여 거리에 따라 이동, 공격, 점프공격 등을 구사하도록 구현
[보스]
-> 플레이어와 거리를 비교하여 일정 이하가 되면 보스가 활성화 되도록 구현
-> 피가 절반 이하로 될 시 변신과 함께 원거리 공격 패턴 추가
3. 상점
[상점 NPC]
-> 해당 필드 몬스터 레이어(List)의 크기를 체크하여, 몬스터가 전부 제거시에 NPC가 리젠 되도록 구현
리젠 시 플레이어와의 거리 체크를 통해 나타나는 모션, 들어가는 모션 재생
[카메라 이동]
-> 선형 보간을 통한 자연스러운 카메라 워킹 구현
4. 기타 및 이펙트
[디퍼드 렌더링]
-> 효과적인 광원 연산 및 드로우 콜을 줄이기 위해 디퍼드 렌더링 적용
[나침반 UI]
-> 카메라의 각도를 계산하여 나침반 UI 구현
[디졸브 효과]
-> 픽셀셰이딩을 통한 디졸브 효과 구현
[점 광원]
-> 플레이어 머리카락, 횃불 등에 점광원을 부착하여 발광 효과 구현
[지오메트리 셰이더]
-> 지오메트리 셰이더를 통해 이펙트, 촛불 등의 빌보드 구현