mcpField
W
wow-api-widget

wow-api-widget

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

wow-api-widget について

wow-api-widget は、World of Warcraft Retail の Widget API の主要な型、メソッド、利用パターンをまとめたスキルです。ゲーム UI を作成・操作する開発者向けで、詳細な情報源へのリンクも掲載しています。

主な機能

  1. 01ウィジェットの型と継承関係の概要
  2. 02フレーム、テクスチャ、フォント文字列の解説
  3. 03アニメーションと操作コントロールの説明
  4. 04イベントとスクリプトハンドラーのパターン
  5. 05XML スキーマとセキュリティ注記

活用シーン

  1. 01UI フレームの作成とアンカー設定
  2. 02ボタン、スライダー、ツールチップの構築
  3. 03UI イベントとスクリプトコールバックの処理
  4. 04インターフェース要素へのアニメーション追加

インストール

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

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

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

同梱ファイル

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

references/
ADVANCED-WIDGETS.md
ANIMATION-WIDGETS.md
BASE-WIDGETS.md
FONT-WIDGETS.md
FRAME-CONTROLS.md
FRAME-MODELS.md
FRAME-SPECIALIZED.md
FRAME-WIDGETS.md
SCRIPT-HANDLERS.md
TEXTURE-WIDGETS.md

詳細

WoW Widget API(厳選版)

このスキルでは、World of Warcraft Retail の Widget API について説明します。厳選版として、よく使う主要な型、メソッド、パターンを取り上げています。網羅的な一覧については、ソースリンクを参照してください。

情報源:https://warcraft.wiki.gg/wiki/Widget_API スクリプトハンドラー:https://warcraft.wiki.gg/wiki/Widget_script_handlers XML スキーマ:https://warcraft.wiki.gg/wiki/XML_schema 最終確認:パッチ 12.0.0(Retail)

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

次の作業が必要な場合に、このスキルを使用してください。

  • UI フレームを作成または操作する(CreateFrame、Frame:SetPoint、Frame:Show)
  • テクスチャと視覚領域を扱う(Texture:SetTexture、TextureBase:SetAtlas)
  • フォント文字列とテキスト表示を扱う(FontString:SetText、FontInstance:SetFont)
  • アニメーションを作成する(AnimationGroup:Play、Animation:SetDuration)
  • ツールチップを管理する(GameTooltip:SetOwner、GameTooltip:AddLine)
  • ボタンと対話型コントロールを扱う(Button:SetText、EditBox:SetText、Slider:SetValue)
  • ステータスバーとクールダウンを扱う(StatusBar:SetValue、Cooldown:SetCooldown)
  • 3D 表示にモデルフレームを使用する(Model:SetModel、ModelScene:CreateActor)
  • UI 要素のアンカー設定、サイズ変更、表示、非表示、親要素の設定を行う
  • フレームをイベントに登録する(Frame:RegisterEvent、Frame:RegisterUnitEvent)
  • スクリプトハンドラーを設定する(ScriptObject:SetScript、ScriptObject:HookScript)

ウィジェット階層(概要)

FrameScriptObject
  Object
    ScriptObject
      ScriptRegion (+ ScriptRegionResizing + AnimatableObject)
        Region
          TextureBase -> Texture, MaskTexture, Line
          FontString (+ FontInstance)
        Frame (+ FontInstance)
          Button -> CheckButton
          EditBox, MessageFrame, ScrollFrame, Slider, StatusBar, Cooldown
          GameTooltip, SimpleHTML, ColorSelect, MovieFrame
          Model -> PlayerModel -> CinematicModel, DressUpModel -> TabardModel
          ModelScene -> ModelSceneActor

AnimationGroup -> Animation -> Alpha, Rotation, Scale, Translation, Path, FlipBook
Font (FrameScriptObject + FontInstance)

このスキルの使用方法

  1. 作業対象のウィジェット型を特定します(例:Frame、Texture、Button)。
  2. 上記の階層を確認して、継承元の基本型を調べます。
  3. 主要なメソッドと使用例について、該当するリファレンスファイルを開きます。
  4. 網羅的なメソッド一覧については、ソースリンクを参照します。

リファレンスファイル

リファレンス内容
BASE-WIDGETS.md基本型、アンカー設定、入力、スクリプト、表示状態
TEXTURE-WIDGETS.mdTextureBase、Texture、MaskTexture、Line
FONT-WIDGETS.mdFontInstance、Font、FontString
ANIMATION-WIDGETS.mdAnimationGroup、Animation、Alpha、Rotation、Scale、Translation、Path
FRAME-WIDGETS.mdFrame の基本動作、イベント、レイヤー、移動
FRAME-CONTROLS.mdButton、CheckButton、EditBox、ScrollFrame、Slider、StatusBar、Cooldown、MessageFrame、SimpleHTML
ADVANCED-WIDGETS.mdGameTooltip、Model/PlayerModel、ModelScene、ColorSelect、MovieFrame

基本パターン

作成とアンカー設定
local frame = CreateFrame("Frame", "MyFrame", UIParent, "BackdropTemplate")
frame:SetSize(240, 120)
frame:SetPoint("CENTER")

local title = frame:CreateFontString(nil, "OVERLAY", "GameFontNormal")
title:SetPoint("TOP", 0, -12)
title:SetText("Hello")
イベントとスクリプト
local f = CreateFrame("Frame")
f:RegisterEvent("PLAYER_LOGIN")
f:SetScript("OnEvent", function(self, event)
    print("Ready", event)
end)
ボタン
local btn = CreateFrame("Button", nil, UIParent, "UIPanelButtonTemplate")
btn:SetSize(120, 32)
btn:SetPoint("CENTER")
btn:SetText("Click")
btn:RegisterForClicks("AnyUp")
btn:SetScript("OnClick", function(self, button)
    print("Clicked", button)
end)
アニメーション
local ag = frame:CreateAnimationGroup()
local fade = ag:CreateAnimation("Alpha")
fade:SetFromAlpha(0)
fade:SetToAlpha(1)
fade:SetDuration(0.25)
ag:Play()

XML スキーマのクイックスタート

<Ui>
  <Frame name="MyXmlFrame" parent="UIParent" hidden="true">
    <Size x="240" y="120"/>
    <Anchors>
      <Anchor point="CENTER"/>
    </Anchors>
    <Scripts>
      <OnLoad>
        self:RegisterEvent("PLAYER_LOGIN")
      </OnLoad>
      <OnEvent>
        print(event)
      </OnEvent>
    </Scripts>
  </Frame>
</Ui>

スクリプトハンドラーの早見表

  • ScriptRegion:OnShow、OnHide、OnEnter、OnLeave、OnMouseDown、OnMouseUp、OnMouseWheel
  • Frame:OnEvent、OnUpdate、OnSizeChanged、OnDragStart、OnDragStop、OnKeyDown、OnKeyUp
  • Button:OnClick、OnDoubleClick、PreClick、PostClick
  • EditBox:OnTextChanged、OnEnterPressed、OnEscapePressed、OnTabPressed
  • Slider/StatusBar:OnValueChanged、OnMinMaxChanged
  • AnimationGroup/Animation:OnPlay、OnStop、OnFinished、OnUpdate

ウィジェット型ごとのハンドラーの全一覧については、https://warcraft.wiki.gg/wiki/Widget_script_handlers を参照してください。

特殊なウィジェット(概要)

高度なウィジェット(GameTooltip、Model、ModelScene、ColorSelect、MovieFrame)については、ADVANCED-WIDGETS.md を参照してください。 メソッドの全一覧と特殊なウィジェットの詳細については、Widget API のページを参照してください。

セキュリティ注釈

API リファレンスでタグ付けされたメソッドには、使用制限があります。

  • #protected - Blizzard のセキュアコードのみ使用できます。
  • #secureframe - 戦闘中、保護フレームでは呼び出せません。
  • #nocombat - 戦闘ロックダウン中は呼び出せません。
  • #restrictedframe - 戦闘中に非セキュアコードから保護フレームを指定すると、nil を返します。
  • #anchorfamily - アンカーファミリーの制限が適用されます。

出典

コメント