UDN
Search public documentation:

PlayInEditorKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 언리얼 에디터와 툴 > 에디터에서 플레이 (PIE)

에디터에서 플레이 (PIE)


문서 변경내역: Josh Adams 작성. Jeff Wilson 업데이트. 홍성진 번역.

개요


에디터에서 플레이(PIE, Play In Editor)는 편집하면서 레벨의 게임플레이를 빠르게 미리볼 수 있는 편리한 툴입니다만, 게임 세계와 에디터 세계의 상호작용에 대해 프로그래머들이 알아야 할 것이 몇 가지 있습니다.

에디터에서 플레이 창


에디터 내 레벨을 플레이법 1탄, PIE 창! 표준 PlayerStart( 또는 게임타입에 따라 플레이어를 놓는) 지점에다 플레이어를 띄웁니다.

pie_window.jpg

이 PIE 메서드 시작법은 두 가지 있습니다:

  • 레벨 에디터의 플레이 메뉴에서 에디터에서 옵션 선택
  • 메인 에디터 툴바button_pie_window.jpg 버튼 클릭

PIE 세션이 초기화중일 때 Ctrl키를 누르고 있으면 PIE 게임의 URL에 ?spectator 를 붙여서 플레이어가 관람 모드로 시작하게 합니다.

추가로 에디터 .ini 세팅 InEditorGameURLOptions (에디터내 게임 URL 옵션)에 지정된 문자열이 PIE 게임 URL에 덧붙여집니다.

에디터에서 플레이 뷰포트


에디터 내 레벨 플레이법 2탄, PIE 뷰포트! 현재 뷰포트에다가 현재 맵을 로드한 다음, 현재 뷰포트 카메라 위치에서 플레이어를 띄웁니다.

pie_viewport.jpg

이 PIE 방법을 시작하려면:

이 방법으로 PIE 세션을 시작하면 뷰포트 카메라의 위치에다 텔레포터 액터를 놓은 다음, 텔레포터의 이름을 PIE 게임에다 전달합니다. GameInfo의 디폴트 구현이 텔레포터의 위치에다 플레이어를 띄웁니다. (역시 게임타입으로 이 방식을 덮어쓸 수 있습니다.)

PIE 세션이 시작될 때 Ctrl키를 누르고 있으면 PIE 게임의 URL에 ?spectator 를 덧붙여 플레이어가 관람 모드로 시작하게 합니다.

추가로 에디터 .ini 세팅 InEditorGameURLOptions (에디터내 게임 URL 옵션)에 지정된 문자열이 PIE 게임 URL에 덧붙여집니다.

여기에서 플레이


에디터 내 레벨 플레이법 3탄, PIE 여기에서! 새로운 창이나 현재 뷰포트에다가 현재 맵을 로드한 다음, 뷰포트에 클릭한 위치에서 플레이어를 띄웁니다.

이 PIE 방법을 시작하려면:

  • 원근 뷰에 우클릭 > 레벨 플레이 > 뷰포트로 여기에서 플레이
playfromhere_viewport.jpg
  • 원근 뷰에 우클릭 > 여기에서 플레이
playfromhere.jpg

이 방법으로 PIE 세션을 시작하면 뷰포트 카메라의 위치에다 텔레포터 액터를 놓은 다음, 텔레포터의 이름을 PIE 게임에다 전달합니다. GameInfo의 디폴트 구현이 텔레포터의 위치에다 플레이어를 띄웁니다. (역시 게임타입으로 이 방식을 덮어쓸 수 있습니다.)

PIE 세션이 시작될 때 Ctrl키를 누르고 있으면 PIE 게임의 URL에 ?spectator 를 덧붙여 플레이어가 관람 모드로 시작하게 합니다.

추가로 에디터 .ini 세팅 InEditorGameURLOptions (에디터내 게임 URL 옵션)에 지정된 문자열이 PIE 게임 URL에 덧붙여집니다.

PIE 사용하기


노트 떨구기

PIE 도중 현재 위치에다 Note(노트) 액터를 떨궈 에디터로 되돌아가 작업할 구역을 쉽게 알아볼 수 있습니다. 콘솔 명령 dn (Drop Note, 노트 떨구기) 뒤에다 노트에 할당할 문자열을 입력해 줘도 됩니다.

예를 들어:

  dn 여기 라이팅좀 고치고
  

플레이어의 현재 위치와 방향에다 여기 라이팅좀 고치고 문구를 지닌 노트 액터를 만듭니다.

pie_dropnote.jpg

PIE 끝내기

PIE 창에서 Esc 키를 누르(거나 콘솔에서 quit 를 치)면 PIE 창이 닫힙니다.

PIE 대 독립형


PIE에서 실행되는 게임과 PC에서 독립형으로 실행되는 게임에는 몇 가지 중요한 차이점이 있습니다.

가비지 콜렉션

GIsEditor가 설정되면 가비지 콜렉션에서는, 새로운 실시간 GC 방식을 사용하는 대신에, 기존의 직렬화 기반 방식을 사용합니다. 이 차이점에 대한 자세한 내용은 가비지 컬렉션 문서를 참고하시기 바랍니다.

비동기 로딩, 레벨 스트리밍

PIE에서 레벨 스트리밍은 처리하지 않습니다. 모든 서브레벨을 메모리에 로드합니다.

만, 텍스처 스트리밍은 가능합니다.

로드 옵션

에디터에 컴포넌트와 기타 오브젝트만 로드하도록 지정하는 로드 옵션 및 함수(RF_LoadForClient, NeedsLoadForClient())는 각기 다르게 작동합니다. GIsEditor가 true 이므로, 다양한 컴포넌트는 독립형 보다는 PIE 월드 주변에 있을 겁니다.

키즈멧

키즈멧에는 PIE 전용 링크를 끄는 세팅이 있습니다.

pie_togglelink.jpg

PIE 전용 링크는 Gears of War에서 플레이어가 레벨 스타트에 텔레포트 되는 것을 제한하기 위해 사용했던 기능입니다. (Gears에서 P 맵 간의 스트리밍때문에, PlayerStart 액터는 사실상 어디에도 사용되지 않고, 텔레포트 액션이 사용되었습니다). 이러한 텔레포트 액션이 여기에서 플레이 기능과 자주 충돌을 일으키기에 PIE에서는 텔레포트 액션이 꺼진 겁니다. (주황색 링크)

pie_linkdisabled.jpg

성능

게임이 완전 느리게 돌아가니 PIE에서는 성능 테스트를 하지 않는 것이 좋습니다. 에디터도 돌고 틱도 돌고 메시지도 처리하고 뿐만 아니라, 게임플레이 속도를 높이기 위해 "if (GIsEditor)"로 꺼 둔 코드(런타임에 필요치 않은 인증같은 것들)도 죄다 켜지게 되기 때문입니다. 보통 그런 코드가 부작용이 있는 건 아니지만, 그냥 좀 느리다는 겁니다.

패키지

에디터에서 콘텐츠를 변경하면, PIE 실행 전에 패키지를 저장하지 않았더라도 PIE 월드에 반영됩니다. 마찬가지로, 레벨이 변경되면 PIE 월드에도 반영되며, 변경을 원치 않는 경우에는 에디터에서 해당 맵을 저장하지 않으면 됩니다 (PIE에서는 맵을 Autosaves 디렉토리에 임시 레벨 파일로 저장합니다).