icon안동민 개발노트

첫 번째 블루프린트 생성 및 실행


 이 절에서는 간단한 "Hello World" 메시지를 출력하는 블루프린트를 만들어보겠습니다.

 이 과정을 통해 블루프린트의 기본적인 생성 및 실행 과정을 이해할 수 있습니다.

1단계 : 새 블루프린트 생성

  1. 콘텐츠 브라우저에서 우클릭 후 'Blueprint Class' 선택
  2. 부모 클래스로 'Actor' 선택
  3. 블루프린트 이름을 'BP_HelloWorld'로 지정

2단계 : 블루프린트 에디터 열기

 생성된 'BP_HelloWorld'를 더블클릭하여 블루프린트 에디터를 엽니다.

3단계 : 변수 추가

  1. 'My Blueprint' 패널에서 '+' 버튼 클릭하여 새 변수 추가
  2. 변수 이름을 'MessageToDisplay'로 지정
  3. 변수 타입을 'String'으로 설정
  4. 변수의 기본값을 "Hello, Unreal World!"로 설정

4단계 : 이벤트 그래프에 로직 추가

  1. 이벤트 그래프 탭으로 이동
  2. 그래프에 우클릭하여 'Event BeginPlay' 노드 추가
  3. 다시 우클릭하여 'Print String' 노드 추가
  4. 'BeginPlay' 노드의 실행 핀을 'Print String' 노드의 실행 핀에 연결
  5. 'My Blueprint' 패널에서 'MessageToDisplay' 변수를 드래그하여 그래프에 추가
  6. 'MessageToDisplay' 노드의 출력 핀을 'Print String' 노드의 'In String' 핀에 연결

5단계 : 블루프린트 컴파일

 툴바에서 'Compile' 버튼을 클릭하여 블루프린트를 컴파일합니다.

6단계 : 레벨에 블루프린트 배치

  1. 콘텐츠 브라우저에서 'BP_HelloWorld'를 레벨 뷰포트로 드래그&드롭
  2. 뷰포트에서 배치된 액터의 위치를 적절히 조정

7단계 : 게임 실행 및 결과 확인

  1. 툴바에서 'Play' 버튼을 클릭하여 게임을 실행
  2. 게임 화면에 "Hello, Unreal World!" 메시지가 출력되는지 확인

일반적인 오류 및 해결 방법

 1. 컴파일 오류

  • 문제 : 노드 연결이 잘못되거나 필수 입력이 누락된 경우
  • 해결 : 출력 로그를 확인하여 오류 메시지를 읽고, 해당 노드로 이동하여 연결을 수정

 2. 런타임 오류

  • 문제 : 게임 실행 중 오류가 발생하는 경우
  • 해결 : 디버그 모드로 실행하여 문제가 발생하는 지점 확인

 3. 메시지가 표시되지 않음

  • 문제 : Print String 노드의 설정이 잘못된 경우
  • 해결 : Print String 노드의 'Print to Screen' 옵션이 체크되어 있는지 확인

 4. 블루프린트가 레벨에서 작동하지 않음

  • 문제 : 블루프린트가 레벨에 제대로 배치되지 않은 경우
  • 해결 : World Outliner에서 블루프린트 인스턴스를 확인하고, 필요시 재배치

추가 팁 및 연습

 1. 변수 값 변경하기

  • 'MessageToDisplay' 변수의 값을 에디터에서 변경해보고 결과의 차이를 확인해보세요.

 2. Print String 노드 옵션 탐색

  • Print String 노드의 다양한 옵션(텍스트 색상, 지속 시간 등)을 조정해보세요.

 3. 조건부 메시지 출력

  • Boolean 변수를 추가하고, Branch 노드를 사용하여 조건에 따라 다른 메시지를 출력하도록 수정해보세요.

 4. 반복 출력

  • Delay 노드와 루프를 사용하여 메시지를 주기적으로 출력하도록 수정해보세요.

 5. 입력에 반응하기

  • 키보드 입력 이벤트를 추가하여 특정 키를 누를 때 메시지가 출력되도록 수정해보세요.

 이 간단한 "Hello World" 블루프린트 예제를 통해 블루프린트의 기본적인 생성 및 실행 과정을 배웠습니다.

 이러한 기초를 바탕으로, 더 복잡한 게임 로직을 구현할 수 있습니다. 블루프린트의 진정한 힘은 이러한 기본 개념들을 조합하여 복잡한 상호작용과 게임플레이 요소를 만들어내는 데 있습니다.

 다음 단계로 이 블루프린트를 확장하여 플레이어 입력에 반응하거나 게임 내 오브젝트와 상호작용하는 등 더 복잡한 기능을 추가해볼 수 있습니다.