ここではHUDのカスタマイズ方法を簡単に説明していきます。なお、この文章は [HUD Editing Guide] - Englishを参考にしています。
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を改造しましょう。まずは、タイマーの表示場所を変えてみます。以下の通りにしてください。
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 の、配置のサンプルを添付します。
例 タイマーを大きくする ※ 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スクリプトでは、解像度800×600として記述します。なので左上の座標は0,0 、右下は800,600になります。実際の解像度とは関係しないので注意してください。