mcpField
W
wow-api-xml-schema

wow-api-xml-schema

github.com/jburlison開発4651 回インストール37 週間前に更新
リポジトリ

wow-api-xml-schema について

World of Warcraft アドオンの UI ファイルで使う XML スキーマを参照するスキルです。宣言的にレイアウトやウィジェットを定義する開発者向けに、XML 要素・属性と Lua API との関係を説明します。

主な機能

  1. 01WoW アドオン XML 要素を解説
  2. 02フレーム、リージョン、フォント、アニメーションを網羅
  3. 03属性と Lua API の対応を説明
  4. 04テンプレートと継承関係を解説
  5. 05スキーマ参照ファイルを提供

活用シーン

  1. 01アドオンの .xml UI ファイルを作成・確認
  2. 02フレーム、テクスチャ、アニメーションを定義
  3. 03アンカー、スクリプト、サイズ制限を設定
  4. 04VS Code で XML を検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jburlison/wowaddonapiagents --skill wow-api-xml-schema

インストール後、Claude Code で/wow-api-xml-schemaを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
XML-ANIMATIONS.md
XML-FONTS.md
XML-FOUNDATION.md
XML-FRAME-TYPES.md
XML-REGIONS.md

詳細

WoW XML スキーマ

このスキルでは、World of Warcraft アドオン開発向けの XML スキーマを解説します。XML ファイルでは、フレーム、テクスチャ、フォント文字列、フォント、アニメーションなどのユーザーインターフェイス要素を宣言的に定義します。ほとんどの UI 機能は Widget API を使って Lua からも利用できますが、XML を使うとレイアウト、テンプレート、ウィジェット階層を構造的に定義できます。

信頼できる情報源: https://warcraft.wiki.gg/wiki/XML_schema XSD ファイル: https://raw.githubusercontent.com/Gethe/wow-ui-source/live/Interface/AddOns/Blizzard_SharedXML/UI.xsd 最終更新: Patch 12.0.0(Retail のみ) 対象範囲: WoW アドオンの .xml ファイルで使用されるすべての XML 要素と属性です。

このスキルを使用する場面

次のような場合にこのスキルを使用してください。

  • WoW アドオンの .xml UI 定義ファイルを記述または読み取る
  • XML でフレーム、テクスチャ、フォント文字列、アニメーションを定義する
  • XML 仮想テンプレート(virtual="true")と継承(inherits="")を設定する
  • どの XML 属性がどの Lua API 呼び出しに対応するかを理解する
  • XML でアンカー、レイヤー、スクリプト、キー値、サイズ変更の境界を設定する
  • 適切な名前空間宣言を含む <Ui> ルート要素を設定する
  • XML からファイルを読み込むために <Include> タグと <Script> タグを使用する
  • テキストのスタイル設定用に <Font> オブジェクトまたは <FontFamily> オブジェクトを定義する
  • アニメーショングループとアニメーションを宣言的に作成する
  • 組み込みフレーム(intrinsic="true")を作成する
  • XML 要素の継承階層を理解する(例:Button は Frame を継承し、Frame は LayoutFrame を継承します)

他のスキルとの関係

スキル関係
wow-api-widgetウィジェットで呼び出す Lua 側の Widget API メソッドを扱います。このスキルでは、宣言的な XML 側の定義を扱います。多くの XML 属性は Widget API メソッドに直接対応します。
wow-addon-structure.toc ファイル形式とアドオンの読み込みを扱います。XML ファイルは .toc に記載され、順番に読み込まれます。
wow-api-framexmlFrameXML ヘルパー関数とミックスインを扱います。XML の mixin 属性と secureMixin 属性は、そこで解説される Lua ミックスインを参照します。
wow-lua-apiLua 5.1 環境を扱います。<Script> タグはその環境内で Lua コードを実行します。

ウィジェット階層(XML 要素)

<Ui>                          -- Root element; encloses all other tags
├── <Include />               -- Loads another .xml or .lua file
├── <Script />                -- Executes inline or file-based Lua code
├── <Font />                  -- Defines a reusable font object
├── <FontFamily />            -- Defines fonts per alphabet/locale
│
├── <LayoutFrame>             -- Abstract base: name, anchors, size, keyvalues, animations
│   ├── <Texture />           -- Draws an image, solid color, or gradient
│   │   ├── <MaskTexture />   -- Applies a mask to other textures
│   │   └── <Line />          -- Draws a line between two anchors
│   ├── <FontString />        -- Draws text
│   └── <Frame>               -- Handles events, user interaction, contains child widgets
│       ├── <Button>          -- Responds to clicks
│       │   ├── <CheckButton> -- Adds checked/unchecked state
│       │   └── <ItemButton>  -- Intrinsic frame extending Button
│       ├── <ColorSelect>     -- Color wheel + value picker
│       ├── <Cooldown>        -- Rotating edge / swipe overlay
│       ├── <EditBox>         -- Text input field
│       ├── <GameTooltip>     -- Tooltip formatting
│       ├── <MessageFrame>    -- Scrolling message display
│       ├── <Model>           -- 3D model rendering
│       │   ├── <PlayerModel>
│       │   │   ├── <DressUpModel>
│       │   │   └── <TabardModel>
│       │   ├── <CinematicModel>
│       │   └── <UiCamera>
│       ├── <ModelScene>      -- Scene-based 3D rendering
│       ├── <ScrollFrame>     -- Scrollable container
│       ├── <ScrollingMessageFrame> -- Intrinsic scrolling messages
│       ├── <SimpleHTML>      -- Renders HTML content
│       ├── <Slider>          -- Value selector within a range
│       ├── <StatusBar>       -- Fill bar (health, progress, etc.)
│       ├── <MovieFrame>      -- Video playback
│       ├── <ArchaeologyDigSiteFrame>
│       ├── <QuestPOIFrame>
│       └── <ScenarioPOIFrame>
│
└── <AnimationGroup>          -- Contains animations
    └── <Animation>           -- Abstract base for animations
        ├── <Alpha>           -- Fades opacity
        ├── <Scale>           -- Resizes
        │   └── <LineScale>
        ├── <Translation>     -- Moves position
        │   └── <LineTranslation>
        ├── <Path>            -- Moves through control points
        ├── <Rotation>        -- Rotates around an origin
        └── <TextureCoordTranslation> -- Shifts texture coordinates

リファレンスファイル

リファレンス内容
XML-FOUNDATION.md用語、XML 名前空間の設定、<Ui>、<Include>、<Script>、基本要素の <LayoutFrame>、<Anchors>、<Size>、<KeyValues>、<Animations>
XML-FRAME-TYPES.md<Frame> とすべてのサブタイプ:Button、CheckButton、ItemButton、ColorSelect、Cooldown、EditBox、GameTooltip、MessageFrame、Model(およびサブタイプ)、ScrollFrame、ScrollingMessageFrame、SimpleHTML、Slider、StatusBar、POI フレーム
XML-REGIONS.md<Texture>、<MaskTexture>、<Line>、<FontString> と共通の子要素:<Color>、<Gradient>、<TexCoords>、<Shadow>、<Inset>、<Dimension>
XML-FONTS.md<Font>、<FontFamily>、<FontHeight>、<Member>
XML-ANIMATIONS.md<AnimationGroup>、基本要素の <Animation>、<Alpha>、<Scale>、<LineScale>、<Translation>、<LineTranslation>、<Path>、<Rotation>、<TextureCoordTranslation>

簡単な例

画面中央にテクスチャを表示する最小限の XML ファイルです。

<Ui xmlns="http://www.blizzard.com/wow/ui/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.blizzard.com/wow/ui/
                        https://raw.githubusercontent.com/Gethe/wow-ui-source/live/Interface/AddOns/Blizzard_SharedXML/UI.xsd">
    <Frame parent="UIParent">
        <Size x="64" y="64"/>
        <Anchors>
            <Anchor point="CENTER"/>
        </Anchors>
        <Layers>
            <Layer level="ARTWORK">
                <Texture file="interface/icons/inv_mushroom_11" setAllPoints="true"/>
            </Layer>
        </Layers>
    </Frame>
</Ui>

一般的な XML 属性の型

XSD 型Lua 相当例
xs:stringstring"MyFrame"、"interface/icons/spell_nature_heal"
xs:booleanboolean"true"、"false"
xs:intnumber(整数)"0"、"42"
xs:floatnumber(浮動小数点数)"1.0"、"0.5"
xs:unsignedIntnumber(非負の整数)"0"、"255"
ui:FRAMEPOINTstring"CENTER"、"TOPLEFT"、"BOTTOMRIGHT"
ui:FRAMESTRATAstring"BACKGROUND"、"LOW"、"MEDIUM"、"HIGH"、"DIALOG"、"FULLSCREEN"、"FULLSCREEN_DIALOG"、"TOOLTIP"
ui:DRAWLAYERstring"BACKGROUND"、"BORDER"、"ARTWORK"、"OVERLAY"、"HIGHLIGHT"
ui:ORIENTATIONstring"HORIZONTAL"、"VERTICAL"
ui:OUTLINETYPEstring"NONE"、"NORMAL"、"THICK"
ui:ALPHAMODEstring"DISABLE"、"BLEND"、"ALPHAKEY"、"ADD"、"MOD"
ui:INSERTMODEstring"TOP"、"BOTTOM"
ui:JUSTIFYHTYPEstring"LEFT"、"CENTER"、"RIGHT"
ui:JUSTIFYVTYPEstring"TOP"、"MIDDLE"、"BOTTOM"
ui:ANIMLOOPTYPEstring"NONE"、"REPEAT"、"BOUNCE"
ui:ANIMSMOOTHTYPEstring"NONE"、"IN"、"OUT"、"IN_OUT"、"OUT_IN"
ui:ANIMCURVETYPEstring"NONE"、"SMOOTH"
ui:KEYVALUETYPEstring"nil"、"boolean"、"number"、"string"、"global"
ui:WRAPMODEstring"CLAMP"、"REPEAT"、"CLAMPTOBLACK"、"CLAMPTOBLACKADDITIVE"、"CLAMPTOWHITE"、"MIRROR"

エディターのセットアップ

WoW XML ファイルのスキーマ検証、オートコンプリート、エラーチェックには、Red Hat XML 拡張機能をインストールした VS Code を使用してください。

コメント