HUDチュートリアル タイマー位置変更

ここではHUDのカスタマイズ方法を簡単に説明していきます。なお、この文章は [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を改造しましょう。まずは、タイマーの表示場所を変えてみます。以下の通りにしてください。

  1. default.hudと全く同じ内容のファイルをtest.hudとして保存
  2. test.hudの内容の'include clock_right_small' を 'include test/clock_right_small' に書き換え
  3. huds/inc/test/ フォルダを作成
  4. /huds/inc/ から huds/inc/test/ に clock_right_small.hud をコピー
  5. 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スクリプトは

  1. setalignで描き出す内容の基準点(左上、右上、真ん中など)を決める
  2. setCursorで描き出す座標を指定する
  3. drawClockで実際に描き出す

というような手順で書かれています。

setalign と setCursor の、配置のサンプルを添付します。

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スクリプトでは、解像度800×600として記述します。なので左上の座標は0,0 、右下は800,600になります。実際の解像度とは関係しないので注意してください。

customize/hud/チュートリアル/タイマー位置変更.txt · 最終更新: 2010/03/04 21:25 by bluespear
CC Attribution 3.0 Unported
www.chimeric.de Driven by DokuWiki Recent changes RSS feed