Unreal

[Unreal] 5월 1일 수업정리

k-codestudy 2025. 5. 1. 13:37

오늘은 애님 노티파이 스테이트에 대한 수업을 들었다.

 

Anim Notify State

  • 일반 노티파이와 비슷하게 작동하지만, 한 이벤트가 아닌 일정 기간 작동한다.
  • 이러한 이유로 이 스테이트는 시작(Start), 업데이트(Update), 끝(End)이라는 세 가지 고유 이벤트를 제공한다.
  • 즉, 어디서부터 어디까지인지 기간을 정할 수 있으며 무슨 일이 있어도 End를 무조건 보장해 준다 ( 핵심 키 포인트 )

실습 

애니메이션 리타겟팅을 하여 primaryMelee b-slow 애니메이션을 가져온다
가져온 애니메이션을 몽타주로 만든 후 Left Mouse Button 클릭시 Play Montage를 실행하여 몽타주가 플레이 되게 설정
애님 노티파이 스테이트 생성
애님 노티파이 스테이트 내부

  • Received Notify Begin : 시작할 때
  • Received Notify End : 끝날 때
  • Received Notify Tick : 매 틱마다

어떤식으로 실행되는지 보기 위하여 Begin, End에 print Stirng을 연결 후 실행
애니메이션 시퀀스에서 노티파이 스테이트를 추가 ( Attack )
Attack ( 애님 노티파이 스태이트 ), 1 ~ 2 까지의 섹션 범위 내에서 실행이 됨

실행
오른쪽 버튼을 누를 시 애니메이션이 종료되게 설정 / Mesh -> Get Anim Instance -> Montage Stop 호출
실행
  • 실행하다가 멈춰보면 바로 E가 나오는 것을 확인할 수 있는데, 애님 노티파이 스테이트는 끝을 보장해 준다는 것을 확인 할수 있다.

Sweep / Hit

BP-Chair을 하나 만들어서 Hit시 spawn Emiter at Location을 사용하여 폭발이라는 이펙트 호출 / hit을 구조체 핀 분할을 이용하여 Hit Impact Point에서 위치 값을 얻어옴
실행

  • Hit 즉 부딪힌 곳의 좌표값을 얻어왔기에 부딪힌 부분에서 폭발이 일어나는 것을 확인할 수 있다.
BP-Chair에서 Overlap시 spawn Emiter at Location을 사용하여 폭발이라는 이펙트 호출 / Sweep을 구조체 핀 분할을 이용하여 Sweep Result Impact Point에서 위치 값을 얻어옴
실행 결과
  • 오버랩 시 부딪힌 곳의 좌표값을 얻어왔기에 폭발이 일어나는 것을 확인 할 수있다.
  • 알아야 하는 점이 Sweep같은 경우 물리가 적용이 되야 실행이 가능하다. 
  • 플레이어가 움직임에 따라 물리가 적용이 되고 그렇기에 Sweep Result가 실행이 된것이다.
편집 -> 프로젝트 세팅 -> 콜리전 -> 오브젝트 채널 -> Weapon, Target 만들기
새 프로파일 설정 ( Weapon )
새 프로파일 설정 ( Target )
BP-Weapon 이라는 엑터 생성 후 모양, 콜리전 설정 변경 ( 콜리전은 Weapon ) / Chair의 경우 Target으로 콜리전 설정 변경

Mesh의 산하에 Child Actor 추가 -> 부모 소켓에 hand_r / Child Actor Class에 bp-Weapon 설정
오버랩시 Hello 출력 하게 설정 후 실행 장면
오버랩시 Sweep Result Impact Point의 좌표값을 출력

  • 위에 좌표값을 확인해 보면 전부 0으로 나오는 것을 확인할 수 있다.
  • 현재 휘두르면서 오버랩이 발생하지만 실제로는 물리가 먹는 것이 아닌 애니메이션에 의한 강제 이동이기에 물리가 먹지 않게 된다.
  • 그렇기에 물리적인 이동, 충격이 아니기에 좌표값이 나오지 않는 것을 확인할 수 있다.
  • 즉, Sweep의 경우 물리적인 현상에 대해서만 좌표값을 얻어올 수 있다는 것을 확인할 수 있다.

'Unreal' 카테고리의 다른 글

[Unreal] 5월 9일 수업정리  (0) 2025.05.09
[Unreal] 5월 2일 수업정리  (0) 2025.05.05
[Unreal] 4월 30일 수업정리  (0) 2025.04.30
[Unreal] 4월 29일 수업정리  (0) 2025.04.29
[Unreal] 4월 28일 수업정리  (0) 2025.04.28