NavigationMesh - stingray.NavigationMesh オブジェクト リファレンス - Stingray Lua API リファレンス

stingray.NavigationMesh オブジェクト リファレンス

説明

レベルのナビゲーション メッシュです。

関数

パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

p :

stingray.Vector3

制限するポイント

poly :

integer

ポリゴンのインデックス

戻り値

stingray.Vector3

結果の位置です。

boolean

始点がポリゴンの外側にあった場合や、結果内で移動された場合は true を返します。

パラメータ

world :

stingray.World

メッシュを所有するワールドです。

mesh :

stingray.NavigationMesh

破壊するメッシュです。

戻り値
この関数は値を返しません。

この関数は NavigationMesh.merge() で作成されたメッシュに対してのみ呼び出す必要があります。

注: メッシュを破壊する必要はありません。ワールドが破壊されると自動的にメッシュも破壊されます。メッシュを明示的に破壊する必要があるのはメモリを早く開放する必要がある場合のみです。

パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

p :

stingray.Vector3

始点です。

戻り値

integer

最も近いポリゴンのインデックスを返します。

この関数は、ポイント p がメッシュの外側にある場合でもインデックスを返します。

パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

p :

stingray.Vector3

始点です。

戻り値

integer?

最も近いポリゴンのインデックスです(ポイントがメッシュの外側にある場合は nil)。

? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。
パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

path :

table

ポリゴンのパスです。たとえば、NavigationMesh.search() で返されたパスなどです。

戻り値

integer[]

パスの左側のエッジ頂点のリストです。

[]表記は、この型が配列(メンバーのキーは連番、各要素の値は示されている型のインスタンス)であることを示します。

integer[]

パスの右側のエッジ頂点のリストです。

[]表記は、この型が配列(メンバーのキーは連番、各要素の値は示されている型のインスタンス)であることを示します。

これはファンネル アルゴリズムの実装に使用できます。「Simple stupid funnel algorithm」を参照してください。

注: リスト内のポリゴンが扇形をしている場合、返されるリスト内で同じ頂点が繰り返されることがあります。返されるリストは パス数 - 1 個の項目で構成され、交差するポリゴン エッジ 1 つにつき 1 個の項目が返されます。

パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

poly :

integer

ポリゴンのインデックス

戻り値

boolean

指定されたインデックスが割り当てられているメッシュ内のノードの表示が妨げられている場合は true を返し、そうでない場合は false を返します。

パラメータ

world :

stingray.World

新しいメッシュを所有するワールドです。

meshes :

stingray.NavigationMesh[]

合成するナビゲーション メッシュをリストしたテーブルを指定します。

[]表記は、この型が配列(メンバーのキーは連番、各要素の値は示されている型のインスタンス)であることを示します。

merge_tolerance :

number

隣接する 2 つの頂点を合成するときの最大距離をメートル単位で指定します。たとえば、merge_tolerance0.5 に設定すると、50cm 以内の距離にあるナビゲーション メッシュの頂点どうしがすべて合成されます。

戻り値

stingray.NavigationMesh

新しく作成されたナビゲーション メッシュです。

この関数を呼び出すと、新しい NavigationMesh が指定されたワールドに作成されます。ワールドが破壊されるとナビゲーション メッシュも自動的に破壊されます。その前にナビゲーション メッシュを破壊するには、明示的に NavigationMesh.destroy() 関数を呼び出します。

合成を実行するには、合成されるエッジに沿ってすべての頂点が対応している必要があります。エッジが 1 つでも分割されていると、合成は実行されません。たとえば、次のようになります。

頂点どうしが対応しているので合成が実行されます。

合成は実行されません。

パラメータ
この関数はパラメータを受け入れません。
戻り値

integer

メッシュ内のポリゴンの数です。

パラメータ
この関数はパラメータを受け入れません。
戻り値

integer

メッシュ内の頂点の数です。

パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

start :

any(number, stingray.Vector3)

検索の始点または最初に検索するポリゴンのインデックスです。

any(...) 表記は、この項目が括弧内に示されている任意のタイプのインスタンスであることを示しています。

end :

stingray.Vector3

検索の終点です。必ず Vector3 である必要があります。

focus :

number

どの程度アグレッシブに検索を行うかを指定します。1 よりも大きい値に設定すると、よりアグレッシブに検索が実行され、展開されるノード数が少なくなりますが、最短パスが必ず見つかるとは限りません。たとえば focus を 1.2 に設定すると、最短パスの 1.2 倍の長さまでのパスを返すことが許容されます。

max_search_nodes :

integer

検索時に確認するグラフ ノードの最大数を指定します。この値を調整することで、検索の実行時間を制限できます。この値を低くすると、2 つのノード間にパスが存在している場合でも見つからない可能性があります。

max_distance :

number

検索パスの最長距離を指定します。ターゲットまでのパスのうち、この値よりも短いパスが見つからなかった場合は、空のテーブルが返されます。

戻り値

integer[]

ポリゴンのインデックスのテーブルとしてパスを返します。

[]表記は、この型が配列(メンバーのキーは連番、各要素の値は示されている型のインスタンス)であることを示します。

終点に達しない場合、この関数は終点に最も近いパスを返します。

パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

poly :

integer

ポリゴンのインデックス

戻り値

any(integer, nil)+

poly で指定されたインデックスが割り当てられているポリゴンに隣接するポリゴンのインデックスを返します。

注: ポリゴンのエッジに隣接するものがない場合、返されるインデックスは nil となります。

+ 表記は、指定されたタイプのインスタンスが 1 つまたは複数存在することを示しています。
any(...) 表記は、この項目が括弧内に示されている任意のタイプのインスタンスであることを示しています。
パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

poly :

integer

ポリゴンのインデックス

戻り値

integer+

ポリゴンの頂点のインデックスを返します。

+ 表記は、指定されたタイプのインスタンスが 1 つまたは複数存在することを示しています。
パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

p :

stingray.Vector3

投影するポイントです。

poly :

integer

ポリゴンのインデックス

戻り値

stingray.Vector3

結果の位置です。

パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

start :

number

最初に検索するポリゴンのインデックスです。

start_pos :

stingray.Vector3

パス検索の操作に使用する開始位置です。

end :

number

最後に検索するポリゴンのインデックスです。

end_pos :

stingray.Vector3

パス検索の操作に使用する終了位置です。

focus :

number

どの程度アグレッシブに検索を行うかを指定します。1 よりも大きい値に設定すると、よりアグレッシブに検索が実行され、展開されるノード数が少なくなりますが、最短パスが必ず見つかるとは限りません。たとえば focus を 1.2 に設定すると、最短パスの 1.2 倍の長さまでのパスを返すことが許容されます。

max_search_nodes :

integer

検索時に確認するグラフ ノードの最大数を指定します。この値を調整することで、検索の実行時間を制限できます。この値を低くすると、2 つのノード間にパスが存在している場合でも見つからない可能性があります。

max_distance :

number

検索パスの最長距離を指定します。ターゲットまでのパスのうち、この値よりも短いパスが見つからなかった場合は、空のテーブルが返されます。

戻り値

integer[]

ポリゴン インデックスのテーブルとしてパスを返します。パスが見つからなかった場合は空のテーブルを返します。

[]表記は、この型が配列(メンバーのキーは連番、各要素の値は示されている型のインスタンス)であることを示します。
パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

start :

stingray.Vector3

検索の始点を指定します。最初のポリゴンを検索するために NavigationMesh.find_polygon () が内部的に呼び出されます。

end :

stingray.Vector3

検索の終点です。最初のポリゴンを検索するために NavigationMesh.find_polygon () が内部的に呼び出されます。

focus :

number

どの程度アグレッシブに検索を行うかを指定します。1 よりも大きい値に設定すると、よりアグレッシブに検索が実行され、展開されるノード数が少なくなりますが、最短パスが必ず見つかるとは限りません。たとえば focus を 1.2 に設定すると、最短パスの 1.2 倍の長さまでのパスを返すことが許容されます。

max_search_nodes :

integer

検索時に確認するグラフ ノードの最大数を指定します。この値を調整することで、検索の実行時間を制限できます。この値を低くすると、2 つのノード間にパスが存在している場合でも見つからない可能性があります。

max_distance :

number

検索パスの最長距離を指定します。ターゲットまでのパスのうち、この値よりも短いパスが見つからなかった場合は、空のテーブルが返されます。

戻り値

integer[]

ポリゴン インデックスのテーブルとしてパスを返します。パスが見つからなかった場合は空のテーブルを返します。

[]表記は、この型が配列(メンバーのキーは連番、各要素の値は示されている型のインスタンス)であることを示します。
パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

start :

number

最初に検索するポリゴンのインデックスです。

end :

number

最後に検索するポリゴンのインデックスです。

focus :

number

どの程度アグレッシブに検索を行うかを指定します。1 よりも大きい値に設定すると、よりアグレッシブに検索が実行され、展開されるノード数が少なくなりますが、最短パスが必ず見つかるとは限りません。たとえば focus を 1.2 に設定すると、最短パスの 1.2 倍の長さまでのパスを返すことが許容されます。

max_search_nodes :

integer

検索時に確認するグラフ ノードの最大数を指定します。この値を調整することで、検索の実行時間を制限できます。この値を低くすると、2 つのノード間にパスが存在している場合でも見つからない可能性があります。

max_distance :

number

検索パスの最長距離を指定します。ターゲットまでのパスのうち、この値よりも短いパスが見つからなかった場合は、空のテーブルが返されます。

戻り値

integer[]

ポリゴン インデックスのテーブルとしてパスを返します。パスが見つからなかった場合は空のテーブルを返します。

[]表記は、この型が配列(メンバーのキーは連番、各要素の値は示されている型のインスタンス)であることを示します。
パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

poly :

integer

ポリゴンのインデックス

is_obstructed :

boolean

ポリゴンの表示が妨げられているものとしてマークするには true を、そうでない場合は false を使用します。

戻り値
この関数は値を返しません。
パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

p :

stingray.Vector3

メッシュ内でローカライズするポイントです。

poly :

integer

移動前のフレームでキャラクタが存在するポリゴンのインデックスです。

戻り値

stingray.Vector3

キャラクタの新しい位置です(メッシュに制限される可能性があります)。

stingray.Vector3

現在キャラクタが存在するポリゴンの法線です。

integer

現在キャラクタが存在するポリゴンのインデックスです。

boolean

キャラクタを制限する必要がある場合(メッシュのエッジと衝突する場合)は true を返し、それ以外の場合は false を返します。

新しいポイントを p で指定し、キャラクタが最後のフレームで存在するポリゴンのインデックスを poly で指定すると、この関数は現在キャラクタがどのポリゴンに存在するかを計算し、必要に応じてキャラクタの位置をナビゲーション メッシュに制限します。

一般的な使用例:

self.position = self.position + move_vector
self.position, self.normal, self.poly = NavigationMesh.update_polygon(self.mesh, self.position, self.poly)
パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

v :

integer

頂点のインデックスです。

戻り値

stingray.Vector3

頂点の位置です。

パラメータ

self :

stingray.NavigationMesh

この関数を機能させるオブジェクト インスタンスを指定します。

この関数を呼び出す場合は、常にこの self パラメータを指定する必要があります。ドット . 呼び出し構文(オブジェクト指向のコロン : 呼び出し構文ではなく)を使用する必要があります。詳細については、この Stingray ヘルプ トピック、または Lua ドキュメントのこのページを参照してください。

lines :

stingray.LineObject

パスの描画に使用する LineObject を指定します。

戻り値
この関数は値を返しません。

検出されたパスは黄色の線で描画され、パスのその他の部分(展開されたが使用されなかったノード)は青色の線で描画されます。

この関数は開発用のビルドでのみ使用可能です。