[task] | instruction_following [pass] | ⏳ 미판정 [title] | 패키지의 활용 [question] | 패키지 가져오기 시 나타나는 엔트리 상태 아이콘별 동작을 표로 정리해서 나열하세요. [answer] | 패키지를 월드로 가져올 때 엔트리의 상태에 따라 나타나는 아이콘과 그 동작은 다음과 같습니다. | 아이콘 설명 | 동작 및 특징 | | :--- | :--- | | 변경된 내용이 없는 엔트리 | 기존 월드의 엔트리와 내용이 동일합니다. | | 내용이 다른 엔트리 | 가져올 때 패키지 내의 내용으로 기존 월드의 엔트리 내용을 **덮어씁니다**. | | 현재 월드와 경로가 다른 엔트리 | 패키지의 엔트리 경로와 현재 월드의 엔트리 경로가 다릅니다. 가져올 때 **현재 월드의 경로가 유지**됩니다. | | 이름이 변경된 엔트리 | 가져 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드에서 제공하는 **네이티브 스크립트와 네이티브 모델**은 패키지로 내보낼 수 없습니다. 네이티브 모델 자체에 새로운 컴포넌트를 추가한 경우, 그 네이티브 모델을 확장한 경우 또한 패키지로 내보낼 수 없습니다. 패키지를 불러올 때 모든 정보를 불러올 수 없기 때문입니다. 예를 들어 네이티브 모델에 ComponentA를 추가하고 이를 확장한 모델을 만들었다고 생각해 봅시다. 이 확장한 모델은 ComponentA를 상속받게 됩니다. 모델B를 다른 월드에서 불러올 때 새로운 월드에는 ComponentA가 포함된 네이티브
[task] | code [pass] | ⏳ 미판정 [title] | 에디터 서비스의 활용 [question] | 에디터에서 플레이 모드로 전환될 때만(EnterPlayEvent) 특정 메시지 로그를 남기고, 에디터로 복귀할 때(EnterEditorEvent)는 다른 메시지를 남기도록 분기 처리되는 EditorService 이벤트 핸들러 코드를 작성해줘 [answer] | 제공된 참고 문서에 근거하여, `EditorService`의 `EnterEditorEvent`와 `EnterPlayEvent`를 각각 처리하여 플레이 모드 진입 시와 에디터 복귀 시에 서로 다른 메시지를 로그로 남기는 스크립트 컴포넌트 코드를 작성했습니다. ```lua Event Handler: [service: EditorService] HandleEnterEditorEvent(EnterEditorEvent event) { --------------- Native Event Sender Info -------------- [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 월드를 제작하고 테스트 플레이를 시작하면 라이프 사이클에 따라 이벤트 함수를 호출합니다. 이와 다르게 [EditorService](/apiReference/Services/EditorService)는 메이커에서 스크립트 사용을 지원합니다. 크리에이터는 **EditorService**를 이용해 자신이 필요한 제작 도구를 만들 수 있습니다. # 에디터 서비스 체험하기 EditorService를 활용해 로그를 남겨봅시다. 1. **MyDesk- Create Scripts - Create Component**를 선
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 배지 등록하기 [question] | 메이플스토리 월드 공식 홈페이지와 메이커에서 배지를 등록하는 절차의 차이를 3문장 이내로 비교해서 설명해줘. [answer] | 공식 홈페이지에서는 로그인 후 '월드 만들기'와 '배지 관리 - 배지 등록' 메뉴를 거쳐 등록하는 반면, 메이커에서는 'Panels - Badge Viewer'에서 마우스 오른쪽 버튼으로 'Create New Badge'를 선택해 등록합니다. 두 플랫폼 모두 배지 등급, 이름, 이미지, 획득 기한을 설정하는 등록 화면과 절차는 동일합니다. 다만 그룹 월드의 경우 공식 홈페이지와 메이커 모두 그룹장만 출시 여부를 설정할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 배지는 크리에이터가 설정한 특정 미션을 달성할 때 이용자가 획득할 수 있는 업적을 의미합니다. 배지는 유저의 달성 목표를 보여주기 위해 사용하거나, 수집 욕구를 촉발해 월드를 끊임없이 즐길 수 있게 만드는 용도로 사용합니다. # 배지 등록하기 배지를 등록하는 방법은 두 가지입니다. 메이플스토리 월드 [공식 홈페이지](https://maplestoryworlds.nexon.com/) 혹은 메이커 내에서 등록이 가능합니다. 등록 화면과 절차는 동일하므로 크리에이터가 선호하는 곳에서 배지를 등록할 수 있습니다.
[task] | single_turn [pass] | ⏳ 미판정 [title] | 패키지의 활용 [question] | 자식 엔트리만 선택해 패키지로 내보냈는데, 부모 엔트리까지 자동으로 포함되는 것이 항상 발생하는 규칙인가요? [answer] | 네, 자식 엔트리만 선택해 패키지로 내보내면 부모 엔트리까지 자동으로 포함되는 것은 항상 발생하는 규칙입니다. 부모 - 자식 관계에 있는 엔트리를 패키지로 내보낼 때, 확장한 자식 엔트리만 선택하더라도 그 자식 엔트리의 부모 엔트리가 자동으로 패키지에 포함됩니다. 이는 내보내기된 패키지가 다른 월드에서 정상적으로 동작하기 위해 필요한 계층 구조를 유지하기 위한 것입니다. 예를 들어, 부모인 `Model_EmptyEntity`를 확장하여 만든 자식 엔트리 `Model_EmptyEntity_child`만 선택해 패키지로 내보내면, [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 메이플스토리 월드에서는 Workspace의 모델, 스크립트 컴포넌트, 데이터 셋과 같은 엔트리를 하나의 파일로 묶어 외부로 공유할 수 있는 패키지 기능을 제공하고 있습니다. Workspace의 엔트리를 패키지 파일로 내보내거나, 패키지 파일을 월드에 불러오는 방법에 대해 알아봅니다. # 패키지 소개 패키지는 특정 엔트리를 묶은 파일입니다. 패키지 파일을 이용해 제작한 월드의 일부를 외부와 공유하거나, 타인이 공유한 패키지를 내 월드에 사용할 수 있습니다. 패키지 내보내기, 불러오기 창에서는 폴더 구조와 계층
[task] | single_turn [pass] | ⏳ 미판정 [title] | 패키지의 활용 [question] | 패키지를 가져오기 전에 자동으로 저장된 월드 상태를 확인하려면 메뉴의 어디를 봐야 하나요? [answer] | 패키지를 불러올 때 월드는 자동으로 직전 월드 상태를 저장합니다. 이 자동으로 저장된 월드를 확인하려면 **File - Rivisions** 메뉴를 사용해야 합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드에서 제공하는 **네이티브 스크립트와 네이티브 모델**은 패키지로 내보낼 수 없습니다. 네이티브 모델 자체에 새로운 컴포넌트를 추가한 경우, 그 네이티브 모델을 확장한 경우 또한 패키지로 내보낼 수 없습니다. 패키지를 불러올 때 모든 정보를 불러올 수 없기 때문입니다. 예를 들어 네이티브 모델에 ComponentA를 추가하고 이를 확장한 모델을 만들었다고 생각해 봅시다. 이 확장한 모델은 ComponentA를 상속받게 됩니다. 모델B를 다른 월드에서 불러올 때 새로운 월드에는 ComponentA가 포함된 네이티브
[task] | two_turn [pass] | ⏳ 미판정 [title] | 에디터 서비스의 활용 [question] | 에디터 상태에서 버튼 클릭 시 오브젝트를 스폰하는 스크립트 예시를 보여주세요. [answer] | 에디터 상태에서 버튼을 클릭할 때마다 지정된 모델 ID의 오브젝트를 특정 위치에 스폰하는 스크립트 예시는 다음과 같습니다. ```lua Event Handler: [self] HandleButtonClickEvent(ButtonClickEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: ButtonComponent -- Space: Client ---------------------------------- [followup] | _EditorService:SetSelectedModel과 CreateSelectedModel 함수의 매개변수 타입과 반환값이 무엇인지 구체적으로 알려주세요. [followup_answer] | 제공된 참고 문서에는 `_EditorService:SetSelectedModel`과 `_EditorService:CreateSelectedModel` 함수가 버튼 클릭 시 오브젝트를 스폰하는 예제 코드 내에서 사용된다는 사실만 명시되어 있습니다. 문서에는 해당 함수들의 **구체적인 매개변수 타입 정의(예: `void SetSelectedModel(string modelId)`)**나 **반환값 타입**에 대한 정보가 포함되어 있지 않습니다. 따라서 참고 문서에만 근거하여 이 함수들의 정확한 시그니처(매개변수 타입과 반환값)를 설명 [scores] | [judge_reason] | [source_doc] | 버튼 클릭 시 에디터 상에 엔티티를 스폰하여 배치할 수도 있습니다. 에디터 상태에서 버튼을 클릭할 때마다 오브젝트를 스폰하는 예시입니다. ```lua Event Handler: [self] HandleButtonClickEvent(ButtonClickEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: ButtonComponent -- Space: Client --------------------------
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 배지 등록하기 [question] | 그룹 월드에서 배지 등록 및 수정 권한이 누구에게 있는지 3문장 이내로 답변해 주세요. [answer] | 그룹 월드에서 배지 등록과 수정은 모두 그룹장만 수행할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 배지의 상태는 총 5개로 구분됩니다. 메이커에서 테스트할 때는 모든 상태에서 획득할 수 있습니다. 월드에서 실제로 획득하기 위해서는 배지의 상태가 **획득 가능**이어야 합니다. | 이름 | 설명 | | --- | --- | | 미출시 | 출시 여부를 '미출시'로 설정한 상태입니다. 판매 기간이 되어도 월드 웹 배지 페이지나 클라이언트 내에서도 노출되지 않고 획득도 불가합니다. 플레이어가 보유한 배지도 리스트에서 확인이 불가합니다.| | 획득 대기 | 획득 기간의 시작일 이전에 등록이 완료된 상태로 시작일에 맞춰 자동으로 획득 가
[task] | code [pass] | ⏳ 미판정 [title] | 모자 만들기 [question] | 모자 유형(A~G)에 따라 착용 시 제거되는 헤어/장식 레이어가 다르므로, `Entity`의 `AvatarComponent`를 참조하여 유형별 레이어 비활성화 로직을 구현하는 스크립트를 작성해줘. [answer] | 제시된 참고 문서에는 모자 7가지 유형(A~G)의 정의와 각 유형별 헤어/장식 레이어가 어떻게 처리되는지(제거, 유지, 특정 레이어로 표시 등)에 대한 **설명만** 포함되어 있습니다. 하지만 문서에는 `AvatarComponent` API, 레이어를 제어하는 구체적인 메서드(예: `SetLayerEnabled`, `HideLayer` 등), 또는 `vslot` 관련 스크립트 인터페이스에 대한 정보가 **전혀 제공되지 않습니다**. 따라서 요청하신 "유형별 레이어 비활성화 로직을 구현하는 스크립트"를 작성할 수 없습니다. 참고 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 모자는 총 7가지 유형으로 나뉩니다. 모자는 다른 아바타 아이템과 다르게 유형별 전용 제작 시트 파일이 있습니다. 이는 모자 아이템의 vslot과 관련된 특성 때문입니다. 제작에 앞서 해당 개념을 참고해, 유형에 맞는 시트로 아이템을 제작하길 권장합니다. #### 모자 유형 |@cols=2:@rows=1:샘플 | @cols=2:@rows=1:투시 | 유형 설명 | | --- | --- | --- | --- | --- | | | | | |A 유형: [뒤통수가 개방된 모자](/docs?postId=684) 모자를 쓰면
[task] | code [pass] | ⏳ 미판정 [title] | 에디터 서비스의 활용 [question] | Hierarchy의 World > Common 노드에 HelloEditor 컴포넌트를 추가하고, EnterEditorEvent 발생 시 "에디터 모드 진입" 로그, EnterPlayEvent 발생 시 "플레이 모드 진입" 로그를 출력하도록 Event Handler를 작성해줘 [answer] | 메이플스토리 월드의 `EditorService`를 활용하여 에디터 모드와 플레이 모드 진입 시점을 감지하고 로그를 출력하는 `HelloEditor` 컴포넌트 스크립트입니다. 이 스크립트는 `Hierarchy > World > Common` 노드에 추가하여 사용할 수 있으며, `EditorService`의 `EnterEditorEvent`와 `EnterPlayEvent` 이벤트 핸들러를 등록합니다. ```lua Property: [None] Method: Event Handler: [service: EditorService] [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 월드를 제작하고 테스트 플레이를 시작하면 라이프 사이클에 따라 이벤트 함수를 호출합니다. 이와 다르게 [EditorService](/apiReference/Services/EditorService)는 메이커에서 스크립트 사용을 지원합니다. 크리에이터는 **EditorService**를 이용해 자신이 필요한 제작 도구를 만들 수 있습니다. # 에디터 서비스 체험하기 EditorService를 활용해 로그를 남겨봅시다. 1. **MyDesk- Create Scripts - Create Component**를 선
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 배지 등록하기 [question] | 크리에이터가 제재 중인 배지를 수정할 수 있는지, 수정 불가 시 조치 방법을 단계별 번호 목록으로 제시해 주세요. [answer] | 크리에이터는 제재 중인 배지를 수정할 수 있습니다. 제재 상태에 대한 문의나 처리를 원할 경우, 고객센터에 문의해야 합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 배지의 상태는 총 5개로 구분됩니다. 메이커에서 테스트할 때는 모든 상태에서 획득할 수 있습니다. 월드에서 실제로 획득하기 위해서는 배지의 상태가 **획득 가능**이어야 합니다. | 이름 | 설명 | | --- | --- | | 미출시 | 출시 여부를 '미출시'로 설정한 상태입니다. 판매 기간이 되어도 월드 웹 배지 페이지나 클라이언트 내에서도 노출되지 않고 획득도 불가합니다. 플레이어가 보유한 배지도 리스트에서 확인이 불가합니다.| | 획득 대기 | 획득 기간의 시작일 이전에 등록이 완료된 상태로 시작일에 맞춰 자동으로 획득 가
[task] | single_turn [pass] | ⏳ 미판정 [title] | 패키지의 활용 [question] | 메이플스토리 월드에서 패키지를 이용해 타인의 월드에서 만든 스크립트 컴포넌트를 내 월드에 가져와서 바로 사용할 수 있나요? [answer] | 네, 가능합니다. 메이플스토리 월드에서는 타인이 공유한 패키지 파일을 자신의 월드에 불러오는 기능을 제공합니다. 패키지에 스크립트 컴포넌트가 포함되어 있다면, 해당 패키지를 월드에 불러온 후 Workspace의 MyDesk에서 해당 스크립트 컴포넌트 엔트리를 선택해 사용할 수 있습니다. 단, 패키지로 내보내거나 불러오기 전에는 월드를 저장해야 하며, 이는 리소스(이미지, 사운드 등)가 서버에 정상적으로 업로드되어 다른 월드에서 호출될 수 있도록 하기 위한 필수 과정입니다. 또한, 스크립트 컴포넌트가 모델 등 다른 엔트리를 참조하고 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 메이플스토리 월드에서는 Workspace의 모델, 스크립트 컴포넌트, 데이터 셋과 같은 엔트리를 하나의 파일로 묶어 외부로 공유할 수 있는 패키지 기능을 제공하고 있습니다. Workspace의 엔트리를 패키지 파일로 내보내거나, 패키지 파일을 월드에 불러오는 방법에 대해 알아봅니다. # 패키지 소개 패키지는 특정 엔트리를 묶은 파일입니다. 패키지 파일을 이용해 제작한 월드의 일부를 외부와 공유하거나, 타인이 공유한 패키지를 내 월드에 사용할 수 있습니다. 패키지 내보내기, 불러오기 창에서는 폴더 구조와 계층
[task] | single_turn [pass] | ⏳ 미판정 [title] | 패키지의 활용 [question] | 패키지 내보내기 창에서 폴더 구조와 계층 구조의 차이는 무엇이며, 각각 어떤 목적으로 확인하는 것이 좋나요? [answer] | 패키지 내보내기 및 불러오기 창에서 제공하는 폴더 구조와 계층 구조는 엔트리를 확인하는 방식이 다릅니다. **폴더 구조**는 Workspace의 실제 폴더 계층 구조 그대로 엔트리를 보여줍니다. 월드 내부에서 엔트리가 어떤 폴더에 위치해 있는지, 폴더를 기반으로 한 물리적 배치 관계를 확인하고 싶을 때 유용합니다. **계층 구조**는 엔트리를 타입별로 구분하여 보여줍니다. 모델, 스크립트, 데이터셋 등 엔트리의 종류에 따라 그룹화되어 있어, 패키지에 포함된 특정 타입의 자산이 무엇인지 빠르게 파악할 때 적합합니다. 따라서 특정 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 메이플스토리 월드에서는 Workspace의 모델, 스크립트 컴포넌트, 데이터 셋과 같은 엔트리를 하나의 파일로 묶어 외부로 공유할 수 있는 패키지 기능을 제공하고 있습니다. Workspace의 엔트리를 패키지 파일로 내보내거나, 패키지 파일을 월드에 불러오는 방법에 대해 알아봅니다. # 패키지 소개 패키지는 특정 엔트리를 묶은 파일입니다. 패키지 파일을 이용해 제작한 월드의 일부를 외부와 공유하거나, 타인이 공유한 패키지를 내 월드에 사용할 수 있습니다. 패키지 내보내기, 불러오기 창에서는 폴더 구조와 계층
[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 등록하기 [question] | 그룹 월드에서 배지의 출시 여부를 설정할 수 있는 권한은 누구에게 있나요? [answer] | 그룹 월드의 경우, 배지의 출시 여부를 설정할 수 있는 권한은 **그룹장**에게만 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 배지는 크리에이터가 설정한 특정 미션을 달성할 때 이용자가 획득할 수 있는 업적을 의미합니다. 배지는 유저의 달성 목표를 보여주기 위해 사용하거나, 수집 욕구를 촉발해 월드를 끊임없이 즐길 수 있게 만드는 용도로 사용합니다. # 배지 등록하기 배지를 등록하는 방법은 두 가지입니다. 메이플스토리 월드 [공식 홈페이지](https://maplestoryworlds.nexon.com/) 혹은 메이커 내에서 등록이 가능합니다. 등록 화면과 절차는 동일하므로 크리에이터가 선호하는 곳에서 배지를 등록할 수 있습니다.
[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 등록하기 [question] | 유기한으로 설정한 배지의 획득 시작일이 지나면 배지 상태가 어떻게 변경되나요? [answer] | 유기한으로 설정한 배지의 획득 시작일이 되면 배지 상태가 **획득 가능** 상태로 변경되며, 이때부터 유저가 배지를 획득할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 배지는 크리에이터가 설정한 특정 미션을 달성할 때 이용자가 획득할 수 있는 업적을 의미합니다. 배지는 유저의 달성 목표를 보여주기 위해 사용하거나, 수집 욕구를 촉발해 월드를 끊임없이 즐길 수 있게 만드는 용도로 사용합니다. # 배지 등록하기 배지를 등록하는 방법은 두 가지입니다. 메이플스토리 월드 [공식 홈페이지](https://maplestoryworlds.nexon.com/) 혹은 메이커 내에서 등록이 가능합니다. 등록 화면과 절차는 동일하므로 크리에이터가 선호하는 곳에서 배지를 등록할 수 있습니다.
[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 등록하기 [question] | 배지 섬네일 등록 시 권장하는 이미지 크기와 허용되는 파일 형식 및 용량은 무엇인가요? [answer] | 배지 섬네일 등록 시 권장하는 이미지 크기는 120x120 px입니다. 허용되는 파일 형식은 jpg와 png이며, 용량은 2MB 이하로 1개만 등록할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 배지는 크리에이터가 설정한 특정 미션을 달성할 때 이용자가 획득할 수 있는 업적을 의미합니다. 배지는 유저의 달성 목표를 보여주기 위해 사용하거나, 수집 욕구를 촉발해 월드를 끊임없이 즐길 수 있게 만드는 용도로 사용합니다. # 배지 등록하기 배지를 등록하는 방법은 두 가지입니다. 메이플스토리 월드 [공식 홈페이지](https://maplestoryworlds.nexon.com/) 혹은 메이커 내에서 등록이 가능합니다. 등록 화면과 절차는 동일하므로 크리에이터가 선호하는 곳에서 배지를 등록할 수 있습니다.
[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 등록하기 [question] | 배지 등급 중 노멀, 레어, 에픽은 각각 어떤 난도의 업적에 맞게 구분해야 하나요? [answer] | 배지 등급은 업적의 난도에 따라 다음과 같이 구분합니다. * **노멀**: 획득하기 쉬운 난도의 업적에 사용합니다. * **레어**: 도달하기 어려운 난도의 업적에 사용합니다. * **에픽**: 도달하기 매우 어려운 난도의 업적에 사용합니다. 각 등급의 구체적인 기준은 크리에이터가 직접 정의할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 배지는 크리에이터가 설정한 특정 미션을 달성할 때 이용자가 획득할 수 있는 업적을 의미합니다. 배지는 유저의 달성 목표를 보여주기 위해 사용하거나, 수집 욕구를 촉발해 월드를 끊임없이 즐길 수 있게 만드는 용도로 사용합니다. # 배지 등록하기 배지를 등록하는 방법은 두 가지입니다. 메이플스토리 월드 [공식 홈페이지](https://maplestoryworlds.nexon.com/) 혹은 메이커 내에서 등록이 가능합니다. 등록 화면과 절차는 동일하므로 크리에이터가 선호하는 곳에서 배지를 등록할 수 있습니다.
[task] | single_turn [pass] | ⏳ 미판정 [title] | 패키지의 활용 [question] | 패키지를 월드로 가져올 때 엔트리 경로가 현재 월드와 다른 경우 어떤 방식으로 처리되나요? [answer] | 패키지를 월드로 가져올 때 엔트리 경로가 현재 월드와 다른 경우, **현재 월드의 경로가 유지**됩니다. 이 상황은 가져오기 과정에서 아래 표와 같이 상태 아이콘으로 표시됩니다. | 아이콘 | 설명 | | --- | --- | | (경로 차이 아이콘) | 현재 월드와 경로가 다른 엔트리입니다. 현재 월드의 경로가 유지됩니다.| 즉, 패키지의 원본 경로가 아니라 이미 존재하는 현재 월드의 경로를 따르도록 처리됩니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드에서 제공하는 **네이티브 스크립트와 네이티브 모델**은 패키지로 내보낼 수 없습니다. 네이티브 모델 자체에 새로운 컴포넌트를 추가한 경우, 그 네이티브 모델을 확장한 경우 또한 패키지로 내보낼 수 없습니다. 패키지를 불러올 때 모든 정보를 불러올 수 없기 때문입니다. 예를 들어 네이티브 모델에 ComponentA를 추가하고 이를 확장한 모델을 만들었다고 생각해 봅시다. 이 확장한 모델은 ComponentA를 상속받게 됩니다. 모델B를 다른 월드에서 불러올 때 새로운 월드에는 ComponentA가 포함된 네이티브
[task] | code [pass] | ⏳ 미판정 [title] | 헤어 만들기 [question] | 제공된 문서에는 mLua 스크립트 언어, 컴포넌트, 서비스 또는 API에 대한 정보가 전혀 포함되어 있지 않으며, Adobe Photoshop을 이용한 헤어 이미지 제작 가이드만 다루고 있습니다. 따라서 해당 문서의 정보만 사용하여 mLua 코딩 과제를 작성할 수 없습니다. [answer] | 제공된 참고 문서에는 mLua 스크립트 언어, 컴포넌트, 서비스 또는 API에 대한 정보가 전혀 포함되어 있지 않으며, Adobe Photoshop을 이용한 헤어 이미지 제작 가이드만 다루고 있습니다. 따라서 해당 문서의 정보만 사용하여 mLua 코딩 과제를 작성할 수 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 헤어 제작 방법을 알아봅시다. 기본 헤어의 색상을 변경하거나, 새롭게 그릴 수 있습니다. 헤어는 복잡한 구조로 바지나 신발 아이템 제작에 익숙해진 후 작업하는 걸 권장합니다. [아바타 아이템 제작의 기본 개념](/docs?postId=588%7B%22target%22:%22_self%22%7D)을 참고해 아바타의 기본 개념을 먼저 숙지하길 바랍니다. # 사전 준비 아이템 제작을 위해선 Adobe Photoshop이 필요합니다. 해당 소프트웨어를 설치한 후 아래 파일을 받아 엽니다. $$attachFile
[task] | code [pass] | ⏳ 미판정 [title] | 에디터 서비스의 활용 [question] | EditorService의 EnterEditorEvent와 EnterPlayEvent를 처리하는 헬퍼 메서드 로직을 분리하여, 각 이벤트 핸들러에서 self:OnEditorEnter()와 self:OnPlayEnter()를 호출하도록 구조화된 HelloEditor 스크립트를 작성해줘 [answer] | EditorService의 `EnterEditorEvent`와 `EnterPlayEvent`를 처리하기 위해 이벤트 핸들러와 실제 로직을 수행하는 메서드를 분리한 `HelloEditor` 스크립트입니다. 이벤트 핸들러(`HandleEnterEditorEvent`, `HandleEnterPlayEvent`)에서는 각각 `self:OnEditorEnter()`와 `self:OnPlayEnter()`를 호출하도록 구성하고, 해당 메서드들에서 구체적인 로직(예: 로그 출력)을 수행합니다. ```lua Property: [None] -- [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 월드를 제작하고 테스트 플레이를 시작하면 라이프 사이클에 따라 이벤트 함수를 호출합니다. 이와 다르게 [EditorService](/apiReference/Services/EditorService)는 메이커에서 스크립트 사용을 지원합니다. 크리에이터는 **EditorService**를 이용해 자신이 필요한 제작 도구를 만들 수 있습니다. # 에디터 서비스 체험하기 EditorService를 활용해 로그를 남겨봅시다. 1. **MyDesk- Create Scripts - Create Component**를 선
[task] | code [pass] | ⏳ 미판정 [title] | 에디터 서비스의 활용 [question] | EditorService의 EnterEditorEvent와 EnterPlayEvent 핸들러를 구현하여 에디터 진입 시와 플레이 모드 전환 시 각각 다른 로그 메시지를 출력하는 HelloEditor 스크립트 컴포넌트를 작성해줘 [answer] | EditorService의 `EnterEditorEvent`와 `EnterPlayEvent`를 처리하는 `HelloEditor` 스크립트 컴포넌트는 아래처럼 작성할 수 있습니다. ```lua Event Handler: [service: EditorService] HandleEnterEditorEvent(EnterEditorEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: EditorService -- Space [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 월드를 제작하고 테스트 플레이를 시작하면 라이프 사이클에 따라 이벤트 함수를 호출합니다. 이와 다르게 [EditorService](/apiReference/Services/EditorService)는 메이커에서 스크립트 사용을 지원합니다. 크리에이터는 **EditorService**를 이용해 자신이 필요한 제작 도구를 만들 수 있습니다. # 에디터 서비스 체험하기 EditorService를 활용해 로그를 남겨봅시다. 1. **MyDesk- Create Scripts - Create Component**를 선
[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 등록하기 [question] | 그룹 월드에서 배지 수정을 시도했는데 권한 오류가 나는 이유는 무엇인가요? [answer] | 그룹 월드에서 배지의 등록과 수정 작업은 그룹장 권한만 가진 사용자가 수행할 수 있습니다. 따라서 그룹장이 아닌 일반 멤버가 배지 수정을 시도하면 권한 오류가 발생합니다. 배지를 수정하려면 반드시 그룹장 계정으로 접속하여 진행해야 합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 배지의 상태는 총 5개로 구분됩니다. 메이커에서 테스트할 때는 모든 상태에서 획득할 수 있습니다. 월드에서 실제로 획득하기 위해서는 배지의 상태가 **획득 가능**이어야 합니다. | 이름 | 설명 | | --- | --- | | 미출시 | 출시 여부를 '미출시'로 설정한 상태입니다. 판매 기간이 되어도 월드 웹 배지 페이지나 클라이언트 내에서도 노출되지 않고 획득도 불가합니다. 플레이어가 보유한 배지도 리스트에서 확인이 불가합니다.| | 획득 대기 | 획득 기간의 시작일 이전에 등록이 완료된 상태로 시작일에 맞춰 자동으로 획득 가
[task] | single_turn [pass] | ⏳ 미판정 [title] | 에디터 서비스의 활용 [question] | DataSetInsertRow() 호출 후 rowCount + 1 줄에 데이터를 세팅하는 코드가 왜 필요한가요? [answer] | `DataSetInsertRow()` 호출 후 `rowCount + 1` 줄에 데이터를 세팅해야 하는 이유는, 기존 데이터셋의 마지막 줄 번호를 기준으로 새로운 행이 추가될 위치를 계산하기 위해서입니다. 참고 문서의 예제를 보면 다음과 같은 흐름으로 동작합니다. 1. **현재 행 수 확인**: `_DataService:GetTable("CustomEditorData")`를 통해 데이터 테이블을 가져오고, `data:GetRowCount()`를 호출하여 현재 존재하는 행의 개수(`rowCount`)를 확인합니다. 2. **새로 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | **SpawnService**를 이용해 엔티티 배치하거나 프로퍼티 값을 수정해 변경된 값을 저장할 수 있습니다. 프로퍼티의 값을 수정 및 제어할 수 있다는 의미는 많은 정보를 수정할 수 있다는 의미를 내포하나, 복잡한 정보를 저장하기에는 충분하지 않을 수 있습니다. **EditorService**는 데이터에 접근하여 값을 읽고 쓸 수 있는 기능을 제공합니다.아래와 같이 데이터를 구성했다고 가정해보겠습니다. dash의 col3 컬럼의 값을 가져오기 위해 아래와 같이 작성해 활용할 수 있습니다. ```lua local data
[task] | two_turn [pass] | ⏳ 미판정 [title] | 에디터 서비스의 활용 [question] | 에디터 서비스에서 WorldLoadEditorEvent와 EnterEditorEvent의 실행 시점 차이와 각각의 적절한 사용 용도가 무엇인가요? [answer] | 에디터 서비스에서 `WorldLoadEditorEvent`와 `EnterEditorEvent`는 실행 시점이 다르며, 이에 따라 각기 다른 용도로 사용하는 것이 적절합니다. **1. 실행 시점 차이** * **WorldLoadEditorEvent**: 에디터를 실행한 후 월드를 로드하는 과정에서 **1회만** 실행됩니다. * **EnterEditorEvent**: 에디터를 실행한 후 월드를 **최초 로드할 때**와 **테스트 플레이를 종료할 때** 호출됩니다. 즉, 테스트 플레이를 반복할 때마다 다시 실행되는 **반복적* [followup] | EnterEditorEvent가 반복 호출되는 상황에서 초기화 로직을 중복 실행하지 않도록 방지하는 코드 패턴을 작성해 주세요. [followup_answer] | 참고 문서에 제공된 에디터 서비스 이벤트 및 mLua 문법 규칙을 기반으로, `EnterEditorEvent`에서 초기화 로직이 중복 실행되지 않도록 방지하는 코드 패턴은 다음과 같습니다. `WorldLoadEditorEvent`는 1회만 실행되므로 초기화에 적합하지만, `EnterEditorEvent`는 테스트 플레이 종료 시마다 반복 호출됩니다. 따라서 `EnterEditorEvent` 내에서 **1회만 실행되어야 하는 초기화 로직**을 포함할 경우, 플래그 변수를 사용하여 중복 실행을 방지해야 합니다. ```lua Prop [scores] | [judge_reason] | [source_doc] | 버튼 클릭 시 에디터 상에 엔티티를 스폰하여 배치할 수도 있습니다. 에디터 상태에서 버튼을 클릭할 때마다 오브젝트를 스폰하는 예시입니다. ```lua Event Handler: [self] HandleButtonClickEvent(ButtonClickEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: ButtonComponent -- Space: Client --------------------------
[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 등록하기 [question] | 획득 대기 상태의 배지가 자동으로 획득 가능으로 전환되는 시점은 정확히 언제인가요? [answer] | 획득 대기 상태의 배지는 **획득 기간의 시작일**이 도래하면 자동으로 '획득 가능' 상태로 변경됩니다. 구체적으로, 출시 상태를 유지한 채로 획득 기간을 지정해 두었다면, 해당 획득 시작일(시각)에 맞춰 시스템이 자동으로 상태를 전환합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 배지의 상태는 총 5개로 구분됩니다. 메이커에서 테스트할 때는 모든 상태에서 획득할 수 있습니다. 월드에서 실제로 획득하기 위해서는 배지의 상태가 **획득 가능**이어야 합니다. | 이름 | 설명 | | --- | --- | | 미출시 | 출시 여부를 '미출시'로 설정한 상태입니다. 판매 기간이 되어도 월드 웹 배지 페이지나 클라이언트 내에서도 노출되지 않고 획득도 불가합니다. 플레이어가 보유한 배지도 리스트에서 확인이 불가합니다.| | 획득 대기 | 획득 기간의 시작일 이전에 등록이 완료된 상태로 시작일에 맞춰 자동으로 획득 가
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 헤어 만들기 [question] | 헤어 제작 시 권장 크기와 사전 준비가 필요한 소프트웨어 이름을 2문장 이내로 답변하세요. [answer] | 헤어는 아바타 발을 기준으로 최대 120x120 크기 안에서 제작하는 것이 권장됩니다. 아이템 제작을 위해 Adobe Photoshop 소프트웨어가 필요합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 헤어 제작 방법을 알아봅시다. 기본 헤어의 색상을 변경하거나, 새롭게 그릴 수 있습니다. 헤어는 복잡한 구조로 바지나 신발 아이템 제작에 익숙해진 후 작업하는 걸 권장합니다. [아바타 아이템 제작의 기본 개념](/docs?postId=588%7B%22target%22:%22_self%22%7D)을 참고해 아바타의 기본 개념을 먼저 숙지하길 바랍니다. # 사전 준비 아이템 제작을 위해선 Adobe Photoshop이 필요합니다. 해당 소프트웨어를 설치한 후 아래 파일을 받아 엽니다. $$attachFile
[task] | single_turn [pass] | ⏳ 미판정 [title] | 에디터 서비스의 활용 [question] | 특정 이름의 행에서 특정 컬럼 값을 변경하려면 어떤 순서로 GetCell과 DataSetSetCell을 조합해야 하나요? [answer] | 특정 이름의 행에서 특정 컬럼 값을 변경하려면, 먼저 `DataService`를 통해 데이터를 조회하여 해당 이름의 행 번호(인덱스)를 찾아야 합니다. 이 행 번호를 확보한 후, `EditorService`의 `DataSetSetCell` API를 호출하여 해당 인덱스의 컬럼 값을 수정합니다. 구체적인 순서는 다음과 같습니다: 1. **데이터 조회 및 행 탐색**: `_DataService:GetTable("데이터셋명")`으로 테이블을 가져오고, `GetRowCount()`로 총 행 수를 확인합니다. 2. **목표 행 인덱스 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | **SpawnService**를 이용해 엔티티 배치하거나 프로퍼티 값을 수정해 변경된 값을 저장할 수 있습니다. 프로퍼티의 값을 수정 및 제어할 수 있다는 의미는 많은 정보를 수정할 수 있다는 의미를 내포하나, 복잡한 정보를 저장하기에는 충분하지 않을 수 있습니다. **EditorService**는 데이터에 접근하여 값을 읽고 쓸 수 있는 기능을 제공합니다.아래와 같이 데이터를 구성했다고 가정해보겠습니다. dash의 col3 컬럼의 값을 가져오기 위해 아래와 같이 작성해 활용할 수 있습니다. ```lua local data
[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 등록하기 [question] | 미출시 상태로 설정한 배지는 플레이어가 이미 보유하고 있더라도 리스트에서 보이지 않나요? [answer] | 네, 미출시 상태로 설정한 배지는 플레이어가 이미 보유하고 있더라도 리스트에서 확인이 불가합니다. 미출시 상태는 출시 여부를 '미출시'로 설정한 상태로, 판매 기간이 되어도 월드 웹 배지 페이지나 클라이언트 내에서도 노출되지 않고 획득도 불가능하며, 보유 중인 배지조차 리스트에서 보지 못하게 됩니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 배지의 상태는 총 5개로 구분됩니다. 메이커에서 테스트할 때는 모든 상태에서 획득할 수 있습니다. 월드에서 실제로 획득하기 위해서는 배지의 상태가 **획득 가능**이어야 합니다. | 이름 | 설명 | | --- | --- | | 미출시 | 출시 여부를 '미출시'로 설정한 상태입니다. 판매 기간이 되어도 월드 웹 배지 페이지나 클라이언트 내에서도 노출되지 않고 획득도 불가합니다. 플레이어가 보유한 배지도 리스트에서 확인이 불가합니다.| | 획득 대기 | 획득 기간의 시작일 이전에 등록이 완료된 상태로 시작일에 맞춰 자동으로 획득 가
[task] | single_turn [pass] | ⏳ 미판정 [title] | 패키지의 활용 [question] | 네이티브 모델에 컴포넌트를 추가해서 만든 확장 모델은 왜 패키지로 내보내기가 불가능한 건가요? [answer] | 네이티브 모델에 새로운 컴포넌트를 추가하여 확장한 모델은 패키지로 내보낼 수 없습니다. 그 이유는 패키지를 다른 월드로 불러올 때 모든 정보가 완전히 전달되지 않기 때문입니다. 구체적으로 설명하면, 네이티브 모델에 `ComponentA`를 추가하고 이를 기반으로 확장한 모델을 만들었다고 가정해 보겠습니다. 이 확장 모델은 `ComponentA`를 상속받게 됩니다. 그러나 이 확장 모델을 다른 월드에서 패키지로 불러오면, 해당 새로운 월드에는 `ComponentA`가 포함된 원래의 네이티브 모델이 존재하지 않습니다. 결국, 확장 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드에서 제공하는 **네이티브 스크립트와 네이티브 모델**은 패키지로 내보낼 수 없습니다. 네이티브 모델 자체에 새로운 컴포넌트를 추가한 경우, 그 네이티브 모델을 확장한 경우 또한 패키지로 내보낼 수 없습니다. 패키지를 불러올 때 모든 정보를 불러올 수 없기 때문입니다. 예를 들어 네이티브 모델에 ComponentA를 추가하고 이를 확장한 모델을 만들었다고 생각해 봅시다. 이 확장한 모델은 ComponentA를 상속받게 됩니다. 모델B를 다른 월드에서 불러올 때 새로운 월드에는 ComponentA가 포함된 네이티브
[task] | code [pass] | ⏳ 미판정 [title] | 배지 등록하기 [question] | 주어진 문서에는 배지의 상태 정의(미출시, 획득 대기, 획득 가능, 획득 불가, 제제 중)와 그룹 월드 상품 등록 권한(그룹장)에 대한 정보만 포함되어 있으며, mLua에서 배지를 획득하거나 상태를 확인하는 구체적인 API, 서비스, 이벤트 핸들러, 메서드 명세는 포함되어 있지 않습니다. 따라서 문서에 나온 정보만으로 구현 가능한 구체적인 mLua 코딩 과제를 만들 수 없습니다. [answer] | 제시된 문서에는 배지의 5가지 상태(미출시, 획득 대기, 획득 가능, 획득 불가, 제제 중)의 정의와 그룹 월드에서 상품 등록 권한이 그룹장에게 있다는 정보만 포함되어 있습니다. 문서에는 mLua에서 배지를 획득하거나 상태를 확인하는 구체적인 API, 서비스, 이벤트 핸들러, 메서드 명세가 포함되어 있지 않습니다. 따라서 문서에 나온 정보만으로 배지 관련 로직을 구현하는 mLua 코드를 작성할 수 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 배지의 상태는 총 5개로 구분됩니다. 메이커에서 테스트할 때는 모든 상태에서 획득할 수 있습니다. 월드에서 실제로 획득하기 위해서는 배지의 상태가 **획득 가능**이어야 합니다. | 이름 | 설명 | | --- | --- | | 미출시 | 출시 여부를 '미출시'로 설정한 상태입니다. 판매 기간이 되어도 월드 웹 배지 페이지나 클라이언트 내에서도 노출되지 않고 획득도 불가합니다. 플레이어가 보유한 배지도 리스트에서 확인이 불가합니다.| | 획득 대기 | 획득 기간의 시작일 이전에 등록이 완료된 상태로 시작일에 맞춰 자동으로 획득 가
[task] | two_turn [pass] | ⏳ 미판정 [title] | 애니메이션 만들기 [question] | 직접 제작한 스프라이트를 사용하여 나만의 애니메이션 클립을 만들 때, 파일을 한 번에 여러 장 불러올 수 없다는 제한 사항이 있는데 이 경우 어떻게 효율적으로 스프라이트를 추가해야 하나요? [answer] | 참고 문서에 따르면, 파일 불러오기 단계에서 **한 번에 여러 장의 파일을 불러올 수 없습니다.** 따라서 효율적으로 스프라이트를 추가하려면 다음과 같은 단계를 거쳐야 합니다. 1. **Resource Storage**의 `내 리소스 - sprite - npc` 폴더를 선택합니다. 2. 검색창 왼쪽의 **[+]** 버튼을 눌러 파일을 불러옵니다. 이때 **한 장씩** 파일을 선택하여 불러와야 합니다. 3. **Window - AnimationClip Editor** 창을 열고 **[추가하기]** 버튼을 클릭합니다. 4. [followup] | Window - AnimationClip Editor에서 Resource Picker를 통해 스프라이트를 하나씩 선택해 타임라인에 추가하고, 최종적으로 카테고리를 npc로 설정하여 업로드하는 전체 과정의 주의사항을 알려 주세요 [followup_answer] | Window - AnimationClip Editor에서 스프라이트를 추가하고 NPC 카테고리로 업로드하는 과정의 주의사항은 다음과 같습니다. 1. **파일 불러오기 시 일괄 처리 불가** Resource Storage에서 스프라이트 파일을 불러올 때 **한 번에 여러 장의 파일을 불러올 수 없습니다.** 반드시 파일별로 하나씩 선택하여 불러와야 합니다. 2. **스프라이트 추가 방식** AnimationClip Editor의 [추가하기] 버튼을 클릭한 후, Resource Picker에서 `내 리소스 - sprite [scores] | [judge_reason] | [source_doc] | 하나의 프레임이 재생될 시간을 조절해 같은 스프라이트로 제작한 애니메이션의 재생 속도를 조절할 수 있습니다. 재생 속도 값은 수가 커질수록 느리게 재생됩니다. | 0.3 | 2.0 | | --- | --- | | | | 1. 타임라인의 가장 첫 번째 이미지를 선택하고 **Shift** 키를 누릅니다. 2. 스크롤 바를 움직여 마지막 이미지를 선택합니다. 3. **Delay** 값에 **0.3**을 입력합니다. 4. **[재생]** 버튼을 눌러 애니메이션 재생 속도를 확인합니다. 5. 편집한 애니메이션의 이름을 입력하고, *