关于 msw-sprite-ruid
msw-sprite-ruid 说明 MSW 精灵和 UI 组件如何使用资源 RUID,供开发者在运行时代码或项目数据中设置精灵、动画片段和静态缩略图。
主要功能
- 01设置 sprite 或 animationclip RUID
- 02UI 运行时值使用 DataRef
- 03通过前缀显示静态缩略图
- 04区分循环动画与状态动画
- 05说明不支持直接赋值的资源
适用场景
- 01设置世界实体的精灵或动画
- 02在 UI 中显示精灵或缩略图
- 03将 avataritem 资源用作库存图标
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ msw-git/ msw-ai-coding-plugins-official --skill msw-sprite-ruid安装后在 Claude Code 中输入/msw-sprite-ruid确认已加载。
详细介绍
MSW Sprite RUID
为 SpriteRendererComponent.SpriteRUID(世界)或
SpriteGUIRendererComponent.ImageRUID(UI)分配 RUID 的规则。
原生类型支持
这两个组件都可以直接接受 sprite 或 animationclip RUID,无需额外的
animator 组件。
| 组件 | 属性 | 值形式(运行时 .mlua) | 原生 RUID 类型 |
|---|---|---|---|
SpriteRendererComponent(世界) | SpriteRUID | 纯字符串 | sprite、animationclip |
SpriteGUIRendererComponent(UI) | ImageRUID | DataRef("...") | sprite、animationclip |
ImageRUID 是一个 DataRef:在运行时 .mlua 中,赋值为 DataRef(ruid)。
仅在 .ui / .model JSON 或构建器补丁数据中使用 { DataId: ruid }。
SpriteRUID 仍为纯字符串。
-- World: sprite or animationclip RUID both work
self.Entity.SpriteRendererComponent.SpriteRUID = ruid
-- UI: sprite or animationclip RUID both work
self.Entity.SpriteGUIRendererComponent.ImageRUID = DataRef(ruid)
未加 thumbnail:// 前缀的 skeleton / avataritem RUID 会
静默失败(无报错,也不会渲染任何内容)。
animationclip:单个动画与多状态动画
- 单个循环动画(背景装饰、待机效果、道具):将
SpriteRUID或ImageRUID直接设为animationclipRUID。 - 多状态动画(站立 / 移动 / 攻击 / 受击 / 死亡):使用
StateAnimationComponent+ActionSheet。参见msw-general/references/monster.md。
thumbnail:// 前缀——从任意资源获取静态缩略图
在 SpriteRUID 或 ImageRUID 前添加 thumbnail://,即可渲染任意资源的静态
缩略图——适用于图标、预览图和物品缩略图。
thumbnail://<32-char hex RUID>
接受的类型:sprite · animationclip · skeleton · avataritem
-- World thumbnail (any resource type)
self.Entity.SpriteRendererComponent.SpriteRUID = "thumbnail://" .. anyRuid
-- UI thumbnail (any resource type)
self.Entity.SpriteGUIRendererComponent.ImageRUID = DataRef("thumbnail://" .. anyRuid)
主要用途:avataritem 图标
avataritem RUID 不加 thumbnail:// 就无法渲染。添加此前缀后,它们会显示为物品图标,可用于背包栏位、商店列表和装备预览。
slotEntity.SpriteGUIRendererComponent.ImageRUID = DataRef("thumbnail://" .. avatarItemRuid)
使用 msw-search 技能(searchAvatarItems)搜索 avatar item RUID。
常见问题
- 将
skeleton/avataritem直接赋给SpriteRUID/ImageRUID,不加前缀 → 静默不可见。 thumbnail://仅用于静态图片。要播放实时动画,直接赋值animationclipRUID(不加前缀)。- 运行时
.mlua使用ImageRUID = DataRef("...");{ "DataId": "..." }对象形式仅适用于.ui/.modelJSON(前缀应放在DataId内部,而非单独字段中)。运行时代码中不要使用表格形式——LSP 会因DataRef类型不匹配而拒绝。 CostumeManagerComponent.Custom*Equip、StateAnimationComponent.ActionSheet和SkeletonRendererComponent.SkeletonRUID不接受thumbnail://。- 不要给从
msw-search作为缩略图或图标图片获取的 RUID 再加thumbnail://。此前缀会将源资源转换为缩略图;对已是缩略图的 sprite 使用此前缀在逻辑上是多余的。如果搜索查询针对图标 / 缩略图图片,且返回了spriteRUID,请直接赋值,不加任何前缀。 - 要搜索 RUID,请使用
msw-search技能——头像物品使用searchAvatarItems;其他内容使用searchResources。
评论
支持 Markdown