msw-costume
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMSW 코스튬 (CostumeManager)
MSW 服装(CostumeManager)
아바타 장비·코스튬은 ****가 담당한다. 예전 Maker RPC( / )는 사용하지 않는다. 워크스페이스 파일을 직접 편집하고, 변경이 에디터에 반영되도록 의 도구를 호출한다.
MOD.Core.CostumeManagerComponentget_costumeset_costumemsw-maker-mcprefresh워크스페이스 경로 규칙: 맵, UI./map/, 스크립트·기타 에셋./ui/, DefaultPlayer·Player 등 글로벌 모델./RootDesk/MyDesk/./Global/
Avatar装备与服装由**负责。不再使用旧版Maker RPC( / )。需直接编辑工作区文件**,并调用**的工具**使变更同步到编辑器。
MOD.Core.CostumeManagerComponentget_costumeset_costumemsw-maker-mcprefresh工作区路径规则:地图、UI./map/、脚本及其他资源./ui/、DefaultPlayer、Player等全局模型./RootDesk/MyDesk/./Global/
작업 대상별 편집 위치
按操作对象划分的编辑位置
| 대상 | 편집 파일 | 비고 |
|---|---|---|
| DefaultPlayer | | |
| Player (베이스) | | 보통 코스튬 기본값은 여기보다 DefaultPlayer.model에서 오버라이드 |
| 맵에 배치된 엔티티 (NPC, 몬스터 등) | | 해당 엔티티의 |
| 커스텀 모델만 참조하는 엔티티 | 해당 | 맵에 인라인 컴포넌트가 없고 |
조회(get에 해당): 위 파일을 읽어 관련 필드· 항목을 확인한다. Maker MCP가 연결되어 있다면 로 런타임/에디터 스냅샷을 보조 조회할 수 있다( 스킬 참고).
CostumeManagerComponentValuesget_componentmsw-maker-mcp적용(set에 해당): 파일에 값을 쓴 뒤 호출.
refresh| 对象 | 编辑文件 | 备注 |
|---|---|---|
| DefaultPlayer | | 在 |
| Player(基础版) | | 通常服装默认值优先在DefaultPlayer.model中覆盖 |
| 地图中放置的实体(NPC、怪物等) | | 在对应实体的 |
| 仅引用自定义模型的实体 | 对应 | 若地图中无内联组件,仅通过 |
查询(对应get操作):读取上述文件,查看相关字段及项。若已连接Maker MCP,可通过辅助查询运行时/编辑器快照(参考技能)。
CostumeManagerComponentValuesget_componentmsw-maker-mcp应用(对应set操作):写入文件值后,调用****工具。
refresh변경 반영: MCP refresh
refresh变更同步:MCP refresh
refresh파일 저장 후 반드시 서버의 도구를 호출하여 Maker와 비주얼 상태를 동기화한다. ( 스킬의 도구 목록 참고)
msw-maker-mcprefreshmsw-maker-mcp文件保存后必须调用服务器的****工具,同步Maker与视觉状态(参考技能的工具列表)。
msw-maker-mcprefreshmsw-maker-mcpRUID(리소스 고유 ID)
RUID(资源唯一ID)
코스튬에 넣는 문자열은 아바타 아이템의 RUID(일반적으로 32자 hex)이다.
- RUID를 추측·임의 생성하면 안 된다. 스킬 및
msw-search(기본 body/head, 아이템 상세, 렌더 조합),references/avatar.md,references/search.md등으로 검색·조회하여 확보한다.references/detail.md - 스크립트 API 와 동일하게, 에디터/모델에 저장하는 것도 결국 같은 RUID 문자열이다.
SetEquip(MapleAvatarItemCategory, itemRUID)
服装中填写的字符串为Avatar物品的RUID(通常为32位十六进制字符串)。
- 不得猜测或随意生成RUID。需通过技能及**
msw-search**(基础身体/头部、物品详情、渲染组合)、references/avatar.md、references/search.md等文档查询获取。references/detail.md - 与脚本API 相同,编辑器/模型中保存的也是相同的RUID字符串。
SetEquip(MapleAvatarItemCategory, itemRUID)
CostumeManagerComponent 개요
CostumeManagerComponent概述
플레이어·NPC 등 아바타를 쓰는 엔티티에 부착된다. 장비 슬롯은 커스텀 장비용 문자열 프로퍼티 17개()로 표현되며, 스크립트에서는 / 과 로 접근한다.
Custom*EquipGetEquipSetEquipMapleAvatarItemCategory该组件附加在玩家、NPC等使用Avatar的实体上。装备插槽通过17个自定义装备字符串属性()表示,脚本中可通过 / 及进行访问。
Custom*EquipGetEquipSetEquipMapleAvatarItemCategory기타 동기화 프로퍼티
其他同步属性
| 프로퍼티 | 타입 | 설명 |
|---|---|---|
| UseCustomEquipOnly | | |
| DefaultEquipUserId | | 지정한 유저의 장비를 복제한 뒤, 그 위에 커스텀 장비를 얹는 방식. 접속하지 않은 유저도 지정 가능. 대상 유저가 이후 장비를 바꾸면 반영이 달라질 수 있다. |
| EquippedItems | 읽기 전용 | 런타임에서 실제 장착 정보. 스크립트에서 수정 불가. |
| 属性 | 类型 | 说明 |
|---|---|---|
| UseCustomEquipOnly | | 设为 |
| DefaultEquipUserId | | 先复制指定用户的装备,再在其基础上叠加自定义装备的方式。未登录用户也可指定。若目标用户后续修改装备,可能会影响当前设置。 |
| EquippedItems | 只读 | 运行时的实际装备信息。脚本无法修改。 |
17 슬롯 ↔ 프로퍼티 ↔ MapleAvatarItemCategory
17插槽 ↔ 属性 ↔ MapleAvatarItemCategory
CostumeManagerComponentMapleAvatarItemCategoryEnvironment/NativeScripts/Enum/MapleAvatarItemCategory.d.mlua| # | 컴포넌트 프로퍼티 (문자열 RUID) | MapleAvatarItemCategory | 비고 |
|---|---|---|---|
| 1 | CustomBodyEquip | Body (1) | 스킨/바디 |
| 2 | CustomHairEquip | Hair (3) | 헤어 |
| 3 | CustomFaceEquip | Face (4) | 성형/페이스 |
| 4 | CustomCapEquip | Cap (5) | 모자 |
| 5 | CustomCapeEquip | Cape (6) | 망토 |
| 6 | CustomCoatEquip | Coat (7) | 상의(코트) |
| 7 | CustomLongcoatEquip | Longcoat (9) | 롱코트 — 상의+하의 슬롯을 함께 쓰는 아이템 분류 |
| 8 | CustomPantsEquip | Pants (10) | 하의 |
| 9 | CustomGloveEquip | Glove (8) | 장갑 |
| 10 | CustomShoesEquip | Shoes (12) | 신발 |
| 11 | CustomOneHandedWeaponEquip | OneHandedWeapon (13) | 한손 무기 |
| 12 | CustomTwoHandedWeaponEquip | TwoHandedWeapon (14) | 두손 무기 — 한손 무기 + 보조 무기 슬롯을 함께 쓰는 분류 |
| 13 | CustomSubWeaponEquip | SubWeapon (15) | 보조 무기 |
| 14 | CustomFaceAccessoryEquip | FaceAccessory (16) | 페이스 악세 |
| 15 | CustomEyeAccessoryEquip | EyeAccessory (17) | 눈 악세 |
| 16 | CustomEarAccessoryEquip | EarAccessory (18) | 귀 악세 |
| 17 | CustomEarEquip | Ear (19) | 귀(신체 파츠) |
以下是的17个装备字符串字段与引擎枚举****的对应关系。(枚举定义参考:等)
CostumeManagerComponentMapleAvatarItemCategoryEnvironment/NativeScripts/Enum/MapleAvatarItemCategory.d.mlua| 序号 | 组件属性(字符串RUID) | MapleAvatarItemCategory | 备注 |
|---|---|---|---|
| 1 | CustomBodyEquip | Body (1) | 皮肤/身体 |
| 2 | CustomHairEquip | Hair (3) | 发型 |
| 3 | CustomFaceEquip | Face (4) | 脸型/面部 |
| 4 | CustomCapEquip | Cap (5) | 帽子 |
| 5 | CustomCapeEquip | Cape (6) | 披风 |
| 6 | CustomCoatEquip | Coat (7) | 上衣(外套) |
| 7 | CustomLongcoatEquip | Longcoat (9) | 长款外套 — 占用上衣+下装插槽的物品分类 |
| 8 | CustomPantsEquip | Pants (10) | 下装 |
| 9 | CustomGloveEquip | Glove (8) | 手套 |
| 10 | CustomShoesEquip | Shoes (12) | 鞋子 |
| 11 | CustomOneHandedWeaponEquip | OneHandedWeapon (13) | 单手武器 |
| 12 | CustomTwoHandedWeaponEquip | TwoHandedWeapon (14) | 双手武器 — 占用单手武器+辅助武器插槽的分类 |
| 13 | CustomSubWeaponEquip | SubWeapon (15) | 辅助武器 |
| 14 | CustomFaceAccessoryEquip | FaceAccessory (16) | 面部饰品 |
| 15 | CustomEyeAccessoryEquip | EyeAccessory (17) | 眼部饰品 |
| 16 | CustomEarAccessoryEquip | EarAccessory (18) | 耳部饰品 |
| 17 | CustomEarEquip | Ear (19) | 耳朵(身体部件) |
enum에만 있고 위 17필드에 직접 대응하지 않는 항목
仅存在于枚举中、无对应17字段的项
| MapleAvatarItemCategory | 설명 |
|---|---|
| Head (2) | “장비로 쓰지 않음”에 가깝고 바디 색에 맞춰 자동 처리되는 분류. |
| Invalid (0) | 오류/미정의 검출용. |
| Shield (11) | enum 주석상 보조 무기 슬롯(SubWeapon) 을 사용. 실질 저장은 CustomSubWeaponEquip 쪽과 배타적으로 정리하는 것이 안전하다. |
| MapleAvatarItemCategory | 说明 |
|---|---|
| Head (2) | 近似“不可装备”分类,根据身体颜色自动处理,无 |
| Invalid (0) | 用于检测错误/未定义项。 |
| Shield (11) | 枚举注释中说明使用辅助武器插槽(SubWeapon),实际存储时建议与CustomSubWeaponEquip排他性处理以确保安全。 |
상호 배타·슬롯 점유 규칙 (필수 이해)
互斥·插槽占用规则(必须理解)
-
롱코트 ↔ 코트 + 바지
Longcoat는 설계상 코트(Coat)와 바지(Pants) 슬롯을 함께 사용한다. 롱코트를 착용시키면 롱코트 RUID는에 두고, 상·하의를 따로 보이게 하려면 코트/바지와의 조합을 논리적으로 정리한다(통상 롱코트 사용 시 코트·바지 개별 장비는 비우거나 충돌을 피한다).CustomLongcoatEquip -
두손 무기 ↔ 한손 무기 + 보조
TwoHandedWeapon은 한손 무기 슬롯과 보조 무기 슬롯을 함께 쓴다. 두손 무기를 쓰면 CustomTwoHandedWeaponEquip를 중심으로 맞추고, 한손·보조와의 이중 장착이 되지 않게 값을 정리한다. -
방패(Shield) ↔ 보조 무기
Shield는 보조 무기 슬롯을 쓴다. CustomSubWeaponEquip와 동시에 다른 보조 장비를 기대하지 않도록 한다. -
빈 문자열로 해제
스크립트와 같이, 파일에서도SetEquip(category, "")로 두면 해당 슬롯 해제로 이해하면 된다.""
-
长款外套 ↔ 外套 + 下装
Longcoat设计上同时占用外套(Coat)和下装(Pants)插槽。若装备长款外套,需将长款外套RUID存入;若要单独显示上衣和下装,需合理整理外套/下装的组合(通常使用长款外套时,需清空或避免与外套、下装单独装备冲突)。CustomLongcoatEquip -
双手武器 ↔ 单手武器 + 辅助武器
TwoHandedWeapon同时占用单手武器插槽和辅助武器插槽。使用双手武器时,需以CustomTwoHandedWeaponEquip为核心配置,并确保不会同时装备单手武器和辅助武器。 -
盾牌(Shield) ↔ 辅助武器
Shield占用辅助武器插槽,请勿期望同时使用CustomSubWeaponEquip与其他辅助装备。 -
空字符串解除装备
与脚本相同,文件中设置为**SetEquip(category, "")即解除对应插槽的装备**。""
DefaultPlayer.model — Values
에 코스튬 넣기
ValuesDefaultPlayer.model — 在Values
中配置服装
Values./Global/DefaultPlayer.modelContentProto.Json.Values- TargetType:
"MOD.Core.CostumeManagerComponent" - Name: 위 표의 프로퍼티 이름 (예: ,
CustomCapEquip)UseCustomEquipOnly - ValueType: 기존 의 다른
DefaultPlayer.model항목과 동일한 패턴을 따른다. 문자열은Values, 불리언은System.String, mscorlib, ...System.Boolean, mscorlib, ... - Value: RUID 문자열 또는 /
truefalse
동일 가 이미 있으면 그 항목만 갱신하고, 없으면 배열에 객체 하나 추가한다.
(TargetType, Name)在的****数组中添加或修改项。
./Global/DefaultPlayer.modelContentProto.Json.Values- TargetType:
"MOD.Core.CostumeManagerComponent" - Name: 上述表格中的属性名称(例如:、
CustomCapEquip)UseCustomEquipOnly - ValueType: 遵循中其他
DefaultPlayer.model项的格式。字符串类型为Values,布尔类型为System.String, mscorlib, ...System.Boolean, mscorlib, ... - Value: RUID字符串或/
truefalse
若相同已存在,则仅更新该条目;若不存在,则向数组添加一个对象。
(TargetType, Name)문자열 슬롯 예시 (구조만 참고; RUID는 검색으로 치환)
字符串插槽示例(仅参考结构;RUID需替换为查询到的值)
json
{
"TargetType": "MOD.Core.CostumeManagerComponent",
"Name": "CustomCapEquip",
"ValueType": {
"$type": "MODNativeType",
"type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
},
"Value": "여기에_32자hex_RUID"
}json
{
"TargetType": "MOD.Core.CostumeManagerComponent",
"Name": "CustomCapEquip",
"ValueType": {
"$type": "MODNativeType",
"type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
},
"Value": "여기에_32자hex_RUID"
}UseCustomEquipOnly 예시
UseCustomEquipOnly示例
json
{
"TargetType": "MOD.Core.CostumeManagerComponent",
"Name": "UseCustomEquipOnly",
"ValueType": {
"$type": "MODNativeType",
"type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
},
"Value": true
}json
{
"TargetType": "MOD.Core.CostumeManagerComponent",
"Name": "UseCustomEquipOnly",
"ValueType": {
"$type": "MODNativeType",
"type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
},
"Value": true
}맵 엔티티 — .map
파일에서 수정
.map地图实体 — 在.map
文件中修改
.map./map/- 배열에서 대상 엔티티(이름·path·id로 식별)를 찾는다.
ContentProto.Entities - 배열에서
jsonString["@components"]인 객체를 찾는다."@type": "MOD.Core.CostumeManagerComponent" - 그 객체의 ,
Custom*Equip,UseCustomEquipOnly등을 직접 수정한다.DefaultEquipUserId - 문자열 목록에
componentNames가 포함되어 있는지 확인하고, 컴포넌트 배열과 불일치하면 안 된다.MOD.Core.CostumeManagerComponent
맵이 바이너리 포맷만 쓰는 경우 등은 워크스페이스 정책에 따라 편집 도구가 다를 수 있다. JSON 텍스트로 열리는 경우 위 구조를 따른다.
打开下对应地图的实体记录。
./map/- 在数组中找到目标实体(通过名称、path、id识别)。
ContentProto.Entities - 在数组中找到**
jsonString["@components"]**的对象。"@type": "MOD.Core.CostumeManagerComponent" - 直接修改该对象的**、
Custom*Equip、UseCustomEquipOnly**等属性。DefaultEquipUserId - 确认****字符串列表中包含
componentNames,需与组件数组保持一致。MOD.Core.CostumeManagerComponent
若地图仅使用二进制格式,编辑工具可能因工作区政策而异。若以JSON文本打开,则遵循上述结构。
GET /v3/avatars 검색 결과 → 슬롯 매핑
GET /v3/avatars搜索结果 → 插槽映射
GET /v3/avatarscategoryCustom*Equipmsw-searchreferences/resource/avatar.mdAPI | | |
|---|---|---|
| | Body (1) |
| | Hair (3) |
| | Face (4) |
| | FaceAccessory (16) |
| | EyeAccessory (17) |
| | EarAccessory (18) |
| | Cap (5) |
| | Cape (6) |
| | Longcoat (9) |
| | Coat (7) |
| | Pants (10) |
| | Glove (8) |
| | Shoes (12) |
| | OneHandedWeapon (13) |
| | TwoHandedWeapon (14) |
| | SubWeapon (15) |
| | Shield (11) — SubWeapon 슬롯 공유 |
将获取的物品字段映射到属性。搜索方法参考技能 → 。
GET /v3/avatarscategoryCustom*Equipmsw-searchreferences/resource/avatar.mdAPI | | |
|---|---|---|
| | Body (1) |
| | Hair (3) |
| | Face (4) |
| | FaceAccessory (16) |
| | EyeAccessory (17) |
| | EarAccessory (18) |
| | Cap (5) |
| | Cape (6) |
| | Longcoat (9) |
| | Coat (7) |
| | Pants (10) |
| | Glove (8) |
| | Shoes (12) |
| | OneHandedWeapon (13) |
| | TwoHandedWeapon (14) |
| | SubWeapon (15) |
| | Shield (11) — 共享SubWeapon插槽 |
아바타 리소스 검색 참고
Avatar资源查询参考
- 스킬 →
msw-search:references/resource/avatar.md(코스튬 검색), 기본 body/head,GET /v3/avatars, 렌더 조합 등 아바타 파이프라인 상세.GET /v3/avatars/{ruid} - 장비 RUID는 카테고리 검색·상세 API를 병행해 확보한다.
- ****技能 →
msw-search:包含references/resource/avatar.md(服装搜索)、基础身体/头部、GET /v3/avatars、渲染组合等Avatar流水线详情。GET /v3/avatars/{ruid} - 装备RUID需结合分类搜索及详情API获取。
관련 스킬
相关技能
| 스킬 | 용도 |
|---|---|
| msw-defaultplayer | |
| msw-search | RUID 검색, |
| msw-maker-mcp | |
| 技能 | 用途 |
|---|---|
| msw-defaultplayer | |
| msw-search | RUID查询, |
| msw-maker-mcp | ** |
요약 체크리스트
总结检查清单
- RUID는 resource 검색·avatar 참고 문서로 확보한다.
- DefaultPlayer/Player → 의
./Global/*.model또는 베이스 모델 정의.Values - 맵 엔티티 → 의 해당 엔티티
./map/*.map.@components - 롱코트 / 두손 무기 / 방패·보조 배타 규칙을 지킨다.
- ****로 “계정 기본 코스튬 무시” 여부를 명시한다.
UseCustomEquipOnly - 저장 후 →
msw-maker-mcp호출.refresh
- 通过资源查询·Avatar参考文档获取RUID。
- DefaultPlayer/Player → 修改的**
./Global/*.model**或基础模型定义。Values - 地图实体 → 修改中对应实体的**
./map/*.map**。@components - 遵守长款外套 / 双手武器 / 盾牌·辅助武器的互斥规则。
- 通过****明确是否“忽略账号默认服装”。
UseCustomEquipOnly - 保存后调用**→
msw-maker-mcp**工具。refresh