← 목록

mLua · Nemotron SDG 질문-응답 (SFT)

총 21,567개 · 페이지 408/719
🔀 랜덤
불러오는 중…

[task] | code [pass] | ⏳ 미판정 [title] | Hierarchy [question] | `self` 컴포넌트의 `TransformComponent` 위치가 변경될 때 자식 엔티티들의 위치가 자동으로 동기화되는 특성을 활용해, 부모 엔티티가 특정 좌표로 이동하면 자식들 모두 함께 이동하는 것을 확인하기 위한 테스트용 스크립트를 작성해줘 [answer] | 메이플스토리 월드의 계층 구조(Hierarchy)에서 부모 엔티티의 `TransformComponent`를 변경하면 자식 엔티티는 자동으로 영향을 받습니다. 이 특성을 활용해 부모 엔티티가 특정 좌표로 이동할 때 자식들이 함께 따라오는지 확인하는 테스트용 스크립트입니다. 아래 스크립트는 `OnBeginPlay` 시점에 자식 엔티티들의 초기 위치를 기록하고, `OnUpdate` 루프에서 특정 시간 간격(예: 2초)마다 부모 엔티티(`self.Entity`)의 위치를 변경합니다. 위치가 변경되면 자식들이 자동으로 따라와야 하며, 이를 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 **Hierarchy** 탭을 이용해 제작 현황을 확인하고, 제작 능률을 높일 수 있습니다. # Hierarchy 소개 **Hierarchy** 탭은 제작 중인 게임 현황을 **계층 구조(부모-자식)**로 볼 수 있는 패널입니다. 복잡하게 구성한 맵에서 원하는 엔티티를 빠르게 찾을 때 사용하거나, 체계적으로 엔티티를 관리할 때 사용합니다. 가장 상위인 **World** 계층 아래에 **common**, **maps**, **ui** 엔트리가 있으며 **maps**와 **ui** 엔트리는 각자 기본 하위 엔트

[task] | single_turn [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | SpriteRendererComponent 와 SpriteGUIRendererComponent 의 RUID 할당 프로퍼티 이름과 주요 차이점은 무엇인가요? [answer] | SpriteRendererComponent와 SpriteGUIRendererComponent는 각각 월드 공간(World)과 UI 공간에 배치된 엔티티에서 이미지를 표시할 때 사용되며, RUID를 할당하는 프로퍼티 이름과 동작 방식에서 차이가 있습니다. **RUID 할당 프로퍼티 이름** * **SpriteRendererComponent**: `SpriteRUID` 프로퍼티에 RUID를 할당합니다. * **SpriteGUIRendererComponent**: `ImageRUID` 프로퍼티에 RUID를 할당합니다. **주요 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 리소스 검색 리소스 검색은 현재 웹과 메이커에서 이용할 수 있습니다. * [MSW 리소스](https://maplestoryworlds.nexon.com/resource) * 메이커의 **Resource Storage** 패널 # 스킬 고유 명칭으로 리소스 찾기 제작 리소스 조회 페이지에서는 여러 태그를 제공하고 있지만 아직 정확도가 높지 않습니다. 검색 시 가장 정확도가 높은 키워드는 **스킬의 고유 명칭**입니다. 예로 스킬 고유 명칭인 **워리어리프**로 검색하면 원하는 검색 결과를 확인하실 수 있습니다.

[task] | code [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | World에 배치한 YoutubePlayerWorldComponent를 찾아서 PlayOnAwake를 활성화하고 Volum을 0.5로 설정하는 스크립트를 작성해줘 [answer] | World에 배치한 `YoutubePlayerWorldComponent`의 `PlayOnAwake`를 `true`로 설정하고 `Volum`을 0.5로 변경하는 스크립트는 다음과 같습니다. ```lua Property: [None] YoutubePlayerWorldComponent youtubePlayer = nil Method: [client only] void OnBeginPlay () { self.youtubePlayer = self.Entity.YoutubePlayerWorldComponent self.youtubePl [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 내가 찍은 영상 혹은 함께 보고 싶은 영상을 가져와 재생할 수 있습니다. # Youtube 관련 컴포넌트 소개 영상은 UI로 사용하거나 World에 배치해 사용할 수 있습니다. UI로 사용할 경우 YoutubeGUIPlayerComponent를 사용하고, World에 배치할 경우 YoutubePlayerWorldComponent를 사용합니다. UI로 사용한다면 영상은 배치한 곳에 고정되므로, 맵을 돌아다니더라도 유저가 보고 있는 화면의 특정 위치에서 움직이지 않습니다. World에서 영상을 사용한다면 배치한

[task] | single_turn [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | YoutubePlayerWorldComponent와 YoutubePlayerGUIComponent의 주요 차이점이 무엇인가요? [answer] | `YoutubePlayerWorldComponent`와 `YoutubePlayerGUIComponent`의 주요 차이점은 영상이 배치되는 공간(월드 vs UI)과 그에 따라 달라지는 동작 방식입니다. **1. 배치 공간 및 동작 방식** * **YoutubePlayerWorldComponent**: 월드(World)에 배치하여 사용합니다. 영상이 배치한 위치에 고정되며, 플레이어가 움직여도 영상은 따라오지 않습니다. * **YoutubePlayerGUIComponent**: UI로 사용합니다. 영상은 배치한 화면의 특정 위 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 내가 찍은 영상 혹은 함께 보고 싶은 영상을 가져와 재생할 수 있습니다. # Youtube 관련 컴포넌트 소개 영상은 UI로 사용하거나 World에 배치해 사용할 수 있습니다. UI로 사용할 경우 YoutubeGUIPlayerComponent를 사용하고, World에 배치할 경우 YoutubePlayerWorldComponent를 사용합니다. UI로 사용한다면 영상은 배치한 곳에 고정되므로, 맵을 돌아다니더라도 유저가 보고 있는 화면의 특정 위치에서 움직이지 않습니다. World에서 영상을 사용한다면 배치한

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | 월드 입장 시 20초 지점부터 재생되도록 설정하는 OnBeginPlay 함수 본문만 3문장 이내의 설명과 함께 출력하세요. [answer] | 월드 입장 시 20초 지점부터 재생되려면 `OnBeginPlay`에서 `YoutubePlayerWorldComponent`의 `Jump` 메서드를 호출해야 합니다. 이때 인자로 20을 전달하면 해당 시간으로 이동하여 재생이 시작됩니다. ```lua self.Entity.YoutubePlayerWorldComponent:Jump(20.0) ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 월드에 입장하면 영상을 바로 00:20초부터 재생을 시작하게 만들고, 재생 중에 특정 키를 입력할 때 함수가 동작하게 만듭니다. YoutubePlayerWorldComponent와 YoutubePlayerGUIComponent의 함수 사용법은 동일합니다. 예시는 YoutubePlayerWorldComponent가 기준입니다. 예시 Url: https://www.youtube.com/watch?v=9pL_b1fl9LQ&t=1s 1. YoutubePlayerController 스크립트 컴포넌트를 만들어, 배치한 Youtube 모델에

[task] | two_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 인내의 숲 제작 시 배경과 타일, 풋홀드를 배치하는 기본 단계는 무엇인가요? [answer] | 인내의 숲 제작 시 배경, 타일, 풋홀드를 배치하는 기본 단계는 다음과 같습니다. **1. 배경 배치하기** 1. 에디터의 **Preset List - Background** 카테고리에서 원하는 배경(예: `back-56`)을 선택합니다. 2. 선택한 배경이 **Scene** 뷰에 적용되었는지 확인합니다. * 특정 배경을 고집할 필요는 있으며 취향에 맞는 배경을 자유롭게 선택할 수 있습니다. **2. 타일 배치하기** 1. **Preset List - Tile** 카테고리에서 원하는 타일(예: `tile-132`)을 선 [followup] | Preset List에서 back-56과 tile-132, foothold-1972를 선택하고 배치할 때 드래그 및 박스 칠하기 기능을 활용하는 구체적인 절차와, 풋홀드가 일반 오브젝트와 다른 점은 무엇인가요? [followup_answer] | Preset List에서 특정 리소스를 선택하고 배치할 때 드래그 및 박스 칠하기 기능을 활용하는 구체적인 절차와 풋홀드의 특징은 다음과 같습니다. **배경(back-56) 배치 절차** 1. **Preset List - Background**에서 `back-56`을 클릭합니다. 2. **Scene** 뷰에서 배경이 변경되었는지 확인합니다. * 배경은 드래그나 박스 칠하기가 아닌, 클릭 선택만으로 맵 전체에 적용됩니다. **타일(tile-132) 배치 및 드래그/박스 칠하기 활용 절차** 1. **Preset List - [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 "인내의 숲"을 알고 계신가요? 인내의 숲을 검색해보면 많은 모험가들의 이야기를 찾아볼 수 있습니다. $$youtube HXMM4Vbx8aA $$ 인내의 숲은 점프를 이용해 발판을 넘어가며 목적지로 올라가는 게임입니다. 여러분은 인내의 숲을 보다 재미있게 만들 수 있는 색다른 아이디어를 갖고 있을지도 모릅니다. * 기존 인내의 숲은 너무 쉬운데? * 이렇게 하면 더 재미있을 것 같아. * 순위를 매기면 더 재미있지 않을까? * 서로 공격할 수 있으면 좋겠어. 메이플스토리 월드에서 이러한 아이디어를 현실화할

[task] | code [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | UI의 YoutubePlayerGUIComponent를 찾아서 ShowController에 해당하는 컨트롤 UI의 가시성을 제어하는 스크립트를 작성해줘 [answer] | 제시된 참고 문서에는 `YoutubePlayerGUIComponent`의 프로퍼티로 `Loop`, `PlayOnAwake`, `Shuffle`, `Urls`, `Volum`, `PlaySpeed`만 존재한다고 명시되어 있습니다. `ShowController` 프로퍼티는 `YoutubePlayerWorldComponent`에만 존재하며, `YoutubePlayerGUIComponent`에는 해당 프로퍼티가 없습니다. 또한, 컨트롤 UI의 가시성을 직접 제어하는 메서드나 이벤트에 대한 설명도 문서에 포함되어 있지 않습니다. 따라서 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 내가 찍은 영상 혹은 함께 보고 싶은 영상을 가져와 재생할 수 있습니다. # Youtube 관련 컴포넌트 소개 영상은 UI로 사용하거나 World에 배치해 사용할 수 있습니다. UI로 사용할 경우 YoutubeGUIPlayerComponent를 사용하고, World에 배치할 경우 YoutubePlayerWorldComponent를 사용합니다. UI로 사용한다면 영상은 배치한 곳에 고정되므로, 맵을 돌아다니더라도 유저가 보고 있는 화면의 특정 위치에서 움직이지 않습니다. World에서 영상을 사용한다면 배치한

[task] | code [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | EffectService를 활용하여 엔티티의 특정 위치에 이펙트를 재생하는 스크립트를 작성해줘 [answer] | `EffectService`는 스크립트에서 이펙트 리소스를 호출하여 재생할 수 있게 해줍니다. 아래 예시는 엔티티의 현재 위치(`self.Entity.TransformComponent.Position`)에 이펙트를 재생하는 스크립트입니다. 이펙트 ID는 메이커에서 원하는 이펙트를 선택하여 복사한 값을 사용해야 합니다. ```lua Property: [None] string EffectId = "f396262ddb6e4d5581360496bb4e9f86" Method: [server only] void OnBeginPlay() [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | **EffectService**를 활용하면 스크립트로 리소스를 호출할 수 있습니다. 자세한 예시는 [EffectService의 Examples](/apiReference?postId=304)에서 살펴봅시다. 사용 예시는 아래와 같습니다. ```lua _EffectService:PlayEffect("f396262ddb6e4d5581360496bb4e9f86",self.Entity,Vector3(x,y,0), 0, Vector3(1,1,1)) ``` ##### 원하는 애니메이션 프레임을 체크해서 사용하는 방법 애니메이션 이펙트를 사

[task] | single_turn [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | 여러 개의 영상을 Shuffle 옵션과 함께 재생하려면 Urls 프로퍼티의 Size를 어떻게 설정해야 하나요? [answer] | 여러 개의 영상을 Shuffle 옵션과 함께 재생하려면 `Urls` 프로퍼티의 **Size 값을 재생할 영상의 총 개수만큼** 설정해야 합니다. `Urls` 프로퍼티는 입력한 Size 값에 해당하는 개수만큼 영상 URL을 저장할 수 있도록 되어 있습니다. 따라서 3개의 영상을 재생하고 싶다면 Size를 3으로 설정한 뒤, 그 아래에 3개의 YouTube URL을 각각 입력하면 됩니다. 설정 후에는 `Shuffle` 옵션을 활성화하면 입력된 영상들의 재생 순서가 무작위로 섞여 재생됩니다. **월드(3D 공간)에 배치하는 경우 예 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 내가 찍은 영상 혹은 함께 보고 싶은 영상을 가져와 재생할 수 있습니다. # Youtube 관련 컴포넌트 소개 영상은 UI로 사용하거나 World에 배치해 사용할 수 있습니다. UI로 사용할 경우 YoutubeGUIPlayerComponent를 사용하고, World에 배치할 경우 YoutubePlayerWorldComponent를 사용합니다. UI로 사용한다면 영상은 배치한 곳에 고정되므로, 맵을 돌아다니더라도 유저가 보고 있는 화면의 특정 위치에서 움직이지 않습니다. World에서 영상을 사용한다면 배치한

[task] | two_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 인내의 숲 가이드에서 원숭이 함정의 공격 방향을 변경하는 방법과 SpawnLocation으로 시작 위치를 설정하는 절차는 어떻게 되나요? [answer] | 인내의 숲 가이드에 따르면, 원숭이 함정의 공격 방향 변경과 SpawnLocation을 이용한 시작 위치 설정 절차는 다음과 같습니다. ### 1. 원숭이 함정 공격 방향 변경 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던집니다. 이를 왼쪽에서 오른쪽으로 던지도록 변경하려면 다음 단계를 따릅니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 2. 원숭이 함정을 배치할 위치(예: 캐릭터의 왼쪽)에 놓습니다. 3. 배치한 원숭이 함정 엔티티를 선택합니다. 4. **프로퍼티 에디터** [followup] | 원숭이 함정의 FlipX 프로퍼티 체크 시 Scene에서의 방향 변화가 즉시 반영되는지, 그리고 SpawnLocation을 배치할 때 특정 타일 좌측 기준이 아닌 다른 위치에도 자유롭게 놓을 수 있는지 확인해 주세요. [followup_answer] | 제공된 참고 문서에는 원숭이 함정의 `FlipX` 프로퍼티 체크 시 Scene에서의 방향 변화가 '즉시' 반영되는지에 대한 기술적 설명이 없습니다. 문서에는 "Scene에서 원숭이 함정의 방향이 왼쪽에서 오른쪽으로 변경된 것을 확인합니다"라고만 되어 있어, 변경 사항을 확인하는 절차만 안내하고 있습니다. SpawnLocation을 배치할 때 특정 타일 좌측 기준이 아닌 다른 위치에도 자유롭게 놓을 수 있는지에 대해서는, 문서에서 "시작 위치를 설정하여 왼쪽 아래 위치에서 캐릭터가 스폰되도록 하겠습니다"라고 목적을 명시하고, "Sp [scores] | [judge_reason] | [source_doc] | 이번에는 캐릭터를 공격하는 함정을 곳곳에 설치하여 게임의 난이도를 올려보겠습니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 이 함정은 바나나를 던져 캐릭터를 공격합니다. 맵 곳곳에 추가 타일과 원숭이 함정을 배치합니다. 2. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지기 때문에, 캐릭터의 오른쪽에 오도록 배치할 수밖에 없습니다. 바나나를 왼쪽에서 오른쪽으로 던지도록 수정해 봅시다. 원숭이 함정을 다음과 같이 왼쪽에 배치합니다. 원숭이 함정을 선택하고 **프로퍼티 에디터

[task] | code [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | SpriteGUIRendererComponent 의 ImageRUID 프로퍼티에 지정된 RUID로 UI 이미지를 변경하고 원본 비율을 유지하기 위해 PreserveSprite 프로퍼티를 설정하는 스크립트를 작성해줘 [answer] | SpriteGUIRendererComponent의 `ImageRUID` 프로퍼티에 RUID를 지정하면 해당 UI 이미지가 변경됩니다. 이때 원본 사이즈와 비율을 유지하려면 `PreserveSprite` 프로퍼티의 값을 `NativeSize`로 설정해야 합니다. `PreserveSprite`가 `NativeSize`로 설정된 경우, 이펙트의 크기와 위치(오프셋)는 `LocalScale`과 `LocalPosition` 프로퍼티를 통해 조정할 수 있습니다. 원하는 RUID를 UI에 적용하고 원본 비율을 유지하는 스크립트는 다음과 같습니 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 리소스 검색 리소스 검색은 현재 웹과 메이커에서 이용할 수 있습니다. * [MSW 리소스](https://maplestoryworlds.nexon.com/resource) * 메이커의 **Resource Storage** 패널 # 스킬 고유 명칭으로 리소스 찾기 제작 리소스 조회 페이지에서는 여러 태그를 제공하고 있지만 아직 정확도가 높지 않습니다. 검색 시 가장 정확도가 높은 키워드는 **스킬의 고유 명칭**입니다. 예로 스킬 고유 명칭인 **워리어리프**로 검색하면 원하는 검색 결과를 확인하실 수 있습니다.

[task] | code [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | UI에 배치한 YoutubePlayerGUIComponent를 찾아서 Loop를 활성화하고 PlaySpeed를 1.5로 설정하는 스크립트를 작성해줘 [answer] | `YoutubePlayerGUIComponent` 컴포넌트를 가진 엔티티를 참조하고, `Loop` 프로퍼티를 `true`로 변경하며 `PlaySpeed` 프로퍼티를 `1.5`로 설정하는 스크립트입니다. 참고로, `YoutubePlayerGUIComponent`는 UI에 배치되는 컴포넌트이므로 클라이언트 공간(`[client only]`)에서 접근 및 설정하는 것이 적절합니다. ```lua Property: [None] YoutubePlayerGUIComponent youtubePlayer = nil Method: [client [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 내가 찍은 영상 혹은 함께 보고 싶은 영상을 가져와 재생할 수 있습니다. # Youtube 관련 컴포넌트 소개 영상은 UI로 사용하거나 World에 배치해 사용할 수 있습니다. UI로 사용할 경우 YoutubeGUIPlayerComponent를 사용하고, World에 배치할 경우 YoutubePlayerWorldComponent를 사용합니다. UI로 사용한다면 영상은 배치한 곳에 고정되므로, 맵을 돌아다니더라도 유저가 보고 있는 화면의 특정 위치에서 움직이지 않습니다. World에서 영상을 사용한다면 배치한

[task] | code [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | EffectService의 PlayEffect 메서드를 사용하여 Vector3(1,1,1) 크기로 이펙트를 실행하는 스크립트를 작성해줘 [answer] | 참고 문서에 포함된 사용 예시를 기준으로, `_EffectService:PlayEffect` 메서드를 통해 지정된 리소스 ID의 이펙트를 `Vector3(1,1,1)` 스케일로 실행하는 스크립트는 다음과 같습니다. ```lua Method: [client only] void PlayMyEffect() { _EffectService:PlayEffect("f396262ddb6e4d5581360496bb4e9f86", self.Entity, Vector3(0, 0, 0), 0, Vector3(1,1,1)) } ``` **설명: [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | **EffectService**를 활용하면 스크립트로 리소스를 호출할 수 있습니다. 자세한 예시는 [EffectService의 Examples](/apiReference?postId=304)에서 살펴봅시다. 사용 예시는 아래와 같습니다. ```lua _EffectService:PlayEffect("f396262ddb6e4d5581360496bb4e9f86",self.Entity,Vector3(x,y,0), 0, Vector3(1,1,1)) ``` ##### 원하는 애니메이션 프레임을 체크해서 사용하는 방법 애니메이션 이펙트를 사

[task] | code [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | SpriteRendererComponent 의 SpriteRUID 프로퍼티에 새로운 RUID 값을 할당하여 엔티티의 이미지를 즉시 변경하는 스크립트를 작성해줘 [answer] | 메이플스토리 월드에서 엔티티의 이미지를 즉시 변경하려면 `SpriteRendererComponent`의 `SpriteRUID` 프로퍼티에 32자리의 RUID 문자열을 할당하면 됩니다. 제공된 문서에서는 스크립트 내에서 이 프로퍼티를 직접 수정하여 이미지를 변경하는 예시로 `self.Entity.SpriteRendererComponent.SpriteRUID = ruid` 문법을 사용했습니다. 아래는 새로운 RUID 값을 설정하여 이미지를 변경하는 mLua 스크립트입니다. ```lua Property: [None] string Ne [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 리소스 검색 리소스 검색은 현재 웹과 메이커에서 이용할 수 있습니다. * [MSW 리소스](https://maplestoryworlds.nexon.com/resource) * 메이커의 **Resource Storage** 패널 # 스킬 고유 명칭으로 리소스 찾기 제작 리소스 조회 페이지에서는 여러 태그를 제공하고 있지만 아직 정확도가 높지 않습니다. 검색 시 가장 정확도가 높은 키워드는 **스킬의 고유 명칭**입니다. 예로 스킬 고유 명칭인 **워리어리프**로 검색하면 원하는 검색 결과를 확인하실 수 있습니다.

[task] | single_turn [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | 클라이언트 공간에서 발생하는 SpriteAnimPlayerChangeFrameEvent를 서버에서 직접 수신하여 공격 판정을 처리할 수 있나요? [answer] | 제공된 문서를 기준으로 확인한 결과, **SpriteAnimPlayerChangeFrameEvent**는 클라이언트 공간(Client Space)에서 발생하는 이벤트입니다. 문서의 예시 코드에서 이 이벤트 핸들러는 `[self]` 태그를 사용하고 있으며, 네이티브 이벤트 송신자 정보(Native Event Sender Info)에 "Space: Client"라고 명시되어 있습니다. 또한, 해당 이벤트가 포함된 컴포넌트(`ClimbableSpriteRendererComponent`, `SpriteRendererComponent`) [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | **EffectService**를 활용하면 스크립트로 리소스를 호출할 수 있습니다. 자세한 예시는 [EffectService의 Examples](/apiReference?postId=304)에서 살펴봅시다. 사용 예시는 아래와 같습니다. ```lua _EffectService:PlayEffect("f396262ddb6e4d5581360496bb4e9f86",self.Entity,Vector3(x,y,0), 0, Vector3(1,1,1)) ``` ##### 원하는 애니메이션 프레임을 체크해서 사용하는 방법 애니메이션 이펙트를 사

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | KeyDownEvent 핸들러에서 "P", "Alpha0", "Keypad0", "L" 키 입력에 따른 분기 조건을 4행의 표로 정리하세요. [answer] | KeyDownEvent 핸들러에서 처리하는 키 입력과 해당 동작을 정리하면 다음과 같습니다. | 키 입력 조건 | 실행 함수 | 동작 설명 | | :--- | :--- | :--- | | `"P"` | `self:Pause()` | 영상 멈춤 | | `"Alpha0"` 또는 `"Keypad0"` | `self:PlayFromStart()` | 영상 처음으로 돌아가 재생 시작 | | `"L"` | `self:PlayPause()` | 영상 일시 정지, 재생 토글 | 참고로, 제공된 문서의 `HandleKeyDownEvent` 예제 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 월드에 입장하면 영상을 바로 00:20초부터 재생을 시작하게 만들고, 재생 중에 특정 키를 입력할 때 함수가 동작하게 만듭니다. YoutubePlayerWorldComponent와 YoutubePlayerGUIComponent의 함수 사용법은 동일합니다. 예시는 YoutubePlayerWorldComponent가 기준입니다. 예시 Url: https://www.youtube.com/watch?v=9pL_b1fl9LQ&t=1s 1. YoutubePlayerController 스크립트 컴포넌트를 만들어, 배치한 Youtube 모델에

[task] | code [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | SpriteRendererComponent 의 SpriteRUID 프로퍼티에 지정된 리소스가 애니메이션일 경우 PlayRate 속도로 EndFrameIndex까지 재생 후 처음 프레임으로 돌아가도록 반복 재생하는 스크립트를 작성해줘 [answer] | 참고 문서에 따르면, `SpriteRendererComponent`에 `SpriteRUID` 프로퍼티를 설정하고 리소스가 애니메이션인 경우, `PlayRate` 속도로 `EndFrameIndex`까지 재생한 후 처음 프레임으로 돌아가도록 반복 재생하는 동작은 **별도의 스크립트 작성 없이 컴포넌트 내장 동작**입니다. 문서에는 해당 반복 재생 로직을 구현하는 mLua 스크립트 예제나 관련 API(예: 애니메이션 상태 변경 메서드, 프레임 수동 제어 메서드 등)가 명시되어 있지 않습니다. 따라서 요청하신 "반복 재생을 제어하는 스크 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 리소스 검색 리소스 검색은 현재 웹과 메이커에서 이용할 수 있습니다. * [MSW 리소스](https://maplestoryworlds.nexon.com/resource) * 메이커의 **Resource Storage** 패널 # 스킬 고유 명칭으로 리소스 찾기 제작 리소스 조회 페이지에서는 여러 태그를 제공하고 있지만 아직 정확도가 높지 않습니다. 검색 시 가장 정확도가 높은 키워드는 **스킬의 고유 명칭**입니다. 예로 스킬 고유 명칭인 **워리어리프**로 검색하면 원하는 검색 결과를 확인하실 수 있습니다.

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 인스턴스 맵 만들기 [question] | 인스턴스 룸에서 다른 인스턴스 룸으로 직접 이동할 수 없는 이유와 정적 맵을 경유해야 하는 절차를 3문장 이내로 설명하세요. [answer] | 인스턴스 룸은 서로 다른 독립된 공간이므로 `RoomService`를 통하지 않고는 룸 간 직접 이동을 지원하지 않기 때문입니다. 따라서 다른 인스턴스 룸으로 이동하려면 먼저 현재 인스턴스 룸에서 정적 맵으로 복귀해야 합니다. 이후 정적 맵에 도착한 상태에서 다시 `RoomService`의 이동 메서드를 호출하여 목표 인스턴스 룸으로 진입할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 월드를 제작하다 보면 특정한 유저만 입장할 수 있는 특수 던전 같은 별도의 공간을 만들고 싶을 때가 있습니다. 이때 `RoomService`를 활용할 수 있습니다 다른 유저들과 분리할 수 있는 별도의 공간을 만들고, 유저를 이동시키는 `RoomService`를 알아봅시다. 인스턴스 맵을 활용하기 위해 정적 룸, 정적 맵 개념을 함께 설명합니다. # 정적 룸 하나의 월드에는 하나의 **정적 룸(Static Room)**이 있습니다. 정적 룸에는 정적 맵이 생성됩니다. 유저는 정적 맵 간 이동을 자유롭게 할 수

[task] | code [pass] | ⏳ 미판정 [title] | 제작 가이드 활용법 [question] | HandleTouchEvent(TouchEvent event) 이벤트 핸들러에서 self:MyMethod()를 호출하여 log()로 "Touch"를 출력하고, _SpawnService:SpawnByModelId(1, "Item", Vector3(0,0,0), self.Entity)로 아이템을 스포awn하는 스크립트를 작성해줘 [answer] | 요청하신 `HandleTouchEvent` 이벤트 핸들러를 포함하여, 터치 시 "Touch"를 로그로 출력하고 아이템을 스포awn하는 mLua 스크립트입니다. ```lua Event Handler: [self] HandleTouchEvent(TouchEvent event) { self:OnTouchAction() } Method: [server only] void OnTouchAction() { log("Touch") _SpawnService:SpawnByModelId(1, "Item", Vector3(0, [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드에서는 다양한 형식의 가이드를 제공하고 있습니다. 메이플스토리 월드가 생소한 크리에이터라면 기본 **제작 가이드 - 시작하기 - [메이커 사용](/docs?postId=724)을** 먼저 살펴보며 기본 기능 익히기를 권장합니다. # 난이도 가이드를 살펴보기 전, 학습권장대상 배지를 확인하고 나에게 적절한 난이도인지 확인할 수 있습니다. * **Lv.1**: 메이커의 기본 기능과 컴포넌트의 기본 기능을 사용하고 싶은 크리에이터 * **Lv.2**: MSW의 기본 문법을 알고, 간단한 동작을 직접 만들 수 있는

[task] | code [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | `HandleTouchEvent` 이벤트 핸들러에서 터치가 감지되면 `self:MyMethod()`를 호출하여 엔티티의 `Vector2 Velocity` 프로퍼티를 변경하고, `wait` 함수를 이용해 1초 동안 대기 후 초기값으로 복원하는 스크립트를 작성해줘. [answer] | 요청하신 `HandleTouchEvent` 이벤트 핸들러와 `wait` 함수를 포함한 mLua 스크립트입니다. mLua에서 `wait` 함수는 비동기 코루틴 컨텍스트에서 작동하므로, 이벤트 핸들러 내부에서 직접 `wait`를 호출할 수 없습니다. 따라서 `HandleTouchEvent`에서 `self:MyMethod()`를 호출하고, `MyMethod` 메서드 내부에서 `wait`를 사용하여 1초 대기 후 복원하는 로직을 구현해야 합니다. ```lua Property: [None] Vector2 Velocity = Vector2 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 "인내의 숲"을 알고 계신가요? 인내의 숲을 검색해보면 많은 모험가들의 이야기를 찾아볼 수 있습니다. $$youtube HXMM4Vbx8aA $$ 인내의 숲은 점프를 이용해 발판을 넘어가며 목적지로 올라가는 게임입니다. 여러분은 인내의 숲을 보다 재미있게 만들 수 있는 색다른 아이디어를 갖고 있을지도 모릅니다. * 기존 인내의 숲은 너무 쉬운데? * 이렇게 하면 더 재미있을 것 같아. * 순위를 매기면 더 재미있지 않을까? * 서로 공격할 수 있으면 좋겠어. 메이플스토리 월드에서 이러한 아이디어를 현실화할

[task] | two_turn [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | 메이플스토리 월드에서 스킬 이펙트 리소스를 찾을 때 가장 정확한 검색 방법은 무엇인가요? [answer] | 메이플스토리 월드에서 스킬 이펙트 리소스를 찾을 때 가장 정확한 검색 방법은 **스킬의 고유 명칭**으로 검색하는 것입니다. 예를 들어, "워리어리프"와 같은 스킬 고유 명칭을 입력하면 원하는 검색 결과를 가장 정확하게 확인할 수 있습니다. 만약 정확한 스킬 명칭을 모른다면 메이플스토리 공식 가이드의 스킬 정보 페이지나 커뮤니티, 게임 플레이를 통해 확인한 후 검색하는 것이 좋습니다. 스프라이트 카테고리에서 직접 찾는 경우보다 태그를 활용해 애니메이션을 먼저 찾아 검색 범위를 좁히는 방법도 추천되나, 궁극적으로 특정 리소스를 정 [followup] | 스킬 고유 명칭이 아닌 태그로 찾을 때, 애니메이션 카테고리가 아닌 스프라이트 카테고리에서 검색하면 결과가 많아져서 원하는 리소스를 찾기가 어렵다는 점은 어떻게 해결할 수 있나요? [followup_answer] | 스프라이트 카테고리에서 검색 결과가 많아 원하는 리소스를 찾기 어려운 경우, **태그를 활용해 애니메이션 카테고리를 먼저 검색하여 범위를 좁히는 방법**을 사용하면 해결할 수 있습니다. 구체적인 과정은 다음과 같습니다. 1. **1차 검색**: 먼저 스킬 고유 명칭(예: 피어싱)으로 검색하여 관련 리소스를 찾습니다. 2. **고유 ID 태그 확인**: 찾은 리소스 중 원하는 것을 클릭하여 상세 보기 창을 엽니다. 이 창에서 `#리소스타입#고유 ID(#skillname#XXXXXXX)` 형태의 태그를 확인합니다. 3. **2 [scores] | [judge_reason] | [source_doc] | # 리소스 검색 리소스 검색은 현재 웹과 메이커에서 이용할 수 있습니다. * [MSW 리소스](https://maplestoryworlds.nexon.com/resource) * 메이커의 **Resource Storage** 패널 # 스킬 고유 명칭으로 리소스 찾기 제작 리소스 조회 페이지에서는 여러 태그를 제공하고 있지만 아직 정확도가 높지 않습니다. 검색 시 가장 정확도가 높은 키워드는 **스킬의 고유 명칭**입니다. 예로 스킬 고유 명칭인 **워리어리프**로 검색하면 원하는 검색 결과를 확인하실 수 있습니다.

[task] | two_turn [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | SpriteRendererComponent와 SpriteGUIRendererComponent에서 RUID를 사용할 때, 애니메이션 재생 속도나 UI 원본 사이즈 유지에 영향을 주는 프로퍼티들은 각각 무엇인가요? [answer] | SpriteRendererComponent와 SpriteGUIRendererComponent에서 RUID를 사용할 때 애니메이션 재생 속도나 UI 원본 사이즈 유지에 영향을 주는 프로퍼티는 다음과 같습니다. **SpriteRendererComponent** 애니메이션 리소스를 사용할 때 재생 속도와 반복 동작에 영향을 주는 프로퍼티는 다음과 같습니다. * **PlayRate**: 애니메이션의 재생 속도를 결정합니다. * **EndFrameIndex**: 애니메이션이 이 프레임까지 재생한 후 처음 프레임으로 돌아가도록 반복 [followup] | SpriteGUIRendererComponent에서 PreserveSprite를 NativeSize로 설정했을 때, 이펙트의 사이즈와 오프셋을 조정하기 위해 사용해야 하는 프로퍼티는 무엇인가요? [followup_answer] | SpriteGUIRendererComponent에서 PreserveSprite를 NativeSize로 설정했을 때, 이펙트의 사이즈와 오프셋을 조정하기 위해 사용해야 하는 프로퍼티는 **LocalScale**과 **LocalPosition**입니다. [scores] | [judge_reason] | [source_doc] | # 리소스 검색 리소스 검색은 현재 웹과 메이커에서 이용할 수 있습니다. * [MSW 리소스](https://maplestoryworlds.nexon.com/resource) * 메이커의 **Resource Storage** 패널 # 스킬 고유 명칭으로 리소스 찾기 제작 리소스 조회 페이지에서는 여러 태그를 제공하고 있지만 아직 정확도가 높지 않습니다. 검색 시 가장 정확도가 높은 키워드는 **스킬의 고유 명칭**입니다. 예로 스킬 고유 명칭인 **워리어리프**로 검색하면 원하는 검색 결과를 확인하실 수 있습니다.

[task] | code [pass] | ⏳ 미판정 [title] | 모델의 활용 [question] | 모델 프로퍼티의 Scale 값(x, y, z)을 변경하면 TransformComponent의 Scale도 함께 변경되는 투영 관계를 확인하기 위해, Vector3 타입의 NewScale 프로퍼티를 설정하고 OnBeginPlay()에서 self.Entity.TransformComponent.Scale을 해당 값으로 갱신하는 스크립트를 작성해줘 [answer] | 모델 프로퍼티는 실제 컴포넌트의 프로퍼티가 투영된 것이므로, 모델 프로퍼티의 `Scale` 값을 변경하면 `TransformComponent`의 `Scale`도 함께 변경됩니다. 질문하신 대로 스크립트 내에서 `Vector3` 타입의 `NewScale` 프로퍼티를 정의하고, `OnBeginPlay()`에서 이를 `self.Entity.TransformComponent.Scale`에 적용하여 투영 관계를 확인할 수 있는 스크립트는 다음과 같습니다. ```lua Property: [None] Vector3 NewScale = Vect [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 모델을 통해 엔티티를 생성할 수 있으며, **Preset List**에서 제공하는 **Preset**도 결국 모델이라는 것을 [Model](/docs?postId=55) 가이드를 통해 배웠습니다. **Preset List**의 모델은 **NativeModel**에서 확장되었기 때문에 **Preset List** 카테고리 단위로 **NativeModel**의 속성을 물려받습니다. 따라서 각 카테고리에 해당하는 **NativeModel**을 변경하면 **Preset List**의 모델에도 변화가 생깁니다. 예를 들어 **Preset

[task] | code [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | `_SpawnService:SpawnByModelId`를 사용하여 특정 위치에 NPC 엔티티를 스폰하고, 스폰된 엔티티에 `CustomFootholdComponent`를 추가하여 발판으로 사용할 수 있도록 설정하는 스크립트를 작성해줘. [answer] | 제시된 참고 문서에는 `_SpawnService:SpawnByModelId`를 사용하여 엔티티를 스폰하는 방법과 일반 오브젝트 엔티티에 `CustomFootholdComponent`를 추가하면 발판으로 변경된다는 정보는 포함되어 있습니다. 하지만 참고 문서에는 `CustomFootholdComponent`를 추가한 후 실제로 발판으로 동작하게 하려면 어떤 프로퍼티를 설정해야 하는지(예: 발판 높이, 크기 등)에 대한 구체적인 API나 프로퍼티 이름이 **없습니다.** 또한 `SpawnByModelId`의 모델 ID로 NPC를 직접 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 "인내의 숲"을 알고 계신가요? 인내의 숲을 검색해보면 많은 모험가들의 이야기를 찾아볼 수 있습니다. $$youtube HXMM4Vbx8aA $$ 인내의 숲은 점프를 이용해 발판을 넘어가며 목적지로 올라가는 게임입니다. 여러분은 인내의 숲을 보다 재미있게 만들 수 있는 색다른 아이디어를 갖고 있을지도 모릅니다. * 기존 인내의 숲은 너무 쉬운데? * 이렇게 하면 더 재미있을 것 같아. * 순위를 매기면 더 재미있지 않을까? * 서로 공격할 수 있으면 좋겠어. 메이플스토리 월드에서 이러한 아이디어를 현실화할

[task] | code [pass] | ⏳ 미판정 [title] | 제작 가이드 활용법 [question] | OnUpdate(number delta)에서 self.Entity.TransformComponent.Position의 Y 좌표가 0보다 작아지면 _TimerService:SetTimerOnce를 이용해 2초 후 Position을 초기값으로 되돌리는 스크립트를 작성해줘 [answer] | 요청하신 동작(OnUpdate에서 Y 좌표 확인 후 2초 지연 후 초기 위치 복원)을 수행하는 mLua 스크립트입니다. 참고 문서에 있는 API(`_TimerService:SetTimerOnce`, `self.Entity.TransformComponent.Position`)와 형식 규칙에 맞춰 작성했습니다. 초기 위치는 `OnBeginPlay`에서 저장해 두는 방식으로 구현했습니다. ```lua Property: [None] Vector3 InitialPosition = Vector3(0, 0, 0) [None] boolean [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드에서는 다양한 형식의 가이드를 제공하고 있습니다. 메이플스토리 월드가 생소한 크리에이터라면 기본 **제작 가이드 - 시작하기 - [메이커 사용](/docs?postId=724)을** 먼저 살펴보며 기본 기능 익히기를 권장합니다. # 난이도 가이드를 살펴보기 전, 학습권장대상 배지를 확인하고 나에게 적절한 난이도인지 확인할 수 있습니다. * **Lv.1**: 메이커의 기본 기능과 컴포넌트의 기본 기능을 사용하고 싶은 크리에이터 * **Lv.2**: MSW의 기본 문법을 알고, 간단한 동작을 직접 만들 수 있는

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 인스턴스 맵 만들기 [question] | 인스턴스 룸에 유저를 이동시키기 위해 필요한 전제 조건과 `RoomService` 메서드 이름을 단계별 번호 목록으로 나열하세요. [answer] | 인스턴스 룸으로 유저를 이동시키기 위한 전제 조건과 `RoomService` 메서드 이름은 다음과 같습니다. **1. 인스턴스 룸으로 유저를 이동시키기 위한 전제 조건** * **정적 룸 상태 유지**: 유저는 인스턴스 룸으로 이동하기 전 반드시 정적 룸(정적 맵)에 있어야 합니다. 인스턴스 룸에서 다른 인스턴스 룸으로 직접 이동할 수 없으며, 정적 맵을 거쳐야만 다른 인스턴스 룸으로 갈 수 있습니다. * **인스턴스 맵 설정**: 이동하려는 대상 맵의 `MapComponent`에서 `InstanceMap` 프로퍼티가 `t [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 월드를 제작하다 보면 특정한 유저만 입장할 수 있는 특수 던전 같은 별도의 공간을 만들고 싶을 때가 있습니다. 이때 `RoomService`를 활용할 수 있습니다 다른 유저들과 분리할 수 있는 별도의 공간을 만들고, 유저를 이동시키는 `RoomService`를 알아봅시다. 인스턴스 맵을 활용하기 위해 정적 룸, 정적 맵 개념을 함께 설명합니다. # 정적 룸 하나의 월드에는 하나의 **정적 룸(Static Room)**이 있습니다. 정적 룸에는 정적 맵이 생성됩니다. 유저는 정적 맵 간 이동을 자유롭게 할 수

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 인스턴스 맵 만들기 [question] | `GetOrCreateInstanceRoom` 함수에서 `_RoomService`를 호출할 때 사용하는 키 문자열의 구성 방식을 코드 블록으로만 출력하세요. [answer] | ```lua "InstanceRoom" .. tostring(self.roomIdx) ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 대기실에 모인 인원 중 Ready 버튼을 누른 3명만 게임이 진행될 맵으로 이동하게 만들어봅시다. #### 준비 이 예제에서는 시작 맵을 인스턴스 맵으로 보내는 정적 룸, 돌아오는 정적 룸으로 활용합니다. 1. 대기 맵과 인스턴스 맵을 만듭니다. * 정적 맵 이름: waitingmap * 인스턴스 맵 이름: dungeon 2. dungeon 맵을 인스턴스 맵으로 사용하기 위해 프로퍼티 에디터 창에서 **MapComponent의 InstanceMap 프로퍼티**를 활성화합니다. 3. UI 에디터 - 좌측 기

[task] | code [pass] | ⏳ 미판정 [title] | 모델의 활용 [question] | 엔티티 생성 시 모델 프로퍼티의 Scale 값이 TransformComponent의 Scale에 반영되는지 확인하기 위해 _SpawnService:SpawnByModelId()로 엔티티를 생성한 후 self.Entity.TransformComponent.Scale을 출력하는 스크립트를 작성해줘 [answer] | `_SpawnService:SpawnByModelId()`를 사용하여 엔티티를 생성하면, 해당 모델에 설정된 **모델 프로퍼티(Model Property)**가 적용됩니다. 모델 프로퍼티 중 `Scale`은 컴포넌트 프로퍼티의 투영이므로, 모델에서 `Scale` 값을 변경하면 실제 엔티티의 `TransformComponent.Scale` 값도 동일하게 반영됩니다. 따라서 생성된 엔티티의 `TransformComponent.Scale`을 출력하면 모델에 설정된 Scale 값을 확인할 수 있습니다. 아래는 `OnBeginPlay() [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 모델을 통해 엔티티를 생성할 수 있으며, **Preset List**에서 제공하는 **Preset**도 결국 모델이라는 것을 [Model](/docs?postId=55) 가이드를 통해 배웠습니다. **Preset List**의 모델은 **NativeModel**에서 확장되었기 때문에 **Preset List** 카테고리 단위로 **NativeModel**의 속성을 물려받습니다. 따라서 각 카테고리에 해당하는 **NativeModel**을 변경하면 **Preset List**의 모델에도 변화가 생깁니다. 예를 들어 **Preset

[task] | code [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | 월드 내 특정 좌표에 YoutubePlayerWorld 엔티티를 생성하고 Shuffle을 활성화하는 스크립트를 작성해줘 [answer] | 월드 내 특정 좌표에 `YoutubePlayerWorld` 엔티티를 생성하고 `Shuffle`을 활성화하려면 `_SpawnService`를 사용해 엔티티를 생성한 뒤, 해당 엔티티의 `YoutubePlayerWorldComponent`에 접근하여 프로퍼티를 설정해야 합니다. 참고 문서에 제공된 정보와 mLua 스크립트 규칙에 따라 작성한 코드는 다음과 같습니다. ```lua Property: [None] string modelId = "YoutubePlayerWorld" -- 실제 프로젝트의 모델 ID로 대체 필요 Vector3 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 내가 찍은 영상 혹은 함께 보고 싶은 영상을 가져와 재생할 수 있습니다. # Youtube 관련 컴포넌트 소개 영상은 UI로 사용하거나 World에 배치해 사용할 수 있습니다. UI로 사용할 경우 YoutubeGUIPlayerComponent를 사용하고, World에 배치할 경우 YoutubePlayerWorldComponent를 사용합니다. UI로 사용한다면 영상은 배치한 곳에 고정되므로, 맵을 돌아다니더라도 유저가 보고 있는 화면의 특정 위치에서 움직이지 않습니다. World에서 영상을 사용한다면 배치한

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 인스턴스 맵 만들기 [question] | 인스턴스 맵을 활성화하기 위해 프로퍼티 에디터에서 수정해야 하는 컴포넌트와 프로퍼티 이름을 정확히 짝지어 1문장으로 답하세요. [answer] | 인스턴스 맵을 활성화하기 위해서는 프로퍼티 에디터에서 **MapComponent**의 **InstanceMap** 프로퍼티를 활성화해야 합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 대기실에 모인 인원 중 Ready 버튼을 누른 3명만 게임이 진행될 맵으로 이동하게 만들어봅시다. #### 준비 이 예제에서는 시작 맵을 인스턴스 맵으로 보내는 정적 룸, 돌아오는 정적 룸으로 활용합니다. 1. 대기 맵과 인스턴스 맵을 만듭니다. * 정적 맵 이름: waitingmap * 인스턴스 맵 이름: dungeon 2. dungeon 맵을 인스턴스 맵으로 사용하기 위해 프로퍼티 에디터 창에서 **MapComponent의 InstanceMap 프로퍼티**를 활성화합니다. 3. UI 에디터 - 좌측 기

← → 방향키로 페이지 이동 · 숫자 입력 후 Enter로 점프