では、早速記録してゆく。
前回の記録で作り上げた部屋 |
ここにエンティティ配置していく。
1、エンティティツールでエンティティを配置する。
エンティティを配置する前に注意事項を1つ。エンティティはブラシで密閉された空間内に配置しないとテストラン前のコンパイル(組み立て)時に"Leak"というエラーが発生してしまう。要は、エンティティを配置したら、そのエンティティを少しの隙間も無く、ブラシで囲えば良いのだ。
前回の記録で作成した部屋は、ブラシで隙間無く覆われているので問題ない。では本題に戻ってエンティティ配置の手順を記す。
エンティティの設定は、エンティティプロパティから行う。エンティティプロパティを表示するにはエンティティをダブルクリックすればよい。
画像のようにエンティティを外の世界にさらしてはならない。 |
部屋の中にいても、壁に隙間があるので外の世界にさらされていることになる。 |
このように密室にすればエラーは起きない! |
- エンティティツールを選ぶ。
- 3D画面上のエンティティを配置したいところでクリックする。
配置するとこんなカンジになる。 |
2、エンティティの設定をする。
エンティティプロパティのプルダウンメニューから使いたいエンティティを選ぶ(上画像参照)。プルダウンメニュー欄にエンティティ名を直接入力すると候補が表示されるので便利。今回は次の5種類のエンティティを紹介する。
<プレイヤーエンティティ>
プレイヤーエンティティは文字通り、プレイヤー(主人公)となるエンティティである。設定は、プレイヤーの初期位置と向く方向を設定するだけで、そのまま配置すれば、その位置がゲームのスタート地点となる。初期位置は2D画面を使って移動させればよい。向く方向は、プロパティの円(Angles:)をクリックして、好きな方向を選ぶ(下画像参照)。選んだら"適用"をクリックして確認しよう。
エンティティツールでは、このinfo_player_startの状態で配置されるのだが、以下の手順でこのデフォルト設定を変更することができる。後に紹介するprop_dynamicは良く使うエンティティだと思ったので、それをデフォルトに設定してみたのが下の画像。
<スタティックエンティティ>
スタティックエンティティは、ワールドモデルを選択することで、そのモデルをゲーム中に登場させることができるエンティティである。たとえば、パネル、置物、照明器具(光は別)、といった飾り物がこれにあたる。上手く配置すれば、テストチェンバーのルックスがよくなること間違いなし!以下はモデルの適用手順。
<ダイナミックエンティティ>
ダイナミックエンティティは、主にアニメーション付きのワールドモデルを選択することで、そのモデルをゲーム中に登場させることができるエンティティである。たとえば、動くパネルやエレベータがそれにあたる。ダイナミックエンティティを上手く配置すれば、テストチェンバーがまるで生きているかのように感じること間違いなし!
モデルを選択する手順はスタティックエンティティと同じ。モデルプロパティの"Sequences"タブで、そのモデルのアニメーションが確認できる。
<ドアエンティティ>
<ボタンエンティティ>
これはゲーム中、トリガーの役割を果たす。ボタンを押した時に、なにかのアクションと連動させることができる。他と比べ、少し設定に手間がかかるが、その分ゲームらしさが加わる。以下は”ボタンを押す → ドアが開く → 5秒後にドアが閉まる”を実現するための設定手順を記す。
<プレイヤーエンティティ>
エンティティ名:info_player_start |
エンティティツールでは、このinfo_player_startの状態で配置されるのだが、以下の手順でこのデフォルト設定を変更することができる。後に紹介するprop_dynamicは良く使うエンティティだと思ったので、それをデフォルトに設定してみたのが下の画像。
Tools > Options... をクリックすると次の画面が現れる。 |
"Default PointEntity"をお好みに変更する。 |
<スタティックエンティティ>
エンティティ名:prop_static
(赤矢印は、実際には表示されないよ。)
|
- "World Model"をクリックして選択する。
- "Browse..."をクリックしてモデルブラウザを表示する。
- お好みのワールドモデルを選択したら"OK"をクリック。
分類、モデル名、3Dビュワー、モデルプロパティの順番に確認していくのが良い。"MDL Files"を選択して、"Filter"にキーワードを入力すれば、全モデルを検索対象にして検索できるので、モデルを素早く見つけられる。 - "適用"をクリックして、エンティティに適用する。
- 必要ならば、"Pitch Yaw Roll"でモデルの向きを変える。
<ダイナミックエンティティ>
エンティティ名:prop_dynamic
(赤矢印は、実際には表示されないよ。)
|
モデルを選択する手順はスタティックエンティティと同じ。モデルプロパティの"Sequences"タブで、そのモデルのアニメーションが確認できる。
<ドアエンティティ>
エンティティ名:prop_testchamber_door |
その名の通り、これでドアを配置できる。しかし、ゲームということを考えると、ただドアが開くだけでは面白くないもの。「プレイヤーがなにかしらのアクションを起すと、ドアが開く」という設定のほうがおもしろいと思うので、次に紹介するボタンエンティティと一緒に設置することをおすすめする。このドアエンティティはいくつかのアニメーションが用意されている(デフォルトでは扉が両方同時に閉じるアニメーションを繰り返している)。これらアニメーションは、オプションの"Model"タブのプルダウンメニューから全て確認できる。ちなみに、ダイナミックエンティティのアニメーションも同様に確認できる。
<ボタンエンティティ>
エンティティ名(左から順に):prop_button/ prop_under_button/ prop_floor_button/ prop_floor_cube_button/ prop_under_floor_button |
- prop_player_startとprop_testchamber_doorとprop_buttonを下画像のように配置した。
- ドアエンティティをダブルクリックし、エンティティプロパティを表示する。ドアに好きな名前をつけて適用する。画像は"door_1"という名前を付けているところ。
- ボタンエンティティをクリックし、エンティティプロパティを表示する。"Outputs"タブをクリック。"Add..."をクリックしてボタンの出力設定を追加。出力設定項目は下画像通りに設定しよう。出力設定項目は上から順に「ボタンを"押した時"に"door_1"を"開く"、パラメータ"なし"で"0.00"秒の遅れ付き。」と読める、理解のしやすいレイアウトになっている。これで、ボタンを押すと"door_1"に"開け!"の命令が出力されるようになった。
- 開けたドアは閉めたい。ので、5秒後にドアが閉まるように設定しよう。感覚的にドアエンティティに設定したいところなのだが、開く命令はボタンエンティティが出力したものなので、閉じる命令もボタンエンティティに出力してもらおう。ボタンエンティティのプロパティ、”Outputs”タブ内の"Add..."で出力設定を追加。設定項目は「ボタンが”戻った時"に"door_1"を"閉める"、パラメータ"なし"で "5.00"秒の遅れ付き。」にする。"適用"をクリックして適用すればOKだ。
3、テストランをしてみる!
ここまで、来たらエラーやバグが発生しないかを確認してみるのがよい。そんなチェックに最適な方法がある。試しにゲームプレイしてみればよいのだ。テストランってやつ。
マップオペレーションツールバー |
Run Map ウィンドウ |
ボタンエンティティを押してみたい。
デフォルトでは、キーボード操作の場合"W"前進、"A"左、"D"右、"S"後退のはず。
"E"アクションボタンを押してみると…
ドアが開いてくれると嬉しい
そして5秒後に…
大成功!
ドアが開くだけでここまでの喜びがあるとは、、、
エンティティの種類は他にもたくさんあるのだが、今回の目的はプレイヤーとドアとボタンを配置することなので、今回はここまでとする。
次回は、ドアを間仕切り壁に埋め込みたいと思う。トリガーブラシの設置もしてみたい。
さらに余裕があれば、このゲームの肝である"ポータルデバイス"も配置してみたい。
7748965622301105691
https://www.storange.jp/2011/09/portal2-2.html
https://www.storange.jp/2011/09/portal2-2.html
PORTAL2 テストチェンバー製作2
2011-09-08T13:08:00+09:00
https://www.storange.jp/2011/09/portal2-2.html
Hideyuki Tabata
Hideyuki Tabata
200
200
72
72