今回の記録は、
についてである。
I、ライトの設置
ライトは、光を放つエンティティである。後で説明するHDR(ハイダイナミックレンジ)にも対応している。ライトエンティティは設定により、色、明るさ、点滅パターン、HDR設定、エンティティによっては光の角度も、自由に変更できる。前に記録した光の単位で取り扱った、カンデラ量を自由に調整できるのだ。ライトエンティティを置いていないマップだとマップ全体が均一に明るくなってしまい、雰囲気を演出するのは難しかったのだが、このライトエンティティを置けば、影を作れ、よりリアルな研究所、工場の雰囲気を演出できる。また、光を上手く配置すれば、プレイヤーの視点をコントロールできることだらう。今回は、全方向に光を放つエンティティを紹介する。
| |||||||||||||||||||||||
-Step.1
エンティティ"light"を、ライトを設置したい場所に配置し、次の設定を行う。
"Flags"タブ内のプロパティ
"Brightness"のはじめ3つの数値は光の色の設定であり、RGB(赤、緑、青)の比率をあらわしている。"Pick color"ボタンより色を選ぶか、もしくは0~255の間の数値で指定する。この場合、値が255 255 255=赤緑青ですべて最高値で混ざっているので、これは白色になる。色を変更すると、3D画面のライトエンティティの色も変わる。
(下画像は255 255 255 200から255 0 0 200に設定した時)
4つ目の値は明るさである。例では200。値を大きくするほど明るくなる。"BrightnessHDR"はHDRの設定である。HDRとはハイダイナミックレンジの略称で、カメラの絞りにあたる効果を表現できる。つまり、これを適用すると光がまぶしく見える演出をしてくれるのだ。HDRは明るさとは違ったまぶしさを演出できる。下画像を見てほしい。 設定は基本"Brightness"と同じで、はじめ3つの値が色、4つ目の値がHDRの値である。ちなみに、例(初期値も同様)の-1 -1 -1 1は特殊な値で、適用しないという意味である。また、HDRを有効にする場合、コンパイルメニュー"Run Map"の"Run RAD"にある"HDR"にチェックを付ける。ここでチェックを付けないと、HDR処理がコンパイルされなくなってしまうので注意! |
II、サウンドエンティティの設置
サウンドエンティティは、音楽や効果音を再生するためのエンティティである。ゲーム中には実体は見えない。ここではボタンを押した時に、一回だけ音楽を再生する方法を記録する。なお、GlaDOSやWheatleyといったAIの音声は別の方法で設置するのが良いが、ここでは紹介しない。
| |||||||||||||||||||||||||||||||||||||||
-Step.1
-Step.2
"ambient_generic"プロパティの設定。
サウンドブラウザ
"Autoplay Sounds"にチェックを付けると、音声ファイルを選択するたびに再生される。"Flags"タブ内設定
-Step.3
ボタンエンティティにサウンドエンティティ宛の出力命令を追加する。ボタンエンティティのプロパティ"Outputs"タブ内"Add..."ボタンで追加する。
これで設置完了。ボタンを押すと音楽が再生される。 |
III、フェイスプレートの設置
フェイスプレートは、プレイヤーを空中に勢い良く飛ばすオブジェクト(物体)である。別名カタパルト。ゲーム中では、プレートが跳ね上がる勢いでプレイヤーが飛ばされているように見えるが、あのプレートはただの見た目上の演出である。実際に(プログラム上で)プレイヤーを上方に飛ばす効果を持っているのはトリガーである。このトリガーとプレートを重ねて配置しているので、プレートのアニメーションでプレイヤーが飛ばされているように見える。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-Step.1
エンティティ"prop_dynamic"を配置し、設定する。
-Step.2
エンティティ"info_target"を配置し、設定する。フェイスプレートで飛んだプレイヤーは、このエンティティに向かって飛んでゆく。
-Step.3
トリガーブラシ"trigger_catapult"を作成、配置、設定する。トリガーブラシの作成方法はここを参照。テクスチャは"tools/toolstrigger"を適用する。
-Step.4
エンティティ"ambient_generic"を配置し、設定する。ただ、ソースエンティティ名を設定するので、どこに配置しても問題はない。
"Flags"タブ設定。
-Step.5
万一に備えてフェイスプレートの下方に、ブラシを作成する。テクスチャは"tools/toolsinvisible"を使用する(左画像参照)。このブラシがないと、オブジェクトやプレイヤーが"prop_dynamic"をすり抜けて落っこちる可能性がある。フェイスプレートのモデル、トリガー、ブラシの重ね方は、下画像のように配置するのが良い。
-Step.6
最後に、プレイヤーがトリガーに触れた瞬間に、モデルのアニメーションが始まり、同時に音が再生するようにする。そのためには、トリガーに出力命令を追加する。
"trigger_catapult"オプション"Outputs"タブ
これで設置完了。しかし実際に飛んでみると、思ったように飛ばないことがある。ここでは、飛ぶスピードが速過ぎて天井にぶつかってしまい、ターゲットの位置まで到達しない状況を考える。そんな時はゲームを起動しながらスピードを調節すればよい。次項のデバッグ方法を参考にしてほしい。
-Step.7
デバッグ方法。ゲームを起動しながらフェイスプレートの設定を変更する方法である。コンパイルウィンドウ"Run Map"の"Additional game patameters:"に次のコマンドを入力してコンパイルを開始する。
-toconsole -dev -console +sv_lan 1このコマンドを入力すると、ゲームのポーズ画面に、開発者コンソールが表示される。そのコンソールに次のコマンドを、順番に続けて入力する。 developer 1 ent_bbox trigger_catapultすると、フェイスプレート上に線が現れる。この線は、プレイヤー(またはオブジェクト)が飛ぶ時の軌跡を示している。 最初、画像の黄色の線のみが現れるはず。しかし、黄色の線は天井にぶつかっている。そこで、天井にぶつからないように、スピードを遅くしてみる。コンソールに次のコマンドを入力してみよう。 ent_fire catapult_trigger1 setplayerspeed 750意味は、 ent_fire(エンティティのイベントを編集)、catapult_trigger1(編集したいトリガーの識別名)、setplayerspeed 750("Player Speed"の値を750に設定)。設定するとゲーム中にすぐに適用される。適用された軌跡が、画像の緑色の線である。また、setplayerspeedの部分をsetphysicspeedに変えれば、"Physics Object Speed"の値も調整できる。この方法で良い値が見つかったら、その値をHammerエディター側の設定に適用する。 |
IV、ジェルドロッパーの設置
V、タレットの設置
タレットは、プレイヤーを見つけると攻撃をしてくるロボットのエンティティである。パラメータを適当に設定することで、行動制限をさせられる。具体的に、探索範囲の指定や、喋らせない、といった設定ができる。タレットと言ってもゲームPortal 2の中には、箱型や骨組み型、ジャンク型などいくつかの種類が存在するのだが、ここでは標準型のタレット(左画像のようなタレット)を紹介する。
| |||||||||||||
-Step.1
エンティティ"npc_portal_turret_floor"を、タレットを設置したい場所に配置して、次の設定をする。
他にも様々なプロパティーがあるのだが、変更するとタレットがERRORになってしまう(モデルが存在しない時に起こる)プロパティや、コンパイル中にエラーが発生してしまうプロパティなどもあるので設定変更には注意が必要。 |
今回の記録は以上である。
次回は、キューブドロッパー、エマンシペーショングリッド、サーマルディスカレージメントビームの設置方法を記録したい。
7961149220008422267
https://www.storange.jp/2011/09/portal2-5.html
https://www.storange.jp/2011/09/portal2-5.html
PORTAL2 テストチェンバー製作5
2011-09-16T17:38:00+09:00
https://www.storange.jp/2011/09/portal2-5.html
Hideyuki Tabata
Hideyuki Tabata
200
200
72
72