"Hello wot" WoTにおけるPythonプログラミングのスタート

なんか偉そうな記事名だけど自分もほんの僅かしかWoTのmoddingについて知りません.照準MODとかどうやって作ってるんでしょうか・・・

そんな自分でもいくらか調べておそらくスタートラインに立てたかな?と思えるようになったのでメモ.日本語のWoTのMOD制作についてのブログほとんどありませんね,スキンや音声MODはありがたいことに先人がいらっしゃるのでPython周りのことを少しばかり.REPLという手法(らしい?)でいろいろなコードを試せます.



使うもの

これだけ.CygwinでなくPuttyなどのクライアントでもほとんど同じことができるが,コーディングの際の自動補完にPythonReadlineモジュールをwot-debugserverで使っているのでCygwinが強く推奨されている.ReadlineWindowsでは導入できないらしい.

インストール

Cygwinの準備

Cygwinのインストールは簡単だが注意すべきこととして,Pythonを入れるのを忘れないように.

wot-debugserverの準備

まずGitHubからダウンロードしてきて(もしくはgit clone)してdebugserverのpythonというディレクトリをCygwinから開く.
build.shもしくは

python -m compile

してpycファイルを作る.

WoTでの準備

XMVをお馴染みのres_modsに導入したら先ほどコンパイルしたdebugserverのpycファイルをres_mods/mods/packages/wot-debugserver/python/にコピーする.
ついでに1ゲーム分のリプレイがあるとこの後がしやすいです.

これで準備は終わり,簡単だろう.

Hello WoT

適当なリプレイをこの開発用のWorldOfTanks.exeで再生して一時停止しよう.
普通にリプレイファイルをダブルクリックで開いても普段使いのEXEで再生することになるのでせっかく用意した環境が試せない.リプレイファイルを開発用のEXEにドラッグすることでもリプレイを開けるのでそれで開くとおk.
一時停止のままCygwinからdebugserverのpythonディレクトリ内にあるclient.pyをpythonで実行してみる.
これまでの流れで間違いがなければ

TKYMa@TKYma /cygdrive/e/WoT/wot-debugserver/python
$ python client.py
>

というように入力待ちの状態になっている.

では手始めにHello WoTという文字を画面に表示してみます.

> import BigWorld
> import GUI
> hello = GUI.Text("Hello WoT")
> hello.font = "WARGothic"
> GUI.addRoot(hello)
None
>

さあWoTで再生中のリプレイを見てみよう,このようにHello WoTと表示されているはず.
f:id:TKYMa:20151231222410j:plain
文字の色や大きさ,位置を変えるにはどうすればいいのか?どのようなオプションがあるかはオートコンプリートでだいたい予想がつく.

> hello.

この状態でTabキーを押してみる.ずらっと一覧が表示される.それっぽいのはhello.colourだろう?

> hello.colour
(255, 255, 255, 255)

どうもRGBともう一つは何かのパラメータのよう.

> hello.colour = (0, 0, 255, 255)

としてみると文字が青色に変わった,予想通りだ.f:id:TKYMa:20151231223456j:plain
4つ目のパラメータが何なのかは実際に試してもらいたい.

では次に適当な画像を表示してみる.\res_mods\0.9.12\scripts\client\mods に用意したddsファイルをコピーする.ほとんど先ほどのGUI.Textと同じだが画像を出す前に先ほどの文字を画面から一旦消そう.

> GUI.delRoot(hello)

で消える.そして画像を表示するには

> buka = GUI.Simple('scripts\\client\\mods\\buka.dds')
> GUI.addRoot(buka)
None
>

でおそらく歪んだ形だけれども画像が表示される.
f:id:TKYMa:20151231224949j:plain
Textと同様にいろいろなオプションがあるので試してみるをいいかもしれない.

便利なサイト

www.koreanrandom.com
XVMの開発者フォーラムのトピックの1つ.逆コンパイルされたWoTのスクリプトが置いてある.ソースコードの逆コンパイルツールも配布されてる.ロシア語なので翻訳推奨.
github.com
GitHub,WoTのMODのソースコードが置いてあったりします.
XVM — Bitbucket
XVMのソースコード