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