[task] | diverse_qa [title] | 메이플스토리 월드 용어 사전 [category] | Guides [rephrased] | 질문: 파티클(Particle)은 무엇을 의미합니까? 답변: 파티클은 눈이나 비, 먼지 같은 다수의 작은 입자를 의미합니다. 질문: 프로파일러(Profiler)의 주요 용도는 무엇입니까? 답변: 프로파일러는 최적화 작업을 손쉽게 진행할 수 있도록 돕는 툴입니다. 질문: 프로퍼티(Property)는 어떤 요소이며 엔티티별로 값이 어떻게 설정됩니까? 답변: 프로퍼티는 각 컴포넌트의 세부 사항을 설정하는 요소이며, 엔티티별로 다른 값을 가질 수 있습니다. 질문: 프로필 ID(Profile ID)는 어떤 형식이며 고유성은 어떻게 되는 [original] | ##### 파티클 Particle 눈이나 비, 먼지 같은 다수의 작은 입자 **참고 |** [파티클](/docs/?postId=764) ##### 프로파일러 Profiler 최적화 작업을 손쉽게 진행할 수 있도록 돕는 툴 ##### 프로퍼티 Property 각 컴포넌트의 세부 사항을 설정하는 요소 엔티티별로 다른 값을 가질 수 있음 **참고 |** [프로퍼티](/docs/?postId=205) ##### 프로필 ID Profile ID \#으로 시작하는 ID로 계정 별로 고유함 ##### 프로필 이름 Profile Name [chunk_id] | Guides:949:2
[task] | wikipedia [title] | 메이플스토리 월드 용어 사전 [category] | Guides [rephrased] | # 메이플스토리 월드 용어 사전 (ㄱ~ㅇ) 본 문서는 메이플스토리 월드(MapleStory Worlds) 제작 환경에서 사용되는 주요 용어와 개념을 정의한 사전입니다. 각 항목은 알파벳 순서로 분류되어 있으며, 관련 기술적 사실과 동작 방식에 대해 설명합니다. ## ㄱ **계층 구조 (Hierarchy)** 계층 구조는 제작 중인 월드의 현황을 트리 구조로 시각화하여 확인할 수 있는 창입니다. 복잡한 맵 내에서 다수의 엔티티를 체계적으로 관리할 필요가 있을 때 주로 사용되며, World, common, maps, ui 등 월드 [original] | # ㄱ ##### 계층 구조 Hierarchy 제작 중인 월드의 현황을 계층 구조로 확인할 수 있는 창 복잡하게 구성한 맵의 엔티티를 체계적으로 관리할 때 사용 **World, common, maps, ui**를 포함함 **참고 |** [Hierarchy](/docs/?postId=453) # ㄴ ##### 네이티브 API Native API 크리에이터는 생성할 수 없는 메이플스토리 월드 엔진 내의 API # ㄷ ##### 데이터 에디터 Data Editor 메이커에서 데이터 셋을 편집할 수 있는 에디터 **참고 |** [chunk_id] | Guides:949:0
[task] | wikipedia [title] | 아이템 스크립트 작성하기 [category] | Guides [rephrased] | # 몬스터 사냥과 아이템 획득: 아이템 스크립트 작성하기 본 섹션은 메이플스토리 월드에서 몬스터를 처치했을 때 드롭되는 아이템의 연출 및 획득 로직을 구현하는 방법을 설명합니다. 이 과정에서는 `Model_Item`에 `TweenFloatingComponent`를 적용하여 아이템이 위로 떠올랐다가 내려오는 시각 효과를 생성하고, 서버 측 로직을 통해 연출이 끝날 때까지 아이템 획득이 불가능하도록 제어하는 절차를 다룹니다. ## 1. Model_Item 설정 먼저 `Model_Item`에 `TweenFloatingComponen [original] | 1. **Model_Item**에 **TweenFloatingComponent**를 추가합니다. 각 프로퍼티는 아래와 같이 설정합니다. 2. **Item** 스크립트를 열고 **number** 타입의 새 프로퍼티 **DropTweenTime**을 추가합니다. ```lua Property: [Sync] number ItemIndex = 0 -- 추가 [Sync] number DropTweenTime = 0.8 ``` 3. `OnBeginP [chunk_id] | Guides:947:3
[task] | distill [title] | 메이플스토리 월드 용어 사전 [category] | Guides [rephrased] | # 메이플스토리 월드 용어 사전 (압축) ### 아틀라스 (Atlas) 여러 스프라이트가 포함된 단일 이미지. **아틀라스 언패커**로 개별 스프라이트를 추출·편집합니다. ### 어노테이션 (Annotation) 코드에 추가되는 메타 데이터. * 참고: [Annotation 활용하기](/docs/?postId=824) ### 엔티티 (Entity) 메이플스토리 월드 내 객체. 여러 컴포넌트의 집합체입니다. * 참고: [엔티티](/docs/?postId=54) ### 워크스페이스 (Workspace) 메이커의 폴더형 리 [original] | ##### 아틀라스 Atlas 한 장의 이미지에 여러 개의 스프라이트가 함께 있는 이미지 ##### 아틀라스 언패커 Atlas Unpacker 아틀라스를 크리에이터가 개별의 스프라이트로 자르고 편집해 저장하는 툴 ##### 어노테이션 Annotation 코드에 추가하여 사용하는 일종의 메타 데이터 **참고 |** [Annotation 활용하기](/docs/?postId=824) ##### 엔티티 Entity 메이플스토리 월드 내에 존재하는 객체로 여러 컴포넌트의 집합체 **참고 |** [엔티티](/docs/?postId=54) [chunk_id] | Guides:949:1
[task] | knowledge_list [title] | 메이플스토리 월드 용어 사전 [category] | Guides [rephrased] | 제시된 문서(메이플스토리 월드 용어 사전 ㄱ~ㅇ)에 명시된 사실만을 바탕으로 핵심 정보를 정리한 목록입니다. 1. **계층 구조(Hierarchy)**는 World, common, maps, ui를 포함하며, 제작 중인 월드의 현황을 계층 구조로 확인하고 복잡한 맵의 엔티티를 체계적으로 관리하기 위해 사용되는 창이다. 2. **네이티브 API(Native API)**는 크리에이터가 생성할 수 없는 메이플스토리 월드 엔진 내의 API를 지칭한다. 3. **데이터 에디터(Data Editor)**는 메이커에서 데이터 셋을 편집할 수 [original] | # ㄱ ##### 계층 구조 Hierarchy 제작 중인 월드의 현황을 계층 구조로 확인할 수 있는 창 복잡하게 구성한 맵의 엔티티를 체계적으로 관리할 때 사용 **World, common, maps, ui**를 포함함 **참고 |** [Hierarchy](/docs/?postId=453) # ㄴ ##### 네이티브 API Native API 크리에이터는 생성할 수 없는 메이플스토리 월드 엔진 내의 API # ㄷ ##### 데이터 에디터 Data Editor 메이커에서 데이터 셋을 편집할 수 있는 에디터 **참고 |** [chunk_id] | Guides:949:0
[task] | distill [title] | 머티리얼 응용하기 [category] | Guides [rephrased] | # 스프라이트/애니메이션 머티리얼 응용하기 ## 개요 머티리얼은 `SpriteRendererComponent` 외에도 다양한 렌더러 컴포넌트에 적용 가능합니다. 적용 방법은 `SpriteRendererComponent`와 동일합니다. * **제한 사항**: 일부 렌더러 컴포넌트는 지원 셰이더가 제한됩니다. **Shader Picker** 창에서 컴포넌트를 필터링하여 해당 컴포넌트가 지원하는 셰이더 목록을 확인해야 합니다. ## 스크립트로 머티리얼 교체하기 엔티티에 `TriggerComponent`와 스크립트 컴포넌트를 추가하 [original] | # 학습 과정 소개 머티리얼은 **SpriteRendererComponent** 외의 다른 여러 가지 렌더러 컴포넌트에서 사용할 수 있습니다. 이를 통해 크리에이터는 시각적으로 다채롭고 색다른 나만의 월드를 구현할 수 있습니다. 이번 과정에서는 여러 컴포넌트에서 어떻게 머티리얼을 사용하는지 알아보겠습니다. 또한 예제를 통해 스크립트로 머티리얼을 제어하는 방법도 살펴보겠습니다. # 여러 가지 컴포넌트에서 머티리얼 사용하기 머티리얼은 다양한 렌더러 컴포넌트에서 사용할 수 있습니다. 사용 방법은 **SpriteRendererComp [chunk_id] | Guides:950:0
[task] | knowledge_list [title] | 머티리얼 응용하기 [category] | Guides [rephrased] | * 머티리얼은 **SpriteRendererComponent** 외에도 다양한 렌더러 컴포넌트에서 사용 가능하며, 적용 방법은 **SpriteRendererComponent**에 머티리얼을 적용하는 방식과 동일합니다. * 일부 렌더러 컴포넌트에서는 사용할 수 있는 셰이더 종류가 제한되며, 각 컴포넌트별로 사용 가능한 셰이더를 확인하기 위해서는 **Shader Picker** 창의 필터에서 해당 컴포넌트를 선택해야 합니다. * 엔티티의 머티리얼을 스크립트로 교체하기 위해서는 **SpriteRendererComponent** [original] | # 학습 과정 소개 머티리얼은 **SpriteRendererComponent** 외의 다른 여러 가지 렌더러 컴포넌트에서 사용할 수 있습니다. 이를 통해 크리에이터는 시각적으로 다채롭고 색다른 나만의 월드를 구현할 수 있습니다. 이번 과정에서는 여러 컴포넌트에서 어떻게 머티리얼을 사용하는지 알아보겠습니다. 또한 예제를 통해 스크립트로 머티리얼을 제어하는 방법도 살펴보겠습니다. # 여러 가지 컴포넌트에서 머티리얼 사용하기 머티리얼은 다양한 렌더러 컴포넌트에서 사용할 수 있습니다. 사용 방법은 **SpriteRendererComp [chunk_id] | Guides:950:0
[task] | extract_knowledge [title] | 아이템 스크립트 작성하기 [category] | Guides [rephrased] | # 아이템 드롭 연출 및 획득 로직 구현 본 절에서는 몬스터 처치 시 드롭되는 아이템에 대해 클라이언트에서 시각적 연출(위아래 튕김)을 수행하고, 서버에서 해당 연출이 끝난 후에만 아이템 획득이 가능하도록 제어하는 방법을 다룹니다. ## 1. 개념 설명 아이템이 바닥에 떨어질 때 즉시 획득이 가능하도록 하면 시각적으로 아직 떠 있는 상태로 보일 수 있습니다. 이를 방지하기 위해 다음과 같은 클라이언트-서버 분리를 적용합니다. 1. **클라이언트 (Client)**: `TweenLogic`을 이용해 아이템이 위로 올라갔다가 [original] | 1. **Model_Item**에 **TweenFloatingComponent**를 추가합니다. 각 프로퍼티는 아래와 같이 설정합니다. 2. **Item** 스크립트를 열고 **number** 타입의 새 프로퍼티 **DropTweenTime**을 추가합니다. ```lua Property: [Sync] number ItemIndex = 0 -- 추가 [Sync] number DropTweenTime = 0.8 ``` 3. `OnBeginP [chunk_id] | Guides:947:3
[task] | wikipedia [title] | 아이템 스크립트 작성하기 [category] | Guides [rephrased] | # 아이템 스크립트 작성하기 이 문서는 메이플스토리 월드에서 몬스터 사냥을 통해 아이템을 획득하는 기능을 구현하기 위한 `Item` 스크립트의 구조와 동작 원리를 설명합니다. 해당 스크립트는 클라이언트와 서버의 역할을 분리하여 시각적 효과와 로직 처리를 수행하며, 플레이어가 아이템을 줍는 순간 인벤토리에 아이템이 추가되고 엔티티는 소멸됩니다. ## 프로퍼티 스크립트는 두 개의 동기화(Sync) 프로퍼티를 정의합니다. 첫째, `ItemIndex`는 `number` 타입이며 기본값은 `0`입니다. 이 값은 획득할 아이템의 인덱스 [original] | ```lua Property: [Sync] number ItemIndex = 0 [Sync] number DropTweenTime = 0.8 Method: void InitItem(number itemIndex) { self.ItemIndex = itemIndex local sprite = self.Entity.SpriteRendererComponent local itemDataSet = _DataService:GetTable("UserItemDataSet") local ruid = itemDataS [chunk_id] | Guides:947:4
[task] | diverse_qa [title] | 메이플스토리 월드 용어 사전 [category] | Guides [rephrased] | 질문: 계층 구조(Hierarchy) 창은 주로 어떤 상황에서 유용하게 사용되나요? 답변: 복잡하게 구성한 맵의 엔티티를 체계적으로 관리할 때 사용합니다. 질문: 네이티브 API(Native API)와 스크립트 API(Script API)의 가장 큰 차이점은 무엇인가요? 답변: 네이티브 API는 크리에이터가 생성할 수 없는 메이플스토리 월드 엔진 내의 API인 반면, 스크립트 API는 크리에이터가 직접 생성하는 API입니다. 질문: 데이터 에디터(Data Editor)의 주요 기능은 무엇인가요? 답변: 메이커에서 데이터 셋을 편 [original] | # ㄱ ##### 계층 구조 Hierarchy 제작 중인 월드의 현황을 계층 구조로 확인할 수 있는 창 복잡하게 구성한 맵의 엔티티를 체계적으로 관리할 때 사용 **World, common, maps, ui**를 포함함 **참고 |** [Hierarchy](/docs/?postId=453) # ㄴ ##### 네이티브 API Native API 크리에이터는 생성할 수 없는 메이플스토리 월드 엔진 내의 API # ㄷ ##### 데이터 에디터 Data Editor 메이커에서 데이터 셋을 편집할 수 있는 에디터 **참고 |** [chunk_id] | Guides:949:0
[task] | diverse_qa [title] | 머티리얼 응용하기 [category] | Guides [rephrased] | 질문: 머티리얼은 어떤 컴포넌트에서도 사용할 수 있나요? 답변: 아니요, 머티리얼은 SpriteRendererComponent 외의 다른 여러 가지 렌더러 컴포넌트에서 사용할 수 있지만, 일부 렌더러 컴포넌트에서는 사용할 수 있는 셰이더 종류가 제한됩니다. 질문: 특정 렌더러 컴포넌트에서 사용할 수 있는 셰이더를 확인하려면 어떻게 해야 하나요? 답변: Shader Picker 창의 필터에서 해당 컴포넌트를 선택하면 각 컴포넌트별로 사용할 수 있는 셰이더를 확인할 수 있습니다. 질문: 다른 렌더러 컴포넌트에 머티리얼을 적용하는 방 [original] | # 학습 과정 소개 머티리얼은 **SpriteRendererComponent** 외의 다른 여러 가지 렌더러 컴포넌트에서 사용할 수 있습니다. 이를 통해 크리에이터는 시각적으로 다채롭고 색다른 나만의 월드를 구현할 수 있습니다. 이번 과정에서는 여러 컴포넌트에서 어떻게 머티리얼을 사용하는지 알아보겠습니다. 또한 예제를 통해 스크립트로 머티리얼을 제어하는 방법도 살펴보겠습니다. # 여러 가지 컴포넌트에서 머티리얼 사용하기 머티리얼은 다양한 렌더러 컴포넌트에서 사용할 수 있습니다. 사용 방법은 **SpriteRendererComp [chunk_id] | Guides:950:0
[task] | distill [title] | 로컬라이징의 이해 [category] | Guides [rephrased] | # 로컬라이징 (Localization) `LocalizationService`를 통해 클라이언트 언어 기반 텍스트/어셋을 제공합니다. 단순 번역을 넘어 날짜, 숫자 등 문화권별 형식 차이를 조정하는 과정입니다. ## 핵심 개념 및 통신 규칙 * **글로벌 원빌드**: 하나의 서버에 여러 지역 클라이언트가 연결됩니다. * **서버 통신 규칙**: 서버는 번역된 문자열이 아닌 **로컬라이징 키(Localizing Key)** 만 클라이언트로 전송합니다. 클라이언트는 자체 언어 설정에 따라 키를 해석하여 출력합니다. ## [original] | # 학습 과정 소개 크리에이터가 제작한 월드를 다양한 지역의 유저들이 즐길 수 있도록 하려면 로컬라이징 과정은 필수적입니다. `LocalizationService`는 클라이언트의 언어를 기반으로 텍스트나 어셋 등을 해당 언어에 맞게 제공할 수 있도록 도와줍니다. 이번 과정에서는 로컬라이징의 개념을 살펴보고 `LocalizationService`를 사용해 텍스트를 번역하는 방법을 알아봅시다. ##### 참고 가이드 [포맷에 맞게 로컬라이징하기](docs/?postId=968) [자동 번역](docs/?postId=1072) [Lo [chunk_id] | Guides:951:0
[task] | distill [title] | 머티리얼 응용하기 [category] | Guides [rephrased] | 스크립트로 월드 플레이 중 머티리얼 프로퍼티를 제어할 수 있습니다. 아래는 플레이어와 오브젝트 거리에 따라 `PixelateSize`를 변경하는 예제입니다. ### 1. 설정 1. **Preset List - Object - object-273**을 맵에 배치하고 이름을 **StarTree**로 변경합니다. 2. **Workspace - MyDesk**에서 **Create Material**로 **NewMaterial**을 생성합니다. 3. **NewMaterial**의 Shader를 **Blurry - Pixel**로 설정 [original] | 스크립트를 활용해 월드 플레이 도중 머티리얼 프로퍼티를 제어할 수 있습니다. 예제를 통해 머티리얼 프로퍼티 제어 방법을 살펴봅시다. 1. "기본" 템플릿으로 월드를 생성합니다. 2. 맵에 상호 작용할 오브젝트를 배치합니다. 예제에서는 **Preset List - Object - object-273**을 사용했습니다. 그리고 **object-273**의 이름을 **StarTree**로 변경합니다. 3. **Workspace - MyDesk**의 콘텍스트 메뉴에서 **Create Material* [chunk_id] | Guides:950:1
[task] | knowledge_list [title] | 메이플스토리 월드 용어 사전 [category] | Guides [rephrased] | 제시된 문서에 명시된 정보만을 바탕으로 핵심 사실을 추출하여 정리한 목록입니다. 1. **아틀라스(Atlas)**는 한 장의 이미지에 여러 개의 스프라이트가 함께 포함된 이미지 형식입니다. 2. **아틀라스 언패커(Atlas Unpacker)**는 아틀라스를 크리에이터가 개별 스프라이트로 자르고 편집하여 저장하는 도구입니다. 3. **어노테이션(Annotation)**은 코드에 추가하여 사용하는 일종의 메타 데이터입니다. 4. **엔티티(Entity)**는 메이플스토리 월드 내에 존재하는 객체로, 여러 컴포넌트의 집합체입니다. 5 [original] | ##### 아틀라스 Atlas 한 장의 이미지에 여러 개의 스프라이트가 함께 있는 이미지 ##### 아틀라스 언패커 Atlas Unpacker 아틀라스를 크리에이터가 개별의 스프라이트로 자르고 편집해 저장하는 툴 ##### 어노테이션 Annotation 코드에 추가하여 사용하는 일종의 메타 데이터 **참고 |** [Annotation 활용하기](/docs/?postId=824) ##### 엔티티 Entity 메이플스토리 월드 내에 존재하는 객체로 여러 컴포넌트의 집합체 **참고 |** [엔티티](/docs/?postId=54) [chunk_id] | Guides:949:1
[task] | wikipedia [title] | 머티리얼 응용하기 [category] | Guides [rephrased] | # 스프라이트/애니메이션 머티리얼 응용하기 메이플스토리 월드(MapleStory Worlds)의 mLua 스크립트를 활용하면 월드 플레이 도중 머티리얼(Material)의 프로퍼티를 동적으로 제어할 수 있습니다. 이 문서에서는 플레이어와 오브젝트 사이의 거리에 따라 머티리얼 프로퍼티가 변경되는 예제를 통해 제어 방법을 설명합니다. ## 준비 작업 1. **"기본" 템플릿**을 사용하여 새 월드를 생성합니다. 2. 맵에 상호 작용할 대상 오브젝트를 배치합니다. 본 예제에서는 **Preset List - Object - obj [original] | 스크립트를 활용해 월드 플레이 도중 머티리얼 프로퍼티를 제어할 수 있습니다. 예제를 통해 머티리얼 프로퍼티 제어 방법을 살펴봅시다. 1. "기본" 템플릿으로 월드를 생성합니다. 2. 맵에 상호 작용할 오브젝트를 배치합니다. 예제에서는 **Preset List - Object - object-273**을 사용했습니다. 그리고 **object-273**의 이름을 **StarTree**로 변경합니다. 3. **Workspace - MyDesk**의 콘텍스트 메뉴에서 **Create Material* [chunk_id] | Guides:950:1
[task] | distill [title] | 로컬라이징의 이해 [category] | Guides [rephrased] | # 로컬라이징 (Localizing) `LocaleDataSet`을 활용하여 텍스트를 번역하는 방법입니다. ## 설정 1. **텍스트 엔티티 설정** `TextComponent` 프로퍼티를 다음과 같이 수정합니다. * `Text`: 번역할 텍스트의 Key (예: `UI_Hello`) * `IsLocalizationKey`: `True` 2. **LocaleDataSet 구성** 데이터셋에 Key와 각 언어별 텍스트를 매핑합니다. | ID | Key | Source | ko | [original] | LocaleDataSet을 활용해 간단한 방법으로 텍스트를 번역해 봅시다. 1. UI 에디터에서 텍스트 엔티티를 추가합니다. 추가한 텍스트 엔티티의 **TextComponent**에서 프로퍼티를 아래와 같이 수정합니다. | 컴포넌트 | 프로퍼티 | 값 | | :---------------------------: | :------: | :---: | | @cols=1:@rows=3:TextComponent | FontSize | 50 | | [chunk_id] | Guides:951:1
[task] | wikipedia [title] | 메이플스토리 월드 용어 사전 [category] | Guides [rephrased] | # 메이플스토리 월드 용어 사전 본 문서는 메이플스토리 월드(MapleStory Worlds) 개발 환경과 스크립트 언어 mLua에서 사용되는 주요 개념과 용어를 정의한다. ## 아틀라스 (Atlas) 아틀라스란 한 장의 이미지 파일 내에 여러 개의 스프라이트(Sprite)가 함께 포함된 이미지를 의미한다. 이를 효율적으로 관리하기 위해 **아틀라스 언패커(Atlas Unpacker)**라는 툴이 제공된다. 이 툴을 사용하면 크리에이터는 아틀라스 이미지를 개별 스프라이트로 자르고 편집하여 저장할 수 있다. ## 어노테이션 (A [original] | ##### 아틀라스 Atlas 한 장의 이미지에 여러 개의 스프라이트가 함께 있는 이미지 ##### 아틀라스 언패커 Atlas Unpacker 아틀라스를 크리에이터가 개별의 스프라이트로 자르고 편집해 저장하는 툴 ##### 어노테이션 Annotation 코드에 추가하여 사용하는 일종의 메타 데이터 **참고 |** [Annotation 활용하기](/docs/?postId=824) ##### 엔티티 Entity 메이플스토리 월드 내에 존재하는 객체로 여러 컴포넌트의 집합체 **참고 |** [엔티티](/docs/?postId=54) [chunk_id] | Guides:949:1
[task] | knowledge_list [title] | 로컬라이징의 이해 [category] | Guides [rephrased] | 주어진 문서 내용만 기반으로 추출한 핵심 사실 목록입니다. 1. `LocalizationService`는 클라이언트의 언어 설정을 기반으로 텍스트나 에셋 등을 해당 언어에 맞게 제공하도록 도와주는 서비스입니다. 2. 좁은 의미의 로컬라이징은 월드에서 유저가 보는 단어나 문장을 번역하는 과정으로, 예를 들어 지원 언어가 '한국어'인 월드에서 클라이언트 언어가 영어로 설정된 유저가 접속했을 때 단어 "사과"를 "Apple"로 변환하는 것을 의미합니다. 3. 넓은 의미의 로컬라이징은 날짜 표기법(예: 한국의 연/월/일, 미국의 월/일/ [original] | # 학습 과정 소개 크리에이터가 제작한 월드를 다양한 지역의 유저들이 즐길 수 있도록 하려면 로컬라이징 과정은 필수적입니다. `LocalizationService`는 클라이언트의 언어를 기반으로 텍스트나 어셋 등을 해당 언어에 맞게 제공할 수 있도록 도와줍니다. 이번 과정에서는 로컬라이징의 개념을 살펴보고 `LocalizationService`를 사용해 텍스트를 번역하는 방법을 알아봅시다. ##### 참고 가이드 [포맷에 맞게 로컬라이징하기](docs/?postId=968) [자동 번역](docs/?postId=1072) [Lo [chunk_id] | Guides:951:0
[task] | wikipedia [title] | 머티리얼 응용하기 [category] | Guides [rephrased] | **머티리얼의 렌더러 컴포넌트 적용 및 스크립트 제어** 머티리얼(Material)은 `SpriteRendererComponent`를 제외한 다양한 렌더러 컴포넌트에서도 활용할 수 있는 시각적 리소스입니다. 이를 통해 크리에이터는 월드 내 객체에 특유의 시각 효과를 부여하여 다채로운 환경을 구성할 수 있습니다. 머티리얼의 생성 및 기본 적용 방법은 `SpriteRendererComponent`에 적용하는 과정과 동일하며, 자세한 내용은 '머티리얼 활용하기' 가이드를 참고할 수 있습니다. 다양한 렌더러 컴포넌트에 머티리얼을 적용할 [original] | # 학습 과정 소개 머티리얼은 **SpriteRendererComponent** 외의 다른 여러 가지 렌더러 컴포넌트에서 사용할 수 있습니다. 이를 통해 크리에이터는 시각적으로 다채롭고 색다른 나만의 월드를 구현할 수 있습니다. 이번 과정에서는 여러 컴포넌트에서 어떻게 머티리얼을 사용하는지 알아보겠습니다. 또한 예제를 통해 스크립트로 머티리얼을 제어하는 방법도 살펴보겠습니다. # 여러 가지 컴포넌트에서 머티리얼 사용하기 머티리얼은 다양한 렌더러 컴포넌트에서 사용할 수 있습니다. 사용 방법은 **SpriteRendererComp [chunk_id] | Guides:950:0
[task] | extract_knowledge [title] | 메이플스토리 월드 용어 사전 [category] | Guides [rephrased] | # 메이플스토리 월드 핵심 개념 및 용어 본 절에서는 메이플스토리 월드(MapleStory Worlds) 개발 환경에서 사용되는 핵심 개념과 용어를 정의합니다. 이는 mLua 스크립트 작성 및 월드 제작 시 필요한 기본 지식을 제공합니다. ## 1. 개념 설명 ### 계층 구조 (Hierarchy) 제작 중인 월드의 현황을 계층 구조로 확인할 수 있는 창입니다. 복잡하게 구성한 맵의 엔티티를 체계적으로 관리할 때 사용하며, **World, common, maps, ui**를 포함합니다. ### 네이티브 API (Native [original] | # ㄱ ##### 계층 구조 Hierarchy 제작 중인 월드의 현황을 계층 구조로 확인할 수 있는 창 복잡하게 구성한 맵의 엔티티를 체계적으로 관리할 때 사용 **World, common, maps, ui**를 포함함 **참고 |** [Hierarchy](/docs/?postId=453) # ㄴ ##### 네이티브 API Native API 크리에이터는 생성할 수 없는 메이플스토리 월드 엔진 내의 API # ㄷ ##### 데이터 에디터 Data Editor 메이커에서 데이터 셋을 편집할 수 있는 에디터 **참고 |** [chunk_id] | Guides:949:0
[task] | extract_knowledge [title] | 아이템 스크립트 작성하기 [category] | Guides [rephrased] | # 몬스터 사냥과 아이템 획득: 아이템 스크립트 작성 본 절에서는 메이플스토리 월드에서 몬스터가 죽을 때 바닥에 떨어지는 아이템(픽업 아이템)의 동작을 제어하는 mLua 스크립트 구조를 다룹니다. 이 스크립트는 클라이언트에서 시각적 효과(점프 후 부유)를 처리하고, 서버에서 실제 인벤토리에 아이템을 지급하는 로직을 수행합니다. ## 1. 개념 설명 이 스크립트는 `Entity`에 부착되어 다음과 같은 역할을 수행합니다. 1. **초기화**: `ItemIndex`에 해당하는 아이템 아이콘을 스프레터에 렌더링합니다. 2. ** [original] | ```lua Property: [Sync] number ItemIndex = 0 [Sync] number DropTweenTime = 0.8 Method: void InitItem(number itemIndex) { self.ItemIndex = itemIndex local sprite = self.Entity.SpriteRendererComponent local itemDataSet = _DataService:GetTable("UserItemDataSet") local ruid = itemDataS [chunk_id] | Guides:947:4
[task] | diverse_qa [title] | 메이플스토리 월드 용어 사전 [category] | Guides [rephrased] | 질문: 아틀라스(Atlas)는 무엇으로 정의됩니까? 답변: 한 장의 이미지에 여러 개의 스프라이트가 함께 있는 이미지입니다. 질문: 아틀라스 언패커(Atlas Unpacker)의 주요 기능은 무엇입니까? 답변: 아틀라스를 크리에이터가 개별의 스프라이트로 자르고 편집해 저장하는 툴입니다. 질문: 어노테이션(Annotation)은 코드에서 어떤 역할을 하는 자료형입니까? 답변: 코드에 추가하여 사용하는 일종의 메타 데이터입니다. 질문: 엔티티(Entity)의 구조적 정의는 무엇입니까? 답변: 메이플스토리 월드 내에 존재하는 객체로 [original] | ##### 아틀라스 Atlas 한 장의 이미지에 여러 개의 스프라이트가 함께 있는 이미지 ##### 아틀라스 언패커 Atlas Unpacker 아틀라스를 크리에이터가 개별의 스프라이트로 자르고 편집해 저장하는 툴 ##### 어노테이션 Annotation 코드에 추가하여 사용하는 일종의 메타 데이터 **참고 |** [Annotation 활용하기](/docs/?postId=824) ##### 엔티티 Entity 메이플스토리 월드 내에 존재하는 객체로 여러 컴포넌트의 집합체 **참고 |** [엔티티](/docs/?postId=54) [chunk_id] | Guides:949:1
[task] | wikipedia [title] | 로컬라이징의 이해 [category] | Guides [rephrased] | # 로컬라이징의 이해 로컬라이징(Localization)은 게임 콘텐츠의 언어를 지역별 사용자 환경에 맞게 변환하는 과정입니다. MapleStory Worlds에서는 `LocaleDataSet`을 활용하여 텍스트 엔티티의 내용을 여러 언어로 번역하고, 클라이언트의 언어 설정에 따라 적절한 텍스트가 표시되도록 구성할 수 있습니다. ## 설정 절차 로컬라이징을 적용하기 위해 다음 단계를 수행합니다. 첫째, UI 에디터에서 텍스트 엔티티를 추가합니다. 추가한 텍스트 엔티티의 `TextComponent` 프로퍼티를 수정하여 로컬라이 [original] | LocaleDataSet을 활용해 간단한 방법으로 텍스트를 번역해 봅시다. 1. UI 에디터에서 텍스트 엔티티를 추가합니다. 추가한 텍스트 엔티티의 **TextComponent**에서 프로퍼티를 아래와 같이 수정합니다. | 컴포넌트 | 프로퍼티 | 값 | | :---------------------------: | :------: | :---: | | @cols=1:@rows=3:TextComponent | FontSize | 50 | | [chunk_id] | Guides:951:1
[task] | knowledge_list [title] | 로컬라이징의 이해 [category] | Guides [rephrased] | * UI 에디터에서 추가한 텍스트 엔티티의 `TextComponent` 컴포넌트에서 `FontSize` 프로퍼티의 값을 `50`으로 설정할 수 있습니다. * UI 에디터의 텍스트 엔티티 `TextComponent` 컴포넌트에서 `Text` 프로퍼티에 로컬라이징 키인 `UI_Hello`를 입력합니다. * UI 에디터의 텍스트 엔티티 `TextComponent` 컴포넌트에서 `IsLocalizationKey` 프로퍼티의 값을 `True`로 설정하여 해당 텍스트가 로컬라이징 키임을 명시합니다. * `LocaleDataSet [original] | LocaleDataSet을 활용해 간단한 방법으로 텍스트를 번역해 봅시다. 1. UI 에디터에서 텍스트 엔티티를 추가합니다. 추가한 텍스트 엔티티의 **TextComponent**에서 프로퍼티를 아래와 같이 수정합니다. | 컴포넌트 | 프로퍼티 | 값 | | :---------------------------: | :------: | :---: | | @cols=1:@rows=3:TextComponent | FontSize | 50 | | [chunk_id] | Guides:951:1
[task] | knowledge_list [title] | 머티리얼 응용하기 [category] | Guides [rephrased] | - 스크립트를 활용하여 월드 플레이 도중 머티리얼 프로퍼티를 동적으로 제어할 수 있습니다. - 예제에서는 Preset List의 Object 카테고리 내 object-273을 맵에 배치하고, 해당 엔티티의 이름을 StarTree로 변경하여 상호작용 대상으로 사용합니다. - Workspace의 MyDesk 컨텍스트 메뉴에서 Create Material을 실행하여 NewMaterial이라는 이름의 새 머티리얼을 생성합니다. - NewMaterial 머티리얼의 프로퍼티 에디터에서 Shader 프로퍼티를 Blurry - Pixel로 설정하 [original] | 스크립트를 활용해 월드 플레이 도중 머티리얼 프로퍼티를 제어할 수 있습니다. 예제를 통해 머티리얼 프로퍼티 제어 방법을 살펴봅시다. 1. "기본" 템플릿으로 월드를 생성합니다. 2. 맵에 상호 작용할 오브젝트를 배치합니다. 예제에서는 **Preset List - Object - object-273**을 사용했습니다. 그리고 **object-273**의 이름을 **StarTree**로 변경합니다. 3. **Workspace - MyDesk**의 콘텍스트 메뉴에서 **Create Material* [chunk_id] | Guides:950:1
[task] | extract_knowledge [title] | 메이플스토리 월드 용어 사전 [category] | Guides [rephrased] | # 메이플스토리 월드 용어 사전: 핵심 개념 본 절에서는 메이플스토리 월드 개발 환경에서 사용되는 주요 용어와 개념을 정의합니다. 각 용어는 시스템의 구조, 최적화, 사용자 식별, 그리고 스크립팅 방식을 이해하는 데 필수적입니다. ## 1. 파티클 (Particle) **개념 설명** 파티클은 눈, 비, 먼지 등 다수의 작은 입자를 표현하기 위한 그래픽 요소입니다. 복잡한 개별 엔티티를 생성하는 대신 하나의 시스템으로 다수의 입자를 관리하여 시각 효과를 효율적으로 구현합니다. **API 사용법** * 관련 문서: [파티클 [original] | ##### 파티클 Particle 눈이나 비, 먼지 같은 다수의 작은 입자 **참고 |** [파티클](/docs/?postId=764) ##### 프로파일러 Profiler 최적화 작업을 손쉽게 진행할 수 있도록 돕는 툴 ##### 프로퍼티 Property 각 컴포넌트의 세부 사항을 설정하는 요소 엔티티별로 다른 값을 가질 수 있음 **참고 |** [프로퍼티](/docs/?postId=205) ##### 프로필 ID Profile ID \#으로 시작하는 ID로 계정 별로 고유함 ##### 프로필 이름 Profile Name [chunk_id] | Guides:949:2
[task] | extract_knowledge [title] | 메이플스토리 월드 용어 사전 [category] | Guides [rephrased] | # 메이플스토리 월드 용어 사전 본 절에서는 메이플스토리 월드 개발 환경과 스크립트 언어 mLua에서 사용되는 핵심 개념과 용어를 정의합니다. 각 용어는 게임 로직 구성, 리소스 관리, 서버 구조, 그리고 개발 도구 관련 항목으로 분류됩니다. ## 1. 리소스 및 컴포넌트 개념 ### 1.1 아틀라스 (Atlas) 한 장의 이미지에 여러 개의 스프라이트가 함께 포함된 이미지 파일입니다. ### 1.2 아틀라스 언패커 (Atlas Unpacker) 아틀라스 이미지를 크리에이터가 개별 스프라이트로 자르고 편집하여 저장하는 데 사 [original] | ##### 아틀라스 Atlas 한 장의 이미지에 여러 개의 스프라이트가 함께 있는 이미지 ##### 아틀라스 언패커 Atlas Unpacker 아틀라스를 크리에이터가 개별의 스프라이트로 자르고 편집해 저장하는 툴 ##### 어노테이션 Annotation 코드에 추가하여 사용하는 일종의 메타 데이터 **참고 |** [Annotation 활용하기](/docs/?postId=824) ##### 엔티티 Entity 메이플스토리 월드 내에 존재하는 객체로 여러 컴포넌트의 집합체 **참고 |** [엔티티](/docs/?postId=54) [chunk_id] | Guides:949:1
[task] | distill [title] | 로컬라이징의 이해 [category] | Guides [rephrased] | **로컬라이징 (Localization) 개요** `TextComponent`의 `IsLocalizationKey` 속성으로 기본 번역이 가능하지만, 스크립트를 통한 동적 제어 또는 기타 텍스트 번역 시 `_LocalizationService:GetText()`를 사용합니다. * **동작 방식**: 인자로 전달된 **Key**를 번역 테이블에서 검색하여, 현재 클라이언트 언어 코드에 해당하는 열의 텍스트 값을 반환합니다. **사용 예제: NPC 이름 동적 변경** 1. **전제 조건**: 맵에 NPC(`Stan`, `R [original] | **TextComponent**의 텍스트는 **IsLocalizationKey**로 간단하게 번역 여부를 설정할 수 있지만 그 외의 텍스트를 번역해야 하거나, 스크립트에서 번역을 제어할 때는 `GetText()` 함수를 활용합니다. `GetText()` 함수는 번역 테이블의 **Key**열에서 인수(argument)로 받은 키와 같은 값을 가진 행을 찾아 해당 행에서 클라이언트 언어 코드와 동일한 열의 텍스트 값을 반환합니다. 간단한 예제를 통해 클라이언트의 언어 설정별 텍스트 출력 방법을 알아봅시다. 맵에 2명의 NPC를 배치하 [chunk_id] | Guides:951:2
[task] | extract_knowledge [title] | 머티리얼 응용하기 [category] | Guides [rephrased] | # 스프라이트/애니메이션 머티리얼 응용하기 ## 개념 설명 `mLua` 환경에서 머티리얼(Material)은 `SpriteRendererComponent`를 포함한 다양한 렌더러 컴포넌트에 적용 가능합니다. 각 렌더러 컴포넌트마다 지원되는 셰이더(Shader) 종류가 제한될 수 있으며, 이는 에디터의 **Shader Picker** 창에서 컴포넌트를 필터링하여 확인할 수 있습니다. 스크립트를 통해 런타임 시점에 엔티티에 적용된 머티리얼을 동적으로 교체하는 것이 가능합니다. 이는 주로 트리거(Trigger) 이벤트 발생 시 특정 [original] | # 학습 과정 소개 머티리얼은 **SpriteRendererComponent** 외의 다른 여러 가지 렌더러 컴포넌트에서 사용할 수 있습니다. 이를 통해 크리에이터는 시각적으로 다채롭고 색다른 나만의 월드를 구현할 수 있습니다. 이번 과정에서는 여러 컴포넌트에서 어떻게 머티리얼을 사용하는지 알아보겠습니다. 또한 예제를 통해 스크립트로 머티리얼을 제어하는 방법도 살펴보겠습니다. # 여러 가지 컴포넌트에서 머티리얼 사용하기 머티리얼은 다양한 렌더러 컴포넌트에서 사용할 수 있습니다. 사용 방법은 **SpriteRendererComp [chunk_id] | Guides:950:0
[task] | extract_knowledge [title] | 머티리얼 응용하기 [category] | Guides [rephrased] | # 스프라이트/애니메이션 머티리얼 프로퍼티 제어 ## 개념 설명 mLua 스크립트를 활용하여 월드 플레이 중 런타임에 오브젝트 머티리얼의 프로퍼티를 동적으로 제어할 수 있습니다. 이 기법은 플레이어의 상태(예: 위치, 거리)에 따라 시각적 효과(예: 픽셀화, 흐림)를 실시간으로 변경하는 데 사용됩니다. ## API 사용법 머티리얼 프로퍼티를 변경하기 위해 `_MaterialService`의 `ChangeMaterialProperty` 메서드를 사용합니다. * **서비스**: `_MaterialService` * **메서 [original] | 스크립트를 활용해 월드 플레이 도중 머티리얼 프로퍼티를 제어할 수 있습니다. 예제를 통해 머티리얼 프로퍼티 제어 방법을 살펴봅시다. 1. "기본" 템플릿으로 월드를 생성합니다. 2. 맵에 상호 작용할 오브젝트를 배치합니다. 예제에서는 **Preset List - Object - object-273**을 사용했습니다. 그리고 **object-273**의 이름을 **StarTree**로 변경합니다. 3. **Workspace - MyDesk**의 콘텍스트 메뉴에서 **Create Material* [chunk_id] | Guides:950:1