[task] | instruction_following [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | YoutubePlayerWorldComponent 프로퍼티 중 'Volum'과 'PlaySpeed'의 허용 범위 값만을 표로 정리해서 출력해 주세요. [answer] | | 프로퍼티 | 허용 범위 | | :--- | :--- | | Volum | 0부터 1 사이의 값 | | PlaySpeed | 0.5부터 3 사이의 값 | [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 내가 찍은 영상 혹은 함께 보고 싶은 영상을 가져와 재생할 수 있습니다. # Youtube 관련 컴포넌트 소개 영상은 UI로 사용하거나 World에 배치해 사용할 수 있습니다. UI로 사용할 경우 YoutubeGUIPlayerComponent를 사용하고, World에 배치할 경우 YoutubePlayerWorldComponent를 사용합니다. UI로 사용한다면 영상은 배치한 곳에 고정되므로, 맵을 돌아다니더라도 유저가 보고 있는 화면의 특정 위치에서 움직이지 않습니다. World에서 영상을 사용한다면 배치한
[task] | single_turn [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | 리소스 검색 시 정확도가 가장 높은 검색 키워드는 무엇이며, 정확한 스킬 명칭을 모를 때 어떻게 찾을 수 있나요? [answer] | 리소스 검색 시 가장 정확도가 높은 검색 키워드는 **스킬의 고유 명칭**입니다. 정확한 스킬 명칭을 모를 경우, 메이플스토리 공식 가이드(4차 전직 및 하이퍼 스킬 정보 페이지)를 참고하거나, 메이플스토리 커뮤니티를 이용하거나 게임을 플레이하며 해당 스킬의 고유 명칭을 확인할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 리소스 검색 리소스 검색은 현재 웹과 메이커에서 이용할 수 있습니다. * [MSW 리소스](https://maplestoryworlds.nexon.com/resource) * 메이커의 **Resource Storage** 패널 # 스킬 고유 명칭으로 리소스 찾기 제작 리소스 조회 페이지에서는 여러 태그를 제공하고 있지만 아직 정확도가 높지 않습니다. 검색 시 가장 정확도가 높은 키워드는 **스킬의 고유 명칭**입니다. 예로 스킬 고유 명칭인 **워리어리프**로 검색하면 원하는 검색 결과를 확인하실 수 있습니다.
[task] | code [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | Workspace의 DefaultPlayer를 _EntityService로 조회하여 MovementComponent의 InputSpeed와 JumpForce 값을 각각 5.0과 15.0으로 수정하는 스크립트를 작성해줘. [answer] | `Workspace - DefaultPlayer` 경로에 있는 엔티티를 `_EntityService`로 조회하여 `MovementComponent`의 속성을 수정하는 스크립트입니다. 참고 문서에 따르면, 캐릭터의 이동 속도와 점프력은 `MovementComponent`의 `InputSpeed`와 `JumpForce` 프로퍼티로 제어됩니다. ```lua Method: [server only] void OnBeginPlay() { local target = _EntityService:GetEntityByPath("/Defau [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 이번에는 캐릭터를 공격하는 함정을 곳곳에 설치하여 게임의 난이도를 올려보겠습니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 이 함정은 바나나를 던져 캐릭터를 공격합니다. 맵 곳곳에 추가 타일과 원숭이 함정을 배치합니다. 2. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지기 때문에, 캐릭터의 오른쪽에 오도록 배치할 수밖에 없습니다. 바나나를 왼쪽에서 오른쪽으로 던지도록 수정해 봅시다. 원숭이 함정을 다음과 같이 왼쪽에 배치합니다. 원숭이 함정을 선택하고 **프로퍼티 에디터
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | 월드 배치와 UI 배치 시 각각 사용할 수 있는 컴포넌트 이름과 배치 시 영상의 고정 방식을 3문장 이내로 설명해 주세요. [answer] | 월드 배치에는 `YoutubePlayerWorldComponent`를, UI 배치에는 `YoutubeGUIPlayerComponent`를 사용합니다. 월드에 배치한 영상은 해당 위치에 고정되어 플레이어가 움직여도 따라오지 않습니다. UI로 배치한 영상은 화면의 특정 위치에 고정되어 맵 이동 시에도 위치가 변하지 않습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 내가 찍은 영상 혹은 함께 보고 싶은 영상을 가져와 재생할 수 있습니다. # Youtube 관련 컴포넌트 소개 영상은 UI로 사용하거나 World에 배치해 사용할 수 있습니다. UI로 사용할 경우 YoutubeGUIPlayerComponent를 사용하고, World에 배치할 경우 YoutubePlayerWorldComponent를 사용합니다. UI로 사용한다면 영상은 배치한 곳에 고정되므로, 맵을 돌아다니더라도 유저가 보고 있는 화면의 특정 위치에서 움직이지 않습니다. World에서 영상을 사용한다면 배치한
[task] | code [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | _SpawnService를 사용하여 특정 모델 ID와 위치 정보를 지정하여 캐릭터를 스폰하고, 해당 Entity의 TransformComponent.Position을 좌측 하단 좌표로 설정하는 스크립트를 작성해줘. [answer] | 제공된 참고 문서에는 `_SpawnService`를 사용하여 캐릭터를 스폰하거나 `TransformComponent.Position`을 직접 설정하는 mLua 스크립트 예제가 포함되어 있지 않습니다. 문서에서 다루는 내용과 관련이 있는 부분만 정리하자면, 게임 시작 위치를 설정하는 방법은 **Preset List - Special**에서 **SpawnLocation** 오브젝트를 선택하여 맵의 원하는 위치(예: 하단 타일 좌측)에 배치하는 것이었습니다. 이는 에디터 상에서 오브젝트를 배치하는 방식이며, `_SpawnService` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 이번에는 캐릭터를 공격하는 함정을 곳곳에 설치하여 게임의 난이도를 올려보겠습니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 이 함정은 바나나를 던져 캐릭터를 공격합니다. 맵 곳곳에 추가 타일과 원숭이 함정을 배치합니다. 2. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지기 때문에, 캐릭터의 오른쪽에 오도록 배치할 수밖에 없습니다. 바나나를 왼쪽에서 오른쪽으로 던지도록 수정해 봅시다. 원숭이 함정을 다음과 같이 왼쪽에 배치합니다. 원숭이 함정을 선택하고 **프로퍼티 에디터
[task] | two_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | NPC(npc-2412)를 배치한 후 네임택(NameTag)에 이름을 표시하기 위해 어떤 프로퍼티를 수정해야 하나요? [answer] | 배치한 NPC(npc-2412)의 프로퍼티 에디터에서 **NameTagComponent**의 **Name** 프로퍼티를 수정하면 됩니다. 이 값을 입력하면 NPC 하단에 네임택으로 해당 이름이 표시됩니다. [followup] | NPC를 찾기 어려울 때 Preset List 검색창을 사용하는 팁과, NameTagComponent - Name 프로퍼티에 값을 입력한 후 Scene에서 확인하는 과정은 어떻게 이루어지나요? [followup_answer] | NPC를 찾기 어려울 때는 **Preset List**의 검색창을 사용하여 NPC 이름(예: `npc-2412`)을 입력하면 쉽고 빠르게 원하는 NPC를 찾을 수 있습니다. **NameTagComponent - Name** 프로퍼티에 값을 입력한 후 확인하는 과정은 다음과 같습니다. 1. 배치한 NPC를 선택합니다. 2. 해당 NPC의 프로퍼티 에디터에서 **NameTagComponent - Name** 필드에 원하는 이름을 입력합니다. 3. 입력을 완료하면 **Scene** 뷰에서 NPC 하단에 입력한 이름이 네임택으로 표시되 [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 "인내의 숲"을 알고 계신가요? 인내의 숲을 검색해보면 많은 모험가들의 이야기를 찾아볼 수 있습니다. $$youtube HXMM4Vbx8aA $$ 인내의 숲은 점프를 이용해 발판을 넘어가며 목적지로 올라가는 게임입니다. 여러분은 인내의 숲을 보다 재미있게 만들 수 있는 색다른 아이디어를 갖고 있을지도 모릅니다. * 기존 인내의 숲은 너무 쉬운데? * 이렇게 하면 더 재미있을 것 같아. * 순위를 매기면 더 재미있지 않을까? * 서로 공격할 수 있으면 좋겠어. 메이플스토리 월드에서 이러한 아이디어를 현실화할
[task] | single_turn [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | PlaySpeed 값이 0.5 미만 또는 3 이상으로 설정했을 때 어떤 문제가 발생하나요? [answer] | 문서에 따르면 `PlaySpeed` 프로퍼티는 **0.5부터 3 사이의 값**만 사용할 수 있는 것으로 명시되어 있습니다. 따라서 0.5 미만 또는 3 이상의 값을 설정할 경우, 허용된 범위를 벗어났으므로 정상적으로 동작하지 않거나 오류가 발생할 수 있습니다. 다만, 문서에는 허용 범위를 벗어났을 때 구체적으로 어떤 에러 메시지가 뜨는지나 어떤 현상이 발생하는지에 대한 추가적인 기술은 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 내가 찍은 영상 혹은 함께 보고 싶은 영상을 가져와 재생할 수 있습니다. # Youtube 관련 컴포넌트 소개 영상은 UI로 사용하거나 World에 배치해 사용할 수 있습니다. UI로 사용할 경우 YoutubeGUIPlayerComponent를 사용하고, World에 배치할 경우 YoutubePlayerWorldComponent를 사용합니다. UI로 사용한다면 영상은 배치한 곳에 고정되므로, 맵을 돌아다니더라도 유저가 보고 있는 화면의 특정 위치에서 움직이지 않습니다. World에서 영상을 사용한다면 배치한
[task] | single_turn [pass] | ⏳ 미판정 [title] | 제작 가이드 활용법 [question] | Lv.1과 Lv.2 학습권장대상 배지의 차이가 무엇인지, 난이도를 어떻게 선택해야 하는지 궁금해요. [answer] | 제공된 정보에 따르면, 메이플스토리 월드 가이드의 난이도는 다음과 같이 구분됩니다. **1. Lv.1과 Lv.2의 차이** * **Lv.1**: 메이커(Maker)의 기본 기능과 컴포넌트의 기본 기능을 사용하고자 하는 크리에이터를 대상으로 합니다. * **Lv.2**: MSW(메이플스토리 월드)의 기본 문법을 알고, 간단한 동작을 직접 만들어 볼 수 있는 크리에이터를 대상으로 합니다. 즉, Lv.1은 도구(메이커)와 기본 요소(컴포넌트)의 **사용법**에 초점을 맞추고 있으며, Lv.2는 언어(문법)를 이해하여 **직접 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드에서는 다양한 형식의 가이드를 제공하고 있습니다. 메이플스토리 월드가 생소한 크리에이터라면 기본 **제작 가이드 - 시작하기 - [메이커 사용](/docs?postId=724)을** 먼저 살펴보며 기본 기능 익히기를 권장합니다. # 난이도 가이드를 살펴보기 전, 학습권장대상 배지를 확인하고 나에게 적절한 난이도인지 확인할 수 있습니다. * **Lv.1**: 메이커의 기본 기능과 컴포넌트의 기본 기능을 사용하고 싶은 크리에이터 * **Lv.2**: MSW의 기본 문법을 알고, 간단한 동작을 직접 만들 수 있는
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | 이펙트 리소스 호출과 프레임 이벤트 처리의 차이점을 '구분 요소', '사용 목적', '관련 API' 3열로 이루어진 표로 정리하세요. [answer] | | 구분 요소 | 사용 목적 | 관련 API | | :--- | :--- | :--- | | **이펙트 리소스 호출** | 스크립트를 통해 시각적 이펙트(리소스)를 생성하고 재생합니다. | `_EffectService:PlayEffect` | | **프레임 이벤트 처리** | 애니메이션 재생 중 특정 프레임(타이밍)이 도달했을 때 트리거(예: 공격 판정)를 발생시킵니다. | `HandleSpriteAnimPlayerChangeFrameEvent`, `SpriteAnimPlayerChangeFrameEvent` | [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] | two_turn [pass] | ⏳ 미판정 [title] | 모델의 활용 [question] | 모델 프로퍼티와 실제 컴포넌트 프로퍼티 사이의 값 동기화 관계는 어떻게 형성되는가요? [answer] | 모델 프로퍼티와 실제 컴포넌트 프로퍼티 사이의 값 동기화 관계는 **투영(Projection)**을 통해 형성됩니다. 모델 프로퍼티는 독립적으로 존재하는 별도의 값이 아니라, 해당 모델 또는 엔티티에 포함된 특정 컴포넌트의 프로퍼티를 즐겨찾기처럼 모아놓은 형태입니다. 따라서 모델 프로퍼티의 값이 변경되면, 이에 대응하는 실제 컴포넌트의 프로퍼티 값도 즉시 함께 변경됩니다. 예를 들어, 엔티티의 모델 프로퍼티 중 `Scale` 값을 `x = 10, y = 10, z = 10`으로 수정하면, 이는 곧 `TransformComponen [followup] | Object-1 엔티티의 모델 프로퍼티 Scale 을 x = 10, y = 10, z = 10 으로 변경하면 TransformComponent 의 Scale 값에 어떤 변화가 일어나나요? [followup_answer] | Object-1 엔티티의 모델 프로퍼티 Scale 값을 x = 10, y = 10, z = 10 으로 변경하면, 이에 해당하는 TransformComponent 의 Scale 값도 동일하게 x = 10, y = 10, z = 10 으로 바뀝니다. 모델 프로퍼티는 컴포넌트의 프로퍼티가 투영된 것이기 때문에, 모델 프로퍼티의 값이 변경되면 이에 해당하는 컴포넌트의 프로퍼티 값도 함께 변경되는 일방적 동기화 관계가 형성됩니다. 따라서 에디터에서 모델 프로퍼티의 Scale 을 수정하는 순간, TransformComponent 가 실제로 [scores] | [judge_reason] | [source_doc] | 모델을 통해 엔티티를 생성할 수 있으며, **Preset List**에서 제공하는 **Preset**도 결국 모델이라는 것을 [Model](/docs?postId=55) 가이드를 통해 배웠습니다. **Preset List**의 모델은 **NativeModel**에서 확장되었기 때문에 **Preset List** 카테고리 단위로 **NativeModel**의 속성을 물려받습니다. 따라서 각 카테고리에 해당하는 **NativeModel**을 변경하면 **Preset List**의 모델에도 변화가 생깁니다. 예를 들어 **Preset
[task] | single_turn [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | 월드 배치한 영상은 플레이어 움직일 때 화면에 고정되지 않나요? [answer] | 네, 월드에 배치한 영상은 플레이어가 움직여도 화면에 고정되지 않습니다. 월드에서 영상을 사용할 경우 `YoutubePlayerWorldComponent`를 사용하게 되는데, 이 컴포넌트는 영상이 배치된 월드 좌표에 고정됩니다. 따라서 플레이어가 맵을 돌아다니거나 시점을 이동해도 영상은 원래 배치된 위치에 그대로 남아있으며, 화면의 특정 위치에 고정되어 움직이지 않는 방식은 아닙니다. 반면, UI로 영상을 사용할 경우 `YoutubeGUIPlayerComponent`를 사용하며, 이때는 유저가 보는 화면의 특정 위치에 고정되어 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 내가 찍은 영상 혹은 함께 보고 싶은 영상을 가져와 재생할 수 있습니다. # Youtube 관련 컴포넌트 소개 영상은 UI로 사용하거나 World에 배치해 사용할 수 있습니다. UI로 사용할 경우 YoutubeGUIPlayerComponent를 사용하고, World에 배치할 경우 YoutubePlayerWorldComponent를 사용합니다. UI로 사용한다면 영상은 배치한 곳에 고정되므로, 맵을 돌아다니더라도 유저가 보고 있는 화면의 특정 위치에서 움직이지 않습니다. World에서 영상을 사용한다면 배치한
[task] | code [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 원숭이 함정 Entity의 SpriteRendererComponent를 접근하여 FlipX 프로퍼티의 현재 값을 log 함수로 출력하는 스크립트를 작성해줘. [answer] | 원숭이 함정 Entity의 `SpriteRendererComponent`를 통해 `FlipX` 프로퍼티의 현재 값을 확인하려면, 해당 컴포넌트를 직접 참조하여 값을 로그로 출력하는 메서드를 작성하면 됩니다. ```lua Method: [client only] void OnBeginPlay() { local spriteRenderer = self.Entity.SpriteRendererComponent if spriteRenderer ~= nil then log("원숭이 함정 FlipX 값: ", spri [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 이번에는 캐릭터를 공격하는 함정을 곳곳에 설치하여 게임의 난이도를 올려보겠습니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 이 함정은 바나나를 던져 캐릭터를 공격합니다. 맵 곳곳에 추가 타일과 원숭이 함정을 배치합니다. 2. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지기 때문에, 캐릭터의 오른쪽에 오도록 배치할 수밖에 없습니다. 바나나를 왼쪽에서 오른쪽으로 던지도록 수정해 봅시다. 원숭이 함정을 다음과 같이 왼쪽에 배치합니다. 원숭이 함정을 선택하고 **프로퍼티 에디터
[task] | two_turn [pass] | ⏳ 미판정 [title] | 엔티티의 생성과 삭제, 유효성 체크 [question] | `SpawnService`로 생성한 엔티티를 3초 후 삭제하는 과정에서 `_EntityService:Destroy`와 `Entity:Destroy` 중 어떤 것을 사용해야 하며, 그 차이가 무엇인가요? [answer] | `_EntityService:Destroy`와 `Entity:Destroy`는 모두 엔티티를 삭제하는 데 사용할 수 있으며, 제공된 문서에서는 두 가지 방식이 동일하게 동작하는 것으로 제시되어 있습니다. **차이점 및 선택 기준** 문서에는 두 방식의 기술적 차이점(예: 성능, 콜백 처리 등)에 대한 명시적인 설명이 없습니다. 다만, 코드 예제를 통해 두 가지 접근 방식이 모두 유효함을 확인할 수 있습니다. 1. **`_EntityService:Destroy(entity)`**: 서비스 객체를 통해 엔티티를 삭제하는 방식입니 [followup] | `Entity:Destroy`를 사용할 때 `isvalid` 체크 로직이 어떻게 변해야 하는지, 그리고 삭제 후 `self.SpawnedEntity` 변수를 `nil`로 초기화하는 것이 필요한지 코드 예시를 요청합니다. [followup_answer] | 제공된 문서에 따르면, `Entity:Destroy`를 사용하더라도 `isvalid` 체크 로직은 `_EntityService:Destroy`를 사용할 때와 동일하게 유지됩니다. ### 1. `isvalid` 체크 로직의 변화 여부 `isvalid` 함수는 엔티티가 **삭제 대기 중**인지 또는 **이미 삭제되었는지**를 확인하는 글로벌 함수입니다. `Entity:Destroy`는 엔티티 객체의 메서드이므로, 호출 후 엔티티는 삭제 대기 상태나 삭제 완료 상태로 전환됩니다. 따라서 `self.SpawnedEntity`가 참조하 [scores] | [judge_reason] | [source_doc] | **SpawnService**의 스폰 기능을 통해 엔티티를 생성하고, 생성된 후 3초 후에 제거되도록 합니다. 예제는 위 엔티티 생성에서 사용한 **SpawnManager** 스크립트 컴포넌트를 활용합니다. 1. 프로퍼티를 추가하고, 타입과 이름을 다음과 같이 설정합니다. ```lua Property: [none] any SpawnedEntity = nil ``` 2. `SpawnByModelId` 함수를 다음과 같이 수정합니다. ```lua void SpawnByMode
[task] | two_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 메이플스토리 맵을 쉽게 불러와서 인내의 숲 배경으로 활용하는 기능이 있다면, 이를 활성화하고 적용하는 방법은 무엇인가요? [answer] | 메이플스토리 맵을 불러와서 인내의 숲 배경으로 활용하는 기능은 **메이플스토리 맵 불러오기** 기능입니다. 이 기능을 활성화하고 적용하는 방법은 다음과 같습니다. 1. 메이플스토리 월드 에디터 상단 메뉴에서 **Window** 항목을 클릭합니다. 2. 팝업 메뉴에서 **MapleStory Map**을 선택합니다. 3. 해당 창에서 원하는 메이플스토리 맵을 선택하여 불러옵니다. 이 기능을 통해 기존 메이플스토리 맵의 지형과 구조를 쉽게 가져와 인내의 숲의 배경이나 맵 레이아웃으로 활용할 수 있습니다. [followup] | Window - MapleStory Map 메뉴를 통해 기존 메이플스토리 맵을 불러와 현재 제작 중인 인내의 숲 맵에 적용하는 구체적인 단계와, 이 기능이 제공하는 장점에는 어떤 것들이 있나요? [followup_answer] | 참고 문서에 제공된 정보만 근거로 답변드립니다. **구체적인 단계** 1. 메이플스토리 월드 에디터 상단 메뉴에서 **Window** 항목을 클릭합니다. 2. 팝업 메뉴에서 **MapleStory Map**을 선택합니다. 3. 해당 창에서 원하는 메이플스토리 맵을 선택하여 불러옵니다. **기능의 장점** 참고 문서에서는 이 기능의 구체적인 장점이나 세부 효과(예: 제작 시간 단축, 특정 맵 데이터의 보존 여부 등)에 대해 명시하고 있지 않습니다. 문서에 포함된 설명은 "메이플스토리 맵을 쉽게 제작할 수 있도록" 하는 기능이 [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 "인내의 숲"을 알고 계신가요? 인내의 숲을 검색해보면 많은 모험가들의 이야기를 찾아볼 수 있습니다. $$youtube HXMM4Vbx8aA $$ 인내의 숲은 점프를 이용해 발판을 넘어가며 목적지로 올라가는 게임입니다. 여러분은 인내의 숲을 보다 재미있게 만들 수 있는 색다른 아이디어를 갖고 있을지도 모릅니다. * 기존 인내의 숲은 너무 쉬운데? * 이렇게 하면 더 재미있을 것 같아. * 순위를 매기면 더 재미있지 않을까? * 서로 공격할 수 있으면 좋겠어. 메이플스토리 월드에서 이러한 아이디어를 현실화할
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | `SpriteAnimPlayerChangeFrameEvent` 핸들러에서 특정 프레임 도달 시 공격 판정을 실행하는 코드만 출력하고, 설명은 주석으로 작성하세요. [answer] | ```lua Event Handler: [self] HandleSpriteAnimPlayerChangeFrameEvent(SpriteAnimPlayerChangeFrameEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: ClimbableSpriteRendererComponent -- Space: Client ------------------------------------------------------- [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] | _SpawnService:SpawnByModelId 메서드를 사용하여 Workspace에서 생성한 신규 모델 ID를 전달받아 플레이어 위치 기준으로 상대 좌표에 UI 엔티티를 생성하는 스크립트를 작성해줘 [answer] | 제공된 참고 문서에는 `_SpawnService:SpawnByModelId` 메서드의 사용 예시와 UI 엔티티 모델 생성 방법이 포함되어 있습니다. 하지만 **플레이어 위치를 조회하는 API**(예: `_PlayerService` 등)나 **`Vector3` 좌표 계산을 위한 특정 함수**에 대한 설명은 문서에 없습니다. 따라서 요청하신 "플레이어 위치 기준으로 상대 좌표"를 계산하는 로직은 문서에 없는 API를 지어내면 안 되므로, **플레이어 위치를 알 수 있는 전제 하에** 해당 위치를 `pos` 인자로 전달하는 형태의 코드 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 엔티티를 생성할 때는 주로 **Preset List**의 모델을 활용합니다. **Preset List**의 모델은 기본적으로 **NativeModel**의 특성을 물려받습니다. 그래서 **Preset List**의 모델 속성을 변경하려면 **NativeModel**을 수정해야 합니다. 하지만 **NativeModel**의 속성을 변경하면 해당 **NativeModel**에서 확장된 **Preset List**의 모델 속성이 모두 변경되어 버립니다. 작업 과정에서 원래 모델의 특성이 필요할 때는 또다시 수정해야 하므로 불편합니다.
[task] | code [pass] | ⏳ 미판정 [title] | 리소스 찾기 [question] | Resource Storage의 '내 리소스' 폴더 구조를 이해하여, 최상위 Root 폴더 1개와 하위 폴더 최대 4단계, 각 단계별 최대 100개 폴더 생성 규칙 및 폴더 이름에 `/`, `\`, `|` 기호 사용 금지, 같은 단계 중복 이름 방지 로직을 구현하는 유틸리티 스크립트를 작성해줘 [answer] | 제시된 참고 문서에 따르면, Resource Storage의 '내 리소스' 폴더 구조는 다음과 같은 규칙을 따릅니다. 1. **최상위 Root 폴더**: 1개만 존재합니다. 2. **폴더 깊이**: 최상위 Root를 포함하여 총 4단계까지 구성할 수 있습니다. (Root가 1단계라면, 하위 폴더는 3단계까지 생성 가능함을 의미하거나, Root를 제외한 하위 폴더가 최대 4단계인지 문서 표현이 다소 모호하지만, "폴더는 4단계로 구성할 수 있다"고 명시되어 있으므로 총 깊이를 4로 해석하는 것이 일반적입니다. 다만, "하위 폴더 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 방대한 리소스 속에서 크리에이터에게 필요한 리소스만 골라 활용할 수 있습니다. 또한 크리에이터가 제작한 리소스를 추가해 제작에 활용할 수도 있습니다. # 리소스 스토리지 소개 메이플스토리 월드에서는 많은 리소스를 **Preset List**로 제공하지만, 모든 리소스가 **Preset List**에 있는 것은 아닙니다. 보다 방대한 데이터에서 원하는 리소스를 검색할 때는 **Resource Storage**를 활용해 봅시다. **Resource Storage**의 기본 위치는 **Scene** 탭 옆입니다
[task] | code [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | SpriteAnimPlayerChangeFrameEvent를 처리하여 애니메이션이 7프레임일 때 로그를 출력하는 스크립트를 작성해줘 [answer] | ```lua Event Handler: [self] HandleSpriteAnimPlayerChangeFrameEvent(SpriteAnimPlayerChangeFrameEvent event) { local FrameIndex = event.FrameIndex if FrameIndex == 7 then log("7프레임에 공격 판정을 발생시킵니다.") end } ``` [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] | 맵 레이어가 겹치는 상황에서 영상 표시 우선순위를 조정하려면 어떤 프로퍼티를 사용해야 하나요? [answer] | 맵 레이어가 겹치는 상황에서 영상 표시 우선순위를 조정하려면 `YoutubePlayerWorldComponent`의 **`SortingLayer`**와 **`OrderInLayer`** 프로퍼티를 사용해야 합니다. * **`SortingLayer`**: 2개 이상의 `YoutubePlayer`가 겹쳤을 때, 어떤 레이어가 먼저 보이는지를 결정하는 우선순위를 지정합니다. * **`OrderInLayer`**: 동일한 레이어 안에 있는 엔티티들의 순서를 정밀하게 정렬할 때 사용합니다. 참고로 이 기능은 `IgnoreMapLa [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 내가 찍은 영상 혹은 함께 보고 싶은 영상을 가져와 재생할 수 있습니다. # Youtube 관련 컴포넌트 소개 영상은 UI로 사용하거나 World에 배치해 사용할 수 있습니다. UI로 사용할 경우 YoutubeGUIPlayerComponent를 사용하고, World에 배치할 경우 YoutubePlayerWorldComponent를 사용합니다. UI로 사용한다면 영상은 배치한 곳에 고정되므로, 맵을 돌아다니더라도 유저가 보고 있는 화면의 특정 위치에서 움직이지 않습니다. World에서 영상을 사용한다면 배치한
[task] | code [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | `OnUpdate` 함수에서 `delta` 값을 누적하여 5초가 지나면 `_TimerService:SetTimerOnce`로 타이머를 설정하고, 타이머가 만료되면 `log`를 통해 메시지를 출력하는 스크립트를 작성해줘. [answer] | 요청하신 로직을 구현한 mLua 스크립트입니다. `OnUpdate`에서 매 프레임마다 전달되는 `delta` 값을 누적하여 5초가 넘으면 타이머를 설정하고, 해당 타이머가 만료되면 로그를 출력하도록 작성했습니다. ```lua Property: [None] number elapsedTime = 0 Method: [server only] void OnUpdate(number delta) { self.elapsedTime = self.elapsedTime + delta if self.elapsedTime >= [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 "인내의 숲"을 알고 계신가요? 인내의 숲을 검색해보면 많은 모험가들의 이야기를 찾아볼 수 있습니다. $$youtube HXMM4Vbx8aA $$ 인내의 숲은 점프를 이용해 발판을 넘어가며 목적지로 올라가는 게임입니다. 여러분은 인내의 숲을 보다 재미있게 만들 수 있는 색다른 아이디어를 갖고 있을지도 모릅니다. * 기존 인내의 숲은 너무 쉬운데? * 이렇게 하면 더 재미있을 것 같아. * 순위를 매기면 더 재미있지 않을까? * 서로 공격할 수 있으면 좋겠어. 메이플스토리 월드에서 이러한 아이디어를 현실화할
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | `_EffectService:PlayEffect` 메서드의 매개변수 5개를 인자 순서대로 나열하세요. [answer] | 참고 문서에 제시된 사용 예시 `_EffectService:PlayEffect("f396262ddb6e4d5581360496bb4e9f86",self.Entity,Vector3(x,y,0), 0, Vector3(1,1,1))`를 기준으로 매개변수 5개는 인자 순서대로 다음과 같습니다. 1. 이펙트 ID (문자열, 예: `"f396262ddb6e4d5581360496bb4e9f86"`) 2. 대상 엔티티 (Entity, 예: `self.Entity`) 3. 위치 (Vector3, 예: `Vector3(x,y,0)`) 4. 회전 값 [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] | two_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 캐릭터의 이동 속도(InputSpeed)와 점프력(JumpForce)을 수정하여 난이도를 조절할 때 주의해야 할 점은 무엇인가요? [answer] | 캐릭터의 이동 속도(`InputSpeed`)와 점프력(`JumpForce`)을 수정하여 게임 난이도를 조절할 때는 **플레이가 막히는 구간이 없는지 꼼꼼히 확인**해야 합니다. 이 속성 값이 변경되면 캐릭터의 점프 높이와 이동 거리가 달라지므로, 기존에 이동할 수 있었던 구간이 막히거나 또는 너무 쉽게 지나칠 수 있는 문제가 발생할 수 있습니다. 따라서 속성을 변경한 후에는 반드시 **[시작]** 버튼을 눌러 테스트 플레이를 통해 전체 맵의 이동 가능성을 검증해야 합니다. 해당 프로퍼티는 `Workspace - DefaultPl [followup] | 이동 속도가 빨라지면 점프 거리가 길어지는데, 이 변경으로 인해 기존에 통과 가능했던 구간이 막히지 않도록 테스트하는 구체적인 방법이나 체크리스트가 있나요? [followup_answer] | 참고 문서에는 이동 속도 변경 시 막히는 구간이 없는지 확인하기 위한 구체적인 테스트 방법이나 체크리스트가 명시되어 있지 않습니다. 문서에서 제시하는 방법은 다음과 같이 간단합니다. 1. `Workspace - DefaultPlayer`를 선택하여 `MovementComponent`의 `InputSpeed` 또는 `JumpForce` 값을 변경합니다. 2. **[시작]** 버튼을 눌러 테스트 플레이를 진행합니다. 3. 캐릭터의 이동 속도와 점프력이 변경되었는지 확인하고, 변경된 속성값으로 인해 **플레이가 막히는 구간이 없 [scores] | [judge_reason] | [source_doc] | 이번에는 캐릭터를 공격하는 함정을 곳곳에 설치하여 게임의 난이도를 올려보겠습니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 이 함정은 바나나를 던져 캐릭터를 공격합니다. 맵 곳곳에 추가 타일과 원숭이 함정을 배치합니다. 2. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지기 때문에, 캐릭터의 오른쪽에 오도록 배치할 수밖에 없습니다. 바나나를 왼쪽에서 오른쪽으로 던지도록 수정해 봅시다. 원숭이 함정을 다음과 같이 왼쪽에 배치합니다. 원숭이 함정을 선택하고 **프로퍼티 에디터
[task] | single_turn [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | 애니메이션 특정 프레임에서 공격 판정을 걸고 싶을 때, FrameIndex가 아닌 다른 방식으로 타이밍을 잡는 방법이 있을까요? [answer] | 제공된 참고 문서에는 `SpriteAnimPlayerChangeFrameEvent`를 통해 `FrameIndex`를 확인하는 방식이 유일한 애니메이션 프레임 타이밍 제어 방법으로 설명되어 있습니다. `FrameIndex`를 사용하지 않고 다른 방식으로 타이밍을 잡는 방법은 문서에 언급되어 있지 않습니다. [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] | two_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 제작한 게임을 다른 유저와 함께 플레이할 수 있도록 출시하는 과정은 어떻게 진행되나요? [answer] | 제작한 게임을 다른 유저와 함께 플레이할 수 있도록 출시하는 과정은 다음과 같습니다. 1. **출시 메뉴 선택**: 에디터 상단 메뉴에서 `File` > `Release`를 선택합니다. 2. **게임 정보 설정**: 열린 `Release` 창에서 출시할 게임의 정보를 입력합니다. * 게임 제목과 설명을 기재합니다. * 섬네일(대표 이미지)을 업로드합니다. * 게임에 참여 가능한 인원 수를 설정합니다. * 공개 여부(공개/비공개)를 결정합니다. * 플레이 가능 기기를 설정합니 [followup] | Release 창에서 설정 가능한 '플레이 가능 기기'나 '공개 여부' 옵션이 실제 플레이 경험에 어떤 영향을 주는지, 그리고 출시 후 '나의 제작 월드'에서 게임을 관리하는 방법이 궁금합니다. [followup_answer] | 제공된 참고 문서에는 '플레이 가능 기기'와 '공개 여부' 옵션이 실제 플레이 경험에 미치는 구체적인 영향(예: 특정 기기에서만 작동하는지, 공개 시 어떤 기능이 활성화되는지 등)에 대한 설명이 포함되어 있지 않습니다. 또한, 출시 후 '나의 제작 월드'에서 게임을 수정하거나 삭제하는 등 관리하는 방법에 대한 내용도 문서에 언급되어 있지 않습니다. 문서에 나와 있는 내용은 다음과 같습니다. 1. **Release 창 설정**: 게임 정보, 섬네일 이미지, 참여 가능한 인원, 공개 여부, 플레이 가능 기기, 설명을 설정할 수 있습 [scores] | [judge_reason] | [source_doc] | 이번에는 캐릭터를 공격하는 함정을 곳곳에 설치하여 게임의 난이도를 올려보겠습니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 이 함정은 바나나를 던져 캐릭터를 공격합니다. 맵 곳곳에 추가 타일과 원숭이 함정을 배치합니다. 2. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지기 때문에, 캐릭터의 오른쪽에 오도록 배치할 수밖에 없습니다. 바나나를 왼쪽에서 오른쪽으로 던지도록 수정해 봅시다. 원숭이 함정을 다음과 같이 왼쪽에 배치합니다. 원숭이 함정을 선택하고 **프로퍼티 에디터
[task] | code [pass] | ⏳ 미판정 [title] | Hierarchy [question] | `Hierarchy` 구조에서 `common` 엔트리에 추가된 컴포넌트를 통해 게임 전체에 적용되는 룰을 관리하는 구조를 시뮬레이션하여, `common` 엔티티 내 특정 프로퍼티 값이 변경되면 이를 읽는 로직을 포함하는 스크립트를 작성해줘 [answer] | `Hierarchy` 구조에서 `common` 엔트리는 게임 전체에 적용되는 룰을 관리하기 위한 공간으로, 컴포넌트를 추가해 사용합니다. 요청하신 "특정 프로퍼티 값이 변경되면 이를 읽는 로직"을 구현하기 위해, `common` 엔티티에 붙일 스크립트를 작성했습니다. mLua에서는 프로퍼티 변경을 감지하는 전용 이벤트 핸들러 API가 제공되지 않으므로, `OnUpdate`를 통해 주기적으로 값을 확인하거나, 해당 값을 직접 변경하는 메서드 내에서 이벤트를 발생시키는 방식이 일반적입니다. 아래 예제는 `common` 엔티티에 적용 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 **Hierarchy** 탭을 이용해 제작 현황을 확인하고, 제작 능률을 높일 수 있습니다. # Hierarchy 소개 **Hierarchy** 탭은 제작 중인 게임 현황을 **계층 구조(부모-자식)**로 볼 수 있는 패널입니다. 복잡하게 구성한 맵에서 원하는 엔티티를 빠르게 찾을 때 사용하거나, 체계적으로 엔티티를 관리할 때 사용합니다. 가장 상위인 **World** 계층 아래에 **common**, **maps**, **ui** 엔트리가 있으며 **maps**와 **ui** 엔트리는 각자 기본 하위 엔트
[task] | single_turn [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | SpriteAnimPlayerChangeFrameEvent 핸들러에서 event.FrameIndex 값이 0부터 시작하는지 1부터 시작하는지 어떻게 확인해야 하나요? [answer] | 제공된 참고 문서에는 `SpriteAnimPlayerChangeFrameEvent`의 `event.FrameIndex` 값이 0부터 시작하는지 1부터 시작하는지에 대한 정보가 포함되어 있지 않습니다. 문서에는 해당 이벤트 핸들러에서 `event.FrameIndex`, `event.ReversePlaying`, `event.TotalFrameCount`, `event.AnimPlayer` 파라미터를 사용할 수 있고, 특정 프레임 인덱스(예: 7)에 도달했을 때 로직을 실행하는 예시만 제시되어 있을 뿐, 프레임 인덱스의 시작 값(0- [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] | _EffectService:PlayEffect 메서드에서 리소스 ID, 위치, 스케일 등 각 인자의 정확한 의미와 순서가 궁금합니다. [answer] | 제공된 문서에는 `_EffectService:PlayEffect` 메서드의 각 인자(리소스 ID, 위치, 스케일 등)에 대한 정확한 의미와 순서에 대한 설명이 포함되어 있지 않습니다. 문서에 제시된 사용 예시 코드만으로는 파라미터의 정확한 명세가 확인되지 않으며, 상세한 정보는 [EffectService의 Examples](/apiReference?postId=304) 참고 문서를 통해 확인해야 합니다. ```lua _EffectService:PlayEffect("f396262ddb6e4d5581360496bb4e9f86",se [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] | SpriteAnimPlayerChangeFrameEvent의 event.FrameIndex 값을 확인하여 특정 조건에서 동작하도록 하는 이벤트 핸들러 스크립트를 작성해줘 [answer] | `SpriteAnimPlayerChangeFrameEvent`의 `event.FrameIndex` 값을 확인하여 특정 프레임 조건에 따라 동작하도록 하는 이벤트 핸들러 스크립트입니다. ```lua Event Handler: [self] HandleSpriteAnimPlayerChangeFrameEvent(SpriteAnimPlayerChangeFrameEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: Climbable [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] | _EffectService:PlayEffect 호출 시 3번째 인자로 전달하는 Vector3 좌표가 엔티티의 로컬 좌표계인지 월드 좌표계인지 알려주세요. [answer] | 제공된 참고 문서에는 `_EffectService:PlayEffect` 메서드의 3번째 인자로 전달하는 `Vector3` 좌표가 엔티티의 로컬 좌표계인지 월드 좌표계인지를 명시하는 내용이 없습니다. 문서에는 `_EffectService:PlayEffect("f396262ddb6e4d5581360496bb4e9f86",self.Entity,Vector3(x,y,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] | instruction_following [pass] | ⏳ 미판정 [title] | 영상 재생시키기 [question] | Jump 함수 호출 시 시간 매개변수를 소수점 둘째 자리까지 포함하는 부동소수점 숫자로 전달하는 Lua 코드만 출력하세요. [answer] | ```lua self.Entity.YoutubePlayerWorldComponent:Jump(20.00) ``` [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 모델에