초보 코린이의 성장 일지

UE4 충돌 및 인터페이스 활용 본문

언리얼

UE4 충돌 및 인터페이스 활용

코오린이 2023. 1. 13. 14:47

인터페이스를 활용하여 동작들을 관리

블루프린트 -> 블루프린트 인터페이스 생성 -> 함수 추가 및 설정

 

구조체도 하나 생성해주고 지정해준다.

 

Enemy로 가서 상단의 클래스 세팅을 누른 후 부모 클래스를 지정해주고 인터페이스 만든 IDamage를 추가해준다.

그럼 왼쪽에 인터페이스란에 들어온다. 이제 정의를 해주면 된다

 

사용할 변수들과 인터페이스 목록

전에 완성된 코드에 아래 노드를 추가

컴포넌트 추가를 눌러서 -> StateComponent를 생성 -> get으로 가져와서 On State Type 이벤트 바인딩에 연결

-> 커스텀 이벤트 이름을 OnStateTypeChanged로 동일하게 수정 -> switch 만들어주고 연결 -> 그다음 Hitted 연결

무언가 때리면 State Type가 바뀔테니 스위치 문에서 Hitted로 들어가서 이벤트 발생하는 구조

 

Hit가 되면 Damaged 이벤트가 콜해진다 -> Attacker를 Set로 세팅 -> Csuser 변수를 Actor로 만들어서 Set으로 세팅

-> HitData는 변수유형을 만든 구조체 FHit Data로 바꿔준다 -> State Component로 상태를 변경시켜 줄 것이다.

 

StateComponent를 눌러 편집을 눌러주면 자동으로 내부로 들어가 진다.

 

함수를 2가지 추가해 줄 것이다.

IsHittedMode, SetHittedMode

 

IsHittedMode
SetHittedMode

둘다 Type를 Hitted로 변경해준다. 결국 설정이 완료되면 위에있는 노드처럼 마지막에 상태를 Hitted Mode로 변경 시켜주게된다.

 

Hit Data가 break를 통해 들어간다.

 

그리고 Set Damage를 클릭해서 내부로 들어간다.

수정 전
수정 후

캐릭터 형변환해서 Attacker 세팅 의미가 사라졌으므로 수정해준다.

 

필요한 애니메이션 몽타주를 2개 만들어준다.

HitReaction_Move_Montage

이동 할 수 있는 애니메이션이므로 슬롯 UpperBody로 설정

 

HitReaction_Stop_Montage

멈춰야 하기 때문에 같은 애니메이션에 이름만 수정해주고 슬롯을 FullBody로 설

 

이제 충돌을 시키려면 공격범위나 데미지 등 다 다르기 때문에 엑셀로 하나 작업을 해 줄 것이다.

다 멈추게 만들고 시작할것이기 때문에 레퍼런스 복사 눌러서 엑셀표에 작업해 줄 것이다.

수치들 설정해준다. Montage에 있는 경로는 위에 복사한 레퍼런스 Stop이며 3가지다 동일하다.

오른쪽에 짤린 부분

Sword가 인식해야하므로 알맞은 경로에 저장 파일형식 중요

위 엑셀표 내용은 구조체 만든 목록과 일치하다.

 

임포트해서 확인해보면 잘 들어온것이 보일 것이다. 이제 사용할 수 있도록 Weapon로 가서 정리해준다.

 

사용 할 함수와 변수

변수 유형은 FHit Data로 설정해줘야한다.

 

Load HitDatas 내부 노드

 

Combo_Sword로 가서도 지정해 줘야한다. DT_HitData_Sword 선택

 

콤보로도 와서 노드 생성해줘야한다.

전과 달라진건 마지막 On Begin Overlap 생성 후 연결 끝

 

On Begin Overlap 내부

공격하면 캐릭터 중에 누군가는 맞는 현상이 발생하기 때문에  그 대상을 지정해줘야한다.

IDamge로 형변환 할 수 있는 조건은 인터페이스로부터 상속 받은 존재만 가능하다.

As IDamage가 인터페이스 연결 부분에서 인터페이스 Damaged로 콜을 해준다

attacker은 이 무기에 소유자 Character가 들어간다 

Causer은 자기자신 self

Hit Data는 Hit Datas로 배열을 받아 Get(참조)로 Index를 받아준다.

그럼 충돌하게되면 콜해지고 IDamage가 콜이되면서 damage만큼 들어간다.

 

 

이제 어택 모션 몽타주에 충돌 구간을 만들어 줄 것이다.

충돌 노티파이 생성

노티파이 생성했을때와 동일하게 내부 설정

 

몽타주 Attack 애니메이션 1, 2, 3에 ANS Collision 추가

 

마지막으로 Combo_Sword가서 캡슐 추가해주고 충돌처리 조건 완료

 

https://www.youtube.com/watch?v=sAz5B-AZoI0 

- 조금씩 틀이 잡히기 시작한다

- 하지만 어렵다

Comments