[UE5] ♾️ For Loop에 Delay 넣기

Singery00·2024년 5월 16일
0

UE5

목록 보기
9/37
post-thumbnail

개요

♾️ Blueprint 코딩 시 For Loop에 Delay를 넣어 보자.

Blueprint로 코딩을 하다 보면 C++로는 더 쉽게 할 수 있는 기능이 구현이 안되거나, 빙 둘러 가야 하는 경우가 있다.
그 중 대표적이 예로 For Loop에 지연을 넣는 것이다.

하지만 기본적으로 사용할 수 있는 For Loop 노드에 Delay를 추가하여도 원하는대로 동작하지 않는다.
For Loop는 Loop 대로 인덱스가 증가하며 실행되기 때문이다.

그래서 For Loop에 직접 Delay를 넣어서 매크로를 만들어야 한다.

참고 유투브 영상


본론


♾️ 매크로 생성

BML 생성

우선 Blueprint Macro Library를 만들어 주겠습니다.

Content Drawer에서 우클릭 - Blueprint - Blueprint Macro Library를 선택해주세요.

창이 뜨면 Actor 선택해주세요.

BP_MyMacroLibrary라고 이름 지어 주겠습니다.

BML 수정

생성을 완료하고 BML을 키면 아래 창이 나타납니다.

우측 위에서 이름을 먼저 수정해주겠습니다.
For Loop With Delay라고 이름 지어 주었습니다.

Input 값부터 넣어 주겠습니다.
노드를 선택해주시고, 아래의 Input 4개 추가해주세요.

  1. Exec / Exec Type
  2. First Index / Integer Type
  3. Last Index / Integer Type
  4. Delay / Float Type

이번엔 Output입니다.
3개 추가해주세요.

  1. Last Body / Exec Type
  2. Index / Integer Type
  3. Completed / Exec Type


For Loop 가져오기

그리고 아무 블루 프린트로 가서 For Loop 노드를 추가해주세요.

노드를 더블 클릭하면 Standard Macros 창으로 이동됩니다.

그리고 Inputs, Outputs 노드를 제외하고 복사(Ctrl + C)해주세요.


For Loop 붙여넣기

그리고 다시 우리가 만든 Macro Library로 이동해서 붙여 넣기(Ctrl + V) 해주세요.


노드 잇기

흐름선

우선 흐름선을 이어 주겠습니다.
1. Input의 Exec를 Assign 노드로 이어 주세요.
2. Branch의 False를 Outputs의 Completed로 이어 주세요.
3. Sequence의 Then 0를 Outputs의 Last Body로 이어 주세요.

Inputs

Input 노드의 값을 이어 주겠습니다.

  1. First Index는 Assign의 Value에 이어 주세요.
  2. Last Index는 <= 노드의 하단에 넣어 주세요.

Outputs

Local Integer 노드의 Variable을 Outputs의 Index에 이어 주세요.

여기까지가 기존의 For Loop를 만든 겁니다.


Delay 추가

Assign 노드에 Delay 노드를 추가해주세요.

Delay노드의 흐름선은 기존 Assign이 연결되어 있던 Branch에 이어 주세요.

그리고 Inputs의 Delay를 Delay 노드의 Duration에 이어 줍니다.

이렇게 하면 Blueprint에서 사용 가능한 For Loop With Delay를 구현하였습니다.


마무리

아래 처럼 노드를 추가한 뒤에 Delay에 원하는 대기 시간을 넣으면 Delay For Loop를 사용할 수 있습니다.

profile
게임 개발자가 되어보자

0개의 댓글