====== 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になります。実際の解像度とは関係しないので注意してください。