前回の記録はここからリンク。
今回から、純粋にHowToスタイルに移行する。今回の内容は、
- ポータルデバイスの設置
- インジケータの設置
- インジケータボックスの設置
- トリガの設置
についての記録である。
(なお、ここで紹介しているプロパティ項目の"Name"の値は、すべて一例である)
ポータルデバイスの設置
| ポータルデバイス(ポータルガン)は、Portalシリーズに登場するエンティティ。空間をつなげるポータルを発射する装置。ゲーム中、プレイヤーがこのエンティティに触れると、プレイヤーは手に取る。 |
- エンティティツールを選択し、エンティティを配置する。
- エンティティ名を"weapon_portalgun"に設定する。
- スタート時からポータルデバイスを取得させたい場合、画像のように重ねる。
|
インジケータの設置 ライン編
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAwByBhb310TmIccLmpkko8XT9q__0aRJnhmMHWv8tEXrlmgEkls7WePUaNqKUwt6R5Ln64UXvjFlAKVUsp3IHwi9i9rDDh_gTGMIYrwZzVhbT6mtYPhfZKy5riW_8j6LaY53ImKjrXA/s1600/IndicatorLight.gif) | インジケータは主に、ボタンが押されたかどうかといったパズル要素の状態をプレイヤーが確認できるように設置するものである。インジケータは線状に並んだ円形ライトとその先のチェックボックスから構成される。その正体はオーバーレイツールで貼られたテクスチャと、スタティックエンティティである。ここではボタンを押した時にインジケータをオン(オレンジ色)にする方法について記録している。 |
- テクスチャツールの"Browse..."ボタンをクリックする。
- filterに"indicator_lights"と入力してインジケータ用テクスチャを探す。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoLNbu-6a3DvXgjyQJ8Ukm1sGA1omFNupnJl91z-u7gTt1UTIhF1k1dKGjEks7IlIuMLkgH7sC6PkngKY5NPCpXFl5cAmUC-gqATOVdJtWCWk3W2eUdz58YoSYkEzc9tO-9mhhpmVSlg/s1600/SetIndicatorLights%25281%2529.gif)
テクスチャには次の4種類がある。
名前先頭の"signage/indicator_lights/"は省略
場所 | ライン用 | コーナー用 |
壁 | indicator_lights_wall | indicator_lights_corner_wall |
床 | indicator_lights_floor | indicator_lights_corner_floor |
- "Overlay Tool"を選択しテクスチャを、壁用は壁に・床用は床に・コーナー用は角に、貼り付けてゆく。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifCgZjlHqfbJ_1OxkHlGCXcplxlzBVnhvTLSXzW0M8Sb3EaBp5PdVUcWKyDlFYyb5HgDUKEI6YrjqRybRTMYZrOlYBfgqi8b1bRnbZvgA51c5BA9BObZsGaD5pWreudjBIrKLOqBQCpQ/s1600/SetIndicatorLights%25282%2529.gif)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHvu0YU8bGZYxR97TpM48rNzJHY7HbWHXLVe251NU19Q6NMJ0LIPjMktwHUIq4oj2ZpCkLzkqRrsmb29rtEhPMSRNw59QcS78z_li7J50Pv4_s7L0dbINy0husxfr1j6ydlkvyTvP6aA/s1600/SetIndicatorLights%25283%2529.gif)
- "Texture Lock"を解除して、2D画面上でテクスチャの長さを調整する。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKcv9jtjiefTNGBFcL8PNoex5y8MIjFHo9sFP4ds3exJXuZ9nPOkD3Twznm6tIV3ErPfbLCFoVE5TpJaFFjC-Atqm4-rNAAT_zXuMjHM26B8UGgAL3cqMzBn7td-LKxWRjJtDTa9V0og/s1600/texture_lock.gif)
もしくは、テクスチャをダブルクリックしてプロパティ開き、"U Start"と"U End"の値で長さを調整する方法もある。
- 貼り付けたインジケータテクスチャすべてに同じ名前をつける。
Property Name | Value |
Name | ind_lights1 |
- エンティティ"env_texturetoggle"を設置し、プロパティを設定する。
Property Name | Value |
Name | texture_toggle1 |
Target Brush(es). | ind_lights1 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRVCN4I2RZ3NawRZhlNXx2PI9_EWXBnQRp92CFZcFY1ZZU_T2jtecoLbVL_7ITfrCeqe7FZmbd3c3bApn35AW7X7wzzvOeIHILBrpLGz3cvGL4CVMKpqoe6TfK_OlLMYKEzSQwzV5H1w/s1600/SetIndicatorLights%25284%2529.gif)
- ボタン(インジケータがオンになるきっかけのエンティティ)のプロパティ"Outputs"タブ内に次の出力設定を追加(Add...)。
My Output | Target Entity | Target Input | Parameter | Delay | Only Once |
OnPressed | texture_toggle1 | SetTextureIndex | 1 | 0.00 | No |
OnButtonReset | texture_toggle1 | SetTextureIndex | 0 | 0.00 | No |
これでゲーム中、ボタンを押すとインジケータがオレンジ色に動作し、離すと青色に戻る。
|
インジケータ チェックボックス編
| チェックボックスはインジケータを構成する要素で、オフ状態だと×を、オン状態だとチェックマークを表示する、正方形のオブジェクト(物体)である。また、タイマーを表示するチェックボックスもある。これは残り時間が視覚的に掴めるようになっている。 |
・チェックボックス
- "prop_static"エンティティを配置する。
Property Name | Value |
World Model | models/props/sign_frame01/sign_frame01.mdl |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR9VHTrVzHdQ04bNXHgaVjXFWwBja9pFD_bd0ft5Kk5U8DrMQsK7trBHN4BlzOOidc9d1tz9Ypj3vaVWpN5TYv0XCHikm5BGxCRgbxgmFqpFbGc5FB1aqwvhQuYH9VkfVQyilpP51oOg/s1600/SetIndicatorLights%25285%2529.gif)
- もう1つエンティティを配置する。先に配置したエンティティをShift + ドラッグすると簡単にエンティティをコピーできる。配置したエンティティを"prop_indicator_panel"にする。ここで、2つエンティティは違うものだが、見た目はまったく同じなので混同しないように注意する。2D画面で判断すると良い。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgplGlBoPcGyU9XSejc5M3ZdV9wPFF-oKGvws9CsQT7F7BjkzrWNqNfyNOtR7vD6exlNm85UfmRslyvk-MubaCNiTlMA8VykK7mkJsbAe76cCvIbQ0M1ocU6n9lXtBHHH_De2TQ9MnfCQ/s1600/SetIndicatorLights%25286%2529.gif)
- "prop_indicator_panel"のオプションを設定する。
Property Name | Value |
Name | check_box1 |
Indicator Lights | ind_lights1 |
Indicator Lightsの項目は先に説明したライン状インジケータのNameを入力する。すると3D画面上で、ラインインジケータとチェックボックスが線で結ばれる。なお、この時点で"prop_static"と "prop_indicator_panel"をぴったりと重ねる。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuHaCKmwa0TsqpkU7az-3BTwQCVELpD2qZpjarfOqP43Nk5L0xzM7AXapkCkDGMKjc77-gZx-RwohFhxNQALtofbnHCCYcVL3u8Aol4clQ-k-bJQ9-8c5oPAD4Iylc3ct7mhhxzQcPdw/s1600/SetIndicatorLights%25287%2529.gif)
- ボタン(インジケータがオンになるきっかけのエンティティ)のプロパティ"Outputs"タブ内に次の出力設定を追加(Add...)。
My Output | Target Entity | Target Input | Parameter | Delay | Only Once |
OnPressed | check_box1 | Check | | 0.00 | No |
OnButtonReset | check_box1 | Uncheck | | 0.00 | No |
これで、チェックボックスの設置は完了。正常にコンパイルされると、
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjmjtTqosVlJTxjsZlOYUSIGt-R2Vfl-ZEkCFuw2_GU56vYTRWCTuFw8x6gtA4Py3zp0A9gGPrUizSoknrgoMze37YVm2PYh3m0d4uNl1D1dYDSj7iUlg3l77IY0IRQPqWl0u85smgAw/s1600/SetIndicatorLights%25288%2529.gif)
ボタンを押すと、
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNPzKvD28-GBJx2eYLXEiEKsXLfCrI2GlqJlJqorDSVLbcD4LIpIzw8o8hJFqkp-OUPWlfMso9zPaScuMKPOpxySD1nKlesBEvuVbYpKeRozne0yN4ztbkr2uGSl-sRikZ39JldZUZkQ/s1600/SetIndicatorLights%25289%2529.gif)
・タイマー
- チェックボックス同様"prop_static"でフレームを配置する。
Property Name | Value |
World Model | models/props/sign_frame01/sign_frame01.mdl |
- チェックボックス同様、もう1つエンティティを配置。エンティティ名は"prop_indicator_panel"。タイマーの場合、このエンティティの設定がチェックボックスとは異なる。
Property Name | Value |
Name | timer_box1 |
Time Duration | 5 |
Start visible? | Yes |
Is a timer | Yes |
Is checked | No |
Indicator Lights | ind_lights1 |
ここで設定したTime Durationは、タイマーを動作させたい時間を、単位は秒で、入力する。
- ボタン(インジケータがオンになるきっかけのエンティティ)のプロパティの設定。
Property Name | Value |
Delay Before Reset | 5 |
Play timer sound? | Yes |
Prevent fast reset? | No |
- ボタンのプロパティ"Outputs"タブ内に次の出力設定を追加(Add...)
My Output | Target Entity | Target Input | Parameter | Delay | Only Once |
OnPressed | timer_box1 | Start | | 0.00 | No |
タイマーは指定時間後に自動でリセットされるが、ボタンの出力設定に"OnButtonReset"命令を手動で設定することもできる。これでタイマーの設置は完了。正常にコンパイルされると、
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEcocceDGMB7CdlmpS12pXgW_1DlbSSgyp06DPbulfmeZ65zAb-oFTuTDZvwdNDrGmiSvU2Qrfq2ehGXuUSCwAkReHEVdyC2QPaY0HBqvsViHAnrXaCvKtMubSFxlCgpNsmLtE3lzPIA/s1600/MakeDoorFrame%252820%2529.gif)
タイマーはこのように表示される。
|
トリガーブラシ
|
トリガーブラシはボタンのように、オンになると命令を出力する。ボタンは押すことでオンになるが、このトリガーブラシは、プレイヤーが触れるだけでオンになる。またゲーム中このブラシは表示されない。プレイヤーがこの地点を通過したら何か命令を出力する、といった用途がメイン。ここでは、プレイヤーがドアを通過し終えたらドアを閉める命令を出力する。 |
- ブラシを作成する。そのとき、テクスチャを"tools/toolstrigger"に設定すると良い。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZSKV1_eNgy9fkj-R82ud0zk4WcQ3ANvnsXkka_-Rb_bi6rEgAUkAkZ3fZR4mVvbVkYaCkGu9yXLcdkgjHKh0Zo4Bc63ARCeoTG3gKLvBEF-gQC6KrjgEnzbh8DyMhBiqw27khK9SNfQ/s1600/TriggerBrush.gif)
- ブラシを選択したまま、"新規オブジェクトツール"の"toEntity"ボタンをクリックする。こうすることで、選択していたブラシをエンティティとして扱うことができる。エンティティ化したブラシを3D画面で見ると、選択した時にブラシの中央に球体が出現する。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinMciRpC9rKUwfo3c9FcNn_vmmhPV5ONnU7DPwE0C-o_zEtIhCPiIW_c7mPAnqyQso11Xl0dikfZTxTQkwJezdS-_SWnwDFWhFsaEUWjG0BYUWc04vLNsZex7H5ZwAVE77CNsA9b2xSg/s1600/toEntity.gif)
- エンティティ化したブラシのプロパティが表示されるのでエンティティ名を、ここでは"trigger_once"に設定してみた。これは文字通り一度だけオンになるトリガーブラシだ。
- トリガーブラシはボタンとほぼ同様の設定ができる。ここでは、"Outputs"にドアを閉める命令を追加してみた。
My Output | Target Entity | Target Input | Parameter | Delay | Only Once |
OnTrigger | door_1 | Close | | 0.00 | Yes |
これでトリガーブラシの設定は完了。ゲーム中、プレイヤーがトリガーブラシに触れた瞬間ドアが閉まる。
|
今回の記録から、だんだんとPortalらしい要素を設置できるようになってきた。
次回は、ゲーム中に音楽や効果音を鳴らす
サウンドエンティティの設置と、プレイヤーを空高く飛ばす
フェイスプレートの設置、特殊な効果を持ったジェルの出口である
ジェルドロッパーの設置、プレイヤーを探知すると攻撃してくる
タレットの設置についてを記録する予定。
3779968436235919992
https://www.storange.jp/2011/09/portal2-4.html
https://www.storange.jp/2011/09/portal2-4.html
PORTAL2 テストチェンバー製作4
2011-09-12T23:46:00+09:00
https://www.storange.jp/2011/09/portal2-4.html
Hideyuki Tabata
Hideyuki Tabata
200
200
72
72