← 목록

mLua · Nemotron SDG 질문-응답 (SFT)

총 21,567개 · 페이지 509/719
🔀 랜덤
불러오는 중…

[task] | two_turn [pass] | ⏳ 미판정 [title] | 파티클 활용하기 [question] | 기본 파티클을 재생할 때 `PlayBasicParticle()` 함수의 매개변수 구성과 옵션 테이블 설정 방법은 어떻게 되나요? [answer] | 참고 문서에 포함된 예제 코드를 기준으로 `PlayBasicParticle()` 함수의 매개변수 구성과 옵션 테이블 설정 방법은 다음과 같습니다. ### 1. 함수 호출 형태 `_ParticleService:PlayBasicParticle()` 함수는 아래 순서로 매개변수를 받습니다. ```lua _ParticleService:PlayBasicParticle( <BasicParticleType>, <Entity>, <Vector3 Position>, <number>, <Vector3 S [followup] | `Loop` 매개변수를 `false`로 설정했을 때 파티클이 한 번만 재생되는 동작 원리와, 반복 재생을 위해 `true`로 변경했을 때의 차이점 및 코드 예시를 알려주세요. [followup_answer] | 참고 문서에 포함된 예제 코드를 기준으로 `Loop` 매개변수의 동작 원리와 설정 방법을 설명합니다. ### 1. `Loop` 매개변수 동작 원리 `_ParticleService:PlayBasicParticle()` 함수의 6번째 매개변수인 `Loop`는 파티클의 반복 재생 여부를 제어하는 `boolean` 타입 값입니다. * **`false` (한 번만 재생)**: * 파티클이 재생된 후 자동으로 종료됩니다. * 문서의 예제에서는 `Loop`를 `false`로 설정하여 파티클이 한 번씩만 재생되도록 [scores] | [judge_reason] | [source_doc] | 1. 파티클이 잘 보이도록 어두운 배경을 설정하고 지형을 배치한 뒤 원하는 엔티티를 배치합니다. 본 예제에서는 Preset List에서 Background - **back-51**을 설정하고 Object - **object-174**를 배치했습니다. 2. Workspace - MyDesk에 새 스크립트 컴포넌트 ParticleServiceTest를 생성합니다. 3. 배치한 엔티티(object-174)의 Property에 ParticleServiceTest를 추가합니다. 4. 여기에 TweenCircula

[task] | code [pass] | ⏳ 미판정 [title] | 사다리와 로프 활용하기 [question] | ClimbableSpriteRendererComponent를 활용하여 사다리 형태의 스프라이트가 올바르게 렌더링되도록 초기화하는 스크립트를 작성해줘 [answer] | 참고 문서에서 `ClimbableSpriteRendererComponent`에 대한 구체적인 프로퍼티, 메서드, 또는 초기화 설정 API가 제공되지 않습니다. 문서에는 이 컴포넌트가 "사다리나 로프와 같이 머리, 몸통, 꼬리 형태의 스프라이트를 그리기 위한 용도"로 사용된다는 설명과, `HandleSpriteAnimPlayerChangeFrameEvent` 이벤트 핸들러 예제만 포함되어 있을 뿐, 스프라이트가 올바르게 렌더링되도록 초기화하는 구체적인 코드나 설정 방법은 명시되어 있지 않습니다. 따라서 주어진 참고 문서만으로는 `C [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 캐릭터가 사다리나 로프를 타면 수직으로 올라갈 수 있습니다. 이는 사다리나 로프의 동작과 연관된 **ClimbableComponent**가 있기 때문입니다. 이 컴포넌트를 활용하면 사다리, 로프뿐만 아니라 다른 오브젝트에서도 등반할 수 있습니다. 또한 크리에이터가 원하는 대로 등반 영역이나 등반 속도를 조절할 수 있습니다. 관련된 컴포넌트로 **ClimbableSpriteRendererComponent**도 있습니다. 이 컴포넌트는 사다리나 로프와 같이 머리, 몸통, 꼬리 형태의 스프라이트를 그리기 위한 용도로

[task] | single_turn [pass] | ⏳ 미판정 [title] | 서버 전용 엔트리 설정하기 [question] | DataSet의 ServerOnly 체크박스를 설정했는데 왜 클라이언트 스크립트에서 해당 데이터를 읽을 수 없나요? [answer] | DataSet의 `ServerOnly` 체크박스에 체크를 했기 때문에 정상적으로 동작하는 것입니다. 이 설정은 해당 DataSet의 내용이 클라이언트로 전달되지 않도록 처리하는 보안 기능입니다. `ServerOnly`로 설정된 DataSet에는 클라이언트가 접근할 수 없으므로, 클라이언트 스크립트에서 해당 데이터를 읽을 수 없는 것은 의도된 동작입니다. 만약 특정 타이밍에 클라이언트에서 해당 DataSet의 일부 데이터가 필요하다면, 서버 스크립트에서 실행 제어나 동기화(Sync) 등을 통해 필요한 데이터를 클라이언트에 명시적으로 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 크리에이터가 월드를 제작할 때 보안 상의 이슈로 게임을 플레이하는 유저들에게 공개하고 싶지 않은 DataSet이나 스크립트 내 함수가 존재할 수 있습니다. 이번 시간에는 DataSet이나 함수를 서버 전용으로 설정하는 방법에 대해 알아봅시다. # 서버 전용 엔트리의 필요성 월드를 제작할 때, 예를 들어 쿠폰 코드나 게임상에서 활용되는 중요한 키, 대미지 공식이나 내부 로직 등의 정보는 서버에서만 처리되도록 하는 것이 안전합니다. 만약 이러한 중요 정보가 서버와 클라이언트 모두에 존재한다면 클라이언트에서도 중

[task] | two_turn [pass] | ⏳ 미판정 [title] | 파티클 활용하기 [question] | UIParticle을 UIButton에 연결해 버튼 클릭 시 파티클이 재생되도록 설정하는 전체 흐름이 궁금합니다. [answer] | UIParticle을 UIButton에 연결하여 버튼 클릭 시 파티클이 재생되도록 설정하는 전체 흐름은 다음과 같습니다. 1. **UIParticle 엔티티 생성 및 설정** * **UIParticle** 엔티티에 **UIBasicParticleComponent**를 추가합니다. * **ParticleType**을 **CircleBust**로 선택하고, 원하는 파티클의 크기, 속도 등을 조절합니다. * **UIBasicParticleComponent**의 **Loop**를 **false**로 설정 [followup] | UIParticle의 Loop와 PlayOnEnable을 false로 설정해야 하는 구체적인 이유와, 이 값들이 true로 남아 있을 때 발생하는 문제는 무엇인가요? [followup_answer] | UIParticle의 **Loop**와 **PlayOnEnable**을 `false`로 설정해야 하는 구체적인 이유와, `true`로 남아 있을 때 발생하는 문제는 다음과 같습니다. ### 1. Loop = false * **설정한 이유**: 버튼을 눌렀을 때 파티클이 **한 번만 재생**되도록 하기 위함입니다. * **true로 남아 있을 때의 문제**: 파티클이 끝없이 반복 재생됩니다. 버튼 클릭 연출은 보통 한 번의 효과로 충분하므로, 반복 재생이되면 버튼 클릭 의도와 맞지 않는 지속적 효과로 인해 시끄럽거나 불필요한 [scores] | [judge_reason] | [source_doc] | 1. **UIParticle**에 **UIBasicParticleComponent**를 추가합니다. 2. ParticleType을 **CircleBust**로 선택하고, 원하는 파티클 크기, 속도 등을 조절합니다. 3. **UIBasicParticleComponent**의 **Loop**를 **false**로 설정해 버튼을 눌렀을 때 파티클이 한 번만 재생되도록 합니다. **PlayOnEnable** 또한 **false**로 변경하여 파티클이 월드 진입하자마자 재생되지 않도록 합니다. ![[object Object]](https

[task] | single_turn [pass] | ⏳ 미판정 [title] | 서버 전용 엔트리 설정하기 [question] | 스크립트 함수의 실행 공간을 Server로 설정하면 함수의 구현부가 클라이언트로 전달되지 않는다는데, 이는 ServerOnly 설정과 어떤 차이가 있나요? [answer] | 제공된 문서에는 함수의 실행 공간으로 **Server**와 **ServerOnly** 모두 선택할 수 있으며, 이 두 가지 설정을 모두 적용하면 함수의 구현부가 클라이언트로 전달되지 않는다는 내용만 명시되어 있습니다. 하지만 문서에는 `Server`와 `ServerOnly` 설정 간의 구체적인 기능적 차이점이나 동작 방식에 대한 설명이 포함되어 있지 않습니다. 따라서 제공된 자료만으로 두 설정의 차이를 설명할 수 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 크리에이터가 월드를 제작할 때 보안 상의 이슈로 게임을 플레이하는 유저들에게 공개하고 싶지 않은 DataSet이나 스크립트 내 함수가 존재할 수 있습니다. 이번 시간에는 DataSet이나 함수를 서버 전용으로 설정하는 방법에 대해 알아봅시다. # 서버 전용 엔트리의 필요성 월드를 제작할 때, 예를 들어 쿠폰 코드나 게임상에서 활용되는 중요한 키, 대미지 공식이나 내부 로직 등의 정보는 서버에서만 처리되도록 하는 것이 안전합니다. 만약 이러한 중요 정보가 서버와 클라이언트 모두에 존재한다면 클라이언트에서도 중

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 사다리와 로프 활용하기 [question] | ClimbableSpriteRendererComponent의 프로퍼티 명과 설명을 표로 정리하고, FlipX와 FlipY의 동작 방식을 각 1줄로 요약하세요. [answer] | ### ClimbableSpriteRendererComponent 프로퍼티 | 프로퍼티 명 | 설명 | | :--- | :--- | | FlipX | Sprite의 X축을 기준으로 반전 여부를 결정합니다. | | FlipY | Sprite의 Y축을 기준으로 반전 여부를 결정합니다. | | IgnoreMapLayerCheck | SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다. | | MaterialId | 랜더러가 사용할 머티리얼의 ID를 지정합니다. | | OrderInLayer | [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | [ClimbableSpriteRendererComponent](/apiReference/Components/ClimbableSpriteRendererComponent)는 사다리나 로프의 스프라이트를 설정하고 길이를 조절할 수 있습니다. 사다리나 로프는 ①머리, ②몸통, ③꼬리 부분으로 이루어져 있는데 그 길이를 늘리면 몸통 부분의 스프라이트가 반복되며 늘어납니다. **ClimbableSpriteRendererComponent**의 프로퍼티를 살펴봅시다. | 프로퍼티 명 | 설명 | | :---: | --- | | FlipX

[task] | code [pass] | ⏳ 미판정 [title] | 파티클 활용하기 [question] | _ParticleService:PlayBasicParticleAttached()로 생성된 파티클의 serial을 SyncTable<number>에 저장하고, _TimerService:SetTimerOnce()를 사용해 3초 후 _ParticleService:RemoveParticle()으로 자동 삭제되도록 하는 스크립트를 작성해줘 [answer] | 요청하신 기능을 구현하기 위해 `_ParticleService:PlayBasicParticleAttached()` 함수를 호출하여 파티클을 생성하고, 반환되는 `serial` 값을 `SyncTable<number>` 타입의 프로퍼티에 저장합니다. 이후 `_TimerService:SetTimerOnce()`를 이용하여 3초 후 해당 `serial`을 인자로 전달하여 `_ParticleService:RemoveParticle()` 함수를 호출함으로써 파티클을 자동 삭제하도록 구성했습니다. 참고 문서에서 제공된 `ParticleServ [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 반복 재생되는 파티클을 생성하거나 삭제하는 방법을 알아봅시다. 특정 엔티티에 캐릭터가 닿으면 파티클이 생성되다가 캐릭터가 목표 지점에 도착하면 파티클 생성이 멈추는 예제를 만들어보겠습니다. 1. 파티클을 뿜어낼 엔티티와 목표 엔티티를 배치합니다. 본 예제에서는 파티클을 뿜어낼 엔티티로 **object-24**(호리병)을, 목표 엔티티로는 **object-928**(소화기)를 사용했습니다. 2. 배치한 모든 엔티티에 TriggerComponent를 추가합니다. 3. Workspace - MyDesk에 새

[task] | single_turn [pass] | ⏳ 미판정 [title] | 배경 설정하기 [question] | Hierarchy에서 현재 맵의 Background를 선택하지 않으면 그라데이션 배경 설정이 불가능한가요? [answer] | 네, 가능합니다. Hierarchy에서 Background를 선택하지 않아도 mLua 스크립트를 통해 그라데이션 배경을 설정할 수 있습니다. 문서에 명시된 `ChangeBackgroundExample` 메서드 예시를 보면, `self.Entity.BackgroundComponent`에 직접 접근하여 배경을 변경하는 함수들이 존재합니다. 하지만 제공된 문서와 코드 예제에는 **그라데이션(Gradient) 배경을 설정하는 구체적인 메서드 이름이나 프로퍼티 설정 방식이 포함되어 있지 않습니다.** 문서에서는 그라데이션 배경 설정 방법 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 **Preset List**와 **BackgroundComponent**를 활용하여 맵의 배경을 설정해봅시다. # 템플릿 배경 설정 **Preset List - Background**에서 메이플스토리의 다양한 배경을 선택할 수 있습니다. 이와 같이 배경 템플릿을 선택하면 배경이 움직이는 속도, 즉 **ScrollRate**를 조절할 수 있습니다. **ScrollRate** 값이 커지면 배경이 움직이는 속도가 빨라지며, 음수를 입력하면 반대 방향으로 이동합니다. | ScrollRate | Image

[task] | single_turn [pass] | ⏳ 미판정 [title] | 서버 전용 엔트리 설정하기 [question] | 함수의 실행 공간을 변경하려면 어떤 메뉴 경로를 따라가야 하며, 설정 후 클라이언트에서는 해당 함수에 접근할 수 없게 되나요? [answer] | 함수의 실행 공간을 변경하려면 해당 함수의 **함수 설정 버튼**을 클릭한 뒤, **Execution Space Setting** 메뉴를 선택해야 합니다. 이 메뉴에서 실행 공간을 `Server` 또는 `Server Only`로 설정할 수 있습니다. 실행 공간을 `Server` 또는 `Server Only`로 설정한 경우, 해당 함수의 구현부(본문 코드)는 클라이언트로 전달되지 않습니다. 따라서 클라이언트에서는 해당 함수에 접근할 수 없습니다. 이는 쿠폰 코드나 대미지 공식 등 보안이 필요한 로직을 클라이언트에서 접근 못 하도록 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 크리에이터가 월드를 제작할 때 보안 상의 이슈로 게임을 플레이하는 유저들에게 공개하고 싶지 않은 DataSet이나 스크립트 내 함수가 존재할 수 있습니다. 이번 시간에는 DataSet이나 함수를 서버 전용으로 설정하는 방법에 대해 알아봅시다. # 서버 전용 엔트리의 필요성 월드를 제작할 때, 예를 들어 쿠폰 코드나 게임상에서 활용되는 중요한 키, 대미지 공식이나 내부 로직 등의 정보는 서버에서만 처리되도록 하는 것이 안전합니다. 만약 이러한 중요 정보가 서버와 클라이언트 모두에 존재한다면 클라이언트에서도 중

[task] | single_turn [pass] | ⏳ 미판정 [title] | 사다리와 로프 활용하기 [question] | AllowHorizontalMove를 true로 설정하면 Y축 등반과 동시에 X축 이동이 가능해지는데, 이때 SpeedFactor가 양쪽 축에 동일하게 적용되나요? [answer] | 네, `SpeedFactor`는 X축과 Y축 모두에 동일하게 적용되는 가중치입니다. `AllowHorizontalMove`가 `true`로 설정되면 캐릭터는 X, Y 축 모두에서 자유롭게 이동할 수 있게 되며, 이때 등반 시 발생하는 X축과 Y축의 속력에 `SpeedFactor` 값이 곱해집니다. 따라서 `SpeedFactor`의 값이 클수록 X축과 Y축 이동 속력이 모두 빨라집니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 캐릭터가 사다리나 로프를 타면 수직으로 올라갈 수 있습니다. 이는 사다리나 로프의 동작과 연관된 **ClimbableComponent**가 있기 때문입니다. 이 컴포넌트를 활용하면 사다리, 로프뿐만 아니라 다른 오브젝트에서도 등반할 수 있습니다. 또한 크리에이터가 원하는 대로 등반 영역이나 등반 속도를 조절할 수 있습니다. 관련된 컴포넌트로 **ClimbableSpriteRendererComponent**도 있습니다. 이 컴포넌트는 사다리나 로프와 같이 머리, 몸통, 꼬리 형태의 스프라이트를 그리기 위한 용도로

[task] | single_turn [pass] | ⏳ 미판정 [title] | 사다리와 로프 활용하기 [question] | ClimbableComponent에서 IsUseDefaultObjectBoxSize를 true로 설정했는데도 메이커 편집 모드 밖에서는 등반 영역이 스프라이트 크기에 맞지 않는 이유는 무엇인가요? [answer] | `IsUseDefaultObjectBoxSize` 프로퍼티의 설명에 따르면, 이 설정은 **메이커 편집 모드에서만 동작**하도록 정의되어 있습니다. 따라서 `true`로 설정하더라도 메이커 편집 모드 밖(실제 게임 실행 환경 등)에서는 스프라이트 크기에 맞춰 `BoxSize`와 `BoxOffset`이 자동으로 설정되지 않기 때문에 등반 영역이 스프라이트 크기에 맞지 않는 현상이 발생합니다. 실제 게임에서 원하는 등반 영역을 확보하려면 `IsUseDefaultObjectBoxSize`를 `false`로 설정한 후 `BoxSize`와 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 캐릭터가 사다리나 로프를 타면 수직으로 올라갈 수 있습니다. 이는 사다리나 로프의 동작과 연관된 **ClimbableComponent**가 있기 때문입니다. 이 컴포넌트를 활용하면 사다리, 로프뿐만 아니라 다른 오브젝트에서도 등반할 수 있습니다. 또한 크리에이터가 원하는 대로 등반 영역이나 등반 속도를 조절할 수 있습니다. 관련된 컴포넌트로 **ClimbableSpriteRendererComponent**도 있습니다. 이 컴포넌트는 사다리나 로프와 같이 머리, 몸통, 꼬리 형태의 스프라이트를 그리기 위한 용도로

[task] | single_turn [pass] | ⏳ 미판정 [title] | 사다리와 로프 활용하기 [question] | ClimbableComponent와 ClimbableSpriteRendererComponent가 함께 있는 상태에서 등반 영역을 BoxSize로 직접 지정하려고 하면 왜 적용되지 않나요? [answer] | 엔티티에 `ClimbableComponent`와 `ClimbableSpriteRendererComponent`가 모두 존재하는 경우, 등반 영역을 수동으로 조절할 수 없습니다. 이 상황에서 시스템은 개발자가 직접 지정한 값이 있더라도 무조건 오브젝트의 `BoxSize`를 등반 영역으로 사용하여 적용하지 않습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | [ClimbableSpriteRendererComponent](/apiReference/Components/ClimbableSpriteRendererComponent)는 사다리나 로프의 스프라이트를 설정하고 길이를 조절할 수 있습니다. 사다리나 로프는 ①머리, ②몸통, ③꼬리 부분으로 이루어져 있는데 그 길이를 늘리면 몸통 부분의 스프라이트가 반복되며 늘어납니다. **ClimbableSpriteRendererComponent**의 프로퍼티를 살펴봅시다. | 프로퍼티 명 | 설명 | | :---: | --- | | FlipX

[task] | single_turn [pass] | ⏳ 미판정 [title] | 사다리와 로프 활용하기 [question] | ClimbableSpriteRendererComponent의 TiledSize X값을 변경하면 사다리 길이가 변하는 것처럼 보이는데 실제로는 왜 아무 효과가 없나요? [answer] | ClimbableSpriteRendererComponent의 `TiledSize` 프로퍼티는 사다리나 로프의 **세로 방향(Y축) 길이**만 조절하도록 설계되어 있습니다. 문서에서 명시하듯, `TiledSize`의 **X값 변경은 지원하지 않습니다**. 따라서 X값을 어떻게 변경하더라도 사다리의 가로 너비나 길이에 아무런 효과가 나타나지 않습니다. 사다리의 길이를 조절하고 싶다면 반드시 `TiledSize`의 **Y값**을 변경해야 합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | [ClimbableSpriteRendererComponent](/apiReference/Components/ClimbableSpriteRendererComponent)는 사다리나 로프의 스프라이트를 설정하고 길이를 조절할 수 있습니다. 사다리나 로프는 ①머리, ②몸통, ③꼬리 부분으로 이루어져 있는데 그 길이를 늘리면 몸통 부분의 스프라이트가 반복되며 늘어납니다. **ClimbableSpriteRendererComponent**의 프로퍼티를 살펴봅시다. | 프로퍼티 명 | 설명 | | :---: | --- | | FlipX

[task] | code [pass] | ⏳ 미판정 [title] | 파티클 활용하기 [question] | UIButtonParticle 컴포넌트에서 HandleButtonClickEvent를 구현하여, self.particleEntity의 UIBasicParticleComponent.IsEmitting 상태가 true일 경우 Stop()을 호출한 뒤 Play()를 호출해 버튼 클릭 시 파티클 재생을 제어하는 스크립트를 작성해줘. [answer] | 요청하신 `UIButtonParticle` 컴포넌트 스크립트는 `particleEntity` 프로퍼티를 통해 파티클 엔티티를 참조하고, 버튼 클릭 이벤트(`HandleButtonClickEvent`)에서 파티클의 재생 상태를 확인하여 재생 또는 재시작하도록 작성합니다. ```lua Property: [None] Entity particleEntity = /ui/UIGroup/UIButton/UIParticle Event Handler: [self] HandleButtonClickEvent(ButtonClickEvent event [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 1. **UIParticle**에 **UIBasicParticleComponent**를 추가합니다. 2. ParticleType을 **CircleBust**로 선택하고, 원하는 파티클 크기, 속도 등을 조절합니다. 3. **UIBasicParticleComponent**의 **Loop**를 **false**로 설정해 버튼을 눌렀을 때 파티클이 한 번만 재생되도록 합니다. **PlayOnEnable** 또한 **false**로 변경하여 파티클이 월드 진입하자마자 재생되지 않도록 합니다. ![[object Object]](https

[task] | code [pass] | ⏳ 미판정 [title] | 사다리와 로프 활용하기 [question] | ClimbableComponent의 AllowHorizontalMove 프로퍼티를 true로 설정하여 X, Y 축 자유 등반이 가능하도록 하는 스크립트를 작성해줘 [answer] | ClimbableComponent의 `AllowHorizontalMove` 프로퍼티를 `true`로 설정하면 캐릭터가 사다리나 로프를 타는 동안 X, Y 축 모두로 자유롭게 이동할 수 있습니다. 참고 문서에 제시된 mLua 스크립트 형식과 API 접근 방식에 따라, 특정 엔티티의 `AllowHorizontalMove`를 `true`로 설정하는 스크립트는 다음과 같습니다. ```lua Property: [None] string TargetEntityPath = "/maps/map01/ladder01" Method: [server [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 캐릭터가 사다리나 로프를 타면 수직으로 올라갈 수 있습니다. 이는 사다리나 로프의 동작과 연관된 **ClimbableComponent**가 있기 때문입니다. 이 컴포넌트를 활용하면 사다리, 로프뿐만 아니라 다른 오브젝트에서도 등반할 수 있습니다. 또한 크리에이터가 원하는 대로 등반 영역이나 등반 속도를 조절할 수 있습니다. 관련된 컴포넌트로 **ClimbableSpriteRendererComponent**도 있습니다. 이 컴포넌트는 사다리나 로프와 같이 머리, 몸통, 꼬리 형태의 스프라이트를 그리기 위한 용도로

[task] | code [pass] | ⏳ 미판정 [title] | 서버 전용 엔트리 설정하기 [question] | 서버 전용으로 설정된 DataSet의 값을 읽어와서 특정 조건이 충족되면 클라이언트로 해당 값을 동기화하는 스크립트를 작성해줘. [answer] | 요청하신 로직을 구현하기 위해 `ServerOnly`로 설정된 DataSet의 값을 서버에서 읽은 후, 조건이 충족되면 클라이언트와 동기화되는 `[Sync]` 프로퍼티에 값을 대입하는 스크립트를 작성합니다. 참고 문서에 따르면, `ServerOnly`로 설정된 DataSet은 클라이언트가 직접 접근할 수 없으므로, 서버 스크립트에서 해당 값을 읽어와야 합니다. 또한 클라이언트로 값을 전달하기 위해서는 `[Sync]` 속성이 붙은 프로퍼티를 사용해야 합니다. 아래는 특정 변수(`SecretValue`)가 `ServerOnly` D [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 크리에이터가 월드를 제작할 때 보안 상의 이슈로 게임을 플레이하는 유저들에게 공개하고 싶지 않은 DataSet이나 스크립트 내 함수가 존재할 수 있습니다. 이번 시간에는 DataSet이나 함수를 서버 전용으로 설정하는 방법에 대해 알아봅시다. # 서버 전용 엔트리의 필요성 월드를 제작할 때, 예를 들어 쿠폰 코드나 게임상에서 활용되는 중요한 키, 대미지 공식이나 내부 로직 등의 정보는 서버에서만 처리되도록 하는 것이 안전합니다. 만약 이러한 중요 정보가 서버와 클라이언트 모두에 존재한다면 클라이언트에서도 중

[task] | single_turn [pass] | ⏳ 미판정 [title] | 사다리와 로프 활용하기 [question] | 그물처럼 사방으로 이동할 수 있는 사다리를 만들 때 AllowHorizontalMove 프로퍼티를 어떻게 설정해야 하는지 설명해 주세요. [answer] | 그물처럼 사방으로 이동할 수 있는 사다리(그물 오브젝트)를 만들 때 `AllowHorizontalMove` 프로퍼티를 **True**로 설정해야 합니다. 이 프로퍼티를 True로 설정하면 X, Y축 모두 이동이 가능해져 캐릭터가 그물을 타고 오르락내리락 하는 것이 아니라 사방으로 이동할 수 있게 됩니다. 참고로, 등반 영역을 자유롭게 조절하려면 `IsUseDefaultObjectBoxSize` 체크박스를 해제(false)한 후 `Collider - [Edit]` 버튼을 눌러 `BoxOffset`과 `BoxSize`를 설정해야 합 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | [ClimbableSpriteRendererComponent](/apiReference/Components/ClimbableSpriteRendererComponent)는 사다리나 로프의 스프라이트를 설정하고 길이를 조절할 수 있습니다. 사다리나 로프는 ①머리, ②몸통, ③꼬리 부분으로 이루어져 있는데 그 길이를 늘리면 몸통 부분의 스프라이트가 반복되며 늘어납니다. **ClimbableSpriteRendererComponent**의 프로퍼티를 살펴봅시다. | 프로퍼티 명 | 설명 | | :---: | --- | | FlipX

[task] | instruction_following [pass] | ⏳ 미판정 [title] | MSW 단축키 [question] | 메이커 사용 MSW 단축키에서 '탐색' 카테고리에 포함된 단축키와 액션을 단계별 번호 목록으로 [answer] | 메이커 사용 MSW 단축키의 '탐색' 카테고리에 포함된 단축키와 액션은 다음과 같습니다. 1. `Ctrl(L)` + `-` : Navigate back (기록된 이전 위치로 이동합니다.) 2. `Ctrl(L)` + `=` : Navigate forward (이전 위치에서 다시 최근 위치로 이동합니다.) [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | | 단축키 | 액션 | 설명 | | --- | --- | --- | | `Tab` | 들여쓰기 | 캐럿 위치에서 들여쓰기 합니다. | | `Shift` + `Tab` | 내어 쓰기 | 캐럿 위치에서 내어 쓰기 합니다. | | `Home` | 앞 | 선택한 줄의 맨 앞으로 캐럿을 이동합니다. | | `End` | 뒤 | 선택한 줄의 맨 뒤로 캐럿을 이동합니다. | | `PageUp` | 코드 블록 최상단 | 선택한 코드 블록의 최상단으로 이동합니다. | | `PageDown` | 코드 블록 최하단 | 선택한 코드 블록의 최하단으로 이

[task] | single_turn [pass] | ⏳ 미판정 [title] | 사다리와 로프 활용하기 [question] | ClimbableSpriteRendererComponent를 추가했는데도 사다리의 머리, 몸통, 꼬리 형태가 제대로 렌더링되지 않을 때 확인해야 할 기본 설정은 무엇인가요? [answer] | 참고 문서에 `ClimbableSpriteRendererComponent`의 구체적인 프로퍼티 목록이나 렌더링 실패 시 확인해야 할 세부 설정값이 명시되어 있지 않습니다. 문서에는 해당 컴포넌트가 "사다리나 로프와 같이 머리, 몸통, 꼬리 형태의 스프라이트를 그리기 위한 용도로 사용"된다는 기능적 정의와, `HandleSpriteAnimPlayerChangeFrameEvent` 이벤트 핸들러를 통해 프레임 인덱스(`FrameIndex`), 총 프레임 수(`TotalFrameCount`) 등을 확인할 수 있다는 코드 예제만 제공되고 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 캐릭터가 사다리나 로프를 타면 수직으로 올라갈 수 있습니다. 이는 사다리나 로프의 동작과 연관된 **ClimbableComponent**가 있기 때문입니다. 이 컴포넌트를 활용하면 사다리, 로프뿐만 아니라 다른 오브젝트에서도 등반할 수 있습니다. 또한 크리에이터가 원하는 대로 등반 영역이나 등반 속도를 조절할 수 있습니다. 관련된 컴포넌트로 **ClimbableSpriteRendererComponent**도 있습니다. 이 컴포넌트는 사다리나 로프와 같이 머리, 몸통, 꼬리 형태의 스프라이트를 그리기 위한 용도로

[task] | instruction_following [pass] | ⏳ 미판정 [title] | MSW 단축키 [question] | 메이커 내 각종 에디터와 텍스트 입력 필드에서 활용 가능한 일반 단축키 중 '저장하기'와 '플레이 시작 / 종료'에 해당하는 단축키 조합을 표로 정리해서 출력하세요. [answer] | | 단축키 | 액션 | | --- | --- | | `Ctrl(L)` + `S` | 저장하기 | | `Ctrl(L)` + `F5` | 플레이 시작 / 종료 | [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 메이플스토리 월드 메이커에는 월드를 더 빠르고 쉽게 만들 수 있는 단축키가 있습니다. 단축키를 활용하여 편리하게 월드를 제작해 봅시다. # 일반 단축키 메이커 내 각종 에디터와 텍스트 입력 필드에서 활용할 수 있는 단축키입니다. | 단축키 | 액션 | 설명 | | --- | --- | --- | | `Ctrl(L)` + `Z` | 실행 취소 | 실행을 취소합니다. | | `Ctrl(L)` + `Shift(L)` + `Z` , `Ctrl(L)` + `Y` | 다시 하기 | 취소했던 실행을 다시 합니다. |

[task] | single_turn [pass] | ⏳ 미판정 [title] | 서버 전용 엔트리 설정하기 [question] | ServerOnly로 설정된 DataSet의 일부 값만 클라이언트에 전달해야 할 때 실행 제어나 동기화를 어떻게 활용해야 하나요? [answer] | ServerOnly로 설정된 DataSet의 전체 내용이 클라이언트로 전송되지 않기 때문에, 클라이언트에서 반드시 필요한 값만 선택적으로 전달하려면 **Sync 속성이 있는 일반 Property**를 통해 데이터를 중계하는 방식의 실행 제어나 동기화를 활용해야 합니다. 즉, 서버 전용 DataSet에서 값을 읽어낸 뒤, 클라이언트와 동기화(Sync)되는 스크립트 Property에 해당 값을 대입하여 클라이언트로 전달하는 구조를 만들어야 합니다. 아래는 이 방식을 적용한 mLua 스크립트 예시입니다. ```lua Property [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 크리에이터가 월드를 제작할 때 보안 상의 이슈로 게임을 플레이하는 유저들에게 공개하고 싶지 않은 DataSet이나 스크립트 내 함수가 존재할 수 있습니다. 이번 시간에는 DataSet이나 함수를 서버 전용으로 설정하는 방법에 대해 알아봅시다. # 서버 전용 엔트리의 필요성 월드를 제작할 때, 예를 들어 쿠폰 코드나 게임상에서 활용되는 중요한 키, 대미지 공식이나 내부 로직 등의 정보는 서버에서만 처리되도록 하는 것이 안전합니다. 만약 이러한 중요 정보가 서버와 클라이언트 모두에 존재한다면 클라이언트에서도 중

[task] | single_turn [pass] | ⏳ 미판정 [title] | 사다리와 로프 활용하기 [question] | SortingLayer를 Map Layer 이름으로 지정했을 때 IgnoreMapLayerCheck를 true로 설정하면 화면 겹침 우선순위가 어떻게 바뀌나요? [answer] | `SortingLayer`에 Map Layer 이름을 지정하더라도 `IgnoreMapLayerCheck`를 `true`로 설정하면, 해당 Map Layer 이름이 자동으로 실제 Sorting Layer로 치환되지 않습니다. 즉, `IgnoreMapLayerCheck`가 `false`(기본값)일 때는 `SortingLayer`에 Map Layer 이름을 넣으면 해당 이름에 해당하는 Sorting Layer 값으로 자동 변경되어 겹침 우선순위가 결정되지만, `true`로 바꾸면 그 자동 치환 과정이 생략됩니다. 따라서 `Sorting [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | [ClimbableSpriteRendererComponent](/apiReference/Components/ClimbableSpriteRendererComponent)는 사다리나 로프의 스프라이트를 설정하고 길이를 조절할 수 있습니다. 사다리나 로프는 ①머리, ②몸통, ③꼬리 부분으로 이루어져 있는데 그 길이를 늘리면 몸통 부분의 스프라이트가 반복되며 늘어납니다. **ClimbableSpriteRendererComponent**의 프로퍼티를 살펴봅시다. | 프로퍼티 명 | 설명 | | :---: | --- | | FlipX

[task] | instruction_following [pass] | ⏳ 미판정 [title] | MSW 단축키 [question] | 맵 레이어 에디터에서 레이어를 '최상단으로 이동'하거나 '최하단으로 이동'할 때 사용하는 단축키 조합을 코드만 출력하고 설명은 주석으로 작성하세요. [answer] | ```lua -- 맵 레이어 에디터에서 선택한 레이어를 최상단으로 이동할 때 사용하는 단축키: Ctrl(L) + Shift(L) + ] -- 맵 레이어 에디터에서 선택한 레이어를 최하단으로 이동할 때 사용하는 단축키: Ctrl(L) + Shift(L) + [ ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 메이플스토리 월드 메이커에는 월드를 더 빠르고 쉽게 만들 수 있는 단축키가 있습니다. 단축키를 활용하여 편리하게 월드를 제작해 봅시다. # 일반 단축키 메이커 내 각종 에디터와 텍스트 입력 필드에서 활용할 수 있는 단축키입니다. | 단축키 | 액션 | 설명 | | --- | --- | --- | | `Ctrl(L)` + `Z` | 실행 취소 | 실행을 취소합니다. | | `Ctrl(L)` + `Shift(L)` + `Z` , `Ctrl(L)` + `Y` | 다시 하기 | 취소했던 실행을 다시 합니다. |

[task] | instruction_following [pass] | ⏳ 미판정 [title] | MSW 단축키 [question] | 메이커 사용 MSW 단축키 중 '찾기와 바꾸기' 카테고리의 모든 단축키를 단축키, 액션, 설명 순서로 표로 정리해서 [answer] | 메이커 사용 MSW 단축키 중 '찾기와 바꾸기' 카테고리의 모든 단축키는 다음과 같습니다. | 단축키 | 액션 | 설명 | | --- | --- | --- | | `Ctrl(L)` + `F` | 검색 | 현재 스크립트에서 원하는 텍스트를 검색합니다. | | `Ctrl(L)` + `Shift(L)` + `F` | 전체 프로젝트에서 검색 | 현재 프로젝트의 모든 스크립트에서 원하는 텍스트를 검색합니다. | | `Ctrl(L)` + `H` | 바꾸기 | 현재 스크립트에서 원하는 텍스트를 찾아 대체 텍스트로 바꿉니다. | | `Ctrl( [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | | 단축키 | 액션 | 설명 | | --- | --- | --- | | `Tab` | 들여쓰기 | 캐럿 위치에서 들여쓰기 합니다. | | `Shift` + `Tab` | 내어 쓰기 | 캐럿 위치에서 내어 쓰기 합니다. | | `Home` | 앞 | 선택한 줄의 맨 앞으로 캐럿을 이동합니다. | | `End` | 뒤 | 선택한 줄의 맨 뒤로 캐럿을 이동합니다. | | `PageUp` | 코드 블록 최상단 | 선택한 코드 블록의 최상단으로 이동합니다. | | `PageDown` | 코드 블록 최하단 | 선택한 코드 블록의 최하단으로 이

[task] | code [pass] | ⏳ 미판정 [title] | 파티클 활용하기 [question] | self.particleEntity.UIBasicParticleComponent를 통해 파티클의 크기 및 속도를 조절하고, 버튼 클릭 이벤트 발생 시 기존 재생 상태를 체크하여 중복 재생을 방지하는 로직을 포함하는 스크립트를 작성해줘. [answer] | 참고 문서에 따르면 `UIBasicParticleComponent`를 통해 파티클의 **크기(Size)** 및 **속도(Speed)** 프로퍼티를 직접 조작하는 API나 방법은 명시되어 있지 않습니다. 문서에서는 해당 컴포넌트의 `Loop`, `PlayOnEnable` 설정 및 `Play()`, `Stop()`, `IsEmitting` 사용만 언급하고 있을 뿐, 크기나 속도 값을 런타임에 변경하는 구체적인 메서드나 프로퍼티 이름을 제공하지 않습니다. 따라서 요청하신 **"파티클의 크기 및 속도 조절"** 부분은 참고 문서에 근거한 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 1. **UIParticle**에 **UIBasicParticleComponent**를 추가합니다. 2. ParticleType을 **CircleBust**로 선택하고, 원하는 파티클 크기, 속도 등을 조절합니다. 3. **UIBasicParticleComponent**의 **Loop**를 **false**로 설정해 버튼을 눌렀을 때 파티클이 한 번만 재생되도록 합니다. **PlayOnEnable** 또한 **false**로 변경하여 파티클이 월드 진입하자마자 재생되지 않도록 합니다. ![[object Object]](https

[task] | instruction_following [pass] | ⏳ 미판정 [title] | MSW 단축키 [question] | 메이커 사용 MSW 단축키에서 Ctrl(L) 키를 포함하지 않는 단축키만 5문장 이내로 설명해서 [answer] | 메이커 사용 MSW 단축키 중 `Ctrl(L)` 키를 포함하지 않는 단축키는 `Tab`, `Shift + Tab`, `Home`, `End`, `PageUp`, `PageDown`, `Alt(L) + Up Arrow`, `Alt(L) + Down Arrow` 입니다. `Tab` 키는 캐럿 위치에서 들여쓰기를 하고, `Shift + Tab` 키는 내어 쓰기를 수행합니다. `Home` 키와 `End` 키는 각각 선택한 줄의 맨 앞과 맨 뒤로 캐럿을 이동시킵니다. `PageUp` 키와 `PageDown` 키는 선택한 코드 블록의 최상단과 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | | 단축키 | 액션 | 설명 | | --- | --- | --- | | `Tab` | 들여쓰기 | 캐럿 위치에서 들여쓰기 합니다. | | `Shift` + `Tab` | 내어 쓰기 | 캐럿 위치에서 내어 쓰기 합니다. | | `Home` | 앞 | 선택한 줄의 맨 앞으로 캐럿을 이동합니다. | | `End` | 뒤 | 선택한 줄의 맨 뒤로 캐럿을 이동합니다. | | `PageUp` | 코드 블록 최상단 | 선택한 코드 블록의 최상단으로 이동합니다. | | `PageDown` | 코드 블록 최하단 | 선택한 코드 블록의 최하단으로 이

[task] | instruction_following [pass] | ⏳ 미판정 [title] | MSW 단축키 [question] | 맵 에디터 및 UI 에디터에서 엔티티를 상하좌우로 이동시키는 단축키와 그 액션을 단계별 번호 목록으로 나열하세요. [answer] | 맵 에디터와 UI 에디터에서 선택한 엔티티를 상하좌우로 이동시키는 단축키와 액션은 다음과 같습니다. 1. `Left Arrow` 키를 누르면 선택한 엔티티를 왼쪽으로 움직입니다. 2. `Right Arrow` 키를 누르면 선택한 엔티티를 오른쪽으로 움직입니다. 3. `Up Arrow` 키를 누르면 선택한 엔티티를 위로 움직입니다. 4. `Down Arrow` 키를 누르면 선택한 엔티티를 아래로 움직입니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 메이플스토리 월드 메이커에는 월드를 더 빠르고 쉽게 만들 수 있는 단축키가 있습니다. 단축키를 활용하여 편리하게 월드를 제작해 봅시다. # 일반 단축키 메이커 내 각종 에디터와 텍스트 입력 필드에서 활용할 수 있는 단축키입니다. | 단축키 | 액션 | 설명 | | --- | --- | --- | | `Ctrl(L)` + `Z` | 실행 취소 | 실행을 취소합니다. | | `Ctrl(L)` + `Shift(L)` + `Z` , `Ctrl(L)` + `Y` | 다시 하기 | 취소했던 실행을 다시 합니다. |

[task] | code [pass] | ⏳ 미판정 [title] | 배경 설정하기 [question] | BackgroundComponent의 Type을 Web으로 설정하고 WebURL 프로퍼티에 특정 웹 이미지 주소를 대입하는 스크립트를 작성해줘 [answer] | 참고 문서에 따르면, `BackgroundComponent`의 `Type`을 `Web`으로 설정한 뒤 `WebURL` 프로퍼티에 주소를 대입하는 방법은 프로퍼티 에디터에서 직접 설정하는 방식입니다. 요청하신 동작을 스크립트로 구현하려면, 아래 예제 코드처럼 `BackgroundComponent`에 접근하여 `Type`과 `WebURL`을 설정할 수 있습니다. 다만, 참고 문서에 명시된 `BackgroundComponent`의 정확한 프로퍼티 이름(`Type`, `WebURL`)과 메서드(`ChangeBackgroundByWebUr [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 **Preset List**와 **BackgroundComponent**를 활용하여 맵의 배경을 설정해봅시다. # 템플릿 배경 설정 **Preset List - Background**에서 메이플스토리의 다양한 배경을 선택할 수 있습니다. 이와 같이 배경 템플릿을 선택하면 배경이 움직이는 속도, 즉 **ScrollRate**를 조절할 수 있습니다. **ScrollRate** 값이 커지면 배경이 움직이는 속도가 빨라지며, 음수를 입력하면 반대 방향으로 이동합니다. | ScrollRate | Image

[task] | single_turn [pass] | ⏳ 미판정 [title] | MSW 단축키 [question] | 맵 에디터에서 엔티티를 미세하게 정밀하게 배치하려면 방향키 외에 다른 단축키나 조합이 있나요? [answer] | 제공된 문서에는 맵 에디터에서 엔티티를 이동시킬 때 사용할 수 있는 단축키로 방향키(`Left Arrow`, `Right Arrow`, `Up Arrow`, `Down Arrow`)만 명시되어 있습니다. 따라서 방향키 외에 엔티티를 미세하게 정밀하게 배치하기 위한 다른 단축키나 조합(예: Shift 키 조합 등)은 문서에 언급되어 있지 않습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 메이플스토리 월드 메이커에는 월드를 더 빠르고 쉽게 만들 수 있는 단축키가 있습니다. 단축키를 활용하여 편리하게 월드를 제작해 봅시다. # 일반 단축키 메이커 내 각종 에디터와 텍스트 입력 필드에서 활용할 수 있는 단축키입니다. | 단축키 | 액션 | 설명 | | --- | --- | --- | | `Ctrl(L)` + `Z` | 실행 취소 | 실행을 취소합니다. | | `Ctrl(L)` + `Shift(L)` + `Z` , `Ctrl(L)` + `Y` | 다시 하기 | 취소했던 실행을 다시 합니다. |

[task] | single_turn [pass] | ⏳ 미판정 [title] | MSW 단축키 [question] | 플레이 중 Ctrl+F5를 다시 누르면 바로 종료되는 것 외에 플레이 상태를 유지하면서 다른 조작을 할 수 있는 단축키는 무엇인가요? [answer] | 제공된 문서에는 플레이 상태 유지와 관련된 단축키가 명시되어 있지 않습니다. 문서에 따르면 `Ctrl(L)` + `F5`는 플레이를 시작하거나, 이미 플레이 중인 상태에서 다시 누르면 플레이를 종료하는 기능만 수행합니다. 따라서 플레이 상태를 유지하면서 다른 조작을 수행할 수 있는 단축키는 해당 문서에 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 메이플스토리 월드 메이커에는 월드를 더 빠르고 쉽게 만들 수 있는 단축키가 있습니다. 단축키를 활용하여 편리하게 월드를 제작해 봅시다. # 일반 단축키 메이커 내 각종 에디터와 텍스트 입력 필드에서 활용할 수 있는 단축키입니다. | 단축키 | 액션 | 설명 | | --- | --- | --- | | `Ctrl(L)` + `Z` | 실행 취소 | 실행을 취소합니다. | | `Ctrl(L)` + `Shift(L)` + `Z` , `Ctrl(L)` + `Y` | 다시 하기 | 취소했던 실행을 다시 합니다. |

← → 방향키로 페이지 이동 · 숫자 입력 후 Enter로 점프