이제 플레이어가 게임에서 키를 주울 수 있으므로, 플레이어가 필요한 키를 주우면 문이 잠금 해제되어 열리는 함수 기능을 추가해 보겠습니다. 튜토리얼의 이 파트에서는 BP_DoorFrame 블루프린트를 수정하고 블루프린트의 함수를 살펴봅니다.
잠금 해제 가능한 문은 게임의 흐름을 제어하고 플레이어에게 진행 상황을 제공합니다. 현재 작업 중인 프로젝트는 여러 방으로 나뉩니다. 따라서 키를 주워 문을 여는 것은 플레이어에게 논리적인 진행 경로를 제공합니다.
시작하기 전에
퍼즐 어드벤처 디자인하기 튜토리얼 시리즈의 이전 섹션에서 다룬 다음 주제를 이해하고 있어야 합니다.
블루프린트 인터페이스를 비롯한 블루프린트 기초
맵 변수를 사용하여 오브젝트의 베리언트 생성하기
이전 키 만들기 튜토리얼에서 만든 다음 에셋이 필요합니다.
BP_KeyBPL_FPGame블루프린트 함수 라이브러리BPI_PlayerKeys블루프린트 인터페이스방이나 복도 사이의 레벨에 배치된 3개의
BP_DoorFrame인스턴스
문에 컬러 옵션 추가
1인칭 템플릿에는 이미 문 블루프린트가 있으므로 기존 블루프린트를 수정하여 키로 문을 여는 함수 기능을 추가할 수 있습니다.
이 튜토리얼의 이전 파트에서 정의한 키 시스템으로 문을 작동하려면 몇 가지 작업이 필요합니다. 키와 마찬가지로 문은 문과 상호작용하는 액터가 BPI_PlayerKeys 인터페이스를 구현한다는 것을 알아야 합니다.
문은 수락한 키와 일치하도록 컬러를 변경해야 합니다. 즉, 어떤 키 타입으로 문을 열 수 있는지 알아야 합니다. 마지막으로 빨간색, 노란색, 파란색이 조합된 동일한 KeyMap 변수가 필요합니다.
플레이어 및 키 인터랙션을 위한 변수 생성
BP_DoorFrame 블루프린트에 새 변수를 추가하려면 다음 단계를 따릅니다.
콘텐츠 브라우저(Content Browser)에서 LevelPrototyping > Interactable > Door 폴더로 이동하여
BP_DoorFrame블루프린트를 엽니다.내 블루프린트(My Blueprint) 패널의 변수(Variables) 섹션에서 부울(Boolean) 타입의 새 변수 UseKey를 추가합니다. 문을 여는 데 키가 필요한지 여부를 결정합니다.
Enum Key Type 타입의 RequiredKey라는 변수를 하나 더 생성합니다. 문을 여는 데 필요한 키를 결정합니다.
두 변수 옆의 눈 모양 아이콘을 클릭하여 눈이 떠지게 해서 편집 가능하게 만듭니다.
UseKey 변수를 선택합니다. 디테일(Details) 패널에서 카테고리(Category)로
Setup을 입력합니다.RequiredKey를 선택하고 카테고리를 Setup으로 변경합니다.
액터(Actor) > 오브젝트 레퍼런스(Object Reference) 타입의 Other Actor라는 새 변수를 생성합니다. 이는 문과 인터랙션하는 액터를 저장하며, 이를 사용하여 플레이어가 문 볼륨과 오버랩되었는지 확인합니다.
키 맵 변수 빌드
BP_Key에서와 마찬가지로 키 타입을 머티리얼 컬러에 매핑하는 맵 변수를 추가합니다. 하지만 문에서 문 메시의 셰이프를 변경하지 않아야 하므로 맵에 새 메시 셰이프를 추가하지 않습니다.
문의 KeyMap 변수를 빌드하려면 다음 단계를 따릅니다.
Enum Key Type 타입의 KeyMap이라는 변수를 생성합니다.
이 변수를 클릭하고 디테일 패널에서 컨테이너(Container) 드롭다운을 클릭하고 맵(Map)을 선택합니다.
맵의 값 타입을 Struct Key Data로 변경합니다.
블루프린트를 컴파일(Compile)하여 KeyMap 값을 추가합니다.
맵의 디폴트 값(Default Value) 섹션에서 3개의 새 엘리먼트를 Key Map에 추가(+)합니다.
첫 번째 항목을 추가할 때 타입을 다른 컬러로 변경하여 새 항목을 계속 추가할 수 있습니다. 동일한 항목을 두 번 이상 추가할 수는 없습니다.
각 맵 엘리먼트에 해당하는 키 머티리얼을 추가합니다.
M_BasicColor_YellowM_BasicColor_RedM_BasicColor_Blue
각 엘리먼트에 대해 키 메시(Key Mesh)가 없음(None)인지 확인합니다. 메시를 제거하려면 드롭다운을 클릭하고 목록 상단의 지우기(Clear)를 선택합니다.
문 블루프린트를 저장하고 컴파일합니다.
컬러 변경 블루프린트 로직 추가
변수를 구성한 다음에는 블루프린트 그래프를 수정하여 컬러가 변경되는 함수 기능을 추가할 수 있습니다.
먼저, 추가한 새 RequiredKey 변수로 제어되는 빨간색, 파란색, 노란색 옵션을 갖도록 문을 변경해야 합니다. 문은 게임플레이가 시작될 때가 아니라 레벨에 구성할 때 컬러가 바뀌어야 합니다. 따라서 이 함수 기능은 컨스트럭션 스크립트(Construction Script) 탭을 사용하여 생성합니다.
문의 컬러 옵션을 추가하려면 다음 단계를 따릅니다.
문의 컨스트럭션 스크립트 탭으로 이동하여 문이 생성될 때의 함수 기능을 생성할 수 있습니다. 그래프에서 이 함수의 로직을 시작하는 보라색 컨스트럭션 스크립트 노드를 찾습니다.
컨스트럭션 스크립트에 연결된 Sequence 노드에서 핀 추가(Add pin)(+)를 사용하여 체인을 기반으로 빌드하는 데 사용할 수 있는 Then 2라는 핀을 하나 더 생성합니다.
Sequence 노드는 액션 시퀀스를 빌드하는 데 사용됩니다. 추가할 핀의 수에 따라 Then 0이 먼저 실행되고 그다음에 Then 1이 실행되는 식입니다. 그래프를 정리하고 하나의 로직 체인이 너무 길어지는 것을 방지하는 데 도움이 됩니다.
Then 2 핀을 그래프의 빈 부분으로 드래그하여 Branch 노드를 생성합니다.
Branch 노드의 Condition 핀을 드래그하여 Get Use Key 노드를 생성합니다. 이제 Branch는 문이 키를 사용해야 하는지 여부를 테스트합니다.
Branch 노드의 True 핀을 드래그하여 Fn BPLSet Key 노드를 생성합니다. 스태틱 메시 배열에 새 머티리얼 컬러(제공되는 경우 메시 포함)를 적용하는 라이브러리 함수입니다.
Fn BPLSet Key 노드의 Static Mesh Array 핀을 드래그하여 Make Array 노드를 생성합니다.
Make Array 노드에서 핀 추가 (+) 버튼을 클릭합니다.
Make Array 노드에서 첫 번째 핀 [0]을 드래그하여 Get Door 노드를 생성합니다.
내 블루프린트 패널의 변수 > Components 목록을 보면 문에 Door 및 Door2 스태틱 메시 컴포넌트가 있는 것을 볼 수 있습니다. 컬러를 변경하려는 항목입니다.
두 번째 핀 [1]을 드래그하여 Get Door 2 노드를 생성합니다. 이렇게 하면 두 개의 스태틱 메시 컴포넌트인 Door와 Door 2를 기반으로 배열이 만들어집니다.
Fn BPLSet Key 노드에서 Key Map 핀을 드래그하여 Get Key Map 노드를 생성합니다. 문의 KeyMap 변수에 대한 레퍼런스입니다.
그런 다음 Key 핀을 드래그하여 앞서 추가한 RequiredKey 변수에 대한 레퍼런스인 Get Required Key 노드를 생성합니다.
블루프린트를 컴파일하고 저장합니다.
이제 문의 컨스트럭션 스크립트에서 Sequence 노드의 Then 3 핀 뒤에 다음이 있어야 합니다.
이 로직의 복사 가능한 버전은 다음과 같습니다.
이 스니펫을 복사하여 BP_DoorFrame의 컨스트럭션 스크립트에 붙여넣는 경우, 기존 Sequence 노드에 세 번째 핀을 추가한 다음, 해당 핀을 Branch 노드의 실행 핀에 연결해야 합니다.
문 컬러 테스트
문 게임 오브젝트를 컬러 코딩한 다음에는 플레이어가 올바른 키를 가지고 있지 않으면 문이 열리지 않도록 설정할 수 있습니다.
레벨에서 BP_DoorFrame 인스턴스 중 하나를 선택합니다.
디테일 패널에서 상단의 검색창에 Key를 입력합니다. 이렇게 하면 Use Key와 Required Key라는 두 가지 옵션이 표시됩니다. Required Key를 다른 키 타입으로 변경합니다. 문의 컬러가 키 타입에 맞춰 바뀌어야 합니다.
Use Key를 false로 토글하면 블루프린트에서 조건으로 설정했기 때문에 문의 컬러가 업데이트되지 않습니다.
블루프린트 에디터에서 컨스트럭션 스크립트 그래프 탭을 사용할 때의 이점이 있습니다. 게임 모드에 들어가기 위해 기다릴 필요 없이 레벨 에디터에서 변경사항을 확인할 수 있습니다.
키 기반 문 로직 빌드
다음으로, 플레이어가 어떤 키를 가지고 있는지 확인하는 함수 기능을 빌드할 수 있습니다. 이를 위해 BP_DoorFrame 블루프린트에 fnHasKey라는 커스텀 함수를 정의하여 플레이어에게 필요한 키가 있는지 확인합니다.
함수는 특정 작업을 수행하는 재사용 가능한 블루프린트 노드 세트입니다.
키를 확인하는 함수 생성
이 함수는 문에 필요한 키와 플레이어 캐릭터의 키 배열을 비교하여 true 또는 false 같은 부울 값을 반환합니다. 해당 부울 반환 값에 대해서는 로컬 변수를 사용하게 됩니다.
로컬 변수가 있는 함수를 생성하려면 다음 단계를 따릅니다.
BP_DoorFrame블루프린트의 내 블루프린트 패널에서 함수 섹션 옆의 더하기(+)를 사용합니다. 변수를 추가하는 것과 비슷하지만, 대신 함수를 추가하는 것입니다.새 함수를 fnHasKey로 명명합니다.
함수는 자체 노드 세트를 가질 수 있으므로 별도의 노드 그래프와 함께 자체 fnHasKey 탭에서 열립니다. 이 탭을 닫았다가 다시 열어야 하는 경우 함수 목록에서 함수를 더블클릭합니다.
내 블루프린트 패널의 하단에 로컬 변수(Local Variables)(FnHasKey)라는 새 섹션이 표시됩니다. 해당 섹션 옆의 추가(+)를 사용하여 새 로컬 변수를 생성합니다.
변수를 HasRequiredKey로 명명하고 타입을 부울로 설정합니다.
로컬 변수는 일반 변수와 유사하지만 특정 함수에 대해 로컬입니다. 함수가 실행되는 동안 임시 값을 저장하는 데 유용합니다. 그런 다음 Return Node를 사용하여 이 값을 블루프린트의 나머지 부분에 다시 전달할 수 있습니다.
함수를 구성하면 플레이어가 올바른 키를 가지고 있는지 확인하는 로직을 추가할 수 있습니다.
문의 볼륨에 있는 액터에 필수 키가 있는지 확인하려면 다음 단계를 따릅니다.
fnHasKey 함수 엔트리 노드의 핀을 드래그하여 Sequence 노드를 생성합니다. 이렇게 하면 함수의 로직이 순서대로 실행되는 액션 시퀀스로 정리됩니다.
Sequence 노드의 Then 0 핀을 드래그하여 Fn BPIGet Keys (Message) 노드를 생성합니다. 플레이어가 이미 찾은 키 배열을 반환하는 인터페이스 함수입니다.
Fn BPIGet Keys 노드의 Target 핀을 드래그하여 Get Other Actor 노드를 생성합니다. 문의 이벤트 그래프를 구성하고 나면 이 변수는 문의 볼륨에 오버랩되는 액터를 저장합니다.
HasRequiredKey 로컬 변수를 Fn BPIGet Keys 노드 근처로 드래그하고 Set을 선택합니다.
FN BPIGet Keys 노드의 Exec 핀을 드래그하여 Set HasRequiredKey 노드에 연결합니다.
Set HasRequiredKey 노드에서 HasRequiredKey 핀을 드래그하여 검색의 배열(Array) 섹션 아래에 Contains Item 노드를 생성합니다. 이 노드는 특정 항목이 배열에 있는지 확인하고 true 또는 false를 반환합니다.
Array Contains Item을 검색하여 특정 옵션으로 검색 범위를 좁힐 수도 있습니다.
Contains Item 노드에서 Target Array 핀(사각형 핀)을 드래그하여 Fn BPIGet Keys 노드의 Held Keys 핀에 연결합니다.
Contains Item 노드의 (원 모양) Item to Find 핀을 드래그하여 Get Required Key 노드를 생성합니다.
지금까지의 함수 그래프는 다음과 같습니다.
이 액션 시퀀스는 OtherActor(변수)가 보유한 키에 RequiredKey(변수)가 포함되어 있는지 확인합니다. 포함되어 있다면 HasRequiredKey를 true로 설정합니다.
이제 HasRequiredKey 결과를 블루프린트의 나머지 부분에 전달합니다. 이렇게 하려면 함수 실행을 중지하고 함수를 호출한 블루프린트에 값을 반환하는 Return 노드를 사용합니다.
함수를 Return 노드로 종료하려면 다음 단계를 따릅니다.
Sequence 노드에서 Then 1 핀을 드래그하고 노드 액션 목록에서 Return을 검색한 다음 반환 노드 추가(Add Return Node)를 선택합니다.
함수가 값을 반환하게 하려면 출력이 필요합니다. Return 노드를 클릭하여 하이라이트합니다.
디테일 패널에서 하단의 출력(Outputs) 섹션 옆에 있는 추가(+)를 클릭합니다. 이렇게 하면 새 출력이 추가되며, 이 값은 이 함수에서 전달됩니다.
이 출력을 KeyFound로 명명하고 타입을 부울 로 변경합니다.
그래프로 돌아가서 Return 노드의 Key Found 핀을 드래그하여 Get HasRequiredKey 노드를 생성합니다.
완성된 Use() 함수는 다음과 같습니다.
이 스니펫을 프로젝트에 복사하는 경우 FnHasKey 함수 엔트리 노드를 Sequence 노드에 연결해야 합니다.
키로 문 잠그기 및 잠금 해제하기
이제 모든 필수 조건이 true인 경우 문이 열리도록 수정할 수 있습니다.
키와 마찬가지로 키를 사용하는 문을 열기 전에 캐릭터가 BPI_PlayerKeys 인터페이스(플레이어의 '권한 슬립')를 구현하는지 확인해야 합니다.
따라서 문을 열기 전에 다음 조건을 확인해야 합니다.
문이 키를 사용하도록 구성되어 있음(UseKey = True)
오버랩되는 액터는 BPI_PlayerKeys를 구현하는 플레이어임
플레이어가 필수 키 타입을 가지고 있음
문과 상호작용하는 액터가 플레이어인지 테스트하려면 다음 단계를 따릅니다.
BP_DoorFrame의 이벤트 그래프에서 Event ActorBeginOverlap 노드를 찾습니다. 이 노드 컬렉션은 캐릭터가 문의 콜리전 볼륨에 들어갈 때 일어나는 일을 제어합니다. 이 로직에 블루프린트 인터페이스와 키 요구 사항을 추가하여 액터가 플레이어이고 올바른 키를 가지고 있지 않으면 문이 열리지 않도록 할 것입니다.Ctrl + F를 사용하여 노드 이름을 검색할 수 있습니다. 검색 결과를 클릭하면 노드로 바로 이동됩니다.
Alt를 누른 상태로 두 노드 사이의 와이어를 클릭하여 Door Control 노드에서 Event ActorBeginOverlap 노드의 연결을 해제합니다. Event 노드를 뒤로 이동하여 Door Control 앞에 노드 액션을 추가할 수 있는 공간을 확보합니다.
블루프린트 노드 연결 해제Event ActorBeginOverlap 노드에서 핀을 드래그하여 Set Other Actor 노드를 추가합니다. Event 노드의 Other Actor 핀을 Set 노드의 Other Actor 핀에 연결합니다.
문 영역과 오버랩된 액터를 저장합니다.
Set Other Actor 노드에서 파란색 Value 핀을 드래그하여 Does Object Implement Interface 노드를 생성합니다. Interface 값을
BPI_PlayerKeys로 설정합니다.Set Other Actor 노드에서 Exec 핀을 드래그하여 새 Branch 노드를 생성합니다.
문이 키를 사용하는지 확인하려면 다음 단계를 따릅니다.
Branch 노드의 True 핀을 드래그하여 이 튜토리얼 앞부분에서 생성한 함수인 Fn Has Key 노드를 생성합니다. 문을 여는 데 필요한 키 타입을 받아 플레이어의 Held Keys 배열에서 해당 키 타입을 확인합니다. 여기서 이 함수를 호출하면 그 안의 노드가 실행됩니다.
Fn Has Key 노드에서 Exec 핀을 드래그하여 새 Branch 노드를 생성합니다.
Fn Has Key 노드의 Key Found 핀을 Branch 노드의 Condition 핀에 연결합니다.
새 Branch 노드의 True 핀을 Door Control 노드의 Play 핀에 연결합니다.
지금까지 이 로직은 플레이어가 올바른 키를 가지고 있을 때만 문이 열리도록 허용합니다. 다음과 같은 경우에도 문이 열립니다.
문에 키가 필요하지 않은 경우
NPC가 문을 통과하려고 시도하는 경우
첫 번째 Branch 노드와 And 노드는 이 두 조건을 모두 테스트합니다. 둘 중 하나가 false이면 Branch도 false입니다.
키가 필요하지 않을 때 NPC에게 문을 열어 주려면 다음 단계를 따릅니다.
첫 번째 Branch 노드의 False 핀을 Door Control 노드의 Play 핀에 직접 연결합니다. 커넥터를 사용하면 두 노드 사이의 와이어를 더블클릭하여 블루프린트를 정리할 수 있습니다.
블루프린트를 컴파일하고 저장합니다.
이제 액터가 키 인터페이스를 구현하지 않거나 문에 키가 필요하지 않은 경우(UseKeys = False), 문은 계속 열립니다.
이 튜토리얼에서는 NPC가 문을 통과할 수 있도록 문을 디자인했습니다. 게임이 다르게 작동하게 하려면 그래프를 직접 변경해 보세요.
새 BP_DoorFrame 이벤트 그래프 로직은 다음과 같습니다.
블루프린트에 코멘트 추가
블루프린트에 코멘트 블록을 추가하여 노드를 그룹화하고 블루프린트의 각 부분이 하는 역할을 설명하는 비주얼 전용 노트를 생성할 수 있습니다. 코멘트는 사용자와 사용자의 팀원들이 노드가 어떤 기능을 수행하는지 한눈에 파악하고 블루프린트를 정리하는 데 도움이 됩니다.
블루프린트 로직을 빌드할 때는 먼저 함수 기능을 생성하는 데 집중한 다음, 추가한 노드를 하이라이트하고, 노드를 포함하고 설명하는 코멘트를 추가합니다.
블루프린트에서 코멘트를 추가하려면 다음 단계를 따릅니다.
그래프를 클릭하여 활성 패널인지 확인합니다.
키보드에서 C를 누릅니다. 이렇게 하면 코멘트 박스가 추가됩니다.
박스 상단의 텍스트 필드를 더블클릭하여 코멘트를 입력합니다.
코멘트 크기를 조정하려면 코멘트가 선택되어 있는지(노란색 외곽선으로 하이라이트됨) 확인하고 가장자리나 모서리를 드래그합니다.
코멘트 내에서 노트를 그룹화하려면 해당 노드를 코멘트 바운드 안으로 드래그합니다.
하나 또는 여러 개의 노드를 선택하고 C를 눌러 선택한 노드를 포함하는 코멘트를 추가할 수도 있습니다.
문 테스트
레벨 에디터에서 레벨로 돌아갑니다. 문의 Required Key 프로퍼티를 사용하여 문을 다른 컬러로 구성하고 각 컬러에 BP_Key를 추가합니다.
이제 게임을 플레이합니다. 키를 줍지 않고 문을 향해 걸어가면 문은 열리지 않습니다.
하지만 키를 주운 경우 문에 다가가면 문이 열립니다. 충분히 멀리 이동하면 문이 자동으로 닫힙니다.
특정 컬러의 키를 주운 후에 다른 컬러의 문을 열어봅니다. 문은 닫혀 있어야 합니다.
이 튜토리얼의 샘플 레벨로 작업하는 경우, Hallway 2로 통하는 문을 선택하고 필수 키를 파란색 키로 변경합니다. 다음으로, Hallway 3으로 연결되는 문을 선택하고 필수 키를 빨간색 키로 변경합니다. Hallway 1의 문을 노란색으로 만듭니다.
디버그 메시지로 피드백 추가
게임플레이 중에 블루프린트에서 일어나는 일을 확인하려면 Print String 노드를 사용하여 화면에 메시지를 표시할 수 있습니다. 언리얼 엔진은 최종 게임에서 이러한 메시지를 표시하지 않습니다.
Print String 노드를 추가하여 플레이어가 주운 키 타입을 확인합니다.
Print String 노드로 디버그 메시지를 표시하려면 다음 단계를 따릅니다.
BP_AdventureCharacter이벤트 그래프에서 Event fnBPIAddKey로 시작하는 노드 세트로 이동하여 HeldKeys 배열에 키를 추가합니다.Add 노드의 Exec 핀에서 드래그하여 Print String 노드를 추가합니다.
In String은 화면에 표시되는 텍스트입니다. 커스텀 텍스트를 입력하거나 Event 노드의 Key Type 핀을 In String에 연결합니다. 플레이어가 줍고 있는 키를 표시합니다.
블루프린트를 컴파일합니다.
게임을 다시 플레이하고 키를 줍습니다. 키를 선택하면 각 키 컬러를 확인하는 디버그 텍스트가 표시됩니다.
완료되면 노드 그래프로 돌아가서 Print String 및 Enum to String 노드를 삭제합니다. 블루프린트를 컴파일하고 저장합니다.
블루프린트에서 무언가가 예상대로 작동하지 않는 경우 계산, 이벤트 호출 또는 함수 호출 뒤에 Print String 노드를 추가하여 값과 흐름에 어떤 일이 일어나는지 트래킹할 수 있습니다.
게임이 플레이되는 동안 블루프린트를 열 수도 있습니다. 블루프린트의 와이어에 불이 들어와 실행 중인 로직을 실시간으로 확인할 수 있습니다. 이 실행 트레이싱으로 Print String 메시지와 함께 무슨 일이 일어나는지 빠르게 파악할 수 있습니다.
주운 아이템 배치
지금까지는 바닥에 키를 배치했습니다. 플레이어가 더 흥미를 가지고 몰입할 수 있도록 플랫폼 요소를 도입해 보세요.
이 튜토리얼의 샘플 레벨에서는 플레이어가 키로 점프해야 하는 높은 장소에 키를 배치하여 약간의 수직성을 더했습니다. 여기서는 넘어져서 다시 시작해야 할 수도 있는 가벼운 위험이 있습니다.
플레이어는 첫 번째 플랫폼과 두 번째 플랫폼에서 점프하는 연습을 한 뒤, 이보다 더 어려운 기둥으로의 최종 점프를 시험해 보게 됩니다.
샘플 레벨 사용해 보기
이 튜토리얼 시리즈에서 디자인한 방의 새로운 요소를 직접 만드는 대신 추가하려면 아래 스니펫을 복사하세요.
Start Room 윤곽 작업
이 텍스트 스니펫에는 노란색 키로 가는 경로를 생성하기 위해 추가된 경사로, 오목한 바닥, 기둥, 두 개의 플랫폼 메시가 포함되어 있습니다.
Begin Map
Begin Level
Begin Actor Class=/Script/Engine.StaticMeshActor Name=Floor_168 Archetype="/Script/Engine.StaticMeshActor'/Script/Engine.Default__StaticMeshActor'" ExportPath="/Script/Engine.StaticMeshActor'/Game/AdventureGame/Designer/Lvl_Adventure.Lvl_Adventure:PersistentLevel.Floor_168'"
Begin Object Class=/Script/Engine.StaticMeshComponent Name="StaticMeshComponent0" Archetype="/Script/Engine.StaticMeshComponent'/Script/Engine.Default__StaticMeshActor:StaticMeshComponent0'" ExportPath="/Script/Engine.StaticMeshComponent'/Game/AdventureGame/Designer/Lvl_Adventure.Lvl_Adventure:PersistentLevel.Floor_168.StaticMeshComponent0'"
End Object
Begin Object Name="StaticMeshComponent0" ExportPath="/Script/Engine.StaticMeshComponent'/Game/AdventureGame/Designer/Lvl_Adventure.Lvl_Adventure:PersistentLevel.Floor_168.StaticMeshComponent0'"
StaticMesh="/Script/Engine.StaticMesh'/Engine/MapTemplates/SM_Template_Map_Floor.SM_Template_Map_Floor'"
bUseDefaultCollision=False
StaticMeshDerivedDataKey="STATICMESH_34081786561B425A9523C94540EA599D_359a029847e84730ba516769d0f19427Simplygon_5_5_2156_18f808c3cf724e5a994f57de5c83cc4b_680318F3495BDBDEBE4C11B39CD497CE000000000100000001000000000000000000803F0000803F00000000000000000000344203030300000000"
MaterialStreamingRelativeBoxes(0)=4294901760
Start Room의 새로운 윤곽 작업 셰이프는 다음 단계를 따릅니다.
언리얼 에디터에서 Start Room의 모든 키를 제거하여 새 지오메트리에서 키가 손실되지 않도록 합니다.
전체 스니펫 복사하기(Copy Full Snippet)를 클릭합니다.
언리얼 에디터에서 뷰포트가 활성 패널인지 확인한 다음(뷰포트 또는 아웃라이너(Outliner)에서 아무 곳이나 클릭하고 Esc를 누름) Ctrl + V를 누릅니다.
이 튜토리얼의 이전 부분에서 윤곽 작업 방을 옮긴 경우 새 메시가 올바른 위치에 표시되지 않을 수 있습니다. 필요에 따라 이동합니다.
세 개의 바닥 조각이 새 오목한 바닥을 덮고 있습니다. 뷰포트에서 각각을 클릭하고 Delete를 누릅니다.
샘플 복사 붙여넣기 데모
다음 단계
플레이어 캐릭터가 키를 주울 수는 있지만, 지금까지 주운 키를 플레이어에게 알려주는 피드백은 없었습니다. 다음 섹션에서는 플레이어에게 인벤토리의 키를 표시하는 헤드업 디스플레이(Heads-Up Display, HUD)를 만들어 봅니다.