본문 바로가기

레퍼런스

매크로 함수 이벤트 차이 Macro Function Event

매크로 함수 이벤트는 비슷한데 Timeline 기능을 사용하려면 이벤트만 사용가능하다.  매크로는 여러개의 실행경로를 사용할수 있다.

  매크로 함수 이벤트
입력 파라미터 Yes Yes Yes
출력 파라미터 Yes Yes Yes
여러개의 실행경로(입/출력) Yes No No
다른 블루프린트에서 호출 No Yes Yes
지연액션(delay) Yes No Yes
타임라인 노드 No No Yes

 

타임라인노드를 이벤트를 이용해서 만들어 보겠다.

 

블루프린트를 액터를 부모로 만들고 이름을 BP_ChairRoate로 만들자. 컴포넌트에 StaticMesh, CollisionBox RotatingMovement를 넣어주고 세팅을 다음과 같이 하고 레벨에 배치한다.

액터가 와서 부딪치면 액터의 방향으로 멀리 날라가게 할것이다.

우선 캐릭터가 부딪치면 날아갈 위치를 계산해보자. 액터의 ForwardVector에 1000을 곱해서 리턴해준다,

 

MoveLearp이벤트는 AddCustomEvent 노드를 추가하고 다음과 같이 만든다. Learp는 초기 위치와 목적 위치가 변하지 않는게 좋다. Self를 움직이는데 Self의 위치를 리퍼런스하기위해서는 미리 CurrentLocation으로 저장하고 이걸 Lerp에서 사용하는게 좋다. timeline과Lerp는 같이 사용해서 애니메이션을 구현하는게 편하다. Timeline은 function과 매크로에서는 사용할수 없고 재사용을 위해서는 아래와 같이 Event안에서 사용해야한다. Timeline은  Play가 아닌 Play from Start에서 시작해야 매번 처음부터 시작할수 있다.

위에서 사용한 Timeline은 다음과 같이 +Track을 클릭해 float를 추가하고 길이1초짜리를 만들어준다

 

충돌한 액터의 ForwardVector방향으로 이동위치를 계산해서 뒤로 전달한다. 충돌한 자리에는 이펙트를 발생해준다.

RotatingMovement의 Pivot과 Rate를 조정해서 제자리에서 빠르게 돌게하고 MoveLearp 이벤트를 호출한다.

캐릭터가 움직여서 의자에 부딪치면 의자는 축구공처럼 날아갈것이다.

'레퍼런스' 카테고리의 다른 글

흐름제어 Flow Controll  (0) 2024.04.21
Widget GamePause GameEnd 위젯  (0) 2024.04.19
Skeleton Transform 본 변형  (1) 2024.04.16
Behavior Tree EQS - Unreal Document  (0) 2024.04.08
designerd.tistory  (0) 2024.03.29