[task] | wikipedia [title] | 다양한 선 그리기 [category] | Guides [rephrased] | # 객체 표현 다양한 선 그리기 이 가이드는 플레이어를 따라다니는 모델을 통해 플레이어의 이동 궤적을 실시간으로 선으로 표현하고, 시간이 경과함에 따라 선이 자연스럽게 소멸되는 효과를 구현하는 방법을 다룹니다. ## 구성 요소 및 설정 구현을 위해 먼저 **Trail** 모델 생성 및 관련 컴포넌트 설치가 필요합니다. 1. **Trail** 모델을 생성합니다. 2. 해당 모델에 `TransformComponent`와 `LineRendererComponent`를 추가합니다. 3. `TrailDrawer`라는 이름의 새로운 [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] | 1. 충돌 그룹 매트릭스(Matrix)는 서로 다른 충돌 그룹 간의 충돌 허용 여부를 결정하기 위해 사용되며, 충돌 그룹을 생성하면 해당 그룹이 매트릭스에 자동으로 추가됩니다. 2. 충돌 그룹 간의 충돌 허용 여부는 **Panels - Collision Groups - Matrix** 화면에서 가로와 세로에 배치된 그룹명을 확인한 뒤, 해당 교차점의 체크 박스를 활성화하여 설정합니다. 3. `TriggerEnterEvent` 이벤트 핸들러는 `[server only] [self]` 속성으로 선언되며, 매개변수로 `TriggerEnt [original] | 충돌 그룹 매트릭스(Matrix)는 충돌 그룹끼리의 충돌을 허용할지 말지를 결정할 때 사용합니다. 충돌 그룹을 생성하면 매트릭스에 자동으로 새로운 충돌 그룹이 생성됩니다. 충돌 그룹끼리의 충돌 허용 여부는 체크 박스를 선택해서 간단하게 설정할 수 있습니다. 매트릭스에 적힌 충돌 그룹끼리의 관계를 확인하고 충돌을 허용하고 싶다면 체크 박스를 활성화합니다. 1. **Panels - Collision Groups - Matrix**를 선택합니다. 2. 가로 세로의 그룹명을 확인한 뒤 충돌을 허용하면 체크 박스를 활성화합니다. [chunk_id] | Guides:754:1
[task] | distill [title] | 충돌 그룹 만들기 [category] | Guides [rephrased] | # 충돌 그룹 매트릭스 (Matrix) ## 개요 - **목적**: 충돌 그룹 간의 충돌 허용 여부를 제어합니다. - **생성 시 동작**: 새로운 충돌 그룹을 생성하면 매트릭스에 자동으로 추가됩니다. - **설정 방법**: 매트릭스 UI의 체크 박스를 활성화하여 충돌 허용 여부를 설정합니다. ## 설정 절차 1. `Panels > Collision Groups > Matrix` 메뉴를 선택합니다. 2. 가로/세로에 표시된 그룹명을 확인하고, 충돌을 허용할 교차점의 체크 박스를 활성화합니다. ## 활용 예제: 플레이어는 코인 [original] | 충돌 그룹 매트릭스(Matrix)는 충돌 그룹끼리의 충돌을 허용할지 말지를 결정할 때 사용합니다. 충돌 그룹을 생성하면 매트릭스에 자동으로 새로운 충돌 그룹이 생성됩니다. 충돌 그룹끼리의 충돌 허용 여부는 체크 박스를 선택해서 간단하게 설정할 수 있습니다. 매트릭스에 적힌 충돌 그룹끼리의 관계를 확인하고 충돌을 허용하고 싶다면 체크 박스를 활성화합니다. 1. **Panels - Collision Groups - Matrix**를 선택합니다. 2. 가로 세로의 그룹명을 확인한 뒤 충돌을 허용하면 체크 박스를 활성화합니다. [chunk_id] | Guides:754:1
[task] | extract_knowledge [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | # 수직선 지형과 맵 바운더리 ## 1. 개념 설명 메이플스토리 월드의 물리 시스템에서는 캐릭터의 이동 경로가 맵 지형에 의해 제한됩니다. 특히 수직 방향으로 뻗어 있는 지형(벽이나 절벽 등)은 캐릭터가 점프를 해도 통과하지 못하도록 막는 역할을 합니다. 이러한 수직 지형의 충돌 처리 방식은 전역적으로 적용되거나, 맵의 특정 레이어(Layer) 단위로 세분화하여 제어할 수 있습니다. 또한, 기본적으로 캐릭터는 맵의 경계(Boundary) 내에서만 이동할 수 있지만, 특정 상황에서 맵 지형 밖으로의 이동을 허용하도록 설정할 수도 [original] | #### 수직선 지형 지면 발판과 붙어있든, 떨어져 있든 점프로 수직 발판을 통과하지 못하게 만들고 싶다면 RigidbodyComponent의 **IsBlockvertialLine**을 활성화합니다. | IsBlockvertialLine활성화 | IsBlockvertialLine비활성화 | | --- | --- | || | ##### 특정 레이어의 수직선 지형만 막기 RigidbodyComponent의 **IsBlockvertialLine**를 활성화하면 맵 내부의 모든 수직 지형을 통과하지 못합니다. 만약 일부 맵 레이어에서 [chunk_id] | Guides:750:1
[task] | wikipedia [title] | 충돌 그룹 만들기 [category] | Guides [rephrased] | # 충돌 그룹 만들기 충돌 그룹(Collision Group)은 메이플스토리 월드(MapleStory Worlds)에서 다양한 충돌체를 특정 범주로 묶어 그룹 간 충돌 발생 여부를 제어하는 기능입니다. 이 기능을 활용하면 특정 그룹끼리만 충돌하도록 설정하거나, 특정 충돌을 무시하도록 구성할 수 있어 스크립트 내부에서 매번 충돌 감지 조건을 작성할 필요가 없어집니다. 이는 월드의 성능 최적화에 기여하며, 물리 시스템에도 충돌 그룹을 적용하여 원하는 그룹끼리만 상호작용하도록 설계할 수 있습니다. ## 기본 충돌 그룹 및 제한 시스 [original] | # 학습 과정 소개 충돌 그룹을 만들고, 엔티티끼리의 충돌 여부를 설정하는 방법을 알아봅시다. 충돌 그룹을 사용해 특정 그룹끼리만 충돌할 수 있거나, 충돌을 무시할 수 있게 만들 수 있습니다. # 충돌 그룹 기능 충돌 그룹은 메이플스토리 월드에 있는 여러 가지 충돌체를 특정 그룹 단위로 묶고, 그룹 간에 충돌 발생을 제어할 수 있는 기능입니다. 기본 충돌 그룹은 **Default, TriggerBox, HitBox**가 있으며 크리에이터가 만든 충돌 그룹을 포함해 **최대 15개**까지 만들 수 있습니다. * **Defa [chunk_id] | Guides:754:0
[task] | distill [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | # ScreenshotService: 스크린샷 촬영 및 저장 `ScreenshotService`를 사용해 PC/모바일에서 스크린샷을 촬영하고 저장합니다. `MobileShareService`와 연동하여 모바일 공유도 가능합니다. ## 함수 구분 및 저장 경로 | 함수 | 용도 | 저장 경로 | | :--- | :--- | :--- | | `CaptureFullScreenToPhotoLibraryAndWait()`<br>`CaptureScreenRegionToPhotoLibraryAndWait()` | 사진 보관함 저장 | ** [original] | # 학습 과정 소개 `ScreenshotService`를 통해 화면을 캡처하고 이미지 파일을 저장하는 방법을 살펴봅시다. 추가로 모바일에서 스크린샷을 저장한 뒤 공유하는 방법도 알아봅시다. ##### 참고 API Reference [ScreenshotService](/apiReference?postId=807) [MobileShareService](/apiReference/Services/MobileShareService) # ScreenshotService `ScreenshotService`를 활용하면 PC나 모바일에서 메 [chunk_id] | Guides:756:0
[task] | extract_knowledge [title] | 충돌 그룹 만들기 [category] | Guides [rephrased] | # 충돌 그룹(Collision Group) ## 개념 설명 충돌 그룹은 메이플스토리 월드 내의 충돌체(Collider)를 특정 그룹 단위로 묶어 그룹 간 충돌 발생 여부를 제어하는 기능입니다. 이 기능을 사용하면 스크립트 코드 내에서 충돌 감지 조건을 직접 작성하지 않고도, 특정 그룹끼리만 충돌하거나 충돌을 무시하도록 설정할 수 있습니다. 기본 제공되는 충돌 그룹은 다음 세 가지입니다. * **Default**: 충돌 그룹을 지정하지 않거나, 지정된 그룹을 찾을 수 없을 때 기본으로 적용됩니다. * **TriggerB [original] | # 학습 과정 소개 충돌 그룹을 만들고, 엔티티끼리의 충돌 여부를 설정하는 방법을 알아봅시다. 충돌 그룹을 사용해 특정 그룹끼리만 충돌할 수 있거나, 충돌을 무시할 수 있게 만들 수 있습니다. # 충돌 그룹 기능 충돌 그룹은 메이플스토리 월드에 있는 여러 가지 충돌체를 특정 그룹 단위로 묶고, 그룹 간에 충돌 발생을 제어할 수 있는 기능입니다. 기본 충돌 그룹은 **Default, TriggerBox, HitBox**가 있으며 크리에이터가 만든 충돌 그룹을 포함해 **최대 15개**까지 만들 수 있습니다. * **Defa [chunk_id] | Guides:754:0
[task] | wikipedia [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | # 게임 로직/시스템 스크린샷 촬영 및 공유하기 `ScreenshotService`를 사용하여 화면을 캡처하고 이미지 파일을 저장하는 방법, 그리고 모바일 환경에서 촬영된 스크린샷을 공유하는 절차를 다룹니다. 본 가이드에서 참고할 수 있는 주요 API는 `ScreenshotService`와 `MobileShareService`입니다. ## ScreenshotService `ScreenshotService`는 PC와 모바일 모두에서 메이플스토리 월드의 스크린샷을 촬영하고 저장하는 기능을 제공합니다. 또한 이 서비스는 `Mobil [original] | # 학습 과정 소개 `ScreenshotService`를 통해 화면을 캡처하고 이미지 파일을 저장하는 방법을 살펴봅시다. 추가로 모바일에서 스크린샷을 저장한 뒤 공유하는 방법도 알아봅시다. ##### 참고 API Reference [ScreenshotService](/apiReference?postId=807) [MobileShareService](/apiReference/Services/MobileShareService) # ScreenshotService `ScreenshotService`를 활용하면 PC나 모바일에서 메 [chunk_id] | Guides:756:0
[task] | distill [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | ## 전체 화면 스크린샷 촬영 `_ScreenshotService:CaptureFullScreenToPhotoLibraryAndWait` API를 사용해 전체 화면을 촬영합니다. ### 동작 규칙 및 주의사항 * **실행 공간**: `Client` (클라이언트에서만 동작) * **반환값**: `(error, path)` * `error`: `ScreenshotError` 타입. 성공 시 `ScreenshotError.Success` * `path`: 저장된 이미지 경로 (성공 시 유효) * **매 [original] | 버튼을 눌러 전체 화면 스크린샷을 촬영해 봅시다. 1. UI 에디터에서 버튼을 눌러 새 버튼 **FullScreenBtn**을 만듭니다. 2. **FullScreenBtn**에 **TextComponent**를 추가하고 프로퍼티를 아래와 같이 설정합니다. | Property | Value | | :---: | :---: | | Text | Full Screen Capture | | FontColor | #ffffff | 3. **Workspace - MyDesk**의 콘텍스트 메뉴에서 * [chunk_id] | Guides:756:1
[task] | wikipedia [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | # 메이플스토리 이동 개념 이해하기 본 문서는 메이플스토리 월드(MapleStory Worlds)에서 월드 제작에 필수적인 이동 방식 중 하나인 '메이플 이동'의 원리를 설명합니다. 이 이동 방식은 `RigidbodyComponent`의 특성을 따르며, 지형과 밀접하게 연관되어 있으므로 [메이플 타일 맵 만들기](/docs?postId=747) 문서와 함께 학습하는 것을 권장합니다. ## 메이플스토리 이동 방식의 개요 `RigidbodyComponent`는 메이플스토리 고유의 물리 이동 방식을 구현할 때 사용됩니다. 이 컴포넌 [original] | # 학습 과정 소개 월드 제작에 필수적인 이동 방식 중 메이플스토리 이동 방식을 따르는 RigidbodyComponent 특성을 알아봅시다. 이동은 [메이플 타일 맵 만들기](/docs?postId=747)와 함께 학습하기 권장합니다. # 메이플스토리 이동 방식 RigidbodyComponent는 메이플스토리 이동 방식처럼 이동하고자 할 때 사용합니다. 이동 방식은 지형 종류와 밀접한 연관이 있기에 TileMapComponent를 함께 사용해 메이플스토리식 이동 방식을 만들 수 있습니다. 이때 타일 위에서 이동은 Rigidbo [chunk_id] | Guides:750:0
[task] | wikipedia [title] | 충돌 그룹 만들기 [category] | Guides [rephrased] | # 충돌 그룹 매트릭스 충돌 그룹 매트릭스(Matrix)는 서로 다른 충돌 그룹 간의 충돌 허용 여부를 설정하기 위한 도구입니다. 사용자가 충돌 그룹을 생성하면 해당 그룹은 매트릭스에 자동으로 추가되며, 행과 열의 교차점에 위치한 체크 박스를 통해 특정 두 그룹 사이의 물리적 충돌을 활성화하거나 비활성화할 수 있습니다. 이 기능을 통해 예를 들어 플레이어 캐릭터는 아이템과 충돌하지만 몬스터와는 충돌하지 않는 것과 같이 선택적인 충돌 관계를 구현할 수 있습니다. 매트릭스를 설정하려면 먼저 **Panels - Collision Gr [original] | 충돌 그룹 매트릭스(Matrix)는 충돌 그룹끼리의 충돌을 허용할지 말지를 결정할 때 사용합니다. 충돌 그룹을 생성하면 매트릭스에 자동으로 새로운 충돌 그룹이 생성됩니다. 충돌 그룹끼리의 충돌 허용 여부는 체크 박스를 선택해서 간단하게 설정할 수 있습니다. 매트릭스에 적힌 충돌 그룹끼리의 관계를 확인하고 충돌을 허용하고 싶다면 체크 박스를 활성화합니다. 1. **Panels - Collision Groups - Matrix**를 선택합니다. 2. 가로 세로의 그룹명을 확인한 뒤 충돌을 허용하면 체크 박스를 활성화합니다. [chunk_id] | Guides:754:1
[task] | extract_knowledge [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | # 메이플스토리 이동 개념: RigidbodyComponent의 LayerSettingType 메이플스토리 월드에서 아바타의 이동 방식(사다리, 로프, 발판 등)과 화면 표시 순서(SortingLayer)를 제어하기 위해 `RigidbodyComponent`의 `LayerSettingType` 속성을 사용합니다. 이 속성의 값에 따라 아바타가 사다리나 발판과 상호작용할 때 `AvatarRendererComponent`의 `SortingLayer`가 어떻게 결정되는지가 달라집니다. ## 개념 설명 `RigidbodyCompone [original] | **RigidbodyComponent의 LayerSettingType** 타입을 변경해 메이플스토리 이동을 따르게 설정합니다. 혹은 사다리/로프/발판의 SortingLayer와 RigidbodyComponent를 가진 Entity의 SortingLayer들과의 관계를 변경해 메이플스토리 이동과 다르게 설정할 수 있습니다. 아래와 같이 Layer1에 타일을 그리고, Layer1,2,3,4에 각각 사다리를 배치했을 때 각 타입에 따라 아바타와 사다리의 관계가 어떻게 변하는지 살펴보겠습니다. DefaultPlayer에는 Rigidbod [chunk_id] | Guides:750:2
[task] | diverse_qa [title] | 충돌 그룹 만들기 [category] | Guides [rephrased] | 질문: 충돌 그룹을 사용하면 크리에이터가 만들 수 있는 최대 충돌 그룹 개수는 몇 개인가요? 답변: 기본 충돌 그룹을 포함하여 크리에이터가 만든 충돌 그룹을 합쳐 최대 15개까지 만들 수 있습니다. 질문: 메이플스토리 월드에 기본으로 제공되는 충돌 그룹 3가지의 이름은 무엇인가요? 답변: 기본 충돌 그룹은 Default, TriggerBox, HitBox입니다. 질문: 충돌 그룹을 지정하지 않았거나 찾을 수 없는 경우, 어떤 그룹으로 지정되나요? 답변: 충돌 그룹을 찾을 수 없을 때 Default 그룹으로 지정됩니다. 질문: [original] | # 학습 과정 소개 충돌 그룹을 만들고, 엔티티끼리의 충돌 여부를 설정하는 방법을 알아봅시다. 충돌 그룹을 사용해 특정 그룹끼리만 충돌할 수 있거나, 충돌을 무시할 수 있게 만들 수 있습니다. # 충돌 그룹 기능 충돌 그룹은 메이플스토리 월드에 있는 여러 가지 충돌체를 특정 그룹 단위로 묶고, 그룹 간에 충돌 발생을 제어할 수 있는 기능입니다. 기본 충돌 그룹은 **Default, TriggerBox, HitBox**가 있으며 크리에이터가 만든 충돌 그룹을 포함해 **최대 15개**까지 만들 수 있습니다. * **Defa [chunk_id] | Guides:754:0
[task] | diverse_qa [title] | 충돌 그룹 만들기 [category] | Guides [rephrased] | 질문: 충돌 그룹 매트릭스(Matrix)의 주요 용도는 무엇인가요? 답변: 충돌 그룹끼리의 충돌을 허용할지 말지를 결정할 때 사용합니다. 질문: 충돌 그룹을 생성하면 매트릭스에 어떤 변화가 일어나나요? 답변: 매트릭스에 자동으로 새로운 충돌 그룹이 생성됩니다. 질문: 충돌 그룹끼리의 충돌 허용 여부를 설정하는 방법은 무엇인가요? 답변: 매트릭스에서 가로 세로의 그룹명을 확인한 뒤, 충돌을 허용하고 싶은 관계의 체크 박스를 활성화하여 설정합니다. 질문: 충돌 그룹 매트릭스에 접근하기 위해 선택해야 하는 패널 경로는 무엇인가요? [original] | 충돌 그룹 매트릭스(Matrix)는 충돌 그룹끼리의 충돌을 허용할지 말지를 결정할 때 사용합니다. 충돌 그룹을 생성하면 매트릭스에 자동으로 새로운 충돌 그룹이 생성됩니다. 충돌 그룹끼리의 충돌 허용 여부는 체크 박스를 선택해서 간단하게 설정할 수 있습니다. 매트릭스에 적힌 충돌 그룹끼리의 관계를 확인하고 충돌을 허용하고 싶다면 체크 박스를 활성화합니다. 1. **Panels - Collision Groups - Matrix**를 선택합니다. 2. 가로 세로의 그룹명을 확인한 뒤 충돌을 허용하면 체크 박스를 활성화합니다. [chunk_id] | Guides:754:1
[task] | extract_knowledge [title] | 메이플 이동 개념 이해하기 [category] | Guides [rephrased] | # 메이플스토리 이동 방식: RigidbodyComponent ## 1. 개념 설명 메이플스토리 월드의 이동 시스템은 `RigidbodyComponent`와 `TileMapComponent`의 상호작용을 기반으로 합니다. `RigidbodyComponent`는 플레이어 캐릭터가 지형(타일) 위에서 어떻게 움직이는지를 물리적으로 관리하며, 특히 '발판' 위에서의 이동, 낙하, 점프 시의 타일 인식 로직을 담당합니다. 기본적인 이동 규칙은 다음과 같습니다: 1. **발판 위 이동:** 캐릭터는 현재 밟고 있는 발판(타일)의 경로 [original] | # 학습 과정 소개 월드 제작에 필수적인 이동 방식 중 메이플스토리 이동 방식을 따르는 RigidbodyComponent 특성을 알아봅시다. 이동은 [메이플 타일 맵 만들기](/docs?postId=747)와 함께 학습하기 권장합니다. # 메이플스토리 이동 방식 RigidbodyComponent는 메이플스토리 이동 방식처럼 이동하고자 할 때 사용합니다. 이동 방식은 지형 종류와 밀접한 연관이 있기에 TileMapComponent를 함께 사용해 메이플스토리식 이동 방식을 만들 수 있습니다. 이때 타일 위에서 이동은 Rigidbo [chunk_id] | Guides:750:0
[task] | knowledge_list [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | 1. `_ScreenshotService:CaptureScreenRegionToPhotoLibraryAndWait` 메서드는 이름(`string`, 예: "PartialScreen"), 시작 픽셀(`Vector2`), 종료 픽셀(`Vector2`)을 매개변수로 받아 `error`(`ScreenshotError` 타입)와 `path`(`string` 타입)를 반환하며, 이 메서드는 클라이언트 공간에서 실행됩니다. 2. `ScreenshotError.Success` 상수는 `_ScreenshotService:CaptureScreenRe [original] | 버튼을 눌러 일부 화면 스크린샷을 촬영해 봅시다. 1. **FullScreenBtn** 버튼의 콘텍스트 메뉴에서 **Duplicate**를 클릭해 버튼을 복제한 뒤 적당한 위치로 옮깁니다. 2. 복제한 버튼의 이름을 **PartialScreenBtn**으로 변경합니다. **Text**에는 **Partial Screen Capture**를 입력합니다. 3. 스크립트 에디터에서 **ScreenshotServiceTest**를 열고 이벤트 핸들러에 `ButtonClickEvent`를 추가합니다. 이벤트 센 [chunk_id] | Guides:756:2
[task] | knowledge_list [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | ```lua -- ScreenshotService는 PC와 모바일 환경에서 메이플스토리 월드의 스크린샷을 촬영하고 이미지 파일을 저장하는 기능을 제공합니다. -- ScreenshotService는 MobileShareService와 연동하여 촬영한 스크린샷을 모바일에서 공유할 수 있도록 지원합니다. -- CaptureFullScreenToPhotoLibraryAndWait() 함수는 전체 화면을 캡처하여 사진 보관함에 스크린샷을 저장하는 용도로 사용됩니다. -- CaptureScreenRegionToPhotoLibraryAndWai [original] | # 학습 과정 소개 `ScreenshotService`를 통해 화면을 캡처하고 이미지 파일을 저장하는 방법을 살펴봅시다. 추가로 모바일에서 스크린샷을 저장한 뒤 공유하는 방법도 알아봅시다. ##### 참고 API Reference [ScreenshotService](/apiReference?postId=807) [MobileShareService](/apiReference/Services/MobileShareService) # ScreenshotService `ScreenshotService`를 활용하면 PC나 모바일에서 메 [chunk_id] | Guides:756:0
[task] | diverse_qa [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | 질문: `ScreenshotService`의 주요 기능은 무엇인가요? 답변: `ScreenshotService`는 PC나 모바일에서 메이플스토리 월드 스크린샷을 촬영하고 이미지 파일을 저장하는 기능을 제공하며, `MobileShareService`와 연동하여 스크린샷을 공유할 수 있게 해줍니다. 질문: `CaptureFullScreenToPhotoLibraryAndWait()` 함수의 저장 경로 중 Windows 환경은 어디인가요? 답변: Windows 환경에서는 '내 PC > 사진 > MapleStory Worlds > 월드 I [original] | # 학습 과정 소개 `ScreenshotService`를 통해 화면을 캡처하고 이미지 파일을 저장하는 방법을 살펴봅시다. 추가로 모바일에서 스크린샷을 저장한 뒤 공유하는 방법도 알아봅시다. ##### 참고 API Reference [ScreenshotService](/apiReference?postId=807) [MobileShareService](/apiReference/Services/MobileShareService) # ScreenshotService `ScreenshotService`를 활용하면 PC나 모바일에서 메 [chunk_id] | Guides:756:0
[task] | knowledge_list [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | 제시된 문서 원문에 포함된 정보만 바탕으로 핵심 사실을 추출하여 정리한 목록입니다. * UI 에디터에서 새 버튼 컴포넌트 **FullScreenBtn**을 생성합니다. * **FullScreenBtn**에 **TextComponent**를 추가하고, 프로퍼티 `Text`를 "Full Screen Capture", `FontColor`를 "#ffffff"로 설정합니다. * **Workspace - MyDesk**의 콘텍스트 메뉴에서 **Create Scripts - Create Logic**을 클릭해 로직을 생성하고, 이 [original] | 버튼을 눌러 전체 화면 스크린샷을 촬영해 봅시다. 1. UI 에디터에서 버튼을 눌러 새 버튼 **FullScreenBtn**을 만듭니다. 2. **FullScreenBtn**에 **TextComponent**를 추가하고 프로퍼티를 아래와 같이 설정합니다. | Property | Value | | :---: | :---: | | Text | Full Screen Capture | | FontColor | #ffffff | 3. **Workspace - MyDesk**의 콘텍스트 메뉴에서 * [chunk_id] | Guides:756:1
[task] | extract_knowledge [title] | 다양한 선 그리기 [category] | Guides [rephrased] | # LineRendererComponent: 다양한 선 그리기 ## 1. 개념 설명 `LineRendererComponent`는 지정된 정점(`Points`)을 기반으로 MapleTile 또는 RectTile 위에 직선이나 곡선을 렌더링하는 컴포넌트입니다. 이 컴포넌트는 인스턴스당 하나의 선만 표현할 수 있으며, 복수의 선을 그리는 경우 여러 개의 `LineRendererComponent`가 포함된 엔티티를 생성해야 합니다. 주요 프로퍼티는 다음과 같습니다: * **IsSmooth**: 활성화 시 부드러운 곡선으로, 비활성화 [original] | # 학습 과정 소개 LineRendererComponent를 활용해 다양한 선을 월드에 자유롭게 그릴 수 있습니다. # LineRendererComponent LineRendererComponent는 점의 개수를 지정해 MapleTile, RectTile 위에서 원하는 직선, 곡선을 그릴 수 있습니다. LineRendererComponent 하나당 하나의 선을 그릴 수 있으므로, 여러 선을 표현하고 싶다면 여러 개의 LineRendererComponent가 포함된 엔티티를 사용해야 합니다. 주요 프로퍼티는 아래와 같습니다. [chunk_id] | Guides:749:0
[task] | extract_knowledge [title] | 다양한 선 그리기 [category] | Guides [rephrased] | # 트레일(Trail) 효과 구현: LineRendererComponent 활용 본 절에서는 플레이어의 이동 경로에 따라 선이 그려지고 일정 시간이 경과하면 사라지는 트레일 효과를 구현하는 방법을 다룹니다. 이 효과는 `LineRendererComponent`를 사용하여 시각적 표시를 만들고, `SyncTable`을 통해 점들의 수명(life)을 관리하는 방식으로 동작합니다. ## 1. 개념 설명 트레일 효과의 핵심 로직은 다음과 같은 3단계로 구성됩니다. 1. **점 추가 (Add Point)**: 대상 객체의 위치가 이 [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] | wikipedia [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | # 게임 로직/시스템: 스크린샷 촬영 및 공유하기 이 가이드에서는 UI 버튼을 통해 전체 화면 스크린샷을 촬영하고 결과를 로그 및 토스트 메시지로 확인하는 방법을 설명합니다. ## 전체 화면 스크린샷 촬영하기 전체 화면 스크린샷 기능을 구현하기 위해 UI 버튼 생성, 스크립트 로직 작성, 그리고 실행 검증 과정을 거쳐야 합니다. 먼저 UI 에디터에서 새 버튼 컴포넌트를 생성합니다. 이 버튼의 이름은 `FullScreenBtn`으로 지정합니다. 생성된 `FullScreenBtn`에 `TextComponent`를 추가하고, 프로 [original] | 버튼을 눌러 전체 화면 스크린샷을 촬영해 봅시다. 1. UI 에디터에서 버튼을 눌러 새 버튼 **FullScreenBtn**을 만듭니다. 2. **FullScreenBtn**에 **TextComponent**를 추가하고 프로퍼티를 아래와 같이 설정합니다. | Property | Value | | :---: | :---: | | Text | Full Screen Capture | | FontColor | #ffffff | 3. **Workspace - MyDesk**의 콘텍스트 메뉴에서 * [chunk_id] | Guides:756:1
[task] | distill [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | # 스크린샷 촬영 및 공유하기 ## 일부 화면 촬영 (Partial Screen Capture) `_ScreenshotService`의 `CaptureScreenRegionToPhotoLibraryAndWait` 메서드를 사용해 지정된 픽셀 영역을 촬영합니다. ### API 시그니처 ```lua local error, path = _ScreenshotService:CaptureScreenRegionToPhotoLibraryAndWait(string name, Vector2 startPixel, Vector2 endPixel) [original] | 버튼을 눌러 일부 화면 스크린샷을 촬영해 봅시다. 1. **FullScreenBtn** 버튼의 콘텍스트 메뉴에서 **Duplicate**를 클릭해 버튼을 복제한 뒤 적당한 위치로 옮깁니다. 2. 복제한 버튼의 이름을 **PartialScreenBtn**으로 변경합니다. **Text**에는 **Partial Screen Capture**를 입력합니다. 3. 스크립트 에디터에서 **ScreenshotServiceTest**를 열고 이벤트 핸들러에 `ButtonClickEvent`를 추가합니다. 이벤트 센 [chunk_id] | Guides:756:2
[task] | extract_knowledge [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | # ScreenshotService와 MobileShareService를 이용한 스크린샷 촬영 및 공유 ## 1. 개념 설명 `ScreenshotService`는 PC 및 모바일 환경에서 메이플스토리 월드의 화면을 캡처하고 이미지 파일로 저장하는 기능을 제공합니다. 촬영된 스크린샷은 두 가지 용도로 저장될 수 있습니다. 1. **사진 보관함(Picture Library) 저장**: 사용자가 직접 접근하여 볼 수 있는 디바이스 기본 사진 앨범에 저장합니다. 2. **모바일 공유용 파일 저장**: `MobileShareService` [original] | # 학습 과정 소개 `ScreenshotService`를 통해 화면을 캡처하고 이미지 파일을 저장하는 방법을 살펴봅시다. 추가로 모바일에서 스크린샷을 저장한 뒤 공유하는 방법도 알아봅시다. ##### 참고 API Reference [ScreenshotService](/apiReference?postId=807) [MobileShareService](/apiReference/Services/MobileShareService) # ScreenshotService `ScreenshotService`를 활용하면 PC나 모바일에서 메 [chunk_id] | Guides:756:0
[task] | diverse_qa [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | 질문: 전체 화면 스크린샷 촬영 기능을 구현하기 위해 UI 에디터에서 생성해야 하는 버튼의 이름은 무엇인가요? 답변: 새 버튼의 이름은 **FullScreenBtn**입니다. 질문: **FullScreenBtn**에 추가된 **TextComponent**의 프로퍼티 값 중 `Text`에 설정된 값은 무엇인가요? 답변: `Text`에 설정된 값은 "Full Screen Capture"입니다. 질문: **FullScreenBtn**의 **TextComponent**에서 `FontColor` 값은 어떤 색상 코드로 설정되었나요? 답변 [original] | 버튼을 눌러 전체 화면 스크린샷을 촬영해 봅시다. 1. UI 에디터에서 버튼을 눌러 새 버튼 **FullScreenBtn**을 만듭니다. 2. **FullScreenBtn**에 **TextComponent**를 추가하고 프로퍼티를 아래와 같이 설정합니다. | Property | Value | | :---: | :---: | | Text | Full Screen Capture | | FontColor | #ffffff | 3. **Workspace - MyDesk**의 콘텍스트 메뉴에서 * [chunk_id] | Guides:756:1
[task] | extract_knowledge [title] | 충돌 그룹 만들기 [category] | Guides [rephrased] | # 충돌 그룹 매트릭스(Collision Group Matrix) ## 개념 설명 충돌 그룹 매트릭스(Matrix)는 서로 다른 충돌 그룹 간의 충돌 허용 여부를 결정하기 위한 도구입니다. 새로운 충돌 그룹을 생성하면 매트릭스에 해당 그룹이 자동으로 추가됩니다. 매트릭스는 행과 열의 교차점에 위치한 체크 박스를 통해 특정 두 그룹 간의 충돌을 허용하거나 차단할 수 있습니다. 체크 박스가 활성화(선택)된 상태일 때만 해당 두 그룹 간에 충돌이 발생합니다. ## API 및 설정 사용법 mLua 스크립트 코드보다는 에디터 환경에서의 [original] | 충돌 그룹 매트릭스(Matrix)는 충돌 그룹끼리의 충돌을 허용할지 말지를 결정할 때 사용합니다. 충돌 그룹을 생성하면 매트릭스에 자동으로 새로운 충돌 그룹이 생성됩니다. 충돌 그룹끼리의 충돌 허용 여부는 체크 박스를 선택해서 간단하게 설정할 수 있습니다. 매트릭스에 적힌 충돌 그룹끼리의 관계를 확인하고 충돌을 허용하고 싶다면 체크 박스를 활성화합니다. 1. **Panels - Collision Groups - Matrix**를 선택합니다. 2. 가로 세로의 그룹명을 확인한 뒤 충돌을 허용하면 체크 박스를 활성화합니다. [chunk_id] | Guides:754:1
[task] | distill [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | # 모바일 스크린샷 촬영 및 공유 모바일 환경에서만 지원되는 기능입니다. PC에서는 사용 불가합니다. ## 구성 및 구현 1. **버튼 생성**: 기존 `FullScreenBtn`을 복제하여 `ShareBtn`으로 이름 변경 및 텍스트를 `Share`로 설정합니다. 2. **촬영 로직 수정**: `FullScreenBtn`의 `HandleButtonClickEvent`에서 캡처 함수를 `_ScreenshotService:CaptureFullScreenAsFileAndWait()`로 변경합니다. 성공 시 반환된 파일 경로를 `s [original] | 모바일에서 스크린샷 공유하는 방법을 살펴봅시다. 단, PC에서는 공유할 수 없습니다. 1. **FullScreenBtn** 버튼의 콘텍스트 메뉴에서 **Duplicate**를 클릭해 버튼을 복제한 뒤 적당한 위치로 옮깁니다. 2. 복제한 버튼의 이름을 **ShareBtn**으로 변경합니다. **Text**에는 **Share**를 입력합니다. 3. 스크립트 에디터에서 **ScreenshotServiceTest**를 열고 **FullScreenBtn**에 연결한 이벤트를 찾습니다. `CaptureFullScre [chunk_id] | Guides:756:3
[task] | extract_knowledge [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | # 전체 화면 스크린샷 촬영 및 저장 ## 1. 개념 설명 `_ScreenshotService`를 사용하여 클라이언트 전체 화면을 캡처하고, 결과물을 사진 라이브러리에 저장하는 기능을 제공합니다. 이 과정에서 캡처 성공 여부를 확인하고, 저장된 파일 경로를 반환받거나 실패 시 에러 메시지를 표시할 수 있습니다. ## 2. API 사용법 전체 화면 캡처 및 저장에는 `_ScreenshotService:CaptureFullScreenToPhotoLibraryAndWait` 메서드를 사용합니다. **메서드 시그니처:** `local [original] | 버튼을 눌러 전체 화면 스크린샷을 촬영해 봅시다. 1. UI 에디터에서 버튼을 눌러 새 버튼 **FullScreenBtn**을 만듭니다. 2. **FullScreenBtn**에 **TextComponent**를 추가하고 프로퍼티를 아래와 같이 설정합니다. | Property | Value | | :---: | :---: | | Text | Full Screen Capture | | FontColor | #ffffff | 3. **Workspace - MyDesk**의 콘텍스트 메뉴에서 * [chunk_id] | Guides:756:1
[task] | wikipedia [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | # 게임 로직/시스템: 스크린샷 촬영 및 공유하기 이 가이드에서는 `ScreenshotService`를 활용하여 게임 화면의 전체 또는 일부 영역을 스크린샷으로 촬영하고, 생성된 이미지를 사진 라이브러리에 저장하는 방법을 설명한다. ## 1. UI 컴포넌트 구성 일부 화면 촬영을 트리거하는 버튼 컴포넌트를 생성하는 과정은 다음과 같다. 1. 기존에 존재하는 **FullScreenBtn** 버튼의 컨텍스트 메뉴에서 **Duplicate**를 선택하여 버튼을 복제한다. 복제된 버튼은 편집 화면의 적절한 위치로 이동시킨다. 2. [original] | 버튼을 눌러 일부 화면 스크린샷을 촬영해 봅시다. 1. **FullScreenBtn** 버튼의 콘텍스트 메뉴에서 **Duplicate**를 클릭해 버튼을 복제한 뒤 적당한 위치로 옮깁니다. 2. 복제한 버튼의 이름을 **PartialScreenBtn**으로 변경합니다. **Text**에는 **Partial Screen Capture**를 입력합니다. 3. 스크립트 에디터에서 **ScreenshotServiceTest**를 열고 이벤트 핸들러에 `ButtonClickEvent`를 추가합니다. 이벤트 센 [chunk_id] | Guides:756:2
[task] | diverse_qa [title] | 스크린샷 촬영 및 공유하기 [category] | Guides [rephrased] | 질문: FullScreenBtn 버튼을 복제하여 PartialScreenBtn을 만들기 위해 콘텍스트 메뉴에서 어떤 옵션을 선택해야 하나요? 답변: 콘텍스트 메뉴에서 **Duplicate**를 클릭해야 합니다. 질문: 복제한 버튼의 이름과 Text 프로퍼티에 각각 어떤 값을 입력해야 하나요? 답변: 버튼의 이름은 **PartialScreenBtn**으로, Text에는 **Partial Screen Capture**를 입력해야 합니다. 질문: ScreenshotServiceTest 스크립트에서 ButtonClickEvent의 이벤 [original] | 버튼을 눌러 일부 화면 스크린샷을 촬영해 봅시다. 1. **FullScreenBtn** 버튼의 콘텍스트 메뉴에서 **Duplicate**를 클릭해 버튼을 복제한 뒤 적당한 위치로 옮깁니다. 2. 복제한 버튼의 이름을 **PartialScreenBtn**으로 변경합니다. **Text**에는 **Partial Screen Capture**를 입력합니다. 3. 스크립트 에디터에서 **ScreenshotServiceTest**를 열고 이벤트 핸들러에 `ButtonClickEvent`를 추가합니다. 이벤트 센 [chunk_id] | Guides:756:2