[task] | code [pass] | ⏳ 미판정 [title] | 다른 위치로 이동하는 포탈 만들기 [question] | PortalComponent 의 PortalEntityRef 를 이용해 다른 맵으로 이동하는 포탈을 배치하고, 포탈에 닿으면 특정 사운드를 재생하는 스크립트를 작성해줘 [answer] | 제공된 참고 문서에는 `PortalComponent`의 `PortalEntityRef`를 설정하는 방법과 포탈 영역(BoxCollider)을 조정하는 방법에 대한 정보가 포함되어 있습니다. 그러나 **사운드 재생에 관련되는 API, 컴포넌트, 또는 이벤트가 문서에 전혀 언급되어 있지 않습니다.** mLua 규칙상 "참고 문서에 없는 API·이벤트·프로퍼티는 절대 지어내지 말 것"이므로, 사운드 재생 코드를 작성하는 것은 불가능합니다. 따라서 질문 중 **"PortalComponent 의 PortalEntityRef 를 이용해 다 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 월드나 하나의 맵 안에서 이동하는 포탈을 만들어 간단하게 플레이어 아바타가 맵을 이동하게 만들 수 있습니다. [PortalComponent](/apiReference/Components/PortalComponent) 사용 방법을 알아보겠습니다. # 포탈 만들기 [PortalComponent](/apiReference/Components/PortalComponent)는 동일한 포탈 컴포넌트를 가진 엔티티를 목적지로 설정하고, 플레이어 아바타가 포탈 영역에서 특정 동작을 수행하면(키 입력) 목적지로 이동할 수
[task] | single_turn [pass] | ⏳ 미판정 [title] | 스프라이트 색상 조정 [question] | 스프라이트의 색을 HSV, RGB, Lab 색 공간 값으로 직접 입력하고 싶을 때, 색상 편집기에서 어떤 기능을 이용해야 하나요? [answer] | 스프라이트의 색을 HSV, RGB, Lab 색 공간 값으로 직접 입력하려면 색상 편집기에서 **HSV, RGB, Lab 색 공간에 맞는 값을 입력하는 칸**을 이용해야 합니다. 참고 문서에 따르면, SpriteRendererComponent와 WebSpriteComponent의 **Color** 프로퍼티에서 이미지의 색, 명도, 채도, 투명도를 조정할 수 있으며, 색상 편집기 내에는 특정 색 공간(HSV, RGB, Lab)에 해당하는 값을 직접 입력하여 원하는 색을 찾을 수 있는 기능이 포함되어 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 스프라이트를 간단하게 여러 색상으로 변경할 수 있습니다. 스프라이트와 웹스프라이트의 차이점과 스프라이트 색상 변경 방법을 알아보겠습니다. # 스프라이트 2D 이미지를 스프라이트(Sprite)라 칭합니다. 스프라이트는 위치, 크기, 회전 등을 변경할 수 있습니다. 스프라이트마다 고유한 RUID 값을 갖고 있습니다. RUID 값을 이용해 간편하게 빈 모델에 스프라이트를 넣거나, 변경할 수 있습니다. 크리에이터가 직접 제작한 이미지 파일을 메이커에 업로드하면 RUID 또한 자동으로 발급됩니다. > Tip. >
[task] | code [pass] | ⏳ 미판정 [title] | 다른 위치로 이동하는 포탈 만들기 [question] | PortalComponent 를 가진 엔티티를 Scene 에 배치하고, 포탈 이동 전후로 플레이어 위치를 로그로 출력하는 스크립트를 작성해줘 [answer] | `PortalComponent`는 포탈 목적지(`PortalEntityRef`)를 설정하고 이동이 완료되면 `HandlePortalTeleportEvent` 이벤트 핸들러를 통해 이동 전후의 위치 정보를 제공합니다. 요청하신 기능(포탈 배치 후 이동 전후 플레이어 위치 로그 출력)을 구현하기 위한 mLua 스크립트는 다음과 같습니다. ### 구현 가이드 1. **Scene 에 포탈 배치**: * Preset List에서 **Portal** 모델을 선택하여 Scene에 배치합니다. * 이 모델에는 `Por [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 월드나 하나의 맵 안에서 이동하는 포탈을 만들어 간단하게 플레이어 아바타가 맵을 이동하게 만들 수 있습니다. [PortalComponent](/apiReference/Components/PortalComponent) 사용 방법을 알아보겠습니다. # 포탈 만들기 [PortalComponent](/apiReference/Components/PortalComponent)는 동일한 포탈 컴포넌트를 가진 엔티티를 목적지로 설정하고, 플레이어 아바타가 포탈 영역에서 특정 동작을 수행하면(키 입력) 목적지로 이동할 수
[task] | code [pass] | ⏳ 미판정 [title] | 다른 위치로 이동하는 포탈 만들기 [question] | 두 개의 포탈 엔티티 간 PortalEntityRef 를 서로 참조하게 연결하여 양방향 이동을 구현하는 스크립트를 작성해줘 [answer] | 참고 문서에 따르면, `PortalComponent`의 `PortalEntityRef`는 다른 포탈 엔티티를 목적지로 설정하는 프로퍼티입니다. 두 포탈을 서로 참조하게 연결하는 것은 **에디터에서 직접 설정**할 수도 있지만, 스크립트로 구현하려면 각 포탈 엔티티의 `PortalEntityRef`를 상대편 포탈 엔티티로 지정해 주어야 합니다. 단, 참고 문서에 제공된 mLua 예제 중에는 **`PortalEntityRef`를 직접 대입하는 코드**가 없습니다. 예제에서는 `_EntityService:GetEntityByPath`로 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 월드나 하나의 맵 안에서 이동하는 포탈을 만들어 간단하게 플레이어 아바타가 맵을 이동하게 만들 수 있습니다. [PortalComponent](/apiReference/Components/PortalComponent) 사용 방법을 알아보겠습니다. # 포탈 만들기 [PortalComponent](/apiReference/Components/PortalComponent)는 동일한 포탈 컴포넌트를 가진 엔티티를 목적지로 설정하고, 플레이어 아바타가 포탈 영역에서 특정 동작을 수행하면(키 입력) 목적지로 이동할 수
[task] | two_turn [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | CameraService를 활용해 캐릭터가 오브젝트에 닿았을 때 NPC로 카메라 타깃을 전환하는 기본적인 스크립트 구조는 어떻게 작성하나요? [answer] | 캐릭터가 오브젝트에 닿았을 때 NPC로 카메라 타깃을 전환하는 스크립트는 `TriggerComponent` 이벤트 핸들러를 사용하여 구현합니다. 1. **사전 설정**: * 카메라 타깃으로 전환할 NPC 엔티티에 `CameraComponent`가 추가되어 있는지 확인합니다. * 트리거 역할을 하는 오브젝트에 `TriggerComponent`와 해당 스크립트 컴포넌트를 추가합니다. * 스크립트 컴포넌트에서 `TriggerEnterEvent` 이벤트 핸들러를 설정하고, 이벤트 센더를 `Self`로 지 [followup] | TriggerEnterEvent 핸들러 내에서 _CameraService의 어떤 메서드를 호출하여 NPC 엔티티를 타깃으로 지정하는지, 그리고 Blend 효과 옵션을 지정하는 구체적인 코드 예시를 보여주세요. [followup_answer] | NPC 엔티티를 카메라 타깃으로 지정하기 위해 `HandleTriggerEnterEvent` 핸들러 내에서 호출해야 하는 메서드는 `_CameraService:SwitchCameraTo`입니다. 이 메서드의 매개변수로 목표 NPC 엔티티의 `CameraComponent`를 전달하면 카메라가 해당 NPC를 따라가게 됩니다. Blend 효과(카메라 전환 시 부드럽게 섞이는 효과)를 적용하려면 `SwitchCameraTo` 호출 전에 `_CameraService.TransitionBlendTime` 프로퍼티에 전환 시간을 설정하면 됩니 [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 게임을 만들다 보면 카메라가 비추는 대상을 변경하거나 확대, 축소를 이용해 연출해야 할 때가 있습니다. 이번 과정에서는 [CameraService](/apiReference/Services/CameraService)를 통해 타깃 카메라를 제어하는 방법과 카메라 연출 효과에 대해 알아보도록 합니다. ##### 참고 가이드 [엔티티와 컴포넌트 참조](docs?postId=164%7B%22target%22:%22\_self%22%7D) [엔티티의 충돌을 감지하는 TriggerComponent](/docs?post
[task] | single_turn [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | TriggerEnterEvent 핸들러 안에서 카메라 타깃을 변경하려면 어떤 서비스와 메서드를 조합해서 사용하나요? [answer] | `_CameraService` 서비스의 `TransitionBlendTime` 프로퍼티와 `SwitchCameraTo()` 메서드를 조합하여 사용해야 합니다. `SwitchCameraTo()` 함수를 호출하기 전에 `TransitionBlendTime`에 카메라 전환 시간을 설정하면, 해당 시간 동안 카메라가 목표 피사체로 부드럽게 이동합니다. `SwitchCameraTo()`의 매개변수로는 타깃이 될 엔티티의 `CameraComponent`를 넘겨줍니다. 아래는 `TriggerEnterEvent` 핸들러 안에서 카메라 타깃을 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | **TransitionBlendTime**은 **CameraService**에서 제공하는 프로퍼티로 카메라가 목표 피사체로 이동하는데 걸리는 시간을 정할 수 있습니다. **TransitionBlendTime** 시간을 `SwitchCameraTo()` 함수 호출 이전에 설정하면, 설정 시간에 걸쳐 카메라가 목표 피사체로 이동하는 것을 볼 수 있습니다. 따라서 `SwitchCameraTo()` 함수를 호출하기 전에 **TransitionBlendTime에 시간을 설정**하면, **TransitionBlendTime**의 설정 시간 동
[task] | instruction_following [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | `TriggerEnterEvent` 핸들러 내에서 NPC 엔티티의 경로를 받아오는 과정과 `SwitchCameraTo` 호출까지의 순서를 3단계 번호 목록으로 작성하세요. [answer] | `TriggerEnterEvent` 핸들러 내에서 NPC 엔티티를 찾고 카메라 타깃을 변경하는 과정은 다음 3단계로 진행됩니다. 1. `_EntityService:GetEntityByPath()` 메서드를 호출하여 배치한 NPC 엔티티의 경로(예: `/maps/map01/npc-13`)를 매개변수로 전달하고, 해당 NPC 엔티티 객체를 변수(예: `NPCEntity`)에 저장합니다. 2. (선택 사항) 카메라 전환의 속도나 방식을 조절하려면 `_CameraService`의 `TransitionBlendTime` 또는 `Tran [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 사전 설정을 마쳤으니 본격적으로 **CameraService**의 기능에 대해 알아보겠습니다. 먼저 카메라의 타깃 설정 방법을 알아봅시다. ##### void SwitchCameraTo(CameraComponent cameraToSwitch) 게임을 플레이하면 카메라는 기본적으로 플레이어를 피사체(타깃)로 삼아 계속 플레이어를 따라다니며 화면에 비춥니다.그러나 게임 장르 특성 때문에 혹은 게임의 특별한 연출을 위해서 카메라의 피사체(타깃)를 변경하고 싶을 때 CameraService의 `SwitchCameraTo()` 함수를 활
[task] | single_turn [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | NPC 엔티티의 CameraComponent를 SwitchCameraTo 함수에 넘길 때 어떤 경로로 엔티티를 가져와야 하나요? [answer] | NPC 엔티티를 가져오기 위해 `_EntityService:GetEntityByPath()` 함수를 사용합니다. 이 함수에는 해당 NPC가 월드에 배치된 **절대 경로(Absolute Path)** 문자열을 매개변수로 전달해야 합니다. 문서 예시에서 사용된 경로는 다음과 같습니다: ```lua /maps/map01/npc-13 ``` 이 경로는 `/maps/` 아래에 있는 `map01` 맵 안에 `npc-13`이라는 이름(또는 ID)을 가진 엔티티를 가리킵니다. 자신의 프로젝트에서 배치한 NPC의 실제 경로를 확인하여 해당 문 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | **TransitionBlendTime**은 **CameraService**에서 제공하는 프로퍼티로 카메라가 목표 피사체로 이동하는데 걸리는 시간을 정할 수 있습니다. **TransitionBlendTime** 시간을 `SwitchCameraTo()` 함수 호출 이전에 설정하면, 설정 시간에 걸쳐 카메라가 목표 피사체로 이동하는 것을 볼 수 있습니다. 따라서 `SwitchCameraTo()` 함수를 호출하기 전에 **TransitionBlendTime에 시간을 설정**하면, **TransitionBlendTime**의 설정 시간 동
[task] | code [pass] | ⏳ 미판정 [title] | 배경음악 변경하기 [question] | SoundComponent 의 상태를 확인하여 배경음악이 재생 중인지 판단하는 로직을 포함하는 스크립트를 작성해줘 [answer] | 제공된 참고 문서에는 `SoundComponent`를 통해 배경음악을 맵에 추가하는 방법(Preset List에서 BGM 선택)과 `SoundComponent`가 맵의 Property에 추가된다는 사실만 언급되어 있습니다. 그러나 `SoundComponent`에 **재생 상태(Playing/Stop)를 확인하기 위한 프로퍼티(예: IsPlaying)나 메서드(예: Play(), Stop())가 있는지 여부는 문서에 명시되어 있지 않습니다.** 또한 `SoundComponent`의 구체적인 API(프로퍼티/메서드 목록)에 대한 상세 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 게임에 어울리는 배경음악을 간편하게 넣어봅시다. # 배경음악 넣기 1. **Preset List - BGM**을 선택합니다. 2. 원하는 배경음악을 클릭합니다. 3. map의 **Property**에 [**SoundComponent**](/apiReference/Components/SoundComponent)가 추가된 것을 확인할 수 있습니다. 제어할 수 있는 프로퍼티에 대한 자세한 내용은 [**SoundComponent**](/apiReference/Com
[task] | single_turn [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | CameraService로 카메라 타깃을 NPC로 변경할 때, NPC에 CameraComponent가 없으면 어떤 현상이 발생하나요? [answer] | 제공된 문서에는 `CameraComponent`가 없는 NPC에 `_CameraService:SwitchCameraTo`를 호출했을 때 발생하는 구체적인 현상(오류 발생 여부, 동작 중단, 무시 등)에 대한 설명이 없습니다. 문서에서는 사전 설정 단계에서 NPC와 DefaultPlayer에 **CameraComponent**가 반드시 추가되어 있어야 한다고 명시하고 있으며, `SwitchCameraTo` 호출 시 매개변수로 엔티티의 `CameraComponent`를 넘겨주는 코드 예제만 제시하고 있습니다. 따라서 해당 컴포넌트가 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 게임을 만들다 보면 카메라가 비추는 대상을 변경하거나 확대, 축소를 이용해 연출해야 할 때가 있습니다. 이번 과정에서는 [CameraService](/apiReference/Services/CameraService)를 통해 타깃 카메라를 제어하는 방법과 카메라 연출 효과에 대해 알아보도록 합니다. ##### 참고 가이드 [엔티티와 컴포넌트 참조](docs?postId=164%7B%22target%22:%22\_self%22%7D) [엔티티의 충돌을 감지하는 TriggerComponent](/docs?post
[task] | code [pass] | ⏳ 미판정 [title] | 스프라이트 색상 조정 [question] | WebSpriteComponent 를 사용하여 지정된 URL 의 이미지를 로드하고, OnBeginPlay 함수에서 해당 웹 스프라이트의 투명도를 50% 로 조정하는 스크립트를 작성해줘 [answer] | `WebSpriteComponent`를 통해 지정된 URL의 이미지를 로드하고, `OnBeginPlay`에서 투명도(Alpha)를 0.5(50%)로 설정하는 스크립트는 다음과 같습니다. ```lua Property: [None] string TargetUrl = "https://example.com/image.png" WebSpriteComponent webSprite = nil Method: [client only] void OnBeginPlay () { self.webSprite = self.Entity.WebSpriteC [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 스프라이트를 간단하게 여러 색상으로 변경할 수 있습니다. 스프라이트와 웹스프라이트의 차이점과 스프라이트 색상 변경 방법을 알아보겠습니다. # 스프라이트 2D 이미지를 스프라이트(Sprite)라 칭합니다. 스프라이트는 위치, 크기, 회전 등을 변경할 수 있습니다. 스프라이트마다 고유한 RUID 값을 갖고 있습니다. RUID 값을 이용해 간편하게 빈 모델에 스프라이트를 넣거나, 변경할 수 있습니다. 크리에이터가 직접 제작한 이미지 파일을 메이커에 업로드하면 RUID 또한 자동으로 발급됩니다. > Tip. >
[task] | single_turn [pass] | ⏳ 미판정 [title] | 스프라이트 색상 조정 [question] | 스프라이트의 색상을 헥스코드(HexCode)로 지정할 때, 다른 스프라이트에 동일한 색을 빠르게 적용하기 위해 어떤 값을 복사해서 사용해야 하나요? [answer] | 헥스코드(HexCode) 값을 복사해서 사용해야 합니다. 스프라이트 색상 조정 시 색상 창에서 원하는 색을 고르면 헥스코드 값이 표시됩니다. 이 값을 복사해 다른 스프라이트에 적용하면 동일한 색을 빠르게 쓸 수 있습니다. 예를 들어, 배치한 스프라이트의 헥스코드 값을 `ff53a1`로 변경하면 해당 색이 스프라이트에 씌워집니다. mLua 코드에서 스프라이트 색상을 지정할 때는 `Color` 타입을 사용합니다. 헥스코드 값(`ff53a1`)을 RGB 값으로 변환하여 `Color(r, g, b, a)` 형태로 입력합니다. ```l [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 스프라이트를 간단하게 여러 색상으로 변경할 수 있습니다. 스프라이트와 웹스프라이트의 차이점과 스프라이트 색상 변경 방법을 알아보겠습니다. # 스프라이트 2D 이미지를 스프라이트(Sprite)라 칭합니다. 스프라이트는 위치, 크기, 회전 등을 변경할 수 있습니다. 스프라이트마다 고유한 RUID 값을 갖고 있습니다. RUID 값을 이용해 간편하게 빈 모델에 스프라이트를 넣거나, 변경할 수 있습니다. 크리에이터가 직접 제작한 이미지 파일을 메이커에 업로드하면 RUID 또한 자동으로 발급됩니다. > Tip. >
[task] | single_turn [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | DefaultPlayer에 CameraComponent가 누락되어 있는데, 이 경우 카메라 제어 스크립트를 실행하면 에러가 발생하나요? [answer] | 제공된 참고 문서에는 `DefaultPlayer`에 `CameraComponent`가 누락된 상태에서 카메라 제어 스크립트를 실행했을 때 발생하는 구체적인 에러 메시지나 동작에 대한 설명이 없습니다. 문서에는 사전 설정 단계에서 **"DefaultPlayer에도 CameraComponent가 추가되어 있는지 확인합니다. 만일 캐릭터에 CameraComponent가 붙어있지 않다면 추가합니다."**라고 명시하여, 정상적인 카메라 제어를 위해서는 이 컴포넌트가 필수적으로 존재해야 함을 강조하고 있을 뿐, 누락 시의 에러 발생 여부는 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 게임을 만들다 보면 카메라가 비추는 대상을 변경하거나 확대, 축소를 이용해 연출해야 할 때가 있습니다. 이번 과정에서는 [CameraService](/apiReference/Services/CameraService)를 통해 타깃 카메라를 제어하는 방법과 카메라 연출 효과에 대해 알아보도록 합니다. ##### 참고 가이드 [엔티티와 컴포넌트 참조](docs?postId=164%7B%22target%22:%22\_self%22%7D) [엔티티의 충돌을 감지하는 TriggerComponent](/docs?post
[task] | two_turn [pass] | ⏳ 미판정 [title] | 게임 시작 위치 설정 [question] | 플레이어 아바타의 게임 시작 위치와 리스폰 위치를 설정하는 기본 원리는 무엇인가요? [answer] | 플레이어 아바타의 게임 시작 위치와 리스폰 위치 설정은 다음과 같은 원리로 동작합니다. **1. 기본 위치 (Default Location)** * 맵에 `SpawnLocation`이 배치되어 있지 않다면, 플레이어 아바타는 **X: 0, Y: 0** (화면 중앙) 위치에 등장합니다. * 이 기본 위치는 `DefaultPlayer`의 `TransformComponent`에서 확인할 수 있습니다. * 게임 시작과 리스폰(재등장) 모두 이 기본 설정을 따릅니다. **2. SpawnLocation을 이용한 위치 설정** * [followup] | 여러 개의 'SpawnLocation'이 배치된 맵에서 플레이어 아바타가 사망했을 때 재등장 위치가 어떻게 결정되는지 구체적으로 설명해 주세요. [followup_answer] | 여러 개의 'SpawnLocation'이 배치된 맵에서 플레이어 아바타가 사망했을 때 재등장 위치는 **'SpawnLocation'과 플레이어 아바타 사이의 거리**를 기준으로 결정됩니다. 구체적인 동작 원리는 다음과 같습니다. 1. **가장 가까운 위치 선택**: 한 맵 내에 'SpawnLocation'이 여러 개 존재할 경우, 사망 시점에 플레이어 아바타와 물리적 거리가 가장 짧은 'SpawnLocation'이 재등장 위치로 선택됩니다. 2. **진행 방향 무관**: 플레이어 아바타의 진행 방향(왼쪽, 오른쪽 등)은 재등 [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 **플레이어 아바타**의 등장 위치 설정 방법을 소개합니다. 게임 시작 위치, 재등장(리스폰), 게임 제작 중 테스트 위치 설정에 대해 알아보겠습니다. # 플레이어 아바타의 기본 위치 플레이어 아바타의 기본 위치는 화면 중간입니다. X, Y 좌표상 X값 0, Y값 0인 위치입니다. 기본적으로 게임 시작과 리스폰 위치가 이 설정을 따릅니다. 플레이어 아바타의 기본 위치는 **DefaultPlayer의 TransformComponent**에서 확인할 수 있습니다. # SpawnLocation을 이용한 시작
[task] | code [pass] | ⏳ 미판정 [title] | 스프라이트 색상 조정 [question] | SpriteRendererComponent 의 Color 프로퍼티를 활용하여 OnUpdate 함수에서 시간의 흐름에 따라 스프라이트 색상이 천천히 변하는 효과를 구현하는 스크립트를 작성해줘 [answer] | `SpriteRendererComponent`의 `Color` 프로퍼티는 `Color` 객체를 가지며, `OnUpdate`에서 매 프레임마다 색상을 변경하면 시간의 흐름에 따라 색이 변하는 효과를 만들 수 있습니다. 아래 예제에서는 `OnUpdate`의 `delta` 값을 누적하여 0에서 1 사이의 값을 만들고, 이를 `Color` 생성자의 R, G, B 인자로 활용하여 색상이 천천히 변하게 했습니다. ```lua Property: [None] number timeAccumulator = 0 Method: [client only [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 스프라이트를 간단하게 여러 색상으로 변경할 수 있습니다. 스프라이트와 웹스프라이트의 차이점과 스프라이트 색상 변경 방법을 알아보겠습니다. # 스프라이트 2D 이미지를 스프라이트(Sprite)라 칭합니다. 스프라이트는 위치, 크기, 회전 등을 변경할 수 있습니다. 스프라이트마다 고유한 RUID 값을 갖고 있습니다. RUID 값을 이용해 간편하게 빈 모델에 스프라이트를 넣거나, 변경할 수 있습니다. 크리에이터가 직접 제작한 이미지 파일을 메이커에 업로드하면 RUID 또한 자동으로 발급됩니다. > Tip. >
[task] | two_turn [pass] | ⏳ 미판정 [title] | 게임 시작 위치 설정 [question] | 'SpawnLocation' 모델을 사용해서 게임 시작 맵의 등장 지점을 설정하는 절차와, 테스트 시 '여기서 시작' 기능이 어떤 우선순위를 가지는지 알려주세요. [answer] | 메이플스토리 월드에서 'SpawnLocation' 모델을 사용하여 게임 시작 맵의 등장 지점을 설정하는 절차와 테스트 시 '여기서 시작' 기능의 우선순위는 다음과 같습니다. ### 1. 'SpawnLocation' 모델을 사용한 게임 시작 위치 설정 절차 배치한 맵이 게임의 **시작 맵**인 경우, 해당 맵에 배치한 'SpawnLocation' 모델 위치에 플레이어 아바타가 처음 등장하게 됩니다. 타 맵에 배치한 'SpawnLocation'은 맵 진입 시나 리스폰 위치로 활용됩니다. 설정은 아래 절차에 따라 진행합니다. 1. [followup] | '여기서 시작'을 발판이나 타일 없이 빈 공간에 지정했을 때 테스트 시작 시 캐릭터 위치가 어떻게 처리되는지 예외 상황을 설명해 주세요. [followup_answer] | '여기서 시작' 기능을 사용할 때, 맵에 발판이나 타일을 배치하지 않은 빈 공간에 시작 위치를 지정하면 예외 상황이 발생합니다. 이 경우 테스트가 시작될 때 캐릭터는 의도한 위치가 아닌 **임의로 화면 중앙**에 배치됩니다. 의도한 위치에 캐릭터가 정확하게 나타나도록 하려면, 캐릭터가 설 수 있는 **발판 영역 위에** 시작 위치를 지정해야 합니다. [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 **플레이어 아바타**의 등장 위치 설정 방법을 소개합니다. 게임 시작 위치, 재등장(리스폰), 게임 제작 중 테스트 위치 설정에 대해 알아보겠습니다. # 플레이어 아바타의 기본 위치 플레이어 아바타의 기본 위치는 화면 중간입니다. X, Y 좌표상 X값 0, Y값 0인 위치입니다. 기본적으로 게임 시작과 리스폰 위치가 이 설정을 따릅니다. 플레이어 아바타의 기본 위치는 **DefaultPlayer의 TransformComponent**에서 확인할 수 있습니다. # SpawnLocation을 이용한 시작
[task] | single_turn [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | 카메라 전환 속도를 빠르게 만들려면 어떤 순서로 프로퍼티를 설정해야 하나요? [answer] | 카메라 전환 속도를 빠르게(즉, 전환 시간을 짧게) 만들려면 `SwitchCameraTo()` 함수를 호출하기 **이전에** `TransitionBlendTime` 프로퍼티에 원하는 시간 값을 설정해야 합니다. `TransitionBlendTime`은 카메라가 목표 피사체로 이동하는 데 걸리는 시간을 지정합니다. 이 값을 0에 가깝게(예: 0.1, 0.5 등) 설정할수록 카메라 전환이 빠르게 이루어집니다. 아래는 전환 시간을 0.5초로 빠르게 설정하여 카메라를 NPC로 전환하는 예시 코드입니다. ```lua Event Hand [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | **TransitionBlendTime**은 **CameraService**에서 제공하는 프로퍼티로 카메라가 목표 피사체로 이동하는데 걸리는 시간을 정할 수 있습니다. **TransitionBlendTime** 시간을 `SwitchCameraTo()` 함수 호출 이전에 설정하면, 설정 시간에 걸쳐 카메라가 목표 피사체로 이동하는 것을 볼 수 있습니다. 따라서 `SwitchCameraTo()` 함수를 호출하기 전에 **TransitionBlendTime에 시간을 설정**하면, **TransitionBlendTime**의 설정 시간 동
[task] | single_turn [pass] | ⏳ 미판정 [title] | 스프라이트 색상 조정 [question] | 스프라이트와 웹 스프라이트를 구분해서 사용할 때 각각 어떤 경우에 적합하며, 웹 스프라이트 사용 시 반드시 확인해야 할 사항이 무엇인가요? [answer] | 스프라이트(Sprite)와 웹 스프라이트(Web Sprite)는 이미지 출처와 활용 방식에 따라 다음과 같이 구분하여 사용해야 합니다. ### 1. 스프라이트(Sprite) * **적합한 경우:** * 메이플스토리 월드에서 제공하는 리소스나, 크리에이터가 직접 제작하여 메이커에 업로드한 이미지 파일을 사용할 때 적합합니다. * 이미지 파일이 로컬 리소스로 관리되며 고유한 **RUID(Resource Unique ID)** 값을 가지므로, 이를 통해 안정적으로 이미지를 배치하고 변경할 수 있습니다. * [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 스프라이트를 간단하게 여러 색상으로 변경할 수 있습니다. 스프라이트와 웹스프라이트의 차이점과 스프라이트 색상 변경 방법을 알아보겠습니다. # 스프라이트 2D 이미지를 스프라이트(Sprite)라 칭합니다. 스프라이트는 위치, 크기, 회전 등을 변경할 수 있습니다. 스프라이트마다 고유한 RUID 값을 갖고 있습니다. RUID 값을 이용해 간편하게 빈 모델에 스프라이트를 넣거나, 변경할 수 있습니다. 크리에이터가 직접 제작한 이미지 파일을 메이커에 업로드하면 RUID 또한 자동으로 발급됩니다. > Tip. >
[task] | instruction_following [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | TranstionBlendType이 Cut으로 설정될 때 TranstitionBlendTime 프로퍼티의 효력에 대해 한 문장 이내로 답하세요. [answer] | `TransitionBlendType`이 `Cut`일 때 `TransitionBlendTime`은 의미가 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | **TranstionBlendType**은 피사체(타깃)로 전환 시 카메라의 움직임을 제어할 수 있는 프로퍼티입니다. `SwitchCameraTo()` 호출 전에 **TranstionBlendType**에 CameraBlendType의 enum 값을 할당해 타깃 전환 시 블렌드 타입을 변경할 수 있습니다. 아래는 위 예제에서 **TranstionBlendType**에 CameraBlendType.Linear를 할당하는 코드를 추가하여, 카메라의 움직임을 조금 딱딱하게 변경해보도록 하겠습니다. ```lua [self] HandleT
[task] | single_turn [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | 타깃 전환 시 줌인/아웃 효과와 위치 이동 효과를 동시에 적용하고 싶은데, CameraService의 메서드 호출 순서에 제약이 있나요? [answer] | 제공된 참고 문서에는 CameraService의 메서드 호출 순서에 대한 제약 사항이 명시되어 있지 않습니다. 문서에서 언급된 CameraService 관련 기능은 다음과 같습니다: 1. `SwitchCameraTo(CameraComponent)`: 카메라 타깃을 변경합니다. 2. `TransitionBlendTime` (Property): 카메라 타깃 전환 시 블렌드 효과를 적용하는 시간을 설정합니다. 문서 예제에서는 `TransitionBlendTime`을 설정한 후 `SwitchCameraTo`를 호출하는 순서로 작성되어 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 게임을 만들다 보면 카메라가 비추는 대상을 변경하거나 확대, 축소를 이용해 연출해야 할 때가 있습니다. 이번 과정에서는 [CameraService](/apiReference/Services/CameraService)를 통해 타깃 카메라를 제어하는 방법과 카메라 연출 효과에 대해 알아보도록 합니다. ##### 참고 가이드 [엔티티와 컴포넌트 참조](docs?postId=164%7B%22target%22:%22\_self%22%7D) [엔티티의 충돌을 감지하는 TriggerComponent](/docs?post
[task] | instruction_following [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | 카메라가 움직인 후 약 5초 만에 원 위치로 돌아오도록 설정하는 로직을 단계별 번호 목록으로 작성하세요. [answer] | 카메라가 움직인 후 약 5초 만에 원 위치로 돌아오도록 설정하는 로직은 다음과 같은 단계로 구성됩니다. 1. **타이머 변수 프로퍼티 선언** 스크립트 컴포넌트의 `Property:` 블록에 카메라가 움직이는 시간을 기록할 `number` 타입의 변수(예: `moveTime`)와 현재 카메라가 이동 상태인지 확인하기 위한 `boolean` 타입의 변수(예: `isMoving`)를 선언합니다. 2. **카메라 이동 시작 로직 구현** 카메라를 움직이고 싶은 시점(예: 트리거 이벤트 핸들러 내부)에서 카메라 이동 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 게임을 만들다 보면 카메라가 비추는 대상을 변경하거나 확대, 축소를 이용해 연출해야 할 때가 있습니다. 이번 과정에서는 [CameraService](/apiReference/Services/CameraService)를 통해 타깃 카메라를 제어하는 방법과 카메라 연출 효과에 대해 알아보도록 합니다. ##### 참고 가이드 [엔티티와 컴포넌트 참조](docs?postId=164%7B%22target%22:%22\_self%22%7D) [엔티티의 충돌을 감지하는 TriggerComponent](/docs?post
[task] | single_turn [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | 카메라가 5초간 이동 후 자동으로 원위치로 돌아가게 하려면 TimerService와 CameraService를 어떻게 조합해야 하나요? [answer] | 제공된 문서에는 `TimerService`를 사용하여 카메라를 원위치로 되돌리는 구체적인 코드 예제나 API 사용법이 포함되어 있지 않습니다. 문서에서는 "카메라가 움직이고, 약 5초 후에 다시 원 위치로 돌아온다"는 연출 효과를 사전 설정의 목표 중 하나로 언급하고 있지만, 이를 구현하는 `TimerService`와 `CameraService`의 조합에 대한 실제 스크립트 코드나 API 명세는 제공되지 않았습니다. 따라서 요청하신 "5초간 이동 후 자동으로 원위치"를 구현하는 정확한 mLua 코드는 해당 문서 근거로 작성할 수 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 게임을 만들다 보면 카메라가 비추는 대상을 변경하거나 확대, 축소를 이용해 연출해야 할 때가 있습니다. 이번 과정에서는 [CameraService](/apiReference/Services/CameraService)를 통해 타깃 카메라를 제어하는 방법과 카메라 연출 효과에 대해 알아보도록 합니다. ##### 참고 가이드 [엔티티와 컴포넌트 참조](docs?postId=164%7B%22target%22:%22\_self%22%7D) [엔티티의 충돌을 감지하는 TriggerComponent](/docs?post
[task] | single_turn [pass] | ⏳ 미판정 [title] | 스프라이트 색상 조정 [question] | SpriteRendererComponent의 SpriteRUID 프로퍼티에 값을 넣기 전에 RUID를 어떻게 확보해야 하나요? [answer] | SpriteRendererComponent의 SpriteRUID 프로퍼티에 값을 넣기 전에 RUID를 확보하는 방법은 크게 두 가지입니다. **1. 메이플스토리 월드(MSW)에서 제공하는 리소스 사용 시** * 메이플스토리 월드의 **리소스 검색창**에서 원하는 스프라이트 리소스를 검색합니다. * 검색 결과에서 해당 리소스의 **RUID 값을 복사**합니다. (예: `214069132ceb4962b374c8080fe265ef`) * 복사한 RUID 값을 스프라이트가 적용된 엔티티의 `SpriteRendererCompon [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 스프라이트를 간단하게 여러 색상으로 변경할 수 있습니다. 스프라이트와 웹스프라이트의 차이점과 스프라이트 색상 변경 방법을 알아보겠습니다. # 스프라이트 2D 이미지를 스프라이트(Sprite)라 칭합니다. 스프라이트는 위치, 크기, 회전 등을 변경할 수 있습니다. 스프라이트마다 고유한 RUID 값을 갖고 있습니다. RUID 값을 이용해 간편하게 빈 모델에 스프라이트를 넣거나, 변경할 수 있습니다. 크리에이터가 직접 제작한 이미지 파일을 메이커에 업로드하면 RUID 또한 자동으로 발급됩니다. > Tip. >
[task] | two_turn [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | SwitchCameraTo 함수를 호출할 때 전달해야 하는 매개 변수의 정확한 타입과, CameraComponent를 가진 엔티티를 어떻게 찾아야 하나요? [answer] | `SwitchCameraTo()` 함수를 호출할 때 전달해야 하는 매개 변수의 타입은 **`CameraComponent`** 입니다. `CameraComponent`를 가진 엔티티를 찾고 그 컴포넌트를 전달하는 방법은 다음과 같습니다. 1. **엔티티 경로로 엔티티 검색**: `_EntityService:GetEntityByPath()` 메서드를 사용하여 배치한 엔티티의 경로를 입력하고 엔티티를 받아옵니다. 2. **CameraComponent 접근**: 검색된 엔티티 객체를 통해 `.CameraComponent` 속성에 직 [followup] | _EntityService:GetEntityByPath로 엔티티를 가져온 후 .CameraComponent에 접근하는 과정이 코드에서 어떻게 구현되는지 설명해 주세요. [followup_answer] | `_EntityService:GetEntityByPath`로 엔티티를 가져온 후 `.CameraComponent`에 접근하는 과정은 다음과 같이 구현됩니다. 1. **엔티티 객체 획득**: `_EntityService:GetEntityByPath(경로)` 함수를 호출하여 특정 경로에 배치된 엔티티를 반환받습니다. 이 반환값은 엔티티를 나타내는 객체입니다. 2. **컴포넌트 직접 접근**: mLua에서는 `GetComponent` 메서드를 사용하지 않고, 엔티티 객체 뒤에 점(`.`)을 붙여 해당 엔티티에 장착된 컴포넌트 이름을 [scores] | [judge_reason] | [source_doc] | 사전 설정을 마쳤으니 본격적으로 **CameraService**의 기능에 대해 알아보겠습니다. 먼저 카메라의 타깃 설정 방법을 알아봅시다. ##### void SwitchCameraTo(CameraComponent cameraToSwitch) 게임을 플레이하면 카메라는 기본적으로 플레이어를 피사체(타깃)로 삼아 계속 플레이어를 따라다니며 화면에 비춥니다.그러나 게임 장르 특성 때문에 혹은 게임의 특별한 연출을 위해서 카메라의 피사체(타깃)를 변경하고 싶을 때 CameraService의 `SwitchCameraTo()` 함수를 활
[task] | instruction_following [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | 주어진 TriggerEnterEvent 핸들러 코드에서 _CameraService.TransitionBlendType에 CameraBlendType.Linear를 할당하는 문장만 추출하여 코드만 출력하고 설명은 주석으로 작성하세요. [answer] | ```lua -- 카메라의 움직임(블렌드 타입)을 설정합니다. -- Linear: 카메라가 일정한 속도로 선형적으로 전환되어 딱딱하고 기계적인 느낌을 줍니다. _CameraService.TransitionBlendType = CameraBlendType.Linear ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | **TranstionBlendType**은 피사체(타깃)로 전환 시 카메라의 움직임을 제어할 수 있는 프로퍼티입니다. `SwitchCameraTo()` 호출 전에 **TranstionBlendType**에 CameraBlendType의 enum 값을 할당해 타깃 전환 시 블렌드 타입을 변경할 수 있습니다. 아래는 위 예제에서 **TranstionBlendType**에 CameraBlendType.Linear를 할당하는 코드를 추가하여, 카메라의 움직임을 조금 딱딱하게 변경해보도록 하겠습니다. ```lua [self] HandleT
[task] | two_turn [pass] | ⏳ 미판정 [title] | 다른 위치로 이동하는 포탈 만들기 [question] | 포탈의 물리적 인식 범위(BoxCollider, BoxSize, BoxOffset)를 스프라이트와 독립적으로 조정하는 방법은 무엇이며, 코드나 컴포넌트 프로퍼티를 통해 이 범위를 동적으로 변경할 수 있나요? [answer] | 참고 문서에 따르면, 포탈의 물리적 인식 범위는 스프라이트 크기와 독립적으로 조정할 수 있습니다. 이 범위는 `PortalComponent`에 포함된 `BoxCollider`, `BoxOffset`, `BoxSize` 프로퍼티를 통해 제어됩니다. **1. 포탈 인식 범위 조정 방법** 포탈로 인식하는 범위는 다음과 같은 프로퍼티들로 구성되며, 이들은 연동되어 있습니다. * **BoxCollider**: 포탈 범위 편집 기능을 활성화합니다. * **BoxOffset**: 포탈로 인식하는 범위(위치)입니다. * **Bo [followup] | Box Collider의 Edit 모드를 활성화했을 때 X, Y 값을 직접 입력하거나 핸들러로 조정하는 과정이 UI에만 국한된 것인지, mLua 스크립트를 통해 BoxSize 프로퍼티 값을 런타임에 수정할 수 있는 API가 문서에 명시되어 있나요? [followup_answer] | 제공된 참고 문서에 따르면, `PortalComponent`의 `BoxSize` 프로퍼티 값을 mLua 스크립트를 통해 런타임에 수정하는 API나 코드가 **명시되어 있지 않습니다.** 문서에는 포탈 영역을 조정하는 방법에 대해 다음과 같이만 설명하고 있습니다. 1. **Box Collider - Edit** 버튼을 눌러 편집 가능 상태(빨간색 영역)로 활성화합니다. 2. X, Y 값을 직접 입력하거나 박스 핸들러를 잡아당겨 크기를 변경합니다. 이는 에디터 UI를 통한 정적(Static) 설정 과정이며, 해당 값을 스크립트에서 [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 월드나 하나의 맵 안에서 이동하는 포탈을 만들어 간단하게 플레이어 아바타가 맵을 이동하게 만들 수 있습니다. [PortalComponent](/apiReference/Components/PortalComponent) 사용 방법을 알아보겠습니다. # 포탈 만들기 [PortalComponent](/apiReference/Components/PortalComponent)는 동일한 포탈 컴포넌트를 가진 엔티티를 목적지로 설정하고, 플레이어 아바타가 포탈 영역에서 특정 동작을 수행하면(키 입력) 목적지로 이동할 수
[task] | instruction_following [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | ZoomReset()과 ZoomTo()의 역할을 3문장 이내로 설명하세요. [answer] | `ZoomTo()`는 지정된 시간 동안 카메라의 줌 값을 설정된 비율로 변경하는 함수입니다. `ZoomReset()`은 `ZoomTo()` 등으로 변경된 줌 값을 다시 초깃값(100%)으로 되돌리는 함수입니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | `ZoomReset()`는 변경된 줌 값을 초깃값으로 되돌리는 함수입니다. `ZoomReset()`을 사용하면 `ZoomTo()`를 이용해 줌 값을 변경하더라도, 다시 초깃값으로(100%) 맞출 수 있습니다. `ZoomTo()` 예시에 이어 `ZoomReset()`을 사용해 5초 뒤 줌 값을 100%로 변경하는 예시 코드입니다. 이해를 돕기 위해 **TimerService**를 활용했습니다. [TimerService](/docs?postId=47%7B%22target%22:%22\_self%22%7D) 가이드를 참고하세요. ``
[task] | code [pass] | ⏳ 미판정 [title] | NPC 대화창 만들기 [question] | 대화 데이터의 `count`를 1씩 증가시켜 다음 줄의 데이터를 참조할 수 있도록 하고, 데이터가 더 이상 없을 때(`message == nil`) 대화창(`uiTalkPanel`)을 비활성화하여 대화를 종료하는 `ShowNextText()` 함수의 전체 처리 흐름을 작성해줘 [answer] | `ShowNextText()` 함수는 `count` 프로퍼티를 이용하여 데이터 테이블의 인덱스를 관리하며, 대화 데이터를 순차적으로 로드하고 UI에 반영하는 역할을 합니다. 주요 처리 흐름은 다음과 같습니다. 1. **데이터 로드**: `self.count` 값을 인덱스로 `self.npcTalkData`에서 "text" 컬럼의 값을 가져옵니다. 2. **종료 처리**: 가져온 `message` 값이 `nil`인 경우, 더 이상 대화 데이터가 없으므로 `self.uiTalkPanel.Enable`을 `false`로 설정하여 대 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 6. 로그가 정상 출력된다면 플레이를 종료하고 **NPCTalk** 스크립트를 다시 열고, 아래와 같이 제작에 필요한 프로퍼티를 추가합니다. | type | name | value | Sync | 설명 | | --- | --- | --- | --- | --- | | number | count | 0 |none | 스크립트에서 참조할 데이터의 rowIndex를 결정하기 위해 사용합니다. 데이터를 셋팅할때 마다 값을 1씩 증가시켜 다음줄의 데이터를 참조할 수 있도록 합니다.| | any | npc
[task] | instruction_following [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | CameraBlendType의 6가지 타입 이름과 각 타입의 동작 특징을 2줄 이내로 설명하는 표로 정리하세요. [answer] | | 타입 | 설명 | | --- | --- | | Cut | 카메라를 즉시 CameraComponent 위치로 전환하며, TransitionBlendTime이 무의미합니다. | | EaseInOut | 전환 시작과 끝을 S모양 커브처럼 부드럽게 처리하는 기본값입니다. | | EaseIn | 전환 시작 시 선형적으로, 끝에는 부드럽게 전환합니다. | | EaseOut | 전환 시작 시 부드럽게, 끝에는 선형적으로 전환합니다. | | HardIn | 전환 시작 시 부드럽게, 끝에는 빠르게 전환합니다. | | HardOut | 전환 시작 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | **TranstionBlendType**은 피사체(타깃)로 전환 시 카메라의 움직임을 제어할 수 있는 프로퍼티입니다. `SwitchCameraTo()` 호출 전에 **TranstionBlendType**에 CameraBlendType의 enum 값을 할당해 타깃 전환 시 블렌드 타입을 변경할 수 있습니다. 아래는 위 예제에서 **TranstionBlendType**에 CameraBlendType.Linear를 할당하는 코드를 추가하여, 카메라의 움직임을 조금 딱딱하게 변경해보도록 하겠습니다. ```lua [self] HandleT
[task] | instruction_following [pass] | ⏳ 미판정 [title] | CameraService를 활용한 카메라 제어 [question] | CurrentZoomRatio 프로퍼티의 속성 및 기본값을 표로 정리해서 출력하세요. [answer] | `CurrentZoomRatio` 프로퍼티의 속성과 기본값은 다음과 같습니다. | 항목 | 내용 | | :--- | :--- | | **타입** | `number` | | **접근 권한** | 읽기 전용 (read only) | | **기본값** | 100 | | **설명** | 현재 카메라의 줌 비율을 퍼센트로 반환합니다. | [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | `ZoomReset()`는 변경된 줌 값을 초깃값으로 되돌리는 함수입니다. `ZoomReset()`을 사용하면 `ZoomTo()`를 이용해 줌 값을 변경하더라도, 다시 초깃값으로(100%) 맞출 수 있습니다. `ZoomTo()` 예시에 이어 `ZoomReset()`을 사용해 5초 뒤 줌 값을 100%로 변경하는 예시 코드입니다. 이해를 돕기 위해 **TimerService**를 활용했습니다. [TimerService](/docs?postId=47%7B%22target%22:%22\_self%22%7D) 가이드를 참고하세요. ``