msw-sprite-ruid について
msw-sprite-ruid は、MSW のスプライトおよび UI コンポーネントでリソース RUID を使う方法を説明します。ランタイムコードやプロジェクトデータで、スプライト、アニメーションクリップ、静的サムネイルを設定する開発者向けです。
主な機能
- 01spriteまたはanimationclipのRUIDを設定
- 02UIランタイム値にDataRefを使用
- 03プレフィックスで静的サムネイルを表示
- 04ループ再生と状態アニメーションを区別
- 05直接設定できないリソースを説明
活用シーン
- 01ワールドエンティティのスプライトやアニメーション設定
- 02UIでスプライトやサムネイルを表示
- 03avataritemリソースをインベントリアイコンに利用
インストール
コマンドをコピーしてターミナルで実行します。
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 を直接受け取れます。追加のアニメーターコンポーネントは不要です。
| コンポーネント | プロパティ | 値の形式(ランタイムの .mlua) | ネイティブの RUID 型 |
|---|---|---|---|
SpriteRendererComponent(ワールド) | SpriteRUID | 文字列 | sprite、animationclip |
SpriteGUIRendererComponent(UI) | ImageRUID | DataRef("...") | sprite、animationclip |
ImageRUID は DataRef です。ランタイムの .mlua では、DataRef(ruid) を割り当ててください。
{ DataId: ruid } を使うのは、.ui/.model の JSON またはビルダーパッチデータのみです。
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にanimationclipの RUID を直接設定します。 - 複数状態(立つ/移動/攻撃/被弾/死亡):
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 を使って、アバターアイテムの RUID を検索してください。
よくある落とし穴
skeleton/avataritemをプレフィックスなしでSpriteRUID/ImageRUIDに直接設定すると、エラーなしで表示されません。thumbnail://が表示するのは静止画像のみです。アニメーションを動かすには、animationclipの RUID を直接割り当ててください(プレフィックスなし)。- ランタイムの
.mluaではImageRUID = DataRef("...")を使います。{ "DataId": "..." }オブジェクト形式を使えるのは.ui/.modelの JSON のみです(プレフィックスは別フィールドではなく、DataIdの中に指定します)。ランタイムコードでテーブル形式を使わないでください。LSP がDataRef型の不一致として拒否します。 CostumeManagerComponent.Custom*Equip、StateAnimationComponent.ActionSheet、SkeletonRendererComponent.SkeletonRUIDはthumbnail://を受け付けません。msw-searchからサムネイルまたはアイコン画像としてすでに取得した RUID に、thumbnail://を付けないでください。このプレフィックスは元のリソースをサムネイルに変換するもので、すでにサムネイルになっているスプライトに適用しても論理的に冗長です。検索クエリの対象がアイコン/サムネイル画像で、spriteの RUID が返された場合は、プレフィックスなしでその RUID を直接割り当ててください。- RUID を検索するには、
msw-searchスキルを使ってください。アバターアイテムにはsearchAvatarItems、それ以外にはsearchResourcesを使います。