본문 바로가기

첫 번째 프로젝트 실행

현재 레벨을 올바른 위치에 저장하고 플레이 모드와 실행 옵션으로 화면·입력·오브젝트 동작을 처음 검증합니다.

언리얼 에디터의 주요 인터페이스를 확인했다면, 생성한 프로젝트를 실행해 현재 레벨을 플레이 가능한 상태로 테스트합니다.

실행 결과를 통해 화면 표시, 입력 처리, 오브젝트 동작을 확인합니다.


레벨 저장하기

프로젝트를 실행하기 전에, 현재 작업 중인 레벨을 저장하는 습관을 들이는 것이 매우 중요합니다.

언리얼 엔진은 강력한 도구이지만, 예기치 않은 상황으로 인해 작업 내용이 손실될 수도 있기 때문입니다.

저장(Save Current) 버튼 클릭: 언리얼 에디터 상단 툴바의 좌측에 있는 저장(Save Current) 버튼(디스켓 모양 아이콘)을 클릭합니다.

레벨 이름 지정 및 저장: 다른 이름으로 레벨 저장(Save Level As) 창이 나타나면, 레벨이 저장될 위치를 확인하고 레벨의 이름을 지정합니다.

  • 이 책에서는 Content/Maps처럼 찾기 쉬운 폴더를 사용합니다. 템플릿의 기존 맵 경로는 버전마다 다를 수 있습니다.
  • 레벨 이름은 MainLevel이나 MyFirstLevel처럼 의미 있는 이름으로 지정하는 것이 좋습니다. (예: Content/Maps/MyFirstLevel.umap)
  • 이름을 입력한 후 저장(Save) 버튼을 클릭합니다.

Save Current는 현재 레벨 저장입니다. 수정한 에셋도 저장하려면 Save All 등을 확인합니다. 저장 자체가 이전 버전을 만드는 것은 아니므로 이전 상태 복원에는 백업이나 소스 관리를 사용합니다.


프로젝트 실행하기 (플레이 모드)

언리얼 에디터에서 프로젝트를 실행하는 가장 기본적인 방법은 플레이(Play) 버튼을 사용하는 것입니다.

플레이(Play) 버튼 클릭: 언리얼 에디터 상단 툴바의 중앙에 있는 플레이(Play) 버튼(초록색 삼각형 모양 아이콘)을 클릭합니다.

플레이 인 에디터 (PIE: Play In Editor): Play 옆 메뉴에서 Selected Viewport를 선택하고 실행하면 현재 뷰포트에서 게임을 미리 봅니다. Play 버튼은 직전에 선택한 모드를 기억합니다.

이를 PIE (Play In Editor) 모드라고 합니다.

  • 뷰포트를 클릭해 게임에 입력 포커스를 줍니다. 기본 키 설정에서 Shift+F1로 마우스 제어를 에디터에 돌려줄 수 있습니다.
  • 화면에 보이는 장면은 열린 레벨과 템플릿에 따라 다릅니다. Starter Content를 포함했다는 사실만으로 해당 에셋이 현재 레벨에 배치되는 것은 아닙니다.
  • 현재 Pawn과 입력 설정이 제공하는 조작을 시험합니다. WASD 이동과 마우스 시점 변경은 그 입력을 구현한 템플릿이나 Pawn에서 확인할 수 있습니다. 시작 위치는 Player Start 또는 Play 옵션도 함께 확인합니다.
  • 빈 프로젝트라도 당황하지 마세요. 아직 아무것도 배치하지 않았을 뿐입니다.

플레이 모드 종료: 플레이 모드를 종료하려면 키보드의 Esc 키를 누르거나, 툴바의 플레이 버튼이 정지(Stop) 버튼(빨간색 사각형 모양 아이콘)으로 바뀐 버튼을 클릭하면 됩니다.

다시 에디터 모드로 돌아오게 됩니다. PIE는 레벨의 런타임 복사본을 사용하므로 플레이 중 액터 변경을 영구 저장한 것으로 간주하지 않습니다. 필요한 경우 지원되는 속성에 Keep Simulation Changes를 적용하고 다시 저장합니다.


플레이 중 이동한 액터는 저장 원본과 구분합니다

저장 원본 A→PIE 복사 A→런타임 B→Stop에서 복사 종료라는 상태 변화이고 원본/파일 A가 유지된다.

PIE · RUNTIME COPY · SAVE

플레이 중 이동한 액터는 저장 원본과 구분합니다

레벨에 배치한 액터의 런타임 복사본만 바꾼 경우입니다. PIE의 Stop은 그 변경을 에디터 원본에 자동 반영하는 저장 명령이 아닙니다.

PIE 원본과 실행 복사본의 저장 경계에디터 원본 위치A를 저장하고 PIE로 복사한다. 실행 복사본을B로 이동해도 Stop은 복사본을 끝낼 뿐 원본A와 저장한A를 덮어쓰지 않는다.에디터 원본PIE 실행 복사본액터 · 위치 A실행 전 배치한 원본저장한 레벨 · A파일에도 A복사 직후 · A원본과 다른 실행 객체게임 중 이동 · B원본은 계속 AStop · 복사본 종료B를 원본에 저장하지 않음레벨 저장PIE 복사실행 중 이동Stop원본 A와 파일 A는 유지
PIE 원본과 실행 복사본의 저장 경계에디터원본A를 저장하고PIE로 복사한다. 실행복사본을B로 이동해도Stop은 복사본을끝낼뿐 원본A와파일A를 덮어쓰지않는다.에디터 원본PIE 실행 복사본액터 · 위치 A실행 전 배치한 원본저장한 레벨 · A파일에도 A복사 직후 · A원본과 다른 실행 객체게임 중 이동 · B원본은 계속 AStop · 복사본 종료B를 원본에저장하지 않음레벨 저장PIE 복사실행 중이동Stop

B를 원본에 남기고 싶다면

실행 전에 배치한 액터의 지원되는 속성은 Keep Simulation Changes로 원본에 반영할 수 있습니다. 반영 결과를 확인한 뒤 레벨을 저장합니다.

이 기능은 실행 중 새로 생성한 액터의 영구 저장을 대신하지 않습니다. 수정한 에셋 저장은 Save All 등을 별도로 확인합니다.

이 예의 조건

  • 본문과 원 도표에 제시된 사례의 입력·조건을 사용합니다. 설명용 수치나 독립 비교 경로는 각 단계에 표시합니다.
  • 현재 상태·값과 전환 근거의 위치는 모든 단계에서 같습니다. 조건이 맞지 않거나 실행되지 않은 경로를 성공한 동작으로 해석하지 않습니다.
관계도의 보충 설명
원 도표의 제목·노드·관계·조건·주석
범위원문
관계·조건 설명에디터 원본 위치 A를 저장하고 PIE로 복사한다. 실행 복사본을 B로 이동해도 Stop은 복사본을 끝낼 뿐 원본 A와 저장한 A를 덮어쓰지 않는다.
관계·조건 설명에디터 원본 A를 저장하고 PIE로 복사한다. 실행 복사본을 B로 이동해도 Stop은 복사본을 끝낼 뿐 원본 A와 파일 A를 덮어쓰지 않는다.
예의 값과 변화
관찰·상황값·보충 정보변화·이유
저장 원본

레벨과 파일의 값 A를 기준으로 둔다.

  • 에디터 원본: A
  • 저장 파일: A
  • PIE 실행은 원본과 구별되는 런타임 사본을 만든다.
PIE 변경

사본 A를 플레이 중 B로 바꾼다.

  • 런타임 사본: B
  • 에디터·파일: A 유지
  • 플레이 중 변경은 원본 파일의 저장 동작이 아니다.
Stop

런타임 사본의 수명을 끝낸다.

  • PIE 사본: 종료
  • 원본·파일: A
  • Stop 뒤 원본이 B로 자동 저장되었다고 표시하지 않는다.

플레이 중 이동한 액터는 저장 원본과 구분합니다

저장 원본 A→PIE 복사 A→런타임 B→Stop에서 복사 종료라는 상태 변화이고 원본/파일 A가 유지된다.

PIE · RUNTIME COPY · SAVE

플레이 중 이동한 액터는 저장 원본과 구분합니다

레벨에 배치한 액터의 런타임 복사본만 바꾼 경우입니다. PIE의 Stop은 그 변경을 에디터 원본에 자동 반영하는 저장 명령이 아닙니다.

PIE 원본과 실행 복사본의 저장 경계에디터 원본 위치A를 저장하고 PIE로 복사한다. 실행 복사본을B로 이동해도 Stop은 복사본을 끝낼 뿐 원본A와 저장한A를 덮어쓰지 않는다.에디터 원본PIE 실행 복사본액터 · 위치 A실행 전 배치한 원본저장한 레벨 · A파일에도 A복사 직후 · A원본과 다른 실행 객체게임 중 이동 · B원본은 계속 AStop · 복사본 종료B를 원본에 저장하지 않음레벨 저장PIE 복사실행 중 이동Stop원본 A와 파일 A는 유지
PIE 원본과 실행 복사본의 저장 경계에디터원본A를 저장하고PIE로 복사한다. 실행복사본을B로 이동해도Stop은 복사본을끝낼뿐 원본A와파일A를 덮어쓰지않는다.에디터 원본PIE 실행 복사본액터 · 위치 A실행 전 배치한 원본저장한 레벨 · A파일에도 A복사 직후 · A원본과 다른 실행 객체게임 중 이동 · B원본은 계속 AStop · 복사본 종료B를 원본에저장하지 않음레벨 저장PIE 복사실행 중이동Stop

B를 원본에 남기고 싶다면

실행 전에 배치한 액터의 지원되는 속성은 Keep Simulation Changes로 원본에 반영할 수 있습니다. 반영 결과를 확인한 뒤 레벨을 저장합니다.

이 기능은 실행 중 새로 생성한 액터의 영구 저장을 대신하지 않습니다. 수정한 에셋 저장은 Save All 등을 별도로 확인합니다.

이 예의 조건

  • 본문과 원 도표에 제시된 사례의 입력·조건을 사용합니다. 설명용 수치나 독립 비교 경로는 각 단계에 표시합니다.
  • 현재 상태·값과 전환 근거의 위치는 모든 단계에서 같습니다. 조건이 맞지 않거나 실행되지 않은 경로를 성공한 동작으로 해석하지 않습니다.

관계도의 보충 설명

원 도표의 제목·노드·관계·조건·주석
범위원문
관계·조건 설명에디터 원본 위치 A를 저장하고 PIE로 복사한다. 실행 복사본을 B로 이동해도 Stop은 복사본을 끝낼 뿐 원본 A와 저장한 A를 덮어쓰지 않는다.
관계·조건 설명에디터 원본 A를 저장하고 PIE로 복사한다. 실행 복사본을 B로 이동해도 Stop은 복사본을 끝낼 뿐 원본 A와 파일 A를 덮어쓰지 않는다.
예의 값과 변화
관찰·상황값·보충 정보변화·이유
저장 원본

레벨과 파일의 값 A를 기준으로 둔다.

  • 에디터 원본: A
  • 저장 파일: A
  • PIE 실행은 원본과 구별되는 런타임 사본을 만든다.
PIE 변경

사본 A를 플레이 중 B로 바꾼다.

  • 런타임 사본: B
  • 에디터·파일: A 유지
  • 플레이 중 변경은 원본 파일의 저장 동작이 아니다.
Stop

런타임 사본의 수명을 끝낸다.

  • PIE 사본: 종료
  • 원본·파일: A
  • Stop 뒤 원본이 B로 자동 저장되었다고 표시하지 않는다.

다양한 플레이 옵션 탐색 (선택 사항)

플레이 버튼 옆의 작은 화살표를 클릭하면 플레이 모드에 대한 다양한 옵션들을 확인할 수 있습니다.

지금 당장 모든 옵션을 알 필요는 없지만, 어떤 기능들이 있는지 한 번 살펴보는 것도 좋습니다.

  • 선택된 뷰포트에서 플레이(Play In Selected Viewport): 현재 활성화된 뷰포트에서 바로 게임을 실행합니다. (기본 옵션)
  • 새 에디터 창에서 플레이(Play In New Editor Window): 별도의 새 창으로 게임을 실행합니다. 작업 중인 에디터와 분리하여 더 넓은 화면으로 테스트하고 싶을 때 유용합니다.
  • 독립형 게임으로 플레이(Play As Standalone Game): 별도 프로세스에서 게임 미리보기를 실행합니다. 에디터 뷰포트와 분리된 확인이 가능하지만, 쿠킹·패키징한 배포 빌드의 검증을 대신하지는 않습니다.
  • 모바일 미리보기(Mobile Preview): 모바일 렌더링 경로를 미리보는 옵션입니다. 실제 기기의 성능·입력·드라이버 검증은 별도로 필요합니다.
  • VR 프리뷰(VR Preview): VR 헤드셋이 연결되어 있다면 VR 환경에서 미리보기가 가능합니다.

이러한 옵션들은 여러분의 프로젝트 규모가 커지고 다양한 환경에서 테스트할 필요가 있을 때 유용하게 사용될 것입니다.

현재 단계에서는 기본 선택된 뷰포트에서 플레이(Play In Selected Viewport)를 사용하시면 충분합니다.


첫 번째 실행에서 만날 수 있는 상황

  • 아무것도 보이지 않아요! (빈 프로젝트의 경우): 빈 프로젝트 템플릿을 선택했다면, 초기 레벨에는 기본적으로 아무것도 배치되어 있지 않을 수 있습니다. 검은색 화면이 보일 수도 있습니다. 검은 화면만으로 정상 여부를 단정하지 말고, 열린 레벨·조명·카메라·Pawn과 시작 위치를 확인합니다.
  • 움직임이 부드럽지 않아요!: 여러분의 컴퓨터 사양이나 현재 에디터가 처리하는 작업량에 따라 프레임 속도(FPS)가 저하될 수 있습니다. 언리얼 엔진은 고사양을 요구하는 경우가 많으므로, 원활한 작업을 위해 꾸준히 시스템 리소스를 관리하는 것이 좋습니다.
  • 자동 저장 메시지: 자동 저장 설정에 따라 맵·콘텐츠의 복구용 사본을 만듭니다. 수동 저장과 소스 관리를 대신하지는 않습니다. 작업 중에 자동 저장 중... 메시지가 나타날 수 있습니다. 이는 여러분의 작업물을 보호하기 위한 기능이니 잠시 기다려 주세요.

이제는 언리얼 엔진의 기본적인 인터페이스를 익히고, 첫 번째 프로젝트를 직접 실행하여 가상 세계를 탐험해 보는 경험까지 마쳤습니다.

첫 프로젝트 실행까지 완료했으므로, 다음 장에서는 뷰포트 이동과 오브젝트 조작을 더 자세히 다룹니다.

다음 장에서는 언리얼 에디터의 뷰포트를 더욱 상세하게 다루고, 뷰포트 내에서의 자유로운 이동 및 카메라 조작 방법을 집중적으로 학습하겠습니다.

또한, 레벨에 오브젝트를 배치하고 기본적인 조작을 하는 방법도 함께 익힐 것입니다.

실행에서 발견한 문제는 재현 입력, 시작 위치와 기대한 동작을 함께 기록하고 한 번에 하나씩 수정합니다.

첫 실행을 마친 뒤, Stop 상태에서 레벨에 배치한 액터 하나를 선택해 이름과 위치를 적고 레벨을 저장합니다. 다른 레벨을 열었다가 저장한 Content/Maps/MyFirstLevel을 다시 열어 같은 액터와 값을 찾습니다. 아직 저장하지 않은 변경이 남아 있다면 다른 레벨을 열기 전에 저장 여부를 결정합니다. 이 확인은 에디터 원본을 저장·재열기한 결과이고, PIE 중 변경을 원본에 가져오는 Keep Simulation Changes 실습과는 별개입니다.

독립적으로 판단해 보세요. 레벨만 Save Current로 저장했는데 따로 편집한 재질 에셋에 저장되지 않은 표시가 남아 있다면 모두 저장된 상태일까요? 현재 레벨 저장과 에셋 저장의 범위가 다르므로, 해당 에셋도 저장하거나 Save All의 대상을 확인해야 합니다. 다음 장을 시작하기 전에는 내가 저장한 레벨을 다시 열 수 있는지를 성공 기준으로 삼습니다.