[task] | diverse_qa [title] | RectTileMap에서 캐릭터 이동 제어 [category] | Guides [rephrased] | 질문: RectTileMap에서 캐릭터 이동 제어를 위해 타일맵 모드를 어떻게 설정해야 하나요? 답변: 타일맵 모드를 RectTile로 설정해야 합니다. 질문: BnB 타일 셋을 생성할 때 선택해야 하는 템플릿의 이름은 무엇인가요? 답변: Create TileSet From Template - BnB 타일 셋을 선택해야 합니다. 질문: 타일 속성 편집 모드에서 초록색 화살표 아이콘과 빨간색 화살표 아이콘은 각각 무엇을 의미하나요? 답변: 초록색 화살표 아이콘은 이동 가능 타일, 빨간색 화살표 아이콘은 이동 불가 타일을 나타냅니다 [original] | 밟으면 속도가 증가하는 타일을 만들어 봅시다. 1. 타일맵 모드를 RectTile로 설정합니다. 2. 타일 셋 팔레트 좌측 상단의 **[+]** 버튼을 누른 뒤, **Create TileSet From Template - BnB** 타일 셋을 선택합니다. 3. 타일 셋의 이름을 **BnB TileSet**으로 설정합니다. 4. 타일 셋 팔레트 우측 상단의 편집 버튼을 눌러 타일 속성 편집 모드로 들어갑니다. 5. 편집 대상에서 **이동 가능 여부**를 [chunk_id] | Guides:748:1
[task] | extract_knowledge [title] | RectTileMap에서 캐릭터 이동 제어 [category] | Guides [rephrased] | # RectTileMap에서 KinematicbodyComponent를 활용한 캐릭터 이동 제어 ## 1. 개념 설명 `RectTileMap` 환경에서 캐릭터의 2차원 평면 이동 및 점프 동작은 `KinematicbodyComponent`를 통해 제어됩니다. 이 컴포넌트는 캐릭터의 물리 이동(이동, 점프)과 시각적 요소(그림자)를 처리하며, 타일 맵과의 충돌 처리를 포함합니다. 주요 기능은 다음과 같습니다: - **이동 제어**: `SpeedFactor`를 통해 X, Y 축 이동 속력을 조절합니다. - **점프 제어**: `J [original] | # 학습 과정 소개 RectTileMap에서는 KinematicbodyComponent로 캐릭터의 이동을 제어합니다. 크리에이터는 KinematicbodyComponent를 통해 캐릭터를 2차원 평면에서 자유롭게 움직이고 점프하게 할 수 있습니다. 또한 그림자를 그릴 수도 있습니다. 이번 시간에는 KinematicbodyComponent에 대해 알아보고 간단한 예제를 통해 활용법을 살펴봅시다. ##### 참고 API Reference [KinematicbodyComponent](/apiReference/Components/Ki [chunk_id] | Guides:748:0
[task] | extract_knowledge [title] | 다양한 선 그리기 [category] | Guides [rephrased] | # 객체 표현: 다양한 선 그리기 ## 개념 설명 mLua 환경에서 객체 간 연결이나 시각적 표시를 위해 선을 그릴 때, `LineRendererComponent`와 머티리얼(Material)을 조합하여 사용합니다. 이 방식은 `SpritePattern` 셰이더를 기반으로 하여, 지정된 스프라이트 이미지를 선의 표면으로 채워 다양한 형태의 선을 표현할 수 있게 합니다. 선 렌더링에 사용되는 스프라이트는 유저가 직접 업로드한 리소스나 MapleStory Worlds(MSW) 기본 리소스를 복제하여 만든 리소스를 사용할 수 있습니다 [original] | 머티리얼의 SpritePattern 셰이더를 활용해 선을 그릴 수 있습니다. 머티리얼 활용 방법은 [머티리얼 활용하기](docs/?postId=828)를 참고하세요. LineRendererComponent에 활용하는 스프라이트로는 유저 리소스와 복제한 MSW 리소스를 사용할 수 있습니다. MSW 리소스 복제 방법은 [리소스 관리](docs/?postId=690)를 참고하세요. 1. **Workspace - MyDesk - Create Material**을 선택해 새로운 Material을 만듭니다. 2. 생성한 머티리얼의 프로퍼티 [chunk_id] | Guides:749:1
[task] | diverse_qa [title] | 다양한 선 그리기 [category] | Guides [rephrased] | 질문: 머티리얼의 어떤 셰이더를 활용하여 선을 그릴 수 있나요? 답변: SpritePattern 셰이더를 활용하여 선을 그릴 수 있습니다. 질문: LineRendererComponent에 활용할 수 있는 스프라이트 리소스의 종류는 무엇인가요? 답변: 유저 리소스와 복제한 MSW 리소스를 사용할 수 있습니다. 질문: 새로운 Material을 생성하기 위해 워크스페이스에서 어떤 경로를 따라가야 하나요? 답변: Workspace - MyDesk - Create Material 경로를 선택해 새로운 Material을 만듭니다. 질문: [original] | 머티리얼의 SpritePattern 셰이더를 활용해 선을 그릴 수 있습니다. 머티리얼 활용 방법은 [머티리얼 활용하기](docs/?postId=828)를 참고하세요. LineRendererComponent에 활용하는 스프라이트로는 유저 리소스와 복제한 MSW 리소스를 사용할 수 있습니다. MSW 리소스 복제 방법은 [리소스 관리](docs/?postId=690)를 참고하세요. 1. **Workspace - MyDesk - Create Material**을 선택해 새로운 Material을 만듭니다. 2. 생성한 머티리얼의 프로퍼티 [chunk_id] | Guides:749:1
[task] | extract_knowledge [title] | RectTileMap에서 캐릭터 이동 제어 [category] | Guides [rephrased] | # RectTileMap에서의 캐릭터 이동 제어: 장애물 타일 처리 ## 개념 설명 `RectTileMap` 환경에서 캐릭터가 특정 타일(예: 장애물) 위에 위치하는지 감지하고, 그에 따라 캐릭터의 상태(예: 사망 처리)를 변경하는 로직을 구현할 수 있습니다. 이 과정은 캐릭터의 운동학적 상태(`KinematicbodyComponent`)와 타일 진입 이벤트(`RectTileEnterEvent`)를 결합하여 이루어집니다. ## API 사용법 ### 주요 컴포넌트 및 메서드 - **`KinematicbodyComponent`** [original] | ## 장애물 타일 피하기 점프로만 넘어갈 수 있는 장애물을 만들고, 장애물을 밟으면 캐릭터가 죽도록 설정해 봅시다. 1. 맵에 Trap 타일을 배치합니다. 2. **MyDesk** 아래에 새 스크립트 컴포넌트 **CheckTrapTile**를 만든 뒤, **DefaultPlayer**에 추가합니다. 3. 아래와 같이 **CheckTrapTile**을 작성합니다. ```lua Property: [None] string CurrentTileName = "" Met [chunk_id] | Guides:748:2
[task] | distill [title] | 다양한 선 그리기 [category] | Guides [rephrased] | **TrailSpawner 컴포넌트 작성 가이드** 1. **컴포넌트 생성**: `DefaultPlayer`에 `TrailSpawner` 컴포넌트를 추가합니다. 2. **핵심 로직**: `SpawnService`를 이용해 트레일 엔티티를 스폰하고, `TrailDrawer`를 초기화하여 움직임에 따른 선 생성을 구현합니다. 3. **주의사항**: * `SpawnByModelId`의 첫 번째 인자로 사용할 **트레일 모델 ID는 본인 프로젝트의 실제 ID**를 입력해야 합니다. * 문서 예시의 ID(`8ae [original] | 3. 새로운 TrailSpawner 컴포넌트를 생성하고, DefaultPlayer에 추가합니다. 4. TrailSpawner 컴포넌트에 움직임에 따라 선이 스폰되도록 `SpawnService`를 활용해 아래와 같이 작성합니다. SpawnByModelId에는 Trail의 ID를 입력해야합니다. 예시의 ID를 사용하면 정상 동작하지 않으므로 주의해 작성하세요. ```lua Property: [None] Entity TrailEntity = nil Method: [client [chunk_id] | Guides:749:3
[task] | knowledge_list [title] | 다양한 선 그리기 [category] | Guides [rephrased] | 1. `TrailSpawner` 컴포넌트를 생성하여 `DefaultPlayer` 엔티티에 추가해야 합니다. 2. `TrailSpawner` 컴포넌트 내 `[None]` 속성으로 `Entity` 타입의 `TrailEntity`를 정의하며, 초기값은 `nil`입니다. 3. `[client only]` 실행 공간의 `OnBeginPlay()` 메서드에서 `_SpawnService:SpawnByModelId()` 메서드를 호출하여 트레일 엔티티를 생성합니다. 4. `_SpawnService:SpawnByModelId()` 메서드의 매개변수 [original] | 3. 새로운 TrailSpawner 컴포넌트를 생성하고, DefaultPlayer에 추가합니다. 4. TrailSpawner 컴포넌트에 움직임에 따라 선이 스폰되도록 `SpawnService`를 활용해 아래와 같이 작성합니다. SpawnByModelId에는 Trail의 ID를 입력해야합니다. 예시의 ID를 사용하면 정상 동작하지 않으므로 주의해 작성하세요. ```lua Property: [None] Entity TrailEntity = nil Method: [client [chunk_id] | Guides:749:3
[task] | wikipedia [title] | RectTileMap에서 캐릭터 이동 제어 [category] | Guides [rephrased] | # RectTileMap에서 캐릭터 이동 제어 본 문서는 메이플스토리 월드(MapleStory Worlds)의 RectTileMap 환경을 활용하여, 캐릭터가 특정 타일을 밟으면 이동 속도가 증가하는 효과를 구현하는 방법을 다룹니다. 이 예제에서는 'Buff' 타일과 'Trap' 타일을 포함한 커스텀 타일셋을 생성하고, 스크립트 컴포넌트를 통해 타일 진입 이벤트를 처리하는 과정을 설명합니다. ## 1. 기본 타일맵 설정 및 지형 구성 RectTileMap 기반의 맵을 구성하기 위한 첫 단계로, 에디터의 타일맵 모드를 **Rec [original] | 밟으면 속도가 증가하는 타일을 만들어 봅시다. 1. 타일맵 모드를 RectTile로 설정합니다. 2. 타일 셋 팔레트 좌측 상단의 **[+]** 버튼을 누른 뒤, **Create TileSet From Template - BnB** 타일 셋을 선택합니다. 3. 타일 셋의 이름을 **BnB TileSet**으로 설정합니다. 4. 타일 셋 팔레트 우측 상단의 편집 버튼을 눌러 타일 속성 편집 모드로 들어갑니다. 5. 편집 대상에서 **이동 가능 여부**를 [chunk_id] | Guides:748:1
[task] | wikipedia [title] | 다양한 선 그리기 [category] | Guides [rephrased] | # LineRendererComponent `LineRendererComponent`는 맵 타일(`MapleTile`) 및 직사각형 타일(`RectTile`) 위에 점의 개수를 지정하여 직선과 곡선을 그리는 데 사용되는 컴포넌트입니다. 하나의 `LineRendererComponent`는 하나의 선만 표현할 수 있으므로, 여러 개의 선을 동시에 그리고자 할 경우 복수의 `LineRendererComponent`가 장착된 엔티티를 사용해야 합니다. ## 주요 프로퍼티 `LineRendererComponent`에는 선의 형태와 외관 [original] | # 학습 과정 소개 LineRendererComponent를 활용해 다양한 선을 월드에 자유롭게 그릴 수 있습니다. # LineRendererComponent LineRendererComponent는 점의 개수를 지정해 MapleTile, RectTile 위에서 원하는 직선, 곡선을 그릴 수 있습니다. LineRendererComponent 하나당 하나의 선을 그릴 수 있으므로, 여러 선을 표현하고 싶다면 여러 개의 LineRendererComponent가 포함된 엔티티를 사용해야 합니다. 주요 프로퍼티는 아래와 같습니다. [chunk_id] | Guides:749:0
[task] | wikipedia [title] | 다양한 선 그리기 [category] | Guides [rephrased] | 본 가이드는 메이플스토리 월드에서 객체의 움직임에 따라 선(Trail)을 표현하는 방법을 설명합니다. 이 기능을 구현하기 위해서는 `TrailSpawner` 컴포넌트를 생성하여 기본 플레이어(`DefaultPlayer`) 엔티티에 추가해야 합니다. `TrailSpawner` 컴포넌트에서는 `SpawnService`를 활용하여 움직임에 따라 선이 생성되도록 스크립트를 작성합니다. 이 과정에서 `SpawnByModelId` 메서드의 첫 번째 인수로 사용될 Trail 모델의 고유 식별자(ID)를 입력해야 하며, 문서에 제시된 예시 ID [original] | 3. 새로운 TrailSpawner 컴포넌트를 생성하고, DefaultPlayer에 추가합니다. 4. TrailSpawner 컴포넌트에 움직임에 따라 선이 스폰되도록 `SpawnService`를 활용해 아래와 같이 작성합니다. SpawnByModelId에는 Trail의 ID를 입력해야합니다. 예시의 ID를 사용하면 정상 동작하지 않으므로 주의해 작성하세요. ```lua Property: [None] Entity TrailEntity = nil Method: [client [chunk_id] | Guides:749:3
[task] | distill [title] | 다양한 선 그리기 [category] | Guides [rephrased] | # LineRendererComponent `MapleTile`, `RectTile` 위를 따라 지정한 정점(`Points`)을 연결해 선을 그리는 컴포넌트입니다. **주의**: 컴포넌트 1개당 선 1개만 표현 가능합니다. 여러 선이 필요하면 컴포넌트가 여러 개 포함된 엔티티를 생성하세요. ## 주요 프로퍼티 * **IsSmooth**: `true`이면 부드러운 곡선, `false`이면 날카로운 꺾인 선으로 렌더링합니다. * **Loop**: `true`이면 시작점과 끝점을 이어 닫힌 선(Closed Loop)을 만듭니 [original] | # 학습 과정 소개 LineRendererComponent를 활용해 다양한 선을 월드에 자유롭게 그릴 수 있습니다. # LineRendererComponent LineRendererComponent는 점의 개수를 지정해 MapleTile, RectTile 위에서 원하는 직선, 곡선을 그릴 수 있습니다. LineRendererComponent 하나당 하나의 선을 그릴 수 있으므로, 여러 선을 표현하고 싶다면 여러 개의 LineRendererComponent가 포함된 엔티티를 사용해야 합니다. 주요 프로퍼티는 아래와 같습니다. [chunk_id] | Guides:749:0
[task] | diverse_qa [title] | 다양한 선 그리기 [category] | Guides [rephrased] | 질문: `TrailSpawner` 컴포넌트를 어디에 추가해야 하는가? 답변: `TrailSpawner` 컴포넌트는 `DefaultPlayer`에 추가해야 합니다. 질문: 움직임에 따라 선이 스폰되도록 하기 위해 어떤 서비스를 활용해야 하는가? 답변: `SpawnService`를 활용해야 합니다. 질문: `SpawnByModelId` 함수의 첫 번째 인자로 입력해야 하는 값은 무엇인가? 답변: `Trail`의 ID를 입력해야 합니다. 질문: 문서 예시에 사용된 ID를 그대로 복사하여 사용하면 정상 동작하는가? 답변: 아니요, 예 [original] | 3. 새로운 TrailSpawner 컴포넌트를 생성하고, DefaultPlayer에 추가합니다. 4. TrailSpawner 컴포넌트에 움직임에 따라 선이 스폰되도록 `SpawnService`를 활용해 아래와 같이 작성합니다. SpawnByModelId에는 Trail의 ID를 입력해야합니다. 예시의 ID를 사용하면 정상 동작하지 않으므로 주의해 작성하세요. ```lua Property: [None] Entity TrailEntity = nil Method: [client [chunk_id] | Guides:749:3
[task] | distill [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | # 이동: 메이플 이동 개념 이해하기 ### 수직선 지형 (Vertical Line Terrain) RigidbodyComponent의 `IsBlockvertialLine`을 활성화하면, 지면 발판과 붙어있거나 떨어져 있든 점프로 수직 발판을 통과하지 못하게 됩니다. **특정 레이어만 적용하기** `RigidbodyComponent.IsBlockvertialLine`은 맵 내 **모든** 수직 지형에 적용됩니다. 특정 맵 레이어에만 적용하려면 해당 레이어의 `TileMapComponent.IsVerticalLine`을 활성화해야 [original] | #### 수직선 지형 지면 발판과 붙어있든, 떨어져 있든 점프로 수직 발판을 통과하지 못하게 만들고 싶다면 RigidbodyComponent의 **IsBlockvertialLine**을 활성화합니다. | IsBlockvertialLine활성화 | IsBlockvertialLine비활성화 | | --- | --- | || | ##### 특정 레이어의 수직선 지형만 막기 RigidbodyComponent의 **IsBlockvertialLine**를 활성화하면 맵 내부의 모든 수직 지형을 통과하지 못합니다. 만약 일부 맵 레이어에서 [chunk_id] | Guides:750:1
[task] | distill [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | **RigidbodyComponent** 의 `LayerSettingType` 을 변경하여 메이플스토리 이동 로직을 적용하거나, `SortingLayer` 관계를 조정하여 커스텀 이동을 설정합니다. | LayerSettingType | 동작 규칙 | | :--- | :--- | | **All** | 메이플스토리 기본 이동을 따릅니다.<br>1. 발판 착지 시: 발판의 `SortingLayer` 적용<br>2. 사다리/로프 탑승 시: 탑승한 사다리의 `SortingLayer` 적용 | | **Climbable** | 마지막으로 탑승 [original] | **RigidbodyComponent의 LayerSettingType** 타입을 변경해 메이플스토리 이동을 따르게 설정합니다. 혹은 사다리/로프/발판의 SortingLayer와 RigidbodyComponent를 가진 Entity의 SortingLayer들과의 관계를 변경해 메이플스토리 이동과 다르게 설정할 수 있습니다. 아래와 같이 Layer1에 타일을 그리고, Layer1,2,3,4에 각각 사다리를 배치했을 때 각 타입에 따라 아바타와 사다리의 관계가 어떻게 변하는지 살펴보겠습니다. DefaultPlayer에는 Rigidbod [chunk_id] | Guides:750:2
[task] | knowledge_list [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | 제시된 문서 내용에만 기반하여 핵심 사실을 추출한 목록입니다. * `RigidbodyComponent`의 `IsBlockvertialLine` 프로퍼티를 활성화하면, 지면 발판과 붙어 있거나 떨어져 있는 상태와 무관하게 점프로 수직 발판(수직 지형)을 통과하지 못하게 만듭니다. * `RigidbodyComponent`의 `IsBlockvertialLine` 프로퍼티를 활성화하면 맵 내부의 모든 수직 지형을 통과하지 못하게 되며, 특정 맵 레이어에서만 수직 지형 통과를 막고 싶다면 해당 맵 레이어에 속한 `TileMapCom [original] | #### 수직선 지형 지면 발판과 붙어있든, 떨어져 있든 점프로 수직 발판을 통과하지 못하게 만들고 싶다면 RigidbodyComponent의 **IsBlockvertialLine**을 활성화합니다. | IsBlockvertialLine활성화 | IsBlockvertialLine비활성화 | | --- | --- | || | ##### 특정 레이어의 수직선 지형만 막기 RigidbodyComponent의 **IsBlockvertialLine**를 활성화하면 맵 내부의 모든 수직 지형을 통과하지 못합니다. 만약 일부 맵 레이어에서 [chunk_id] | Guides:750:1
[task] | extract_knowledge [title] | RectTileMap에서 캐릭터 이동 제어 [category] | Guides [rephrased] | # RectTileMap을 이용한 캐릭터 이동 제어 및 속도 버프 적용 본 절에서는 `RectTileMap` 컴포넌트를 활용하여 지형의 이동 가능 여부를 설정하고, 특정 타일(`Buff`)을 밟았을 때 캐릭터의 이동 속도를 변경하는 로직을 구현하는 방법을 다룬다. ## 1. 개념 설명 `RectTileMap`은 정사각형 그리드 기반으로 지형을 구성하는 맵 시스템이다. 이 시스템은 다음과 같은 기능을 제공한다. * **타일 셋(TileSet) 관리**: 여러 개의 타일 셋을 정의하고, 각 타일에 대한 속성(이동 가능 여부, [original] | 밟으면 속도가 증가하는 타일을 만들어 봅시다. 1. 타일맵 모드를 RectTile로 설정합니다. 2. 타일 셋 팔레트 좌측 상단의 **[+]** 버튼을 누른 뒤, **Create TileSet From Template - BnB** 타일 셋을 선택합니다. 3. 타일 셋의 이름을 **BnB TileSet**으로 설정합니다. 4. 타일 셋 팔레트 우측 상단의 편집 버튼을 눌러 타일 속성 편집 모드로 들어갑니다. 5. 편집 대상에서 **이동 가능 여부**를 [chunk_id] | Guides:748:1
[task] | distill [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | # 메이플 이동 개념 (RigidbodyComponent) `RigidbodyComponent`는 메이플스토리식 이동을 구현하는 컴포넌트로, `TileMapComponent`와 결합하여 지형 기반 이동 로직을 처리합니다. 타일 위에서의 이동 상태 관리는 `RigidbodyComponent`가 담당합니다. > **Tip.** 플레이어는 가속도 운동을 하므로 `WalkAcceleration`, `WalkDrag`, `WalkSlant` 등 이동 속성 프로퍼티는 `RigidbodyComponent`와 지형 이동 속성 모두에 영향을 줍 [original] | # 학습 과정 소개 월드 제작에 필수적인 이동 방식 중 메이플스토리 이동 방식을 따르는 RigidbodyComponent 특성을 알아봅시다. 이동은 [메이플 타일 맵 만들기](/docs?postId=747)와 함께 학습하기 권장합니다. # 메이플스토리 이동 방식 RigidbodyComponent는 메이플스토리 이동 방식처럼 이동하고자 할 때 사용합니다. 이동 방식은 지형 종류와 밀접한 연관이 있기에 TileMapComponent를 함께 사용해 메이플스토리식 이동 방식을 만들 수 있습니다. 이때 타일 위에서 이동은 Rigidbo [chunk_id] | Guides:750:0
[task] | knowledge_list [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | * `RigidbodyComponent`의 `LayerSettingType` 프로퍼티 값을 변경하여 캐릭터가 메이플스토리 기본 이동 로직을 따르도록 설정하거나, 사다리·로프·발판의 `SortingLayer`와 `RigidbodyComponent`를 가진 Entity의 `SortingLayer` 관계를 조정하여 비(非)메이플 이동 방식으로 동작하게 만들 수 있습니다. * `All` 타입으로 설정하면 메이플스토리 기본 이동을 따르며, `RigidbodyComponent`가 발판을 밟고 있을 경우 해당 **발판의 `SortingLayer [original] | **RigidbodyComponent의 LayerSettingType** 타입을 변경해 메이플스토리 이동을 따르게 설정합니다. 혹은 사다리/로프/발판의 SortingLayer와 RigidbodyComponent를 가진 Entity의 SortingLayer들과의 관계를 변경해 메이플스토리 이동과 다르게 설정할 수 있습니다. 아래와 같이 Layer1에 타일을 그리고, Layer1,2,3,4에 각각 사다리를 배치했을 때 각 타입에 따라 아바타와 사다리의 관계가 어떻게 변하는지 살펴보겠습니다. DefaultPlayer에는 Rigidbod [chunk_id] | Guides:750:2
[task] | distill [title] | 다양한 선 그리기 [category] | Guides [rephrased] | # 객체 표현 다양한 선 그리기 플레이어의 움직임에 따라 선이 생성되고 시간이 지남에 따라 사라지는 트레일(Trail) 효과를 구현합니다. ## 구성 1. **Trail 모델**: `TransformComponent`, `LineRendererComponent` 추가. 2. **TrailDrawer 컴포넌트**: 아래 코드를 적용하여 Trail 모델에 추가. ## TrailDrawer 컴포넌트 ```lua [None] Vector3 PrevPos = Vector3(0,0,0) [None] number Threshold = 0 [original] | 플레이어를 따라 다니는 모델을 만들어, 플레이어의 움직임을 따라 선이 그려지고, 사라지게 만들어봅시다. 1. Trail 모델을 생성하고, TransformComponent와 LineRendererComponent를 추가합니다. 2. 새로운 TrailDrawer 컴포넌트를 생성하고, Trail 모델에 추가합니다. ```lua [None] Vector3 PrevPos = Vector3(0,0,0) [None] number Threshold = 0.1 [None] number P [chunk_id] | Guides:749:2
[task] | diverse_qa [title] | 다양한 선 그리기 [category] | Guides [rephrased] | 질문: 이 가이드에서 플레이어의 움직임을 따라 선이 그려지는 효과를 만들기 위해 어떤 컴포넌트들을 사용해야 하나요? 답변: Trail 모델에 TransformComponent와 LineRendererComponent를 추가하고, 새로운 TrailDrawer 컴포넌트를 생성하여 추가해야 합니다. 질문: TrailDrawer 컴포넌트의 OnUpdate 메서드가 실행되는 공간은 어디인가요? 답변: [client only] 공간에서 실행됩니다. 질문: TrailDrawer 컴포넌트에서 Target Entity의 현재 위치는 어떤 속성을 [original] | 플레이어를 따라 다니는 모델을 만들어, 플레이어의 움직임을 따라 선이 그려지고, 사라지게 만들어봅시다. 1. Trail 모델을 생성하고, TransformComponent와 LineRendererComponent를 추가합니다. 2. 새로운 TrailDrawer 컴포넌트를 생성하고, Trail 모델에 추가합니다. ```lua [None] Vector3 PrevPos = Vector3(0,0,0) [None] number Threshold = 0.1 [None] number P [chunk_id] | Guides:749:2
[task] | knowledge_list [title] | 다양한 선 그리기 [category] | Guides [rephrased] | * **Trail 모델 구성**: 플레이어를 따라다니며 선을 그리는 Trail 모델에는 `TransformComponent`와 `LineRendererComponent`를 추가해야 합니다. * **TrailDrawer 컴포넌트 속성**: `TrailDrawer` 컴포넌트는 동기화되지 않는 `[None]` 속성으로 `Vector3` 타입의 `PrevPos`, `number` 타입의 `Threshold`(기본값 0.1), `number` 타입의 `PointLife`(기본값 2), `SyncTable<number>` 타입의 `Po [original] | 플레이어를 따라 다니는 모델을 만들어, 플레이어의 움직임을 따라 선이 그려지고, 사라지게 만들어봅시다. 1. Trail 모델을 생성하고, TransformComponent와 LineRendererComponent를 추가합니다. 2. 새로운 TrailDrawer 컴포넌트를 생성하고, Trail 모델에 추가합니다. ```lua [None] Vector3 PrevPos = Vector3(0,0,0) [None] number Threshold = 0.1 [None] number P [chunk_id] | Guides:749:2
[task] | extract_knowledge [title] | 다양한 선 그리기 [category] | Guides [rephrased] | # TrailSpawner를 활용한 움직임 기반 선 스폰 ## 1. 개념 설명 `TrailSpawner` 컴포넌트는 엔티티의 움직임에 따라 선(Trail)이 생성되도록 하는 기능을 제공합니다. 이 컴포넌트는 `SpawnService`를 사용하여 지정된 모델 ID의 엔티티를 스폰하고, 해당 엔티티의 `TrailDrawer` 컴포넌트를 초기화하여 현재 엔티티(`self.Entity`)를 추적하게 만듭니다. ## 2. API 사용법 1. **컴포넌트 생성 및 추가**: `TrailSpawner` 컴포넌트를 새로 생성하고, 적용 [original] | 3. 새로운 TrailSpawner 컴포넌트를 생성하고, DefaultPlayer에 추가합니다. 4. TrailSpawner 컴포넌트에 움직임에 따라 선이 스폰되도록 `SpawnService`를 활용해 아래와 같이 작성합니다. SpawnByModelId에는 Trail의 ID를 입력해야합니다. 예시의 ID를 사용하면 정상 동작하지 않으므로 주의해 작성하세요. ```lua Property: [None] Entity TrailEntity = nil Method: [client [chunk_id] | Guides:749:3
[task] | wikipedia [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | 메이플스토리 월드(MapleStory Worlds)에서 지형과 이동 시스템은 `RigidbodyComponent`와 맵 레이어 설정을 통해 제어됩니다. 특히 수직선 지형의 충돌 처리와 맵 바운더리 설정은 플레이어의 이동 경로와 물리 반응을 결정하는 핵심 요소입니다. ### 수직선 지형 메이플스토리 월드에서는 캐릭터가 점프를 통해 수직 방향으로 배치된 지형(발판)을 통과할 수 있도록 기본 설계되어 있습니다. 만약 지면 발판과 붙어 있든 떨어져 있든 관계없이 점프 시 수직 발판을 통과하지 못하게 막고자 한다면, 해당 엔티티에 부착된 [original] | #### 수직선 지형 지면 발판과 붙어있든, 떨어져 있든 점프로 수직 발판을 통과하지 못하게 만들고 싶다면 RigidbodyComponent의 **IsBlockvertialLine**을 활성화합니다. | IsBlockvertialLine활성화 | IsBlockvertialLine비활성화 | | --- | --- | || | ##### 특정 레이어의 수직선 지형만 막기 RigidbodyComponent의 **IsBlockvertialLine**를 활성화하면 맵 내부의 모든 수직 지형을 통과하지 못합니다. 만약 일부 맵 레이어에서 [chunk_id] | Guides:750:1
[task] | diverse_qa [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | 질문: RigidbodyComponent는 어떤 이동 방식을 따르도록 설계되었나요? 답변: RigidbodyComponent는 메이플스토리 이동 방식처럼 이동하고자 할 때 사용됩니다. 질문: 메이플스토리식 이동 방식을 만들기 위해 RigidbodyComponent와 함께 어떤 컴포넌트를 사용하는 것이 권장되나요? 답변: TileMapComponent를 함께 사용하여 메이플스토리식 이동 방식을 만들 수 있습니다. 질문: 타일 위에서 일어나는 이동은 어떤 컴포넌트에서 관리되나요? 답변: 타일 위에서 이동은 RigidbodyCompo [original] | # 학습 과정 소개 월드 제작에 필수적인 이동 방식 중 메이플스토리 이동 방식을 따르는 RigidbodyComponent 특성을 알아봅시다. 이동은 [메이플 타일 맵 만들기](/docs?postId=747)와 함께 학습하기 권장합니다. # 메이플스토리 이동 방식 RigidbodyComponent는 메이플스토리 이동 방식처럼 이동하고자 할 때 사용합니다. 이동 방식은 지형 종류와 밀접한 연관이 있기에 TileMapComponent를 함께 사용해 메이플스토리식 이동 방식을 만들 수 있습니다. 이때 타일 위에서 이동은 Rigidbo [chunk_id] | Guides:750:0
[task] | wikipedia [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | # 메이플 이동 개념 이해하기 메이플스토리 월드(MapleStory Worlds)에서 캐릭터의 이동 방식은 `RigidbodyComponent`의 `LayerSettingType` 속성을 조정하여 제어할 수 있습니다. 기본적으로 이 값을 변경함으로써 메이플스토리 고유의 이동 로직을 따르도록 설정할 수 있으며, 사다리, 로프, 발판의 `SortingLayer`와 `RigidbodyComponent`를 가진 Entity의 `SortingLayer` 간의 관계를 수정하여 메이플스토리 표준 이동과 다른 동작을 구현할 수도 있습니다. 본 [original] | **RigidbodyComponent의 LayerSettingType** 타입을 변경해 메이플스토리 이동을 따르게 설정합니다. 혹은 사다리/로프/발판의 SortingLayer와 RigidbodyComponent를 가진 Entity의 SortingLayer들과의 관계를 변경해 메이플스토리 이동과 다르게 설정할 수 있습니다. 아래와 같이 Layer1에 타일을 그리고, Layer1,2,3,4에 각각 사다리를 배치했을 때 각 타입에 따라 아바타와 사다리의 관계가 어떻게 변하는지 살펴보겠습니다. DefaultPlayer에는 Rigidbod [chunk_id] | Guides:750:2
[task] | knowledge_list [title] | 충돌 그룹 만들기 [category] | Guides [rephrased] | 1. 충돌 그룹 기능은 메이플스토리 월드의 충돌체를 특정 그룹 단위로 묶어 그룹 간 충돌 발생 여부를 제어하는 기능으로, 기본 충돌 그룹(Dafault, TriggerBox, HitBox)을 포함하여 크리에이터가 최대 15개까지 충돌 그룹을 생성할 수 있습니다. 2. Default 충돌 그룹은 충돌 그룹을 지정하지 않았거나 찾을 수 없을 때 기본으로 지정되는 그룹입니다. 3. TriggerBox 충돌 그룹은 TriggerComponent에 기본으로 지정되는 충돌 그룹입니다. 4. HitBox 충돌 그룹은 HitComponent에 기 [original] | # 학습 과정 소개 충돌 그룹을 만들고, 엔티티끼리의 충돌 여부를 설정하는 방법을 알아봅시다. 충돌 그룹을 사용해 특정 그룹끼리만 충돌할 수 있거나, 충돌을 무시할 수 있게 만들 수 있습니다. # 충돌 그룹 기능 충돌 그룹은 메이플스토리 월드에 있는 여러 가지 충돌체를 특정 그룹 단위로 묶고, 그룹 간에 충돌 발생을 제어할 수 있는 기능입니다. 기본 충돌 그룹은 **Default, TriggerBox, HitBox**가 있으며 크리에이터가 만든 충돌 그룹을 포함해 **최대 15개**까지 만들 수 있습니다. * **Defa [chunk_id] | Guides:754:0
[task] | diverse_qa [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | 질문: RigidbodyComponent에서 점프로 수직 발판을 통과하지 못하게 막으려면 어떤 프로퍼티를 활성화해야 하나요? 답변: RigidbodyComponent의 **IsBlockvertialLine** 프로퍼티를 활성화해야 합니다. 질문: 특정 맵 레이어에서만 수직 지형 통행을 막고 싶을 때 활성화해야 하는 컴포넌트와 프로퍼티는 무엇인가요? 답변: 해당 맵 레이어의 **TileMapComponent**에서 **IsBlockvertialLine** 프로퍼티를 활성화해야 합니다. 질문: RigidbodyComponent의 I [original] | #### 수직선 지형 지면 발판과 붙어있든, 떨어져 있든 점프로 수직 발판을 통과하지 못하게 만들고 싶다면 RigidbodyComponent의 **IsBlockvertialLine**을 활성화합니다. | IsBlockvertialLine활성화 | IsBlockvertialLine비활성화 | | --- | --- | || | ##### 특정 레이어의 수직선 지형만 막기 RigidbodyComponent의 **IsBlockvertialLine**를 활성화하면 맵 내부의 모든 수직 지형을 통과하지 못합니다. 만약 일부 맵 레이어에서 [chunk_id] | Guides:750:1
[task] | knowledge_list [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | 요청하신 문서 내용을 바탕으로 핵심 사실을 API 이름, 매개변수, 반환 타입, 동기화/서버·클라이언트 제약 및 동작 원리를 명시하여 정리한 목록입니다. **참고:** 원문에는 `RigidbodyComponent`의 구체적인 프로퍼티(예: `WalkAcceleration` 등)의 정확한 선언 문법이나 메서드 시그니처가 제공되지 않았으므로, 존재하는 프로퍼티 이름과 컴포넌트 간 상호작용 로직에 초점을 맞춰 사실관계만 추출했습니다. 1. `RigidbodyComponent`는 메이플스토리 스타일의 이동을 구현하기 위해 `TileMa [original] | # 학습 과정 소개 월드 제작에 필수적인 이동 방식 중 메이플스토리 이동 방식을 따르는 RigidbodyComponent 특성을 알아봅시다. 이동은 [메이플 타일 맵 만들기](/docs?postId=747)와 함께 학습하기 권장합니다. # 메이플스토리 이동 방식 RigidbodyComponent는 메이플스토리 이동 방식처럼 이동하고자 할 때 사용합니다. 이동 방식은 지형 종류와 밀접한 연관이 있기에 TileMapComponent를 함께 사용해 메이플스토리식 이동 방식을 만들 수 있습니다. 이때 타일 위에서 이동은 Rigidbo [chunk_id] | Guides:750:0
[task] | distill [title] | 충돌 그룹 만들기 [category] | Guides [rephrased] | # 충돌 그룹 만들기 충돌 그룹은 충돌체를 그룹 단위로 묶어 그룹 간 충돌 발생을 제어하는 기능입니다. 스크립트 내 조건 분기 없이 충돌 대상만 지정하여 최적화된 로직을 구현할 수 있습니다. ## 기본 정보 * **최대 개수**: 기본 그룹 포함 총 **15개** * **기본 그룹**: * `Default`: 충돌 그룹 미지정 시 기본 적용 * `TriggerBox`: `TriggerComponent` 기본 그룹 * `HitBox`: `HitComponent` 기본 그룹 * **적용 컴포넌트**: `Trig [original] | # 학습 과정 소개 충돌 그룹을 만들고, 엔티티끼리의 충돌 여부를 설정하는 방법을 알아봅시다. 충돌 그룹을 사용해 특정 그룹끼리만 충돌할 수 있거나, 충돌을 무시할 수 있게 만들 수 있습니다. # 충돌 그룹 기능 충돌 그룹은 메이플스토리 월드에 있는 여러 가지 충돌체를 특정 그룹 단위로 묶고, 그룹 간에 충돌 발생을 제어할 수 있는 기능입니다. 기본 충돌 그룹은 **Default, TriggerBox, HitBox**가 있으며 크리에이터가 만든 충돌 그룹을 포함해 **최대 15개**까지 만들 수 있습니다. * **Defa [chunk_id] | Guides:754:0
[task] | diverse_qa [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | 질문: 메이플스토리 월드에서 아바타의 이동 방식을 메이플스토리 기본 이동과 다르게 설정하기 위해 변경할 수 있는 두 가지 주요 설정은 무엇인가요? 답변: RigidbodyComponent의 LayerSettingType 타입을 변경하거나, 사다리/로프/발판의 SortingLayer와 RigidbodyComponent를 가진 Entity의 SortingLayer 간의 관계를 변경하는 것입니다. 질문: DefaultPlayer 엔티티에는 어떤 컴포넌트들이 함께 포함되어 있나요? 답변: DefaultPlayer에는 RigidbodyCo [original] | **RigidbodyComponent의 LayerSettingType** 타입을 변경해 메이플스토리 이동을 따르게 설정합니다. 혹은 사다리/로프/발판의 SortingLayer와 RigidbodyComponent를 가진 Entity의 SortingLayer들과의 관계를 변경해 메이플스토리 이동과 다르게 설정할 수 있습니다. 아래와 같이 Layer1에 타일을 그리고, Layer1,2,3,4에 각각 사다리를 배치했을 때 각 타입에 따라 아바타와 사다리의 관계가 어떻게 변하는지 살펴보겠습니다. DefaultPlayer에는 Rigidbod [chunk_id] | Guides:750:2