[task] | extract_knowledge [title] | 아바타 아이템 등록하기 [category] | Guides [rephrased] | # 아바타 아이템 등록 및 관리 메이플스토리 월드에서 아바타 아이템은 '제작'과 '등록' 두 단계로 구성됩니다. 본 절에서는 제작된 PSD 파일을 플랫폼에 등록하고, 리소스 저장소에서 관리하며, 아이템을 수정하거나 삭제하는 절차에 대해 설명합니다. 등록 가능한 파츠 종류는 헤어, 모자, 망토, 상의, 장갑, 하의, 신발이며, 각 파츠의 등록 절차는 동일합니다. ## 1. 아바타 아이템 등록 절차 아바타 아이템 등록은 `AvatarItem Editor`를 통해 진행됩니다. 아래는 상의(Coat)를 예시로 한 등록 과정입니다. [original] | # 학습 과정 소개 메이플스토리 월드에서 크리에이터는 직접 아바타 아이템을 제작할 수 있습니다. 아바타 아이템을 만들기 위해서는 **제작**과 **등록** 단계를 진행해야 합니다. 이번 가이드에서는 등록 과정에 대한 내용을 설명하며 제작 과정에 대해서는 아래 가이드를 참고 부탁드립니다. ##### 참고 가이드 * [기본 개념](/docs?postId=588) * [하의 만들기](/docs?postId=584) * [망토 만들기](/docs?postId=585) * [상의 만들기](/docs?postId=586) * [장갑 만들기] [chunk_id] | Guides:590:0
[task] | diverse_qa [title] | 애니메이션 만들기 [category] | Guides [rephrased] | 질문: 애니메이션 클립 에디터를 사용하면 어떤 작업을 수행할 수 있나요? 답변: 애니메이션 클립 에디터를 이용해 기존의 메이플스토리 월드 애니메이션을 편집하거나 직접 제작한 애니메이션을 월드에 활용할 수 있습니다. 질문: 타임라인 창에서 애니메이션의 재생 순서는 어떻게 되나요? 답변: 재생 순서는 왼쪽에서 오른쪽입니다. 질문: 애니메이션 클립을 저장할 때 필수 값으로 입력해야 하는 항목은 무엇인가요? 답변: 이름입니다. 이름이 없으면 저장되지 않습니다. 질문: 저장 시 선택한 카테고리는 어디에 저장되나요? 답변: Resourc [original] | # 학습 과정 소개 애니메이션 클립 에디터를 이용해 기존의 메이플스토리 월드 애니메이션을 편집하거나 직접 제작한 애니메이션을 월드에 활용할 수 있습니다. 애니메이션 클립 에디터의 구성과 사용 방법을 알아봅시다. # 애니메이션 클립 에디터 소개 | 숫자 | 설명 | | --- | --- | | | **[새로 열기]**, **[추가하기]** 버튼으로 불러온 스프라이트가 배치됩니다. | | | 타임라인에 추가한 스프라이트들이 차례로 재생되며 초록 십자선을 기준으로 애니메이션 재생 위치를 확인할 수 있습니다. 상단의 Scale 슬 [chunk_id] | Guides:595:0
[task] | distill [title] | 애니메이션 만들기 [category] | Guides [rephrased] | # 애니메이션 제작 가이드 ## 재생 속도 (Delay) 하나의 프레임 재생 시간을 조절하여 애니메이션 속도를 변경합니다. **Delay 값이 커질수록 재생이 느려집니다.** * **설정 방법**: 타임라인의 첫 번째 이미지를 선택 후 `Shift` 키를 누르고 마지막 이미지를 선택하여 전체를 지정합니다. * **값 입력**: `Delay` 필드에 값을 입력 (예: `0.3`). ## 프레임 조정 타임라인에서 스프라이트(프레임)의 순서를 변경하거나 복제할 수 있습니다. * **구조**: 맨 왼쪽이 1프레임, 맨 오른 [original] | 하나의 프레임이 재생될 시간을 조절해 같은 스프라이트로 제작한 애니메이션의 재생 속도를 조절할 수 있습니다. 재생 속도 값은 수가 커질수록 느리게 재생됩니다. | 0.3 | 2.0 | | --- | --- | | | | 1. 타임라인의 가장 첫 번째 이미지를 선택하고 **Shift** 키를 누릅니다. 2. 스크롤 바를 움직여 마지막 이미지를 선택합니다. 3. **Delay** 값에 **0.3**을 입력합니다. 4. **[재생]** 버튼을 눌러 애니메이션 재생 속도를 확인합니다. 5. 편집한 애니메이션의 이름을 입력하고, * [chunk_id] | Guides:595:1
[task] | wikipedia [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | # 에디터 서비스(EditorService) 활용 가이드 ## 개요 메이플스토리 월드(MapleStory Worlds)의 일반적인 게임 로직은 라이프 사이클(Life Cycle)에 따라 이벤트 함수가 호출되는 방식으로 동작합니다. 반면, **EditorService**는 메이플스토리 월드 에디터(메이커) 환경에서 스크립트 사용을 지원하는 특수한 서비스입니다. 크리에이터는 이 서비스를 활용하여 자신에게 필요한 맞춤형 제작 도구를 개발할 수 있습니다. ## EditorService 체험하기 EditorService의 기본 동작을 [original] | # 학습 과정 소개 월드를 제작하고 테스트 플레이를 시작하면 라이프 사이클에 따라 이벤트 함수를 호출합니다. 이와 다르게 [EditorService](/apiReference/Services/EditorService)는 메이커에서 스크립트 사용을 지원합니다. 크리에이터는 **EditorService**를 이용해 자신이 필요한 제작 도구를 만들 수 있습니다. # 에디터 서비스 체험하기 EditorService를 활용해 로그를 남겨봅시다. 1. **MyDesk- Create Scripts - Create Component**를 선 [chunk_id] | Guides:646:0
[task] | diverse_qa [title] | 아바타 아이템 등록하기 [category] | Guides [rephrased] | 질문: 메이플스토리 월드에서 아바타 아이템을 만들기 위해 필요한 두 가지 주요 단계는 무엇인가요? 답변: 아바타 아이템을 만들기 위해서는 **제작**과 **등록** 단계를 진행해야 합니다. 질문: 아바타 아이템으로 등록 가능한 파츠는 어떤 것들이 있나요? 답변: 등록 가능한 파츠는 헤어, 모자, 망토, 상의, 장갑, 하의, 신발입니다. 질문: 이번 가이드에서는 어떤 아바타 파츠의 등록 과정을 예시로 설명하고 있나요? 답변: 이번 가이드는 **상의(coat)**를 등록하는 과정을 예시로 진행하고 있습니다. 질문: 아바타 아이템 [original] | # 학습 과정 소개 메이플스토리 월드에서 크리에이터는 직접 아바타 아이템을 제작할 수 있습니다. 아바타 아이템을 만들기 위해서는 **제작**과 **등록** 단계를 진행해야 합니다. 이번 가이드에서는 등록 과정에 대한 내용을 설명하며 제작 과정에 대해서는 아래 가이드를 참고 부탁드립니다. ##### 참고 가이드 * [기본 개념](/docs?postId=588) * [하의 만들기](/docs?postId=584) * [망토 만들기](/docs?postId=585) * [상의 만들기](/docs?postId=586) * [장갑 만들기] [chunk_id] | Guides:590:0
[task] | diverse_qa [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | 질문: EditorService는 어떤 환경에서 스크립트 사용을 지원합니까? 답변: EditorService는 메이커(에디터) 환경에서 스크립트 사용을 지원하여 크리에이터가 필요한 제작 도구를 만들 수 있게 합니다. 질문: HelloEditor 컴포넌트를 추가하기 위해 선택해야 하는 경로와 컴포넌트 이름은 무엇입니까? 답변: MyDesk - Create Scripts - Create Component를 선택하여 스크립트 컴포넌트를 추가하고 이름을 HelloEditor로 설정해야 합니다. 질문: 아래 코드는 어떤 이벤트를 처리하며 [original] | # 학습 과정 소개 월드를 제작하고 테스트 플레이를 시작하면 라이프 사이클에 따라 이벤트 함수를 호출합니다. 이와 다르게 [EditorService](/apiReference/Services/EditorService)는 메이커에서 스크립트 사용을 지원합니다. 크리에이터는 **EditorService**를 이용해 자신이 필요한 제작 도구를 만들 수 있습니다. # 에디터 서비스 체험하기 EditorService를 활용해 로그를 남겨봅시다. 1. **MyDesk- Create Scripts - Create Component**를 선 [chunk_id] | Guides:646:0
[task] | extract_knowledge [title] | 모자 만들기 [category] | Guides [rephrased] | # 모자 아이템 제작 가이드 ## 1. 개념 설명 메이플스토리 월드의 아바타 아이템 중 모자는 외형적 특성 및 착용 시 다른 아바타 요소(헤어, 장식)와의 상호작용 방식에 따라 **총 7가지 유형(A~G)**으로 분류됩니다. 일반적인 아바타 아이템과 달리, 모자는 **유형별 전용 제작 시트 파일**을 사용합니다. 이는 모자 아이템이 가지는 `vslot`(Virtual Slot) 특성에 기인합니다. `vslot`은 아이템이 아바타의 특정 부위를 어떻게 덮거나 상호작용하는지를 정의하는 가상 슬롯 개념입니다. 따라서 제작 시에는 반 [original] | 모자는 총 7가지 유형으로 나뉩니다. 모자는 다른 아바타 아이템과 다르게 유형별 전용 제작 시트 파일이 있습니다. 이는 모자 아이템의 vslot과 관련된 특성 때문입니다. 제작에 앞서 해당 개념을 참고해, 유형에 맞는 시트로 아이템을 제작하길 권장합니다. #### 모자 유형 |@cols=2:@rows=1:샘플 | @cols=2:@rows=1:투시 | 유형 설명 | | --- | --- | --- | --- | --- | | | | | |A 유형: [뒤통수가 개방된 모자](/docs?postId=684) 모자를 쓰면 [chunk_id] | Guides:592:0
[task] | knowledge_list [title] | 애니메이션 만들기 [category] | Guides [rephrased] | 제시된 원문에 포함된 정보만 바탕으로 핵심 사실을 추출하여 정리했습니다. * **애니메이션 클립 에디터**는 기존의 메이플스토리 월드 애니메이션을 편집하거나 직접 제작한 애니메이션을 월드에 활용하기 위한 도구입니다. * 에디터 내 **스프라이트 배치 영역**은 **[새로 열기]** 또는 **[추가하기]** 버튼으로 불러온 스프라이트가 배치되는 곳입니다. * **타임라인**은 추가된 스프라이트가 차례로 재생되며, **초록 십자선**을 기준으로 애니메이션 재생 위치를 확인할 수 있습니다. * 타임라인 상단의 **Scal [original] | # 학습 과정 소개 애니메이션 클립 에디터를 이용해 기존의 메이플스토리 월드 애니메이션을 편집하거나 직접 제작한 애니메이션을 월드에 활용할 수 있습니다. 애니메이션 클립 에디터의 구성과 사용 방법을 알아봅시다. # 애니메이션 클립 에디터 소개 | 숫자 | 설명 | | --- | --- | | | **[새로 열기]**, **[추가하기]** 버튼으로 불러온 스프라이트가 배치됩니다. | | | 타임라인에 추가한 스프라이트들이 차례로 재생되며 초록 십자선을 기준으로 애니메이션 재생 위치를 확인할 수 있습니다. 상단의 Scale 슬 [chunk_id] | Guides:595:0
[task] | knowledge_list [title] | 애니메이션 만들기 [category] | Guides [rephrased] | 제시된 문서는 mLua 스크립트 언어 및 API가 아닌, 메이플스토리 월드(MSW) 에디터 내 **애니메이션 클립 편집 및 리소스 관리 절차**에 대한 가이드입니다. 따라서 mLua API 이름, 매개변수, 반환 타입, 동기화/서버·클라이언트 제약이 존재하지 않으며, 문서에 명시된 UI 조작 및 리소스 관리 관련 핵심 사실만을 추출하여 정리합니다. * 애니메이션의 재생 속도는 프레임당 재생 시간인 `Delay` 값을 조절하여 변경하며, 이 값이 커질수록 애니메이션은 느리게 재생됩니다. * 타임라인의 첫 번째 이미지를 선택한 [original] | 하나의 프레임이 재생될 시간을 조절해 같은 스프라이트로 제작한 애니메이션의 재생 속도를 조절할 수 있습니다. 재생 속도 값은 수가 커질수록 느리게 재생됩니다. | 0.3 | 2.0 | | --- | --- | | | | 1. 타임라인의 가장 첫 번째 이미지를 선택하고 **Shift** 키를 누릅니다. 2. 스크롤 바를 움직여 마지막 이미지를 선택합니다. 3. **Delay** 값에 **0.3**을 입력합니다. 4. **[재생]** 버튼을 눌러 애니메이션 재생 속도를 확인합니다. 5. 편집한 애니메이션의 이름을 입력하고, * [chunk_id] | Guides:595:1
[task] | distill [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | # 에디터 타입 UI 및 API 활용 **UIGroupComponent**의 `GroupType`을 `EditorType`으로 설정하면, 월드 플레이 또는 편집 상태에서만 표시되는 UI를 구성할 수 있습니다. ## 1. 에디터 UI 구성 및 이벤트 처리 UI 에디터에서 `UIGroup` 추가 후 `GroupType`을 `EditorType`으로 변경하고, 버튼(예: `Btn_EditorTest`)을 배치합니다. 편집 모드 우측 상단의 **[Editor UI]** 토글을 활성화하면 버튼이 표시됩니다. 스크립트 컴포넌트에서 해당 [original] | UIGroupComponent의 **GroupType**을 변경해 에디터 타입의 UI를 구성할 수 있습니다. 에디터 타입 UI는 월드를 플레이하거나, 월드를 편집 중인 상태에서만 확인 및 기능 작동이 가능합니다. 간단한 예시를 통해 확인해보겠습니다. 1. UI 에디터를 엽니다. 2. 새로운 UIGroup을 추가합니다. 3. 추가한 UIGroup을 선택합니다. 4. 프로퍼티 에디터에서 UIGroupComponent의 GroupType을 **EditorType**으로 변경합 [chunk_id] | Guides:646:1
[task] | knowledge_list [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | 제시된 문서 내용을 바탕으로 핵심 사실을 추출하여 목록으로 정리하였습니다. * `UIGroupComponent`의 `GroupType` 프로퍼티를 `EditorType`으로 설정하면, 해당 UI는 월드 플레이 중이거나 월드 편집(에디터) 중인 상태에서만 확인 및 기능이 작동하도록 구성됩니다. * 에디터 타입 UI의 버튼은 클릭 가능한 상태로, `ButtonClickEditorEvent` 이벤트 핸들러를 통해 클릭 이벤트를 수신하여 처리할 수 있습니다. * `ButtonClickEditorEvent` 이벤트 핸들러는 `[ [original] | UIGroupComponent의 **GroupType**을 변경해 에디터 타입의 UI를 구성할 수 있습니다. 에디터 타입 UI는 월드를 플레이하거나, 월드를 편집 중인 상태에서만 확인 및 기능 작동이 가능합니다. 간단한 예시를 통해 확인해보겠습니다. 1. UI 에디터를 엽니다. 2. 새로운 UIGroup을 추가합니다. 3. 추가한 UIGroup을 선택합니다. 4. 프로퍼티 에디터에서 UIGroupComponent의 GroupType을 **EditorType**으로 변경합 [chunk_id] | Guides:646:1
[task] | distill [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | # 에디터 서비스 활용 에디터 서비스는 `OnBeginPlay()`나 `OnUpdate()` 등 런타임 라이프사이클을 지원하지 않으며, 에디터 상태에서만 발생하는 이벤트를 기반으로 동작합니다. ## 핵심 이벤트 * **WorldLoadEditorEvent**: 에디터 실행 후 월드 로드 시 1회 실행. 초기화 작업에 적합. * **EnterEditorEvent**: 에디터 최초 진입 및 테스트 플레이 종료 시 반복 호출. ## 주요 이벤트 유형 | 유형 | 이벤트 | | :--- | :--- | | 에디터 상태 진입 [original] | 버튼 클릭 시 에디터 상에 엔티티를 스폰하여 배치할 수도 있습니다. 에디터 상태에서 버튼을 클릭할 때마다 오브젝트를 스폰하는 예시입니다. ```lua Event Handler: [self] HandleButtonClickEvent(ButtonClickEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: ButtonComponent -- Space: Client -------------------------- [chunk_id] | Guides:646:2
[task] | wikipedia [title] | 애니메이션 만들기 [category] | Guides [rephrased] | # 애니메이션 클립 에디터 애니메이션 클립 에디터는 메이플스토리 월드에서 기존 애니메이션을 편집하거나 새로운 애니메이션을 제작하여 월드 내 활용을 가능하게 하는 도구입니다. 본 항목은 애니메이션 클립 에디터의 주요 구성 요소와 스프라이트 리소스를 불러오는 방법, 오프셋 및 프레임 속도 조절 기능을 설명합니다. ## 애니메이션 클립 에디터 구성 애니메이션 클립 에디터는 크게 스프라이트 배치 영역, 미리보기 창, 저장 정보 입력 영역, 타임라인 창, 그리고 상단 액션 버튼으로 구성됩니다. 첫째, **[새로 열기]** 및 **[추 [original] | # 학습 과정 소개 애니메이션 클립 에디터를 이용해 기존의 메이플스토리 월드 애니메이션을 편집하거나 직접 제작한 애니메이션을 월드에 활용할 수 있습니다. 애니메이션 클립 에디터의 구성과 사용 방법을 알아봅시다. # 애니메이션 클립 에디터 소개 | 숫자 | 설명 | | --- | --- | | | **[새로 열기]**, **[추가하기]** 버튼으로 불러온 스프라이트가 배치됩니다. | | | 타임라인에 추가한 스프라이트들이 차례로 재생되며 초록 십자선을 기준으로 애니메이션 재생 위치를 확인할 수 있습니다. 상단의 Scale 슬 [chunk_id] | Guides:595:0
[task] | wikipedia [title] | 애니메이션 만들기 [category] | Guides [rephrased] | # 애니메이션 제작 메이플스토리 월드(MSW)의 애니메이션 제작 기능은 하나의 프레임이 재생되는 시간을 조절하여 동일한 스프라이트로 구성된 애니메이션의 재생 속도를 변경하는 것을 지원합니다. 재생 속도 값은 수가 커질수록 애니메이션이 느리게 재생됩니다. 재생 속도를 설정하려면 다음과 같은 단계를 수행합니다. 1. 타임라인의 가장 첫 번째 이미지를 선택하고 **Shift** 키를 누릅니다. 2. 스크롤 바를 움직여 마지막 이미지를 선택합니다. 3. **Delay** 값에 **0.3**을 입력합니다. 4. **[재생]** 버튼을 [original] | 하나의 프레임이 재생될 시간을 조절해 같은 스프라이트로 제작한 애니메이션의 재생 속도를 조절할 수 있습니다. 재생 속도 값은 수가 커질수록 느리게 재생됩니다. | 0.3 | 2.0 | | --- | --- | | | | 1. 타임라인의 가장 첫 번째 이미지를 선택하고 **Shift** 키를 누릅니다. 2. 스크롤 바를 움직여 마지막 이미지를 선택합니다. 3. **Delay** 값에 **0.3**을 입력합니다. 4. **[재생]** 버튼을 눌러 애니메이션 재생 속도를 확인합니다. 5. 편집한 애니메이션의 이름을 입력하고, * [chunk_id] | Guides:595:1
[task] | wikipedia [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | 에디터 서비스는 실제 월드 플레이 상태가 아닌 편집 환경을 위한 서비스입니다. 따라서 `OnBeginPlay()`나 `OnUpdate()`와 같은 런타임 라이프 사이클 함수는 사용하지 않으며, 에디터에서 발생하는 특정 이벤트를 중심으로 스크립트를 구성해야 합니다. 사용 가능한 에디터 서비스의 함수와 이벤트 목록은 API 레퍼런스 사이트에서 확인 가능합니다. 에디터 서비스의 대표적인 이벤트로는 **WorldLoadEditorEvent**와 **EnterEditorEvent**가 있습니다. **WorldLoadEditorEvent** [original] | 버튼 클릭 시 에디터 상에 엔티티를 스폰하여 배치할 수도 있습니다. 에디터 상태에서 버튼을 클릭할 때마다 오브젝트를 스폰하는 예시입니다. ```lua Event Handler: [self] HandleButtonClickEvent(ButtonClickEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: ButtonComponent -- Space: Client -------------------------- [chunk_id] | Guides:646:2
[task] | wikipedia [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | UIGroupComponent의 GroupType 프로퍼티 값을 변경함으로써, 월드 편집 모드에서만 표시되고 작동하는 '에디터 타입 UI'를 구성할 수 있습니다. 이러한 UI는 사용자가 월드를 플레이하거나 편집 중인 상태에서만 시각적으로 확인되며, 해당 상태에서만 기능이 활성화됩니다. 에디터 타입 UI를 구성하는 과정은 다음과 같습니다. 먼저 UI 에디터를 실행한 후, 새로운 UIGroup 컴포넌트를 추가합니다. 추가된 UIGroup을 선택하여 프로퍼티 에디터에서 UIGroupComponent의 GroupType 값을 Editor [original] | UIGroupComponent의 **GroupType**을 변경해 에디터 타입의 UI를 구성할 수 있습니다. 에디터 타입 UI는 월드를 플레이하거나, 월드를 편집 중인 상태에서만 확인 및 기능 작동이 가능합니다. 간단한 예시를 통해 확인해보겠습니다. 1. UI 에디터를 엽니다. 2. 새로운 UIGroup을 추가합니다. 3. 추가한 UIGroup을 선택합니다. 4. 프로퍼티 에디터에서 UIGroupComponent의 GroupType을 **EditorType**으로 변경합 [chunk_id] | Guides:646:1
[task] | diverse_qa [title] | 애니메이션 만들기 [category] | Guides [rephrased] | 질문: 애니메이션의 재생 속도 값이 커질수록 애니메이션은 어떻게 재생되나요? 답변: 재생 속도 값은 수가 커질수록 느리게 재생됩니다. 질문: 타임라인의 첫 번째 이미지부터 마지막 이미지까지 선택하기 위해 어떤 키를 누르며 어떤 순서로 작업해야 하나요? 답변: 타임라인의 가장 첫 번째 이미지를 선택하고 Shift 키를 누른 후, 스크롤 바를 움직여 마지막 이미지를 선택합니다. 질문: Delay 값에 0.3을 입력하고 [재생] 버튼을 누른 후, 편집한 애니메이션을 저장하기 위해 수행해야 할 최종 단계는 무엇인가요? 답변: 편집한 애 [original] | 하나의 프레임이 재생될 시간을 조절해 같은 스프라이트로 제작한 애니메이션의 재생 속도를 조절할 수 있습니다. 재생 속도 값은 수가 커질수록 느리게 재생됩니다. | 0.3 | 2.0 | | --- | --- | | | | 1. 타임라인의 가장 첫 번째 이미지를 선택하고 **Shift** 키를 누릅니다. 2. 스크롤 바를 움직여 마지막 이미지를 선택합니다. 3. **Delay** 값에 **0.3**을 입력합니다. 4. **[재생]** 버튼을 눌러 애니메이션 재생 속도를 확인합니다. 5. 편집한 애니메이션의 이름을 입력하고, * [chunk_id] | Guides:595:1
[task] | extract_knowledge [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | # EditorService 활용 ## 개념 설명 `EditorService`는 메이플스토리 월드(MapleStory Worlds)의 메이커(Maker) 환경에서 스크립트 사용을 지원하는 서비스입니다. 일반적인 게임 라이프사이클 이벤트와 달리, `EditorService`는 크리에이터가 제작 도구를 만들거나 에디터 환경에서의 동작을 제어하기 위해 사용됩니다. 이 서비스는 다음과 같은 주요 이벤트를 제공합니다: - `EnterEditorEvent`: 에디터 환경으로 진입할 때 발생. 아웃게임(Out Game) 상태에서 최초 에디터 [original] | # 학습 과정 소개 월드를 제작하고 테스트 플레이를 시작하면 라이프 사이클에 따라 이벤트 함수를 호출합니다. 이와 다르게 [EditorService](/apiReference/Services/EditorService)는 메이커에서 스크립트 사용을 지원합니다. 크리에이터는 **EditorService**를 이용해 자신이 필요한 제작 도구를 만들 수 있습니다. # 에디터 서비스 체험하기 EditorService를 활용해 로그를 남겨봅시다. 1. **MyDesk- Create Scripts - Create Component**를 선 [chunk_id] | Guides:646:0
[task] | knowledge_list [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | 제시된 문서 내용만을 기반으로 핵심 사실을 추출하여 정리하였습니다. ```lua 1. 에디터 상태에서 버튼을 클릭할 때마다 오브젝트를 스폰하기 위해 _EditorService:SetSelectedModel(spawnModelId)와 _EditorService:CreateSelectedModel(spawnPosition)을 순차적으로 호출할 수 있습니다. 2. _EditorService:SetSelectedModel(spawnModelId) 메서드는 매개변수 spawnModelId(string)를 받아 에디터 상에서 선택할 모델을 [original] | 버튼 클릭 시 에디터 상에 엔티티를 스폰하여 배치할 수도 있습니다. 에디터 상태에서 버튼을 클릭할 때마다 오브젝트를 스폰하는 예시입니다. ```lua Event Handler: [self] HandleButtonClickEvent(ButtonClickEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: ButtonComponent -- Space: Client -------------------------- [chunk_id] | Guides:646:2
[task] | diverse_qa [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | 질문: UIGroupComponent의 GroupType을 어떻게 설정해야 에디터 타입의 UI를 구성할 수 있나요? 답변: UIGroupComponent의 GroupType을 EditorType으로 변경하면 에디터 타입의 UI를 구성할 수 있습니다. 질문: 에디터 타입 UI는 언제 확인 및 기능 작동이 가능한가요? 답변: 에디터 타입 UI는 월드를 플레이하거나, 월드를 편집 중인 상태에서만 확인 및 기능 작동이 가능합니다. 질문: UI 에디터에서 새로운 버튼을 추가하고 이름을 "Btn_EditorTest"로 변경하기 위한 순서 [original] | UIGroupComponent의 **GroupType**을 변경해 에디터 타입의 UI를 구성할 수 있습니다. 에디터 타입 UI는 월드를 플레이하거나, 월드를 편집 중인 상태에서만 확인 및 기능 작동이 가능합니다. 간단한 예시를 통해 확인해보겠습니다. 1. UI 에디터를 엽니다. 2. 새로운 UIGroup을 추가합니다. 3. 추가한 UIGroup을 선택합니다. 4. 프로퍼티 에디터에서 UIGroupComponent의 GroupType을 **EditorType**으로 변경합 [chunk_id] | Guides:646:1
[task] | knowledge_list [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | 제시된 문서 내용에만 기반하여 핵심 사실을 정리한 목록입니다. 1. `SpawnService`를 사용하면 엔티티를 배치하거나 프로퍼티 값을 수정하여 변경된 값을 저장할 수 있습니다. 2. 프로퍼티 값을 수정 및 제어하는 기능은 다양한 정보 수정에 유용하지만, 복잡한 정보를 저장하기에는 충분하지 않을 수 있습니다. 3. `EditorService`는 데이터에 접근하여 값을 읽고 쓸 수 있는 기능을 제공합니다. 4. `_DataService:GetTable("CustomEditorData")` 호출을 통해 지정된 테이블 이름의 데이터 [original] | **SpawnService**를 이용해 엔티티 배치하거나 프로퍼티 값을 수정해 변경된 값을 저장할 수 있습니다. 프로퍼티의 값을 수정 및 제어할 수 있다는 의미는 많은 정보를 수정할 수 있다는 의미를 내포하나, 복잡한 정보를 저장하기에는 충분하지 않을 수 있습니다. **EditorService**는 데이터에 접근하여 값을 읽고 쓸 수 있는 기능을 제공합니다.아래와 같이 데이터를 구성했다고 가정해보겠습니다. dash의 col3 컬럼의 값을 가져오기 위해 아래와 같이 작성해 활용할 수 있습니다. ```lua local data [chunk_id] | Guides:646:3
[task] | distill [title] | 패키지의 활용 [category] | Guides [rephrased] | # 메이커 사용 패키지 활용 ## 개요 Workspace의 모델, 스크립트 컴포넌트, 데이터 셋 등 엔트리를 단일 파일로 묶어 공유하는 기능입니다. 내보내기/불러오기 창에서 **폴더 구조**(Workspace 계층) 또는 **계층 구조**(타입별 분류)로 확인 가능합니다. ## 내보내기 1. `Workspace > MyDesk`에서 대상 엔트리 선택 2. 우클릭 > `Export To Package` 3. `Export` 클릭 후 저장 ## 핵심 규칙 ### 1. 리소스(RUID) 업로드 필수 이미지, 사운드 등 리소스 엔트 [original] | # 학습 과정 소개 메이플스토리 월드에서는 Workspace의 모델, 스크립트 컴포넌트, 데이터 셋과 같은 엔트리를 하나의 파일로 묶어 외부로 공유할 수 있는 패키지 기능을 제공하고 있습니다. Workspace의 엔트리를 패키지 파일로 내보내거나, 패키지 파일을 월드에 불러오는 방법에 대해 알아봅니다. # 패키지 소개 패키지는 특정 엔트리를 묶은 파일입니다. 패키지 파일을 이용해 제작한 월드의 일부를 외부와 공유하거나, 타인이 공유한 패키지를 내 월드에 사용할 수 있습니다. 패키지 내보내기, 불러오기 창에서는 폴더 구조와 계층 [chunk_id] | Guides:647:0
[task] | diverse_qa [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | 질문: 에디터 상태에서 버튼을 클릭할 때마다 오브젝트를 스폰하는 코드를 작성할 때, 모델 ID와 스폰 위치를 설정한 후 순서대로 호출해야 하는 에디터 서비스 함수 두 가지는 무엇인가요? 답변: `_EditorService:SetSelectedModel(spawnModelId)`와 `_EditorService:CreateSelectedModel(spawnPosition)`입니다. 질문: 아래 코드는 어떤 이벤트 핸들러에서 실행되며, 어떤 동작을 수행하나요? ```lua Event Handler: [self] HandleButtonC [original] | 버튼 클릭 시 에디터 상에 엔티티를 스폰하여 배치할 수도 있습니다. 에디터 상태에서 버튼을 클릭할 때마다 오브젝트를 스폰하는 예시입니다. ```lua Event Handler: [self] HandleButtonClickEvent(ButtonClickEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: ButtonComponent -- Space: Client -------------------------- [chunk_id] | Guides:646:2
[task] | extract_knowledge [title] | 애니메이션 만들기 [category] | Guides [rephrased] | # 애니메이션 클립 편집 및 오프셋 조정 ## 1. 개념 설명 애니메이션 클립 에디터는 메이플스토리 월드(MSW)에서 사용되는 애니메이션 리소스를 편집하거나 직접 제작하는 도구입니다. 이 에디터는 스프라이트를 타임라인에 배치하여 재생 순서를 결정하고, 각 프레임의 오프셋(Offset) 및 재생 속도를 조절하여 최종 애니메이션 클립을 생성합니다. 생성된 애니메이션 클립은 Resource Storage에 저장되며, 다른 엔티티나 객체에 RUID(Resource Unique ID)를 통해 참조되어 사용됩니다. 특히, 리소스마다 기본 [original] | # 학습 과정 소개 애니메이션 클립 에디터를 이용해 기존의 메이플스토리 월드 애니메이션을 편집하거나 직접 제작한 애니메이션을 월드에 활용할 수 있습니다. 애니메이션 클립 에디터의 구성과 사용 방법을 알아봅시다. # 애니메이션 클립 에디터 소개 | 숫자 | 설명 | | --- | --- | | | **[새로 열기]**, **[추가하기]** 버튼으로 불러온 스프라이트가 배치됩니다. | | | 타임라인에 추가한 스프라이트들이 차례로 재생되며 초록 십자선을 기준으로 애니메이션 재생 위치를 확인할 수 있습니다. 상단의 Scale 슬 [chunk_id] | Guides:595:0
[task] | distill [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | **EditorService**는 시스템 에디터에서 작성된 데이터셋(Table)에 접근하여 값을 읽고, 삽입, 수정, 삭제하는 기능을 제공합니다. 단순 프로퍼티 수정으로 저장하기 복잡한 구조화된 정보를 관리할 때 사용합니다. **1. 데이터 읽기** `_DataService:GetTable(name)`으로 테이블 객체를 가져온 뒤, `GetRowCount()`와 `GetCell(row, col)`로 값을 조회합니다. ```lua local data = _DataService:GetTable("CustomEditorData") l [original] | **SpawnService**를 이용해 엔티티 배치하거나 프로퍼티 값을 수정해 변경된 값을 저장할 수 있습니다. 프로퍼티의 값을 수정 및 제어할 수 있다는 의미는 많은 정보를 수정할 수 있다는 의미를 내포하나, 복잡한 정보를 저장하기에는 충분하지 않을 수 있습니다. **EditorService**는 데이터에 접근하여 값을 읽고 쓸 수 있는 기능을 제공합니다.아래와 같이 데이터를 구성했다고 가정해보겠습니다. dash의 col3 컬럼의 값을 가져오기 위해 아래와 같이 작성해 활용할 수 있습니다. ```lua local data [chunk_id] | Guides:646:3
[task] | diverse_qa [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | 질문: SpawnService를 주로 어떤 목적으로 활용합니까? 답변: SpawnService는 엔티티를 배치하거나 프로퍼티 값을 수정하여 변경된 값을 저장하는 데 활용할 수 있습니다. 질문: EditorService는 어떤 기능을 제공하는 서비스입니까? 답변: EditorService는 데이터에 접근하여 값을 읽고 쓸 수 있는 기능을 제공합니다. 질문: 제공된 코드 예제에서 `data:GetRowCount()` 함수는 어떤 역할을 합니까? 답변: `data:GetRowCount()` 함수는 "CustomEditorData" 테 [original] | **SpawnService**를 이용해 엔티티 배치하거나 프로퍼티 값을 수정해 변경된 값을 저장할 수 있습니다. 프로퍼티의 값을 수정 및 제어할 수 있다는 의미는 많은 정보를 수정할 수 있다는 의미를 내포하나, 복잡한 정보를 저장하기에는 충분하지 않을 수 있습니다. **EditorService**는 데이터에 접근하여 값을 읽고 쓸 수 있는 기능을 제공합니다.아래와 같이 데이터를 구성했다고 가정해보겠습니다. dash의 col3 컬럼의 값을 가져오기 위해 아래와 같이 작성해 활용할 수 있습니다. ```lua local data [chunk_id] | Guides:646:3
[task] | knowledge_list [title] | 패키지의 활용 [category] | Guides [rephrased] | 제공된 문서 내용에만 기반하여 핵심 사실을 추출한 목록입니다. 1. 메이플스토리 월드의 패키지 기능은 Workspace의 모델, 스크립트 컴포넌트, 데이터셋과 같은 엔트리를 하나의 파일로 묶어 외부로 공유하거나 타인의 패키지를 내 월드에 불러오는 데 사용됩니다. 2. 패키지 내보내기 및 불러오기 창에서는 폴더 구조와 계층 구조 두 가지 형태로 패키지 내용을 확인할 수 있으며, 폴더 구조는 Workspace의 실제 구조대로 엔트리를 표시하고 계층 구조는 엔트리를 타입별로 구별하여 표시합니다. 3. 패키지로 내보낼 엔트리들은 Work [original] | # 학습 과정 소개 메이플스토리 월드에서는 Workspace의 모델, 스크립트 컴포넌트, 데이터 셋과 같은 엔트리를 하나의 파일로 묶어 외부로 공유할 수 있는 패키지 기능을 제공하고 있습니다. Workspace의 엔트리를 패키지 파일로 내보내거나, 패키지 파일을 월드에 불러오는 방법에 대해 알아봅니다. # 패키지 소개 패키지는 특정 엔트리를 묶은 파일입니다. 패키지 파일을 이용해 제작한 월드의 일부를 외부와 공유하거나, 타인이 공유한 패키지를 내 월드에 사용할 수 있습니다. 패키지 내보내기, 불러오기 창에서는 폴더 구조와 계층 [chunk_id] | Guides:647:0
[task] | extract_knowledge [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | # 에디터 서비스의 활용 ## 개념 설명 에디터 서비스는 실제 월드 플레이 상태가 아닌 편집 모드에서 동작합니다. 따라서 `OnBeginPlay()`나 `OnUpdate()`와 같은 런타임 라이프사이클 함수는 사용되지 않으며, 에디터에서 발생하는 특정 이벤트에 반응하도록 스크립트를 구성해야 합니다. 에디터 서비스의 주요 이벤트는 다음과 같이 분류됩니다. | 유형 | 이벤트 이름 | | :--- | :--- | | 에디터 사용 간 특정 지점 호출 | `EnterEditorEvent`, `WorldLoadEditorEvent`, [original] | 버튼 클릭 시 에디터 상에 엔티티를 스폰하여 배치할 수도 있습니다. 에디터 상태에서 버튼을 클릭할 때마다 오브젝트를 스폰하는 예시입니다. ```lua Event Handler: [self] HandleButtonClickEvent(ButtonClickEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: ButtonComponent -- Space: Client -------------------------- [chunk_id] | Guides:646:2
[task] | wikipedia [title] | 에디터 서비스의 활용 [category] | Guides [rephrased] | **에디터 서비스와 데이터 관리** 메이플스토리 월드의 스크립트 환경에서는 `SpawnService`와 `EditorService`를 통해 엔티티 배치 및 데이터 관리가 가능합니다. `SpawnService`는 엔티티를 배치하거나 프로퍼티 값을 수정하여 변경된 값을 저장하는 기능을 제공합니다. 이 기능을 통해 다양한 정보를 수정하고 제어할 수 있으나, 구조가 복잡한 대용량 정보를 저장하는 용도로는 한계가 있을 수 있습니다. 반면, `EditorService`는 데이터셋에 직접 접근하여 값을 읽고 쓰는 기능을 지원합니다. 데이터 [original] | **SpawnService**를 이용해 엔티티 배치하거나 프로퍼티 값을 수정해 변경된 값을 저장할 수 있습니다. 프로퍼티의 값을 수정 및 제어할 수 있다는 의미는 많은 정보를 수정할 수 있다는 의미를 내포하나, 복잡한 정보를 저장하기에는 충분하지 않을 수 있습니다. **EditorService**는 데이터에 접근하여 값을 읽고 쓸 수 있는 기능을 제공합니다.아래와 같이 데이터를 구성했다고 가정해보겠습니다. dash의 col3 컬럼의 값을 가져오기 위해 아래와 같이 작성해 활용할 수 있습니다. ```lua local data [chunk_id] | Guides:646:3
[task] | extract_knowledge [title] | 애니메이션 만들기 [category] | Guides [rephrased] | # 애니메이션 재생 속도 및 프레임 조정 ## 개념 설명 메이플스토리 월드(MSW)에서 애니메이션은 스프라이트(Sprite)의 순차적 재생으로 이루어집니다. 애니메이션 클립의 시각적 품질과 동작을 제어하기 위해 **재생 속도(Delay)**와 **프레임 순서**를 조정할 수 있습니다. 1. **재생 속도 (Delay)**: * 하나의 프레임이 화면에 표시되는 시간(초)을 지정합니다. * 값이 **커질수록** 재생 속도가 느려지고, 값이 **작을수록** 재생 속도가 빨라집니다. 2. **프레임 (Fra [original] | 하나의 프레임이 재생될 시간을 조절해 같은 스프라이트로 제작한 애니메이션의 재생 속도를 조절할 수 있습니다. 재생 속도 값은 수가 커질수록 느리게 재생됩니다. | 0.3 | 2.0 | | --- | --- | | | | 1. 타임라인의 가장 첫 번째 이미지를 선택하고 **Shift** 키를 누릅니다. 2. 스크롤 바를 움직여 마지막 이미지를 선택합니다. 3. **Delay** 값에 **0.3**을 입력합니다. 4. **[재생]** 버튼을 눌러 애니메이션 재생 속도를 확인합니다. 5. 편집한 애니메이션의 이름을 입력하고, * [chunk_id] | Guides:595:1