카테고리 없음

3일차: 블루프린트에서 WhileLoop를 이용한 구구단 ~

maypawn 2025. 5. 14. 18:25

과제 - 블루프린트에서 While Loop를 이용해 구구단 출력하기 

혼자서 해봤는데 이해가 안되서 여러번 돌려보며 이해하는 걸 우선으로 진행했다. 

  1. 첫번째 while Loop 에서는 변수 A(2) 의 값이 9 와 같거나 작을 때까지 반복, 완료 시 Done 출력.
  2. 두번째 while Loop 에서는 변수 B(1) 의 값이 9 와 같거나 작을 때까지 반복, 완료 시 변수 A의 값에 1을 더한다. (다음 구구단으로 넘어감. 예: 2단 -> 3단) 
  3. 세번째 Print Text 에서는 변수 A, B 의 값과 A B를 곱한 값을 텍스트로 출력한다. 출력 후 B의 값에 1을 더한다. (곱하기 값이 증가한다.) 
  4. 마지막으로 첫번째 While Loop 와 두번째 While Loop 사이에 변수 Set B 를 1로 초기화 단계를 추가한다. (이유: Print Test 이후 변수 B의 값을 1 증가시킨게 두번째 While Loop에서 9부터 시작해서 두번째 While Loop가 작동하지 않음. 따라서 변수 B의 초기화를 해야 다시 1부터 곱하기를 할 수 있음.) 

위 문제의 다른 풀이가 궁금하여 Ai한테 어떻게 하는지 물어보았다. 

  • (질문) 언리얼 엔진 공부 중이야. 레벨 블루프린트 이벤트 그래프에서 While Loop를 사용해서 구구단을 만들고 싶어. 2단부터 9단까지 만들어줘.
더보기

🎬 언리얼 블루프린트 구현 절차

1. 변수 생성

  • int Dan 변수 (초기값 2)
  • int Gop 변수 (초기값 1)

2. BeginPlay → WhileLoop 연결

  1. Event BeginPlay → WhileLoop 노드 추가
  2. Condition: Dan <= 9
  3. Loop Body 안에 다음 내용 작성:
    • Gop = 1 초기화
    • 내부 WhileLoop (구구단 내부 반복: Gop <= 9)
      • Print String: "Dan x Gop = 결과"
      • Gop += 1
    • 외부 While 반복 후 Dan += 1

ChatGPT 가 알려준 절차대로 했을 시 문제 

  • 외부 While 반복 후 Dan +=1 이라는 말이 첫번째 WhileLoop에서 완료 시 Dan +1 이라는 건데 잘못됐다. 

선생님이 알려준 답안과 비슷하게 결과를 도출해 놀랐다. 틀린 부분은 고쳐 정상작동하게 했다.  

처음에는 어떻게하는지 모르는 문제였는데 영상 처음부터 반복하여 보니까 설명을 알아들 수 있었고 여러번 만들어도 보니까 작동 원리에 대해 이해가 가능해졌다. 굿 잡


액터 움직이기 

블루프린트 클래스 - 부모 클래스 : 액터(오브젝트), 폰(컨트롤 액터) 

컴포넌트 

  1. StaticMesh - 에셋(모델링) 추가
  2. InterPToMovement(보간) - 오브젝의 반복적인 움직임을 편하고 자연스럽게 만들어줄 때 사용. 
  3. FloatingPawnMovement - Pawn 움직임 추가. 이벤트 그래프에서 Add Movement input 추가해야 가능.

컴포넌트 추가하지 않고 움직이는 방법

  1. 이벤트 그래프에서 변수 추가,  
  2. Event Tick - 프레임 수를 1초 기준으로 맞춤.

컴포넌트를 사용하지 않고 이벤트 그래프로 하면 같은 움직임을 주더라도 굉장히 많이 사용하게 된다. 아마 컴포넌트를 사용하면 최적화 문제나 자유도가 떨어지기 때문에 이벤트 그래프를 사용하는게 아닌가 생각. 나중에 테스트해보면 좋을 것 같음. 

움직임의 변화를 줄 때 타임라인을 사용하면 좀더 다이나믹한 움직임을 추가할 수 있다. 

World, Local 차이점 - 기준이 다르다. World 값을 기준으로 할지, Local 값을 기준으로 할지, World는 맵 기준, Local은 액터를 기준으로 한다.  


같은 Event ActorBeginOverlap 인데 Map에서 선택한 상태로 배치 시 다름.

Sphere 선택 후 Begin overlap 시 콜리전 이벤트 추가됨.

마찬가지로 이벤트 그래프 내에서도 어떤 컴포넌트를 선택한 상태에서 하느냐에 따라 블루프린트 액션이 달라짐.