ZDOOMHEXEN.PRJの解説3
透明な橋や水たまり作ってみましょう。
このページで取り扱う内容
透明な橋 | 透明な橋の作り方を紹介します。 | |
水たまり | 潜れる水たまりの作り方を紹介します。 | |
立体交差 | 透明な橋と水たまりを応用して立体交差を作ります。 |
DOOM2.PRJでは透明な橋を作るために複雑な作業が必要でしたが、ZDOOMHEXEN.PRJではThingの設定だけで簡単に透明な橋を作ることができます。今回は透明な橋を応用して、飾りを付けた橋を作ってみましょう。
今回使用するThingはInvisibleBridgeというThingです。
InvisibleBridgeは円(柱)形のThingで、空中に浮遊することができ、プレイヤーはその上に乗ることができます。
InvisibleBridgeの種類は5種類ありますが、今回は一般型であるInvisible Bridge +Radius-Thicknessを使用します。(ThingType9990番)
実際に配置してみてThing編集画面を開くとわかりますが、このInvisibleBridgeは引数を設定することができ、その値によってInvisibleBridgeの半径、厚さを指定することができます。
InvisibleBridgeを選択し、編集画面を開いて引数を指定しましょう。
引数の詳細は↓
引数 | 働き | 今回使用する値 |
Radius | InvisibleBridgeの半径。 | 32 |
Thickness | InvisibleBridgeの(上下方向の)厚さ。 (InvisibleBridgeの高さから上方向に厚みができます。) |
16 |
ちなみに、Radiusに0を代入すると自動的に32に、Thicknessに0を代入すると自動的に4に値が変わります。
では、実際に透明な橋を作ってみましょう。
←当然の話ですが、飾りとなるLineを消せば透明な橋になります。
図の様にInvisibleBridgeを配置します。InvisibleBridgeの引数を変更して半径を32、厚さを16と指定します。
InvisibleBridgeを空中に浮遊させます。InvisibleBridgeを選択し、編集画面を開いてZ-heightを112と入力します。
これで
112(Z-height) + 16(厚さ) = 128
となり、橋の高さがプレイヤーのいる場所の床と同じになりました。
テストプレイをしてみましょう。
無事橋が完成しました。
ちなみに、この橋の上にアイテムや敵を設置することができますが、敵を配置すると、敵は橋のギリギリの位置まで移動することができてしまうので少し不自然になります。(下図)
![]() |
← こんな立ち方が実際にできたらすごいですね(^_^;) |
DOOM2.PRJでも水たまりを作ることができましたが、水たまりの中に潜ると画面描写がおかしくなるので水たまりには潜れませんでした(工夫すれば潜れないこともないですが・・・)。
ZDOOMHEXEN.PRJでは潜れて泳げる水たまりを作ることができます。実際に作ってみましょう。
図の様に@〜BのSectorを作ったとします。
Aが水たまりになるSectorです。(水たまりに底は-80の高さになります。)
BのSectorの天井の高さは、AのSectorの天井の高さと同じ高さ(128)にして、床の高さは水たまりの水面の高さ(-8)にします。
AのSectorの天井には天井にふさわしいTextureを、床には水面用のTextureを貼り付けて下さい。
BのSectorの天井には、水たまりに潜ったときに見上げる水面用のTextureを、床には水たまりの底のTextureを貼り付けて下さい。
CのLineを選択し、編集画面を開きます。LineTypeをE Light & Specials→2 Transfer Heights
+Tag-When [209]にします。
このLineTypeによって、BのSectorの天井と床の画像を水たまりに移動させます。
Lineの起動条件などは今回は関係ないので無視します。
今回登場する引数は↓
引数 | 働き | 今回使用する値 |
Tag | Sectorの画像を移動させる場所をしていします。(SectorTag) | 3(任意の値) |
When | 画像の描写方法について設定を行います。 | 0 |
AのSectorのLineDefTagを引数Tagの値(3)と同じ値にします。
この状態で一度テストプレイをしてみましょう。
![]() |
→ 潜ると → |
![]() |
潜れる水たまりができています。ちなみに、AのSectorの床の高さをもっと高くすれば、DOOM2.PRJの解説5で紹介したような水たまりを作ることができます。
次に、この水たまりを泳げるようにして、さらに水中を濁らせましょう。
上図のようにBのSectorの中にどこでも良いのでWater ZoneというThingを追加します。
このThingを追加することによって、このThingが存在するSectorは泳げるようになり、(ZDOOM側で音の設定をしていれば)効果音が水中にいるようなこもった音になります。(BのSectorの情報がAのSectorに送られるので結果的に水中を泳げるようになります。)
次に、水中を濁らせます。CのLineを選択し、編集画面を開きます。Lower Textureの名前記入欄に"80004FA5"(※)と入力して下さい。
すると、Lower Textureの画像が"FOG"と書かれた水色の画像になると思います。
※:
この8桁の数字を2桁ずつに区切って、前から順番にα値、赤色、緑色、青色の強さを16進法で記入します。(FF→最大。00→最小。)
記入した色が水たまりの中で描写されます。
ちなみにこの色が水の色に最適だそうです。(ZDOOMWikiより)
テストプレイをしてみましょう。
無事水中が濁りました。画像では確認できませんが、水中を泳ぐこともできます。
WADファイル作成の説明の一番はじめのページの導入方法・基本事項でも説明しましたが、基本的には立体交差の構造を作ることは不可能ですが、今回、透明な橋と水たまりのテクニックを応用して、立体交差の構造に挑戦します。
図のように、十字型に通路が交わる立体交差を作ります。
横方向の通路が1階、縦方向の通路が2階です。
十字路の真ん中のSectorの高さ128の部分にTextureを貼り付けることで立体交差を作ります。
十字路の真ん中のSectorを構成する4本のLineにそれぞれふさわしいUpperTextureまたはLowerTextureを設定して下さい。
水たまりを作ったのと同じ要領でこれから@のSectorの128の高さの部分にTextureを貼り付けましょう。
AのLineを選択し、編集画面を開きます。LineTypeをE Light & Specials→2 Transfer Heights
+Tag-When [209]にします。
引数Tagと@のSectorのLineDefTagを同じ値にします。
このままだと水たまりを作ったときのように2階の通路を通ったときに下の階へプレイヤーがすり抜けてしまいます。
ここで透明な橋が活躍します。
Invisible Bridge +Radius-ThicknessのRadiusを32、Thicknessを1、Z-heightを127にして、@のSectorを満遍なく設置しましょう。(画像のグリッド線は64unitの間隔で引かれているので、今回は4個必要でした。)
テストプレイをしてみましょう。
![]() |
← 1階 → 2階 |
![]() |
無事立体交差が完成しました。2階の通路も何事もなく通ることができます。
ちなみに↓
画像では少しわかりにくいですが、銃弾を1,2階兼用のTextureに向かって発砲すると銃弾がすり抜けてしまいます。(ロケット弾などはすり抜けずに爆発します。)
次に、解説4に進みましょう。
必要に応じて内容を追加、変更します。