[task] | extract_knowledge [title] | 액션을 예약하고 실행하는 TimerService [category] | Guides [rephrased] | # TimerService: 타이머 예약 및 실행 `TimerService`는 미래의 특정 시점에 액션을 실행하거나 주기적으로 반복 실행하도록 예약하는 서비스를 제공합니다. 예약이 성공하면 `integer` 타입의 타이머 ID를 반환하고, 실패 시 `0`을 반환합니다. ## API 사용법 ### 1. SetTimerOnce: 1회성 타이머 예약 `SetTimerOnce()`는 지정된 시간 이후에 콜백 함수를 **1회**만 실행하도록 예약합니다. 이는 `SetTimer()`의 `isRepeat`를 `false`로 설정한 것과 동 [original] | `SetTimerOnce()`는 `SetTimer()`의 isRepeat를 false로 설정한 것과 동일하게 작동합니다. 예약 성공 시 integer 타입의 타이머의 id를 반환하고, 예약 실패 시 0을 반환합니다. 매개 변수는 다음과 같습니다. | 타입 | 매개 변수 | 설명 | | --- | ------ | --- | | func | callback | 몇 초 뒤 수행할 액션을 CallBack 형태로 넘겨줍니다. | | float | delaySeconds | 액션을 예약한 뒤 몇 초 후에 액션을 실행할 것인지를 설정합니다. [chunk_id] | Guides:47:4
[task] | distill [title] | 캐릭터 초기 속성 편집 [category] | Guides [rephrased] | # 모델 프로퍼티 비활성화 및 기본 컴포넌트 관리 ## 모델 프로퍼티 비활성화 불필요한 모델 프로퍼티는 프로퍼티 에디터에서 해당 컴포넌트의 `Enable` 체크 해제 후 비활성화할 수 있습니다. * **예시**: `NameTag` 사용 불필요 시 `NameTagComponent`의 `Enable` 해제. ## DefaultPlayer 기본 컴포넌트 삭제 기본 컴포넌트를 확장한 커스텀 컴포넌트를 사용할 경우, `DefaultPlayer`의 기본 컴포넌트를 삭제해야 합니다. * **원칙**: 동일한 근본을 가진 컴포넌트가 중 [original] | # 모델 프로퍼티 비활성화하기 크리에이터의 의도에 따라 필요 없는 모델 프로퍼티를 비활성화 할 수 있습니다. 예를 들어, **NameTag**을 사용하고 싶지 않다면, 프로퍼티 에디터에서 **NameTagComponent**의 **Enable** 체크를 해제합니다. # DefaultPlayer의 기본 컴포넌트 삭제하기 기본 컴포넌트를 확장한 컴포넌트를 제작해 사용한다면, **DefaultPlayer**의 기본 컴포넌트를 삭제해야 합니다. 근본이 같은 컴포넌트가 여러 개 있으면 오동작 가능성이 커지기 때문에 기본적으로 하나의 컴 [chunk_id] | Guides:48:2
[task] | wikipedia [title] | 액션을 예약하고 실행하는 TimerService [category] | Guides [rephrased] | # TimerService `TimerService`는 게임 로직에서 특정 시간 이후 또는 일정한 간격으로 액션을 실행하도록 예약하는 역할을 담당합니다. 이 서비스는 `SetTimerOnce()`와 `SetTimerRepeat()` 메서드를 통해 액션을 예약하며, 예약된 액션을 취소하려면 `ClearTimer()` 함수를 사용해야 합니다. ## 예약된 액션 취소 예약된 타이머는 `ClearTimer()` 함수를 통해 언제든 취소할 수 있습니다. 예를 들어, 3초 간격으로 반복되는 액션을 예약한 후 10초가 지난 시점에 이를 취 [original] | `SetTimerOnce()`와 `SetTimerRepeat()`는 예약한 액션을 취소할 수 있습니다. 예약한 액션을 취소할 때는 `ClearTimer()` 함수를 활용합니다. 아래의 예제처럼 10초 뒤 액션 실행을 취소할 수 있습니다. ```lua Method: [server only] void OnBeginPlay() { local callBack = function() log("CallBack! :"..tostring(os.date())) end log("SetTimer! :" [chunk_id] | Guides:47:5
[task] | knowledge_list [title] | 액션을 예약하고 실행하는 TimerService [category] | Guides [rephrased] | 1. `SetTimerOnce()`와 `SetTimerRepeat()` 함수로 예약한 타이머 액션은 `ClearTimer()` 함수를 호출하여 취소할 수 있습니다. 2. `_TimerService:SetTimerRepeat(callBack, 3, 2)` 호출 시 첫 번째 매개변수 `callBack`은 실행할 함수, 두 번째 매개변수 `3`은 초기 지연 시간(초), 세 번째 매개변수 `2`은 반복 간격(초)을 의미하며, 성공 시 타이머 식별자(`timerId`)를 반환합니다. 3. `_TimerService:SetTimerOnce(c [original] | `SetTimerOnce()`와 `SetTimerRepeat()`는 예약한 액션을 취소할 수 있습니다. 예약한 액션을 취소할 때는 `ClearTimer()` 함수를 활용합니다. 아래의 예제처럼 10초 뒤 액션 실행을 취소할 수 있습니다. ```lua Method: [server only] void OnBeginPlay() { local callBack = function() log("CallBack! :"..tostring(os.date())) end log("SetTimer! :" [chunk_id] | Guides:47:5
[task] | knowledge_list [title] | 캐릭터 초기 속성 편집 [category] | Guides [rephrased] | # 메이커 사용 캐릭터 초기 속성 편집 핵심 사실 목록 1. 크리에이터는 모델 프로퍼티 에디터에서 필요 없는 모델 프로퍼티를 비활성화할 수 있으며, 예를 들어 `NameTag` 표시를 원하지 않을 경우 `NameTagComponent`의 `Enable` 속성을 체크 해제하여 비활성화한다. 2. 기본 컴포넌트를 확장한 커스텀 컴포넌트를 제작하여 사용할 경우, `DefaultPlayer`에 존재하는 해당 기본 컴포넌트를 반드시 삭제해야 하며, 이는 근본이 같은 컴포넌트가 복수 존재할 때 발생하는 오동작 가능성을 방지하기 위한 권장 [original] | # 모델 프로퍼티 비활성화하기 크리에이터의 의도에 따라 필요 없는 모델 프로퍼티를 비활성화 할 수 있습니다. 예를 들어, **NameTag**을 사용하고 싶지 않다면, 프로퍼티 에디터에서 **NameTagComponent**의 **Enable** 체크를 해제합니다. # DefaultPlayer의 기본 컴포넌트 삭제하기 기본 컴포넌트를 확장한 컴포넌트를 제작해 사용한다면, **DefaultPlayer**의 기본 컴포넌트를 삭제해야 합니다. 근본이 같은 컴포넌트가 여러 개 있으면 오동작 가능성이 커지기 때문에 기본적으로 하나의 컴 [chunk_id] | Guides:48:2
[task] | diverse_qa [title] | 액션을 예약하고 실행하는 TimerService [category] | Guides [rephrased] | 질문: 예약된 타이머 액션을 취소하기 위해 어떤 함수를 사용해야 하나요? 답변: 예약된 액션을 취소할 때는 `ClearTimer()` 함수를 활용합니다. 질문: `SetTimerRepeat()`의 파라미터 `(callBack, 3, 2)`에서 숫자 3과 2는 각각 무엇을 의미하나요? 답변: 문서에는 `SetTimerRepeat()`의 구체적 파라미터 정의가 명시되어 있지 않으므로, 3과 2의 정확한 의미를 단정할 수 없습니다. 질문: 아래 코드는 어떤 동작을 수행하나요? ```lua local timerId = _TimerSer [original] | `SetTimerOnce()`와 `SetTimerRepeat()`는 예약한 액션을 취소할 수 있습니다. 예약한 액션을 취소할 때는 `ClearTimer()` 함수를 활용합니다. 아래의 예제처럼 10초 뒤 액션 실행을 취소할 수 있습니다. ```lua Method: [server only] void OnBeginPlay() { local callBack = function() log("CallBack! :"..tostring(os.date())) end log("SetTimer! :" [chunk_id] | Guides:47:5
[task] | wikipedia [title] | 캐릭터 초기 속성 편집 [category] | Guides [rephrased] | # 메이커 사용 캐릭터 초기 속성 편집 이 섹션에서는 메이플스토리 월드 메이커(Maker) 환경에서 플레이어 캐릭터의 모델 프로퍼티를 비활성화하거나 기본 컴포넌트를 제거하여 캐릭터의 초기 속성을 편집하는 방법에 대해 설명합니다. ## 모델 프로퍼티 비활성화하기 크리에이터의 의도에 따라 특정 모델 프로퍼티의 기능을 비활성화할 수 있습니다. 이는 더 이상 필요하지 않거나 게임 플레이에 방해가 되는 요소들을 끄는 데 사용됩니다. 대표적인 예시로, 플레이어 이름 태그(NameTag) 기능을 사용하지 않기를 원할 경우 프로퍼티 에디터 [original] | # 모델 프로퍼티 비활성화하기 크리에이터의 의도에 따라 필요 없는 모델 프로퍼티를 비활성화 할 수 있습니다. 예를 들어, **NameTag**을 사용하고 싶지 않다면, 프로퍼티 에디터에서 **NameTagComponent**의 **Enable** 체크를 해제합니다. # DefaultPlayer의 기본 컴포넌트 삭제하기 기본 컴포넌트를 확장한 컴포넌트를 제작해 사용한다면, **DefaultPlayer**의 기본 컴포넌트를 삭제해야 합니다. 근본이 같은 컴포넌트가 여러 개 있으면 오동작 가능성이 커지기 때문에 기본적으로 하나의 컴 [chunk_id] | Guides:48:2
[task] | diverse_qa [title] | 캐릭터 초기 속성 편집 [category] | Guides [rephrased] | 질문: 크리에이터가 NameTag를 사용하지 않으려면 어떤 설정을 변경해야 하나요? 답변: 프로퍼티 에디터에서 NameTagComponent의 Enable 체크를 해제하면 됩니다. 질문: DefaultPlayer의 기본 컴포넌트를 삭제해야 하는 주된 이유는 무엇인가요? 답변: 근본이 같은 컴포넌트가 여러 개 있으면 오동작 가능성이 커지기 때문입니다. 질문: 확장한 컴포넌트를 사용할 때 기본 컴포넌트를 삭제하지 않고 비활성화만 하는 것이 권장되나요? 답변: 권장하지 않습니다. 컴포넌트 명 혼동이나 오류 발생 가능성이 있기 때문입니 [original] | # 모델 프로퍼티 비활성화하기 크리에이터의 의도에 따라 필요 없는 모델 프로퍼티를 비활성화 할 수 있습니다. 예를 들어, **NameTag**을 사용하고 싶지 않다면, 프로퍼티 에디터에서 **NameTagComponent**의 **Enable** 체크를 해제합니다. # DefaultPlayer의 기본 컴포넌트 삭제하기 기본 컴포넌트를 확장한 컴포넌트를 제작해 사용한다면, **DefaultPlayer**의 기본 컴포넌트를 삭제해야 합니다. 근본이 같은 컴포넌트가 여러 개 있으면 오동작 가능성이 커지기 때문에 기본적으로 하나의 컴 [chunk_id] | Guides:48:2
[task] | distill [title] | Entity, Component, Property [category] | Guides [rephrased] | # Entity, Component, Property 개념 ## Entity 메이플스토리 월드 내 존재하는 객체입니다. 시각적으로 보이는 객체뿐 아니라 내부 로직이 실행되는 모든 객체가 Entity에 해당하며, 실시간으로 생성·변경·삭제됩니다. ## Component Entity는 Component들의 집합체로 구성됩니다. 각 Component는 특정 기능(예: 이동, 회전, 스크립트 로직 등)을 담당하며, 재사용성을 높이기 위해 독립적으로 분리됩니다. - **조합성**: 기존 Component를 조합하여 다양한 동작을 가진 E [original] | # 학습 과정 소개 Entity와 Component 그리고 Property에 대해서 개념을 이해합니다. # Entity 엔티티는 메이플스토리 월드 내에서 존재하는 객체입니다. 아래의 그림에서 Entity는 어떤 것들일까요? 빨간색을 칠한 부분이 Entity입니다. 그뿐만 아니라 보이지는 않지만 돌아가고 있는 모든 것들이 Entity입니다. 메이플스토리 월드에서는 실제로 수많은 Entity가 배치되어 있고 실시간으로 생성, 변경, 삭제됩니다. Entity들이 실제 게임상에서 활동함으로써 시각적으로 보이며, 내부적으로 로직 [chunk_id] | Guides:54:0
[task] | distill [title] | 맵 레이어 [category] | Guides [rephrased] | **맵 레이어 개념 및 활용** * **귀속 규칙**: 플레이어 아바타는 현재 밟고 있는 엔티티(타일)의 레이어에 속합니다. * 예: `Layer1` 타일을 밟으면 아바타는 `Layer1` 상태, 점프 후 `Layer2` 타일에 착지하면 `Layer2` 상태로 변경됩니다. * **렌더링 순서(전후 관계)**: 아바타와 다른 오브젝트의 레이어 순서에 따라 앞/뒤로 겹쳐 표시됩니다. * 아바타 레이어 > 오브젝트 레이어: 아바타가 오브젝트 **앞**으로 지나갑니다. * 아바타 레이어 < 오브젝트 [original] | 초록 타일은 Layer1에, 연두 타일은 Layer2에 배치했습니다. 초록 타일을 밟고 있는 플레이어 아바타는 점프할 때까지는 Layer1에 머물러 있지만, 노란 타일에 착지하는 순간 Layer2에 있는 상태가 됩니다. #### 활용 예시 2 4개의 레이어에 각각 타일과 오브젝트를 배치했습니다.(OrderInLayer는 기본값입니다.) 플레이어 아바타는 밟고 있는 엔티티 레이어가 귀속 기준이므로 가장 아래 있는 layer1에서 움직이기 시작합니다. 초록 타일 위 나무 오브젝트들은 Layer4에 배치되어 있습니다. 그러므로 초록 [chunk_id] | Guides:53:1
[task] | knowledge_list [title] | 맵 레이어 [category] | Guides [rephrased] | 제공된 문서 내용만 바탕으로 맵 레이어의 핵심 사실을 추출하여 정리하였습니다. 1. 초록 타일은 Layer1에, 연두 타일은 Layer2에 배치되어 있으며, 초록 타일을 밟고 있는 플레이어 아바타는 점프 전까지 Layer1에 머물러 있다가 노란 타일에 착지하는 순간 Layer2에 있는 상태가 됩니다. 2. 4개의 레이어에 타일과 오브젝트를 배치할 때 OrderInLayer는 기본값을 유지하며, 플레이어 아바타는 밟고 있는 엔티티의 레이어가 귀속 기준이 되어 가장 아래 있는 layer1에서 움직임을 시작합니다. 3. Layer4에 [original] | 초록 타일은 Layer1에, 연두 타일은 Layer2에 배치했습니다. 초록 타일을 밟고 있는 플레이어 아바타는 점프할 때까지는 Layer1에 머물러 있지만, 노란 타일에 착지하는 순간 Layer2에 있는 상태가 됩니다. #### 활용 예시 2 4개의 레이어에 각각 타일과 오브젝트를 배치했습니다.(OrderInLayer는 기본값입니다.) 플레이어 아바타는 밟고 있는 엔티티 레이어가 귀속 기준이므로 가장 아래 있는 layer1에서 움직이기 시작합니다. 초록 타일 위 나무 오브젝트들은 Layer4에 배치되어 있습니다. 그러므로 초록 [chunk_id] | Guides:53:1
[task] | distill [title] | 캐릭터 초기 속성 편집 [category] | Guides [rephrased] | # 메이커 사용 캐릭터 초기 속성 편집 모델 프로퍼티를 통해 캐릭터의 이동, 카메라, UI, 트리거 등 기본 동작을 설정합니다. | 모델 프로퍼티 | 원 컴포넌트 / 프로퍼티 | 설명 및 규칙 | | :--- | :--- | :--- | | `speed` | `MovementComponent` / `InputSpeed` | 기본 이동 속도. 값이 클수록 빠름. **기본값: 1.2** | | `jumpForce` | `MovementComponent` / `JumpForce` | 기본 점프 높이. 값이 클수록 높음. **기본값: [original] | | 모델 프로퍼티 명 | 원 컴포넌트 원 프로퍼티 명 | 설명 | | --------- | ---------------- | --- | | speed | MovementComponent <ul><li>InputSpeed</li></ul> | 플레이어의 기본 이동 속도 값을 정합니다. 값이 클수록 빠르게 움직입니다. 기본값은 1.2입니다. | | jumpForce | MovementComponent<ul><li>JumpForce</li></ul> | 플레이어의 기본 점프 높이를 설정합니다. 값이 클수록 높이 점프합니다. 기본값은 [chunk_id] | Guides:48:1
[task] | diverse_qa [title] | 캐릭터 초기 속성 편집 [category] | Guides [rephrased] | 질문: 메이커 사용 캐릭터의 `speed` 프로퍼티는 어떤 컴포넌트의 속성에 대응하며, 기본값은 얼마인가요? 답변: `speed`는 `MovementComponent`의 `InputSpeed` 속성에 대응하며, 기본값은 1.2입니다. 질문: `jumpForce` 값이 클수록 플레이어의 점프 높이는 어떻게 변화하나요? 답변: `jumpForce` 값이 클수록 플레이어는 더 높이 점프합니다. 질문: `walkAcceleration`의 기본값은 얼마이며, 이 값이 의미하는 바는 무엇인가요? 답변: `walkAcceleration`의 [original] | | 모델 프로퍼티 명 | 원 컴포넌트 원 프로퍼티 명 | 설명 | | --------- | ---------------- | --- | | speed | MovementComponent <ul><li>InputSpeed</li></ul> | 플레이어의 기본 이동 속도 값을 정합니다. 값이 클수록 빠르게 움직입니다. 기본값은 1.2입니다. | | jumpForce | MovementComponent<ul><li>JumpForce</li></ul> | 플레이어의 기본 점프 높이를 설정합니다. 값이 클수록 높이 점프합니다. 기본값은 [chunk_id] | Guides:48:1
[task] | extract_knowledge [title] | 액션을 예약하고 실행하는 TimerService [category] | Guides [rephrased] | # TimerService: 예약된 타이머 취소 (ClearTimer) ## 개념 설명 `TimerService`는 특정 시간 후에 액션을 실행하도록 예약하는 기능을 제공합니다. `SetTimerOnce()`와 `SetTimerRepeat()`를 통해 예약된 액션은 필요 시점에 취소할 수 있으며, 이를 위해 `ClearTimer()` 함수를 사용합니다. 예약된 액션이 과도하게 누적되면 월드 성능이 저하될 수 있으므로, 컴포넌트 생명주기가 종료되거나 소유자가 파괴되는 시점에 예약을 취소하는 것이 중요합니다. ## API 사용법 ` [original] | `SetTimerOnce()`와 `SetTimerRepeat()`는 예약한 액션을 취소할 수 있습니다. 예약한 액션을 취소할 때는 `ClearTimer()` 함수를 활용합니다. 아래의 예제처럼 10초 뒤 액션 실행을 취소할 수 있습니다. ```lua Method: [server only] void OnBeginPlay() { local callBack = function() log("CallBack! :"..tostring(os.date())) end log("SetTimer! :" [chunk_id] | Guides:47:5
[task] | wikipedia [title] | Entity, Component, Property [category] | Guides [rephrased] | # Entity, Component, Property 개념 이해 본 문서는 메이플스토리 월드의 핵심 구성 요소인 Entity, Component, Property에 대한 기본 개념을 설명합니다. ## Entity Entity는 메이플스토리 월드 내에서 존재하는 객체를 의미합니다. 게임 화면에서 시각적으로 확인되는 요소뿐 아니라, 화면에는 표시되지 않지만 내부적으로 작동하는 모든 객체도 Entity에 해당합니다. 메이플스토리 월드에서는 수많은 Entity가 배치되어 있으며, 이들은 실시간으로 생성, 변경, 삭제됩니다. 이러한 E [original] | # 학습 과정 소개 Entity와 Component 그리고 Property에 대해서 개념을 이해합니다. # Entity 엔티티는 메이플스토리 월드 내에서 존재하는 객체입니다. 아래의 그림에서 Entity는 어떤 것들일까요? 빨간색을 칠한 부분이 Entity입니다. 그뿐만 아니라 보이지는 않지만 돌아가고 있는 모든 것들이 Entity입니다. 메이플스토리 월드에서는 실제로 수많은 Entity가 배치되어 있고 실시간으로 생성, 변경, 삭제됩니다. Entity들이 실제 게임상에서 활동함으로써 시각적으로 보이며, 내부적으로 로직 [chunk_id] | Guides:54:0
[task] | distill [title] | 맵 레이어 [category] | Guides [rephrased] | # 맵 레이어 (Map Layer) 맵 화면 위에 투명한 판처럼 겹쳐 배치 순서를 제어하는 개념입니다. 레이어 창은 기본 패널 설정 시 중앙 하단에 위치하며, `Panels - Map Layer`로 호출할 수 있습니다. ## 창 구성 및 기능 * **Focus (초점)**: 선택한 단일 레이어만 활성화하고 나머지는 비활성화합니다. 비활성화된 레이어의 엔티티는 씬에서 선택할 수 없습니다. * **Visibility (가시성)**: 비활성화 시 해당 레이어의 엔티티가 숨겨집니다. (주의: 테스트 실행 및 게임 출시 시에는 [original] | # 학습 과정 소개 맵 레이어를 사용해 더욱 입체적으로 게임 화면을 디자인할 수 있습니다. 맵 레이어 창 구성을 살펴보고 활용하는 방법을 알아봅니다. 레이어 순서를 이해하고 레이어를 크리에이터의 게임에 맞게 활용할 수 있습니다. # 맵 레이어 위치 맵 레이어 창은 기본 패널 설정 기준, 중앙 하단에 위치합니다. 작업 편의를 위해 탭을 닫은 후 다시 불러올 때는 **Panels - Map Layer**을 선택해 불러올 수 있습니다. | 메이커 화면 기본 위치 | Panels - Map Layer | | ------------ [chunk_id] | Guides:53:0
[task] | diverse_qa [title] | Entity, Component, Property [category] | Guides [rephrased] | 질문: 메이플스토리 월드에서 Entity(엔티티)는 무엇으로 정의되나요? 답변: Entity는 메이플스토리 월드 내에서 존재하는 객체입니다. 질문: Entity는 어떻게 구성되나요? 답변: Entity는 Component(컴포넌트)들로 구성되어 있으며, Component들의 집합체로 볼 수 있습니다. 질문: Component의 주요 역할은 무엇인가요? 답변: Component는 각각의 요소를 담당하며, 각각의 기능을 담당합니다. 질문: 피자 예시에서 '완성된 피자' 전체는 어떤 개념에 해당하나요? 답변: 피자 예시에서 완성된 [original] | # 학습 과정 소개 Entity와 Component 그리고 Property에 대해서 개념을 이해합니다. # Entity 엔티티는 메이플스토리 월드 내에서 존재하는 객체입니다. 아래의 그림에서 Entity는 어떤 것들일까요? 빨간색을 칠한 부분이 Entity입니다. 그뿐만 아니라 보이지는 않지만 돌아가고 있는 모든 것들이 Entity입니다. 메이플스토리 월드에서는 실제로 수많은 Entity가 배치되어 있고 실시간으로 생성, 변경, 삭제됩니다. Entity들이 실제 게임상에서 활동함으로써 시각적으로 보이며, 내부적으로 로직 [chunk_id] | Guides:54:0
[task] | knowledge_list [title] | 캐릭터 초기 속성 편집 [category] | Guides [rephrased] | 제공된 문서 '메이커 사용 캐릭터 초기 속성 편집'에 명시된 모델 프로퍼티와 해당 원 컴포넌트, 프로퍼티의 매핑 및 동작 원리를 바탕으로 추출한 핵심 사실 목록입니다. * `speed` 프로퍼티는 `MovementComponent`의 `InputSpeed`에 매핑되며, 플레이어의 기본 이동 속도를 결정하는 값으로 기본값은 1.2입니다. * `jumpForce` 프로퍼티는 `MovementComponent`의 `JumpForce`에 매핑되며, 플레이어의 기본 점프 높이를 결정하는 값으로 기본값은 1입니다. * `walkA [original] | | 모델 프로퍼티 명 | 원 컴포넌트 원 프로퍼티 명 | 설명 | | --------- | ---------------- | --- | | speed | MovementComponent <ul><li>InputSpeed</li></ul> | 플레이어의 기본 이동 속도 값을 정합니다. 값이 클수록 빠르게 움직입니다. 기본값은 1.2입니다. | | jumpForce | MovementComponent<ul><li>JumpForce</li></ul> | 플레이어의 기본 점프 높이를 설정합니다. 값이 클수록 높이 점프합니다. 기본값은 [chunk_id] | Guides:48:1
[task] | distill [title] | Entity, Component, Property [category] | Guides [rephrased] | **개념 이해: Property** `Property`는 `Component`의 세부 설정값을 정의하며, 동일한 `Component`를 사용하는 `Entity`들이 서로 다른 동작을 하도록 구별하는 역할을 합니다. 이는 `Component`의 재사용성을 높여, 특정 변형용 `Component`를 별도로 생성하지 않고도 속성 값만 변경하여 원하는 형태(`Entity`)를 만들 수 있게 합니다. **API 구조** `Component`는 `Property:`, `Method:`, `Event Handler:` 블록으로 구성됩니다. [original] | Property는 각 Component의 세부사항을 설정합니다. Component에서 예시를 든 피자로 다시 돌아와 볼까요? 세 명의 아이가 페퍼로니 피자를 먹고 싶어 합니다. 철수는 페퍼로니가 2배들어 있는 피자를 원하고, 영희는 들어 있는 치즈가 체다가 아닌 모짜렐라 치즈를 원합니다. 윤후는 사이즈를 조금 더 크게 먹고 싶습니다. 기존에 도우 Component, 페퍼로니 Component, 치즈 Component 가 있습니다. 자, 어떻게 하면 될까요? 철수는 페퍼로니 2배 Component를 추가하고 영희는 모짜렐라 치즈 [chunk_id] | Guides:54:1
[task] | knowledge_list [title] | Entity, Component, Property [category] | Guides [rephrased] | * `Property`는 각 `Component`의 세부사항을 설정하며, 동일한 `Component`를 사용하는 `Entity`들이 서로 다른 동작을 하도록 하는 역할을 합니다. * `Property`를 사용하면 `Component`의 재사용성을 높일 수 있어, 개별 요구사항에 맞춘 새로운 `Component`를 생성하지 않고도 기존 `Component`의 속성 값만 변경하여 다양한 `Entity` 구성이 가능합니다. * `ChatBalloonComponent`는 `BalloonScale`과 `FontSize`라는 두 가 [original] | Property는 각 Component의 세부사항을 설정합니다. Component에서 예시를 든 피자로 다시 돌아와 볼까요? 세 명의 아이가 페퍼로니 피자를 먹고 싶어 합니다. 철수는 페퍼로니가 2배들어 있는 피자를 원하고, 영희는 들어 있는 치즈가 체다가 아닌 모짜렐라 치즈를 원합니다. 윤후는 사이즈를 조금 더 크게 먹고 싶습니다. 기존에 도우 Component, 페퍼로니 Component, 치즈 Component 가 있습니다. 자, 어떻게 하면 될까요? 철수는 페퍼로니 2배 Component를 추가하고 영희는 모짜렐라 치즈 [chunk_id] | Guides:54:1
[task] | knowledge_list [title] | Entity, Component, Property [category] | Guides [rephrased] | 제시된 원문에는 `mLua` 스크립트 언어의 구체적인 API 이름, 매개변수, 반환 타입, 코드 예제, 또는 서버/클라이언트 실행 공간 제약 정보가 포함되어 있지 않습니다. 원문은 Entity, Component, Property의 개념적 정의와 비유(피자 예시)만을 다루고 있으며, 기술적 스펙이 누락되어 있습니다. 따라서 **원문에 있는 정보만** 사용하여 핵심 사실을 추출한 목록은 다음과 같습니다. (API 관련 기술적 명세는 원문에 존재하지 않으므로 생략됩니다.) 1. **Entity의 정의**: Entity는 메이플스토리 [original] | # 학습 과정 소개 Entity와 Component 그리고 Property에 대해서 개념을 이해합니다. # Entity 엔티티는 메이플스토리 월드 내에서 존재하는 객체입니다. 아래의 그림에서 Entity는 어떤 것들일까요? 빨간색을 칠한 부분이 Entity입니다. 그뿐만 아니라 보이지는 않지만 돌아가고 있는 모든 것들이 Entity입니다. 메이플스토리 월드에서는 실제로 수많은 Entity가 배치되어 있고 실시간으로 생성, 변경, 삭제됩니다. Entity들이 실제 게임상에서 활동함으로써 시각적으로 보이며, 내부적으로 로직 [chunk_id] | Guides:54:0
[task] | wikipedia [title] | 맵 레이어 [category] | Guides [rephrased] | 메이플스토리 월드(MapleStory Worlds)에서 맵 레이어(Map Layer)는 엔티티의 배치 순서와 상호작용 범위를 제어하는 핵심 개념입니다. 이 시스템은 특히 복잡한 맵에서 객체의 가시성과 충돌 범위를 명확히 구분하여 관리하는 데 활용됩니다. ### 레이어 기반 이동 및 속성 변경 맵 레이어는 플레이어가 밟고 있는 타일(Tile)의 레이어 속성에 따라 아바타의 현재 속성 레이어가 결정됩니다. 예를 들어, 초록 타일이 Layer1에, 연두 타일이 Layer2에 배치된 경우를 살펴보면 다음과 같은 동작이 나타납니다. * [original] | 초록 타일은 Layer1에, 연두 타일은 Layer2에 배치했습니다. 초록 타일을 밟고 있는 플레이어 아바타는 점프할 때까지는 Layer1에 머물러 있지만, 노란 타일에 착지하는 순간 Layer2에 있는 상태가 됩니다. #### 활용 예시 2 4개의 레이어에 각각 타일과 오브젝트를 배치했습니다.(OrderInLayer는 기본값입니다.) 플레이어 아바타는 밟고 있는 엔티티 레이어가 귀속 기준이므로 가장 아래 있는 layer1에서 움직이기 시작합니다. 초록 타일 위 나무 오브젝트들은 Layer4에 배치되어 있습니다. 그러므로 초록 [chunk_id] | Guides:53:1
[task] | diverse_qa [title] | 맵 레이어 [category] | Guides [rephrased] | 질문: 초록 타일과 연두 타일이 각각 어느 레이어에 배치되었나요? 답변: 초록 타일은 Layer1에, 연두 타일은 Layer2에 배치되었습니다. 질문: 초록 타일을 밟고 있는 플레이어 아바타는 어떤 조건이 될 때까지 Layer1에 머물러 있나요? 답변: 플레이어 아바타는 점프할 때까지 Layer1에 머물러 있습니다. 질문: 플레이어 아바타가 노란 타일에 착지했을 때 속하게 되는 레이어는 어디인가요? 답변: 플레이어 아바타는 노란 타일에 착지하는 순간 Layer2에 있는 상태가 됩니다. 질문: 플레이어 아바타의 레이어 귀속 기준 [original] | 초록 타일은 Layer1에, 연두 타일은 Layer2에 배치했습니다. 초록 타일을 밟고 있는 플레이어 아바타는 점프할 때까지는 Layer1에 머물러 있지만, 노란 타일에 착지하는 순간 Layer2에 있는 상태가 됩니다. #### 활용 예시 2 4개의 레이어에 각각 타일과 오브젝트를 배치했습니다.(OrderInLayer는 기본값입니다.) 플레이어 아바타는 밟고 있는 엔티티 레이어가 귀속 기준이므로 가장 아래 있는 layer1에서 움직이기 시작합니다. 초록 타일 위 나무 오브젝트들은 Layer4에 배치되어 있습니다. 그러므로 초록 [chunk_id] | Guides:53:1
[task] | wikipedia [title] | 캐릭터 초기 속성 편집 [category] | Guides [rephrased] | # 메이커 사용 캐릭터 초기 속성 편집 메이플스토리 월드 메이커(Maker)에서 사용하는 캐릭터의 초기 속성은 모델 프로퍼티(Model Properties)를 통해 설정할 수 있습니다. 각 프로퍼티는 특정 컴포넌트(Component)의 특정 프로퍼티와 매핑되며, 플레이어의 이동, 점프, 카메라 동작, 대화, 그리고 대미지 표시 등 다양한 기본 동작을 제어합니다. ## 이동 및 물리 동작 캐릭터의 물리적 움직임과 가감속도는 `MovementComponent`와 `RigidbodyComponent`를 통해 제어됩니다. * * [original] | | 모델 프로퍼티 명 | 원 컴포넌트 원 프로퍼티 명 | 설명 | | --------- | ---------------- | --- | | speed | MovementComponent <ul><li>InputSpeed</li></ul> | 플레이어의 기본 이동 속도 값을 정합니다. 값이 클수록 빠르게 움직입니다. 기본값은 1.2입니다. | | jumpForce | MovementComponent<ul><li>JumpForce</li></ul> | 플레이어의 기본 점프 높이를 설정합니다. 값이 클수록 높이 점프합니다. 기본값은 [chunk_id] | Guides:48:1
[task] | extract_knowledge [title] | 캐릭터 초기 속성 편집 [category] | Guides [rephrased] | # 메이커 사용 캐릭터 초기 속성 편집 ## 개념 설명 메이플스토리 월드(MSW)의 `DefaultPlayer` 모델에는 게임의 기본 동작을 담당하는 여러 컴포넌트가 사전에 장착되어 있습니다. 크리에이터가 커스텀 로직을 구현하거나 특정 UI 요소를 제거하고자 할 때, 이러한 기본 제공 컴포넌트를 비활성화하거나 삭제할 수 있습니다. 1. **모델 프로퍼티 비활성화**: 특정 컴포넌트(예: 이름표)의 기능을 끄기 위해 해당 컴포넌트의 `Enable` 프로퍼티를 변경하는 방식입니다. 2. **기본 컴포넌트 삭제**: 기본 컴포넌트를 [original] | # 모델 프로퍼티 비활성화하기 크리에이터의 의도에 따라 필요 없는 모델 프로퍼티를 비활성화 할 수 있습니다. 예를 들어, **NameTag**을 사용하고 싶지 않다면, 프로퍼티 에디터에서 **NameTagComponent**의 **Enable** 체크를 해제합니다. # DefaultPlayer의 기본 컴포넌트 삭제하기 기본 컴포넌트를 확장한 컴포넌트를 제작해 사용한다면, **DefaultPlayer**의 기본 컴포넌트를 삭제해야 합니다. 근본이 같은 컴포넌트가 여러 개 있으면 오동작 가능성이 커지기 때문에 기본적으로 하나의 컴 [chunk_id] | Guides:48:2
[task] | diverse_qa [title] | Entity, Component, Property [category] | Guides [rephrased] | 질문: Property는 무엇을 설정하는 데 사용되나요? 답변: Property는 각 Component의 세부사항을 설정하는 데 사용됩니다. 질문: 문서에서 피자를 예로 들며, 철수가 원하는 피자를 만들기 위해 기존 방식(새로운 Component 추가)과 Property 방식을 비교했을 때 Property 방식의 장점은 무엇인가요? 답변: Property 방식을 사용하면 Component의 재사용성을 높일 수 있으며, 같은 Component를 사용하더라도 Property 값이 다르면 다르게 동작하게 할 수 있습니다. 질문: 도우 [original] | Property는 각 Component의 세부사항을 설정합니다. Component에서 예시를 든 피자로 다시 돌아와 볼까요? 세 명의 아이가 페퍼로니 피자를 먹고 싶어 합니다. 철수는 페퍼로니가 2배들어 있는 피자를 원하고, 영희는 들어 있는 치즈가 체다가 아닌 모짜렐라 치즈를 원합니다. 윤후는 사이즈를 조금 더 크게 먹고 싶습니다. 기존에 도우 Component, 페퍼로니 Component, 치즈 Component 가 있습니다. 자, 어떻게 하면 될까요? 철수는 페퍼로니 2배 Component를 추가하고 영희는 모짜렐라 치즈 [chunk_id] | Guides:54:1
[task] | knowledge_list [title] | 모델 [category] | Guides [rephrased] | * **모델(Model)** 은 엔티티의 컴포넌트와 프로퍼티 정보를 저장하는 판본으로, 동일한 구조의 엔티티를 반복 생성할 때 사용됩니다. * 엔티티를 모델로 변환하는 과정을 **모델화** 라고 하며, 기존에 설정된 엔티티를 그대로 모델로 저장하여 재사용할 수 있습니다. * 엔티티를 모델로 생성하려면 해당 엔티티의 컨텍스트 메뉴에서 **Create Model From Entity** 명령을 실행해야 합니다. * **Preset List** 에서는 메이플스토리 데이터를 기반으로 한 기본 프리셋 모델들이 제공되어 바로 사용할 수 있습니 [original] | # 학습 과정 소개 자주 사용했던 모델의 개념을 정확히 이해합니다. # 원하는 Entity 만들기 원하는 엔티티를 만들려면, 엔티티에 컴포넌트를 추가하고 프로퍼티를 수정해야 합니다. 다음과 같은 나무를 만들어봅시다. 엔티티를 만들고 컴포넌트를 추가하고 프로퍼티를 알맞게 수정했습니다. 완성이군요! 이렇게 여러 개의 나무를 모아서 숲을 만들고 싶습니다. 어떻게 하면 될까요? 엔티티를 만들고 컴포넌트를 추가하고 프로퍼티를 4번 수정하면 되겠군요. 나무가 100개가 있다면 어떻게 하면 될까요? 그렇습니다. 100번을 해야 [chunk_id] | Guides:55:0
[task] | knowledge_list [title] | 맵 레이어 [category] | Guides [rephrased] | 제시된 원문에 포함된 정보만 기반으로 맵 레이어 관련 핵심 사실을 정리합니다. **1. 맵 레이어의 기능과 위치** 맵 레이어는 게임 화면을 입체적으로 디자인하기 위해 사용되며, 메이커 화면의 기본 패널 설정 기준 중앙 하단에 위치합니다. **2. 맵 레이어 패널 호출 및 초기화** 닫은 맵 레이어 패널은 `Panels - Map Layer`를 선택하여 다시 불러올 수 있으며, `Panels - Reset Panels`을 선택하면 패널 상태를 초기화할 수 있습니다. **3. 레이어 표시 모드 (None/Focus)** 레이어 [original] | # 학습 과정 소개 맵 레이어를 사용해 더욱 입체적으로 게임 화면을 디자인할 수 있습니다. 맵 레이어 창 구성을 살펴보고 활용하는 방법을 알아봅니다. 레이어 순서를 이해하고 레이어를 크리에이터의 게임에 맞게 활용할 수 있습니다. # 맵 레이어 위치 맵 레이어 창은 기본 패널 설정 기준, 중앙 하단에 위치합니다. 작업 편의를 위해 탭을 닫은 후 다시 불러올 때는 **Panels - Map Layer**을 선택해 불러올 수 있습니다. | 메이커 화면 기본 위치 | Panels - Map Layer | | ------------ [chunk_id] | Guides:53:0
[task] | wikipedia [title] | Entity, Component, Property [category] | Guides [rephrased] | # Entity, Component, Property 개념 이해 `Property`는 각 `Component`의 세부 사항을 설정하는 요소입니다. `Entity`와 `Component`의 관계를 이해하기 위해 피자를 만드는 과정으로 비유해 볼 수 있습니다. 세 명의 아이가 페퍼로니 피자를 원한다고 가정해 보겠습니다. 철수는 페퍼로니 양이 2배인 피자를, 영희는 체다 대신 모짜렐라 치즈를 넣은 피자를, 윤후는 사이즈가 더 큰 피자를 원합니다. 기존에 `도우 Component`, `페퍼로니 Component`, `치즈 Compone [original] | Property는 각 Component의 세부사항을 설정합니다. Component에서 예시를 든 피자로 다시 돌아와 볼까요? 세 명의 아이가 페퍼로니 피자를 먹고 싶어 합니다. 철수는 페퍼로니가 2배들어 있는 피자를 원하고, 영희는 들어 있는 치즈가 체다가 아닌 모짜렐라 치즈를 원합니다. 윤후는 사이즈를 조금 더 크게 먹고 싶습니다. 기존에 도우 Component, 페퍼로니 Component, 치즈 Component 가 있습니다. 자, 어떻게 하면 될까요? 철수는 페퍼로니 2배 Component를 추가하고 영희는 모짜렐라 치즈 [chunk_id] | Guides:54:1
[task] | extract_knowledge [title] | Entity, Component, Property [category] | Guides [rephrased] | # Entity, Component, Property 개념 및 구조 ## 1. 개념 설명 **Entity (엔티티)** 메이플스토리 월드 내에서 존재하는 객체를 의미합니다. 시각적으로 보이는 객체뿐만 아니라 보이지 않지만 내부적으로 로직이 실행되는 모든 것도 Entity입니다. 게임 환경에는 수많은 Entity가 배치되어 있으며, 이들은 실시간으로 생성, 변경, 삭제됩니다. Entity는 실제 게임상에서 활동함으로써 시각적 표현과 내부 로직 실행을 담당합니다. **Component (컴포넌트)** Entity는 여러 Compo [original] | # 학습 과정 소개 Entity와 Component 그리고 Property에 대해서 개념을 이해합니다. # Entity 엔티티는 메이플스토리 월드 내에서 존재하는 객체입니다. 아래의 그림에서 Entity는 어떤 것들일까요? 빨간색을 칠한 부분이 Entity입니다. 그뿐만 아니라 보이지는 않지만 돌아가고 있는 모든 것들이 Entity입니다. 메이플스토리 월드에서는 실제로 수많은 Entity가 배치되어 있고 실시간으로 생성, 변경, 삭제됩니다. Entity들이 실제 게임상에서 활동함으로써 시각적으로 보이며, 내부적으로 로직 [chunk_id] | Guides:54:0