캐릭터 공격 판정
충돌 채널의 설정
- 캐릭터 액션의 충돌 판정
월드가 제공하는 충돌 판정 서비스를 사용
월드 내 배치된 충돌체와 충돌하는지 파악하고, 충돌한 액터 정보를 얻을 수 있음
월드는 크게 세 가지의 충돌 판정 서비스를 제공함
- LineTrace: 지정 방향으로 선을 투사하여 충돌 파악
- Sweep: 도형을 투사하여 충돌 파악
- Overlap: 지정 영역에 충돌 파악

- 트레이스 채널과 충돌 프로필 생성
'편집-프로젝트 세팅-콜리전'
- 액션 판정을 위한 트레이스 채널의 생성: ABAction, 기본 반응은 무시

- 캐릭터 캡슐용 프로필: ABAction 트레이스 채널에 반응, 오브젝트 타입은 Pawn

- 기믹 트리거용 프로필: Pawn에만 반응하도록 설정, 오브젝트 타입은 WorldStatic

공격 판정의 구현
- 월드 트레이싱 함수의 선택
세 가지 카테고리로 원하는 함수 이름을 얻을 수 있음
{처리방법}{대상}{처리설정}
- 카테고리 1: 처리 방법
- 카테고리 2: 대상
- Test: 무언가 감지되었는지를 테스트
- Single 또는 AnyTest: 감지된 단일 물체 정보를 반환
- Multi: 감지된 모든 물체 정보를 배열로 반환
- 카테고리 3: 처리 설정
- ByChannel: 채널 정보를 사용해 감지
- ByObjectType: 물체에 지정된 물리 타입 정보를 사용해 감지
- ByProfile: 프로필 정보를 사용해 감지
- 캐릭터 공격 판정의 구현
캐릭터 위치에서 시선 방향으로 물체가 있는지 감지
작은 구체를 제장하고 시선 방향으로 특정 거리까지만 투사 (Sweep)
하나의 물체만 감지 (Single)
트레이스 채널을 사용해 감지 (ByChannel)
-> {Sweep}{Single}{ByChannel}
- 물리 충돌 테스트
디버그 드로잉 함수를 사용해 물리 충돌을 시각적으로 테스트
- 90도로 회전시킨 캡슐을 그리기
- Origin
- HalfHeight
- Radius


실습코드
https://github.com/dnjfs/ArenaBattle/commit/72b0514a8cefde6b39fcf5bd75e52663b57e23c7
-
ABAction 트레이스 채널 추가
EngineTypes.h에 미리 예약된 ECC_GameTraceChannel1 사용 (총 18개까지 추가 가능)
-
AnimNotify 상속하여 구현
애니메이션 몽타주에 애님 노티파이 추가하면 몽타주 실행 시 해당 클래스의 Notify() 함수 실행
-
인터페이스로 대상 검사
다중 상속으로 캐릭터 클래스에 인터페이스도 상속받게 하여 캐스팅으로 객체 검사
인터페이스에 추가했던 순수 가상 함수는 상속 시 구현
캐스팅이 정상적으로 되어 객체가 유효하다면 인터페이스를 가지고 있다는 의미니 인터페이스의 함수 호출