[task] | code [pass] | ⏳ 미판정 [title] | 모델의 활용 [question] | EntityService를 사용하여 특정 경로에 배치된 엔티티를 조회하고, 해당 엔티티의 Model Extension Info에 기반 모델이 있는지 확인하기 위해 엔티티를 가져오는 스크립트를 작성해줘 [answer] | 요청하신 내용은 `EntityService`를 이용해 특정 경로에 있는 엔티티를 조회하는 부분과, 해당 엔티티의 **Model Extension Info**(모델 확장 정보)를 직접 스크립트로 확인하는 부분으로 나눌 수 있습니다. 참고 문서를 기준으로 정리하면 다음과 같습니다. 1. **엔티티 조회**: `_EntityService:GetEntityByPath("/maps/map01/obj")`와 같은 방식으로 특정 경로에 배치된 엔티티를 가져올 수 있습니다. 2. **Model Extension Info 확인**: 문서에 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 이번 과정에서는 모델 확장과 모델 생성 방법, 그리고 모델 프로퍼티의 편집 방법을 알아봅니다. 본 과정을 진행하기 전에 [모델](https://mod-developers.nexon.com/docs?postId=55) 가이드를 먼저 살펴보면 도움이 됩니다. # 모델 확장 **모델**은 자신이 갖고 있던 속성, 즉 같은 컴포넌트와 프로퍼티 값을 물려받은 확장 모델을 생성할 수 있습니다. 얼핏 복사와 개념이 비슷한 것 같지만 복사와는 다릅니다. * **복사** * 원본 모델과 복사된 모델이 독립적으로 존
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 모델의 활용 [question] | 모델 프로퍼티 편집 모드로 전환하여 프로퍼티를 지정하는 과정을 '모델 선택', '편집 모드 전환', '체크박스 체크', '결과 확인'의 4단계로 나누어 번호 목록으로 작성하세요. [answer] | 1. **모델 선택**: 편집하고자 하는 모델을 선택합니다. 2. **편집 모드 전환**: 모델 프로퍼티 상단의 ≡ 버튼을 클릭한 뒤, 메뉴에서 **View Model Property**를 선택하여 모델 프로퍼티 편집 모드로 전환합니다. 3. **체크박스 체크**: 각 프로퍼티 우측의 체크박스에 체크하여 해당 프로퍼티를 모델 프로퍼티로 지정합니다. 4. **결과 확인**: 모델 설정 메뉴에서 View Component Property를 선택하여 체크한 프로퍼티가 모델 프로퍼티에 표시되는 것을 확인합니다. [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] | single_turn [pass] | ⏳ 미판정 [title] | 모델의 활용 [question] | Preset List의 모델은 NativeModel을 수정해야 속성을 바꿀 수 있는데, 이렇게 하면 다른 모델까지 함께 변경되는 문제를 피하면서 독립적인 모델을 만드는 구체적인 방법은 무엇인가요? [answer] | Preset List의 모델은 NativeModel에서 확장되어 생성되므로, NativeModel의 속성을 수정하면 그 NativeModel을 기반으로 생성된 모든 Preset List 모델에 동일한 변경 사항이 반영됩니다. 이러한 연쇄 변경 문제를 피하고 독립적으로 수정 가능한 모델을 만들려면, NativeModel에 의존하지 않는 **신규 모델**을 직접 생성해야 합니다. 신규 모델은 NativeModel에서 완전히 독립적이므로, 해당 모델에만 적용되는 자유로운 수정과 변형이 가능합니다. 신규 모델을 생성하는 구체적인 방법은 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 엔티티를 생성할 때는 주로 **Preset List**의 모델을 활용합니다. **Preset List**의 모델은 기본적으로 **NativeModel**의 특성을 물려받습니다. 그래서 **Preset List**의 모델 속성을 변경하려면 **NativeModel**을 수정해야 합니다. 하지만 **NativeModel**의 속성을 변경하면 해당 **NativeModel**에서 확장된 **Preset List**의 모델 속성이 모두 변경되어 버립니다. 작업 과정에서 원래 모델의 특성이 필요할 때는 또다시 수정해야 하므로 불편합니다.
[task] | code [pass] | ⏳ 미판정 [title] | Hierarchy [question] | `_EntityService`를 이용해 `/maps/map01` 경로 하위의 모든 자식 엔티티를 조회하고, 각 엔티티의 `TransformComponent.Position`을 기준으로 X 좌표가 0보다 큰 엔티티들을 필터링하여 목록을 반환하는 스크립트를 작성해줘 [answer] | 제공된 참고 문서에는 `_EntityService`의 `GetEntityByPath` 메서드만 언급되어 있으며, 특정 경로 하위의 **모든 자식 엔티티를 일괄 조회하는 API(예: `GetChildren`, `GetEntitiesByPath` 등)에 대한 설명은 없습니다.** 따라서, 제공된 문서만으로는 `/maps/map01` 하위의 모든 자식 엔티티를 동적으로 조회하여 필터링하는 코드를 작성할 수 없습니다. 참고 문서에 근거하여 작성할 수 있는 가장 가까운 예제는, **경로가 이미 알려진 특정 엔티티**를 `_EntitySe [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 **Hierarchy** 탭을 이용해 제작 현황을 확인하고, 제작 능률을 높일 수 있습니다. # Hierarchy 소개 **Hierarchy** 탭은 제작 중인 게임 현황을 **계층 구조(부모-자식)**로 볼 수 있는 패널입니다. 복잡하게 구성한 맵에서 원하는 엔티티를 빠르게 찾을 때 사용하거나, 체계적으로 엔티티를 관리할 때 사용합니다. 가장 상위인 **World** 계층 아래에 **common**, **maps**, **ui** 엔트리가 있으며 **maps**와 **ui** 엔트리는 각자 기본 하위 엔트
[task] | single_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | NPC의 네임택 이름을 변경하기 위해 프로퍼티 에디터에서 NameTagComponent의 Name 값을 수정했는데, 게임 실행 시에는 변경되지 않고 여전히 기본 이름으로 표시될 때 어떤 부분을 점검해야 하나요? [answer] | 제공된 참고 문서에는 NPC의 `NameTagComponent - Name` 값을 프로퍼티 에디터에서 수정하는 방법이 설명되어 있지만, 게임 실행 시 변경된 이름이 표시되지 않는 경우의 구체적인 점검 항목이나 오류 해결 절차에 대한 정보는 포함되어 있지 않습니다. 따라서 문서에 근거하여 해당 문제의 원인을 설명드리기 어렵습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 "인내의 숲"을 알고 계신가요? 인내의 숲을 검색해보면 많은 모험가들의 이야기를 찾아볼 수 있습니다. $$youtube HXMM4Vbx8aA $$ 인내의 숲은 점프를 이용해 발판을 넘어가며 목적지로 올라가는 게임입니다. 여러분은 인내의 숲을 보다 재미있게 만들 수 있는 색다른 아이디어를 갖고 있을지도 모릅니다. * 기존 인내의 숲은 너무 쉬운데? * 이렇게 하면 더 재미있을 것 같아. * 순위를 매기면 더 재미있지 않을까? * 서로 공격할 수 있으면 좋겠어. 메이플스토리 월드에서 이러한 아이디어를 현실화할
[task] | single_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | Preset List에서 back-56 배경을 선택한 후 Scene에 반영되지 않을 때, 가장 먼저 확인해야 할 설정이나 오류 원인은 무엇인가요? [answer] | 제공된 참고 문서에는 `back-56` 배경을 선택한 후 Scene에 반영되지 않을 때의 구체적인 오류 원인이나 해결 방법이 설명되어 있지 않습니다. 문서에는 단순히 **Preset List - Background**에서 `back-56`을 클릭하면 Scene에 배경이 변경된 것을 확인한다는 과정만 언급되어 있으며, 실패 시 체크리스트나 트러블슈팅 가이드는 포함되어 있지 않습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 "인내의 숲"을 알고 계신가요? 인내의 숲을 검색해보면 많은 모험가들의 이야기를 찾아볼 수 있습니다. $$youtube HXMM4Vbx8aA $$ 인내의 숲은 점프를 이용해 발판을 넘어가며 목적지로 올라가는 게임입니다. 여러분은 인내의 숲을 보다 재미있게 만들 수 있는 색다른 아이디어를 갖고 있을지도 모릅니다. * 기존 인내의 숲은 너무 쉬운데? * 이렇게 하면 더 재미있을 것 같아. * 순위를 매기면 더 재미있지 않을까? * 서로 공격할 수 있으면 좋겠어. 메이플스토리 월드에서 이러한 아이디어를 현실화할
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 모델의 활용 [question] | 모델 프로퍼티의 Scale 값을 x=10, y=10, z=10으로 변경할 때 TransformComponent의 Scale 값에 미치는 영향을 '모델 프로퍼티 값'과 '컴포넌트 프로퍼티 값' 두 가지 열을 가진 표로 정리하세요. [answer] | 모델 프로퍼티는 해당 엔티티나 모델에 포함된 컴포넌트의 프로퍼티가 투영된 것입니다. 따라서 모델 프로퍼티의 값을 변경하면 이에 해당하는 컴포넌트의 프로퍼티 값도 동시에 변경됩니다. 질문하신 **Object-1** 엔티티의 **Scale** 값을 `x = 10, y = 10, z = 10`으로 변경할 때의 영향은 다음과 같습니다. | 모델 프로퍼티 값 | 컴포넌트 프로퍼티 값 | | :--- | :--- | | Scale: x = 10, y = 10, z = 10 | TransformComponent.Scale: x = 10, y [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] | instruction_following [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | 피어싱 스킬 리소스를 태그로 찾는 3단계 과정을 표로 정리하세요. [answer] | 피어싱 스킬 리소스를 태그로 찾는 3단계 과정은 다음과 같습니다. | 단계 | 실행 내용 | | :--- | :--- | | **1단계** | **피어싱**이라는 키워드로 1차 검색을 수행하여 관련 리소스를 찾습니다. | | **2단계** | 원하는 리소스를 클릭하여 상세 보기 창을 열고, 관련 태그 중 **`#리소스타입#고유 ID(#skillname#3221017)`** 형태의 고유 ID 태그를 확인합니다. | | **3단계** | 2단계에서 확인한 스킬 고유 ID 태그를 클릭하거나 입력하여 2차 검색을 수행하고, 해당 ID와 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 리소스 검색 리소스 검색은 현재 웹과 메이커에서 이용할 수 있습니다. * [MSW 리소스](https://maplestoryworlds.nexon.com/resource) * 메이커의 **Resource Storage** 패널 # 스킬 고유 명칭으로 리소스 찾기 제작 리소스 조회 페이지에서는 여러 태그를 제공하고 있지만 아직 정확도가 높지 않습니다. 검색 시 가장 정확도가 높은 키워드는 **스킬의 고유 명칭**입니다. 예로 스킬 고유 명칭인 **워리어리프**로 검색하면 원하는 검색 결과를 확인하실 수 있습니다.
[task] | two_turn [pass] | ⏳ 미판정 [title] | 모델의 활용 [question] | 모델 프로퍼티의 표시 항목을 크리에이터가 직접 편집하는 구체적인 절차가 어떻게 되나요? [answer] | 모델 프로퍼티의 표시 항목을 크리에이터가 직접 편집하는 구체적인 절차는 다음과 같습니다. 1. 편집하고자 하는 모델을 선택한 뒤, 모델 프로퍼티 상단의 **≡** 버튼을 클릭합니다. 2. 메뉴에서 **View Model Property**를 선택하여 모델 프로퍼티 편집 모드로 전환합니다. 3. 각 프로퍼티 우측의 체크박스에 체크하면, 해당 프로퍼티를 모델 프로퍼티로 지정할 수 있습니다. 4. 모델 설정 메뉴에서 **View Component Property**를 선택하여 체크한 프로퍼티가 모델 프로퍼티에 표시되는 것을 확인 [followup] | View Model Property 모드에서 체크박스를 통해 프로퍼티를 지정하고 View Component Property 에서 확인하는 과정의 단계별 동작 방식을 알려주세요. [followup_answer] | 모델 프로퍼티 편집 시 **View Model Property** 모드와 **View Component Property** 모드 간의 단계별 동작 방식은 다음과 같습니다. 1. **편집 모드 전환**: 편집하고자 하는 모델을 선택한 후, 모델 프로퍼티 상단의 ≡ 버튼을 클릭하고 메뉴에서 **View Model Property**를 선택합니다. 이 과정을 통해 모델 프로퍼티 편집 모드로 전환됩니다. 2. **프로퍼티 지정**: 편집 모드에서 각 프로퍼티 우측의 체크박스에 체크하면, 해당 프로퍼티가 모델 프로퍼티로 지정됩니다. 3 [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] | 제공된 참고 문서에는 '프로퍼티'와 '프로퍼티 동기화' 가이드의 구체적인 내용 차이가 명시되어 있지 않습니다. 문서에는 기본 제작 가이드의 '스크립트' 항목 아래에 두 가이드의 링크와 제목만 나열되어 있으며, 각 가이드에서 다루는 세부적인 차이점이나 학습 내용은 설명되지 않았습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드에서는 다양한 형식의 가이드를 제공하고 있습니다. 메이플스토리 월드가 생소한 크리에이터라면 기본 **제작 가이드 - 시작하기 - [메이커 사용](/docs?postId=724)을** 먼저 살펴보며 기본 기능 익히기를 권장합니다. # 난이도 가이드를 살펴보기 전, 학습권장대상 배지를 확인하고 나에게 적절한 난이도인지 확인할 수 있습니다. * **Lv.1**: 메이커의 기본 기능과 컴포넌트의 기본 기능을 사용하고 싶은 크리에이터 * **Lv.2**: MSW의 기본 문법을 알고, 간단한 동작을 직접 만들 수 있는
[task] | two_turn [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | EffectService를 이용해 스크립트로 이펙트를 재생하는 기본 사용법은? [answer] | `EffectService`는 스크립트를 통해 이펙트 리소스를 호출하여 재생하는 데 사용됩니다. `PlayEffect` 메서드를 사용해 특정 좌표와 스케일에 맞춰 이펙트를 출력할 수 있습니다. 기본 사용 예시는 다음과 같습니다. ```lua _EffectService:PlayEffect("f396262ddb6e4d5581360496bb4e9f86",self.Entity,Vector3(x,y,0), 0, Vector3(1,1,1)) ``` 여기서 첫 번째 인자는 이펙트 리소스의 ID(해시 값)이며, 두 번째 인자는 이펙트가 부착 [followup] | SpriteAnimPlayerChangeFrameEvent를 활용해 특정 프레임에서 공격 판정을 처리하는 코드 예시는? [followup_answer] | 애니메이션 이펙트의 특정 프레임에서 공격 판정을 처리하려면 `SpriteAnimPlayerChangeFrameEvent` 이벤트 핸들러를 사용합니다. `event.FrameIndex`를 확인하여 목표 프레임에 도달했을 때 필요한 로직을 실행하면 됩니다. 아래는 7번째 프레임에서 공격 판정을 발생시키는 예시입니다. ```lua Event Handler: [self] HandleSpriteAnimPlayerChangeFrameEvent(SpriteAnimPlayerChangeFrameEvent event) { -------- [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] | 문서 예제에서 `self._T.time`을 사용하여 시간을 누적하고 3초가 되면 삭제하는 방식을 취하고 있는데, 이 방식 대신 `_TimerService:SetTimerOnce`를 활용하여 3초 후 삭제하는 것이 가능한가요? [answer] | 네, 가능합니다. `_TimerService:SetTimerOnce`를 사용하면 `OnUpdate`에서 매 프레임마다 시간을 누적하는 대신, 특정 시간(3초)이 지난 시점에 콜백 함수가 실행되도록 설정할 수 있습니다. 참고 문서의 예제에서 `_TimerService:SetTimerOnce(callback, 3)` 형태로 타이머를 설정하고 3초 후 특정 동작(여기서는 엔티티 삭제)을 수행하는 방식을 사용할 수 있습니다. 다음은 `SpawnByModelId`에서 엔티티를 생성한 후, `_TimerService:SetTimerOnce [followup] | `_TimerService:SetTimerOnce`를 사용했을 때 엔티티가 이미 삭제된 경우(유효성 체크 실패)를 처리하는 안전장치와 함께, 전체 스크립트 컴포넌트 코드를 요청합니다. [followup_answer] | `_TimerService:SetTimerOnce`를 사용할 때, 타이머가 실행되는 시점(3초 후)에 해당 엔티티가 이미 다른 이유로 삭제되었거나 삭제 대기 상태일 수 있습니다. 이 경우 `_EntityService:Destroy`나 `Entity:Destroy`를 호출하면 오류가 발생할 수 있으므로, 콜백 함수 내부에서 반드시 `isvalid`를 통해 유효성을 재확인하는 안전장치가 필요합니다. 다음은 요청하신 전체 스크립트 컴포넌트 코드입니다. ```lua Property: [None] any SpawnedEntity = ni [scores] | [judge_reason] | [source_doc] | **SpawnService**의 스폰 기능을 통해 엔티티를 생성하고, 생성된 후 3초 후에 제거되도록 합니다. 예제는 위 엔티티 생성에서 사용한 **SpawnManager** 스크립트 컴포넌트를 활용합니다. 1. 프로퍼티를 추가하고, 타입과 이름을 다음과 같이 설정합니다. ```lua Property: [none] any SpawnedEntity = nil ``` 2. `SpawnByModelId` 함수를 다음과 같이 수정합니다. ```lua void SpawnByMode
[task] | single_turn [pass] | ⏳ 미판정 [title] | 제작 가이드 활용법 [question] | '월드 인스턴스' 개념을 이해하기 전에 'Entity, Component, Property'부터 공부하는 게 순서상 맞는 건가요? [answer] | 네, 'Entity, Component, Property' 개념을 먼저 공부하는 것이 순서상 맞습니다. 기본 제작 가이드의 '개념 이해' 파트에서 제시된 학습 순서대로 보면 '모델', '맵 레이어'에 이어 'Entity, Component, Property' 개념을 다룬 뒤, 그 다음에 '월드 인스턴스' 개념을 다루도록 구성되어 있습니다. 이는 월드 인스턴스를 이해하는 데 필요한 기본 구조와 용어를 먼저 익히도록 유도하는 학습 경로입니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드에서는 다양한 형식의 가이드를 제공하고 있습니다. 메이플스토리 월드가 생소한 크리에이터라면 기본 **제작 가이드 - 시작하기 - [메이커 사용](/docs?postId=724)을** 먼저 살펴보며 기본 기능 익히기를 권장합니다. # 난이도 가이드를 살펴보기 전, 학습권장대상 배지를 확인하고 나에게 적절한 난이도인지 확인할 수 있습니다. * **Lv.1**: 메이커의 기본 기능과 컴포넌트의 기본 기능을 사용하고 싶은 크리에이터 * **Lv.2**: MSW의 기본 문법을 알고, 간단한 동작을 직접 만들 수 있는
[task] | single_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 일반 오브젝트에 CustomFootholdComponent를 추가하면 발판으로 사용할 수 있다고 하는데, 기존 풋홀드 엔티티와 기능적으로 차이가 있나요? [answer] | 제공된 문서에 따르면, 일반 오브젝트 엔티티에 `CustomFootholdComponent`를 추가하고 발판을 설정하면 풋홀드 엔티티로 변경할 수 있습니다. 문서에서는 "풋홀드 엔티티는 일반 오브젝트 엔티티와는 달리 `CustomFootholdComponent`가 적용되어있어 캐릭터가 밟고 올라설 수 있다"고 설명하고 있습니다. 따라서, 일반 오브젝트에 `CustomFootholdComponent`를 추가한 경우와 기존 풋홀드 엔티티는 **기능적으로 차이가 없습니다.** 두 경우 모두 `CustomFootholdComponent` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 "인내의 숲"을 알고 계신가요? 인내의 숲을 검색해보면 많은 모험가들의 이야기를 찾아볼 수 있습니다. $$youtube HXMM4Vbx8aA $$ 인내의 숲은 점프를 이용해 발판을 넘어가며 목적지로 올라가는 게임입니다. 여러분은 인내의 숲을 보다 재미있게 만들 수 있는 색다른 아이디어를 갖고 있을지도 모릅니다. * 기존 인내의 숲은 너무 쉬운데? * 이렇게 하면 더 재미있을 것 같아. * 순위를 매기면 더 재미있지 않을까? * 서로 공격할 수 있으면 좋겠어. 메이플스토리 월드에서 이러한 아이디어를 현실화할
[task] | single_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 캐릭터의 이동 속도와 점프력을 조절하여 게임 난이도를 바꾸고 싶을 때, Workspace의 DefaultPlayer에서 어떤 컴포넌트의 어떤 프로퍼티 값을 수정해야 하나요? [answer] | Workspace에서 **DefaultPlayer**를 선택한 후, 프로퍼티 에디터의 **MovementComponent**에서 값을 수정해야 합니다. 구체적으로 수정해야 하는 프로퍼티는 다음과 같습니다. * **InputSpeed**: 캐릭터의 이동 속도를 조절합니다. * **JumpForce**: 캐릭터의 점프력을 조절합니다. 이 값들을 변경하여 이동 속도가 빨라지거나 점프력이 커지는 등 게임의 난이도를 조절할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 이번에는 캐릭터를 공격하는 함정을 곳곳에 설치하여 게임의 난이도를 올려보겠습니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 이 함정은 바나나를 던져 캐릭터를 공격합니다. 맵 곳곳에 추가 타일과 원숭이 함정을 배치합니다. 2. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지기 때문에, 캐릭터의 오른쪽에 오도록 배치할 수밖에 없습니다. 바나나를 왼쪽에서 오른쪽으로 던지도록 수정해 봅시다. 원숭이 함정을 다음과 같이 왼쪽에 배치합니다. 원숭이 함정을 선택하고 **프로퍼티 에디터
[task] | single_turn [pass] | ⏳ 미판정 [title] | 제작 가이드 활용법 [question] | 'TargetUserSync와 프로퍼티 동기화 최적화'가 '프로파일러로 월드 성능 분석하기'와 어떤 연관성이 있나요? [answer] | 제공된 문서 목록을 확인한 결과, 'TargetUserSync와 프로퍼티 동기화 최적화'와 '프로파일러로 월드 성능 분석하기'라는 제목의 가이드가 존재한다는 사실만 확인할 수 있습니다. 하지만 두 가이드 간의 구체적인 연관성, 프로파일러 분석 결과가 TargetUserSync 설정에 어떻게 반영되는지, 또는 프로퍼티 동기화 최적화 과정에서 프로파일러를 어떻게 활용해야 하는지에 대한 상세한 설명이나 기술적 내용이 포함된 본문이 제공되지 않았습니다. 따라서 주어진 참고 문서의 정보 범위 내에서 두 항목의 구체적인 연관성을 설명할 수 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드에서는 다양한 형식의 가이드를 제공하고 있습니다. 메이플스토리 월드가 생소한 크리에이터라면 기본 **제작 가이드 - 시작하기 - [메이커 사용](/docs?postId=724)을** 먼저 살펴보며 기본 기능 익히기를 권장합니다. # 난이도 가이드를 살펴보기 전, 학습권장대상 배지를 확인하고 나에게 적절한 난이도인지 확인할 수 있습니다. * **Lv.1**: 메이커의 기본 기능과 컴포넌트의 기본 기능을 사용하고 싶은 크리에이터 * **Lv.2**: MSW의 기본 문법을 알고, 간단한 동작을 직접 만들 수 있는
[task] | two_turn [pass] | ⏳ 미판정 [title] | 엔티티의 생성과 삭제, 유효성 체크 [question] | `isvalid` 함수가 엔티티의 "삭제 대기 중" 상태를 포함하여 유효성을 체크한다고 하는데, 단순히 `nil` 체크만 하는 경우와 어떤 구체적인 상황(예외)에서 오류가 발생하나요? [answer] | `isvalid` 함수와 단순한 `nil` 체크의 차이는 엔티티가 **삭제 처리 중(삭제 대기 중)** 상태일 때 발생합니다. ### 1. `nil` 체크의 한계 엔티티를 삭제할 때(`_EntityService:Destroy` 또는 `Entity:Destroy` 호출 시), 엔티티 객체가 즉시 `nil`이 되는 것은 아닙니다. * **문제 상황:** 엔티티가 삭제 큐에 올라가 있거나, 삭제 로직이 실행 중이지만 아직 메모리에서 완전히 해제되지 않은 상태일 수 있습니다. * **결과:** 이 시점에 `entity == nil [followup] | 삭제 대기 중 상태의 엔티티에 접근할 때 발생할 수 있는 에러를 방지하기 위해 `OnUpdate` 내부의 유효성 체크 코드를 어떻게 보완해야 하는지 구체적인 코드 수정안을 요청합니다. [followup_answer] | 참고 문서에 제시된 `OnUpdate` 함수는 이미 `isvalid` 함수를 사용하여 삭제 대기 중 상태의 엔티티에 접근하는 것을 방지하는 로직을 포함하고 있습니다. 따라서 문서에 근거한 가장 안전하고 권장되는 코드는 이미 제시된 형태입니다. 구체적인 코드 수정안(보완안)은 다음과 같습니다. `OnUpdate`의 첫 줄에서 반드시 `isvalid` 체크를 수행하여, 엔티티가 유효하지 않다면(삭제 대기 중이거나 이미 삭제된 경우) 즉시 함수를 종료(`return`)해야 합니다. ```lua [server only] void OnU [scores] | [judge_reason] | [source_doc] | **SpawnService**의 스폰 기능을 통해 엔티티를 생성하고, 생성된 후 3초 후에 제거되도록 합니다. 예제는 위 엔티티 생성에서 사용한 **SpawnManager** 스크립트 컴포넌트를 활용합니다. 1. 프로퍼티를 추가하고, 타입과 이름을 다음과 같이 설정합니다. ```lua Property: [none] any SpawnedEntity = nil ``` 2. `SpawnByModelId` 함수를 다음과 같이 수정합니다. ```lua void SpawnByMode
[task] | single_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 원숭이 함정의 SpriteRendererComponent에서 FlipX 체크박스를 활성화하면 스프라이트의 방향은 어떻게 변하며, 이는 바나나 투사 방향에 어떤 영향을 주나요? [answer] | 원숭이 함정의 `SpriteRendererComponent`에서 `FlipX` 체크박스를 활성화하면 스프라이트가 좌우로 뒤집힙니다. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지도록 설계되어 있습니다. 따라서 `FlipX`를 체크 상태로 변경하면 스프라이트의 방향이 반전되면서, 바나나 투사 방향도 **왼쪽에서 오른쪽**으로 변경됩니다. 이를 통해 캐릭터의 왼쪽에 함정을 배치하여 오른쪽으로 공격을 가하는 것이 가능해집니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 이번에는 캐릭터를 공격하는 함정을 곳곳에 설치하여 게임의 난이도를 올려보겠습니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 이 함정은 바나나를 던져 캐릭터를 공격합니다. 맵 곳곳에 추가 타일과 원숭이 함정을 배치합니다. 2. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지기 때문에, 캐릭터의 오른쪽에 오도록 배치할 수밖에 없습니다. 바나나를 왼쪽에서 오른쪽으로 던지도록 수정해 봅시다. 원숭이 함정을 다음과 같이 왼쪽에 배치합니다. 원숭이 함정을 선택하고 **프로퍼티 에디터
[task] | single_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 원숭이 함정이 기본적으로 오른쪽에서 왼쪽으로만 바나나를 던지는데, 왼쪽에서 오른쪽으로 방향을 바꾸려면 어떤 설정을 해야 하나요? [answer] | 원숭이 함정의 방향을 왼쪽에서 오른쪽으로 바꾸려면 해당 함정 엔티티의 **SpriteRendererComponent**에서 **FlipX** 프로퍼티를 체크 상태로 변경하면 됩니다. 구체적인 설정 방법은 다음과 같습니다. 1. 씬(Scene)에서 원숭이 함정 엔티티를 선택합니다. 2. 프로퍼티 에디터(Property Editor)에서 **SpriteRendererComponent**를 찾습니다. 3. **FlipX** 체크박스를 클릭하여 활성화(체크) 상태로 만듭니다. 이렇게 설정하면 원숭이 함정의 스프라이트가 좌우로 뒤 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 이번에는 캐릭터를 공격하는 함정을 곳곳에 설치하여 게임의 난이도를 올려보겠습니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 이 함정은 바나나를 던져 캐릭터를 공격합니다. 맵 곳곳에 추가 타일과 원숭이 함정을 배치합니다. 2. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지기 때문에, 캐릭터의 오른쪽에 오도록 배치할 수밖에 없습니다. 바나나를 왼쪽에서 오른쪽으로 던지도록 수정해 봅시다. 원숭이 함정을 다음과 같이 왼쪽에 배치합니다. 원숭이 함정을 선택하고 **프로퍼티 에디터
[task] | single_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 게임 시작 시 캐릭터가 맵 중간에 스폰되는 것을 막고, 특정 좌측 하단 위치에서 시작하게 하려면 어떤 프리셋을 배치해야 하나요? [answer] | 게임 시작 시 캐릭터가 맵 중간이 아닌 특정 좌측 하단 위치에서 스폰되도록 하려면 **Preset List - Special** 카테고리에서 **SpawnLocation** 프리셋을 선택하여 해당 위치에 배치해야 합니다. 구체적인 설정 절차는 다음과 같습니다: 1. **Preset List - Special**을 엽니다. 2. **SpawnLocation** 프리셋을 선택합니다. 3. 캐릭터가 시작되기를 원하는 맵의 좌측 하단 타일 위치에 **SpawnLocation**을 배치합니다. 4. **[시작]** 버튼을 눌러 테 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 이번에는 캐릭터를 공격하는 함정을 곳곳에 설치하여 게임의 난이도를 올려보겠습니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 이 함정은 바나나를 던져 캐릭터를 공격합니다. 맵 곳곳에 추가 타일과 원숭이 함정을 배치합니다. 2. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지기 때문에, 캐릭터의 오른쪽에 오도록 배치할 수밖에 없습니다. 바나나를 왼쪽에서 오른쪽으로 던지도록 수정해 봅시다. 원숭이 함정을 다음과 같이 왼쪽에 배치합니다. 원숭이 함정을 선택하고 **프로퍼티 에디터
[task] | single_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 제작한 게임을 다른 유저와 함께 플레이할 수 있도록 최종 출시하는 단계에서, 게임 정보와 섬네일 등을 설정하는 메뉴는 어디에 위치해 있나요? [answer] | 최종 출시 단계에서 게임 정보와 섬네일 등을 설정하는 메뉴는 **File - Release** 메뉴에 위치해 있습니다. 해당 메뉴를 선택하면 **Release** 창이 열리며, 여기서 다음과 같은 항목들을 설정할 수 있습니다. 1. 출시할 게임의 정보 2. 섬네일 이미지 3. 게임에 참여 가능한 인원 4. 공개 여부 5. 플레이 가능 기기 6. 게임 설명 7. 게임 제목 모든 설정을 마친 후 **[출시]** 버튼을 누르면 게임이 출시되며, 출시된 게임은 **플레이 - 나의 제작 월드**에서 확인할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 이번에는 캐릭터를 공격하는 함정을 곳곳에 설치하여 게임의 난이도를 올려보겠습니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 이 함정은 바나나를 던져 캐릭터를 공격합니다. 맵 곳곳에 추가 타일과 원숭이 함정을 배치합니다. 2. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지기 때문에, 캐릭터의 오른쪽에 오도록 배치할 수밖에 없습니다. 바나나를 왼쪽에서 오른쪽으로 던지도록 수정해 봅시다. 원숭이 함정을 다음과 같이 왼쪽에 배치합니다. 원숭이 함정을 선택하고 **프로퍼티 에디터
[task] | single_turn [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | 스킬 고유 명칭이 아닌 태그로 검색했을 때 스프라이트 카테고리에서 원하는 리소스를 찾기가 어려운 이유는 무엇인가요? [answer] | 스프라이트 카테고리에서 태그로 검색할 경우, 애니메이션 카테고리보다 훨씬 많은 검색 결과가 함께 표시되기 때문에 원하는 리소스를 특정하기 어렵습니다. 따라서 스프라이트 리소스를 직접 찾는 것보다는, 태그를 이용해 애니메이션을 먼저 찾아 검색 범위를 좁힌 다음 원하는 리소스를 찾는 것이 효과적입니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 리소스 검색 리소스 검색은 현재 웹과 메이커에서 이용할 수 있습니다. * [MSW 리소스](https://maplestoryworlds.nexon.com/resource) * 메이커의 **Resource Storage** 패널 # 스킬 고유 명칭으로 리소스 찾기 제작 리소스 조회 페이지에서는 여러 태그를 제공하고 있지만 아직 정확도가 높지 않습니다. 검색 시 가장 정확도가 높은 키워드는 **스킬의 고유 명칭**입니다. 예로 스킬 고유 명칭인 **워리어리프**로 검색하면 원하는 검색 결과를 확인하실 수 있습니다.
[task] | two_turn [pass] | ⏳ 미판정 [title] | 모델의 활용 [question] | Preset List 의 모델이 NativeModel 에서 확장되어 속성을 물려받는 구조가 정확히 어떻게 작동하는지 설명해 주세요. [answer] | Preset List의 모델은 NativeModel을 기반으로 확장된 구조를 가지고 있으며, 이는 Preset List의 각 카테고리가 해당 카테고리에 대응하는 NativeModel의 속성을 물려받기 때문에 발생합니다. 구체적인 작동 원리는 다음과 같습니다: 1. **카테고리 단위 상속**: Preset List의 모델은 카테고리별로 NativeModel과 연결됩니다. 예를 들어, Preset List의 `Object` 카테고리에 포함된 모든 모델은 `NativeModel`의 `MapObject` 모델을 기반으로 합니다. 2. [followup] | Preset List - Object 카테고리 모델을 엔티티 생성 시 2배 크게 만들려면 NativeModel - MapObject 의 Scale 값을 어떻게 설정해야 하나요? [followup_answer] | Preset List - Object 카테고리 모델을 엔티티 생성 시 2배 크게 만들려면, **NativeModel - MapObject** 모델의 **Scale** 값을 **2**로 설정해야 합니다. 이는 Preset List의 Object 카테고리가 NativeModel의 MapObject에서 확장되어 속성을 물려받기 때문에, 원본인 MapObject의 Scale 값을 변경하면 Preset List의 Object 모델에도 동일한 변화가 적용되기 때문입니다. [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] | 원숭이 함정(Entity)의 SpriteRendererComponent.FlipX 속성을 true로 설정하여 바나나 공격 방향을 왼쪽에서 오른쪽으로 변경하는 스크립트를 작성해줘. [answer] | 원숭이 함정 엔티티에 스크립트를 붙여 `OnBeginPlay` 시점에 `SpriteRendererComponent`의 `FlipX` 값을 `true`로 설정하는 코드는 다음과 같습니다. ```lua Method: [server only] void OnBeginPlay() { -- 원숭이 함정 엔티티의 SpriteRendererComponent 접근 local spriteRenderer = self.Entity.SpriteRendererComponent -- FlipX를 true로 설정하여 공격 방향을 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 이번에는 캐릭터를 공격하는 함정을 곳곳에 설치하여 게임의 난이도를 올려보겠습니다. 1. **Preset List - Trap**에서 원숭이 함정을 선택합니다. 이 함정은 바나나를 던져 캐릭터를 공격합니다. 맵 곳곳에 추가 타일과 원숭이 함정을 배치합니다. 2. 원숭이 함정은 기본적으로 오른쪽에서 왼쪽으로 바나나를 던지기 때문에, 캐릭터의 오른쪽에 오도록 배치할 수밖에 없습니다. 바나나를 왼쪽에서 오른쪽으로 던지도록 수정해 봅시다. 원숭이 함정을 다음과 같이 왼쪽에 배치합니다. 원숭이 함정을 선택하고 **프로퍼티 에디터
[task] | single_turn [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | SpriteRendererComponent 의 SpriteRUID 에 애니메이션 RUID 를 넣으면 재생이 어떻게 이루어지나요? [answer] | `SpriteRendererComponent`의 `SpriteRUID` 프로퍼티에 애니메이션 RUID를 입력하면, 해당 애니메이션은 `PlayRate` 프로퍼티에서 지정된 속도로 재생됩니다. 재생은 `EndFrameIndex`까지 진행되며, 마지막 프레임에 도달하면 처음 프레임으로 돌아가는 방식으로 반복됩니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 리소스 검색 리소스 검색은 현재 웹과 메이커에서 이용할 수 있습니다. * [MSW 리소스](https://maplestoryworlds.nexon.com/resource) * 메이커의 **Resource Storage** 패널 # 스킬 고유 명칭으로 리소스 찾기 제작 리소스 조회 페이지에서는 여러 태그를 제공하고 있지만 아직 정확도가 높지 않습니다. 검색 시 가장 정확도가 높은 키워드는 **스킬의 고유 명칭**입니다. 예로 스킬 고유 명칭인 **워리어리프**로 검색하면 원하는 검색 결과를 확인하실 수 있습니다.
[task] | single_turn [pass] | ⏳ 미판정 [title] | 제작 가이드 활용법 [question] | 응용 제작 가이드의 '시스템 구현 가이드'와 '게임 따라 만들기' 중 어떤 것부터 시작하는 게 초보자에게 유리할까요? [answer] | 제공된 문서에는 '시스템 구현 가이드'와 '게임 따라 만들기'를 초보자가 어떤 순서로 진행해야 하는지에 대한 구체적인 비교나 권장 사항이 명시되어 있지 않습니다. 문서에서 확인할 수 있는 정보만으로는 두 가이드의 난이도나 초보자 적합성을 직접 비교하여 어떤 것이 더 유리한지 단정할 수 없습니다. 대신, 문서에는 가이드별로 난이도 배지(Lv.1~Lv.4)가 제공된다고 안내되어 있으므로, 각 가이드 상단에 표시된 **학습권장대상 배지**를 확인하여 본인에게 적절한 난이도인지 판단하는 것이 권장됩니다. * **Lv.1**: 메이커 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드에서는 다양한 형식의 가이드를 제공하고 있습니다. 메이플스토리 월드가 생소한 크리에이터라면 기본 **제작 가이드 - 시작하기 - [메이커 사용](/docs?postId=724)을** 먼저 살펴보며 기본 기능 익히기를 권장합니다. # 난이도 가이드를 살펴보기 전, 학습권장대상 배지를 확인하고 나에게 적절한 난이도인지 확인할 수 있습니다. * **Lv.1**: 메이커의 기본 기능과 컴포넌트의 기본 기능을 사용하고 싶은 크리에이터 * **Lv.2**: MSW의 기본 문법을 알고, 간단한 동작을 직접 만들 수 있는
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | SpriteRendererComponent 에서 RUID 를 설정할 때 애니메이션 재생과 관련된 프로퍼티 2 가지와 그 역할을 코드 주석 형식으로 설명하세요. [answer] | 메이플스토리 월드의 `SpriteRendererComponent`에서 애니메이션 재생과 관련된 프로퍼티 2가지는 **PlayRate**와 **EndFrameIndex**입니다. 이 두 프로퍼티의 역할은 다음과 같습니다: 1. **PlayRate**: 애니메이션이 재생되는 속도를 제어합니다. 2. **EndFrameIndex**: 애니메이션이 재생될 때 멈추는 마지막 프레임 인덱스를 지정합니다. 입력된 RUID가 애니메이션인 경우, 이 프레임까지 재생한 후 처음 프레임으로 돌아가 반복 재생됩니다. 아래는 이 프로퍼티들이 어떻게 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 리소스 검색 리소스 검색은 현재 웹과 메이커에서 이용할 수 있습니다. * [MSW 리소스](https://maplestoryworlds.nexon.com/resource) * 메이커의 **Resource Storage** 패널 # 스킬 고유 명칭으로 리소스 찾기 제작 리소스 조회 페이지에서는 여러 태그를 제공하고 있지만 아직 정확도가 높지 않습니다. 검색 시 가장 정확도가 높은 키워드는 **스킬의 고유 명칭**입니다. 예로 스킬 고유 명칭인 **워리어리프**로 검색하면 원하는 검색 결과를 확인하실 수 있습니다.
[task] | single_turn [pass] | ⏳ 미판정 [title] | 원하는 이펙트 찾기 [question] | SpriteGUIRendererComponent 에서 원본 사이즈와 비율을 유지하기 위해 어떤 프로퍼티를 어떻게 설정해야 하나요? [answer] | SpriteGUIRendererComponent에서 원본 사이즈와 비율을 유지하려면 **PreserveSprite** 프로퍼티의 값을 **NativeSize**로 설정해야 합니다. 이렇게 설정하면 이펙트의 사이즈와 오프셋은 **LocalScale**과 **LocalPosition** 프로퍼티를 통해 조정할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 리소스 검색 리소스 검색은 현재 웹과 메이커에서 이용할 수 있습니다. * [MSW 리소스](https://maplestoryworlds.nexon.com/resource) * 메이커의 **Resource Storage** 패널 # 스킬 고유 명칭으로 리소스 찾기 제작 리소스 조회 페이지에서는 여러 태그를 제공하고 있지만 아직 정확도가 높지 않습니다. 검색 시 가장 정확도가 높은 키워드는 **스킬의 고유 명칭**입니다. 예로 스킬 고유 명칭인 **워리어리프**로 검색하면 원하는 검색 결과를 확인하실 수 있습니다.
[task] | single_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 메이플스토리 맵 불러오기 기능을 통해 기존 맵을 가져와도, 인내의 숲처럼 점프 플레이를 위한 발판은 직접 배치해야 하는 건가요? [answer] | 메이플스토리 맵 불러오기 기능은 **Window - MapleStory Map** 메뉴를 통해 기존 메이플스토리 맵의 구조를 가져오는 기능을 제공합니다. 하지만 참고 문서에는 메이플스토리 맵 불러오기 기능이 발판(Foothold)까지 자동으로 배치해 주는지에 대한 명시적인 내용이 없습니다. 따라서 문서에만 근거하여 답변하자면, **발판이 자동으로 배치되는지 여부는 문서에서 확인되지 않습니다.** 다만, 문서에서는 인내의 숲과 같은 점프 플레이를 위해 **발판(Foothold)을 직접 배치하는 과정**을 자세히 설명하고 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 "인내의 숲"을 알고 계신가요? 인내의 숲을 검색해보면 많은 모험가들의 이야기를 찾아볼 수 있습니다. $$youtube HXMM4Vbx8aA $$ 인내의 숲은 점프를 이용해 발판을 넘어가며 목적지로 올라가는 게임입니다. 여러분은 인내의 숲을 보다 재미있게 만들 수 있는 색다른 아이디어를 갖고 있을지도 모릅니다. * 기존 인내의 숲은 너무 쉬운데? * 이렇게 하면 더 재미있을 것 같아. * 순위를 매기면 더 재미있지 않을까? * 서로 공격할 수 있으면 좋겠어. 메이플스토리 월드에서 이러한 아이디어를 현실화할
[task] | single_turn [pass] | ⏳ 미판정 [title] | 인내의 숲 만들기 [question] | 타일 배치를 할 때 드래그와 박스 칠하기 버튼의 차이점이 무엇이며, 각각 어떤 상황에 유용하게 사용될까요? [answer] | 타일 배치를 할 때 드래그와 박스 칠하기 버튼의 차이점은 다음과 같습니다. **드래그 배치** * **작동 방식:** 타일 프리셋을 선택한 상태로 마우스를 누른 채 드래그하면, 드래그한 궤적에 따라 타일이 하나씩 연속 배치됩니다. * **유용한 상황:** 곡선 형태, 지그재그, 또는 특정 패턴으로 이어지는 발판이나 길을 만들고 싶을 때 유용합니다. 자유롭게 형태를 그릴 수 있어 세부적인 맵 디자인에 적합합니다. **박스 칠하기 배치** * **작동 방식:** [박스 칠하기] 버튼을 활성화한 상태에서 드래그하면 사각형 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 "인내의 숲"을 알고 계신가요? 인내의 숲을 검색해보면 많은 모험가들의 이야기를 찾아볼 수 있습니다. $$youtube HXMM4Vbx8aA $$ 인내의 숲은 점프를 이용해 발판을 넘어가며 목적지로 올라가는 게임입니다. 여러분은 인내의 숲을 보다 재미있게 만들 수 있는 색다른 아이디어를 갖고 있을지도 모릅니다. * 기존 인내의 숲은 너무 쉬운데? * 이렇게 하면 더 재미있을 것 같아. * 순위를 매기면 더 재미있지 않을까? * 서로 공격할 수 있으면 좋겠어. 메이플스토리 월드에서 이러한 아이디어를 현실화할