※このコンテンツはWorld of Warcraft Hell の内容を翻訳した内容になります。原文は2004/8/19に書かれたもので、それを2006/3/28現在の内容に修正しながら訳してあります。
また、mod,modification,UI Modificationという語句は馴染み深いと思われる「AddOn」という名称で訳してみました。
英語力がっとても拙いので、誤訳があったらごしてきください^ ^;;
また、mod,modification,UI Modificationという語句は馴染み深いと思われる「AddOn」という名称で訳してみました。
英語力がっとても拙いので、誤訳があったらごしてきください^ ^;;
Step1&Step2.ディレクトリ作成&World of Warcraft Interface解凍
訳者注:不要と思われるため割愛します^ ^;。Interfaceフォルダ作成が主な内容です。AddOn作ろうと思う方はほとんどこのフォルダは有ると思いますので。
Step3.AddOn作成のための基本ファイル作成
まず、Interfaceディレクトリの中に「AddOns」というディレクトリを作成してください。 (訳者注:AddOnを使用していれば既にあるはず。)そして、AddOnsディレクトリの中に"fancymod"(実際は、呼びたいように何でもOK)というディレクトリを作成してください。
それが出来たら、そのディレクトリに次のセクションで説明される基本のファイルを作成してください。
AddOn作成には、作成するAddOnの名前にちなんだ、少なくとも3つのファイルが必要です。このガイドの例では次のようになります。:fancymod.xml, fancymod.lua, fancymod.toc.
[wowdir]\Interface\AddOns\fancymodディレクトリの中にfancymod.xml、fancymod.lua、fancymod.tocno
3ファイルを作成してください。以下、このファイルの説明になります。
3ファイルを作成してください。以下、このファイルの説明になります。
- .luaファイルはLUAスクリプトファイルです。LUAは「アプリケーションを拡張する為にに設計された強力な軽量プログラミング言語」です。www.lua.org(訳者注:Lua: 5.0 リファレンスマニュアルLuaの日本語リファレンスページ)で詳しい情報、およびオンラインマニュアルを手に入れることができます。 BlizzardはWorld of WarcraftでLUA5を使用しています。
- .xmlファイルははあなたが作成するかもしれないWindow、ロードされるlua、およびその他について記述するXMLファイルになります。 www.xml.comでXMLに関するより多くの情報を見つけることができますが、いまこれを読むのはお勧めしません。できれば、HTMLのちょっとしたカスタム版としてXMLを考えてください。
- .tocファイルは、AddOn用にどのファイルをロードすればよいかをWoWに伝える目次になります。
基本的な内容のこれらのファイルを実装して試してみましょう。
Step4.ファイルの実装(初めてのAddOn作成)
初めに、どのファイルをロードしたらよいかをWoWに伝える、TOC(目次)を実装します。 TOCは、始めにAddOnについて説明する次のような行を持ちます。
## Interface: バージョン
Interface行は、AddOnが公式のインタフェースのどのバージョンで動作するかをWoWに伝えます。ここでは(2006/3/15現在)最新のバージョンである、10900を使用します。このバージョンが公式インターフェースのバージョンと異なるとAddOnはロードされません。もしバージョンが不明であれば、Step2にしたがってデフォルトのInterfaceを解凍して、Interface\FrameXMLフォルダにあるFrameXML.tocの内容をみてください。この最初の行が現行のバージョンです。(訳者註:このバージョンの確認のしかたは嘘っぽいので、他のAddOnのバージョンを見て確認しましょう^ ^;;)
## Title: AddOnのタイトル ## Notes: 注釈
AddOnのタイトルと注釈です。現在未使用ですが、これらの項目をゲーム内のダイアログで使うことを計画中です。(訳者注:'06/3/15現在は、ログイン後のキャラ選択画面にあるAddOnボタンを押した画面で、このタイトルが表示されます。また同画面で、AddOn名にカーソルを持っていくと注釈が表示されます。)
## Dependencies: 依存するAddOn
必要であれば、このAddOnが依存するAddOnをカンマ区切りで記述します。例:Cosmos, Something, Somemod
また、韓国語のためのkoKR、スペイン語のためのesES、英語のためのusENまたはドイツ語のためのdeDEのようにローカル(各国語)版用の指定をすることができます。ローカル指定の行はこのようになります:
## Title-deDE: Mein Mod ## Title-usEN: My Mod
しかし、前述の通り、World of Warcraftの最新版では適応されません。まだ、将来の互換性にこれらの項目を指定することができます。(訳者注:ローカル用記述の内容は未確認。)これらの行の記述の後でWorld of Warcraftによって読み込まれるべきファイルを記入しなければなりません(XMLファイル)。ここでの例では1ファイルだけですので、fancymod.tocはこのようになります:
## Interface: 11000 ## Title: Fancy Mod ## Notes: This is ultra fancy fancymod.xml
最後の行はWorld of Warcraftにfancymod.xmlを読み込むように伝えます。いろいろな.xmlファイルを置けますが、ここでの例では、これだけが必要です。この状態でWorld of Warcraftを起動すると、このAddOnが読み込まれますがxmlファイルとluaファイルが空白なので何も動作しません。では何をしますか?動作するか確認するために、最初に基本的な定義で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/ ..\..\FrameXML\UI.xsd"> </Ui>
この<Ui>項目はXMLの始まりと終わりになります。このXMLでは、空白のファイルと同様になにも起きません。しかし、ここでの計画はAddOnが読み込まれたかどうか確認するために、World of Warcraftの反応を得ることです。このために、AddOnが読み込まれたときにだけ表示されるシンプルなエラーメッセージボックスを使うことにします。
メッセージボックスを表示するために、message()関数を使用します。XMLファイル内にこのように記入します:
<Script> message("fancy!"); </Script>
しかし、XMLとコードを分けるために、XMLに先ほど作ったfancymod.luaを読み込むように伝えて起動時に関数を呼ぶようにします。そのために<Ui>と</Ui>の間にこのように記入します:
<Script file="fancymod.lua"/> <Frame name="fancy"> <Scripts> <OnLoad> Fancy_OnLoad(); </OnLoad> </Scripts> </Frame>
(>)の前のスラッシュ(/)に注意してください(タグを閉じます)。それで別の</Script>を使う必要がありません。このコードでAddOnにfancymod.luaを読み込んで、AddOn読み込み時にFancy_OnLoad()を実行します。そのような関数がまだ存在しないので、今World of Warcraftを起動すると、意図したのとは違うエラーメッセージが吐き出されます。それではfancymod.luaファイルに関数を作成してみましょう。
Lua関数は常に'function'というキーワード、それに続いて、半角スペース、関数名、そして括弧で括られた必要な引数で始まります。それからコードが来て、続いて最後に'end'で関数の終わりを示します。ここでの基本的な関数、message()関数はこのように呼び出されます:
function Fancy_OnLoad() message("Fancy!"); end
そしてこれがfancymod.luaファイルの中身すべてになります。
これで準備ができました!World of Warcraftを起動してゲーム開始時に洒落たエラーメッセージを楽しんでください。
Tips
(訳者注:コンソールモードでの起動方法は試してみたが良くわからないため割愛します。)
開発中はAddOnの読み込みが何回も発生します。チャットウィンドウに"/console reloadui"といれるとAddOnを再読み込みできます。
開発中はAddOnの読み込みが何回も発生します。チャットウィンドウに"/console reloadui"といれるとAddOnを再読み込みできます。
WoWをウィンドウモードにしておくとゲーム画面とテキストエディターを間単に切り替えられます。