Home > Tags > MappingTips

MappingTips

TJ MappingTips Vol.2 : 補給エリア

二回目にしていきなり、どんなマップにも応用の利くギミックの解説。

ブラシのエンティティ化、エンティティのパラメータ(Key, Value)設定、そしてターゲット指定の概要は、前回の記事で画像つきで解説してるので、今回は淡々と文字だけで行きます。容量がもったいないんです。

補給可能エリアの作成

前回同様、まずは全面に「textures/common/trigger」のテクスチャを貼ったブラシを用意し、これを選択した状態で平面マップを右クリック後、次の手順で、補給エリアの機能を持つエンティティに仕立て上げます。

弾薬
「trigger」→「trigger_ammo」
ヘルス
「trigger」→「trigger_heal」

プレイヤーがこのエンティティに触れたとき、弾薬またはヘルスの補給を行います。

trigger_ammoのパラメータ

-------- KEYS --------
"ammorate"    rate of ammo clips per second. default 1. (whole number only)
"ammototal"   the maximum clips of ammo this trigger can add. if <= 0, it's unlimited. default 0 (whole numbers only)
"target"      cabinet that this entity is linked to
ammorate
1秒毎の補給されるクリップ数(デフォルトは1)
ammototal
クリップの在庫個数(0以下で無限)

trigger_healのパラメータ

-------- KEYS --------
"healrate"    rate of healing per second, default 20 (whole numbers only)
"healtotal"   the maximum of healing this trigger can do. if <= 0, it's unlimited. default 0 (whole numbers only)
"target"      cabinet that this entity is linked to
healrate
1秒毎のヒールされるヘルス量(デフォルトは20)
healtotal
ヘルスの在庫量(0以下で無限)
「ヘルスパックの個数」でなく「ヘルス量」という点に注意。

これらのエンティティのみでも補給の効果は得られますが、更に、専用のキャビネットと連動させることで、視覚的に、エンティティがもたらす効果とその在庫量が確認可能な状態になります。

キャビネットモデルと連動させる

全てのブラシ並びにエンティティの選択を解除した状態で、平面マップ上で右クリックし、次の手順でメニューを選択するとキャビネットが生成されます。

弾薬用キャビネット
「misc」→「misc_cabinet_supply」
ヘルスパック用キャビネット
「misc」→「misc_cabinet_health」

先ほど作った「trigger_ammo」または「trigger_heal」を始点とし、それぞれのキャビネットに対するターゲット指定を行います。

  • maptips_2_00

実際にこれを動かしてみると次のような感じです。在庫量に応じて、弾薬箱とヘルスパックの表示数がダイナミックに変化します。

  • maptips_2_01

TJ MappingTips Vol.1 : テレポーター

諸事情により俺のジャンプライフも終焉を迎えつつありまして、同時に、ジャンプマップ制作の目処もつかなくなりましたので、今までに得た技術の覚書もかねて、数回に分けて書くことにします。まだ元気がある奴が作ってください。俺には荷が重過ぎます。

piyojump3に関して、制作意欲はありますが、完成を約束出来るほどではありません。

環境の下準備と前置き

と。その前にこの内容は、ETVIP Mapper’s Wikiの内容に従って「GtkRadiant 1.4.0」と、追加エンティティの「et_entites_updated_b2.def」と「fourth RTCW draft.def」をインストールしてある環境を標準として書いていますので、先に確認してくださいね。

ではまず、ごく簡単なところから、今回はテレポーターの作り方。

テレポーターとは、プレイヤーが任意の空間に触れた際にそのプレイヤーの座標を別の任意の地点に変更するもので、ジャンプマップを始め、変なマップを作るときに必須であると言えるギミックです。通常のゲーム用のマップでは恐らく必要のないものですが。

1

まずは、全面に「textures/common/trigger」のテクスチャを貼ったブラシ(甲)を用意します。

  • maptips_1_00

2

甲を選択中に、平面マップ上で右クリックし、「trigger」→「trigger_teleport」の順に選択して甲をエンティティ化します。これにより、プレイヤーが甲に触れたときに、その空間がテレポーターの入り口として機能するようになります。

  • maptips_1_01

3

次にターゲットを作成。

全てのブラシ並びにエンティティの選択を解除後、同じく平面マップ上で右クリックし、「misc」→「misc_teleporter_dest」と選択すると、赤く平べったいエンティティ(乙)が生成されます。

  • maptips_1_02

4

このままでは甲と乙とは無関係のエンティティ同士ですので、これらを関連付けて、甲に触れたプレイヤーを乙の位置にテレポートさせるようにしなければなりません。まずは甲に、ターゲットの始点としての機能を与えます。

甲を選択し、Nキーを押すとエンティティ設定ウインドウが表示されます。

  • maptips_1_03

5

Keyの値を「target」、Valueの値は何でも良いのですが、ここでは例として「tele_test」としておきます。入力後エンターキーで適用されます。

いかなる場合も、KeyとValueとが対応し対を成します。

  • maptips_1_04

6

次に、乙に、ターゲットの終点としての機能を与えます。先ほどと同様に、乙のエンティティ設定ウインドウを表示させ、Keyの値を「targetname」、Valueの値を甲の「target」に対応するValueの値と同じ値にします。例では「tele_test」

  • maptips_1_05

7

甲と乙とが、ワイヤーと矢印で結ばれれば、これらは一組のテレポーターとして機能し、甲に触れたプレイヤーは乙の位置にテレポートします。

ちなみに、テレポートはプレイヤーのUPSを保存した状態で行われます。

  • maptips_1_06

ETのマップ作りにおけるターゲット指定は、WWWのアンカーの仕組みとよく似ているので、その方面の知識がある方は、比較的すんなり覚えられると思います。

「targetname」Keyが記述されたエンティティ
他のエンティティからターゲット指定されるエンティティ
「target」Keyが記述されたエンティティ
他のエンティティをターゲット指定するエンティティ

ただし、任意のエンティティは、これらのKeyを両方とも持ち得る。

PiyoJump 3開発日記 Vol.4

さて。

今回の構想の中に、「スカイテクスチャを二種類使う」というものがあります。ひとつは、先月の先行プレビュー動画で見せた、真っ黒のスカイボックスの底面に、銃器で模られた「ピースマーク」のスカイテクスチャですね。

そしてもうひとつ。

こちらはまだどういう感じの空にするかを考えていませんが、使用用途としては、シークレットパートの空として考えています。シークレットパートを作ればの話ですがね。

複数のスカイテクスチャをひとつのマップ内で使うことにはひとつ問題があります。これは “Piyo Jump 2 ” の制作過程で気づいたことなのですが、使用されているスカイテクスチャのシェーダーが混ざって、世界に適用されてしまうという点です。

すなわち、月がある空と無い空を同時に使うと、いずれの空にも月が描画されてしまいます。自然光についても同様で、夜の空と昼の空を同時に使うと、夜のエリアにそそぐ自然光が、不自然なぐらい強く明るくなってしまいます。

なので、複数の空を同時に使うためには、シェーダーの記述を、使用する画像以外はまったく同じにしなくてはなりませんね。今回は大して問題視してませんが。

ひとつのマップ内に、複数の違う空が存在することは、ゲームの設計者は想定してないはずですし、想定する必要性もさほど高くないはずですしね。さっきまで昼だったのに、トンネルくぐったら夜だったなんてマップはリアリティに欠けるでしょ?

Home > Tags > MappingTips

Search
Feeds
Meta
Access
  • 11 unique visitors today.
  • 11 unique visitors yesterday.

Return to page top