物理ワールド、すなわちアクターが存在する、相互作用する物理オブジェクトのコレクションを表します。
Stingray エンジンでは、1 つのゲーム ワールドにつき 1 つの PhysicsWorld が関連付けられます。
コンストラクタとアクセサ
関連サンプル コード
その他の関連リファレンス項目
この参照ページは、次の概要トピックと関連付けられています
![]() |
apply_wind ( self, vf, id )![]() 指定された衝突フィルタと衝突するワールド内のアクターに VectorField からの風を適用します。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
vf : | 適用する風の発生元となるベクトル フィールドです。 | |
id : | string | アクターが衝突する衝突フィルタの ID です。 |
この関数は値を返しません。 |
物理ワールドにベクトル フィールドからの風を継続的に適用する場合は、フレームごとにこの関数を呼び出します。
風は目覚めているアクターのみに適用されます。これは、風によってすべてのアクターが覚醒レベルのまま維持され、物理パフォーマンスに重大な影響を及ぼすことを防ぐためです。
短時間の強力な風効果(爆発など)を再生する場合は、爆発の影響を受ける可能性があるアクターをすべて目覚めている状態にする必要があります。これを行わないと眠っているアクターは動きません。眠っているアクターを起こすには wake_actors() 関数を使用します。
その他の関連リファレンス項目
![]() |
break_joints ( self, u1, ac1, u2, ac2 )![]() 現在無効になっている等の理由からシーンの外で接続されている 2 つのアクターの結合を解除します。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
u1 : | 1 つ目のアクターが属している Unit です。 | |
ac1 : | string | 1 つ目のアクターの名前です。 |
u2 : | 2 つ目のアクターが属している Unit です。 | |
ac2 : | string | 2 つ目のアクターの名前です。 |
この関数は値を返しません。 |
![]() |
break_joints ( self, ac1, ac2 )![]() 指定された 2 つのアクターの結合を解除します。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
ac1 : | 結合されている 1 つ目のアクターです。 | |
ac2 : | 結合されている 2 つ目のアクターです。 |
この関数は値を返しません。 |
この関数はラグドールを分割する場合などに使用できます。
![]() |
create_joint ( self, type, actor_1, pose_1, actor_2, pose_2 ) : stingray.Joint![]() ワールド内の 2 つのアクターを物理的に結合します。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
type : | 結合のタイプを指定します。Joint.Type の enum 値(SPHERICAL、REVOLUTE、PRISMATIC、FIXED、DISTANCE、D6)のいずれかを指定する必要があります。 | |
actor_1 : | any(stingray.Actor, nil) | 結合する 1 つ目のアクターを指定します。オブジェクトをワールドに結合する場合は nil にできます。 any(...) 表記は、この項目が括弧内に示されている任意のタイプのインスタンスであることを示しています。 |
pose_1 : | actor_1 ローカル フレームの結合の向きです。 | |
actor_2 : | any(stingray.Actor, nil) | 結合する 2 つ目のアクターを指定します。オブジェクトをワールドに結合する場合は nil にできます。 any(...) 表記は、この項目が括弧内に示されている任意のタイプのインスタンスであることを示しています。 |
pose_2 : | actor_2 ローカル フレームの結合の向きです。 |
新しくスポーンされた結合が返されます。 |
これを破壊するには destroy_joint() を使用します。
その他の関連リファレンス項目
![]() |
destroy_actor ( self, actor )![]() |
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
actor : | 破壊する動的アクターです。 |
この関数は値を返しません。 |
この関数は、ユニットに属しているアクターを破壊するときには使用できません。
![]() |
destroy_joint ( self, joint )![]() create_joint() で作成された動的アクターを破壊します。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
joint : | 破壊する動的結合です。 |
この関数は値を返しません。 |
この関数は、ユニットに属している結合を破壊するときには使用できません。
その他の関連リファレンス項目
![]() |
linear_capsule_sweep ( self, from, to, rotation, radius, half_height, max_hits, sweep_params ) : collision_hit[]![]() 向きを持つカプセルが存在する空間を通じて線形スィープを実行します。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
from : | スイープするカプセルの始点です。 | |
to : | スィープするカプセルの終点です。 | |
rotation : | カプセルの回転を指定します。既定では、カプセルの長さ方向が X 軸に沿って配置されるように向きが設定されます。 | |
radius : | number | カプセルの半径です。 |
half_height : | number | カプセルの中心点から外側の最上部または最下部までの距離です。 |
max_hits : | integer | レポートするヒットの最大数を指定します。ゼロより大きな値を指定する必要があります。 |
sweep_params : | string+ | スィープに関するパラメータのリストを指定します。指定できるパラメータは以下のとおりです。
+ 表記は、指定されたタイプのインスタンスが 1 つまたは複数存在することを示しています。 |
collision_hit テーブルの配列からなるテーブルで、スィープの衝突ポイントが 1 つの collision_hit テーブルにつき 1 つずつ記録されます。 []表記は、この型が配列(メンバーのキーは連番、各要素の値は示されている型のインスタンス)であることを示します。 |
![]() |
linear_obb_sweep ( self, from, to, extents, rotation, max_hits, sweep_params ) : collision_hit[]![]() 向きを持つバウンディング ボックスが存在する空間を通じて線形スィープを実行します。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
from : | ボックスの中心の始点です。 | |
to : | ボックスの中心の終了です。 | |
extents : | 3 次元におけるボックスの範囲です。 | |
rotation : | ワールド空間におけるボックスの回転です。 | |
max_hits : | integer | レポートするヒットの最大数を指定します。 |
sweep_params : | string+ | スィープに関するパラメータのリストを指定します。指定できるパラメータは以下のとおりです。
+ 表記は、指定されたタイプのインスタンスが 1 つまたは複数存在することを示しています。 |
collision_hit テーブルの配列からなるテーブルで、スィープの衝突ポイントが 1 つの collision_hit テーブルにつき 1 つずつ記録されます。 []表記は、この型が配列(メンバーのキーは連番、各要素の値は示されている型のインスタンス)であることを示します。 |
![]() |
linear_sphere_sweep ( self, from, to, radius, max_hits, sweep_params ) : collision_hit[]![]() 球が存在する空間を通じて線形スィープを実行します。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
from : | 球の始点です。 | |
to : | 球の終点です。 | |
radius : | number | 球の半径です。 |
max_hits : | integer | レポートするヒットの最大数を指定します。 |
sweep_params : | string+ | スィープに関するパラメータのリストを指定します。指定できるパラメータは以下のとおりです。
+ 表記は、指定されたタイプのインスタンスが 1 つまたは複数存在することを示しています。 |
collision_hit テーブルの配列からなるテーブルで、スィープの衝突ポイントが 1 つの collision_hit テーブルにつき 1 つずつ記録されます。 []表記は、この型が配列(メンバーのキーは連番、各要素の値は示されている型のインスタンス)であることを示します。 |
![]() |
make_raycast ( self, callback, params ) : stingray.Raycast![]() 物理オブジェクトに対する衝突テストに使用できる Raycast オブジェクトを作成します。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
callback : | fun(any(boolean, collision_hit[]), stingray.Vector3?, number?, stingray.Vector3?, stingray.Actor?:nil)? | 返された Raycast オブジェクトによる衝突テストが完了するたびに呼び出される関数です。この値を省略すると、返された Raycast オブジェクトを使用したレイキャストは同時に実行されます。詳細については、Raycast オブジェクトの説明を参照してください。 any(...) 表記は、この項目が括弧内に示されている任意のタイプのインスタンスであることを示しています。 fun(...)表記は、これが、コロン : の左側に示されている型のパラメータを受け入れ、コロンの右側に示されている型を返す関数であることを示しています。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
params : | string* | Raycast オブジェクトによって実行される衝突テストを制御するパラメータのリストです。詳細については、Raycast オブジェクトの説明を参照してください。 * の注記は、指定されたタイプのゼロ以上のインスタンスがある場合があることを示します。 |
新しく作成された Raycast オブジェクトです。 |
返されたオブジェクトを使用して衝突テストを実行する方法については、Raycast の説明を参照してください。
その他の関連リファレンス項目
![]() |
overlap ( self, callback, params ) : table![]() 物理ワールド内でオーバーラップ テストを実行します。オーバーラップ テストとは、指定されたシェイプ内にあるすべてのワールド内アクターを検出する衝突テストです。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
callback : | fun(stingray.Actor[]:nil) | オーバーラップ テストが完了したときに呼び出されるコールバック関数です。この関数にはテストで検出されたすべての Actor オブジェクトの配列からなるテーブルが渡されます。 fun(...)表記は、これが、コロン : の左側に示されている型のパラメータを受け入れ、コロンの右側に示されている型を返す関数であることを示しています。 |
params : | any+ | オーバーラップのシェイプを指定します。有効な値は次のとおりです。
+ 表記は、指定されたタイプのインスタンスが 1 つまたは複数存在することを示しています。 |
table |
オーバーラップ テストを表す内部的な不透明オブジェクトです。 |
たとえば、プレイヤーの周囲 20 メートル以内にあるすべてのアクターを見つけることができます。
![]() |
raycast ( self, start, dir, length, params ) : any(boolean, collision_hit[]), stingray.Vector3?, number?, stingray.Vector3?, stingray.Actor?![]() 同じ PhysicsWorld に存在する物理オブジェクトとの衝突をテストします。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
start : | レイキャストの開始位置を指定します。 | |
dir : | 始点からレイを投射する方向を指定します。 | |
length : | number? | オプション。レイの最大長を指定します。指定しない場合、レイの長さは無限になります。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
params : | string* | 衝突テストを制御し、この関数の戻り値を決定するパラメータのリストです。詳細については、Raycast オブジェクトの説明を参照してください。 * の注記は、指定されたタイプのゼロ以上のインスタンスがある場合があることを示します。 |
any(boolean, collision_hit[]) |
衝突が発生したかどうかを示します。 any(...) 表記は、この項目が括弧内に示されている任意のタイプのインスタンスであることを示しています。 |
衝突の位置です。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 | |
number? |
衝突までの距離です。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
衝突サーフェスの法線です。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 | |
衝突したアクターです。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
レイキャストは即座に実行され、衝突テストの結果はこの関数によって返されます。戻り値を解釈する方法については、Raycast オブジェクトの説明を参照してください。
関連サンプル コード
その他の関連リファレンス項目
![]() |
set_debug_draw ( self, enable )![]() このワールドのデバッグ描画を有効または無効にします。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
enable : | boolean | デバッグ描画を有効または無効にするフラグです。 |
この関数は値を返しません。 |
![]() |
set_gravity ( self, gravity )![]() Vector3 を使用して、指定された PhysicsWworld 内の重力を設定します。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
gravity : | ワールドに設定する新しい重力値です。 |
この関数は値を返しません。 |
既定の重力は Vector3(0,0,-9.82) です。
![]() |
set_observer ( self, mat )![]() 物理ワールドのオブザーバを設定します。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
mat : | オブザーバとして設定する行列です。 |
この関数は値を返しません。 |
この関数は物理オブジェクトの LOD を決定するために使用されます。現在、設定可能なオブザーバは 1 つだけです。
![]() |
spawn_box ( self, pos, radius, actor, shape, material ) : stingray.Actor![]() 指定された位置に即席のボックスをスポーンします。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
pos : | 新しいボックスを作成する位置です。 | |
radius : | 各軸に沿ったボックスの半分の範囲です。 | |
actor : | string? | ボックスを作成する際に使用するアクター テンプレートの名前です(存在する場合)。これを指定する場合は、shape パラメータと material パラメータも指定する必要があります。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
shape : | string? | ボックスを作成する際に使用するシェイプ テンプレートの名前です。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
material : | string? | ボックスを作成する際に使用するマテリアル テンプレートの名前です。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
新しくスポーンされたボックスです。 |
シーン内の物理オブジェクトの大半は .physics ファイルで指定された物理設定のユニットに由来します。ただし、完全に即席の物理アクターをスポーンする場合には役立つことがあります。この関数は即席のボックスをスポーンします。
その他の関連リファレンス項目
![]() |
spawn_plane ( self, pos, normal, actor, shape, material ) : stingray.Actor![]() 指定された位置と法線を使用して静的平面をスポーンします。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
pos : | 平面の位置です。 | |
normal : | プレーンの法線です。 | |
actor : | string? | 平面を作成する際に使用するアクター テンプレートの名前です(存在する場合)。これを指定する場合は、shape パラメータと material パラメータも指定する必要があります。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
shape : | string? | 平面を作成する際に使用するシェイプ テンプレートの名前です。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
material : | string? | 平面を作成する際に使用するマテリアル テンプレートの名前です。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
新しくスポーンされた平面です。 |
シーン内の物理オブジェクトの大半は .physics ファイルで指定された物理設定のユニットに由来します。ただし、完全に即席の物理アクターをスポーンする場合には役立つことがあります。この関数は即席の平面をスポーンします。
その他の関連リファレンス項目
![]() |
spawn_sphere ( self, pos, radius, actor, shape, material ) : stingray.Actor![]() 指定された位置に即席の球をスポーンします。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
pos : | 新しい球を作成する位置です。 | |
radius : | number | 球の半径です。 |
actor : | string? | 球を作成する際に使用するアクター テンプレートの名前です(存在する場合)。これを指定する場合は、shape パラメータと material パラメータも指定する必要があります。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
shape : | string? | 球を作成する際に使用するシェイプ テンプレートの名前です。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
material : | string? | 球を作成する際に使用するマテリアル テンプレートの名前です。 ? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。 |
新しくスポーンされた球です。 |
シーン内の物理オブジェクトの大半は .physics ファイルで指定された物理設定のユニットに由来します。ただし、完全に即席の物理アクターをスポーンする場合には役立つことがあります。この関数は即席の球をスポーンします。
その他の関連リファレンス項目
![]() |
wake_actors ( self, filter_id, min, max )![]() 指定された衝突フィルタと衝突し、指定された最大値と最小値によって定義される軸指向バウンディング ボックスと交差するすべての物理アクターを目覚めさせます。
|
self : | この関数を機能させるオブジェクト インスタンスを指定します。 このオブジェクトのインスタンスでこの関数を呼び出すために、コロン : 呼び出し構文を使用できます。その場合、このパラメータは省略する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。 | |
filter_id : | string | 衝突フィルタの ID です。 |
min : | ベクトルの最小値です。 | |
max : | ベクトルの最大値です。 |
この関数は値を返しません。 |
その他の関連リファレンス項目