コンパイルとは・・・
現在標準と思われるZHLTコンパイラーを元にコンパイルについて詳しく説明します。
コンパイルとは、Hammerで作られるrmfファイルを、Half-Lifeエンジンでプレイ可能なbspファイルへ変換する事をいいます。
Hammerで作っただけでは即プレイ出来るわけではありません。
コンパイルはHammerからはF9キーを押してコンパイルダイアログを呼び出し、各種設定を行った後、実行します。
rmfファイルからbspへの変換の流れは、大体以下のような感じになります。
4つのコンパイラープログラムを用いるのはHammerのオプション設定をした際に気づいたかと思いますが、それぞれの独立したプログラムがファイルを受け渡しながらマップを完成させていきます。
RMF(MAP) |
Hammerで作成されるファイル。コンパイル開始の為、MAPファイルをコンパイラーに渡す。 |
↓
|
HLCSG |
受け取ったMAPファイルを元にマップの基本構造を構築し、P0〜P3までの4つのファイルを生成。 |
↓
|
HLBSP |
4つのファイルを元にBSPツリーを構築し、BSPファイルの基本部分が完成 (この段階でもプレイは可能)。 |
↓
|
HLVIS |
BSPファイルを元に視界領域を決定し、レンダリングの支援をする。 |
↓
|
HLRAD |
ライティングを生成し、光と影でマップの雰囲気作りをする。 |
↓
|
完成 |
コンパイルを説明する際に忘れてはならないのがコンパイル時間で、マシンの性能がアップしたと言ってもまだまだ一瞬でマップが出来上がるまでには至っておりません。
当サイトの
チュートリアルにあるような簡単なマップであればすぐにコンパイルが終了しますが、例えばマシンのスペックがCPU:Athron2500+、RAM:1GBというマシンでde_dustクラスのマップをコンパイルすると、大体20分程度の時間を必要とします。これより低スペックのマシンならもっと時間が掛かるのは言うまでもありません。
マップがある程度出来てプレイしてみよう、という段階になったけど、ちょっと見たいだけなのに20分も待たされた・・・というのでは効率が悪いです。しかもコンパイルはCPUとメモリを占有してしまいますので、その間に他のアプリケーションを使う場合には動作が重くなる場合もあります。
そこで注目したいのが上にある
HLBSPの部分です。
コンパイル4段階のうち、2段階目が終了した時点で、もうプレイが可能なのです。
その後のVISやRADコンパイルは実行しませんので、あたかもHammerの3DViewの中を歩き回るような感じでプレイが可能になります。
Hammerでの見た目と、実際にプレイした場合の見た目は、かなり違います。
特に慣れないうちは頻繁にこのプレイテストを行わないと、マップ完成段階になってマップ全体が大きすぎた、という大きなミスに見舞われてしまいがちです。
コンパイル2段階目までであれば、よほど複雑なBrush形状を作らない限り、ものの数分で終了します。
プレイテストが終了し構造に問題が無い、となったところで初めて残りの2つのコンパイルに入ります。
先程のダイアログで全てのコンパイラーをチェックし、実行します。
この事をフルコンパイルやファイナルコンパイルと呼び、コンパイルに時間が掛かるため、以前までは寝ている間などマシンを使用していない時間に実行していました。
また、もしファイナルコンパイルを行った後に間違いに気づいても、CSGオプションの「
onlyents」を使用すればEntityのプロパティ変更やEntityそのものの位置などは後からでも変更が可能です。
但しBrush形状や位置、ライティング全般に関しては変更できませんのでご注意ください。
詳しくは
こちらの該当個所をご覧ください。
最後にCSEC推奨セッティングを紹介します。
コンパイルのオプションセッティングは特にファイナルコンパイルでは個人の好みによって色んな方法がありますのでこれが正解、というのはありません。
自分で気に入ったセッティングを見つけましょう。
オプションについては
こちらをご覧ください。
コンパイルセッティングはプレイテスト用、ファイナルコンパイル用やゲームごとに幾つでも用意出来ますのでその時に応じて切り替えてコンパイルできます。
セッティングを増やしたい場合にはダイアログ右上の「Edit」ボタンを押して、「New」や「Copy」ボタンを押します。
プレイテスト用セッティング(コンパイル時間短縮)
|
$vis_exe(HLVIS)と$light_exe(HLRAD)のチェックを外します。
ユーザー作成のカスタムwadファイルを使用している場合は、$csg_exeのParametersの部分に「-wadinclude
マップ名.wad」と入力してBSPファイルにwadをインクルードします。
以下に私がプレイテストを行う場合の例を紹介します。
上の条件でコンパイルを行うとゲームが自動で立ち上がりますので、そのままゲーム中で修正個所を探し、多い場合はメモを取っておきます。
Hammerに戻り(Alt+TABでタスク切り替え)、修正個所を直したら再度この条件でコンパイルし、ゲーム画面に戻ります。
ゲーム画面に戻ったら、コンソールから、「map
マップ名」と入力してマップを再度読み込みます。
そしてマップが完成するまでこれを繰り返します。
( コンソールからコマンドを入力する場合には、「↑」キーを押すと以前に入力したコマンドが出てきますので2回目以降はコマンドを入れる必要はありません。
)
|
|
ファイナルコンパイル用セッティング
|
最終コンパイルなので4つのコンパイラーを全て実行します。
$vis_exeで「full」オプションを、light_exeで「extra」と「bounce」オプションをセットします。
extraは影の外郭をスムーズに、bounceは影を薄くする効果があります。
他にRADでは「smooth」、「chop」などが効果が出やすいと思います。
これらのオプションは見た目を良くするものですが、特にchopなどはセットする数字によってコンパイル時間が大幅に変わってきますのでご注意ください。
|
|