wow-api-widget について
wow-api-widget は、World of Warcraft Retail の Widget API の主要な型、メソッド、利用パターンをまとめたスキルです。ゲーム UI を作成・操作する開発者向けで、詳細な情報源へのリンクも掲載しています。
主な機能
- 01ウィジェットの型と継承関係の概要
- 02フレーム、テクスチャ、フォント文字列の解説
- 03アニメーションと操作コントロールの説明
- 04イベントとスクリプトハンドラーのパターン
- 05XML スキーマとセキュリティ注記
活用シーン
- 01UI フレームの作成とアンカー設定
- 02ボタン、スライダー、ツールチップの構築
- 03UI イベントとスクリプトコールバックの処理
- 04インターフェース要素へのアニメーション追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jburlison/ wowaddonapiagents --skill wow-api-widgetインストール後、Claude Code で/wow-api-widgetを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/ADVANCED-WIDGETS.mdANIMATION-WIDGETS.mdBASE-WIDGETS.mdFONT-WIDGETS.mdFRAME-CONTROLS.mdFRAME-MODELS.mdFRAME-SPECIALIZED.mdFRAME-WIDGETS.mdSCRIPT-HANDLERS.mdTEXTURE-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)
このスキルの使用方法
- 作業対象のウィジェット型を特定します(例:
Frame、Texture、Button)。 - 上記の階層を確認して、継承元の基本型を調べます。
- 主要なメソッドと使用例について、該当するリファレンスファイルを開きます。
- 網羅的なメソッド一覧については、ソースリンクを参照します。
リファレンスファイル
| リファレンス | 内容 |
|---|---|
| BASE-WIDGETS.md | 基本型、アンカー設定、入力、スクリプト、表示状態 |
| TEXTURE-WIDGETS.md | TextureBase、Texture、MaskTexture、Line |
| FONT-WIDGETS.md | FontInstance、Font、FontString |
| ANIMATION-WIDGETS.md | AnimationGroup、Animation、Alpha、Rotation、Scale、Translation、Path |
| FRAME-WIDGETS.md | Frame の基本動作、イベント、レイヤー、移動 |
| FRAME-CONTROLS.md | Button、CheckButton、EditBox、ScrollFrame、Slider、StatusBar、Cooldown、MessageFrame、SimpleHTML |
| ADVANCED-WIDGETS.md | GameTooltip、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- アンカーファミリーの制限が適用されます。