[task] | knowledge_list [title] | 아바타의 외형 변경과 활용 [category] | Guides [rephrased] | - `AvatarRendererComponent`와 `CostumeManagerComponent`를 활용하여 새로운 아바타를 만들어 사용할 수 있으며, 몬스터, 포탈, NPC 또는 크리에이터만의 특별한 엔티티로 제작할 수 있다. - 아바타 엔티티를 제작할 때 `TransformComponent`, `AvatarRendererComponent`, `CostumeManagerComponent` 총 3가지 컴포넌트는 필수로 추가해야 한다. - 필수 컴포넌트 외에도 다른 네이티브 컴포넌트나 크리에이터가 제작한 새로운 컴포넌트를 추가하여 아 [original] | **AvatarRendererComponent**와 **CostumeManagerComponent**를 활용해 새로운 아바타를 만들어 사용할 수 있습니다. 몬스터, 포탈, NPC 혹은 크리에이터만의 특별한 엔티티로 제작할 수 있습니다. 이때 **TransformComponent, AvatarRendererComponent, CostumeManagerComponent** 총 3가지는 필수 컴포넌트입니다. 필수 컴포넌트와 더불어 다른 네이티브 컴포넌트를 추가하거나, 크리에이터가 제작한 새로운 컴포넌트를 추가해 활용합니다. #### 아 [chunk_id] | Guides:543:2
[task] | wikipedia [title] | 아바타의 외형 변경과 활용 [category] | Guides [rephrased] | # 아바타의 외형 변경과 활용 본 문서는 메이플스토리 월드(MapleStory Worlds)에서 아바타의 구성 구조를 이해하고, 복장(장비)을 교체하는 방법을 다루며 이를 통해 아바타를 다양한 방식으로 활용할 수 있도록 안내합니다. ## 아바타 구성 기본 플레이어 객체인 `DefaultPlayer`의 프로퍼티 에디터에는 `AvatarRendererComponent`와 `CostumeManagerComponent` 두 가지 컴포넌트가 기본적으로 포함되어 있습니다. `AvatarRendererComponent`는 복장 정보를 가 [original] | # 학습 과정 소개 아바타 구성을 살펴보고, 아바타의 장비를 교체하는 방법을 알아봅니다. 아바타의 구성을 이해해 새로운 방식으로 아바타를 활용할 수 있습니다. # 아바타 **DefaultPlayer**의 프로퍼티 에디터에는 **AvatarRendererComponent**와 **CostumeManagerComponent**가 있습니다. * **AvatarRendererComponent** * 복장 정보를 가져와 아바타를 그리는(Rendering) 역할을 합니다. * **CostumeManagerComponent** [chunk_id] | Guides:543:0
[task] | knowledge_list [title] | 아바타의 외형 변경과 활용 [category] | Guides [rephrased] | 1. `AvatarRendererComponent`의 `SetColor` 함수는 인자로 4개의 숫자(빨강, 초록, 파랑, 알파)를 받아 엔티티의 아바타 렌더링 색상을 변경합니다. 2. `TriggerComponent`를 `Extend`하여 확장하면, 기존에 존재하는 `OnEnterTriggerBody` 함수를 `override` 키워드를 사용하여 재정의할 수 있으며, 이 경우 함수 이름 앞에 `override`가 붙습니다. 3. `TriggerEnterEvent` 타입의 `enterEvent` 매개변수를 가진 `OnEnterTrig [original] | **AvatarRendererComponent**의 `SetColor` 함수와 **확장한 TriggerComponent**를 사용해 특정 엔티티와 유저가 닿으면(충돌하면) 유저가 빨간색으로 변하게 합니다. 1. **BaseEnvironment - NativeScripts - Component - TriggerComponent**를 선택합니다. 2. **TriggerComponent**의 콘텍스트 메뉴를 열고 **Extend**를 클릭합니다. 3. 확장한 스크립트 이름을 변경하고, 아바타와 부딪힐 엔티티에 컴포넌트를 추가합니 [chunk_id] | Guides:543:1
[task] | knowledge_list [title] | 아바타 표정 바꾸기 [category] | Guides [rephrased] | - `AvatarRendererComponent` 컴포넌트의 `PlayEmotion` 메서드를 호출하여 플레이어 아바타의 표정을 변경할 수 있습니다. - 시스템은 총 22가지의 표정(Emotion)을 제공하며, 각 표정은 `Hit`, `Smile`, `Troubled`, `Cry`, `Angry`, `Bewildered`, `Stunned`, `Vomit`, `Oops`, `Cheers`, `Chu`, `Wink`, `Pain`, `Glitter`, `Despair`, `Love`, `Shine`, `Blaze`, `Hum`, `B [original] | # 학습 과정 소개 AvatarRendererComponent의 `PlayEmotion`을 사용해 플레이어 아바타의 표정을 바꿀 수 있습니다. 특정 입력 키와 표정을 연결 지어 생동감 있게 감정을 표현할 수도 있고, 몬스터에게 맞았을 때 특정 표정을 재생시킬 수도 있습니다. 적극적으로 사용해 유저들끼리의 활발하고 쉬운 의사소통을 할 수 있게 도와주세요. # 표정 종류 총 22가지의 표정을 제공합니다. 표정은 얼굴마다 다르게 나타나므로 크리에이터가 설정한 얼굴에 따라 가이드의 표정과 다를 수 있습니다 | 표정 | key | 예 [chunk_id] | Guides:544:0
[task] | distill [title] | 아바타의 외형 변경과 활용 [category] | Guides [rephrased] | # 아바타 외형 변경과 활용 **AvatarRendererComponent**와 **CostumeManagerComponent**를 사용하여 트리거 충돌 시 아바타의 색상이나 의상을 변경합니다. 두 경우 모두 `TriggerComponent`를 확장(Extend)하여 `OnEnterTriggerBody` 이벤트 핸들러를 오버라이드하는 방식입니다. ## 1. 아바타 색상 변경 충돌 대상에 `AvatarRendererComponent`가 없으면 처리가 중단됩니다. `SetColor(r, g, b, a)`를 호출하여 색을 변경합니다 [original] | **AvatarRendererComponent**의 `SetColor` 함수와 **확장한 TriggerComponent**를 사용해 특정 엔티티와 유저가 닿으면(충돌하면) 유저가 빨간색으로 변하게 합니다. 1. **BaseEnvironment - NativeScripts - Component - TriggerComponent**를 선택합니다. 2. **TriggerComponent**의 콘텍스트 메뉴를 열고 **Extend**를 클릭합니다. 3. 확장한 스크립트 이름을 변경하고, 아바타와 부딪힐 엔티티에 컴포넌트를 추가합니 [chunk_id] | Guides:543:1
[task] | distill [title] | 아바타의 외형 변경과 활용 [category] | Guides [rephrased] | **AvatarRendererComponent**와 **CostumeManagerComponent**를 활용하여 몬스터, 포탈, NPC 등 다양한 엔티티의 외형을 아바타로 변경할 수 있습니다. ### 필수 컴포넌트 아바타 엔티티 생성 시 아래 3가지 컴포넌트는 필수로 포함해야 합니다. 1. `TransformComponent` 2. `AvatarRendererComponent` 3. `CostumeManagerComponent` 기타 네이티브 또는 커스텀 컴포넌트는 필요에 따라 추가할 수 있습니다. ### 아바타 모양 포탈 만 [original] | **AvatarRendererComponent**와 **CostumeManagerComponent**를 활용해 새로운 아바타를 만들어 사용할 수 있습니다. 몬스터, 포탈, NPC 혹은 크리에이터만의 특별한 엔티티로 제작할 수 있습니다. 이때 **TransformComponent, AvatarRendererComponent, CostumeManagerComponent** 총 3가지는 필수 컴포넌트입니다. 필수 컴포넌트와 더불어 다른 네이티브 컴포넌트를 추가하거나, 크리에이터가 제작한 새로운 컴포넌트를 추가해 활용합니다. #### 아 [chunk_id] | Guides:543:2
[task] | wikipedia [title] | 인스턴스 맵 만들기 [category] | Guides [rephrased] | **게임 로직 인스턴스 맵 만들기** 게임 로직 인스턴스 맵에서 유저의 준비(Ready) 상태 관리를 구현하기 위해 `ReadyButton` 스크립트 컴포넌트와 `Player` 스크립트 컴포넌트를 각각 UI 버튼과 플레이러 엔티티에 적용해야 합니다. 이 구성은 클라이언트에서 유저의 입력을 처리하고, 서버로 준비 상태 변경 이벤트를 전송하며, 서버에서 해당 상태를 동기화하여 관리하는 흐름을 따릅니다. **ReadyButton 스크립트 컴포넌트** `ReadyButton` 스크립트 컴포넌트는 `Ready UI 버튼`에 추가되며, [original] | 3. **ReadyButton** 스크립트 컴포넌트를 생성하고 **Ready UI 버튼**에 추가합니다. 유저가 준비 상태가 되면 서버에 해당 유저가 준비되었다는 정보를 보내줍니다. ```lua Property: [None] boolean isReady = false Event Handler: [client only] [Entity: UIButton(/ui/DefaultGroup/UIButton)] HandleButtonClickEvent(ButtonClickEvent e [chunk_id] | Guides:540:3
[task] | distill [title] | 아바타 표정 바꾸기 [category] | Guides [rephrased] | # 아바타 표정 바꾸기 `AvatarRendererComponent`의 `PlayEmotion` 메서드를 호출하여 플레이어 아바타의 표정을 변경합니다. ## 표정 종류 (22종) 크리에이터가 설정한 얼굴에 따라 실제 표현은 다를 수 있습니다. | 표정 | key | | :--- | :--- | | 맞기 | `Hit` | | 웃음 | `Smile` | | 난처 | `Troubled` | | 울음 | `Cry` | | 분노 | `Angry` | | 당황 | `Bewildered` | | 곤란 | `Stunned` | | 토 | [original] | # 학습 과정 소개 AvatarRendererComponent의 `PlayEmotion`을 사용해 플레이어 아바타의 표정을 바꿀 수 있습니다. 특정 입력 키와 표정을 연결 지어 생동감 있게 감정을 표현할 수도 있고, 몬스터에게 맞았을 때 특정 표정을 재생시킬 수도 있습니다. 적극적으로 사용해 유저들끼리의 활발하고 쉬운 의사소통을 할 수 있게 도와주세요. # 표정 종류 총 22가지의 표정을 제공합니다. 표정은 얼굴마다 다르게 나타나므로 크리에이터가 설정한 얼굴에 따라 가이드의 표정과 다를 수 있습니다 | 표정 | key | 예 [chunk_id] | Guides:544:0
[task] | wikipedia [title] | 아바타의 외형 변경과 활용 [category] | Guides [rephrased] | **아바타 외형 변경 및 활용** 메이플스토리 월드에서는 `AvatarRendererComponent`와 `CostumeManagerComponent`를 조합하여 새로운 외형의 아바타를 생성하고 이를 다양한 엔티티에 적용할 수 있습니다. 이러한 아바타는 몬스터, 포탈, NPC 등 게임 내 표준 객체뿐만 아니라 크리에이터가 독자적으로 설계한 특수 엔티티로도 제작 가능합니다. 아바타 기반 엔티티를 생성할 때 `TransformComponent`, `AvatarRendererComponent`, `CostumeManagerCompone [original] | **AvatarRendererComponent**와 **CostumeManagerComponent**를 활용해 새로운 아바타를 만들어 사용할 수 있습니다. 몬스터, 포탈, NPC 혹은 크리에이터만의 특별한 엔티티로 제작할 수 있습니다. 이때 **TransformComponent, AvatarRendererComponent, CostumeManagerComponent** 총 3가지는 필수 컴포넌트입니다. 필수 컴포넌트와 더불어 다른 네이티브 컴포넌트를 추가하거나, 크리에이터가 제작한 새로운 컴포넌트를 추가해 활용합니다. #### 아 [chunk_id] | Guides:543:2
[task] | extract_knowledge [title] | 인스턴스 맵 만들기 [category] | Guides [rephrased] | # 게임 로직 인스턴스 맵: Ready 시스템 구현 ## 1. 개념 설명 게임 로직 인스턴스 맵에서 플레이어가 게임 시작을 준비하는 상태를 관리하기 위해 **ReadyButton**과 **Player** 스크립트 컴포넌트를 사용한다. - **ReadyButton**: 클라이언트 측 UI 버튼으로, 사용자가 준비 상태를 토글(켜기/끄기)할 때 서버에 해당 상태를 전달한다. - **Player**: 서버 측 플레이어 엔티티에 적용되어, 각 유저의 `isReady` 상태를 저장하고 관리한다. ## 2. API 사용법 ### Read [original] | 3. **ReadyButton** 스크립트 컴포넌트를 생성하고 **Ready UI 버튼**에 추가합니다. 유저가 준비 상태가 되면 서버에 해당 유저가 준비되었다는 정보를 보내줍니다. ```lua Property: [None] boolean isReady = false Event Handler: [client only] [Entity: UIButton(/ui/DefaultGroup/UIButton)] HandleButtonClickEvent(ButtonClickEvent e [chunk_id] | Guides:540:3
[task] | diverse_qa [title] | 아바타의 외형 변경과 활용 [category] | Guides [rephrased] | 질문: 아바타의 외형을 빨간색으로 변경하기 위해 어떤 컴포넌트와 함수를 사용하나요? 답변: **AvatarRendererComponent**의 `SetColor` 함수와 **TriggerComponent**를 사용합니다. 질문: `TriggerComponent`를 확장(Extend)하여 `OnEnterTriggerBody` 함수를 작성할 때, 기존 로직을 유지하기 위해 함수 본문 맨 위에 반드시 작성해야 하는 코드는 무엇인가요? 답변: `__base:OnEnterTriggerBody(enterEvent)`를 작성해야 합니다. 질 [original] | **AvatarRendererComponent**의 `SetColor` 함수와 **확장한 TriggerComponent**를 사용해 특정 엔티티와 유저가 닿으면(충돌하면) 유저가 빨간색으로 변하게 합니다. 1. **BaseEnvironment - NativeScripts - Component - TriggerComponent**를 선택합니다. 2. **TriggerComponent**의 콘텍스트 메뉴를 열고 **Extend**를 클릭합니다. 3. 확장한 스크립트 이름을 변경하고, 아바타와 부딪힐 엔티티에 컴포넌트를 추가합니 [chunk_id] | Guides:543:1
[task] | extract_knowledge [title] | 인스턴스 맵 만들기 [category] | Guides [rephrased] | # 게임 로직 인스턴스 맵 만들기 ## 개념 설명 게임 로직 인스턴스 맵(Instance Room)은 특정 조건을 충족한 유저들을 그룹으로 묶어 새로운 룸으로 이동시키는 시스템입니다. 크리에이터의 기획에 따라 이동 조건이 달라질 수 있으며, 본 절에서는 **'Ready' 버튼을 3명 이상의 유저가 누르면** 새로운 인스턴스 룸으로 이동시키는 시나리오를 다룹니다. 이 로직은 `GameManager` 스크립트 컴포넌트를 통해 구현됩니다. `OnUpdate` 메서드에서 주기적으로 유저의 Ready 상태를 확인하고, 설정된 인원(`pl [original] | 게임이 진행될 인스턴스 룸에 입장할 수 있는 유저를 정하는 조건을 만들어 유저를 이동시켜봅시다. 조건은 크리에이터의 기획에 따라 달라질 수 있습니다. 예시는 **'Ready' 버튼을 3명 이상의 유저가 누르면** 새로운 인스턴스 룸으로 이동시킵니다. 1. **GameManager 스크립트 컴포넌트**에 주기적으로 유저의 Ready 상태를 확인해, 인스턴스 룸으로 이동시키는 스크립트를 작성합니다. ```lua Property: [None] number checkReadyPlayerTimer = 0 [chunk_id] | Guides:540:2
[task] | wikipedia [title] | 아바타 표정 바꾸기 [category] | Guides [rephrased] | 아바타 표정 변경 기능은 `AvatarRendererComponent`의 `PlayEmotion` 메서드를 통해 구현됩니다. 이 기능을 활용하면 플레이어 아바타의 표정을 제어할 수 있으며, 특정 입력 키를 표정과 연결하여 감정을 생동감 있게 표현하거나, 몬스터에게 공격을 받았을 때 특정 표정을 자동 재생시키는 등의 다양한 상호작용을 설계할 수 있습니다. 이를 통해 유저 간의 활발하고 직관적인 의사소통을 촉진하는 데 기여할 수 있습니다. 게임에서는 총 22종의 표정을 제공합니다. 단, 표정은 적용된 얼굴 모델에 따라 시각적 차이가 [original] | # 학습 과정 소개 AvatarRendererComponent의 `PlayEmotion`을 사용해 플레이어 아바타의 표정을 바꿀 수 있습니다. 특정 입력 키와 표정을 연결 지어 생동감 있게 감정을 표현할 수도 있고, 몬스터에게 맞았을 때 특정 표정을 재생시킬 수도 있습니다. 적극적으로 사용해 유저들끼리의 활발하고 쉬운 의사소통을 할 수 있게 도와주세요. # 표정 종류 총 22가지의 표정을 제공합니다. 표정은 얼굴마다 다르게 나타나므로 크리에이터가 설정한 얼굴에 따라 가이드의 표정과 다를 수 있습니다 | 표정 | key | 예 [chunk_id] | Guides:544:0
[task] | distill [title] | 아바타 표정 바꾸기 [category] | Guides [rephrased] | **아바타 표정 변경** 숫자키 1~5 입력 시 5초간 지정된 표정을 재생합니다. ```lua Method: [server] void Emote (number key, string userId) { local avatar = _UserService:GetUserEntityByUserId(userId).AvatarRendererComponent if key == 1 then avatar:PlayEmotion(EmotionalType.Angry, 5) elseif key == 2 then [original] | 키보드의 숫자키를 1부터 5까지 누르면 각각 다른 표정이 5초 동안 재생합니다. 1. MyDesk에서 새로운 컴포넌트를 만들고, 스크립트 작성 화면을 엽니다. 2. Function: 옆의 추가 를 눌러 **New**를 선택합니다. 3. 함수 이름을 Emote로 변경하고, 더 보기 를 선택해 **Add Parameter**를 두 번 추가해 매개 변수를 입력합니다. 5. `PlayEmotion`을 이용해 재생할 표정을 작성합니다. 6. Entity Event Handler에 `KeyDownEvent`를 추가하고, 표정 재생을 [chunk_id] | Guides:544:1
[task] | extract_knowledge [title] | 아바타 표정 바꾸기 [category] | Guides [rephrased] | # 아바타 표정 변경 ## 개념 설명 `AvatarRendererComponent`의 `PlayEmotion` 메서드를 사용하면 플레이어 아바타의 얼굴 표정을 변경할 수 있습니다. 이 기능을 통해 특정 입력 키에 표정을 매핑하거나, 몬스터에게 공격을 받은 시점에 특정 표정을 재생하여 캐릭터의 감정을 시각적으로 표현할 수 있습니다. 시스템은 총 22가지의 표정을 지원합니다. 주의할 점은 표정 애니메이션이 적용되는 얼굴 모델에 따라 시각적인 차이가 발생할 수 있다는 것입니다. 즉, 크리에이터가 설정한 얼굴에 따라 동일한 `key` [original] | # 학습 과정 소개 AvatarRendererComponent의 `PlayEmotion`을 사용해 플레이어 아바타의 표정을 바꿀 수 있습니다. 특정 입력 키와 표정을 연결 지어 생동감 있게 감정을 표현할 수도 있고, 몬스터에게 맞았을 때 특정 표정을 재생시킬 수도 있습니다. 적극적으로 사용해 유저들끼리의 활발하고 쉬운 의사소통을 할 수 있게 도와주세요. # 표정 종류 총 22가지의 표정을 제공합니다. 표정은 얼굴마다 다르게 나타나므로 크리에이터가 설정한 얼굴에 따라 가이드의 표정과 다를 수 있습니다 | 표정 | key | 예 [chunk_id] | Guides:544:0
[task] | knowledge_list [title] | 아바타 표정 바꾸기 [category] | Guides [rephrased] | 1. `UserService`의 `GetUserEntityByUserId(userId)` 메서드를 호출하면 지정된 `userId`에 해당하는 유저의 엔티티(Entity)를 반환하며, 이 메서드는 서버에서 사용 가능합니다. 2. 유저 엔티티의 `AvatarRendererComponent` 컴포넌트를 통해 `PlayEmotion(emotionalType, duration)` 메서드를 호출하여 특정 표정을 지정된 시간(초) 동안 재생할 수 있으며, 이 동작은 서버에서 수행됩니다. 3. `EmotionalType` 열거형에는 `Angry` [original] | 키보드의 숫자키를 1부터 5까지 누르면 각각 다른 표정이 5초 동안 재생합니다. 1. MyDesk에서 새로운 컴포넌트를 만들고, 스크립트 작성 화면을 엽니다. 2. Function: 옆의 추가 를 눌러 **New**를 선택합니다. 3. 함수 이름을 Emote로 변경하고, 더 보기 를 선택해 **Add Parameter**를 두 번 추가해 매개 변수를 입력합니다. 5. `PlayEmotion`을 이용해 재생할 표정을 작성합니다. 6. Entity Event Handler에 `KeyDownEvent`를 추가하고, 표정 재생을 [chunk_id] | Guides:544:1
[task] | extract_knowledge [title] | 아바타의 외형 변경과 활용 [category] | Guides [rephrased] | # 아바타 외형 구성 및 복장 관리 메이플스토리 월드(mLua)에서 플레이어의 아바타 외형은 `DefaultPlayer` 엔티티에 포함된 두 가지 핵심 컴포넌트, `AvatarRendererComponent`와 `CostumeManagerComponent`를 통해 제어됩니다. 본 절에서는 아바타의 구조적 구성, 복장 정보 관리 방식, 그리고 장비 장착 규칙에 대해 설명합니다. ## 1. 아바타 구조 및 컴포넌트 역할 아바타는 `AvatarRoot`를 루트로 하여 `Body`(몸통)와 `Face`(얼굴) 하위 구조로 나뉩니다. [original] | # 학습 과정 소개 아바타 구성을 살펴보고, 아바타의 장비를 교체하는 방법을 알아봅니다. 아바타의 구성을 이해해 새로운 방식으로 아바타를 활용할 수 있습니다. # 아바타 **DefaultPlayer**의 프로퍼티 에디터에는 **AvatarRendererComponent**와 **CostumeManagerComponent**가 있습니다. * **AvatarRendererComponent** * 복장 정보를 가져와 아바타를 그리는(Rendering) 역할을 합니다. * **CostumeManagerComponent** [chunk_id] | Guides:543:0
[task] | distill [title] | ActionSheet로 아바타 애니메이션 손쉽게 제어하기 [category] | Guides [rephrased] | # 아바타 ActionSheet로 애니메이션 제어 `StateToAvatarBodyActionSheet`를 통해 아바타 상태(Key)와 애니메이션(`AvatarBodyActionStateName`)을 매핑하여 애니메이션을 제어합니다. ## 동작 규칙 - **Key**: 아바타 상태 진입 시 애니메이션 재생을 요청하는 트리거. 항상 **대문자**로 입력해야 합니다. - **AvatarBodyActionStateName**: 재생할 애니메이션 이름. - **매핑 필수**: `Key` 없이 `AvatarBodyActionStateNa [original] | # 학습 과정 소개 **StateToAvatarBodyActionSheet**의 아바타 상태를 통해 애니메이션을 손쉽게 제어하는 방법을 소개합니다. # 아바타 애니메이션 아바타가 걸을 때, 앉을 때, 공격할 때, 점프할 때를 유저가 인지하려면 상태에 맞는 애니메이션이 필요합니다. [AvatarStateAnimationComponent](/apiReference/Components/AvatarStateAnimationComponent)의 **StateToAvatarBodyActionSheet**에 **Key**와 **Avatar [chunk_id] | Guides:545:0
[task] | wikipedia [title] | 아바타의 외형 변경과 활용 [category] | Guides [rephrased] | # 아바타의 외형 변경과 활용 메이플스토리 월드에서 아바타의 시각적 외형을 동적으로 변경하거나 의상을 교체하기 위해서는 `AvatarRendererComponent`와 `CostumeManagerComponent`를 활용합니다. 이러한 기능은 주로 `TriggerComponent`를 확장하여 특정 엔티티와의 충돌 이벤트를 감지하는 방식으로 구현됩니다. ## 아바타 색상 변경 `AvatarRendererComponent`의 `SetColor` 함수를 사용하여, 플레이어(아바타)가 특정 엔티티와 충돌했을 때 아바타의 색상을 변경할 [original] | **AvatarRendererComponent**의 `SetColor` 함수와 **확장한 TriggerComponent**를 사용해 특정 엔티티와 유저가 닿으면(충돌하면) 유저가 빨간색으로 변하게 합니다. 1. **BaseEnvironment - NativeScripts - Component - TriggerComponent**를 선택합니다. 2. **TriggerComponent**의 콘텍스트 메뉴를 열고 **Extend**를 클릭합니다. 3. 확장한 스크립트 이름을 변경하고, 아바타와 부딪힐 엔티티에 컴포넌트를 추가합니 [chunk_id] | Guides:543:1
[task] | diverse_qa [title] | 아바타의 외형 변경과 활용 [category] | Guides [rephrased] | 질문: 아바타를 제작할 때 필수로 포함해야 하는 3가지 컴포넌트는 무엇인가요? 답변: 아바타를 제작할 때는 TransformComponent, AvatarRendererComponent, CostumeManagerComponent 총 3가지 컴포넌트가 필수입니다. 질문: CostumeManagerComponent를 통해 아바타의 외형을 변경할 때 필요한 정보의 이름은 무엇인가요? 답변: CostumeManagerComponent에 복장 정보 RUID를 입력해야 합니다. 질문: 아바타 모양의 포탈을 만들 때 추가해야 하는 필수 컴 [original] | **AvatarRendererComponent**와 **CostumeManagerComponent**를 활용해 새로운 아바타를 만들어 사용할 수 있습니다. 몬스터, 포탈, NPC 혹은 크리에이터만의 특별한 엔티티로 제작할 수 있습니다. 이때 **TransformComponent, AvatarRendererComponent, CostumeManagerComponent** 총 3가지는 필수 컴포넌트입니다. 필수 컴포넌트와 더불어 다른 네이티브 컴포넌트를 추가하거나, 크리에이터가 제작한 새로운 컴포넌트를 추가해 활용합니다. #### 아 [chunk_id] | Guides:543:2
[task] | extract_knowledge [title] | 아바타의 외형 변경과 활용 [category] | Guides [rephrased] | # 아바타 엔티티 제작과 외형 변경 ## 1. 개념 설명 메이플스토리 월드에서 아바타 외형이 있는 엔티티(몬스터, 포탈, NPC, 일반 객체 등)를 생성하려면 `AvatarRendererComponent`와 `CostumeManagerComponent`를 조합해야 합니다. 아바타를 렌더링하는 데 필수적인 컴포넌트는 다음 3가지입니다. 1. `TransformComponent`: 엔티티의 위치, 회전, 스케일 정보를 관리합니다. 2. `AvatarRendererComponent`: 아바타 모델을 화면에 렌더링하는 역할을 수행합니 [original] | **AvatarRendererComponent**와 **CostumeManagerComponent**를 활용해 새로운 아바타를 만들어 사용할 수 있습니다. 몬스터, 포탈, NPC 혹은 크리에이터만의 특별한 엔티티로 제작할 수 있습니다. 이때 **TransformComponent, AvatarRendererComponent, CostumeManagerComponent** 총 3가지는 필수 컴포넌트입니다. 필수 컴포넌트와 더불어 다른 네이티브 컴포넌트를 추가하거나, 크리에이터가 제작한 새로운 컴포넌트를 추가해 활용합니다. #### 아 [chunk_id] | Guides:543:2
[task] | diverse_qa [title] | 아바타 표정 바꾸기 [category] | Guides [rephrased] | 질문: 플레이어 아바타의 표정을 바꾸기 위해 사용하는 컴포넌트와 메서드는 무엇인가요? 답변: AvatarRendererComponent의 PlayEmotion 메서드를 사용합니다. 질문: AvatarRendererComponent의 PlayEmotion 메서드를 사용하여 어떤 상황에서 표정을 변경할 수 있나요? 답변: 특정 입력 키와 표정을 연결하여 감정을 표현하거나, 몬스터에게 맞았을 때 특정 표정을 재생시키는 등 다양한 상황에서 사용할 수 있습니다. 질문: 메이플스토리 월드에서 제공하는 아바타 표정의 총 개수는 몇 가지인가요 [original] | # 학습 과정 소개 AvatarRendererComponent의 `PlayEmotion`을 사용해 플레이어 아바타의 표정을 바꿀 수 있습니다. 특정 입력 키와 표정을 연결 지어 생동감 있게 감정을 표현할 수도 있고, 몬스터에게 맞았을 때 특정 표정을 재생시킬 수도 있습니다. 적극적으로 사용해 유저들끼리의 활발하고 쉬운 의사소통을 할 수 있게 도와주세요. # 표정 종류 총 22가지의 표정을 제공합니다. 표정은 얼굴마다 다르게 나타나므로 크리에이터가 설정한 얼굴에 따라 가이드의 표정과 다를 수 있습니다 | 표정 | key | 예 [chunk_id] | Guides:544:0
[task] | knowledge_list [title] | ActionSheet로 아바타 애니메이션 손쉽게 제어하기 [category] | Guides [rephrased] | 제시된 문서 내용에 기반하여 추출한 핵심 사실 목록입니다. 1. `AvatarStateAnimationComponent`의 `StateToAvatarBodyActionSheet` 프로퍼티에는 아바타의 상태(Key)와 해당 상태에 재생될 애니메이션 이름(`AvatarBodyActionStateName`)이 매핑되어 있으며, 이 매핑을 통해 아바타 상태 변경 시 특정 애니메이션을 제어할 수 있습니다. 2. `StateToAvatarBodyActionSheet`의 엔트리에서 `Key` 값이 비어 있고 `AvatarBodyActionSt [original] | # 학습 과정 소개 **StateToAvatarBodyActionSheet**의 아바타 상태를 통해 애니메이션을 손쉽게 제어하는 방법을 소개합니다. # 아바타 애니메이션 아바타가 걸을 때, 앉을 때, 공격할 때, 점프할 때를 유저가 인지하려면 상태에 맞는 애니메이션이 필요합니다. [AvatarStateAnimationComponent](/apiReference/Components/AvatarStateAnimationComponent)의 **StateToAvatarBodyActionSheet**에 **Key**와 **Avatar [chunk_id] | Guides:545:0
[task] | extract_knowledge [title] | 아바타의 외형 변경과 활용 [category] | Guides [rephrased] | # 아바타 외형 변경 및 활용 본 절에서는 **AvatarRendererComponent**와 **CostumeManagerComponent**를 사용하여 플레이어(아바타)의 외형을 동적으로 변경하는 방법을 다룹니다. 주로 **TriggerComponent**를 확장하여 특정 엔티티와의 충돌 시 외형 변경 로직을 실행하는 패턴을 사용합니다. ## 1. 아바타 색상 변경 **AvatarRendererComponent**의 `SetColor` 메서드를 사용하여 아바타의 렌더링 색상을 변경할 수 있습니다. 아래 예제는 **Trigg [original] | **AvatarRendererComponent**의 `SetColor` 함수와 **확장한 TriggerComponent**를 사용해 특정 엔티티와 유저가 닿으면(충돌하면) 유저가 빨간색으로 변하게 합니다. 1. **BaseEnvironment - NativeScripts - Component - TriggerComponent**를 선택합니다. 2. **TriggerComponent**의 콘텍스트 메뉴를 열고 **Extend**를 클릭합니다. 3. 확장한 스크립트 이름을 변경하고, 아바타와 부딪힐 엔티티에 컴포넌트를 추가합니 [chunk_id] | Guides:543:1
[task] | knowledge_list [title] | ActionSheet로 아바타 애니메이션 손쉽게 제어하기 [category] | Guides [rephrased] | * `AvatarStateAnimationComponent`의 `Size` 속성을 15로 설정하면, 기존에 정의된 상태(Key)를 삭제하지 않고 새로운 상태와 액션을 추가할 수 있으며, 이 경우 기존 상태와 새로운 상태 모두 정상적으로 동작합니다. * `AvatarStateAnimationComponent`에 `Key`가 `NEW_ATTACK`, `NEW_DEAD`, `NEW_JUMP`, `NEW_CROUCH`인 항목과 각각 `AvatarBodyActionStateName`이 `attack`, `dead`, `fall`, ` [original] | 새로운 상태(Key)를 추가하고, 애니메이션을 지정할 수 있습니다. 기존의 키를 삭제하지 않고 새로운 상태와 액션을 추가하면 두 상태 모두 동작합니다. 숫자 6, 7, 8, 9를 눌렀을 때 특정 애니메이션이 재생되게 만들어봅시다. 1. **Workspace - DefaultPlayer - AvatarStateAnimationComponent**의 **Size**를 **15**로 변경합니다. 2. 추가한 칸에 새로운 **Key**와 **AvatarBodyActionStateName**를 입력합니다. | Key | [chunk_id] | Guides:545:1
[task] | wikipedia [title] | 아바타 표정 바꾸기 [category] | Guides [rephrased] | # 아바타 표정 바꾸기 이 가이드는 메이플스토리 월드 스크립트에서 키보드의 숫자키 1부터 5를 입력하면 각각 다른 아바타 표정이 5초 동안 재생되도록 설정하는 방법을 설명합니다. ## 구현 방법 MyDesk에서 새로운 컴포넌트를 생성하고 스크립트 작성 화면을 엽니다. Function: 영역 옆의 추가 버튼을 눌러 **New**를 선택하여 함수를 생성한 뒤, 함수 이름을 `Emote`로 변경합니다. 이후 더 보기 메뉴에서 **Add Parameter**를 두 번 선택하여 매개변수로 `number` 타입의 `key`와 `strin [original] | 키보드의 숫자키를 1부터 5까지 누르면 각각 다른 표정이 5초 동안 재생합니다. 1. MyDesk에서 새로운 컴포넌트를 만들고, 스크립트 작성 화면을 엽니다. 2. Function: 옆의 추가 를 눌러 **New**를 선택합니다. 3. 함수 이름을 Emote로 변경하고, 더 보기 를 선택해 **Add Parameter**를 두 번 추가해 매개 변수를 입력합니다. 5. `PlayEmotion`을 이용해 재생할 표정을 작성합니다. 6. Entity Event Handler에 `KeyDownEvent`를 추가하고, 표정 재생을 [chunk_id] | Guides:544:1
[task] | distill [title] | ActionSheet로 아바타 애니메이션 손쉽게 제어하기 [category] | Guides [rephrased] | # 아바타 ActionSheet로 애니메이션 제어 `AvatarStateAnimationComponent`의 `Size`를 확장하고, 새로운 `Key`와 `AvatarBodyActionStateName`을 매핑하여 추가 상태를 정의합니다. 기존 키를 삭제하지 않고 추가하면 신규/기존 상태가 동시에 동작합니다. ### 1. 상태 정의 (UI 설정) 1. `DefaultPlayer`의 `AvatarStateAnimationComponent` `Size`를 15로 변경. 2. 아래 표의 값으로 새로운 키를 입력합니다. | Key | [original] | 새로운 상태(Key)를 추가하고, 애니메이션을 지정할 수 있습니다. 기존의 키를 삭제하지 않고 새로운 상태와 액션을 추가하면 두 상태 모두 동작합니다. 숫자 6, 7, 8, 9를 눌렀을 때 특정 애니메이션이 재생되게 만들어봅시다. 1. **Workspace - DefaultPlayer - AvatarStateAnimationComponent**의 **Size**를 **15**로 변경합니다. 2. 추가한 칸에 새로운 **Key**와 **AvatarBodyActionStateName**를 입력합니다. | Key | [chunk_id] | Guides:545:1
[task] | distill [title] | MovementComponent를 활용한 엔티티의 이동 제어 [category] | Guides [rephrased] | # MovementComponent `MovementComponent`는 캐릭터의 이동 속도 및 점프력 설정, 강제 점프/이동/정지 기능을 제공합니다. 엔티티에 `RigidbodyComponent` 포함 여부를 자동 감지하여 해당 컴포넌트 또는 `TransformComponent`를 제어하므로, 개발자가 물리 컴포넌트 상태를 직접 체크할 필요가 없습니다. `KinematicbodyComponent`와 `SideviewbodyComponent`도 동일하게 제어 가능합니다. ## 플레이어 이동 ### 이동 속도 설정 플레이어 엔티 [original] | # 학습 과정 소개 이번 과정에서는 점프, 플레이어 이동 및 엔티티 좌표 설정 등 MovementComponent가 제공하는 주요 기능들과 MovementComponent의 기본 작동 방식에 대해 알아봅니다. # MovementComponent 소개 **MovementComponent**는 캐릭터의 이동속도와 점프력 설정은 물론 RigidbodyComponent가 포함된 엔티티를 강제로 점프시키거나 이동 또는 정지시킬 수 있는 여러 기능을 제공합니다. 스크립트 컴포넌트를 통해 TransformComponent를 제어하여 동적으 [chunk_id] | Guides:546:0
[task] | distill [title] | MovementComponent를 활용한 엔티티의 이동 제어 [category] | Guides [rephrased] | **MovementComponent: SetPosition** * **시그니처**: `SetPosition(Vector2 position)` * **동작 규칙**: * 기본적으로 `TransformComponent.Position`을 설정합니다. * 엔티티에 `RigidbodyComponent`가 존재하면 해당 컴포넌트를 통해 좌표를 설정합니다. * **주의사항**: 매개변수는 `Vector2` 타입이며, 해당 좌표로 즉시 이동합니다. ```lua [server only] void OnUpdate [original] | MovementComponent에서는 SetPosition 함수를 통해 엔티티의 좌표를 설정합니다. `SetPosition()`함수는 기본적으로 TransformComponent의 Position을 설정하지만, RigidbodyComponent가 엔티티에 포함되어 있을 경우 RigidbodyComponent를 통해 Position을 설정합니다. 매개 변수로 Vector2 값을 받으며, 이 값에 해당하는 좌표로 엔티티가 이동합니다. ```lua [server only] void OnUpdate(number delta) { l [chunk_id] | Guides:546:2
[task] | knowledge_list [title] | MovementComponent를 활용한 엔티티의 이동 제어 [category] | Guides [rephrased] | 1. `MovementComponent`는 캐릭터의 이동속도와 점프력 설정, `RigidbodyComponent`가 포함된 엔티티의 강제 점프·이동·정지 제어를 제공하는 컴포넌트입니다. 2. `MovementComponent`는 엔티티에 `RigidbodyComponent`가 존재하는지 자동으로 체크하여 `TransformComponent` 또는 `RigidbodyComponent` 중 적절한 것을 제어함으로써, 제작자가 수동으로 체크하지 않아도 엔티티를 의도대로 이동시킬 수 있게 합니다. 3. `MovementComponent`는 [original] | # 학습 과정 소개 이번 과정에서는 점프, 플레이어 이동 및 엔티티 좌표 설정 등 MovementComponent가 제공하는 주요 기능들과 MovementComponent의 기본 작동 방식에 대해 알아봅니다. # MovementComponent 소개 **MovementComponent**는 캐릭터의 이동속도와 점프력 설정은 물론 RigidbodyComponent가 포함된 엔티티를 강제로 점프시키거나 이동 또는 정지시킬 수 있는 여러 기능을 제공합니다. 스크립트 컴포넌트를 통해 TransformComponent를 제어하여 동적으 [chunk_id] | Guides:546:0