[task] | knowledge_list [title] | 스프라이트 색상을 픽셀 단위로 설정하기 [category] | Guides [rephrased] | 제시된 문서의 내용을 바탕으로 핵심 사실과 API 정보를 추출하여 정리한 목록입니다. 1. `GetPixel` 함수는 `PixelRendererComponent`에서 호출되며, 이전에 설정된 픽셀의 좌표(`x`, `y`)를 매개변수로 받아 해당 위치의 색상 정보를 반환합니다. 2. `GetPixel` 함수를 호출하기 위해 `PixelRendererTest` 스크립트의 `Property` 블록에 `[None]` 동기화 속성을 가진 `Entity PRCheck`를 정의하고, 이를 `/maps/map01/CheckGetEntity` 경 [original] | `GetPixel` 함수를 활용하면 제일 최근에 변경된 픽셀의 위치와 색상을 받아올 수 있습니다. 1. **Hierarchy - map01 - Create Entity - Create Empty**를 눌러 새로운 **CheckGetEntity**를 생성합니다. 2. **CheckGetEntity**에 **TransformComponent**를 추가하고 **Scale** 값으로 **X = 10, Y = 10**을 입력합니다. 그리고 **PixelRendererComponent**도 추가합니다. 3. UI 에디터 [chunk_id] | Guides:693:6
[task] | extract_knowledge [title] | DataStorage 활용하기 [category] | Guides [rephrased] | # DB DataStorage의 Transact(트랜잭션) 기능 활용 ## 개념 설명 `DataStorage` 서비스는 `Transact` 접두사를 가진 함수를 통해 데이터의 저장, 불러오기, 제거 작업을 **원자적으로(Atomically)** 일괄 처리할 수 있는 기능을 제공합니다. 트랜잭션(Transaction)은 원자적으로 처리되어야 하는 작업의 단위를 의미합니다. 이 기능의 핵심 동작 원리는 다음과 같습니다: * **모두 성공 또는 모두 실패:** 한 번의 함수 호출에 포함된 모든 작업 중 하나라도 실패하면, 해당 [original] | Transact 접두사인 함수를 활용해 데이터 저장하기, 불러오기, 제거하기를 원자적으로 일괄 요청할 수 있습니다. 만약 함수 호출에 포함된 모든 작업 중 하나라도 실패한다면, 함수 호출은 실패합니다. 한 번에 Key를 최대 20개까지 조작할 수 있습니다. 한 번에 전달된 요청들이 모두 성공하지 않으면 모두 실패 처리하고, 요청 이전의 데이터를 유지합니다. 그러므로 오류 처리 관련 코드를 간소화할 수 있습니다. 그러나 트랜잭션 보장을 위해 내부적으로 복잡한 처리 과정이 진행됩니다. credit 또한 Batch 함수에 비해 2배로 소 [chunk_id] | Guides:692:7
[task] | distill [title] | 로그 [category] | Guides [rephrased] | # 로그 이해 월드 동작 확인 및 디버깅을 위해 정보를 기록하는 기능입니다. ## 로그 종류 1. **시스템 로그**: 시스템이 자동 기록하는 로그로 중요도에 따라 분류됩니다. * **낮음 (Info)**: 동작에 문제가 없는 정보 * **중간 (Warning)**: 비권장 방식 또는 잠재적 문제 발생 시 * **높음 (Error)**: 해결 시 확정적 문제 발생 2. **크리에이터 로그**: 개발자가 `log` 함수를 사용해 직접 기록하는 로그입니다. ## 크리에이터 로그 함수 콘솔 [original] | # 학습 과정 소개 로그에 대해 알아보고 월드 제작 과정에서 로그를 효과적으로 활용하는 방법을 살펴봅시다. # 로그 소개 로그(Log)란 월드 제작 중 발생하는 여러 가지 정보나 문제 상황에 대한 기록을 말합니다. 로그를 통해 현재 제작 중인 월드가 의도대로 잘 동작하고 있는지 확인할 수 있습니다. 만약 의도대로 동작하지 않는다면 문제의 원인을 파악하고 해결하는 데 로그를 활용할 수 있습니다. 로그 종류는 로그를 남기는 주체를 기준으로 구분합니다. 시스템 로그와 크리에이터 로그로 나누어 살펴봅시다. ## 시스템 로그 제작 [chunk_id] | Guides:719:0
[task] | diverse_qa [title] | 스프라이트 색상을 픽셀 단위로 설정하기 [category] | Guides [rephrased] | 질문: `GetPixels` 함수의 주요 기능은 무엇인가요? 답변: `GetPixels` 함수는 스프라이트 전체의 픽셀 값을 모두 받아올 수 있게 해줍니다. 질문: 다음 코드에서 `GetPixelsTest` 함수가 실행되는 공간은 어디인가요? ```lua [client only] void GetPixelsTest() { local getPixels = self.Entity.PixelRendererComponent:GetPixels() self.PRCheck.PixelRendererComponent:SetPixels( [original] | `GetPixels` 함수를 활용하면 스프라이트 전체의 픽셀 값을 모두 받아올 수 있습니다. 예시 코드는 아래와 같습니다. 버튼을 만들고, 함수를 추가한 다음 버튼에 **ButtonClickEvent**를 연결하는 것은 위의 예제와 동일합니다. ```lua [client only] void GetPixelsTest() { -- GetPixels을 사용해 SetPixelTest 전체의 픽셀 값을 받아옵니다. local getPixels = self.Entity.PixelRendererComponent:GetPixels [chunk_id] | Guides:693:7
[task] | extract_knowledge [title] | DataStorage 활용하기 [category] | Guides [rephrased] | # DB DataStorage 활용하기 ## 개념 설명 `DataStorage`는 메이플스토리 월드에서 데이터를 영구적으로 저장하고 관리하기 위한 서비스입니다. `DataStorage`의 핵심 특징은 **버전 관리**입니다. 동일한 `Key`에 값을 저장할 때, `Version`을 지정하여 데이터를 저장하면 기존 데이터가 삭제되는 것이 아니라 새로운 버전으로 추가 저장됩니다. 이를 통해 특정 시점의 데이터를 복원하거나, 과거 버전과 현재 버전을 비교하는 등의 고급 데이터 조작이 가능합니다. 또한, `DataStorage`는 저 [original] | ```lua local globalDataStorage = _DataStorageService:GetGlobalDataStorage("globalDS") keyInfo = DataStorageKeyInfo() keyInfo.Key = "Key" keyInfo.Version = "Version1" globalDataStorage:SetByInfoAndWait(keyInfo, "Value") -- 기존 버전의 "Value" 값을 덮어 쓰는 대신 새로운 버전을 만들어 저장합니다. keyInfo.Key = "Key" keyInfo. [chunk_id] | Guides:692:9
[task] | wikipedia [title] | 로그 [category] | Guides [rephrased] | **로그 활용을 통한 스크립트 디버깅** 메이플스토리 월드(MapleStory Worlds)에서 스크립트를 작성하고 플레이 테스트를 수행하는 과정에서, 크리에이터의 의도대로 코드가 처음부터 정상적으로 작동하는 경우는 드뭅니다. 이러한 상황에서 로그(Log) 기능을 적절히 활용하면 월드 내 문제점을 보다 빠르게 파악하고 수정할 수 있습니다. 로그를 통해 시행착오를 최소화하고 효율적인 스크립트 작성 환경을 구축할 수 있습니다. 로그와 함께 제공되는 디버그(Debug) 기능을 병행하여 사용하면 스크립트 오류를 보다 빠르고 정확하게 해 [original] | 스크립트를 작성하고 플레이 테스트를 하다 보면 크리에이터의 생각대로 단번에 잘 작동하는 경우는 많지 않습니다. 크리에이터는 스크립트에 로그를 적절히 활용해 월드의 문제점을 보다 빠르게 파악하고 수정할 수 있습니다. 로그를 활용하여 시행착오를 줄이고 보다 효율적으로 스크립트를 작성해봅시다. > **더 알아보기** > 로그와 함께 디버그 기능을 적절히 활용하면 스크립트 오류를 보다 빠르고 정확하게 해결할 수 있습니다. > [스크립트 디버그](https://mod-developers.nexon.com/docs/?postId=202)도 [chunk_id] | Guides:719:2
[task] | wikipedia [title] | 스프라이트 색상을 픽셀 단위로 설정하기 [category] | Guides [rephrased] | # 스프라이트/애니메이션 스프라이트 색상을 픽셀 단위로 설정하기 `GetPixel` 함수를 활용하면 스프라이트에서 가장 최근에 변경된 픽셀의 위치와 색상을 조회할 수 있습니다. 아래 절차는 `SetPixel`로 픽셀을 설정한 후 `GetPixel`로 해당 값을 읽어 다른 엔티티에 재표시하는 방법을 설명합니다. ## 설정 절차 먼저 계층 구조(Hierarchy)의 map01 노드에서 Create Entity > Create Empty 명령을 실행하여 CheckGetEntity라는 이름의 빈 엔티티를 생성합니다. 이 엔티티에 Tr [original] | `GetPixel` 함수를 활용하면 제일 최근에 변경된 픽셀의 위치와 색상을 받아올 수 있습니다. 1. **Hierarchy - map01 - Create Entity - Create Empty**를 눌러 새로운 **CheckGetEntity**를 생성합니다. 2. **CheckGetEntity**에 **TransformComponent**를 추가하고 **Scale** 값으로 **X = 10, Y = 10**을 입력합니다. 그리고 **PixelRendererComponent**도 추가합니다. 3. UI 에디터 [chunk_id] | Guides:693:6
[task] | extract_knowledge [title] | 스프라이트 색상을 픽셀 단위로 설정하기 [category] | Guides [rephrased] | # 스프라이트/애니메이션 스프라이트 색상을 픽셀 단위로 설정하기 ## 개념 설명 `GetPixels` 함수는 스프라이트 전체의 픽셀 값을 배열 형태로 반환하는 API입니다. 이를 통해 특정 엔티티의 렌더러가 가진 현재 색상 데이터를 추출할 수 있으며, 추출된 데이터는 다른 엔티티의 픽셀 렌더러에 적용하거나 논리적 처리에 활용할 수 있습니다. ## API 사용법 * **함수**: `PixelRendererComponent:GetPixels()` * **실행 공간**: 클라이언트 (`[client only]`) * **반 [original] | `GetPixels` 함수를 활용하면 스프라이트 전체의 픽셀 값을 모두 받아올 수 있습니다. 예시 코드는 아래와 같습니다. 버튼을 만들고, 함수를 추가한 다음 버튼에 **ButtonClickEvent**를 연결하는 것은 위의 예제와 동일합니다. ```lua [client only] void GetPixelsTest() { -- GetPixels을 사용해 SetPixelTest 전체의 픽셀 값을 받아옵니다. local getPixels = self.Entity.PixelRendererComponent:GetPixels [chunk_id] | Guides:693:7
[task] | extract_knowledge [title] | 스프라이트 색상을 픽셀 단위로 설정하기 [category] | Guides [rephrased] | # 스프라이트 픽셀 색상 설정 (SetPixels) ## 개념 설명 mLua에서는 `PixelRendererComponent`의 `SetPixels` 메서드를 사용하여 스프라이트의 개별 픽셀 색상을 배열 단위로 제어할 수 있습니다. 이 기능은 스프라이트 전체가 아닌 픽셀 좌표 기반의 색상 데이터를 전달하여 시각적 효과를 구현하는 데 사용됩니다. ## API 사용법 `SetPixels` 메서드는 `PixelRendererComponent` 인스턴스에서 호출되며, 파라미터로 `Color` 타입의 배열을 받아야 합니다. 1. ** [original] | ## 여러 픽셀 색상 변경 `SetPixels` 함수를 활용해 스프라이트 픽셀들의 색상을 변경할 수 있습니다. 버튼을 누르면 스프라이트에 픽셀 단위로 랜덤한 색상이 표시되도록 해봅시다. 1. UI 에디터에서 을 눌러 새로운 **SetPixels** 버튼을 만듭니다. 2. **SetPixels** 버튼의 **Property**에 **TextComponent**를 추가하고 **Text**에 **SetPixels**를 입력합니다. 3. 새로 스크립트 컴포넌트 **ButtonClick_SetPixels**를 생성 [chunk_id] | Guides:693:3
[task] | distill [title] | 로그 [category] | Guides [rephrased] | ## 스크립트 이해: 로그 활용 스크립트 개발 과정에서 예상과 다른 동작이 발생할 수 있습니다. `log()` 함수를 적절히 활용하여 월드의 문제점을 빠르게 파악하고 수정하는 효율적인 디버깅이 가능합니다. ### 핵심 기능 * **로그 출력**: `log(...)` 호출 시 콘솔에 메시지 출력 * **목적**: 런타임 상태 확인, 오류 원인 추적, 로직 흐름 검증 ### 관련 가이드 * 로그와 **스크립트 디버그** 기능을 병행 사용하면 오류 해결 속도가 향상됩니다. * [스크립트 디버그 문서](https [original] | 스크립트를 작성하고 플레이 테스트를 하다 보면 크리에이터의 생각대로 단번에 잘 작동하는 경우는 많지 않습니다. 크리에이터는 스크립트에 로그를 적절히 활용해 월드의 문제점을 보다 빠르게 파악하고 수정할 수 있습니다. 로그를 활용하여 시행착오를 줄이고 보다 효율적으로 스크립트를 작성해봅시다. > **더 알아보기** > 로그와 함께 디버그 기능을 적절히 활용하면 스크립트 오류를 보다 빠르고 정확하게 해결할 수 있습니다. > [스크립트 디버그](https://mod-developers.nexon.com/docs/?postId=202)도 [chunk_id] | Guides:719:2
[task] | knowledge_list [title] | 로그 [category] | Guides [rephrased] | 제공된 문서에는 `log` API의 구체적인 매개변수, 반환 타입, 또는 서버/클라이언트 실행 공간 제약 사항에 대한 기술적 세부 정보가 포함되어 있지 않습니다. 따라서 문서에 명시된 정보만을 기반으로 할 때, 기술적으로 검증 가능한 API 명세(매개변수/반환값/제약)를 추출할 수 없습니다. 문서에 포함된 사실만 바탕으로 작성 가능한 핵심 사실 목록은 다음과 같습니다. 1. 스크립트 작성 및 플레이 테스트 과정에서 크리에이터의 의도대로 기능이 즉시 정상 작동하지 않는 경우가 빈번하게 발생합니다. 2. 크리에이터는 스크립트 내에 [original] | 스크립트를 작성하고 플레이 테스트를 하다 보면 크리에이터의 생각대로 단번에 잘 작동하는 경우는 많지 않습니다. 크리에이터는 스크립트에 로그를 적절히 활용해 월드의 문제점을 보다 빠르게 파악하고 수정할 수 있습니다. 로그를 활용하여 시행착오를 줄이고 보다 효율적으로 스크립트를 작성해봅시다. > **더 알아보기** > 로그와 함께 디버그 기능을 적절히 활용하면 스크립트 오류를 보다 빠르고 정확하게 해결할 수 있습니다. > [스크립트 디버그](https://mod-developers.nexon.com/docs/?postId=202)도 [chunk_id] | Guides:719:2
[task] | diverse_qa [title] | 스프라이트 색상을 픽셀 단위로 설정하기 [category] | Guides [rephrased] | 질문: `GetPixel` 함수의 주요 기능은 무엇인가요? 답변: `GetPixel` 함수를 활용하면 제일 최근에 변경된 픽셀의 위치와 색상을 받아올 수 있습니다. 질문: `GetPixel` 테스트를 위해 Hierarchy에서 생성해야 하는 엔티티의 이름은 무엇인가요? 답변: Hierarchy - map01 - Create Entity - Create Empty를 눌러 생성하는 엔티티의 이름은 CheckGetEntity입니다. 질문: `CheckGetEntity`에 추가해야 하는 컴포넌트와 해당 Scale 값은 무엇인가요? 답변 [original] | `GetPixel` 함수를 활용하면 제일 최근에 변경된 픽셀의 위치와 색상을 받아올 수 있습니다. 1. **Hierarchy - map01 - Create Entity - Create Empty**를 눌러 새로운 **CheckGetEntity**를 생성합니다. 2. **CheckGetEntity**에 **TransformComponent**를 추가하고 **Scale** 값으로 **X = 10, Y = 10**을 입력합니다. 그리고 **PixelRendererComponent**도 추가합니다. 3. UI 에디터 [chunk_id] | Guides:693:6
[task] | diverse_qa [title] | 로그 [category] | Guides [rephrased] | 질문: 스크립트를 작성하고 플레이 테스트할 때 크리에이터의 의도대로 한 번에 잘 작동하는 경우가 흔한가요? 답변: 아니요, 크리에이터의 생각대로 단번에 잘 작동하는 경우는 많지 않습니다. 질문: 로그를 적절히 활용할 때 크리에이터에게 어떤 이점이 있나요? 답변: 로그를 활용하면 월드의 문제점을 보다 빠르게 파악하고 수정할 수 있으며, 시행착오를 줄이고 보다 효율적으로 스크립트를 작성할 수 있습니다. 질문: 스크립트 오류를 보다 빠르고 정확하게 해결하기 위해 로그와 함께 어떤 기능을 적절히 활용해야 하나요? 답변: 디버그 기능을 [original] | 스크립트를 작성하고 플레이 테스트를 하다 보면 크리에이터의 생각대로 단번에 잘 작동하는 경우는 많지 않습니다. 크리에이터는 스크립트에 로그를 적절히 활용해 월드의 문제점을 보다 빠르게 파악하고 수정할 수 있습니다. 로그를 활용하여 시행착오를 줄이고 보다 효율적으로 스크립트를 작성해봅시다. > **더 알아보기** > 로그와 함께 디버그 기능을 적절히 활용하면 스크립트 오류를 보다 빠르고 정확하게 해결할 수 있습니다. > [스크립트 디버그](https://mod-developers.nexon.com/docs/?postId=202)도 [chunk_id] | Guides:719:2
[task] | extract_knowledge [title] | 로그 [category] | Guides [rephrased] | # 로그(Log) 활용 ## 개념 설명 스크립트 작성 및 플레이 테스트 과정에서 로직 오류나 예상치 못한 동작을 식별하기 위해 `log` 함수를 사용합니다. 이 함수는 실행 중인 스크립트의 상태를 출력하여 개발자가 문제를 빠르게 파악하고 수정할 수 있도록 돕습니다. ## API 사용법 `log(...)` 함수는 콘솔 또는 로그 창에 인자로 전달된 값을 출력합니다. - **형식**: `log(value1, value2, ...)` - **사용 가능 타입**: `string`, `number`, `boolean`, `table`, [original] | 스크립트를 작성하고 플레이 테스트를 하다 보면 크리에이터의 생각대로 단번에 잘 작동하는 경우는 많지 않습니다. 크리에이터는 스크립트에 로그를 적절히 활용해 월드의 문제점을 보다 빠르게 파악하고 수정할 수 있습니다. 로그를 활용하여 시행착오를 줄이고 보다 효율적으로 스크립트를 작성해봅시다. > **더 알아보기** > 로그와 함께 디버그 기능을 적절히 활용하면 스크립트 오류를 보다 빠르고 정확하게 해결할 수 있습니다. > [스크립트 디버그](https://mod-developers.nexon.com/docs/?postId=202)도 [chunk_id] | Guides:719:2
[task] | distill [title] | 로그 [category] | Guides [rephrased] | # 스크립트 로그 콘솔은 플레이 테스트 및 빌드, 출시된 월드에서 발생한 정보, 경고, 오류 로그를 출력합니다. ## 주요 기능 및 동작 규칙 * **로그 관리**: * **Clear**: 콘솔 로그 삭제. `Clear on Play` 활성화 시 재생 시작 시 자동 초기화됩니다. * **중복 통합**: 중복 로그를 하나로 병합하며, 병합된 총 개수를 표시합니다. * **필터링**: 심각도(정보/경고/오류)별 표시/숨김 토글 및 검색 기능 제공. * **실행 공간 필터**: Clie [original] | 콘솔에는 플레이 테스트 도중에 발생한 정보, 경고, 오류 로그가 출력됩니다. | 번호 | 설명 | | :---: | --- | | | 콘솔 창에 남아있는 로그를 삭제합니다. Clear 오른쪽에 확장 버튼을 눌러 Clear on Play를 활성화하고, 시작 버튼을 누르면 콘솔 창에 남아있던 로그를 자동으로 삭제하고 시작합니다. | | | 버튼을 누르면 중복 로그를 하나로 합쳐줍니다. 영역에 합쳐진 총 개수가 나옵니다. | | | 실행 공간(Client / Server) 별로 로그를 모아볼 수 있습니다. | | | [chunk_id] | Guides:719:1
[task] | distill [title] | 월드 워프하기 [category] | Guides [rephrased] | `_TeleportService:GetWarpRecord(UserId)`는 유저가 워프로 현재 월드에 입장했는지, 그리고 이전 월드가 어디였는지 확인하는 API입니다. 일반 입장 시 `nil`을 반환합니다. **사용 예시** ```lua Event Handler: [server only] [service: UserService] HandleUserEnterEvent(UserEnterEvent event) { local UserId = event.UserId local warpRecord = _TeleportServi [original] | 이동한 월드에서 입장한 유저가 워프로 입장한 것인지 `GetWarpRecord()`를 활용해 확인할 수 있습니다. 1. 새로운 스크립트 컴포넌트를 생성하고, Common에 추가합니다. 2. 월드에 입장한 유저가 워프로 입장했는지 확인할 수 있도록 아래와 같이 작성합니다. ```lua Event Handler: [server only] [service: UserService] HandleUserEnterEvent(UserEnterEvent event) { ------------- [chunk_id] | Guides:743:1
[task] | knowledge_list [title] | 로그 [category] | Guides [rephrased] | 제공된 문서의 내용을 바탕으로 핵심 사실을 추출하여 정리한 목록입니다. * **로그(Log)의 정의와 목적**: 로그는 월드 제작 중 발생하는 정보나 문제 상황에 대한 기록이며, 월드가 의도대로 동작하는지 확인하거나 문제 원인을 파악·해결하는 데 활용됩니다. * **로그의 분류 기준**: 로그는 남기는 주체를 기준으로 시스템 로그와 크리에이터 로그로 구분됩니다. * **시스템 로그의 정의**: 시스템 로그는 제작 중인 월드에서 발생하는 정보 메시지나 오류를 시스템이 파악하여 알려주는 로그입니다. * **시스템 로그의 [original] | # 학습 과정 소개 로그에 대해 알아보고 월드 제작 과정에서 로그를 효과적으로 활용하는 방법을 살펴봅시다. # 로그 소개 로그(Log)란 월드 제작 중 발생하는 여러 가지 정보나 문제 상황에 대한 기록을 말합니다. 로그를 통해 현재 제작 중인 월드가 의도대로 잘 동작하고 있는지 확인할 수 있습니다. 만약 의도대로 동작하지 않는다면 문제의 원인을 파악하고 해결하는 데 로그를 활용할 수 있습니다. 로그 종류는 로그를 남기는 주체를 기준으로 구분합니다. 시스템 로그와 크리에이터 로그로 나누어 살펴봅시다. ## 시스템 로그 제작 [chunk_id] | Guides:719:0
[task] | knowledge_list [title] | 로그 [category] | Guides [rephrased] | 제시된 원문은 mLua 스크립트 언어의 API(함수, 메서드, 이벤트) 문서가 아니라, **메이플스토리 월드 에디터 및 런타임 환경의 '콘솔(로그 출력 창)' UI 기능과 사용법**에 대한 가이드입니다. 따라서 요청하신 "API 이름·매개변수·반환 타입·동기화/서버·클라이언트 제약"은 해당 문서 내용에 존재하지 않습니다. 원문에 포함된 정보만 바탕으로, 콘솔의 기능과 로그의 특성, 파일 저장 경로 등 핵심 사실을 독립된 문장 형태로 정리합니다. 1. 플레이 테스트 도중 발생한 정보, 경고, 오류 로그는 콘솔 창에 출력됩니다. 2 [original] | 콘솔에는 플레이 테스트 도중에 발생한 정보, 경고, 오류 로그가 출력됩니다. | 번호 | 설명 | | :---: | --- | | | 콘솔 창에 남아있는 로그를 삭제합니다. Clear 오른쪽에 확장 버튼을 눌러 Clear on Play를 활성화하고, 시작 버튼을 누르면 콘솔 창에 남아있던 로그를 자동으로 삭제하고 시작합니다. | | | 버튼을 누르면 중복 로그를 하나로 합쳐줍니다. 영역에 합쳐진 총 개수가 나옵니다. | | | 실행 공간(Client / Server) 별로 로그를 모아볼 수 있습니다. | | | [chunk_id] | Guides:719:1
[task] | diverse_qa [title] | 로그 [category] | Guides [rephrased] | 질문: 로그(Log)란 무엇이며, 월드 제작 과정에서 어떤 목적으로 사용됩니까? 답변: 로그는 월드 제작 중 발생하는 여러 가지 정보나 문제 상황에 대한 기록을 말하며, 현재 제작 중인 월드가 의도대로 잘 동작하고 있는지 확인하거나 의도대로 동작하지 않을 때 문제의 원인을 파악하고 해결하는 데 활용됩니다. 질문: 로그의 종류는 어떤 기준으로 구분되며, 구체적으로 어떤 종류가 있습니까? 답변: 로그는 로그를 남기는 주체를 기준으로 구분되며, 시스템 로그와 크리에이터 로그로 나뉩니다. 질문: 시스템 로그에 포함된 오류의 중요도는 몇 [original] | # 학습 과정 소개 로그에 대해 알아보고 월드 제작 과정에서 로그를 효과적으로 활용하는 방법을 살펴봅시다. # 로그 소개 로그(Log)란 월드 제작 중 발생하는 여러 가지 정보나 문제 상황에 대한 기록을 말합니다. 로그를 통해 현재 제작 중인 월드가 의도대로 잘 동작하고 있는지 확인할 수 있습니다. 만약 의도대로 동작하지 않는다면 문제의 원인을 파악하고 해결하는 데 로그를 활용할 수 있습니다. 로그 종류는 로그를 남기는 주체를 기준으로 구분합니다. 시스템 로그와 크리에이터 로그로 나누어 살펴봅시다. ## 시스템 로그 제작 [chunk_id] | Guides:719:0
[task] | extract_knowledge [title] | 로그 [category] | Guides [rephrased] | # 로그(Log) 시스템 ## 1. 개념 설명 로그(Log)는 월드 제작 중 발생하는 정보나 문제 상황에 대한 기록을 의미합니다. 이를 통해 월드가 의도대로 동작하는지 확인하고, 오류 발생 시 원인을 파악하여 해결하는 데 활용됩니다. 로그는 남기는 주체에 따라 두 가지로 분류됩니다. * **시스템 로그(System Log)**: 시스템이 월드에서 발생하는 정보 메시지나 오류를 파악하여 알려주는 로그입니다. 중요도에 따라 다음과 같이 구분됩니다. * **낮음 (Info)**: 월드 동작에 문제가 되지 않는 수준의 각 [original] | # 학습 과정 소개 로그에 대해 알아보고 월드 제작 과정에서 로그를 효과적으로 활용하는 방법을 살펴봅시다. # 로그 소개 로그(Log)란 월드 제작 중 발생하는 여러 가지 정보나 문제 상황에 대한 기록을 말합니다. 로그를 통해 현재 제작 중인 월드가 의도대로 잘 동작하고 있는지 확인할 수 있습니다. 만약 의도대로 동작하지 않는다면 문제의 원인을 파악하고 해결하는 데 로그를 활용할 수 있습니다. 로그 종류는 로그를 남기는 주체를 기준으로 구분합니다. 시스템 로그와 크리에이터 로그로 나누어 살펴봅시다. ## 시스템 로그 제작 [chunk_id] | Guides:719:0
[task] | knowledge_list [title] | 월드 워프하기 [category] | Guides [rephrased] | ```lua -- 문서에 포함된 핵심 사실 목록입니다. ``` 1. 이동한 월드에서 입장한 유저가 워프로 입장했는지는 `_TeleportService:GetWarpRecord(UserId)` 메서드를 호출하여 반환된 값이 `nil`인지 여부를 확인함으로써 판별할 수 있습니다. 2. `GetWarpRecord()` 메서드는 `_TeleportService` 서비스에서 호출되며, 매개변수로 유저의 `UserId`를 받고, 유저가 일반적인 방법으로 월드에 입장한 경우 `nil`을 반환합니다. 3. `GetWarpRecord()` 메서드 [original] | 이동한 월드에서 입장한 유저가 워프로 입장한 것인지 `GetWarpRecord()`를 활용해 확인할 수 있습니다. 1. 새로운 스크립트 컴포넌트를 생성하고, Common에 추가합니다. 2. 월드에 입장한 유저가 워프로 입장했는지 확인할 수 있도록 아래와 같이 작성합니다. ```lua Event Handler: [server only] [service: UserService] HandleUserEnterEvent(UserEnterEvent event) { ------------- [chunk_id] | Guides:743:1
[task] | wikipedia [title] | 로그 [category] | Guides [rephrased] | # 학습 과정 소개 본 문서는 메이플스토리 월드(MapleStory Worlds) 제작 환경에서 로그(Log)의 개념을 이해하고, 월드 개발 및 디버깅 과정에서 이를 효과적으로 활용하는 방법에 대해 다룹니다. # 로그 개요 로그는 월드 제작 및 실행 중 발생하는 정보나 문제 상황에 대한 기록을 의미합니다. 이를 통해 개발 중인 월드가 의도한 대로 정상 작동하는지 검증할 수 있으며, 예기치 않은 동작이 발생했을 때 원인을 파악하고 해결하는 데 핵심적인 도구로 활용됩니다. 로그는 기록을 남기는 주체에 따라 시스템 로그와 크리에이터 [original] | # 학습 과정 소개 로그에 대해 알아보고 월드 제작 과정에서 로그를 효과적으로 활용하는 방법을 살펴봅시다. # 로그 소개 로그(Log)란 월드 제작 중 발생하는 여러 가지 정보나 문제 상황에 대한 기록을 말합니다. 로그를 통해 현재 제작 중인 월드가 의도대로 잘 동작하고 있는지 확인할 수 있습니다. 만약 의도대로 동작하지 않는다면 문제의 원인을 파악하고 해결하는 데 로그를 활용할 수 있습니다. 로그 종류는 로그를 남기는 주체를 기준으로 구분합니다. 시스템 로그와 크리에이터 로그로 나누어 살펴봅시다. ## 시스템 로그 제작 [chunk_id] | Guides:719:0
[task] | distill [title] | 월드 워프하기 [category] | Guides [rephrased] | # 이동 월드 워프하기 `TeleportService`를 활용해 유저를 다른 월드로 이동시킵니다. ## 동작 규칙 및 주의사항 - **전제 조건**: 현재 월드와 이동할 대상 월드 모두 **공개 출시(Public)** 상태여야만 워프가 가능합니다. - 공개 → 공개: 가능 - 비공개 → 공개: 가능 - 공개 → 비공개: 불가 - 비공개 → 비공개: 불가 - **테스트 제한**: 위 조건에 따라 제작(비공개) 단계에서는 워프를 테스트할 수 없습니다. - **대상 범위**: 크리에이터 본인의 월드가 아니더라도 출시된 [original] | # 학습 과정 소개 TeleportService의 함수를 활용해 월드에서 다른 월드로 이동할 수 있습니다. # 다른 월드로 이동하기 TeleportService는 월드의 유저를 특정 장소로 이동시킬 때 사용할 수 있을 뿐 아니라, 접속 중인 월드에서 다른 월드로 이동시킬 수 있습니다. 접속 중인 월드와 이동할 월드가 공개 출시된 상태여야 이동이 가능합니다. 이 특성으로 인해 제작 중에는 워프를 테스트할 수 없습니다. | 현재 월드 | 이동할 월드 | 워프 여부 | | --- | --- | --- | | 공개 | 공개 | * [chunk_id] | Guides:743:0
[task] | knowledge_list [title] | 월드 워프하기 [category] | Guides [rephrased] | - `TeleportService`의 함수는 월드의 유저를 특정 장소로 이동시키거나, 접속 중인 월드에서 다른 월드로 이동시키는 데 사용됩니다. - 다른 월드로의 이동은 현재 접속 중인 월드와 이동할 대상 월드가 모두 '공개 출시' 상태여야 가능하며, '비공개' 상태의 월드로는 워프할 수 없습니다. - 유저를 다른 월드로 이동시킬 때 `WarpUserToWorldAndWait()` 및 `WarpUserToWorldAsync()` 함수를 사용하며, 이 함수들은 '이동시킬 유저 ID'와 '이동할 월드 ID' 두 가지 인자가 필요합니다. [original] | # 학습 과정 소개 TeleportService의 함수를 활용해 월드에서 다른 월드로 이동할 수 있습니다. # 다른 월드로 이동하기 TeleportService는 월드의 유저를 특정 장소로 이동시킬 때 사용할 수 있을 뿐 아니라, 접속 중인 월드에서 다른 월드로 이동시킬 수 있습니다. 접속 중인 월드와 이동할 월드가 공개 출시된 상태여야 이동이 가능합니다. 이 특성으로 인해 제작 중에는 워프를 테스트할 수 없습니다. | 현재 월드 | 이동할 월드 | 워프 여부 | | --- | --- | --- | | 공개 | 공개 | * [chunk_id] | Guides:743:0
[task] | diverse_qa [title] | 월드 워프하기 [category] | Guides [rephrased] | 질문: `GetWarpRecord()` 함수는 어떤 상황에서 사용할 수 있는 정보인지 확인하는 데 주로 쓰이는가? 답변: 이동한 월드에서 입장한 유저가 워프로 입장한 것인지 확인하는 데 사용됩니다. 질문: `HandleUserEnterEvent` 이벤트 핸들러를 작성할 때 필요한 서비스와 실행 공간은 무엇인가요? 답변: 서비스는 `UserService`이고, 실행 공간은 `[server only]`입니다. 질문: 일반적인 월드 입장(워프가 아닌 경우)에서 `_TeleportService:GetWarpRecord(UserId)`을 [original] | 이동한 월드에서 입장한 유저가 워프로 입장한 것인지 `GetWarpRecord()`를 활용해 확인할 수 있습니다. 1. 새로운 스크립트 컴포넌트를 생성하고, Common에 추가합니다. 2. 월드에 입장한 유저가 워프로 입장했는지 확인할 수 있도록 아래와 같이 작성합니다. ```lua Event Handler: [server only] [service: UserService] HandleUserEnterEvent(UserEnterEvent event) { ------------- [chunk_id] | Guides:743:1
[task] | distill [title] | 월드 워프하기 [category] | Guides [rephrased] | # 이동 월드 워프하기 `_TeleportService:WarpUserToWorldAndWait()`를 사용하여 유저를 다른 월드로 이동시키며, `_UtilLogic`을 통해 데이터 전달이 가능합니다. ### 1. 데이터 전달 (이전 월드) **설정**: 맵에 포탈을 추가하고, 해당 포탈에 스크립트 컴포넌트를 적용합니다. ```lua Property: [Sync] string WorldId = "" Method: [server] void Warp(string userId) { local warpDataTable = [original] | 유저의 데이터를 이동할 월드로 전달할 수 있습니다. 1. 새로운 스크립트 컴포넌트를 생성합니다. 2. 맵에 포탈을 추가한 뒤, 만든 스크립트 컴포넌트를 포탈에 추가합니다. 3. 아래와 같이 `WarpUserToWorldAndWait()`와 `UtilLogic`을 활용해 다른 월드에 데이터를 전달할 수 있게 작성합니다. ```lua Property: [Sync] string WorldId = "" Method: [server] void Warp(string userId) [chunk_id] | Guides:743:2
[task] | wikipedia [title] | 월드 워프하기 [category] | Guides [rephrased] | **이동 월드 워프 기록 조회** 메이플스토리 월드의 스크립트 환경에서 유저가 다른 월드에서 워프(Warp)하여 현재 월드에 입장한 경우, `_TeleportService` 서비스의 `GetWarpRecord()` 메서드를 호출하여 이를 감지하고 이전 월드 정보를 추출할 수 있습니다. 일반적인 방법으로 월드에 입장한 유저의 경우 해당 메서드는 `nil`을 반환하며, 워프로 입장한 유저의 경우 워프 기록 객체를 반환합니다. **워프 입장 여부 확인** 유저가 워프로 입장했는지 여부를 확인하기 위해 새로운 스크립트 컴포넌트를 생성 [original] | 이동한 월드에서 입장한 유저가 워프로 입장한 것인지 `GetWarpRecord()`를 활용해 확인할 수 있습니다. 1. 새로운 스크립트 컴포넌트를 생성하고, Common에 추가합니다. 2. 월드에 입장한 유저가 워프로 입장했는지 확인할 수 있도록 아래와 같이 작성합니다. ```lua Event Handler: [server only] [service: UserService] HandleUserEnterEvent(UserEnterEvent event) { ------------- [chunk_id] | Guides:743:1
[task] | extract_knowledge [title] | 스프라이트 색상을 픽셀 단위로 설정하기 [category] | Guides [rephrased] | # PixelRendererComponent 색상 및 크기 제어 `PixelRendererComponent`는 스프라이트 객체의 픽셀 단위 색상, 전체 색상, 그리고 렌더링 크기를 프로그래밍 방식으로 제어하기 위한 API입니다. 이 컴포넌트는 클라이언트(`[client only]`) 환경에서 작동하며, `_UtilLogic` 서비스를 통해 랜덤 값을 생성하여 동적인 시각 효과를 구현하는 데 주로 사용됩니다. ## API 사용법 ### 1. 픽셀 단위 색상 및 크기 변경: `ResetWithColors` 스프라이트의 너비(`wi [original] | `ResetWithColors` 함수를 활용해 스프라이트의 크기와 픽셀들의 색상을 변경할 수 있습니다. 예시 코드는 아래와 같습니다. 버튼을 만들고, 함수를 추가한 다음 버튼에 **ButtonClickEvent**를 연결하는 것은 위의 예제와 동일합니다. ```lua [client only] void ResetColorsTest() { local newWidth = _UtilLogic:RandomIntegerRange(8, 32) local newHeight = _UtilLogic:RandomIntegerRange( [chunk_id] | Guides:693:4
[task] | extract_knowledge [title] | 스프라이트 색상을 픽셀 단위로 설정하기 [category] | Guides [rephrased] | # 스프라이트/애니메이션 스프라이트 색상을 픽셀 단위로 설정하기: 픽셀 값 조회 ## 1. 개념 설명 `GetPixel` 함수는 특정 좌표(`x`, `y`)에 위치한 픽셀의 색상 정보를 반환합니다. 이 함수는 주로 이전에 `SetPixel`로 설정했거나 렌더링된 픽셀의 값을 확인하거나, 다른 엔티티의 픽셀렌더러로 복사할 때 사용됩니다. ## 2. API 사용법 ### `PixelRendererComponent:GetPixel` * **기능**: 지정한 좌표의 픽셀 색상을 가져옵니다. * **인자**: * `x` [original] | `GetPixel` 함수를 활용하면 제일 최근에 변경된 픽셀의 위치와 색상을 받아올 수 있습니다. 1. **Hierarchy - map01 - Create Entity - Create Empty**를 눌러 새로운 **CheckGetEntity**를 생성합니다. 2. **CheckGetEntity**에 **TransformComponent**를 추가하고 **Scale** 값으로 **X = 10, Y = 10**을 입력합니다. 그리고 **PixelRendererComponent**도 추가합니다. 3. UI 에디터 [chunk_id] | Guides:693:6
[task] | diverse_qa [title] | 로그 [category] | Guides [rephrased] | 질문: 콘솔 창에 남아있는 로그를 삭제하는 방법 중, 플레이 테스트 시작 시 자동으로 로그를 삭제하는 기능은 무엇이며 어떻게 활성화하나요? 답변: Clear on Play 기능입니다. Clear 버튼 오른쪽의 확장 버튼을 눌러 Clear on Play를 활성화한 후, 시작 버튼을 누르면 콘솔 창에 남아있던 로그가 자동으로 삭제되고 시작됩니다. 질문: 중복 로그를 하나로 합치는 기능은 무엇이며, 합쳐진 로그의 개수는 어디에서 확인하나요? 답변: 중복 로그를 하나로 합치는 기능을 활성화하는 버튼을 누르면 중복 로그가 하나로 합쳐지며, [original] | 콘솔에는 플레이 테스트 도중에 발생한 정보, 경고, 오류 로그가 출력됩니다. | 번호 | 설명 | | :---: | --- | | | 콘솔 창에 남아있는 로그를 삭제합니다. Clear 오른쪽에 확장 버튼을 눌러 Clear on Play를 활성화하고, 시작 버튼을 누르면 콘솔 창에 남아있던 로그를 자동으로 삭제하고 시작합니다. | | | 버튼을 누르면 중복 로그를 하나로 합쳐줍니다. 영역에 합쳐진 총 개수가 나옵니다. | | | 실행 공간(Client / Server) 별로 로그를 모아볼 수 있습니다. | | | [chunk_id] | Guides:719:1