[task] | knowledge_list [title] | 효과음 만들기 [category] | Guides [rephrased] | 제시된 원문 문서의 내용을 바탕으로 핵심 사실을 추출하여 정리한 목록입니다. * **SoundComponent**와 **SoundService** API는 월드를 입체적으로 만들기 위해 음원을 재생하고, 상황에 맞게 제어하는 데 사용됩니다. * 엔티티에 **SoundComponent**를 추가하여 소리를 재생하거나 정지할 수 있으며, 음원 식별자는 **Resource Storage**의 **Audio RUID** 또는 크리에이터가 추가한 음원의 **RUID**를 활용합니다. * `SetListenerEntity()` 메 [original] | # 학습 과정 소개 월드를 입체적으로 만들기 위해 [**SoundComponent**](/apiReference/Components/SoundComponent)와 [**SoundService**](/apiReference/Services/SoundService)를 활용해 음원을 재생하고, 때에 맞게 제어하는 방법을 소개합니다. # SoundComponent 월드를 더욱 입체적으로 만들기 위해 다양한 소리가 이곳저곳에서 재생되게 만들거나, 플레이어와 특정 엔티티의 거리에 따라 다른 음량으로 들리게 만들 수 있습니다. **Soun [chunk_id] | Guides:578:0
[task] | extract_knowledge [title] | 행동 트리를 활용한 AI 만들기 [category] | Guides [rephrased] | # 행동 트리(AI) 노드 생성 ## 1. 개념 설명 메이플스토리 월드에서 엔티티에 AI를 부여하기 위해서는 해당 엔티티에 **AIComponent** 또는 이를 확장한 컴포넌트가 포함되어 있어야 합니다. AIComponent는 행동 트리(Behaviour Tree)의 최상위 노드를 Root로 설정하거나, `BTNodeType`에서 정의된 구조를 바탕으로 Action Node를 생성하여 AI 로직을 실행합니다. Action Node는 스크립트를 통해 직접 생성할 수 있으며, `AIComponent`의 `CreateNode()` [original] | AI로 사용할 엔티티에는 **AIComponent 또는 확장한 AIComponent**가 포함되어 있어야 합니다. AIComponent는 BTNodeType에서 정의된 내용으로 Action Node를 별도의 객체로 생성하거나, 만들어진 행동 트리의 최상위 노드를 Root 노드로 설정하여 엔티티에 AI를 부여하기 때문입니다. Action Node를 만들 때는 AIComponent의 `CreateNode()`, `CreateLeafNode()`를 활용해 Action Node를 생성할 수 있습니다. > **Tip** > Action N [chunk_id] | Guides:562:4
[task] | diverse_qa [title] | 행동 트리를 활용한 AI 만들기 [category] | Guides [rephrased] | 질문: AI로 사용할 엔티티에는 반드시 어떤 컴포넌트가 포함되어 있어야 하는가요? 답변: AI로 사용할 엔티티에는 **AIComponent** 또는 이를 확장한 컴포넌트가 포함되어 있어야 합니다. 질문: AIComponent가 엔티티에 AI를 부여하는 방식은 무엇인가요? 답변: AIComponent는 BTNodeType에서 정의된 내용으로 Action Node를 별도의 객체로 생성하거나, 만들어진 행동 트리의 최상위 노드를 Root 노드로 설정하여 엔티티에 AI를 부여합니다. 질문: 스크립트로 Action Node를 생성할 때 [original] | AI로 사용할 엔티티에는 **AIComponent 또는 확장한 AIComponent**가 포함되어 있어야 합니다. AIComponent는 BTNodeType에서 정의된 내용으로 Action Node를 별도의 객체로 생성하거나, 만들어진 행동 트리의 최상위 노드를 Root 노드로 설정하여 엔티티에 AI를 부여하기 때문입니다. Action Node를 만들 때는 AIComponent의 `CreateNode()`, `CreateLeafNode()`를 활용해 Action Node를 생성할 수 있습니다. > **Tip** > Action N [chunk_id] | Guides:562:4
[task] | distill [title] | 효과음 만들기 [category] | Guides [rephrased] | **SetCameraAsListener** 프로퍼티는 `SoundComponent`에서 활성화 시 화면 중앙(카메라)과 음원 간 거리에 따라 볼륨을 자동 조절합니다. **설정 예시 (UI 에디터)** 1. `SpriteRendererComponent`의 `SpriteRUID`에 `c5cf1b7c8d6447f7979b544e166965fc` 입력. 2. `SoundComponent` 추가 및 설정: - `AudioClipRUID`: `74222ba4b41d48dd97175fd691124a67` - `HearingDista [original] | **SetCameraAsListener** 프로퍼티를 활용하는 방법도 있습니다. **SoundComponent** 프로퍼티에서 설명했듯이 **SetCameraAsListener**를 활성화하면 화면 중앙과 음원 사이의 거리에 따라 소리 크기를 조절합니다. 간단하게 **SetCameraAsListener** 프로퍼티를 활용하는 방법을 살펴봅시다. 1. **Preset List**에서 아무 맵 오브젝트나 **Scene**에 배치한 뒤 **SpriteRendererComponent - SpriteRUID**에 아래의 **RUID**를 [chunk_id] | Guides:578:1
[task] | wikipedia [title] | 효과음 만들기 [category] | Guides [rephrased] | # 사운드 효과음 만들기 메이플스토리 월드에서 사운드 효과를 구현하기 위해 `SoundComponent`와 `SoundService`를 활용하여 음원을 재생하고 제어하는 방법을 다룹니다. ## SoundComponent 개요 `SoundComponent`는 특정 엔티티에 다양한 소리를 재생하거나, 플레이어 및 특정 엔티티와의 거리 차이에 따라 음량을 조절하여 몰입감을 높이는 데 사용됩니다. 이를 통해 오브젝트와의 상호작용 시 적절한 사운드 피드백을 제공할 수 있습니다. 엔티티에 `SoundComponent`를 추가한 후, ` [original] | # 학습 과정 소개 월드를 입체적으로 만들기 위해 [**SoundComponent**](/apiReference/Components/SoundComponent)와 [**SoundService**](/apiReference/Services/SoundService)를 활용해 음원을 재생하고, 때에 맞게 제어하는 방법을 소개합니다. # SoundComponent 월드를 더욱 입체적으로 만들기 위해 다양한 소리가 이곳저곳에서 재생되게 만들거나, 플레이어와 특정 엔티티의 거리에 따라 다른 음량으로 들리게 만들 수 있습니다. **Soun [chunk_id] | Guides:578:0
[task] | diverse_qa [title] | 행동 트리를 활용한 AI 만들기 [category] | Guides [rephrased] | 질문: 자식 노드가 Success 또는 Failure를 반환했을 때 부모 노드는 어떻게 동작합니까? 답변: 자식 노드가 Success 또는 Failure를 반환하면 부모 노드는 다음 자식 노드를 실행합니다. 질문: 자식 노드가 Running을 반환했을 때 부모 노드의 동작 방식은 무엇입니까? 답변: 자식 노드가 Running을 반환하면 부모 노드는 Running을 반환했던 자식 노드를 다음 프레임에 다시 실행합니다. 질문: Sequence Node와 Selector Node에서 자식 노드 B가 Running을 반환하는 동안 자식 [original] | 자식 노드가 Success 또는 Failure를 반환하면 부모 노드는 다음 자식 노드를 실행합니다. 그러나 자식 노드가 Running을 반환하면 부모 노드는 Running을 반환했던 자식 노드를 다음 프레임에 다시 실행합니다. 이 특성을 활용해 여러 프레임 동안 동작하는 노드를 만들 수 있습니다. 아래 그림과 같이 자식 노드 A, B, C가 있을 때 Sequence Node와 Selector Node의 경우 B 노드가 Running을 반환하는 동안 C 노드를 실행하지 않습니다. RandomSelector Node는 선택된 노드를 계 [chunk_id] | Guides:562:3
[task] | distill [title] | 효과음 만들기 [category] | Guides [rephrased] | **SkillSound** 컴포넌트를 `DefaultPlayer`에 추가하여 키 입력 시 효과음과 이펙트를 재생하는 예시입니다. **1. 컴포넌트 구성** * **대상**: `DefaultPlayer` * **이벤트 핸들러**: `[client only] [service: InputService] HandleKeyDownEvent(KeyDownEvent event)` **2. 코드 예제** `LeftControl` 키 입력 시 `_SoundService`로 사운드 ID를 재생하고, `_EffectService`로 이펙트 [original] | 기본 공격 스킬에 이펙트 스킬과 효과음을 추가해 역동적으로 연출할 수 있습니다. 1. **MyDesk**에 새로운 **SkillSound** 스크립트 컴포넌트를 생성하고, **DefaultPlayer**에 추가합니다. 2. 이벤트 핸들러에 **KeyDownEvent**를 추가하고 아래와 같이 내용을 작성합니다. ```lua Event Handler: [clinet only] [service: InputService] HandleKeyDownEvent(KeyDownEvent event) { -- Parameters l [chunk_id] | Guides:578:2
[task] | knowledge_list [title] | 효과음 만들기 [category] | Guides [rephrased] | 제공된 문서 내용을 바탕으로 추출한 핵심 사실 목록입니다. 1. 기본 공격 스킬 연출을 위해 **MyDesk** 에 **SkillSound** 라는 이름의 새로운 스크립트 컴포넌트를 생성해야 하며, 해당 컴포넌트는 **DefaultPlayer** 엔티티에 추가되어야 합니다. 2. **KeyDownEvent** 이벤트 핸들러는 **InputService** 서비스와 연결되며, 실행 공간 제약은 **[clinet only]** (원문 표기 그대로) 로 설정됩니다. 3. 이벤트 핸들러의 매개변수로 전달되는 **KeyDownEvent** [original] | 기본 공격 스킬에 이펙트 스킬과 효과음을 추가해 역동적으로 연출할 수 있습니다. 1. **MyDesk**에 새로운 **SkillSound** 스크립트 컴포넌트를 생성하고, **DefaultPlayer**에 추가합니다. 2. 이벤트 핸들러에 **KeyDownEvent**를 추가하고 아래와 같이 내용을 작성합니다. ```lua Event Handler: [clinet only] [service: InputService] HandleKeyDownEvent(KeyDownEvent event) { -- Parameters l [chunk_id] | Guides:578:2
[task] | wikipedia [title] | 행동 트리를 활용한 AI 만들기 [category] | Guides [rephrased] | # 행동 트리를 활용한 AI 만들기 행동 트리(Behavior Tree)는 게임 로직에서 AI의 의사결정 구조를 정의하는 데 사용됩니다. 노드 간의 실행 흐름은 각 노드가 반환하는 상태(Status)에 따라 결정됩니다. 자식 노드가 `Success` 또는 `Failure`를 반환하면 부모 노드는 다음 자식 노드를 실행합니다. 반면, 자식 노드가 `Running`을 반환하면 부모 노드는 해당 자식 노드를 다음 프레임에 다시 실행합니다. 이 특성을 활용하여 여러 프레임에 걸쳐 지속적으로 동작하는 노드를 구현할 수 있습니다. 자식 노 [original] | 자식 노드가 Success 또는 Failure를 반환하면 부모 노드는 다음 자식 노드를 실행합니다. 그러나 자식 노드가 Running을 반환하면 부모 노드는 Running을 반환했던 자식 노드를 다음 프레임에 다시 실행합니다. 이 특성을 활용해 여러 프레임 동안 동작하는 노드를 만들 수 있습니다. 아래 그림과 같이 자식 노드 A, B, C가 있을 때 Sequence Node와 Selector Node의 경우 B 노드가 Running을 반환하는 동안 C 노드를 실행하지 않습니다. RandomSelector Node는 선택된 노드를 계 [chunk_id] | Guides:562:3
[task] | knowledge_list [title] | 효과음 만들기 [category] | Guides [rephrased] | 요청하신 문서 내용에서 추출한 핵심 사실 목록입니다. 1. `SoundComponent`의 `SetCameraAsListener` 프로퍼티를 활성화하면, 화면 중앙(카메라)과 음원 사이의 거리에 따라 소리 크기가 조절됩니다. 2. 사운드 테스트용 스프라이트를 배치하기 위해 `SpriteRendererComponent`의 `SpriteRUID` 프로퍼티에 `c5cf1b7c8d6447f7979b544e166965fc` 값을 입력해야 합니다. 3. `SoundComponent`를 설정할 때 `AudioClipRUID` 프로퍼티에 `74 [original] | **SetCameraAsListener** 프로퍼티를 활용하는 방법도 있습니다. **SoundComponent** 프로퍼티에서 설명했듯이 **SetCameraAsListener**를 활성화하면 화면 중앙과 음원 사이의 거리에 따라 소리 크기를 조절합니다. 간단하게 **SetCameraAsListener** 프로퍼티를 활용하는 방법을 살펴봅시다. 1. **Preset List**에서 아무 맵 오브젝트나 **Scene**에 배치한 뒤 **SpriteRendererComponent - SpriteRUID**에 아래의 **RUID**를 [chunk_id] | Guides:578:1
[task] | diverse_qa [title] | 효과음 만들기 [category] | Guides [rephrased] | 질문: 월드를 입체적으로 만들기 위해 음원을 재생하고 제어하는 데 주로 활용되는 컴포넌트와 서비스는 무엇인가요? 답변: SoundComponent와 SoundService를 활용하여 음원을 재생하고 제어할 수 있습니다. 질문: SoundComponent를 통해 음량을 조절할 수 있는 기준이 되는 대상은 무엇인가요? 답변: 플레이어와 특정 엔티티의 거리를 기준으로 다른 음량으로 들리게 만들 수 있습니다. 질문: SoundComponent에서 사용할 수 있는 음원의 식별자(RUID)는 어디서 가져올 수 있나요? 답변: Resourc [original] | # 학습 과정 소개 월드를 입체적으로 만들기 위해 [**SoundComponent**](/apiReference/Components/SoundComponent)와 [**SoundService**](/apiReference/Services/SoundService)를 활용해 음원을 재생하고, 때에 맞게 제어하는 방법을 소개합니다. # SoundComponent 월드를 더욱 입체적으로 만들기 위해 다양한 소리가 이곳저곳에서 재생되게 만들거나, 플레이어와 특정 엔티티의 거리에 따라 다른 음량으로 들리게 만들 수 있습니다. **Soun [chunk_id] | Guides:578:0
[task] | wikipedia [title] | 효과음 만들기 [category] | Guides [rephrased] | # 사운드 효과음 만들기 기본 공격 스킬에 이펙트 스킬과 효과음을 결합하여 역동적인 연출 효과를 구현할 수 있습니다. 이 과정은 `MyDesk` 워크스페이스에서 새로운 스크립트 컴포넌트를 생성하고, 플레이어 엔티티에 적용하며, 입력 이벤트를 감지하여 사운드와 이펙트를 재생하는 절차로 구성됩니다. 먼저 `MyDesk`에 **SkillSound**라는 이름의 새로운 스크립트 컴포넌트를 생성합니다. 다음으로 생성된 컴포넌트를 **DefaultPlayer** 엔티티에 추가하여 연결합니다. 컴포넌트가 추가된 후, 이벤트 핸들러에 `Ke [original] | 기본 공격 스킬에 이펙트 스킬과 효과음을 추가해 역동적으로 연출할 수 있습니다. 1. **MyDesk**에 새로운 **SkillSound** 스크립트 컴포넌트를 생성하고, **DefaultPlayer**에 추가합니다. 2. 이벤트 핸들러에 **KeyDownEvent**를 추가하고 아래와 같이 내용을 작성합니다. ```lua Event Handler: [clinet only] [service: InputService] HandleKeyDownEvent(KeyDownEvent event) { -- Parameters l [chunk_id] | Guides:578:2
[task] | distill [title] | 이동 발판 만들기 [category] | Guides [rephrased] | # 지형 이동 발판 만들기 `CustomFootholdComponent`를 활용하여 움직이는 발판을 제작합니다. 기본 발판 생성 후, 아래 프로퍼티를 설정하여 동적 이동 기능을 활성화합니다. ## 핵심 프로퍼티 | 프로퍼티 | 설명 | | :--- | :--- | | `IsDynamicFoothold` | 움직이는 발판 기능 활성화 여부. | | `RigidbodyMovementOption` | 발판 위 플레이어의 관성 적용 방식.<br>• `RelativeX`: x축 관성 적용. 발판 이동 방향과 반대 시 감속, 동일 시 가 [original] | # 학습 과정 소개 움직이는 발판을 만들어 이동에 재미를 더해보세요. CustomFootholdComponent의 IsDynamicFoothold 프로퍼티를 이용해 나만의 움직이는 발판을 만들 수 있습니다. [발판 만들기](/docs/?postId=71%7B%22target%22:%22_self%22%7D)에서 기본 발판 제작 방법을 배울 수 있습니다. # 이동 발판 만들기 이동 발판은 CustomFootholdComponent를 활용해 크리에이터가 직접 만들어야 합니다. 발판의 움직임을 만드는 방식은 다르지만, 기본 Cus [chunk_id] | Guides:579:0
[task] | extract_knowledge [title] | 행동 트리를 활용한 AI 만들기 [category] | Guides [rephrased] | # 행동 트리(AI) 노드: Selector, RandomSelector, Parallel, Decorator ## 1. 개념 설명 행동 트리(Behavior Tree)는 AI의 의사결정 로직을 트리 구조로 표현하는 방법론입니다. 각 노드는 실행 결과로 `Success`(성공), `Failure`(실패) 상태를 반환하며, 부모 노드는 자식 노드의 반환 값을 기반으로 다음 동작을 결정합니다. * **Selector Node**: 자식 노드를 순서대로 실행하는 복합(Composite) 노드입니다. * **RandomSele [original] | **Selector Node**는 자식 노드를 순서대로 실행하다가 자식 노드가 Success를 반환하면 실행을 멈추고 부모 노드로 Success를 반환합니다. 모든 자식 노드가 Failure를 반환하면 부모 노드에 Failure를 반환합니다. ![[object Object]](https://mod-file.dn.nexoncdn.co.kr/bbs/17168858785873218b87041fd46df9756a267a30ce29e.png "SelectorNode") #### RandomSelector Node **RandomSelec [chunk_id] | Guides:562:2
[task] | extract_knowledge [title] | 효과음 만들기 [category] | Guides [rephrased] | # 사운드 효과음 만들기: SoundComponent ## 1. 개념 설명 `sLua` 환경에서 사운드를 제어하기 위해 `SoundComponent`와 `SoundService`를 활용합니다. `SoundComponent`는 엔티티에 추가되어 소리의 재생, 정지, 음량 조절을 담당합니다. 특히 `SetListenerEntity()` 메서드를 사용하면 특정 엔티티(예: 플레이어)와 사운드 소스 간의 거리를 기반으로 음량을 자동 조절할 수 있어 몰입감 있는 연출이 가능합니다. * **음원 식별자**: 사운드 재생에는 `Resou [original] | # 학습 과정 소개 월드를 입체적으로 만들기 위해 [**SoundComponent**](/apiReference/Components/SoundComponent)와 [**SoundService**](/apiReference/Services/SoundService)를 활용해 음원을 재생하고, 때에 맞게 제어하는 방법을 소개합니다. # SoundComponent 월드를 더욱 입체적으로 만들기 위해 다양한 소리가 이곳저곳에서 재생되게 만들거나, 플레이어와 특정 엔티티의 거리에 따라 다른 음량으로 들리게 만들 수 있습니다. **Soun [chunk_id] | Guides:578:0
[task] | knowledge_list [title] | 이동 발판 만들기 [category] | Guides [rephrased] | * `CustomFootholdComponent`의 `IsDynamicFoothold` 프로퍼티를 활성화해야 움직이는 발판을 만들 수 있습니다. * `CustomFootholdComponent`의 `RigidbodyMovementOption` 프로퍼티는 움직이는 발판 위의 플레이어 엔티티가 받는 관성 방식을 설정합니다. * `RigidbodyMovementOption`의 `RelativeX` 값은 x축 관성은 적용하고 y축 관성은 적용하지 않으며, 플레이어가 발판 이동 방향과 반대 방향으로 움직이면 감속하고 같은 방향으로 [original] | # 학습 과정 소개 움직이는 발판을 만들어 이동에 재미를 더해보세요. CustomFootholdComponent의 IsDynamicFoothold 프로퍼티를 이용해 나만의 움직이는 발판을 만들 수 있습니다. [발판 만들기](/docs/?postId=71%7B%22target%22:%22_self%22%7D)에서 기본 발판 제작 방법을 배울 수 있습니다. # 이동 발판 만들기 이동 발판은 CustomFootholdComponent를 활용해 크리에이터가 직접 만들어야 합니다. 발판의 움직임을 만드는 방식은 다르지만, 기본 Cus [chunk_id] | Guides:579:0
[task] | wikipedia [title] | 이동 발판 만들기 [category] | Guides [rephrased] | # 지형 이동 발판 만들기 메이플스토리 월드에서 움직이는 발판은 `CustomFootholdComponent`를 활용하여 크리에이터가 직접 제작합니다. 이 컴포넌트의 `IsDynamicFoothold` 프로퍼티를 통해 정적인 발판이 아닌, 동적으로 이동하는 발판을 구현할 수 있습니다. 기본 발판의 제작 방법은 '발판 만들기' 문서에서 다룹니다. 움직이는 발판을 생성하기 위해서는 `CustomFootholdComponent`에 두 가지 핵심 프로퍼티를 설정해야 합니다. 첫째, `IsDynamicFoothold` 프로퍼티를 활성화하 [original] | # 학습 과정 소개 움직이는 발판을 만들어 이동에 재미를 더해보세요. CustomFootholdComponent의 IsDynamicFoothold 프로퍼티를 이용해 나만의 움직이는 발판을 만들 수 있습니다. [발판 만들기](/docs/?postId=71%7B%22target%22:%22_self%22%7D)에서 기본 발판 제작 방법을 배울 수 있습니다. # 이동 발판 만들기 이동 발판은 CustomFootholdComponent를 활용해 크리에이터가 직접 만들어야 합니다. 발판의 움직임을 만드는 방식은 다르지만, 기본 Cus [chunk_id] | Guides:579:0
[task] | distill [title] | 상품 등록하기 [category] | Guides [rephrased] | # 유료화 상품 등록하기 ## 상품 개요 이용자가 **월드코인**으로 구매하는 상품으로, 크리에이터는 구매 대가로 서비스(예: 이용권)를 제공하며 추후 코인을 정산합니다. 상품은 **아이템**과 **이용권** 두 종류입니다. * **아이템**: 재구매 가능 (예: HP 회복 물약). * **이용권**: 1회 구매, 지속적 효과 제공. ## 등록 필수 항목 등록 시 아래 항목을 필수로 입력해야 하며, 설명은 선택 사항입니다. | 항목 | 내용 및 제약 조건 | | :--- | :--- | | **상품 종류** | `아이 [original] | # 학습 과정 소개 이번 과정에서는 월드에서 판매할 수 있는 상품인 아이템과 이용권에 대해서 알아봅니다. 상품에 대해서 알아보고, 만들고 싶은 상품을 등록해봅니다. 상품은 이용자들이 가진 월드코인으로 구매할 수 있습니다. 크리에이터는 상품의 구매 대가로 이용자들에게 이용권과 같은 서비스를 제공해줘야 합니다. 크리에이터는 추후 이용자가 지불한 월드코인을 정산할 수 있습니다. # 상품 등록하기 상품을 등록하는 방법은 두 가지입니다. 메이플스토리 월드 [공식 홈페이지](https://maplestoryworlds.nexon.com/ [chunk_id] | Guides:581:0
[task] | distill [title] | 상품 등록하기 [category] | Guides [rephrased] | **상품 상태** * **판매 중**: 월드 상점 노출 및 구매 가능. 실제 판매 필수 상태. * **미출시**: 노출/구매 불가, 보유 목록에서도 확인 불가. * **판매 대기**: 판매 시작일 미도래. 일정 도달 시 **'판매 중'**으로 자동 전환. * **판매 종료**: 판매 기간 만료. 상점 판매 불가. * **제재 중**: 제재 처리됨. 기간/출시 여부 무관하게 판매 불가. 수정 가능하나 상태 해제 문의는 고객센터 이용. * **테스트 모드**: 메이커 환경에서는 모든 상태에서 구매 테스트 가능. [original] | 상품 상태는 총 5개로 구분됩니다. 메이커에서 테스트할 때는 모든 상태에서 구매할 수 있습니다. 월드에서 실제로 판매하기 위해서는 상품의 상태가 **판매 중**이어야 합니다. | 이름 | 설명 | | --- | --- | | 미출시 | 출시 여부를 '미출시'로 설정한 상태입니다. 판매 기간이 되어도 월드 웹 상점 및 클라이언트 내에서도 노출되지 않고 판매도 불가합니다. 플레이어가 보유한 상품도 목록에서 확인이 불가합니다. | | 판매 대기 | 판매 시작일이 아직 도래하지 않아 대기 중인 상태입니다. 출시 상태로 판매 기간을 지정 [chunk_id] | Guides:581:1
[task] | diverse_qa [title] | 효과음 만들기 [category] | Guides [rephrased] | 질문: `SetCameraAsListener` 프로퍼티를 활성화하면 소리 크기가 어떻게 조절되나요? 답변: 화면 중앙과 음원 사이의 거리에 따라 소리 크기를 조절합니다. 질문: `SetCameraAsListener` 프로퍼티를 활성화한 상태에서 `SetListenerEntity` 함수를 통해 리스너 엔티티를 따로 지정한 경우, 어느 쪽이 리스너가 되나요? 답변: `SetListenerEntity` 함수를 통해 따로 지정한 엔티티가 리스너가 됩니다. 질문: 아래 `SoundComponent` 설정에서 `HearingDistance [original] | **SetCameraAsListener** 프로퍼티를 활용하는 방법도 있습니다. **SoundComponent** 프로퍼티에서 설명했듯이 **SetCameraAsListener**를 활성화하면 화면 중앙과 음원 사이의 거리에 따라 소리 크기를 조절합니다. 간단하게 **SetCameraAsListener** 프로퍼티를 활용하는 방법을 살펴봅시다. 1. **Preset List**에서 아무 맵 오브젝트나 **Scene**에 배치한 뒤 **SpriteRendererComponent - SpriteRUID**에 아래의 **RUID**를 [chunk_id] | Guides:578:1
[task] | extract_knowledge [title] | 효과음 만들기 [category] | Guides [rephrased] | # 사운드 효과음 및 SoundService 활용 ## 개념 설명 메이플스토리 월드에서 사운드를 제어하는 방식은 크게 두 가지로 나뉩니다. 첫째, `SoundComponent`의 `SetCameraAsListener` 프로퍼티를 통해 카메라(화면 중앙)와 음원 사이의 거리에 따라 소리 크기를 자동으로 조절하는 방식입니다. 둘째, 스크립트 내에서 `SoundService`를 직접 호출하여 특정 상황(예: UI 버튼 클릭)에 맞춰 음원을 재생하거나 제어하는 방식입니다. `SetCameraAsListener`가 활성화된 경우, 기본 [original] | **SetCameraAsListener** 프로퍼티를 활용하는 방법도 있습니다. **SoundComponent** 프로퍼티에서 설명했듯이 **SetCameraAsListener**를 활성화하면 화면 중앙과 음원 사이의 거리에 따라 소리 크기를 조절합니다. 간단하게 **SetCameraAsListener** 프로퍼티를 활용하는 방법을 살펴봅시다. 1. **Preset List**에서 아무 맵 오브젝트나 **Scene**에 배치한 뒤 **SpriteRendererComponent - SpriteRUID**에 아래의 **RUID**를 [chunk_id] | Guides:578:1
[task] | diverse_qa [title] | 효과음 만들기 [category] | Guides [rephrased] | 질문: 기본 공격 스킬에 효과음을 추가하기 위해 어떤 스크립트 컴포넌트를 생성해야 하나요? 답변: MyDesk에 새로운 SkillSound 스크립트 컴포넌트를 생성해야 합니다. 질문: SkillSound 스크립트 컴포넌트는 어떤 엔티티에 추가해야 하나요? 답변: DefaultPlayer에 추가해야 합니다. 질문: 키보드 입력을 감지하기 위해 어떤 이벤트 핸들러를 사용해야 하나요? 답변: KeyDownEvent를 추가해야 합니다. 질문: 아래 코드에서 KeyDownEvent 핸들러의 실행 공간은 어디인가요? ```lua [cli [original] | 기본 공격 스킬에 이펙트 스킬과 효과음을 추가해 역동적으로 연출할 수 있습니다. 1. **MyDesk**에 새로운 **SkillSound** 스크립트 컴포넌트를 생성하고, **DefaultPlayer**에 추가합니다. 2. 이벤트 핸들러에 **KeyDownEvent**를 추가하고 아래와 같이 내용을 작성합니다. ```lua Event Handler: [clinet only] [service: InputService] HandleKeyDownEvent(KeyDownEvent event) { -- Parameters l [chunk_id] | Guides:578:2
[task] | knowledge_list [title] | 상품 등록하기 [category] | Guides [rephrased] | 1. 상품 상태는 총 5가지(미출시, 판매 대기, 판매 중, 판매 종료, 제재 중)로 구분되며, 메이커 모드에서는 모든 상태에서 구매가 가능하지만 월드에서 실제 판매하려면 상태가 **판매 중**이어야 합니다. 2. **미출시** 상태는 출시 여부를 '미출시'로 설정한 상태로, 판매 기간이 도래해도 월드 웹 상점 및 클라이언트에 노출되지 않으며 판매가 불가하고 플레이어가 보유한 상품도 목록에서 확인이 불가능합니다. 3. **판매 대기** 상태는 판매 시작일이 도래하지 않아 대기 중인 상태로, 출시 상태로 판매 기간을 지정하면 판매 시 [original] | 상품 상태는 총 5개로 구분됩니다. 메이커에서 테스트할 때는 모든 상태에서 구매할 수 있습니다. 월드에서 실제로 판매하기 위해서는 상품의 상태가 **판매 중**이어야 합니다. | 이름 | 설명 | | --- | --- | | 미출시 | 출시 여부를 '미출시'로 설정한 상태입니다. 판매 기간이 되어도 월드 웹 상점 및 클라이언트 내에서도 노출되지 않고 판매도 불가합니다. 플레이어가 보유한 상품도 목록에서 확인이 불가합니다. | | 판매 대기 | 판매 시작일이 아직 도래하지 않아 대기 중인 상태입니다. 출시 상태로 판매 기간을 지정 [chunk_id] | Guides:581:1
[task] | diverse_qa [title] | 이동 발판 만들기 [category] | Guides [rephrased] | 질문: CustomFootholdComponent에서 움직이는 발판을 만들 때 활성화해야 하는 프로퍼티는 무엇인가요? 답변: IsDynamicFoothold 프로퍼티를 활성화해야 합니다. 질문: RigidbodyMovementOption 프로퍼티의 역할은 무엇인가요? 답변: 움직이는 발판 위의 플레이어 엔티티가 어떤 관성을 받을 것인지 방식을 적용하는 역할을 합니다. 질문: RelativeX 옵션을 선택했을 때 x축과 y축 관성은 어떻게 적용되나요? 답변: x축 관성은 적용하고, y축 관성은 적용하지 않습니다. 질문: Rela [original] | # 학습 과정 소개 움직이는 발판을 만들어 이동에 재미를 더해보세요. CustomFootholdComponent의 IsDynamicFoothold 프로퍼티를 이용해 나만의 움직이는 발판을 만들 수 있습니다. [발판 만들기](/docs/?postId=71%7B%22target%22:%22_self%22%7D)에서 기본 발판 제작 방법을 배울 수 있습니다. # 이동 발판 만들기 이동 발판은 CustomFootholdComponent를 활용해 크리에이터가 직접 만들어야 합니다. 발판의 움직임을 만드는 방식은 다르지만, 기본 Cus [chunk_id] | Guides:579:0
[task] | extract_knowledge [title] | 효과음 만들기 [category] | Guides [rephrased] | # 사운드 효과음 및 이펙트 연동 ## 개념 설명 기본 공격 스킬에 이펙트 스킬과 효과음을 추가하여 역동적인 연출을 구현할 수 있습니다. 이는 `SkillSound` 스크립트 컴포넌트를 `DefaultPlayer`에 부착하고, 특정 키 입력 이벤트를 감지하여 사운드와 이펙트를 동시에 재생하는 방식으로 동작합니다. ## API 사용법 연출을 위해 다음과 같은 서비스와 컴포넌트를 사용합니다. 1. **스크립트 컴포넌트 생성 및 배치** - `MyDesk`에서 `SkillSound`라는 이름의 스크립트 컴포넌트를 생성합니다. [original] | 기본 공격 스킬에 이펙트 스킬과 효과음을 추가해 역동적으로 연출할 수 있습니다. 1. **MyDesk**에 새로운 **SkillSound** 스크립트 컴포넌트를 생성하고, **DefaultPlayer**에 추가합니다. 2. 이벤트 핸들러에 **KeyDownEvent**를 추가하고 아래와 같이 내용을 작성합니다. ```lua Event Handler: [clinet only] [service: InputService] HandleKeyDownEvent(KeyDownEvent event) { -- Parameters l [chunk_id] | Guides:578:2
[task] | extract_knowledge [title] | 행동 트리를 활용한 AI 만들기 [category] | Guides [rephrased] | # 행동 트리의 상태 반환과 Action Node 구현 ## 1. 개념 설명 행동 트리(Behaviour Tree)에서 부모 노드는 자식 노드에서 반환된 상태(`Success`, `Failure`, `Running`)에 따라 다음 동작을 결정합니다. * **Success/Failure:** 자식 노드가 `Success` 또는 `Failure`를 반환하면, 부모 노드는 즉시 다음 자식 노드를 실행합니다. * **Running:** 자식 노드가 `Running`을 반환하면, 부모 노드는 해당 자식 노드를 다음 프레임에 다시 [original] | 자식 노드가 Success 또는 Failure를 반환하면 부모 노드는 다음 자식 노드를 실행합니다. 그러나 자식 노드가 Running을 반환하면 부모 노드는 Running을 반환했던 자식 노드를 다음 프레임에 다시 실행합니다. 이 특성을 활용해 여러 프레임 동안 동작하는 노드를 만들 수 있습니다. 아래 그림과 같이 자식 노드 A, B, C가 있을 때 Sequence Node와 Selector Node의 경우 B 노드가 Running을 반환하는 동안 C 노드를 실행하지 않습니다. RandomSelector Node는 선택된 노드를 계 [chunk_id] | Guides:562:3
[task] | knowledge_list [title] | 상품 등록하기 [category] | Guides [rephrased] | 제시된 문서에는 mLua 스크립트 API(메서드, 이벤트 핸들러, 속성 등)에 대한 기술적 정보가 포함되어 있지 않으며, 상품 등록 절차와 비즈니스 로직(유료화 상품 관리)에 대한 설명만 포함되어 있습니다. 따라서 요청하신 "API 이름·매개변수·반환 타입·동기화/서버·클라이언트 제약"을 명시하는 항목은 원문에 존재하지 않아 추출할 수 없습니다. 원문에 명시된 핵심 사실(상품 등록 및 관리 관련)만 독립적인 문장으로 정리하면 다음과 같습니다. 1. 상품 등록은 메이플스토리 월드 공식 홈페이지 또는 메이커(메이플스토리 월드 에디터 [original] | # 학습 과정 소개 이번 과정에서는 월드에서 판매할 수 있는 상품인 아이템과 이용권에 대해서 알아봅니다. 상품에 대해서 알아보고, 만들고 싶은 상품을 등록해봅니다. 상품은 이용자들이 가진 월드코인으로 구매할 수 있습니다. 크리에이터는 상품의 구매 대가로 이용자들에게 이용권과 같은 서비스를 제공해줘야 합니다. 크리에이터는 추후 이용자가 지불한 월드코인을 정산할 수 있습니다. # 상품 등록하기 상품을 등록하는 방법은 두 가지입니다. 메이플스토리 월드 [공식 홈페이지](https://maplestoryworlds.nexon.com/ [chunk_id] | Guides:581:0
[task] | wikipedia [title] | 효과음 만들기 [category] | Guides [rephrased] | # 사운드 효과음 만들기 메이플스토리 월드에서 사운드 효과음을 구현하는 방법에는 `SoundComponent` 프로퍼티를 직접 설정하는 방법과 `SoundService` API를 호출하는 방법이 있습니다. 이 섹션에서는 화면 중앙(카메라)과 음원 사이의 거리에 따라 소리 크기가 자동 조절되도록 하는 `SetCameraAsListener` 프로퍼티의 활용법과, 스크립트를 통해 소리를 제어하는 `SoundService`의 사용법을 다룹니다. ## SetCameraAsListener 프로퍼티 활용 `SoundComponent`의 ` [original] | **SetCameraAsListener** 프로퍼티를 활용하는 방법도 있습니다. **SoundComponent** 프로퍼티에서 설명했듯이 **SetCameraAsListener**를 활성화하면 화면 중앙과 음원 사이의 거리에 따라 소리 크기를 조절합니다. 간단하게 **SetCameraAsListener** 프로퍼티를 활용하는 방법을 살펴봅시다. 1. **Preset List**에서 아무 맵 오브젝트나 **Scene**에 배치한 뒤 **SpriteRendererComponent - SpriteRUID**에 아래의 **RUID**를 [chunk_id] | Guides:578:1
[task] | wikipedia [title] | 상품 등록하기 [category] | Guides [rephrased] | **유료화 상품 등록하기** 메이플스토리 월드(MapleStory Worlds)의 유료화 상품 상태는 총 5가지로 구분됩니다. 메이커 환경에서는 테스트를 위해 모든 상태의 상품을 구매할 수 있으나, 실제 월드에서 판매를 진행하려면 상품 상태가 반드시 '판매 중'이어야 합니다. 상품 상태별 특징은 다음과 같습니다. 첫째, **미출시** 상태는 출시 여부를 '미출시'로 설정한 경우입니다. 이 상태에서는 판매 기간이 도래했더라도 월드 웹 상점이나 게임 클라이언트 내 상점에서 상품이 노출되지 않으며 구매도 불가능합니다. 또한, 플레이 [original] | 상품 상태는 총 5개로 구분됩니다. 메이커에서 테스트할 때는 모든 상태에서 구매할 수 있습니다. 월드에서 실제로 판매하기 위해서는 상품의 상태가 **판매 중**이어야 합니다. | 이름 | 설명 | | --- | --- | | 미출시 | 출시 여부를 '미출시'로 설정한 상태입니다. 판매 기간이 되어도 월드 웹 상점 및 클라이언트 내에서도 노출되지 않고 판매도 불가합니다. 플레이어가 보유한 상품도 목록에서 확인이 불가합니다. | | 판매 대기 | 판매 시작일이 아직 도래하지 않아 대기 중인 상태입니다. 출시 상태로 판매 기간을 지정 [chunk_id] | Guides:581:1
[task] | diverse_qa [title] | 상품 등록하기 [category] | Guides [rephrased] | 질문: 월드에서 판매할 수 있는 상품은 어떤 두 가지 종류로 나뉘나요? 답변: 상품은 아이템과 이용권 두 종류로 나뉩니다. 질문: 아이템과 이용권의 가장 큰 차이점은 무엇인가요? 답변: 아이템은 재구매가 가능한 상품인 반면, 이용권은 한 번만 구매할 수 있고 지속적인 효과를 내는 상품입니다. 질문: 이용자가 상품을 구매하는 데 사용하는 화폐는 무엇인가요? 답변: 이용자는 상품을 구매하기 위해 월드코인을 사용합니다. 질문: 크리에이터는 상품 구매 대가로 이용자에게 어떤 것을 제공해야 하나요? 답변: 크리에이터는 상품의 구매 대가 [original] | # 학습 과정 소개 이번 과정에서는 월드에서 판매할 수 있는 상품인 아이템과 이용권에 대해서 알아봅니다. 상품에 대해서 알아보고, 만들고 싶은 상품을 등록해봅니다. 상품은 이용자들이 가진 월드코인으로 구매할 수 있습니다. 크리에이터는 상품의 구매 대가로 이용자들에게 이용권과 같은 서비스를 제공해줘야 합니다. 크리에이터는 추후 이용자가 지불한 월드코인을 정산할 수 있습니다. # 상품 등록하기 상품을 등록하는 방법은 두 가지입니다. 메이플스토리 월드 [공식 홈페이지](https://maplestoryworlds.nexon.com/ [chunk_id] | Guides:581:0