====== HUDチュートリアル タイマー位置変更 ======
ここではHUDのカスタマイズ方法を簡単に説明していきます。なお、この文章は [[http://www.warsow.net/forum/viewtopic.php?id=11197|[HUD Editing Guide] - English]]を参考にしています。
===== HUDの基礎知識 =====
WarsowではHUDは専用のスクリプトファイルによって作られています。なので、テキストエディターで編集することが可能で、かつ容易に編集することが出来ます。まずは、実際にHUDファイルがどのように構成されているかを見てみます。
HUDファイルは
warsow/basewsw/huds/
に入っています。default.hudを開いてみましょう。'include ***'とたくさん書かれていますね。これは
warsow/basewsw/huds/inc/
以下に入っている.hudファイルを読み込んでいます。このようにHUDの定義は細かい.hudファイルを読み込むことで定義されています。これにより、 HUDの一部だけを変更するのが簡単になります。例えば、defaultの照準に、etrのHealth表示に…と言った組み合わせを容易に作れます(表示位置が重なった場合は、手直しが必要ですが…)。
v0.5ではデフォルトのHUDファイルはdata0_05.pk3内に格納されています。.pk3の実態はzipファイルなので、.zipとリネームして解凍すれば中身のHUDファイルを入手できます。
===== カスタマイズ =====
では、実際にHUDを改造してみましょう。既存のHUDファイルを変更するのがお手軽ですが、上書きすると問題が起きたときに困るので、別ファイルとして保存しましょう。
では、default.hudを改造しましょう。まずは、タイマーの表示場所を変えてみます。以下の通りにしてください。
- default.hudと全く同じ内容のファイルをtest.hudとして保存
- test.hudの内容の'include clock_right_small' を 'include test/clock_right_small' に書き換え
- huds/inc/test/ フォルダを作成
- /huds/inc/ から huds/inc/test/ に clock_right_small.hud をコピー
- clock_right_small.hud をテキストエディタで編集
clock_right_small.hudの編集は3,4行目の
setalign #RIGHT #TOP
setCursor #WIDTH - 4, 24
を
setalign #LEFT #TOP
setCursor 4, 4
に変更します。これでタイマーの表示が左上に変更されました。Warsowを起動して、Player setupからHUDをtestに変更してみましょう。タイマーの位置が変わっていれば成功です。
===== 説明 =====
では、編集したclock_right_smallについて説明していきます。
2行目のif文は、現在のゲームモードがRaceで無いことを確認しています。Raceモードではタイマーは必要ない、ということです。
3行目のsetalign #LEFT #TOP は場所を合わせる箇所を指定しています。Left topなので左上が座標の基準点になります。
4行目のsetCursor 4, 4は後の drawClock で書き込むタイマーをどの位置に描き込むかを指定しています。
5行目のdrawClockで実際にタイマーを描き出しています。
このように、HUDスクリプトは
- setalignで描き出す内容の基準点(左上、右上、真ん中など)を決める
- setCursorで描き出す座標を指定する
- drawClockで実際に描き出す
というような手順で書かれています。
setalign と setCursor の、配置のサンプルを添付します。
{{:customize:hud:チュートリアル:hud_potision_sample.png?300|hud potisionサンプル}}
===== タイマーのサンプルスクリプト =====
例 タイマーを大きくする ※ clock_right_small を以下に書き換える
// clock
if %STAT_GAMETYPE != #GAMETYPE_RACE
setFont "virtue_16" // ← 追加 大きい文字にする
setalign #LEFT, #TOP // ← 書き換え
setCursor #WIDTH - 93, 20 // ← 書き換え
drawClock
setFont con_fontSystemMedium // ← 追加 fontを元に戻す ( 上で大きい文字にしたのが他にも影響するので必ず入れる事 )
setalign #RIGHT, #TOP
setCursor #WIDTH - 100, 24 // ← 書き換え
drawClockText 0
endif
例 タイマーをセンター上に表示にする ※ clock_right_small を以下に書き換える
// clock
if %STAT_GAMETYPE != #GAMETYPE_RACE
setalign #CENTER, #TOP // ← 書き換え
setCursor #WIDTH / 2, 24 // ← 書き換え
drawClock
setalign #CENTER, #TOP
setCursor #WIDTH / 2, 40 // ← 書き換え
drawClockText 0
endif
===== 実際に改造する際の注意点 =====
HUDスクリプトでは、解像度800x600として記述します。なので左上の座標は0,0 、右下は800,600になります。実際の解像度とは関係しないので注意してください。