← 목록

mLua · Nemotron-CC 리프레이즈 (CPT)

총 8,200개 · 페이지 273/274
🔀 랜덤
불러오는 중…

[task] | knowledge_list [title] | 커스텀 PlayerController 만들기 [category] | Guides [rephrased] | # PlayerController 상태 전환 메소드 핵심 사실 목록 1. **CheckGroundMoveOrFall()** 메서드는 `[client only]` 실행 공간에서 실행되며, 매개변수가 없고 반환 타입은 `void`입니다. 2. **CheckGroundMoveOrFall()** 메서드는 `self.StateComponent`가 `nil`인 경우 즉시 반환하여 상태 전환 로직을 중단합니다. 3. **CheckGroundMoveOrFall()** 메서드는 `self.MovementComponent`가 `nil`이 아니고 ` [original] | #### 상태 전환 메소드 플레이어의 지면 상태와 이동 속도를 확인하여 상태를 전환하도록 아래 3가지 메소드를 추가하고, 아래와 같이 작성합니다. - `CheckGroundMoveOrFall()`: 지면 여부와 이동 속도를 확인하여 상태를 전환합니다. 지면에 있고 이동 중이면 MOVE 상태로, 지면에 없고 IDLE 상태면 FALL 상태로 전환합니다. - `IsOnGround()`: 현재 맵 모드에 맞는 물리 컴포넌트를 통해 플레이어가 지면에 있는지 확인합니다. - `GetVelocity()`: 현재 맵 모드에 맞는 물리 컴포넌트 [chunk_id] | Guides:1403:16

[task] | knowledge_list [title] | 커스텀 폰트 [category] | Guides [rephrased] | * **Font Group** 탭은 언어별로 서로 다른 폰트를 하나의 그룹으로 묶어, 클라이언트 언어 설정에 맞는 폰트가 자동으로 적용되도록 구성하는 기능이다. * Font Group 탭의 '새로고침' 버튼은 추가한 폰트를 불러오는 역할을 한다. * Font Group 탭의 'Font Group Name' 영역은 해당 폰트 그룹을 편집하는 탭 기능을 수행한다. * Font Group 탭의 '삭제' 버튼은 추가한 폰트를 월드에서 사용하지 않도록 삭제하는 기능을 제공한다. * Font Group 탭의 '언어 선택' 항 [original] | **Font Group** 탭에서는 언어별로 서로 다른 폰트를 하나의 그룹으로 묶어, 클라이언트 언어 설정에 맞는 폰트가 자동으로 적용되도록 만들 수 있습니다. ![[object Object]](https://mod-file.dn.nexoncdn.co.kr/bbs/178403001449300fda3d4d8254d438f113d670d408f8a.png "2") | 번호 | 이름 | 설명 | | --- | --- | --- | | ![[object Object]](https://mod-file.dn.nexoncdn.co.kr/stor [chunk_id] | Guides:1404:1

[task] | knowledge_list [title] | 커스텀 폰트 [category] | Guides [rephrased] | 1. 월드에서 커스텀 폰트를 사용하기 위해서는 먼저 리소스 스토리지(Resource Storage)에 폰트 파일을 등록해야 합니다. 2. 리소스 스토리지에 폰트 등록 시 이름은 알파벳 대소문자, `_`, `-`, 숫자 조합으로만 지정할 수 있습니다. 3. 리소스 스토리지에 폰트 파일 등록 시 세부정보에서 이름, 설명, 폰트 렌더 모드, 폰트 샘플링 사이즈를 수정할 수 있습니다. 4. 폰트 렌더 모드가 SDFAA일 때만 Outline, Underlay 폰트 스타일을 사용할 수 있으며, SMOOTH 또는 RASTER 모드일 경우 Out [original] | 제작한 월드의 분위기와 어울리는 폰트를 추가해 월드의 텍스트에 적용할 수 있습니다. 폰트를 리소스 스토리지에 등록하고, 커스텀 폰트 그룹창에서 월드에 사용할 폰트를 묶는 방법에 대해 알아봅시다. ## 리소스 스토리지에 폰트 추가 월드에서 폰트를 사용하기 위해서는 먼저 리소스 스토리지에 폰트를 등록해야 합니다. 폰트 등록 시 이름은 **알파벳 대소문자, `_`, `-`, 숫자** 조합만 가능합니다. 리소스 스토리지에 업로드할 폰트의 저작권과 사용 범위를 반드시 확인한 후 등록하길 권장합니다. 폰트 파일 등록 방법은 아래와 같습니 [chunk_id] | Guides:1404:0

[task] | diverse_qa [title] | 커스텀 PlayerController 만들기 [category] | Guides [rephrased] | 질문: 위 코드의 `GetVelocity` 메서드는 어떤 실행 공간에서 동작하나요? 답변: 해당 메서드는 `[client only]` 실행 공간에서 동작합니다. 질문: `GetVelocity` 메서드가 반환하는 값의 데이터 타입은 무엇인가요? 답변: 메서드는 `number` 타입의 값을 반환합니다. 질문: `self.MapComponent`가 `nil`인 경우 `GetVelocity` 메서드는 어떤 값을 반환하나요? 답변: `self.MapComponent`가 `nil`인 경우 `0`을 반환합니다. 질문: `TileMapMod [original] | [client only] number GetVelocity() { local mapComponent = self.MapComponent if mapComponent == nil then return 0 end local timeMapMode = mapComponent.TileMapMode if timeMapMode == TileMapMode.MapleTile then local comp = self.RigidbodyComponent if comp [chunk_id] | Guides:1403:17

[task] | extract_knowledge [title] | 커스텀 PlayerController 만들기 [category] | Guides [rephrased] | ## 커스텀 PlayerController 로직 구현 ### 개념 설명 기본 제공되는 `PlayerController` 컴포넌트 대신 커스텀 로직을 적용하려면, 입력 처리, 이동 방향 결정, 그리고 특수 상태(사다리/로프 등반) 처리를 직접 구현해야 합니다. 이 과정은 주로 `Update` 루프 내에서 캐릭터의 현재 상태와 입력 값을 기반으로 `PlayerControllerComponent`의 액션 메서드를 호출하는 형태로 이루어집니다. 주요 처리 로직은 다음과 같습니다. 1. **점프 처리**: 입력 상태에 따라 `Actio [original] | lerComponent:ActionJump(horizontalInput) end end end -- Update character facing direction local curLookAt = playerControllerComponent.FixedLookAt if curLookAt == 0 then curLookAt = moveDir.x end self:FlipTo(curLookAt) -- Handle ladder [chunk_id] | Guides:1403:13

[task] | diverse_qa [title] | 커스텀 폰트 [category] | Guides [rephrased] | 질문: Font Group 탭의 주요 기능은 무엇인가요? 답변: 언어별로 서로 다른 폰트를 하나의 그룹으로 묶어, 클라이언트 언어 설정에 맞는 폰트가 자동으로 적용되도록 만들 수 있습니다. 질문: Font Group 탭에서 '새로고침' 버튼의 역할은 무엇인가요? 답변: 추가한 폰트를 불러오는 역할을 합니다. 질문: Font Group Name 항목은 어떤 용도로 사용되나요? 답변: 그룹을 편집하는 탭으로 사용됩니다. 질문: Font Group 탭에서 '삭제' 버튼을 클릭하면 어떤 일이 발생하나요? 답변: 추가한 폰트를 월드에서 [original] | **Font Group** 탭에서는 언어별로 서로 다른 폰트를 하나의 그룹으로 묶어, 클라이언트 언어 설정에 맞는 폰트가 자동으로 적용되도록 만들 수 있습니다. ![[object Object]](https://mod-file.dn.nexoncdn.co.kr/bbs/178403001449300fda3d4d8254d438f113d670d408f8a.png "2") | 번호 | 이름 | 설명 | | --- | --- | --- | | ![[object Object]](https://mod-file.dn.nexoncdn.co.kr/stor [chunk_id] | Guides:1404:1

[task] | knowledge_list [title] | StateSet Debugger [category] | Guides [rephrased] | StateSet Debugger는 StateSet Editor에서 제작한 StateSet을 StateComponent에 지정했을 때만 사용 가능하며, 테스트 플레이 환경에서만 실행됩니다. 테스트 플레이가 종료되면 StateSet Debugger는 자동으로 종료되고 기록된 히스토리도 삭제되므로, 필요한 경우 JSON 파일로 내보내야 합니다. 테스트 플레이 중 StateSet Debugger를 열기 위해서는 먼저 테스트 플레이를 실행하고, 디버깅할 엔티티를 선택한 뒤 프로퍼티 창의 StateComponent 섹션에서 Open State [original] | StateSet Debugger는 테스트 플레이 환경에서 실행되고 있는 StateSet의 내부 상황을 시각적으로 추적할 수 있도록 도와주는 도구입니다. ##### 참고 가이드 - [타입의 이해](/docs/docs-1038{target}) - [StateSet 제어하기](/docs/docs-1398{target}) ##### 참고 API Reference - [StateComponent](/apiReference/Components/StateComponent{target}) ## StateSet Debugger 소개 Stat [chunk_id] | Guides:1405:0

[task] | extract_knowledge [title] | 커스텀 PlayerController 만들기 [category] | Guides [rephrased] | # PlayerController 입력 처리: KeyHold 이벤트 및 입력 차단 ## 1. 개념 설명 `PlayerController` 컴포넌트는 클라이언트 사이드에서 키보드 입력을 처리하여 플레이어의 이동, 점프, 웅크리기 등의 동작 상태를 업데이트합니다. 특히 `OnKeyHold` 이벤트 핸들러는 `KeyDown` 이벤트가 발생하지 않은 상태에서 키가 계속 눌려 있는 상태(Key Hold)를 감지하고, 해당 키에 매핑된 액션(Action)을 실행하거나 입력 상태를 갱신하는 역할을 합니다. 이 과정에서 `self.InputK [original] | [client only] void OnKeyHold(KeyHoldEvent evt) { -- Handle key hold events: update hold action state (for keys pressed without keyDown) if not self:CanControl() then return end if not self.EnableInHierarchy then return end local key = evt.key loc [chunk_id] | Guides:1403:10

[task] | wikipedia [title] | 커스텀 폰트 [category] | Guides [rephrased] | # UI 커스텀 폰트 메이플스토리 월드(MapleStory Worlds)에서는 제작한 월드의 분위기에 부합하는 커스텀 폰트를 등록하여 월드 내 텍스트에 적용할 수 있습니다. 이 문서에서는 폰트를 리소스 스토리지에 등록하는 절차와, 이를 제작 중인 월드의 텍스트에 적용하기 위해 커스텀 폰트 그룹을 설정하는 방법을 다룹니다. ## 리소스 스토리지에 폰트 등록 월드에서 폰트를 사용하기 전에는 반드시 리소스 스토리지에 해당 폰트를 등록해야 합니다. 폰트 등록 시 이름은 알파벳 대소문자, 밑줄(`_`), 하이픈(`-`), 숫자의 조합으 [original] | 제작한 월드의 분위기와 어울리는 폰트를 추가해 월드의 텍스트에 적용할 수 있습니다. 폰트를 리소스 스토리지에 등록하고, 커스텀 폰트 그룹창에서 월드에 사용할 폰트를 묶는 방법에 대해 알아봅시다. ## 리소스 스토리지에 폰트 추가 월드에서 폰트를 사용하기 위해서는 먼저 리소스 스토리지에 폰트를 등록해야 합니다. 폰트 등록 시 이름은 **알파벳 대소문자, `_`, `-`, 숫자** 조합만 가능합니다. 리소스 스토리지에 업로드할 폰트의 저작권과 사용 범위를 반드시 확인한 후 등록하길 권장합니다. 폰트 파일 등록 방법은 아래와 같습니 [chunk_id] | Guides:1404:0

[task] | extract_knowledge [title] | 커스텀 PlayerController 만들기 [category] | Guides [rephrased] | # 커스텀 PlayerController 방향 처리 로직 본 절에서는 메이플스토리 월드의 `PlayerController` 컴포넌트를 활용하여 캐릭터의 시선 방향(Look Direction)을 조작하는 두 가지 핵심 메서드, `GetDirectionValue`와 `FlipTo`의 구현 방식을 다룹니다. ## 개념 설명 메이플스토리 월드의 기본 `PlayerController`는 입력값을 직접 변환하여 캐릭터의 좌우 방향을 제어합니다. 커스텀 컨트롤러를 만들 때, 원본 입력값(보통 -1.0 ~ 1.0 사이)을 이산화된 방향값(- [original] | [client only] number GetDirectionValue(number value, number threshold) { if value > threshold then return 1 elseif value < -threshold then return -1 else return 0 end } [client only] void FlipTo(number lookAt) { if math.almostequal(lookAt, 0) then [chunk_id] | Guides:1403:15

[task] | distill [title] | StateSet Debugger [category] | Guides [rephrased] | # StateSet Debugger StateSet Debugger는 테스트 플레이 환경에서 `StateComponent`에 지정된 StateSet의 내부 상태 전이를 시각적으로 추적하는 도구입니다. ## 제약 및 동작 규칙 - **적용 범위**: `StateSet Editor`에서 제작한 StateSet이 `StateComponent`에 지정된 엔티티에만 적용됩니다. - **실행 환경**: 테스트 플레이 중만 사용 가능하며, 종료 시 디버거와 기록된 히스토리가 자동 삭제됩니다. - **데이터 저장**: 히스토리 삭제 전, ** [original] | StateSet Debugger는 테스트 플레이 환경에서 실행되고 있는 StateSet의 내부 상황을 시각적으로 추적할 수 있도록 도와주는 도구입니다. ##### 참고 가이드 - [타입의 이해](/docs/docs-1038{target}) - [StateSet 제어하기](/docs/docs-1398{target}) ##### 참고 API Reference - [StateComponent](/apiReference/Components/StateComponent{target}) ## StateSet Debugger 소개 Stat [chunk_id] | Guides:1405:0

[task] | diverse_qa [title] | 커스텀 폰트 [category] | Guides [rephrased] | 질문: 제작한 월드의 텍스트에 커스텀 폰트를 적용하기 위해 먼저 어떤 작업이 필요한가요? 답변: 리소스 스토리지에 폰트를 등록해야 합니다. 질문: 리소스 스토리지에 폰트를 등록할 때 이름에 사용할 수 있는 문자 조합은 무엇인가요? 답변: 알파벳 대소문자, `_`, `-`, 숫자 조합만 가능합니다. 질문: 폰트 렌더 모드가 SDFAA일 때만 사용할 수 있는 폰트 스타일은 무엇인가요? 답변: Outline, Underlay 폰트 스타일을 사용할 수 있습니다. 질문: 폰트 렌더 모드가 SMOOTH 또는 RASTER일 때 Outlin [original] | 제작한 월드의 분위기와 어울리는 폰트를 추가해 월드의 텍스트에 적용할 수 있습니다. 폰트를 리소스 스토리지에 등록하고, 커스텀 폰트 그룹창에서 월드에 사용할 폰트를 묶는 방법에 대해 알아봅시다. ## 리소스 스토리지에 폰트 추가 월드에서 폰트를 사용하기 위해서는 먼저 리소스 스토리지에 폰트를 등록해야 합니다. 폰트 등록 시 이름은 **알파벳 대소문자, `_`, `-`, 숫자** 조합만 가능합니다. 리소스 스토리지에 업로드할 폰트의 저작권과 사용 범위를 반드시 확인한 후 등록하길 권장합니다. 폰트 파일 등록 방법은 아래와 같습니 [chunk_id] | Guides:1404:0

[task] | extract_knowledge [title] | 커스텀 PlayerController 만들기 [category] | Guides [rephrased] | # PlayerController UpdateControl 보조 메소드 ## 1. 개념 설명 `UpdateControl` 메소드의 동작을 보조하기 위해 `ResetControl`, `ResetKeys`, `SetInputAxis` 등의 메소드를 정의합니다. 이 메소드들은 입력 키 상태를 관리하고, 활성 키에 기반하여 수평/수직 입력 축을 계산하며, 캐릭터의 상태와 방향을 초기화하거나 설정하는 역할을 수행합니다. 주요 보조 메소드의 기능은 다음과 같습니다. * **`ResetControl()`**: 컨트롤을 초기화하고 캐릭터 [original] | #### UpdateControl 보조 메소드 UpdateControl을 보조하기 위해 아래 5가지 메소드를 추가하고, 아래와 같이 작성합니다. - `ResetControl()`: 컨트롤을 초기화하고 상태를 IDLE로 변경합니다. - `ResetKeys()`: 입력 상태를 초기화합니다. - `SetInputAxis()`: 활성화된 키를 기반으로 수평/수직 입력 축을 계산합니다. - `GetDirectionValue()`: 입력 값과 임계값을 비교하여 방향 값을 반환합니다. - `FlipTo()`: 캐릭터의 방향을 설정합니다. [chunk_id] | Guides:1403:14

[task] | extract_knowledge [title] | 커스텀 PlayerController 만들기 [category] | Guides [rephrased] | # 커스텀 PlayerController의 이동 속도 계산 ## 1. 개념 설명 메이플스토리 월드의 `PlayerController` 스크립트에서는 맵의 타일 모드(`TileMapMode`)에 따라 물리 컴포넌트가 달라집니다. 플레이어의 현재 이동 속도를 정확히 파악하기 위해서는 현재 활성 맵 모드에 해당하는 물리 컴포넌트(`RigidbodyComponent`, `KinematicbodyComponent`, `SideviewbodyComponent`)의 `MoveVelocity` 속성을 참조해야 합니다. ## 2. API 사용법 [original] | [client only] number GetVelocity() { local mapComponent = self.MapComponent if mapComponent == nil then return 0 end local timeMapMode = mapComponent.TileMapMode if timeMapMode == TileMapMode.MapleTile then local comp = self.RigidbodyComponent if comp [chunk_id] | Guides:1403:17

[task] | extract_knowledge [title] | 커스텀 폰트 [category] | Guides [rephrased] | # UI 커스텀 폰트 설정 월드 내 텍스트에 특정 스타일의 폰트를 적용하기 위해, 폰트 파일을 리소스 스토리지에 등록하고 이를 월드의 커스텀 폰트 그룹에 연결하는 과정입니다. ## 1. 개념 및 제약 사항 * **리소스 등록 필수**: 월드에서 폰트를 사용하기 전, 반드시 리소스 스토리지(Resource Storage)에 파일을 등록해야 합니다. * **네이밍 규칙**: 폰트 등록 시 이름은 `A-Z`, `a-z`, `_`, `-`, `0-9` 조합만 허용됩니다. * **사용 제한**: * 월드당 커스텀 [original] | 제작한 월드의 분위기와 어울리는 폰트를 추가해 월드의 텍스트에 적용할 수 있습니다. 폰트를 리소스 스토리지에 등록하고, 커스텀 폰트 그룹창에서 월드에 사용할 폰트를 묶는 방법에 대해 알아봅시다. ## 리소스 스토리지에 폰트 추가 월드에서 폰트를 사용하기 위해서는 먼저 리소스 스토리지에 폰트를 등록해야 합니다. 폰트 등록 시 이름은 **알파벳 대소문자, `_`, `-`, 숫자** 조합만 가능합니다. 리소스 스토리지에 업로드할 폰트의 저작권과 사용 범위를 반드시 확인한 후 등록하길 권장합니다. 폰트 파일 등록 방법은 아래와 같습니 [chunk_id] | Guides:1404:0

[task] | distill [title] | StateSet Debugger [category] | Guides [rephrased] | # StateSet Debugger 테스트 플레이 중 발생한 상태 전이를 **Client**와 **Server** 공간별로 시간 순서대로 기록하는 도구입니다. ## 핵심 동작 규칙 * **기록 한도**: 최대 **100개**. 초과 시 가장 오래된 기록부터 삭제됩니다. * **수명**: 테스트 플레이 종료 시 기록은 **삭제**됩니다. 보존이 필요하면 JSON으로 내보내야 합니다. * **로컬화된 엔티티**: 서버 공간에 상태가 없으므로, Server 탭에서 히스토리 대신 안내 문구가 표시됩니다. * **기록 설정 [original] | 테스트 플레이 중 발생한 상태 전이 기록입니다. 히스토리는 Client, Server로 나누어 기록되고, 시간 순으로 기록됩니다. 최대 **100개**까지 기록되며, 테스트 플레이가 종료되면 상태 전이 기록은 **삭제**됩니다. 필요한 경우 JSON으로 내보내어 보관할 수 있습니다. 로컬화된 엔티티는 서버 공간의 상태가 없으므로, 서버 탭으로 전환하면 히스토리 대신 서버 상태가 없다는 안내 문구가 표시됩니다. >**Tip** > 히스토리 기록 여부는 메이커의 **Edit - Preferences - 만들기 - 테스트 플레이 - S [chunk_id] | Guides:1405:1

[task] | extract_knowledge [title] | 커스텀 폰트 [category] | Guides [rephrased] | # UI 커스텀 폰트: Font Group 설정 및 적용 ## 1. 개념 설명 메이플스토리 월드에서 UI 텍스트에 커스텀 폰트를 적용하기 위해 **Font Group**을 사용합니다. Font Group은 서로 다른 언어 환경에 맞춰 각기 다른 폰트 파일을 하나의 로직 그룹으로 묶어 주는 기능입니다. 이 그룹을 설정하면 클라이언트의 언어 설정에 따라 해당 언어에 지정된 폰트가 자동으로 선택되어 적용됩니다. 이 과정에서 개발자가 런타임에 언어를 판별하여 폰트를 수동으로 교체할 필요가 없습니다. ## 2. API 및 에디터 사용 [original] | **Font Group** 탭에서는 언어별로 서로 다른 폰트를 하나의 그룹으로 묶어, 클라이언트 언어 설정에 맞는 폰트가 자동으로 적용되도록 만들 수 있습니다. ![[object Object]](https://mod-file.dn.nexoncdn.co.kr/bbs/178403001449300fda3d4d8254d438f113d670d408f8a.png "2") | 번호 | 이름 | 설명 | | --- | --- | --- | | ![[object Object]](https://mod-file.dn.nexoncdn.co.kr/stor [chunk_id] | Guides:1404:1

[task] | diverse_qa [title] | StateSet Debugger [category] | Guides [rephrased] | 질문: StateSet Debugger는 어떤 목적으로 사용되는 도구인가요? 답변: StateSet Debugger는 테스트 플레이 환경에서 실행되고 있는 StateSet의 내부 상황을 시각적으로 추적할 수 있도록 도와주는 도구입니다. 질문: StateSet Debugger를 사용하려면 어떤 전제 조건이 충족되어야 하나요? 답변: StateSet Editor에서 제작한 StateSet을 StateComponent에 지정했을 때만 사용할 수 있습니다. 질문: StateSet Debugger는 어떤 환경에서만 사용할 수 있나요? 답 [original] | StateSet Debugger는 테스트 플레이 환경에서 실행되고 있는 StateSet의 내부 상황을 시각적으로 추적할 수 있도록 도와주는 도구입니다. ##### 참고 가이드 - [타입의 이해](/docs/docs-1038{target}) - [StateSet 제어하기](/docs/docs-1398{target}) ##### 참고 API Reference - [StateComponent](/apiReference/Components/StateComponent{target}) ## StateSet Debugger 소개 Stat [chunk_id] | Guides:1405:0

[task] | diverse_qa [title] | StateSet Debugger [category] | Guides [rephrased] | 질문: StateSet Debugger의 히스토리는 Client와 Server 중 어느 쪽으로 나누어 기록되는가요? 답변: 히스토리는 Client, Server로 나누어 기록됩니다. 질문: StateSet Debugger에서 상태 전이 기록은 최대 몇 개까지 저장되나요? 답변: 최대 100개까지 기록됩니다. 질문: 테스트 플레이가 종료되면 StateSet Debugger의 상태 전이 기록은 어떻게 처리되나요? 답변: 테스트 플레이가 종료되면 상태 전이 기록은 삭제됩니다. 질문: 로컬화된 엔티티의 서버 탭에서 히스토리가 표시되지 [original] | 테스트 플레이 중 발생한 상태 전이 기록입니다. 히스토리는 Client, Server로 나누어 기록되고, 시간 순으로 기록됩니다. 최대 **100개**까지 기록되며, 테스트 플레이가 종료되면 상태 전이 기록은 **삭제**됩니다. 필요한 경우 JSON으로 내보내어 보관할 수 있습니다. 로컬화된 엔티티는 서버 공간의 상태가 없으므로, 서버 탭으로 전환하면 히스토리 대신 서버 상태가 없다는 안내 문구가 표시됩니다. >**Tip** > 히스토리 기록 여부는 메이커의 **Edit - Preferences - 만들기 - 테스트 플레이 - S [chunk_id] | Guides:1405:1

[task] | extract_knowledge [title] | 커스텀 PlayerController 만들기 [category] | Guides [rephrased] | # 플레이어 컨트롤러 상태 전환 로직 본 절에서는 플레이어의 지면 상태와 이동 속도를 기반으로 게임 로직 상태를 전환하는 메서드들을 정의합니다. `CheckGroundMoveOrFall`, `IsOnGround`, `GetVelocity` 메서드를 통해 현재 맵 모드에 적합한 물리 컴포넌트를 조회하고, 이에 따라 `MOVE`, `FALL` 상태로 상태를 변경합니다. ## 개념 설명 상태 전환은 다음과 같은 조건에 따라 수행됩니다. 1. **지면 상태 확인**: 현재 맵 모드(`TileMapMode`)에 따라 다른 물리 컴포 [original] | #### 상태 전환 메소드 플레이어의 지면 상태와 이동 속도를 확인하여 상태를 전환하도록 아래 3가지 메소드를 추가하고, 아래와 같이 작성합니다. - `CheckGroundMoveOrFall()`: 지면 여부와 이동 속도를 확인하여 상태를 전환합니다. 지면에 있고 이동 중이면 MOVE 상태로, 지면에 없고 IDLE 상태면 FALL 상태로 전환합니다. - `IsOnGround()`: 현재 맵 모드에 맞는 물리 컴포넌트를 통해 플레이어가 지면에 있는지 확인합니다. - `GetVelocity()`: 현재 맵 모드에 맞는 물리 컴포넌트 [chunk_id] | Guides:1403:16

[task] | knowledge_list [title] | StateSet Debugger [category] | Guides [rephrased] | 1. StateSet Debugger는 테스트 플레이 중 발생한 상태 전이 기록을 시간 순서대로 Client와 Server 실행 공간별로 분리하여 기록합니다. 2. StateSet Debugger의 히스토리 기록은 최대 100개까지 저장되며, 100개를 초과할 경우 가장 오래된 기록부터 순차적으로 삭제됩니다. 3. 테스트 플레이가 종료되면 StateSet Debugger에 기록된 모든 상태 전이 히스토리는 자동으로 삭제됩니다. 4. StateSet Debugger의 기록은 JSON 파일 형식으로 내보내기 기능을 통해 외부로 저장할 [original] | 테스트 플레이 중 발생한 상태 전이 기록입니다. 히스토리는 Client, Server로 나누어 기록되고, 시간 순으로 기록됩니다. 최대 **100개**까지 기록되며, 테스트 플레이가 종료되면 상태 전이 기록은 **삭제**됩니다. 필요한 경우 JSON으로 내보내어 보관할 수 있습니다. 로컬화된 엔티티는 서버 공간의 상태가 없으므로, 서버 탭으로 전환하면 히스토리 대신 서버 상태가 없다는 안내 문구가 표시됩니다. >**Tip** > 히스토리 기록 여부는 메이커의 **Edit - Preferences - 만들기 - 테스트 플레이 - S [chunk_id] | Guides:1405:1

[task] | wikipedia [title] | StateSet Debugger [category] | Guides [rephrased] | # StateSet Debugger **StateSet Debugger**는 테스트 플레이 환경에서 실행 중인 `StateSet`의 내부 상태를 시각적으로 추적하고 디버깅할 수 있도록 지원하는 도구입니다. 이 도구는 `StateSet Editor`에서 제작한 `StateSet`을 `StateComponent`에 지정했을 때에만 사용 가능하며, 테스트 플레이 환경에서만 접근할 수 있습니다. 테스트 플레이가 종료되면 디버거는 자동으로 닫히고, 해당 세션 동안 기록된 히스토리 데이터도 삭제됩니다. 따라서 데이터를 보존해야 하는 경우 ` [original] | StateSet Debugger는 테스트 플레이 환경에서 실행되고 있는 StateSet의 내부 상황을 시각적으로 추적할 수 있도록 도와주는 도구입니다. ##### 참고 가이드 - [타입의 이해](/docs/docs-1038{target}) - [StateSet 제어하기](/docs/docs-1398{target}) ##### 참고 API Reference - [StateComponent](/apiReference/Components/StateComponent{target}) ## StateSet Debugger 소개 Stat [chunk_id] | Guides:1405:0

[task] | extract_knowledge [title] | StateSet Debugger [category] | Guides [rephrased] | # StateSet Debugger ## 1. 개념 설명 StateSet Debugger는 테스트 플레이(Test Play) 환경에서 실행 중인 `StateSet`의 내부 상태 전이와 구조를 시각적으로 추적하기 위한 디버깅 도구입니다. 이 도구는 다음과 같은 제약 조건을 가집니다. - **대상 제한**: `StateSet Editor`에서 제작한 `StateSet`을 `StateComponent`에 지정하여 적용한 엔티티에만 적용됩니다. - **환경 제한**: 테스트 플레이 환경에서만 사용 가능하며, 테스트 플레이가 종료되면 [original] | StateSet Debugger는 테스트 플레이 환경에서 실행되고 있는 StateSet의 내부 상황을 시각적으로 추적할 수 있도록 도와주는 도구입니다. ##### 참고 가이드 - [타입의 이해](/docs/docs-1038{target}) - [StateSet 제어하기](/docs/docs-1398{target}) ##### 참고 API Reference - [StateComponent](/apiReference/Components/StateComponent{target}) ## StateSet Debugger 소개 Stat [chunk_id] | Guides:1405:0

[task] | wikipedia [title] | StateSet Debugger [category] | Guides [rephrased] | # StateSet 디버거 **StateSet 디버거**는 메이플스토리 월드 스크립트 환경에서 테스트 플레이 중 발생한 상태 전이(state transition) 기록을 시각적으로 확인할 수 있는 도구이다. 이 디버거는 클라이언트(Client)와 서버(Server)의 실행 공간별로 상태 전이 이력을 시간 순서대로 기록하며, 개발자가 스크립트 로직의 흐름을 추적하고 오류를 진단하는 데 사용된다. ## 기록 및 보관 방식 StateSet 디버거의 히스토리는 최대 **100개**까지 기록된다. 100개를 초과하여 새로운 로그가 발생 [original] | 테스트 플레이 중 발생한 상태 전이 기록입니다. 히스토리는 Client, Server로 나누어 기록되고, 시간 순으로 기록됩니다. 최대 **100개**까지 기록되며, 테스트 플레이가 종료되면 상태 전이 기록은 **삭제**됩니다. 필요한 경우 JSON으로 내보내어 보관할 수 있습니다. 로컬화된 엔티티는 서버 공간의 상태가 없으므로, 서버 탭으로 전환하면 히스토리 대신 서버 상태가 없다는 안내 문구가 표시됩니다. >**Tip** > 히스토리 기록 여부는 메이커의 **Edit - Preferences - 만들기 - 테스트 플레이 - S [chunk_id] | Guides:1405:1

[task] | distill [title] | BehaviourTree Debugger [category] | Guides [rephrased] | # BehaviourTree Debugger 테스트 플레이 환경에서 `AIComponent`의 행동 트리 실행 변화를 추적하여 문제를 진단하는 도구입니다. ## 접근 및 제약 * **사용 환경**: 테스트 플레이 환경만 지원. * **접근 경로**: `AIComponent.UpdateAuthority` 값에 따라 접근 창이 다름. * `Server`: Server Hierarchy 창 → 프로퍼티 창 → `Open BehaviourTree Debugger` * `Client`: Hierarchy 창 [original] | BehaviourTree Debugger를 활용해 테스트 플레이 환경에서 실행되고 있는 AIComponent의 행동 트리의 변화를 추적하고 문제 원인을 파악할 수 있습니다. ##### 참고 가이드 - [BehaviourTree 에디터로 AI 만들기](/docs?postId=1399) - [행동 트리 노드 만들기](/docs?postId=1155) ##### 참고 API Reference - [AIComponent](/apiReference/Components/AIComponent) - [UpdateAuthorityType](/a [chunk_id] | Guides:1406:0

[task] | distill [title] | BehaviourTree Debugger [category] | Guides [rephrased] | # BehaviourTree Debugger 기록 중지 시 JSON 파일로 내보냅니다. 기록은 틱 단위 묶임, 실행 순서대로 저장됩니다. * **Phase**: 진입 시 `Enter`, 종료 시 `Exit` * **Status**: `Exit`일 때만 기록 (`Running`, `Success`, `Failure`) ## JSON 필드 | 필드 | 설명 | | :--- | :--- | | `EntityId` | 디버깅 대상 엔티티 Id | | `AuthorityType` | 실행 공간 (`Client`, `Server [original] | 기록을 중지한 뒤, 그동안 쌓인 기록을 JSON 파일로 내보낼 수 있습니다. 기록은 한 틱을 기준으로 묶이고, 실행된 순서대로 기록됩니다. 노드의 단계가 진입인 경우 Phase가 `Enter`, 종료인 경우 Phase가 `Exit`로 기록됩니다. JSON 파일 형식은 아래와 같습니다. | 필드 | 설명 | | --- | --- | | EntityId | 디버깅 대상 엔티티의 Id입니다. | | AuthorityType | 행동 트리가 실행되는 공간입니다. Client, Server로 구분됩니다. | | ExportedAt | J [chunk_id] | Guides:1406:1

[task] | knowledge_list [title] | BehaviourTree Debugger [category] | Guides [rephrased] | * **BehaviourTree Debugger**는 테스트 플레이 환경에서만 사용 가능하며, 테스트 플레이를 시작하지 않으면 해당 버튼이 노출되지 않습니다. * **AIComponent**의 **UpdateAuthority** 프로퍼티 값이 `Server`인 경우, **Server Hierarchy** 창에서 엔티티를 선택해야 프로퍼티 창에서 디버거를 열 수 있습니다. * **AIComponent**의 **UpdateAuthority** 프로퍼티 값이 `Client`인 경우, **Hierarchy** 창에서 엔티티를 선 [original] | BehaviourTree Debugger를 활용해 테스트 플레이 환경에서 실행되고 있는 AIComponent의 행동 트리의 변화를 추적하고 문제 원인을 파악할 수 있습니다. ##### 참고 가이드 - [BehaviourTree 에디터로 AI 만들기](/docs?postId=1399) - [행동 트리 노드 만들기](/docs?postId=1155) ##### 참고 API Reference - [AIComponent](/apiReference/Components/AIComponent) - [UpdateAuthorityType](/a [chunk_id] | Guides:1406:0

[task] | wikipedia [title] | BehaviourTree Debugger [category] | Guides [rephrased] | # 게임 로직 BehaviourTree Debugger BehaviourTree Debugger는 게임 로직의 동작을 추적하고 분석하기 위한 도구로, 기록을 중지한 시점까지 쌓인 데이터를 JSON 파일 형식으로 내보낼 수 있습니다. 기록된 데이터는 한 틱(Tick) 단위로 묶이며, 각 틱 내에서 노드가 실행된 순서대로 저장됩니다. 노드의 단계(Phase)는 진입 시점과 종료 시점에 따라 각각 `Enter`와 `Exit`로 기록됩니다. 특히 `Exit` 단계의 경우, 해당 노드가 종료될 당시의 상태(Status)도 함께 기록됩니다 [original] | 기록을 중지한 뒤, 그동안 쌓인 기록을 JSON 파일로 내보낼 수 있습니다. 기록은 한 틱을 기준으로 묶이고, 실행된 순서대로 기록됩니다. 노드의 단계가 진입인 경우 Phase가 `Enter`, 종료인 경우 Phase가 `Exit`로 기록됩니다. JSON 파일 형식은 아래와 같습니다. | 필드 | 설명 | | --- | --- | | EntityId | 디버깅 대상 엔티티의 Id입니다. | | AuthorityType | 행동 트리가 실행되는 공간입니다. Client, Server로 구분됩니다. | | ExportedAt | J [chunk_id] | Guides:1406:1

[task] | distill [title] | StateSet Debugger [category] | Guides [rephrased] | # StateSet Debugger ## 필드 동작 규칙 ### State Name Step 종류에 따라 표시되는 상태 이름이 다릅니다. - `OnEnter`, `OnUpdate`, `OnExit`: 해당 이벤트가 호출된 상태의 이름 - `CurrentStateName`: 프로퍼티 변경 **후**의 상태 이름 ### Remark Step 종류에 따라 표시되는 추가 정보가 다릅니다. - `OnEnter`, `OnUpdate`, `OnExit`: 비어 있음 - `CurrentStateName`: 프로퍼티 수정 원인 표시 **수정 [original] | **State Name**은 Step의 종류에 따라 다르게 표시됩니다. - Step이 `OnEnter`, `OnUpdate`, `OnExit`인 경우에는 이벤트가 호출된 상태의 이름이 StateName에 나타납니다. - Step이 `CurrentStateName`인 경우에는 CurrentStateName 프로퍼티가 변경된 후의 상태 이름이 StateName에 나타납니다. #### Remark Remark는 프로퍼티 수정 원인과 조건에 의한 전이인 경우 그와 관련된 추가 정보입니다. Step의 종류에 따라 다르게 표시됩니다. [chunk_id] | Guides:1405:2

[task] | knowledge_list [title] | BehaviourTree Debugger [category] | Guides [rephrased] | 1. 게임 로직 BehaviourTree Debugger에서 기록을 중지한 후, 누적된 기록을 JSON 파일 형식으로 내보낼 수 있습니다. 2. BehaviourTree 기록 데이터는 한 틱(Tick) 단위로 묶이며, 노드가 실행된 순서대로 정렬되어 저장됩니다. 3. 노드의 단계(Phase)가 진입(Entry)인 경우 필드 `Phase`의 값은 `Enter`로 기록됩니다. 4. 노드의 단계(Phase)가 종료(Exit)인 경우 필드 `Phase`의 값은 `Exit`로 기록됩니다. 5. 내보낸 JSON 파일의 루트 필드 `Entity [original] | 기록을 중지한 뒤, 그동안 쌓인 기록을 JSON 파일로 내보낼 수 있습니다. 기록은 한 틱을 기준으로 묶이고, 실행된 순서대로 기록됩니다. 노드의 단계가 진입인 경우 Phase가 `Enter`, 종료인 경우 Phase가 `Exit`로 기록됩니다. JSON 파일 형식은 아래와 같습니다. | 필드 | 설명 | | --- | --- | | EntityId | 디버깅 대상 엔티티의 Id입니다. | | AuthorityType | 행동 트리가 실행되는 공간입니다. Client, Server로 구분됩니다. | | ExportedAt | J [chunk_id] | Guides:1406:1

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