[task] | extract_knowledge [title] | 원하는 이미지 갖고 오기 [category] | Guides [rephrased] | # 이미지 리소스 가져오기 및 배치 ## 1. 개념 설명 메이플스토리 월드 메이커에서는 외부 이미지 리소스를 프로젝트에 가져와 스프라이트 또는 애니메이션으로 활용할 수 있습니다. 이미지 리소스는 **Workspace**의 **MyDesk** 영역에 저장되며, 이를 **Hierarchy**나 **Scene**에 배치하여 게임 객체로 사용하게 됩니다. ## 2. API 및 작업 절차 ### 2.1 이미지 불러오기 이미지 파일을 메이커 프로젝트에 등록하는 과정은 다음과 같습니다. 1. **Workspace - MyDesk** 영역 [original] | # 학습 과정 소개 게임에 필요한 이미지 리소스를 찾아 메이커에서 활용할 수 있습니다. # 이미지 불러오기 1. **Workspace - MyDesk**의 콘텍스트 메뉴를 열고, **Import From - Import Image**를 선택합니다. 2. 사용할 이미지를 선택하여 불러옵니다. **MyDesk** 하위에 불러온 이미지 파일이 개별 생성됩니다. 3. 원하는 방식으로 이미지를 활용합니다. # 이미지 활용 방식 이미지를 배치하는 방법은 크게 3가지가 있습니다. **첫 번째 방법**은 **Workspace - [chunk_id] | Guides:99:0
[task] | extract_knowledge [title] | 배경음악 변경하기 [category] | Guides [rephrased] | # 배경음악(BGM) 재생 설정 ## 개념 설명 메이플스토리 월드에서 맵에 배경음악을 추가하기 위해 `SoundComponent`를 사용합니다. 이 컴포넌트는 맵 엔티티에 직접 연결되어 게임 실행 시 배경음악을 자동으로 재생하도록 합니다. ## API 사용법 1. 에디터의 **Preset List**에서 **BGM** 카테고리를 선택합니다. 2. 재생할 배경음악 소스를 클릭하여 적용합니다. 3. 대상 맵의 **Property** 패널을 확인하면 `SoundComponent`가 추가되었는지 검증합니다. - `SoundComp [original] | # 학습 과정 소개 게임에 어울리는 배경음악을 간편하게 넣어봅시다. # 배경음악 넣기 1. **Preset List - BGM**을 선택합니다. 2. 원하는 배경음악을 클릭합니다. 3. map의 **Property**에 [**SoundComponent**](/apiReference/Components/SoundComponent)가 추가된 것을 확인할 수 있습니다. 제어할 수 있는 프로퍼티에 대한 자세한 내용은 [**SoundComponent**](/apiReference/Com [chunk_id] | Guides:117:0
[task] | diverse_qa [title] | 배경음악 변경하기 [category] | Guides [rephrased] | 질문: 메이플스토리 월드에서 배경음악을 간편하게 추가하기 위해 선택해야 하는 첫 번째 항목은 무엇인가요? 답변: Preset List - BGM을 선택해야 합니다. 질문: 배경음악을 선택한 후 map의 Property에서 확인해야 하는 컴포넌트의 이름은 무엇인가요? 답변: SoundComponent입니다. 질문: 배경음악을 넣는 과정에서 원하는 배경음악을 클릭하면 map의 어떤 부분에 해당 컴포넌트가 추가되나요? 답변: map의 Property 부분에 추가됩니다. 질문: 배경음악이 제대로 재생되는지 확인하기 위해 사용자가 수행 [original] | # 학습 과정 소개 게임에 어울리는 배경음악을 간편하게 넣어봅시다. # 배경음악 넣기 1. **Preset List - BGM**을 선택합니다. 2. 원하는 배경음악을 클릭합니다. 3. map의 **Property**에 [**SoundComponent**](/apiReference/Components/SoundComponent)가 추가된 것을 확인할 수 있습니다. 제어할 수 있는 프로퍼티에 대한 자세한 내용은 [**SoundComponent**](/apiReference/Com [chunk_id] | Guides:117:0
[task] | wikipedia [title] | 다른 위치로 이동하는 포탈 만들기 [category] | Guides [rephrased] | # 포탈 만들기 (MapleStory Worlds) 본 문서는 메이플스토리 월드(MapleStory Worlds)에서 월드 또는 맵 내에서 플레이어 아바타의 이동을 가능하게 하는 포탈(Portal)을 제작하는 방법을 설명합니다. 포탈 기능은 `PortalComponent`를 사용하여 구현되며, 이 컴포넌트를 통해 플레이어 아바타가 특정 포탈 영역에서 지정된 동작(예: 키 입력)을 수행하면 다른 위치로 이동하도록 설정할 수 있습니다. ## 포탈 컴포넌트 개요 `PortalComponent`는 동일한 포탈 컴포넌트를 가진 다른 엔 [original] | # 학습 과정 소개 월드나 하나의 맵 안에서 이동하는 포탈을 만들어 간단하게 플레이어 아바타가 맵을 이동하게 만들 수 있습니다. [PortalComponent](/apiReference/Components/PortalComponent) 사용 방법을 알아보겠습니다. # 포탈 만들기 [PortalComponent](/apiReference/Components/PortalComponent)는 동일한 포탈 컴포넌트를 가진 엔티티를 목적지로 설정하고, 플레이어 아바타가 포탈 영역에서 특정 동작을 수행하면(키 입력) 목적지로 이동할 수 [chunk_id] | Guides:90:0
[task] | distill [title] | 스프라이트 색상 조정 [category] | Guides [rephrased] | # 스프라이트/애니메이션 스프라이트 색상 조정 ## 스프라이트 (Sprite) 2D 이미지 리소스로, `SpriteRendererComponent`의 `SpriteRUID` 프로퍼티를 통해 지정합니다. * **RUID**: 스프라이트, 애니메이션, 사운드 등 리소스의 고유 ID. * **활용**: * **MSW 리소스**: 리소스 검색으로 RUID를 확인 후 `MapObject` 배치 및 `SpriteRUID` 입력. * **직접 제작 이미지**: 메이커에 업로드 시 RUID 자동 발급. `Import [original] | # 학습 과정 소개 스프라이트를 간단하게 여러 색상으로 변경할 수 있습니다. 스프라이트와 웹스프라이트의 차이점과 스프라이트 색상 변경 방법을 알아보겠습니다. # 스프라이트 2D 이미지를 스프라이트(Sprite)라 칭합니다. 스프라이트는 위치, 크기, 회전 등을 변경할 수 있습니다. 스프라이트마다 고유한 RUID 값을 갖고 있습니다. RUID 값을 이용해 간편하게 빈 모델에 스프라이트를 넣거나, 변경할 수 있습니다. 크리에이터가 직접 제작한 이미지 파일을 메이커에 업로드하면 RUID 또한 자동으로 발급됩니다. > Tip. > [chunk_id] | Guides:116:0
[task] | extract_knowledge [title] | 엔티티의 위치, 크기, 회전 조정 [category] | Guides [rephrased] | # TransformComponent: 엔티티의 위치, 크기, 회전 조정 ## 1. 개념 설명 `TransformComponent`는 월드(World)에 배치된 엔티티의 위치(Position), 크기(Scale), 회전(Rotation)을 제어하는 컴포넌트입니다. 메이플스토리 월드는 2D 모델을 기반으로 하므로, 3D 좌표계(X, Y, Z) 중 특정 축의 사용 빈도가 다릅니다. ### 좌표 축의 역할 * **X 축**: 좌우 방향. `Position`과 `Scale`에서 가장 많이 사용됩니다. * **Y 축**: 상하 [original] | # 학습 과정 소개 **TransformComponent** 구성과 사용 방법을 설명합니다. 좌표 개념을 이해하고, 엔티티의 이동, 회전, 크기 조절을 할 수 있습니다. # 엔티티 변형 방법 엔티티를 변형하는 방법은 두 가지입니다. 크리에이터의 선호에 따라 사용할 수 있습니다. * 프로퍼티 에디터에서 **TransformComponent** 프로퍼티 값을 변경합니다. * **Scene**에서 엔티티를 선택, 드래그하거나 핸들러를 이용해 조정합니다. # 좌표 이해하기 **TransformComponent**를 사용하기 위해 [chunk_id] | Guides:82:0
[task] | wikipedia [title] | 게임 시작 위치 설정 [category] | Guides [rephrased] | # 플레이어 아바타 등장 위치 설정 이 문서는 메이플스토리 월드(MapleStory Worlds)에서 플레이어 아바타의 등장 위치를 설정하는 방법을 설명합니다. 게임의 최초 시작 위치, 사망 후 재등장(리스폰) 위치, 그리고 개발 단계에서의 테스트 시작 위치 설정에 대해 다루며, `SpawnLocation` 모델과 편집기 내 **여기서 시작** 기능을 중심으로 구성됩니다. ## 플레이어 아바타의 기본 위치 `SpawnLocation` 모델이 배치되지 않은 상태에서 플레이어 아바타는 화면 중앙, 즉 좌표계 기준 X=0, Y=0 [original] | # 학습 과정 소개 **플레이어 아바타**의 등장 위치 설정 방법을 소개합니다. 게임 시작 위치, 재등장(리스폰), 게임 제작 중 테스트 위치 설정에 대해 알아보겠습니다. # 플레이어 아바타의 기본 위치 플레이어 아바타의 기본 위치는 화면 중간입니다. X, Y 좌표상 X값 0, Y값 0인 위치입니다. 기본적으로 게임 시작과 리스폰 위치가 이 설정을 따릅니다. 플레이어 아바타의 기본 위치는 **DefaultPlayer의 TransformComponent**에서 확인할 수 있습니다. # SpawnLocation을 이용한 시작 [chunk_id] | Guides:115:0
[task] | diverse_qa [title] | 게임 시작 위치 설정 [category] | Guides [rephrased] | 질문: 플레이어 아바타의 기본 위치는 좌표계상 어디를 의미합니까? 답변: X값 0, Y값 0인 화면 중간 위치를 의미합니다. 질문: 플레이어 아바타의 기본 위치를 확인하기 위해 어떤 컴포넌트를 참조해야 하는가? 답변: DefaultPlayer의 TransformComponent를 참조해야 합니다. 질문: 배치한 맵이 시작 맵일 때, 플레이어 아바타가 처음 등장하는 위치는 어디입니까? 답변: 해당 맵에 배치된 'SpawnLocation' 위치입니다. 질문: 타 맵(시작 맵이 아닌 맵)에 배치된 'SpawnLocation'은 어떤 [original] | # 학습 과정 소개 **플레이어 아바타**의 등장 위치 설정 방법을 소개합니다. 게임 시작 위치, 재등장(리스폰), 게임 제작 중 테스트 위치 설정에 대해 알아보겠습니다. # 플레이어 아바타의 기본 위치 플레이어 아바타의 기본 위치는 화면 중간입니다. X, Y 좌표상 X값 0, Y값 0인 위치입니다. 기본적으로 게임 시작과 리스폰 위치가 이 설정을 따릅니다. 플레이어 아바타의 기본 위치는 **DefaultPlayer의 TransformComponent**에서 확인할 수 있습니다. # SpawnLocation을 이용한 시작 [chunk_id] | Guides:115:0
[task] | distill [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | # 카메라 제어 (CameraService) `CameraService`를 사용하여 타깃 변경, 줌 인/아웃, 카메라 이동 및 Blend 효과를 제어합니다. ## 사전 설정 1. **맵 구성**: 좌측 끝에 `SpawnLocation`, 우측 끝에 NPC 배치. SpawnLocation 근처에 트리거용 Object 배치. 2. **컴포넌트 구성**: - **Object**: `TriggerComponent`, 스크립트 컴포넌트(`CameraControl`) 추가. - 스크립트 내 `TriggerEnterEvent` [original] | # 학습 과정 소개 게임을 만들다 보면 카메라가 비추는 대상을 변경하거나 확대, 축소를 이용해 연출해야 할 때가 있습니다. 이번 과정에서는 [CameraService](/apiReference/Services/CameraService)를 통해 타깃 카메라를 제어하는 방법과 카메라 연출 효과에 대해 알아보도록 합니다. ##### 참고 가이드 [엔티티와 컴포넌트 참조](docs?postId=164%7B%22target%22:%22\_self%22%7D) [엔티티의 충돌을 감지하는 TriggerComponent](/docs?post [chunk_id] | Guides:118:0
[task] | extract_knowledge [title] | NPC 대화창 만들기 [category] | Guides [rephrased] | # NPC 대화창 UI 제어 및 데이터 로딩 (mLua) 본 절에서는 `NPCTalk` 스크립트 컴포넌트를 통해 NPC 대화창의 UI 요소를 초기화하고, 데이터 테이블에서 대화 내용을 읽어 UI에 반영하는 방법을 다룬다. ## 1. 개념 설명 NPC 대화창은 UI 엔티티의 `Enable` 상태와 텍스트/이미지 컴포넌트의 값을 동적으로 제어하여 구현된다. 이를 위해 스크립트 컴포넌트는 다음 역할을 수행한다. 1. **데이터 로딩**: `_DataService`를 통해 외부 데이터 테이블(`NPCTalk`)을 참조한다. 2. [original] | 6. 로그가 정상 출력된다면 플레이를 종료하고 **NPCTalk** 스크립트를 다시 열고, 아래와 같이 제작에 필요한 프로퍼티를 추가합니다. | type | name | value | Sync | 설명 | | --- | --- | --- | --- | --- | | number | count | 0 |none | 스크립트에서 참조할 데이터의 rowIndex를 결정하기 위해 사용합니다. 데이터를 셋팅할때 마다 값을 1씩 증가시켜 다음줄의 데이터를 참조할 수 있도록 합니다.| | any | npc [chunk_id] | Guides:74:4
[task] | knowledge_list [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | 제시된 문서 내용만 기반으로 추출한 핵심 사실 목록입니다. 1. `CameraService`는 카메라가 비추는 대상을 변경하거나 확대 및 축소를 통해 게임 연출 효과를 구현하기 위해 사용됩니다. 2. 맵 사전 설정 시 좌우로 긴 맵을 생성하고, 좌측 끝에 `SpawnLocation`을, 우측 끝에 NPC를 배치하며, `SpawnLocation` 옆에는 카메라 제어 트리거 역할을 하는 오브젝트를 하나 배치해야 합니다. 3. `SpawnLocation` 엔티티는 Preset List의 Special 카테고리에서, Object와 NPC [original] | # 학습 과정 소개 게임을 만들다 보면 카메라가 비추는 대상을 변경하거나 확대, 축소를 이용해 연출해야 할 때가 있습니다. 이번 과정에서는 [CameraService](/apiReference/Services/CameraService)를 통해 타깃 카메라를 제어하는 방법과 카메라 연출 효과에 대해 알아보도록 합니다. ##### 참고 가이드 [엔티티와 컴포넌트 참조](docs?postId=164%7B%22target%22:%22\_self%22%7D) [엔티티의 충돌을 감지하는 TriggerComponent](/docs?post [chunk_id] | Guides:118:0
[task] | distill [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | # CameraService: 카메라 제어 카메라는 기본적으로 플레이어를 타깃으로 추적합니다. 특정 엔티티로 피사체를 변경하려면 `CameraService`의 `SwitchCameraTo()`를 사용합니다. ## API: SwitchCameraTo **시그니처** `void SwitchCameraTo(CameraComponent cameraToSwitch)` **동작** 목표 엔티티의 `CameraComponent`를 인자로 전달받아 카메라의 피사체(타깃)를 해당 엔티티로 변경합니다. **주의사항** * 매개변수는 `C [original] | 사전 설정을 마쳤으니 본격적으로 **CameraService**의 기능에 대해 알아보겠습니다. 먼저 카메라의 타깃 설정 방법을 알아봅시다. ##### void SwitchCameraTo(CameraComponent cameraToSwitch) 게임을 플레이하면 카메라는 기본적으로 플레이어를 피사체(타깃)로 삼아 계속 플레이어를 따라다니며 화면에 비춥니다.그러나 게임 장르 특성 때문에 혹은 게임의 특별한 연출을 위해서 카메라의 피사체(타깃)를 변경하고 싶을 때 CameraService의 `SwitchCameraTo()` 함수를 활 [chunk_id] | Guides:118:1
[task] | extract_knowledge [title] | NPC 대화창 만들기 [category] | Guides [rephrased] | # NPC 대화창 데이터 처리 및 UI 갱신 로직 ## 개념 설명 `ShowNextText()` 함수는 NPC 대화창의 텍스트, 이름(Name), 그리고 초상화(Portrait)를 순차적으로 갱신하기 위한 로직을 담당합니다. 이 함수는 내부 카운터(`count`)를 사용하여 현재까지 출력된 대화의 줄 수를 추적하며, 다음 줄의 데이터를 가져와 UI 엔티티에 반영합니다. 데이터 구조에 따라 각 필드(`text`, `name`, `portrait`)의 존재 여부에 따라 UI 엔티티의 활성화 상태(`Enable`)와 표시될 콘텐츠( [original] | elf.uiNameEntity.TextComponent.Text = name end if portrait ~= "" then isPortraitEnable = true self.uiPortraitEntity.SpriteGUIRendererComponent.ImageRUID = portrait end self.uiNameEntity.Enable = isNameEnable self.uiP [chunk_id] | Guides:74:5
[task] | extract_knowledge [title] | 다른 위치로 이동하는 포탈 만들기 [category] | Guides [rephrased] | # 포탈 컴포넌트(PortalComponent) 사용법 ## 개념 설명 `PortalComponent`는 월드 또는 맵 내에서 플레이어 아바타의 이동을 제어하는 컴포넌트입니다. 이 컴포넌트를 가진 엔티티를 시작점과 목적지로 설정하고, 플레이어 아바타가 포탈 영역에 진입하여 특정 동작(키 입력)을 수행하면 지정된 목적지 엔티티 위치로 이동하게 됩니다. * **단방향 연결:** 하나의 포탈 엔티티는 단 하나의 목적지만을 가질 수 있습니다. * **양방향 이동:** 두 개의 포탈 엔티티가 서로를 목적지로 설정함으로써 양방향 이 [original] | # 학습 과정 소개 월드나 하나의 맵 안에서 이동하는 포탈을 만들어 간단하게 플레이어 아바타가 맵을 이동하게 만들 수 있습니다. [PortalComponent](/apiReference/Components/PortalComponent) 사용 방법을 알아보겠습니다. # 포탈 만들기 [PortalComponent](/apiReference/Components/PortalComponent)는 동일한 포탈 컴포넌트를 가진 엔티티를 목적지로 설정하고, 플레이어 아바타가 포탈 영역에서 특정 동작을 수행하면(키 입력) 목적지로 이동할 수 [chunk_id] | Guides:90:0
[task] | distill [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | **TransitionBlendTime**과 **TransitionBlendType**은 `CameraService`에서 제공하는 프로퍼티로, 카메라 전환 시 이동 시간과 블렌딩 방식을 제어합니다. ### 1. TransitionBlendTime * **역할**: 카메라가 목표 피사체로 이동하는 데 걸리는 시간을 설정합니다. * **동작 규칙**: `SwitchCameraTo()` 호출 **이전**에 값을 설정해야 적용됩니다. 설정된 시간 동안 카메라가 부드럽게 전환된 타깃으로 이동합니다. ```lua [self] Han [original] | **TransitionBlendTime**은 **CameraService**에서 제공하는 프로퍼티로 카메라가 목표 피사체로 이동하는데 걸리는 시간을 정할 수 있습니다. **TransitionBlendTime** 시간을 `SwitchCameraTo()` 함수 호출 이전에 설정하면, 설정 시간에 걸쳐 카메라가 목표 피사체로 이동하는 것을 볼 수 있습니다. 따라서 `SwitchCameraTo()` 함수를 호출하기 전에 **TransitionBlendTime에 시간을 설정**하면, **TransitionBlendTime**의 설정 시간 동 [chunk_id] | Guides:118:2
[task] | diverse_qa [title] | 스프라이트 색상 조정 [category] | Guides [rephrased] | 질문: 스프라이트(Sprite)는 무엇으로 정의되는가? 답변: 2D 이미지를 스프라이트(Sprite)라 칭하며, 위치, 크기, 회전 등을 변경할 수 있는 객체입니다. 질문: 스프라이트를 식별하고 관리하기 위해 사용되는 고유한 값은 무엇이며, 어떤 리소스들이 이 값을 가지는가? 답변: 스프라이트는 고유한 RUID 값을 가지며, RUID는 스프라이트, 애니메이션, 사운드 등 다양한 리소스가 가진 고유한 아이디 값입니다. 질문: 크리에이터가 직접 제작한 이미지 파일을 메이커에 업로드했을 때 RUID는 어떻게 처리되는가? 답변: 크리에 [original] | # 학습 과정 소개 스프라이트를 간단하게 여러 색상으로 변경할 수 있습니다. 스프라이트와 웹스프라이트의 차이점과 스프라이트 색상 변경 방법을 알아보겠습니다. # 스프라이트 2D 이미지를 스프라이트(Sprite)라 칭합니다. 스프라이트는 위치, 크기, 회전 등을 변경할 수 있습니다. 스프라이트마다 고유한 RUID 값을 갖고 있습니다. RUID 값을 이용해 간편하게 빈 모델에 스프라이트를 넣거나, 변경할 수 있습니다. 크리에이터가 직접 제작한 이미지 파일을 메이커에 업로드하면 RUID 또한 자동으로 발급됩니다. > Tip. > [chunk_id] | Guides:116:0
[task] | knowledge_list [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | * `SwitchCameraTo()` 함수는 카메라의 기본 피사체인 플레이어에서 벗어나 특정 엔티티로 카메라 타깃을 변경하기 위해 사용됩니다. * `SwitchCameraTo()` 함수는 `CameraComponent` 타입의 인자 `cameraToSwitch`를 매개변수로 받아 해당 컴포넌트를 가진 엔티티를 카메라의 새로운 피사체로 설정합니다. * `SwitchCameraTo()` 함수는 `void` 타입의 반환 값을 가지며, 호출 시 즉시 카메라 타깃 변경 로직이 실행됩니다. * 예시 코드에서 `_CameraSer [original] | 사전 설정을 마쳤으니 본격적으로 **CameraService**의 기능에 대해 알아보겠습니다. 먼저 카메라의 타깃 설정 방법을 알아봅시다. ##### void SwitchCameraTo(CameraComponent cameraToSwitch) 게임을 플레이하면 카메라는 기본적으로 플레이어를 피사체(타깃)로 삼아 계속 플레이어를 따라다니며 화면에 비춥니다.그러나 게임 장르 특성 때문에 혹은 게임의 특별한 연출을 위해서 카메라의 피사체(타깃)를 변경하고 싶을 때 CameraService의 `SwitchCameraTo()` 함수를 활 [chunk_id] | Guides:118:1
[task] | wikipedia [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | 메이플스토리 월드의 게임 개발 과정에서 카메라가 비추는 대상을 변경하거나 확대 및 축소 효과를 통해 시각적 연출을 구현해야 하는 상황이 빈번하게 발생합니다. 본 가이드는 `CameraService` API를 활용하여 타깃 카메라를 제어하는 방법과 다양한 카메라 연출 효과를 적용하는 절차를 설명합니다. 이 가이드를 이해하기 위해서는 엔티티와 컴포넌트의 참조 구조, 충돌 감지를 위한 `TriggerComponent`, 일반 이벤트 시스템(Event System) 및 엔티티 이벤트 시스템(Entity Event System)에 대한 기초 [original] | # 학습 과정 소개 게임을 만들다 보면 카메라가 비추는 대상을 변경하거나 확대, 축소를 이용해 연출해야 할 때가 있습니다. 이번 과정에서는 [CameraService](/apiReference/Services/CameraService)를 통해 타깃 카메라를 제어하는 방법과 카메라 연출 효과에 대해 알아보도록 합니다. ##### 참고 가이드 [엔티티와 컴포넌트 참조](docs?postId=164%7B%22target%22:%22\_self%22%7D) [엔티티의 충돌을 감지하는 TriggerComponent](/docs?post [chunk_id] | Guides:118:0
[task] | wikipedia [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | # CameraService를 활용한 카메라 제어 메이플스토리 월드의 `CameraService`는 카메라의 피사체(타깃)와 전환 효과를 제어하여 게임의 연출을 관리하는 서비스입니다. 기본적으로 게임 플레이 시 카메라는 플레이어를 따라다니며 화면에 비춥니다. 그러나 게임 장르의 특성이나 특별한 연출 효과를 위해 카메라의 피사체를 다른 객체로 변경해야 하는 경우가 있습니다. 이러한 상황에서는 `CameraService`의 `SwitchCameraTo()` 함수를 활용합니다. ## 타깃 변경: SwitchCameraTo `Swit [original] | 사전 설정을 마쳤으니 본격적으로 **CameraService**의 기능에 대해 알아보겠습니다. 먼저 카메라의 타깃 설정 방법을 알아봅시다. ##### void SwitchCameraTo(CameraComponent cameraToSwitch) 게임을 플레이하면 카메라는 기본적으로 플레이어를 피사체(타깃)로 삼아 계속 플레이어를 따라다니며 화면에 비춥니다.그러나 게임 장르 특성 때문에 혹은 게임의 특별한 연출을 위해서 카메라의 피사체(타깃)를 변경하고 싶을 때 CameraService의 `SwitchCameraTo()` 함수를 활 [chunk_id] | Guides:118:1
[task] | diverse_qa [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | 질문: 이번 학습 과정에서 카메라 제어를 위해 어떤 서비스를 사용하나요? 답변: CameraService를 사용합니다. 질문: 이번 학습 과정의 주요 목표는 무엇인가요? 답변: 타깃 카메라를 제어하는 방법과 카메라 연출 효과에 대해 알아보는 것입니다. 질문: 사전 설정에서 캐릭터가 오브젝트에 닿았을 때 일어나는 카메라 동작은 무엇인가요? 답변: 카메라의 타깃이 NPC로 변경되거나 줌인/아웃됩니다. 질문: 사전 설정에서 카메라가 움직인 후 약 5초 후에 어떻게 되나요? 답변: 카메라가 다시 원 위치로 돌아옵니다. 질문: 맵 사 [original] | # 학습 과정 소개 게임을 만들다 보면 카메라가 비추는 대상을 변경하거나 확대, 축소를 이용해 연출해야 할 때가 있습니다. 이번 과정에서는 [CameraService](/apiReference/Services/CameraService)를 통해 타깃 카메라를 제어하는 방법과 카메라 연출 효과에 대해 알아보도록 합니다. ##### 참고 가이드 [엔티티와 컴포넌트 참조](docs?postId=164%7B%22target%22:%22\_self%22%7D) [엔티티의 충돌을 감지하는 TriggerComponent](/docs?post [chunk_id] | Guides:118:0
[task] | knowledge_list [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | 제공된 문서에 명시된 정보만을 기반으로 핵심 사실을 추출한 목록입니다. 1. `TransitionBlendTime`은 `CameraService`에서 제공하는 프로퍼티이며, 카메라가 목표 피사체로 이동하는 데 걸리는 시간을 설정하는 용도로 사용됩니다. 2. `SwitchCameraTo()` 함수 호출 이전에 `TransitionBlendTime`에 시간을 설정해야 하며, 이 값이 설정된 경우 해당 시간만큼 카메라가 전환된 타깃으로 이동하는 연출이 적용됩니다. 3. `HandleTriggerEnterEvent` 이벤트 핸들러는 `[ [original] | **TransitionBlendTime**은 **CameraService**에서 제공하는 프로퍼티로 카메라가 목표 피사체로 이동하는데 걸리는 시간을 정할 수 있습니다. **TransitionBlendTime** 시간을 `SwitchCameraTo()` 함수 호출 이전에 설정하면, 설정 시간에 걸쳐 카메라가 목표 피사체로 이동하는 것을 볼 수 있습니다. 따라서 `SwitchCameraTo()` 함수를 호출하기 전에 **TransitionBlendTime에 시간을 설정**하면, **TransitionBlendTime**의 설정 시간 동 [chunk_id] | Guides:118:2
[task] | extract_knowledge [title] | 게임 시작 위치 설정 [category] | Guides [rephrased] | # 플레이어 아바타 시작 위치 설정 ## 1. 개념 설명 메이플스토리 월드에서 플레이어 아바타의 위치는 게임 시작 시점, 사망 후 재등장(리스폰) 시점, 그리고 개발 중 테스트 시점에 따라 결정됩니다. * **기본 위치 (Default Position):** 별도의 설정이 없거나 `SpawnLocation`이 없다면, 아바타는 월드 좌표계 기준 `(0, 0)` 위치에 등장합니다. 이 값은 `DefaultPlayer` 엔티티의 `TransformComponent`에서 확인 가능합니다. * **SpawnLocation:** [original] | # 학습 과정 소개 **플레이어 아바타**의 등장 위치 설정 방법을 소개합니다. 게임 시작 위치, 재등장(리스폰), 게임 제작 중 테스트 위치 설정에 대해 알아보겠습니다. # 플레이어 아바타의 기본 위치 플레이어 아바타의 기본 위치는 화면 중간입니다. X, Y 좌표상 X값 0, Y값 0인 위치입니다. 기본적으로 게임 시작과 리스폰 위치가 이 설정을 따릅니다. 플레이어 아바타의 기본 위치는 **DefaultPlayer의 TransformComponent**에서 확인할 수 있습니다. # SpawnLocation을 이용한 시작 [chunk_id] | Guides:115:0
[task] | diverse_qa [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | 질문: `CameraService`의 `SwitchCameraTo()` 함수의 주요 용도는 무엇인가요? 답변: `SwitchCameraTo()` 함수는 카메라의 기본 피사체인 플레이어에서 벗어나 특정 엔티티로 카메라의 피사체(타깃)를 변경할 때 활용됩니다. 질문: `SwitchCameraTo()` 함수가 정상적으로 동작하기 위해 넘겨야 하는 매개변수의 타입은 무엇인가요? 답변: `CameraComponent` 타입의 인자를 넘겨야 합니다. 질문: 다음 코드의 `SwitchCameraTo` 호출부에서 `NPCEntity.Camer [original] | 사전 설정을 마쳤으니 본격적으로 **CameraService**의 기능에 대해 알아보겠습니다. 먼저 카메라의 타깃 설정 방법을 알아봅시다. ##### void SwitchCameraTo(CameraComponent cameraToSwitch) 게임을 플레이하면 카메라는 기본적으로 플레이어를 피사체(타깃)로 삼아 계속 플레이어를 따라다니며 화면에 비춥니다.그러나 게임 장르 특성 때문에 혹은 게임의 특별한 연출을 위해서 카메라의 피사체(타깃)를 변경하고 싶을 때 CameraService의 `SwitchCameraTo()` 함수를 활 [chunk_id] | Guides:118:1
[task] | wikipedia [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | # CameraService를 활용한 카메라 전환 시간 제어 `CameraService`의 `TransitionBlendTime` 프로퍼티는 카메라가 현재 위치에서 새로운 목표 피사체로 이동하는 데 소요되는 시간(초 단위)을 정의합니다. 이 값을 조정함으로써 카메라 전환의 속도나 부드럽기를 조절할 수 있습니다. `TransitionBlendTime`은 `SwitchCameraTo()` 메서드를 호출하기 **이전**에 설정해야 합니다. `SwitchCameraTo()`가 실행되는 시점에 `TransitionBlendTime`에 할 [original] | **TransitionBlendTime**은 **CameraService**에서 제공하는 프로퍼티로 카메라가 목표 피사체로 이동하는데 걸리는 시간을 정할 수 있습니다. **TransitionBlendTime** 시간을 `SwitchCameraTo()` 함수 호출 이전에 설정하면, 설정 시간에 걸쳐 카메라가 목표 피사체로 이동하는 것을 볼 수 있습니다. 따라서 `SwitchCameraTo()` 함수를 호출하기 전에 **TransitionBlendTime에 시간을 설정**하면, **TransitionBlendTime**의 설정 시간 동 [chunk_id] | Guides:118:2
[task] | distill [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | # CameraService: TransitionBlendType `TransitionBlendType`은 `SwitchCameraTo()` 호출 시 카메라가 타깃으로 전환되는 움직임(블렌딩) 방식을 제어하는 프로퍼티입니다. `SwitchCameraTo()` 호출 전에 `CameraBlendType` enum 값을 할당해야 적용됩니다. ## 핵심 동작 규칙 - **기본값**: `EaseInOut` - **연동 프로퍼티**: `TransitionBlendTime` (전환 시간, 초 단위) - **주의**: `TransitionBl [original] | **TranstionBlendType**은 피사체(타깃)로 전환 시 카메라의 움직임을 제어할 수 있는 프로퍼티입니다. `SwitchCameraTo()` 호출 전에 **TranstionBlendType**에 CameraBlendType의 enum 값을 할당해 타깃 전환 시 블렌드 타입을 변경할 수 있습니다. 아래는 위 예제에서 **TranstionBlendType**에 CameraBlendType.Linear를 할당하는 코드를 추가하여, 카메라의 움직임을 조금 딱딱하게 변경해보도록 하겠습니다. ```lua [self] HandleT [chunk_id] | Guides:118:3
[task] | distill [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | # CameraService를 활용한 카메라 제어 `_CameraService`를 사용해 게임 플레이 중 카메라 줌 인/아웃을 제어합니다. ## API 시그니처 및 동작 규칙 ### `void ZoomTo(number percent, number duration)` 특정 시간(`duration`) 동안 목표 줌 값(`percent`)으로 카메라를 부드럽게 전환합니다. * **percent**: 목표 줌 비율(%). 현재 값보다 크면 줌 인(확대), 작으면 줌 아웃(축소). * **duration**: 현재 줌 값에서 [original] | 게임 플레이 중에 카메라 줌 인과 줌 아웃을 제어하는 방법에 대해 알아보겠습니다. 위에서 작성한 코드는 필요하지 않기 때문에 모두 지우고, 아래와 같은 상태에서 시작합니다. ```lua [self] HandleTriggerEnterEvent (TriggerEnterEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: TriggerComponent -- Space: Server, Client ---------- [chunk_id] | Guides:118:4
[task] | knowledge_list [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | - `ZoomTo()` 함수는 특정 시간 동안 카메라 줌 인 또는 줌 아웃을 수행하는 역할을 하며, 매개변수로 `number` 타입의 `percent`와 `number` 타입의 `duration`을 받습니다. - `ZoomTo()` 함수의 `percent` 매개변수는 변경할 줌 값을 의미하며, 현재 줌 값보다 큰 값이 전달되면 화면을 확대(줌 인)하고, 작은 값이 전달되면 화면을 축소(줌 아웃)합니다. - `ZoomTo()` 함수의 `duration` 매개변수는 현재 줌 값에서 `percent` 매개변수로 지정된 값까지 도달하는 데 [original] | 게임 플레이 중에 카메라 줌 인과 줌 아웃을 제어하는 방법에 대해 알아보겠습니다. 위에서 작성한 코드는 필요하지 않기 때문에 모두 지우고, 아래와 같은 상태에서 시작합니다. ```lua [self] HandleTriggerEnterEvent (TriggerEnterEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: TriggerComponent -- Space: Server, Client ---------- [chunk_id] | Guides:118:4
[task] | extract_knowledge [title] | 스프라이트 색상 조정 [category] | Guides [rephrased] | # 스프라이트 및 색상 조정 ## 1. 개념 설명 **스프라이트(Sprite)**는 2D 이미지를 의미하며, 위치, 크기, 회전을 변경할 수 있는 객체입니다. 각 스프라이트는 고유한 **RUID(Resource Unique ID)** 값을 가지며, 이 값을 통해 빈 모델에 스프라이트를 배치하거나 변경할 수 있습니다. 크리에이터가 직접 제작한 이미지 파일을 메이커에 업로드하면 RUID가 자동으로 발급됩니다. **웹 스프라이트(Web Sprite)**는 웹에 존재하는 이미지의 URL을 사용하여 스프라이트로 표현하는 방식입니다. 직 [original] | # 학습 과정 소개 스프라이트를 간단하게 여러 색상으로 변경할 수 있습니다. 스프라이트와 웹스프라이트의 차이점과 스프라이트 색상 변경 방법을 알아보겠습니다. # 스프라이트 2D 이미지를 스프라이트(Sprite)라 칭합니다. 스프라이트는 위치, 크기, 회전 등을 변경할 수 있습니다. 스프라이트마다 고유한 RUID 값을 갖고 있습니다. RUID 값을 이용해 간편하게 빈 모델에 스프라이트를 넣거나, 변경할 수 있습니다. 크리에이터가 직접 제작한 이미지 파일을 메이커에 업로드하면 RUID 또한 자동으로 발급됩니다. > Tip. > [chunk_id] | Guides:116:0
[task] | wikipedia [title] | 스프라이트 색상 조정 [category] | Guides [rephrased] | # 스프라이트 색상 조정 메이플스토리 월드(MapleStory Worlds)에서는 스프라이트(Sprite)와 웹 스프라이트(Web Sprite)를 활용하여 2D 이미지를 객체에 표현할 수 있으며, 이를 통해 이미지의 색, 명도, 채도, 투명도를 자유롭게 조정할 수 있습니다. 본 항목은 스프라이트와 웹 스프라이트의 개념 및 설정 방법을 설명하고, `SpriteRendererComponent` 및 `WebSpriteComponent`의 `Color` 프로퍼티를 이용한 색상 조정 기능에 대해 다룹니다. ## 스프라이트 개념 및 리소스 [original] | # 학습 과정 소개 스프라이트를 간단하게 여러 색상으로 변경할 수 있습니다. 스프라이트와 웹스프라이트의 차이점과 스프라이트 색상 변경 방법을 알아보겠습니다. # 스프라이트 2D 이미지를 스프라이트(Sprite)라 칭합니다. 스프라이트는 위치, 크기, 회전 등을 변경할 수 있습니다. 스프라이트마다 고유한 RUID 값을 갖고 있습니다. RUID 값을 이용해 간편하게 빈 모델에 스프라이트를 넣거나, 변경할 수 있습니다. 크리에이터가 직접 제작한 이미지 파일을 메이커에 업로드하면 RUID 또한 자동으로 발급됩니다. > Tip. > [chunk_id] | Guides:116:0
[task] | extract_knowledge [title] | CameraService를 활용한 카메라 제어 [category] | Guides [rephrased] | # CameraService: TransitionBlendTime ## 개념 설명 `TransitionBlendTime`은 `CameraService`에서 제공하는 프로퍼티로, 카메라가 현재 위치에서 목표 피사체로 이동하는 데 걸리는 시간(초)을 정의합니다. 이 값을 설정하면 카메라는 즉시 점프하는 대신, 지정된 시간만큼 부드럽게 이동합니다. ## API 사용법 카메라 전환 효과를 적용하려면 다음 순서를 따릅니다. 1. **`TransitionBlendTime` 설정**: `SwitchCameraTo()` 호출 **이전* [original] | **TransitionBlendTime**은 **CameraService**에서 제공하는 프로퍼티로 카메라가 목표 피사체로 이동하는데 걸리는 시간을 정할 수 있습니다. **TransitionBlendTime** 시간을 `SwitchCameraTo()` 함수 호출 이전에 설정하면, 설정 시간에 걸쳐 카메라가 목표 피사체로 이동하는 것을 볼 수 있습니다. 따라서 `SwitchCameraTo()` 함수를 호출하기 전에 **TransitionBlendTime에 시간을 설정**하면, **TransitionBlendTime**의 설정 시간 동 [chunk_id] | Guides:118:2