タンクトラップが微動だにしないのは不自然
最終更新:
30pin
-
view
'08/10/14
┼ タンクトラップが微動だにしないのは不自然
概要
- 質量の無い単体 Brush / GeomEntity に質量の情報を与える。
結論
- BasicEntity の Model を目的のモデルに設定し、Density を設定する事で可能。
ノウハウ資料
戦場のジオラマで、雰囲気を演出してくれるタンクトラップ
Sandbox2 にもこのオブジェクトが存在しますが、配置して戦車でぶつかってみると、
ガッ!と戦車が急停止してしまい、非常に萎えます。
ガッ!と戦車が急停止してしまい、非常に萎えます。
実際には見た事が無いので、どんな結果が正しいか判らないのですが、微動だにしないのはやはり不自然です。
そこで、質量の情報を持っていて動かす事の出来る汎用的な Entity に、目的のモデルを適用します。
- BasicEntity
Objects > Entity > Physics
BasicEntity を呼び出した後、Entity Properties の Model に目的のモデルを指定。
(目的のモデルを先にマップに呼び出しておいて、Model をコピーすると早く確実です)
以下のパラメータを設定します。
BasicEntity パラメータ
パラメータ名 | 説明 |
Pickable | つかめるかどうか |
Density ※1 | 密度 ( 単位 : kg / m3) |
Mass ※1 | 質量 ( 単位 : kg ) |
Physicalize ※2 | 実体が有るか無いか |
PushableByPlayers | プレーヤーが押して動かせるかどうか ※3 |
RigidBody | 動かすことの出来る(質量の有る)物体にするかどうか |
※1 どちらか一方のみ設定する。 -1 で無効(無限?)。
※2 この設定の変更は Reload Script の実行か、マップの再読み込みを行わないと有効になりません。
※3 殴る (Fist) は対象外
※2 この設定の変更は Reload Script の実行か、マップの再読み込みを行わないと有効になりません。
※3 殴る (Fist) は対象外
上記のパラメータの内、とりあえず Density を入力すれば後はデフォルトの状態で使用する事が出来ます。
Density さえ設定していれば、Mass はオブジェクトの形状から計算され、逆の場合も同様に自動で計算されます。それゆえ、Density を設定しておく方がより楽に現実味のある数値が設定できる事になります。
Density さえ設定していれば、Mass はオブジェクトの形状から計算され、逆の場合も同様に自動で計算されます。それゆえ、Density を設定しておく方がより楽に現実味のある数値が設定できる事になります。
素材と密度(Density)の関係 (公式マニュアルより)
素材 | 密度 ( kg / m3) |
木 | 500-700 |
氷 | 900 |
水 | 1000 |
ゴム | 1500 |
ガラス | 2600 |
鉄 | 7500 |
鉛 | 11400 |
金 | 19300 |
水が 1000 ですので、それより上だと水に沈み、下だと浮く事になります。
RigidBody を True にしておかないと、今回の主題である 「質量の情報を付加する」 が出来なくなります。
なお、Physicalize を False に設定すると 「見えてはいるが実体は無い」 状態になり、クリックで選択出来ない状態になります。
選択する場合は範囲選択を行うか、Select Objects ウインドウから行います。
選択する場合は範囲選択を行うか、Select Objects ウインドウから行います。
密度(Density)を 7800 に設定し、多数並べて車両に突っ込ませたのが以下の動画です。
このトラップは重さではなく、引っかかる事によって役割を果たすものと推測しましたので、トラップの後に浅めの溝を掘って効果を高める様にしています。
- RigidBodyEx
この Entity も BasicEntity と同様に使用でき、さらに多くの込み入った設定が出来る Entity の様子です。
しかし、まだ不明な点が多い為、後日詳細が判れば追記いたします。
しかし、まだ不明な点が多い為、後日詳細が判れば追記いたします。
参考資料
┼ ┼