MENU
Top
Maps
Models
Tips
Tutorials
FAQ
Entities
Dictionary
Files
Archives
Forum
Links
About
Quick Link
Counter-map
VERC
CS-Nation
HalfLife2.Net




- Mapping FAQ -
マッピングに関するよくある質問とその答え。
併せてTipsTutorialsDictionaryもご覧ください。



  1. ガラスの作り方
  2. 水の作り方
  3. ランダム・タイリング・テクスチャ
  4. コンパイルの仕組み
  5. LEAKエラー
  6. コンパイルでフリーズ
  7. テクスチャ・ライティング
  8. テクスチャの反転
  9. Brush Entityを元に戻す
  10. SKY(空)の作り方
  11. ワープの作り方
  12. Spawn Pointの作り方
  13. テクスチャ容量UPの方法
  14. 遠くまで見通せるようにする
  15. 滝の作り方
  16. ループサウンドの作り方
  17. 梯子(ハシゴ)の作り方
  18. プレイしてみると、ライトが無効になっている?

ガラスの作り方 ▲Top

  1. 割れるガラス
    BrushEntity: func_breakable

    Health: ガラスの耐久度(デフォルトは1)
    Material: Glass
    RenderMode: Texture
    FX Amount: 100(透明度: 0〜255の範囲で設定、0で完全な透明)

  2. 割れないガラス
    BrushEntity: func_wall

    RenderMode: Texture
    FX Amount: 100(透明度: 0〜255の範囲で設定、0で完全な透明)

水の作り方 ▲Top

BrushEntity: func_water

RenderMode: Texture
FX Amount: 100(透明度: 0〜255の範囲で設定、0で完全な透明)
WaveHeight: 3.2 波の高さ


ランダム・タイリング・テクスチャ ▲Top

例えば、
-0aaa
-1aaa
-2aaa
のように順に並んだテクスチャを選択するとテクスチャがランダムに選択されます。
しかし、正しく表現させるには、CSのビデオモードをソフトウェアモードにする必要があります。


コンパイルの仕組み ▲Top

4つのコンパイラーを使用して最終的にCSでプレイできるようになります
コンパイルの順番は下のような流れです

CSG:
WAD関連(参考)とBrushの基本的な部分をコンパイルします
BSP: CSGで出来たファイルを使い、Brushを細分化、Leakを調べます
VIS: BSPで出来たファイルを使い、ポリゴンを作る、コンパイルのメイン処理です
LAD: VISで出来たファイルを使い、最後にライティングをします

上のように、バケツリレー方式(?)でコンパイルを行うため、途中でエラーが出てコンパイルに失敗すると、受け取るべきファイルが無いので、「ファイルがありません」というようなエラーがOSから出てしまいます。

また、エラーが出ている状態でマップをプレイするとライティング処理が抜けている為に、影が無いフルブライトモードになります。
逆に、この事を利用してコンパイル時間を短くする事で、構造テストが容易になります(参考)

BSP段階で出る、最も起こりがちなLEAKエラーについては下をご覧ください


LEAKエラー ▲Top

Leakとは穴(洩れ)の事ですが、マップにLeakがあるとコンパイルに異常に時間が掛かるだけでなく、プレイ中も非常に重くなります。
その事を防ぐために、ZHLTコンパイラーではエラーを出してコンパイルを中断します。
但し、コンパイラーによってはLeakしていてもエラーを出さずに続行するものもあるので注意が必要です。

マップ全体の外壁部分に穴があって、マップの外の世界への漏れがある、と言うのが最も基本的なLeakで、マップに隙間があってはいけません。
では、隙間を覆うために、新たに箱を作成しマップ全体を覆えばいい、と考えるかも知れませんが、大きな箱はマップ全体を重くします。
よって、最小の構成でマップを作成しつつ、漏れが無いようにしなくてはなりません。

穴はBrushを作る段階で気を付けていればある程度回避できると思いますが、穴以外にもLeak扱いとなるものがあります。

その一つはPointEntityなどがBrushの内部に入り込んでしまったり、Brush同士が複雑に重なり合っている場合などです。

何がエラーの原因になっているのか、まず最初にすべき事はAlt+Pで表示されるエラーをチェックすることです。
GoToボタンで該当箇所を見る事が出来るので解決の手助けになるでしょう。

どの場所がLeakしているのか確認するには、PointFileを読み込むという方法もあります。
LeakしているファイルをHammerで開いた状態で、メニューから、Map - Load Pointfileとして、ptsファイルを選択します。
赤い線でLeak状況が表示されますので、その辺りをチェックし、Leakの原因を探ります。
赤い線がLeakそのものを表すわけではないので分かりづらい部分もありますが、どうしても解決出来ないときは一旦周辺のBrushを削除して新たにBrushを作り直しましょう。


コンパイルでフリーズ ▲Top

コンパイル中、VISの段階に入った辺りでコンパイル状況ウィンドウの表示が止まり、フリーズしたかのように見えますが、実際にはまだ計算しています。
ウィンドウを閉じようとすると応答が無いとOSに言われるかも知れませんが、裏でコンパイラーが計算しているだけですので、無理に閉じようとするとコンパイルが中断してしまいます。

コンパイルの段階で時間が掛かるのは主にVISで、次にRADです。
CPUがAthlon 1.2GHz、RAMが512MB、OSがWin2000というマシンで当サイトに置いてあるjrc_streetクラスのマップでコンパイルに必要な時間は10分程度です。

マップの規模や構造、ライティングの数でコンパイル時間は上下しますが、余りに時間が掛かりすぎる場合にはマップの構造を見直したほうが良いでしょう。
複雑な形状を多用しているとコンパイルに時間が掛かるだけでなく、ポリゴン数の多さからプレイ中、Lagの原因にもなります(参考)。


テクスチャ・ライティング ▲Top

テクスチャの中には、貼るだけで発光するテクスチャがあります。
half-life.wadの中を見ると分かると思いますが、蛍光灯のテクスチャなどがそれに当たります。

テクスチャ・ライティングを利用する為に、以下の作業を行う必要があります。

Hammer/tools の中のValve.radファイルをテキストエディタで開き、中身を全部コピーします
次に、Lights.radを開いてペーストします

これで、このLights.radの中の設定内容がコンパイル時に適用されます。

Light.radの設定内容は、明るさや色など、ユーザーが好きなように編集が可能です。

+0~FIFTS_LGHT01 160 170 220 4000

左から、テクスチャ名、色(RGB指定)、明るさです。
ユーザー独自のテクスチャを追加することも勿論可能です。


テクスチャの反転 ▲Top

テクスチャには、左右、上下の区別があるものがあります。
看板やサインなど文字があるものは特にそうです。

テクスチャを貼り付けた位置によってテクスチャが鏡写しのように反転してしまった場合、テクスチャダイアログを開き、Scaleの値に−(マイナス)を指定します。

例えば、水平方向に反転させたい場合、XのScaleに「 -1.0 」と入力します。

追記:
テクスチャダイアログで、Faceのチェックボックスを切り替えることにより、反転したテクスチャを面に従って整列させることが出来ます。


Brush Entityを元に戻す ▲Top

一度Entity化したBrushを元に戻す(World化)には、
エディター右のツールバーにある「 to World 」ボタンを押します。
または、Ctl+Wでも可能です。


SKY(空)の作り方 ▲Top

屋外マップに不可欠な空の作り方。

マップ全体の、地面を除いた5つのBrushに対しSKYテクスチャを適用します。
そして、PointEntity: light_environmentを配置します。
次に、メニューから、Map - Map Properties を選択し、evironment map (cl_skyname)の部分に使用したいSKYの名前を入力します。
名前のリストはここここを参考にしてください。
また、SKYに使用するTGAファイルは、cstrike\gfx\envフォルダなどにあります。


追記:
注: SKYテクスチャを適用するのは、面ではなくBrush全体に対して行います。
やり方としては、空となるBrushを全部選択後、ボタンを使ってBrushの全ての面のテクスチャを変更します。


ワープの作り方 ▲Top

ワープゾーンの入り口を、Brushで作成します。
テクスチャは AAATRIGGER で、triger_teleport というEntityにします。
このBrushに触れると、ワープ出口まで瞬時に移動します。
AAATRIGGER=目に見えない状態なので、もしワープゾーンの位置を分かりやすく示したい時には、func_illusionaly などのEntityに色の付いたテクスチャを貼りつけ、AAATRIGGERに重ねて配置します。
func_illusionalyはプレイヤーを通過させますので、そのまま trigger が生かされます。

また、sprite を使うという方法もあります。
デフォルトでワープ用の sprite が幾つか用意されていますので、Pakscape を利用して好みの物を利用するのも良いでしょう。

ワープの出口には、info_teleport_destination というPointEntityを配置します。
もしワープの出口に既に他のプレイヤーがいる場合、Spawnバグ発生の原因になりますので、場合によっては空中に配置するなどの配慮が必要です。

最後に、triger_teleport のTargetに、info_teleport_destination の名前を指定すれば完了です。


Spawn Pointの作り方 ▲Top

Spawn Point、つまりプレイヤーのスタート位置の配置方法。

CounterTerroristは info_player_start というPoint Entityを、Terroristは info_player_deathmatch を配置します。

配置するときに注意するのが各Entity間の間隔で、128Unit程度の隙間を空けないと、スタート時にWorld Spawn Errorが発生し、プレイヤーが死亡してしまいます。
また、Brush(壁やオブジェクト)から64Unit離す必要もあります。

参考:
http://countermap.counter-strike.net/Tutorials/tutorial.php?id=22


テクスチャ容量UPの方法 ▲Top

CSインストール時に用意されていない、オリジナル(カスタム)テクスチャを使用する時は、BSPファイルに含めてしまうのが一般的ですが、そのテクスチャファイル(*.wad)のサイズには限界があります。

デフォルトでの限界は4096kbで、それ以上のサイズのテクスチャを含めようとした場合、コンパイラーは「MAX_MAP_MIPTEX」エラーを吐き出します(Zoner's)。

テクスチャサイズの容量を指定する事により、このエラーを回避できます。
それには、以下のようにコンパイル時にパラメータを追加します。

$csg_exeの後のParameters欄に、
$path\$file -texdata 8000
と入力します。

これにより、テクスチャの最大容量が約8MBになります。


遠くまで見通せるようにする ▲Top

デフォルト設定のまま作られたマップは、プレイヤーの目に入る領域を制限しています。
そのサイズは4096Units分です。
これはde_dustのTerroristスタート地点から、Rushコースであるトンネルまでの距離と大体同じです。
もし4096以上の大きさの部屋を作ろうとする場合、片方の壁から反対の壁まで見通せなくなってしまいますので、マップ自体のプロパティを変更する必要があります。

メニューから、[Map] - [Map Properties] を選択し、Map viewable distance の数値を増やします。

Hammerで作れるマップの一辺のサイズは最大で8000ですので、10000程度の数値を入力しておけば良いでしょう。


滝の作り方 ▲Top

滝や噴水などで使う、上から下に落ちる水の作り方(表現の仕方)。

滝本体に、適当なサイズのBrushを作り、 func_waterにEntity化します。
Entityのプロパティ、RenderFX(FX Amount)に100程度の数値を入力し、透明度を設定し、
テクスチャに、+0WATERF+0LASER1FALLなどのアニメーションテクスチャを指定します。
0から続く連続したテクスチャは、最初の番号「0」のテクスチャを指定することにより自動でアニメーションしますので、水が流れているような状態を作り出せます。

+0WATERF   +0LASER1FALL (それぞれのテクスチャはhalflife.wadにあります)


川のように流れる水面はこれで完成ですが、滝の場合は水が落ちる部分に水しぶきを置くとより雰囲気が良くなります。
水しぶきを置きたい場所にPointEntityのenv_spriteを配置します。
各プロパティの値は以下の通りです。

Rendor Mode: Additive
RenderFX: 120 (透明度: 0〜255の範囲で設定、0で完全な透明)
Framerate: 20 (スプライトの動く速度: 数値が大きいほど速く動く)
Sprite Name: 「 sprites/xsmoke1.spr 」 (スプライトの場所)
Scale: 1 (スプライトの大きさ)

水しぶきは、滝の大きさにもよりますが、小さい物を複数個置いたり、大きい物を1個だけ置いたり、工夫してみてください。


更に、水しぶきを置く場合にはサウンドを一緒に置いた方が良いでしょう。
PointEntityのambient_genericを水しぶきの近くに配置します。
各プロパティの値は以下の通りです。

Path of WAV:「 ambience/waterfall2.wav 」 (wavファイルの場所)
Volume: 5 (音量)

以上で滝は完成です。 水しぶきやサウンドはお好みでどうぞ。


ループサウンドの作り方 ▲Top

BGMなど、延々と鳴り続けるループサウンドの配置方法。

サウンドを扱うEntityに、ambient_genericがありますが、このEntityを使用して音を鳴らしてもサウンドファイルの再生時間が終わればマップ内の音も鳴らなくなります。
このEntity自体に「ループさせる」というプロパティは無いので、サウンドファイル自体に「ループするサウンド」という属性を持たせてやらなくてはいけません。

その為に別にサウンドファイル編集ソフトを使用します。

ここからGoldwaveというソフトをダウンロードします。
このソフトはシェアウェアですが使用制限は特にないようですのでそのまま使えます。

ではループサウンドの設定方法です。

Goldwaveを起動したら、 音ファイルをメインウィンドウにドラッグ&ドロップし、上部ツールバーから「Cue...」というボタンを押し、「Cue Point」ダイアログを開きます。
ダイアログ右下の「Auto Cue...」を押し、 AutoCueダイアログを開きます。
ダイアログ上部の「Spacing」タブを押し、「OK」を押します。
するとCuePointダイアログのCue一覧に、「00:00:00」といった数値が表示されます。
これでループサウンド化は終了です。

次に、サウンドをHalf-Lifeで扱える形式に変更して保存します。
(元々正しい形式であればそのまま保存するだけでOKです)
メニューから、[ File ] - [ Save as ]と選択、サウンド形式から「PCM Unsigned 8bit mono」を選び、保存します。
この形式は音質が一番悪いフォーマットですので、音にこだわる場合にはBit数を上げるなどして保存します。
但しその分ファイルサイズが大きくなりますのでご注意ください。
また、 MP3などのPCM(*.wav)形式以外のサウンドファイルはHalf-Lifeでは扱えません。


あとはマップ内にambient_genericを配置し、WAVファイルのPathに今保存したファイルを指定するだけです。

梯子(ハシゴ)の作り方 ▲Top


梯子は音を発することやプレイヤーのラッシュスピードを落とす事から、CSで使う場合は注意が必要です。

  1. まず(見せかけ上の)梯子本体となるBrushを作ります。
    大きさは自由ですが、梯子っぽく見せるためには透過型テクスチャを使用します。
    梯子のテクスチャはHalf-Life.wad内にありますが、Hammerから探す場合、画面右上の[Browse]でテクスチャ一覧を表示し、画面下部の[Filter]の部分に「 Ladder 」や「 { 」と入力する事で絞り込む事ができます。

  2. 梯子テクスチャをBrushに適用したら、Ctrl+TでEntity化します。
    Entityはfunc_wallを選び、Render ModeをSolidにします。他はデフォルトのままでOKです。

  3. 次に、プレイヤーが触れると吸い付いて登れるようになるBrush、func_ladderを作ります。つまりこれが本当の梯子本体となります。
    プレイヤーが触れられるゾーンをBrushで作り、先程作ったfunc_wallの隣に配置します。
    テクスチャにはコンパイル後透明になるAAATRIGGERを使用します。
    そしてCtrl+TでEntity化し、func_ladderを選びます。

  4. 以上で完成です。
    プレイヤーは梯子テクスチャのBrushではなく、AAATRIGGERの方に触れている、という事に注意して下さい。

    下の画像は基本的な一例です。参考にどうぞ。



プレイしてみると、ライトが無効になっている? ▲Top


マップが完成し、コンパイルしてCS(or Half-Life)でプレイしてみると、明暗が無い、全て明るい状態になってしまっている。。。

こんな経験がほとんどのマッパーにあるのではないでしょうか?

Hammerで作られたマップをHalf-Life(とそのMOD)でプレイする為には、コンパイルという作業が必要になります。
そのコンパイルに4段階あるのはこちらをご覧になると分かると思いますが、マップの明暗を作るライティングのコンパイル(LAD)は最後の4段階目になります。
バケツリレー方式でコンパイルを次々と行うため、前のコンパイルが正常に終わらないとライティングのコンパイルが終わらないままマップが完成してしまいます。
つまりLADの前に行うコンパイルが失敗しているのです。
マップが正常に完成していないならプレイ出来ないはずじゃないか、と思うかも知れませんが、一見正常でない、ライトが無い状態でのプレイでも構造は確認出来るのでとても価値があるものなのです。
それどころかテストプレイをほとんどこの「フルブライト・モード」で行い、マップ完成の最終段階で初めてライティングを行う、というのが実は一番効率的なのです。

話は戻りますが、では何故正常な状態でLADにファイルが届けられないのか、それはほとんどの場合コンパイル時に作られる「マップ名.log」というファイルを見れば分かります。

最も多いエラーがLEAKエラーで、細かい内容はこちらを見て頂くとして、logファイルの中に、
Warning: === LEAK in hull 0 ===
という具合に表示されています。 (logファイルはテキストエディタなどでご覧ください)

つまりこのエラーを解決しない限りLADまでコンパイルが進まず、ライティングが無い状態になってしまう、ということになります。

LEAKエラーの他にも、多種多様な原因が考えられます。
もし当サイトにある情報では解決方法が見つからない場合、Forumにてご質問ください。



Copyright (C) 2003, 2004 CSEC All rights reserved.