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




Making a Door
ドアの種類と作り方


ドアと言ってもその種類は大まかに3つ、動かし方に至っては無限にあります。
これはトリガーを受けて発動する全てのEntityに言える事ですが、他のEntityから受けるトリガーには色々な方法があります。
ドアの場合に一番多く使われるのがtrigger_multipleによる、Brushに触れる事で開く方法です。

また、momentary_doorを除く2種類のドアはラウンド終了時に自動的に閉まることから、CSではラウンド毎に他のEntityをリセットするトリガーとして使用するという、全く違った使い方もあります。


ドアの種類

ドアの種類は全部で3つ。
func_doorfunc_door_rotating、そしてmomentary_doorです。
それぞれ、スライドドア、回転式ドア、徐々に開くドアとして使用します。
ここではまず、これらの違いを簡単に説明します。


左から、スライドドア、回転式ドア(押し/引き戸)、徐々に開くドア
(この画像はテクスチャによる紹介で、Brush単体ではドアの機能は果たしません )
  • func_door

    最もよく用いられるドア。
    上や左など、Brushが平行移動することでドアの役割を果たす。

  • func_door_rotating

    蝶番を中心にして、ドアが回転しながら開くドア。
    蝶番となる軸にOrigin TextureのBrushが必要になる。

  • momentary_door

    プレイヤーがボタンを押している間だけ開くドア。
    ボタンを離すと自動で閉まるようにする以外は自動では閉まらないので、CSでは不向きなドア。

それではそれぞれのドアの作り方を説明します。


func_door


ここではプレイヤーがドアに近づく事で開き、その後自動で閉まる、という自動ドアの作り方を説明します。

  1. まずドアの形にしたBrushを作り、Ctrl+TでEntity化し、func_doorを選びます。
    そのままEntityのプロパティが出ている状態で、 Nameの部分に「 sdoor 」と入力し、プロパティ画面右上の黒いレーダーの下のプルダウンメニューから「 Up 」を選びます。
    このレーダーはドアが開く方向を指定するもので、Upの場合真っ直ぐ上にドアが開くことになります。

  2. 次にこのドア型のBrushに重なるようにAAATRIGGERのテクスチャを使用したBrushを配置します。
    このゾーンにプレイヤーが触れるとドアが開く仕掛けです。
    ドアの外側と内側、どちらからでも開くようにするには下の画像の様にドアの両面を覆うようにします。



    トリガーBrushを配置したら、このBrushを選択したままCtrl+TでEntity化し、trigger_multipleを選択します。
    そしてEntityのプロパティが出ている状態で、Targetの部分に「 sdoor 」と入力します。

  3. 以上で二つのBrushEntityの配置と、それぞれのEntity間の関連付けが完了しました。
    これでAAATRIGGERの部分にプレイヤーが入ると自動でドアが開きます。

  4. 完成したドアは、開いた後4秒後に自動で閉まります。
    これは、Delay before closeの部分に「 4 」とデフォルトで入力されている為で、一度開いたドアが閉じるまでの時間をここで指定することが出来ます。
    「 -1 」と入力すると、一度開いたドアはトリガーを受けない限りラウンド終了時まで閉じません。

    また、ドアの開閉制御の他にもサウンド関係など設定できる部分が幾つかあります( 参考 )。


func_door_rotating


次は押し戸/引き戸の回転式ドアです。 固定軸を中心にドアが回転する仕組みです。

  1. まず、下の画像のような3つのBrushを作ります。
    使用するテクスチャは左から、AAATRIGGEROrigin、そして好みのドアのテクスチャです。



  2. 次に、ドア本体にORIGINの軸を重ね合わせます。
    下の画像を参考に、ドアの蝶番となる部分にORIGIN Brushを配置してください。
    ORIGIN Brushの大きさや形は問いません。このBrushの中心がドアの回転の中心になります。


  3. 次にドア本体と、重ね合わせたORIGIN Brush、両方を選択した状態で、Ctrl+TでEntity化、func_door_rotatingを選びます。
    ( 複数のオブジェクトを選択したい時はCtrlキーを押しながらクリックします )
    これで軸を持ったEntityが出来ました。
    Entityプロパティ画面から、Nameの部分に「 rdoor 」と入力し、プロパティ画面右上のレーダーでドアの方向を決めます。

    TOP Viewからドアを見て、黒いレーダーの中心がORIGINの部分で、白い線がドア、と考えると分かりやすいと思いますが、もし分かり辛い場合はコンパイルして実際にプレイしてみると良いと思います。
  4. 次にこのドアのBrushに重なるようにAAATRIGGERのテクスチャを使用したBrushを配置します。
    このゾーンにプレイヤーが触れるとドアが開く仕掛けです。
    ドアの外側と内側、どちらからでも開くようにするには下の画像の様にドアの両面を覆うようにします。

    回転式ドア 完成状態


    トリガーBrushを配置したら、このBrushを選択したままCtrl+TでEntity化し、trigger_multipleを選択します。
    そしてEntityのプロパティが出ている状態で、Targetの部分に「 rdoor 」と入力します。

  5. 以上でドア本体EntityとトリガーEntityの配置と、それぞれのEntity間の関連付けが完了しました。
    これでAAATRIGGERの部分にプレイヤーが入ると自動でドアが開きます。

  6. 完成したドアは、開いた後4秒後に自動で閉まります。
    これは、Delay before closeの部分に「 4 」とデフォルトで入力されている為で、一度開いたドアが閉じるまでの時間をここで指定することが出来ます。
    「 -1 」と入力すると、一度開いたドアはトリガーを受けない限りラウンド終了時まで閉じません。

    それから、プロパティ画面のFlagsタブ、 One-wayの部分にチェックを入れておきます。
    ドアを正面から押した場合も、裏から押した場合でも同じように一方向で開くようになります。

    また、ドアの開閉制御の他にもサウンド関係など設定できる部分が幾つかあります( 参考 )。


  7. このドアのチュートリアル最後にTIPSとして、ガラス付きのドアの作り方を紹介します。



    使用するBrushは先程のノーマルの回転式ドアに、ガラスのBrushと、ORIGIN Brushを一つ追加します。
    またドア本体もガラスが埋まるように予め枠を抜いておく必要があります。


    次に、ORIGIN Brushをドア枠とガラス、それぞれに重なるように配置します。
    そしてそれぞれのグループをCtrl+Tでfunc_door_rotatingにEntity化し、両方のEntityともNameの部分に「 rdoor 」と入力し、ガラスの方はRende Modeを「 Texture 」に、FX Amountを「 150 」と入力します。
    FX Amountは透明度の設定で、0で完全な透明になります。



    そしてノーマルの回転式ドアと同じようにAAATRIGGERテクスチャのtrigger_multipleを重ね合わせ、一つのトリガーEntityで二つのドアEntityを同時に動かす、という仕組みになります。
    ガラスだけのドアを使いたい場合はドア枠のEntityを削除するだけです。

    また、壊れるガラスをドアに使用することは出来ません。

momentary_door


ドアチュートリアル最後はプレイヤーがボタンを押すごとに徐々に開くドアです。
プレイヤーがその場で押し続けなくてはならない為、CSの、特にスピード重視のマップには向いていないかも知れません。

作り方は他のドアと同様、ドア本体とトリガーとなるEntityの2つの組み合わせが必要になります。

  1. まず下の画像のようにボタン( ハンドル )とドアのBrushを作ります。
    func_door_rotatingと同様、ボタンにはORIGIN Brushの軸が必要になります。
    プレイヤーがボタンを使うことでこの軸を中心にハンドルが回転し、 ドアが開きます。


  2. 次に、ドア本体を選択してCtrl+TでEntity化します。
    Entityはmomentary_doorを選び、Nameの部分に「 mdoor 」と入力します。
    ドアが開く向きはプロパティ画面右上のレーダーから選びます。
    ここではレーダー下のプルダウンメニューから「 Up 」を選択します。

  3. 次にハンドルのBrushとORIGIN Brush、両方を選択したままCtrl+TでEntity化します。
    Entityはmomentary_rot_buttonを選びます。
    そしてTargetted Objectの部分に「 mdoor 」と入力し、上で作成したドアのEntityを指定します。

    ハンドルの回転の向きは、レーダーではなくFlagsタブにあるY-Axisをチェックします。
    この部分はハンドルの配置方向によって変更が必要です。
    もしプレイしてみて違う方向に回転してしまった場合、X-Axisと切り替えてみてください。


    また、ドアの開閉制御の他にもサウンド関係など設定できる部分が幾つかあります( 参考 )。



このチュートリアルで使用したrmfファイルをご用意しました。 参考にどうぞ。

tutorial04.zip

このチュートリアルに関する質問や分かり辛い点がありましたらForumへどうぞ。


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