ジオメトリ スクリプト ライブラリには、メッシュのトライアングル単位のビルドやその頂点数のカウントなどの低レベルのメッシュの構築およびクエリから、メッシュ ブール値や交差テストなどの高レベルの演算まで、非常に幅広い機能が含まれています。
ジオメトリ スクリプト ライブラリの詳細については、「ジオメトリ スクリプトのユーザー ガイド」を参照してください。
ほとんどの関数は、エディタでの作業時とランタイム時に使用できます。ただし、エディタで作業しているときのみに使用できる関数もあるため、以下の表には、エディタで作業しているときのみ使用できることについて記載しています。
アセットおよびコンポーネントの読み取り/書き込み
これらの関数を使用すると、既存または新規のアセットまたはコンポーネントとの間で行う読み取り/書き込みなど、ダイナミック メッシュ インスタンスの読み取り/書き込みを行うことができます。
| ノード名 | 説明 |
|---|---|
| Copy Mesh From Static Mesh | スタティックメッシュ アセットからダイナミック メッシュを抽出します。 |
| Copy Mesh To Static Mesh | ダイナミック メッシュから変換された新しいジオメトリでスタティックメッシュ アセットを更新します。 |
| Copy Mesh From Component | ワールド空間またはローカル空間内に存在する、サポートされているコンポーネント タイプからダイナミック メッシュ アセットを抽出します。 |
| Create New Volume From Mesh | ダイナミック メッシュ アセットから、ブロッキング ボリュームなどの新しいボリューム アクタを作成します。 このノードはエディタ内のみで機能します。 |
| Create New Static Mesh Asset From Mesh | ダイナミック メッシュ アクタから新しいスタティックメッシュ アセットを作成します。 このノードはエディタ内のみで機能します。 |
| Set Static Mesh Collision From Mesh | 入力メッシュに基づいて、スタティックメッシュ アセットの単純なコリジョン形状を生成します。 |
| Set Dynamic Mesh Collision From Mesh | 入力メッシュに基づいて、ダイナミック メッシュ コンポーネントの単純なコリジョン形状を生成します。 |
| Copy Collision Meshes From Object | コリジョン ジオメトリを From オブジェクトから抽出し、To ダイナミック メッシュに格納されているメッシュとともにそれをコピーします。
|
| Reset Dynamic Mesh Collision | ダイナミック メッシュ コンポーネントから単純なコリジョンをクリアします。 |
| Copy Mesh From Skeletal Mesh | スケルタルメッシュをターゲット ダイナミック メッシュにコピーします。 |
| Copy Mesh To Skeletal Mesh | 指定したダイナミック メッシュをスケルタルメッシュにコピーします。 |
プリミティブ生成
これらの関数を使用すると、プリミティブ メッシュを生成して、入力ダイナミック メッシュに追加することができます。
| ノード名 | 説明 |
|---|---|
| Append Box | 指定したダイナミック メッシュに 3D ボックスを追加します。 |
| Append Sphere Lat Long | 緯度/経度トポロジを使用して三角分割された 3D 球体をダイナミック メッシュに追加します。 |
| Append Sphere Box | ボックス トポロジを使用して三角分割された 3D 球体をダイナミック メッシュに追加します。 |
| Append Capsule | ダイナミック メッシュに 3D カプセルを追加します。 |
| Append Cylinder | ダイナミック メッシュに (任意のエンド キャップを含む) 3D シリンダーを追加します。 |
| Append Cone | ダイナミック メッシュに 3D コーンを追加します。 |
| Append Torus | 3D トーラス (環状体) または部分トーラスをダイナミック メッシュに追加します。 |
| Append Rectangle | ダイナミック メッシュに平面矩形を追加します。 |
| Append Round Rectangle | 角が丸い平面矩形 (RoundRect) をダイナミック メッシュに追加します。 |
| Append Disc | ダイナミック メッシュに平面ディスクを追加します。 |
| Append Triangulated Polygon | 平面 2D ポリゴンの ドロネー トライアングル化 をダイナミック メッシュに追加します。 |
| Append Revolve Polygon | 2D ポリゴンの回転サーフェス (全回転または必要に応じて制限された部分回転) をダイナミック メッシュに追加します。 |
| Append Spiral Revolve Polygon | 垂直方向の螺旋の作成に使用するような、螺旋状のパスで 2D ポリゴンを回転させます。 |
| Append Revolve Path | 任意の上下のエンド キャップがあるオープン 2D パスを回転させます。 |
| Append Simple Extrude Polygon | 選択されたダイナミック メッシュを使用して、2D ポリゴンを垂直パスに沿って押し出します。 |
| Append Simple Swept Polygon | 選択されたダイナミック メッシュを使用して、任意の 3D パスに沿って 2D ポリゴンをスイープします。 |
| Append Linear Stairs | 選択されたダイナミック メッシュを使用して、直線階段を追加します。 |
| Append Curved Stairs | 選択されたダイナミック メッシュを使用して、上りの螺旋階段を追加します。 |
| Append Mesh Transformed | それぞれのトランスフォームを Append Mesh に適用し、次にそのジオメトリをターゲット メッシュに追加します。 |
| Append Sweep Polygon | 2D ポリゴンをスイープ パスに沿ってスイープおよび回転し、指定したメッシュに追加する 3D メッシュを作成します。 |
| Append Voronoi Diagram 2D | 指定した Voronoi サイトから三角分割された Voronoi セルを生成して、ポリゴングループでそれぞれを識別し、指定したメッシュに追加します。 |
トランスフォームおよび変形
これらの関数を使用すると、ダイナミック メッシュの頂点位置を操作することができます。この操作によってメッシュのトポロジや接続性は変更されません。
| ノード名 | 説明 |
|---|---|
| Translate Mesh | メッシュの頂点に平行移動を適用します。 |
| Scale Mesh | メッシュの頂点にスケール トランスフォームを適用します。 |
| Transform Mesh | メッシュの頂点に任意の FTransform を適用します。 |
| Apply Bend Warp To Mesh | トランスフォームで定義された軸の周りにベンド ワープを適用します。 |
| Apply Twist Warp To Mesh | トランスフォームで定義された軸の周りにツイスト ワープを適用します。 |
| Apply Flare Warp To Mesh | フレア/バルジ ワープを適用します。 |
| Apply Math Warp To Mesh | シンプルな数学関数ベースの各種ワープ (現時点では任意の方向を持つ 1D または 2D の正弦波) を適用します。 |
| Apply Perlin Noise To Mesh | メッシュ全体、または任意の選択によって定義されたメッシュの領域に 3D Perlin ノイズ ディスプレイスメントを適用します。 |
| Apply Iterative Smoothing To Mesh | メッシュ全体、または任意の選択によって定義されたサブセットに、いくつかのメッシュ スムージング イテレーションを適用します。 |
| Apply Displace From Texture Map | Texture2D と UV チャンネルに基づいたディスプレイスメントをダイナミック メッシュに適用します。 |
| Rotate Mesh | 指定した原点を基準にしてメッシュを回転します。 |
コンポジションおよび分解
これらの関数を使用すると、メッシュを結合または分割することができます。
| ノード名 | 説明 |
|---|---|
| Copy Mesh To Mesh | メッシュをダイナミック メッシュから別のダイナミック メッシュにコピーします。 |
| Get Sub Mesh From Mesh | 一連のトライアングルをダイナミック メッシュから別のダイナミック メッシュにコピーします。 |
| Split Mesh By Components | 1 つのメッシュを複数のパーツ (ダイナミック メッシュプールから描画された、接続済みコンポーネントごとに 1 つ) に分割します。 |
| Split Mesh By Material IDs | 1 つのメッシュを複数のパーツ (ダイナミック メッシュプールから描画された、マテリアル ID ごとに 1 つ) に分割します。 |
| Append Mesh | メッシュのジオメトリを任意のトランスフォームとともに、別のメッシュに追加します。 |
| Append Mesh Repeated | 繰り返し回数に基づいて、特定のメッシュから他のメッシュにジオメトリを追加して、その都度トランスフォームを蓄積します。この操作はパターンを作成する上で役立ちます |
メッシュ モデリング
これらの関数は標準的な高レベルのモデリング操作を提供します。ただし、通常は、モデリング モードで名前が類似するツールが呼び出す低レベルのメッシュ処理コードを呼び出します。
| ノード名 | 説明 |
|---|---|
| Apply Mesh Boolean | 2 番目のメッシュに基づいて、ブール演算 (Union、Intersect、Subtract など) をダイナミック メッシュに適用します。 |
| Apply Mesh Plane Cut | メッシュに平面切り取りを適用します。作成された穴を任意で塞ぐこともできます。 |
| Apply Mesh Plane Slice | メッシュを半分にスライスします。任意で穴を塞ぐこともできます。 |
| Apply Mesh Mirror | メッシュを平面全体にミラーリングします。任意でトライアングルの切り取りと溶接を行うこともできます。 |
| Apply Mesh Offset | メッシュの頂点をオフセット サーフェスに移動します。 |
| Apply Mesh Shell | メッシュのトライアングルのコピーをオフセット サーフェスに移動して、元のトライアングルにスティッチします。例として、厚いシェルを作成する場合が挙げられます。 |
| Apply Mesh Extrude | メッシュのトライアングルを一定の方向に沿って押し出します。たとえば、この関数で、オープンなトライアングルから固体を作成します。 |
| Apply Mesh Solidify | ボクセル化およびメッシュ化された近似を使用してメッシュを置き換えます (VoxWrap 操作)。 |
| Apply Mesh Morphology | SDF ベースのオフセット メッシュ近似でメッシュを置き換えます。 |
| Apply Mesh Self Union | Union ブール演算を自身で行い、自己交差の修正や浮遊ジオメトリの削除といったアクションを計算するオブジェクト。 |
| Apply Mesh Polygroup Bevel | すべてのポリゴングループ エッジにメッシュ ベベル操作を適用します。 |
メッシュ選択
これらの関数により、メッシュの各領域がさまざまなツールで識別されて、ローカルでの操作が可能になります。一部の関数はメッシュ全体か、選択によって定義されたサブセットで機能します。選択のタイプには、トライアングル、頂点、ポリゴングループがあります。
| ノード名 | 説明 |
|---|---|
| Invert Mesh Selection | ターゲット メッシュ上で選択を反転します。 |
| Create Select All Mesh Selection | ターゲット メッシュのすべての要素を含む、指定した選択タイプの選択を作成します。 |
| Convert Mesh Selection | メッシュ選択を異なるタイプに変換します。 デフォルトでは、頂点が ワンリング 周辺のトライアングルにマッピングされ、トライアングルがすべての含まれる頂点にマッピングされます。 |
| Combine Mesh Selections | 2 つのメッシュ選択を新しい 1 つのメッシュ選択にまとめます。「選択 A」と「選択 B」の 2 つの入力は同じタイプである必要があります。 |
| Convert Index Array To Mesh Selection | インデックス配列からメッシュ選択を作成します。 |
| Convert Index Set To Mesh Selection | インデックス セットからメッシュ選択を作成します。 |
| Convert Mesh Selection To Index Array | メッシュ選択をインデックス配列に変換します。 |
| Convert Index List To Mesh Selection | インデックス リストからメッシュ選択を作成します。インデックス リストのタイプが選択タイプと一致しない場合は、bAllowPartialInclusion=true が設定された Convert Mesh Selection を使って変換されます。 |
| Convert Mesh Selection To Index List | メッシュ選択をインデックス リストに変換します。 |
| Select Mesh Elements In Box | ボックスに含まれるすべての要素を見つけることで、ターゲット メッシュの選択タイプと同じメッシュ選択を新しく作成します。 |
| Select Mesh Elements In Sphere | 球体に含まれるすべての要素を見つけることで、ターゲット メッシュの選択タイプと同じメッシュ選択を新しく作成します。 |
| Select Mesh Elements With Plane | 平面の片面 (具体的には平面のサーフェス法線が指す面) にあるすべての要素を見つけることで、ターゲット メッシュの選択タイプと同じメッシュ選択を新しく作成します。 |
| Select Mesh Elements By Normal Angle | 指定した法線からの角状変位しきい値の範囲に含まれる法線ベクターを持つすべての要素を見つけることで、ターゲット メッシュの選択タイプと同じメッシュ選択を新しく作成します。 トライアングルとポリゴングループの選択にはトライアングル ファセット法線が使用され、頂点の選択には頂点ごとに平均化された法線が使用されます。 |
| Select Mesh Elements Inside Mesh | 2 番目の選択メッシュに含まれるすべての要素を見つけることで、ターゲット メッシュの選択タイプと同じメッシュ選択を新しく作成します。 |
| Expand Mesh Selection To Connected | 接続済みの領域にターゲット メッシュの選択を展開して、新しい選択を返します。 |
| Get Mesh Selection Bounding Box | メッシュ選択の 3D バウンディング ボックスを取得します。 |
| Get Mesh Selection Boundary Loops | メッシュ選択を縁取る頂点ループを計算します。それぞれのループに対して、頂点インデックスの 3D ポリラインとリストの両方が返されます。 頂点の選択の場合、この関数は、頂点選択のワンリング周辺にある縁取りループを返します。 |
| Get Mesh Selection Info | メッシュ選択に関する情報をクエリします。 |
| Debug Print Mesh Selection | メッシュ選択に関する情報をアウトプットログにプリントします。 |
選択によるメッシュの変更
指定した選択からジオメトリを編集するための関数です。
トランスフォーム メッシュ
| ノード名 | 説明 |
|---|---|
| Transform Mesh Selection | 指定したトランスフォームをメッシュの選択部分に適用します。 |
| Translate Mesh Selection | 指定した平行移動をメッシュの選択部分に適用します。 |
| Rotate Mesh Selection | 指定した原点を基準にしてメッシュの選択部分を回転します。 |
| Scale Mesh Selection | 指定したスケールをメッシュの選択部分に適用します。 |
マテリアルとポリゴングループ
| ノード名 | 説明 |
|---|---|
| Set Material ID For Mesh Selection | 指定した選択のすべてのトライアングルで新しいマテリアル ID を設定します。 |
| Set Polygroup For Mesh Selection | 指定したグループ レイヤーの、指定した選択のすべてのトライアングルで新しいポリゴングループを設定します。 |
メッシュ モデリング
| ノード名 | 説明 |
|---|---|
| Apply Mesh Disconnect Faces | 選択によって識別されたターゲット メッシュの各トライアングルを切断します。 |
| Apply Mesh Duplicate Faces | 選択入力によって識別されたターゲット メッシュの各トライアングルを複製します。 |
| Apply Mesh Linear Extrude Faces | 選択によって識別されたターゲット メッシュの各トライアングルに線形押し出しを適用します。 |
| Apply Mesh Offset Faces | 選択によって識別されたターゲット メッシュの各面 (選択が空白の場合はすべての面) にオフセットを適用します。 |
| Apply Mesh Inset Outset Faces | 選択によって識別されたターゲット メッシュの各面 (選択が空白の場合はすべての面) にインセットまたはアウトセットを適用します。 |
| Apply Mesh Bevel Selection | ベベル オプション設定を使って、ターゲット メッシュの各部にメッシュ ベベル操作を適用します。 |
分割関数
これらの関数は、さまざまなメッシュの分割手法をダイナミック メッシュに適用します。
| ノード名 | 説明 |
|---|---|
| Apply Recursive PNTessellation | 再帰的な手法 (1 対 4 の三角分割) を使用して、PN テッセレーション (ポイント法線) を入力メッシュに適用します。 |
| Apply Polygroup Catmull Clark SubD | メッシュのポリゴングループ トポロジに Catmull Clark Subdivision を適用します (入力のトライアングル化は破棄されます)。 このノードはエディタ内のみで機能します。 |
| Apply Triangle Loop SubD | 入力メッシュにループ分割を適用します。 このノードはエディタ内のみで機能します。 |
| Apply Selective Tessellation | 示されるパターン タイプを使って、指定したメッシュ選択を細分化 (テッセレーション) します。 |
| Apply PNTesselation | 入力メッシュに PN テッセレーションを適用します。 |
| Apply Uniform Tessellation | 入力メッシュに均一テッセレーションを適用します。 |
単純化関数
この関数はさまざまな手法でメッシュを単純化します。
| ノード名 | 説明 |
|---|---|
| Apply Simplify To Triangle Count | ターゲットとするトライアングル数に達するまでメッシュを単純化します。 |
| Apply Simplify To Vertex Count | ターゲットとする頂点数に達するまでメッシュを単純化します。 |
| Apply Simplify To Tolerance | ターゲットとする幾何公差までメッシュを単純化します。たとえば、さらに単純化すると、入力メッシュからの偏差が許容範囲を超えます。 |
| Apply Simplify To Planar | 必要以上にトライアングルが多いメッシュの平面領域を単純化します。 これによってメッシュの 3D 形状が変わることはありません。 |
| Apply Simplify To Polygroup Topology | メッシュをポリゴングループ トポロジに至るまで単純化します。例としては、メッシュ ポリゴングループの高レベルの面が挙げられます。もう一つの例としては、デフォルトの Box-Sphere が挙げられます。これは、ポリゴングループ トポロジに至るまで単純化することで、ボックスを生成します。 |
法線関数
この関数はメッシュの法線を再計算します。
| ノード名 | 説明 |
|---|---|
| 法線を反転 | 各面の向きを反転させることで、メッシュ法線を反転させます。 |
| Set Per Vertex Normals | メッシュの法線を頂点ごとの法線に設定します。たとえば、どの頂点でも法線を分割しません。 |
| Set Per Face Normals | メッシュ法線を面/トライアングルごとの法線に設定します。たとえば、メッシュのすべてのエッジに沿って法線を分割します。 |
| Compute Split Normals | 角度許容値および/またはその他の要因 (ポリゴングループ トポロジなど) に基づいて、メッシュの分割法線を計算します。 |
| Recompute Normals | 既存のメッシュ法線を再計算します。既存の分割法線を維持します。たとえば、メッシュを変形した後に使用します。 |
| Compute Tangents | メッシュの接線を (さまざまな方法で) 再計算します。 |
クリーンアップ/修復関数
これらの関数を使用して、メッシュの問題を修正したり、他の標準的な修復を行ったりすることができます。
| ノード名 | 説明 |
|---|---|
| Compact Mesh | メッシュの頂点とトライアングルを圧縮して、頂点 ID やトライアングル ID リストの「穴」を取り除きます (「低レベル メッシュ クエリ」セクションの説明を参照)。 |
| Discard Mesh Attributes | すべての UV、法線、マテリアル ID、頂点カラー、拡張ポリゴングループ レイヤーなど、ダイナミック メッシュから属性セットを削除します。なお、この削除により、多くの関数が機能しなくなることがあります。 |
| Auto Repair Normals | この関数は、反転した法線の修正など、メッシュの法線の向きを自動的に変更することを試みることで、法線に一貫性を持たせます。 |
| Weld Mesh Edges | メッシュの開いている境界エッジをできる限り溶接して、「クラック」を除去します。 |
| Fill All Mesh Holes | メッシュの開いている境界ループ (ジオメトリ サーフェスの穴など) をすべて埋めることを試みます。 |
| Remove Small Components | ボリューム、領域、またはトライアングルの数がしきい値を下回るメッシュの接続済みコンポーネントを削除します。 |
| Remove Hidden Triangles | さまざまな「visible (可視)」および「outside (外部)」の定義に基づいて、外部ビューから見えないメッシュ内のトライアングルをすべて削除します。 |
| Resolve Mesh TJunctions | ターゲット メッシュで T ジャンクションの転換を試みます。 |
| Split Mesh Bowties | ターゲット メッシュで、そのままであれば単一の頂点のみがメッシュの領域に接続される「ボウタイ」を発生させる頂点を分割します。 |
| Repair Mesh Degenerate Geometry | 指定した最短の長さよりもすべてのエッジが大きくなるまで、小さなトライアングルを削除したり、複数のトライアングルをマージしたりして、ターゲット メッシュを変更します。 |
低レベル メッシュ クエリ
この関数はメッシュの要素に関する低レベルの情報を提供します。このコンテキストでは、VertexID と TriangleID はいずれも整数です。
ダイナミック メッシュでは、頂点やトライアングルが削除された後に、VertexID や TriangleID の範囲にギャップが生じる場合があり、一部の操作 (単純化など) ではギャップのあるメッシュが返されることがあります。ID 範囲のギャップは Compact Mesh 関数でクリーンアップされます。
| ノード名 | 説明 |
|---|---|
| Get Vertex Count | メッシュの頂点数を取得します。 |
| Get Num Vertex IDs | メッシュの頂点 ID の数を取得します。メッシュの頂点 ID の数は、メッシュが密になっていない場合、頂点数よりも大きくなることがあります。たとえば、頂点を削除した後などが該当します。 |
| Is Valid Vertex ID | 頂点 ID が有効な頂点を指している場合は、true を返します。 |
| Get All Vertex IDs | メッシュのすべての頂点 ID のインデックス リストを返します。 |
| Get Vertex Position | メッシュの頂点の 3D 位置を頂点 ID ごとに取得します。 |
| Get All Vertex Positions | メッシュのすべての頂点位置のベクター リストを返します。このリストは非常に大きくなる場合があります。 |
| Get Triangle Count | メッシュに含まれるトライアングルの数を返します。なお、これは、直接ダイナミック メッシュに対する関数です。 |
| Get Num Triangle IDs | メッシュのトライアングル ID の数を取得します。メッシュが密でない場合は、トライアングルを削除しても、この値がトライアングル数よりも大きくなることがあります。 |
| Is Valid Triangle ID | TriangleID が有効なトライアングルを参照している場合は、true を返します。 |
| Get All Triangle IDs | メッシュのすべてのトライアングル ID のインデックス リストを返します。 |
| Get Triangle Indices | トライアングルの頂点インデックスのトリプレットを返します。 |
| Get All Triangle Indices | メッシュに含まれるすべてのトライアングル インデックス トリプレットの TriangleList を返します。 |
| Get TrianglePositions | トライアングルの 3 つの角の位置を返します。 |
| Get TriangleFace Normal | トライアングルの面/ファセット法線を返します。 |
| Get TriangleUVs | トライアングルの 3 つの角の UV を返します。 |
| Get Triangle Material ID | トライアングルの現在のマテリアル ID を返します。 |
| Get All Triangle Material IDs | トライアングルのすべてのマテリアル ID のインデックス リストを返します。 |
| Get Triangle Polygroup ID | 指定されたポリゴングループ レイヤーに含まれるトライアングルの現在のポリゴングループ ID を返します。 |
| Get Has Vertex ID Gaps | 頂点 ID リストにギャップがある場合は、true を返します。たとえば、取得した頂点 ID の数が取得した頂点数より大きい場合などです。 |
| Get Has Triangle ID Gaps | トライアングル ID リストにギャップがあり、取得したトライアングル ID 数が取得したトライアングル数より大きい場合は、true を返します。 |
| Get Is Dense Mesh | メッシュが密になっている場合は、true を返します。たとえば、頂点 ID またはトライアングル ID にギャップがない場合などです。 |
| Get Mesh Has Attribute Set | メッシュで UV、法線、マテリアル ID、および頂点カラーを格納するための属性セットが有効な場合は、true を返します。これは通常、デフォルトで有効になっています。 |
低レベル メッシュの構築
これらの関数では、トライアングルごとにメッシュを構築したり、その他の低レベルのメッシュ編集操作を実行したりできます。
何千ものトライアングルを含むメッシュの要素のループ処理が必要な場合にこの関数を使用すると、ブループリント スクリプティングまたは Python スクリプティングでかなり時間がかかることがあります。
| ノード名 | 説明 |
|---|---|
| Set Vertex Position | メッシュ頂点の 3D 位置を設定します。 |
| Add Vertex To Mesh | 新しい頂点をメッシュに追加し、新しい頂点 ID を返します。 |
| Add Vertices To Mesh | メッシュに頂点のリストを追加します。 |
| Delete Vertex From Mesh | メッシュから頂点を削除します。 |
| Delete Vertices From Mesh | メッシュから頂点のリストを削除します。 |
| Add Triangle To Mesh | メッシュにトライアングル (3 要素の頂点 ID タプル) を追加します。 |
| Add Triangles To Mesh | メッシュに一連のトライアングルを追加します。 |
| Delete Triangle From Mesh | メッシュからトライアングルを削除します。 |
| Delete Triangles From Mesh | メッシュから一連のトライアングルを削除します。 |
| Delete Triangles In Polygroup | 特定のポリゴングループ レイヤーで、特定のポリゴングループを持つメッシュからトライアングルをすべて削除します。 |
| Append Buffers To Mesh | 法線や UV などの属性とともに、頂点/トライアングルのセットをメッシュに追加します。Proc Mesh コンポーネントの Create Mesh Section と同様です。 |
| Set Mesh Triangle Normals | メッシュのトライアングルの法線を設定します。 |
| Set Mesh Triangle UVs | メッシュのトライアングルの UV を設定します。 |
| Set Triangle Material ID | メッシュのトライアングルのマテリアル ID を設定します。 |
低レベル リスト管理
これらの関数では、インデックス リスト、スカラー リスト、ベクター リスト、UV リスト、カラー リストを対象としたリスト管理を行います。
| ノード名 | 説明 |
|---|---|
| Get Index List Length | インデックス リストに含まれるアイテムの数を返します。 |
| Get Index List Last Index | インデックス リストに含まれる最後のアイテムのインデックスを返します。 |
| Get Index List Item | インデックス リスト内の指定された場所に格納されているアイテムを返します。 |
| Set Index List Item | インデックス リスト内の指定された場所に格納されているアイテムの値を更新します。 |
| Convert Index List To Array | インデックス リストを整数の配列に変換します。 |
| Convert Array To Index List | 整数の配列をインデックス リストに変換します。 |
| Duplicate Index List | インデックス リストのコンテンツを複製リストに複製します。 |
| Clear Index List | インデックス リスト内のすべてのアイテムをクリア値にリセットします。 |
| Get Scalar List Length | スカラー リストに含まれるアイテムの数を返します。 |
| Get Scalar List Last Index | スカラー リストに含まれる最後のアイテムのインデックスを返します。 |
| Get Scalar List Item | スカラー リスト内の指定された場所に格納されているスカラー (倍精度) を返します。 |
| Set Scalar List Item | スカラー リスト内の指定された場所に格納されているスカラーの値を更新します。 |
| Convert Scalar List To Array | スカラー リストを倍精度の配列に変換します。 |
| Convert Array To Scalar List | 倍精度の配列をスカラー リストに変換します。 |
| Duplicate Scalar List | スカラー リストのコンテンツを複製リストにコピーします。 |
| Clear Scalar List | スカラー リスト内のすべてのアイテムをクリア値にリセットします。 |
| Get Vector List Length | ベクター リストに含まれるアイテムの数を返します。 |
| Get Vector List Last Index | ベクター リストに含まれる最後のアイテムのインデックスを返します。 |
| Get Vector List Item | ベクター リスト内の指定された場所に格納されている FVector を返します。 |
| Set Vector List Item | ベクター リスト内の指定された場所に格納されている FVector の値を更新します。 |
| Convert Vector List To Array | ベクター リストを FVector の配列に変換します。 |
| Convert Array To Vector List | FVector の配列をベクター リストに変換します。 |
| Duplicate Vector List | ベクター リストのコンテンツを複製ベクター リストにコピーします。 |
| Clear Vector List | ベクター リスト内のすべてのアイテムをクリア値にリセットします。 |
| Get UV List Length | UV リストに含まれるアイテムの数を返します。 |
| Get UV List Last Index | UV リストに含まれる最後のアイテムのインデックスを返します。 |
| Get UV List Item | UV リスト内の指定された場所に格納されている FVector2D を返します。 |
| Set UV List Item | UV リスト内の指定された場所に格納されている FVector2D の値を更新します。 |
| Convert UV List To Array | UV リストを FVector2D の配列に変換します。 |
| Convert Array To UV List | FVector2D の配列を UV リストに変換します。 |
| Duplicate UV List | UV リストのコンテンツを複製リストに複製します。 |
| Get Color List Length | カラー リストに含まれるアイテムの数を返します。 |
| Get Color List Last Index | カラー リストに含まれる最後のアイテムのインデックスを返します。 |
| Get Color List Item | カラー リスト内の指定された場所に格納されている FLinearColor を返します。 |
| Set Color List Item | カラー リスト内の指定された場所に格納されている FLinearColor の値を更新します。 |
| Convert Color List To Array | カラー リストを FLinearColor の配列に変換します。 |
| Convert Array To Color List | FLinearColor の配列をカラー リストに変換します。 |
| Extract Color List Channel | カラー リストの 0、1、または 2 チャンネルに対応するスカラー リストを作成します。 |
| Extract Color List Channels | カラー リストからベクター リストを作成します。カラー リスト内の各チャンネルは、X チャンネル インデックス、Y チャンネル インデックス、および Z チャンネル インデックスを使ってベクター コンポーネントにマッピングされます。 |
低レベルの演算
ベクター リストとスカラー リストで成分ごとの演算を処理する関数です。Vector Dot などの複数のリストを受け取る関数では、それぞれのリストに同じ数の要素が含まれている必要があります。
| ノード名 | 説明 |
|---|---|
| Vector Length | ベクター リスト A に含まれる各ベクターの長さを計算して、その値をスカラー リストに返します。 |
| Vector Dot | ベクター リスト A とベクター リスト B に含まれるベクターの各ペア間の内積を計算して、その値を新しいスカラー リストに返します。 |
| Vector Cross | ベクター リスト A とベクター リスト B に含まれるベクターの各ペア間の外積を計算して、その値を新しいベクター リストに返します。 |
| Vector Normalize In Place | ベクター リストに含まれる各ベクターを正規化して、その値をベクター リストに格納します。縮退したベクターの場合は、法線を Set On Failure ベクターに設定します。 |
| Vector Blend | ベクター リスト A とベクター リスト B に含まれるベクターの各ペアに対して ConstantA * A + ConstantB * B を計算して、その値を新しいベクター リストに返します。デフォルトでは (定数 = 1)、2 つのベクターが追加されます。A から B を引くには、 また、 |
| Vector Blend In Place | ベクター リスト A とベクター リスト B に含まれるベクターの各ペアに対して ConstantA * A + Constant B * B を計算して、その値をベクター リスト B に格納します。デフォルトでは (定数 = 1)、2 つのベクターが追加されます。A から B を引くには、 また、 |
| Scalar Vector Multiply | 2 つの入力リストに含まれるスカラー/ベクターの各ペアに対して Scalar Multiplier * Scalar * Vector を計算して、その値を新しいベクター リストに返します。 |
| Scalar Vector Multiply In Place | 2 つの入力リストに含まれるスカラー/ベクターの各ペアに対して Scalar Multiplier * Scalar * Vector を計算して、その値を入力ベクター リストに格納します。 |
| Constant Vector Multiply | ベクター リストに含まれる各要素に対して Constant * Vector を計算して、その値を新しいリストに返します。 |
| Constant Vector Multiply In Place | ベクター リストに含まれる各要素に対して Constant * Vector を計算して、その値をベクター リストに格納します。 |
| Vector To Scalar | ConstantX * Vector.X + ConstantY * Vector.Y + ConstantZ * Vector.Z を計算することで、ベクター リストに含まれるベクターをそれぞれスカラーに変換し、その値を新しいスカラー リストに返します。これを使ってベクターから X、Y、および Z の値を抽出したり、他の成分ごとの演算を処理したりできます。 |
| Scalar Invert | スカラー リストに含まれる各要素に対して Numerator / Scalar を計算して、その値を新しいスカラー リストに返します。Abs(Scalar) < Epsilon の場合は Set On Failure 値に設定します。 |
| Scalar Invert In Place | スカラー リストに含まれる各要素に対して Numerator / Scalar を計算して、その値を入力スカラー リストに格納します。Abs(Scalar) < Epsilon の場合は Set On Failure 値に設定します。 |
| Scalar Blend | スカラー リスト A とスカラー リスト B に含まれる値の各ペアに対して ConstantA * A + ConstantB * B を計算して、その値を新しいスカラー リストに返します。デフォルトでは (定数 = 1)、単に 2 つの値が追加されます。A から B を引くには、 また、 |
| Scalar Blend In Place | スカラー リスト A とスカラー リスト B に含まれる値の各ペアに対して ConstantA * A + ConstantB * B を計算して、スカラー リスト B に返します。デフォルトでは (定数 = 1)、単に 2 つの値が追加されます。A から B を引くには、
|
| Scalar Multiply | スカラー リスト A とスカラー リスト B に含まれる値の各ペアに対して Scalar Multiplier * A * B を計算して、それらの値を新しいスカラー リストに返します。 |
| Scalar Multiply In Place | スカラー リスト A とスカラー リスト B に含まれる値の各ペアに対して Scalar Multiplier * A * B を計算して、それらの値をスカラー リスト B に返します。 |
| Constant Scalar Multiply | スカラー リストに含まれるそれぞれの値に対して Constant * Scalar を計算して、それらの値を新しいスカラー リストに返します。 |
| Constant Scalar Multiply In Place | スカラー リスト A とスカラー リスト B に含まれる値の各ペアに対して Scalar Multiplier A * B を計算して、それらの値を現在のスカラー リストに返します。 |
MaterialID 関数
メッシュのマテリアル ID を操作するための関数です。マテリアル ID はトライアングルごとの整数であり、特定のマテリアルに直接関連付けられているわけではありません。スタティックメッシュとの間で変換する場合、各マテリアル ID は メッシュ セクション に関連付けられます。
| ノード名 | 説明 |
|---|---|
| Get Has Material IDs | メッシュでマテリアル ID が使用可能または有効になっている場合は、true を返します。 |
| Enable Material IDs | メッシュのマテリアル ID を有効にして、0 に初期化します。 |
| Clear Material IDs | メッシュのすべてのマテリアル ID を 0 にリセットします。 |
| Get Max Material ID | メッシュに現在設定されている最大のマテリアル ID を返します。 |
| Remap Material IDs | 指定された値に一致するマテリアル ID を持つすべてのトライアングルで、そのマテリアル ID を新しい値に設定します。 |
| Set All Triangle Material IDs | メッシュのすべてのトライアングルのマテリアル ID を、入力インデックス リストの値に設定します。 |
| Set Polygroup Material ID | (特定のポリゴングループ レイヤーの) 指定されたポリゴングループ ID を持つメッシュのすべてのトライアングルのマテリアル ID を、指定されたマテリアル ID に設定します。 |
頂点の値
これらの値を使用して、頂点カラー などの、頂点に格納されているメッシュ値を取得したり操作したりできます。
法線などの複数の値を特定の頂点に格納することはできますが、これらのメソッドで返される値は一つだけになります。
| ノード名 | 説明 |
|---|---|
| Set Mesh Constant Vertex Color | すべての頂点の色を特定の色に設定します。 |
| Set Mesh Per Vertex Colors | カラー リストを使用して、すべての頂点のカラーを設定します。 |
| Get Mesh Per Vertex Colors | ターゲット メッシュに含まれる各メッシュ頂点の単一頂点カラーのリストを取得します。これらは頂点カラー オーバーレイ から派生したものです。 |
| Set Mesh Selection Vertex Color | ターゲット メッシュの頂点カラー オーバーレイに含まれる色 (選択によって識別) を定数値に設定します。
|
| Convert Mesh Vertex Colors SRGB To Linear | SRGB からリニアへのカラー変換をすべての頂点カラーに適用します。 |
| Convert Mesh Vertex Colors Linear To SRGB | リニアから SRGB へのカラー変換をすべての頂点カラーに適用します。 |
| Get Mesh Per Vertex Normals | ターゲット メッシュに含まれる各メッシュ頂点の単一法線ベクターのリストを取得します。これらは法線オーバーレイから派生したものです。 |
| Get Mesh Per Vertex UVs | ターゲット メッシュに含まれる各メッシュ頂点の単一頂点 UV のリストを取得します。これらは指定した UV オーバーレイから派生したものです。 |
テクスチャのサンプリングと作成
テクスチャ データの読み取りと作成を処理するための関数です。
| ノード名 | 説明 |
|---|---|
| Sample Texture 2D At UV Positions | UV 位置のリストにおける特定のテクスチャ マップをサンプリングして、それぞれの位置の色をカラー リスト出力に返します。 |
| Create New Texture 2D Asset | 一時的な UTexture2D から、シリアル化されたテクスチャ 2D アセットを作成します。 |
ベイク
これらの関数では、ソースとターゲットメッシュ間のデータをテクスチャまたは頂点カラー データにベイクします。法線や曲率、アンビエント オクルージョンといったさまざまなメッシュ データをベイクすることができます。
| ノード名 | 説明 |
|---|---|
| Bake Texture | ソース メッシュでサンプリングしたデータから、ターゲット メッシュのテクスチャを作成します。 |
| Bake Vertex | ターゲット メッシュの頂点カラーに、特定のソース メッシュのベイク関連プロパティの結果を取り込みます。 |
UV 関数
これらの関数を使用して、メッシュの UV を操作することができます。
| ノード名 | 説明 |
|---|---|
| Get Num UV Sets | メッシュ上の UV レイヤー の数を取得します。 |
| Set Num UV Sets | メッシュ上の UV レイヤーの数を設定します。 |
| Get UV Set Bounding Box | UV セット に含まれるすべての UV の 2D バウンディング ボックスを取得します。 |
| CopyUVSet | ソース UV セットの値でターゲット UV セットを置き換えます。 |
| Translate Mesh UVs | UVSet インデックスで、すべての UV または UV のサブセット (選択を使用した場合) に 2D 平行移動を適用します。 |
| Scale Mesh UVs | UVSet インデックスで、すべての UV または UV のサブセット (選択を使用した場合) に 2D スケールを適用します。 |
| Rotate Mesh UVs | UVSet インデックスで、すべての UV または UV のサブセット (選択を使用した場合) に 2D 回転を適用します。 |
| Recompute Mesh UVs | 既存の UV 島やポリゴングループ、または選択入力など、明確に定義されたさまざまなタイプの UV 島に基づいてメッシュの UV を再計算します。 |
| Repack Mesh UVs | 既存の UV 島を標準的な UV 空間にパックします。 |
| Set Mesh UVs From Planar Projection | 平面投影を使って、メッシュ全体または選択入力で定義したサブセットの UV を設定します。 |
| Set Mesh UVs From Box Projection | ボックス投影を使って、メッシュ全体または選択入力で定義したサブセットの UV を設定します。 |
| Set Mesh UVs From Cylinder Projection | シリンダー投影を使って、メッシュ全体または選択入力で定義したサブセットの UV を設定します。 |
| Auto Generate Patch Builder Mesh UVs | PatchBuilder メソッドを使用して新しい UV を計算し、必要に応じてパックします。 |
| Auto Generate X Atlas Mesh UVs | XAtlas を使用して新しい UV を計算し、必要に応じてパックします。 |
| Get Mesh UVSize Info | メッシュの UVSet のディメンションと領域に関する情報を、任意のメッシュ選択とともに計算します。 |
| Get Mesh Per Vertex UVs | ターゲット メッシュに含まれる各メッシュ頂点の単一頂点 UV のリストを取得します。これらは指定した UV オーバーレイから派生したものです。 |
| Copy Mesh UV Layer To Mesh | コピー元のメッシュに含まれる特定の UVSet インデックスからの 2D UV を、コピー先の UV メッシュ内の 3D 頂点位置にコピーします。それぞれのポリゴングループ ID とマテリアル ID は UV メッシュ内で維持されます。 |
| Copy Mesh To Mesh UV Layer | コピー元の UV メッシュの 3D 頂点位置とトライアングルを、コピー元のメッシュの UV Set インデックスで識別された特定の UV レイヤーに転送します。3D の位置 (X、Y、Z) は UV 位置 (X、Y) としてコピーされます。 |
ポリゴングループ関数
メッシュの ポリゴングループ (PolyGroup) を操作するための関数です。ポリゴングループはトライアングルごとの整数で、モデリング ツールや一部のジオメトリ スクリプト演算では、トライアングルの領域やパッチを暗黙的に定義します。ただし、ポリゴングループ レイヤーは基本的にトライアングルごとの数値であるため、他のさまざまな目的にも使用できます。
| ノード名 | 説明 |
|---|---|
| Get Has Polygroups | メッシュに標準的なポリゴングループ レイヤーがある場合は、true を返します。 |
| Enable Polygroups | メッシュで標準のポリゴングループ レイヤーを有効にします。 |
| GetNum Extended Polygroup Layers | 拡張ポリゴングループ レイヤーの数を返します。 なお、拡張ポリゴングループ レイヤーは、すべての操作やモデリング ツールでまだ完全にはサポートされていません。 |
| Set Num Extended Polygroup Layers | メッシュの拡張ポリゴングループ レイヤーの数を設定します。 |
| Clear Polygroups | トライアングル グループの割り当てを、指定されたポリゴングループ レイヤーの定数値にリセットします。 |
| Copy Polygroups Layer | 特定のレイヤーから他のレイヤーにポリゴングループをコピーします。 |
| Convert UV Islands To Polygroups | メッシュの分離された UV 島ごとに新しいポリゴングループを作成して割り当てます。 |
| Convert Components To Polygroups | メッシュの分離されたコンポーネントごとに新しいポリゴングループを作成して割り当てます。 |
| Compute Polygroups From Angle Threshold | エッジの折り目/開角度に基づいてメッシュを分割することで、ポリゴングループを設定します。 |
| Compute Polygroups From Polygon Detection | ポリゴンを識別してポリゴングループ ID を割り当てます。 |
メッシュのジオメトリ クエリ
これらの関数により、メッシュの高度なジオメトリ クエリを行うことができます。
| ノード名 | 説明 |
|---|---|
| Get Mesh Bounding Box | メッシュの頂点のバウンディング ボックスを計算します。 |
| Get Mesh Volume Area | メッシュの体積と面積を計算します。 |
| Get Is Closed Mesh | トポロジカルの境界エッジがないなど、メッシュが閉じている場合は true を返します。 |
| Get Num Open Border Loops | メッシュの「穴」など、オープンな境界ループの数を返します。 |
| Get Num Open Border Edges | メッシュ内のトポロジカル境界エッジの数を返します。 |
| Get Num Connected Components | 共有エッジで接続された「トライアングルのパッチ」など、メッシュ内に存在する分離した接続コンポーネントの数を返します。 |
| Compute Mesh Convex Hull | 特定のメッシュまたはメッシュの一部 (選択入力で定義した場合) の凸包を計算して、別のメッシュに返します。 |
| Compute Mesh Swept Hull | 入力メッシュの 2D 掃引されたハルを計算し、別のメッシュに返します。 |
| Compute Mesh Convex Decomposition | 特定のターゲット メッシュの凸包分解を計算します。複数のハルがリスクエストされることを想定し、メッシュの概算を試みる複数のハルが返されます。ハルにメッシュ全体が含まれることは保証されません。 |
PolyPath
PolyPath (ポリゴンパス) 操作を実行する関数です。PolyPath は、頂点の順序で定義されたパスを指します。
| ノード名 | 説明 |
|---|---|
| Get Poly Path Num Vertices | PolyPath に含まれる頂点の数を返します。 |
| Get Poly Path Last Index | PolyPath に含まれる最後の頂点のインデックスを返します。 |
| Get Poly Path Vertex | 指定した頂点の 3D 位置を返します。 |
| Get Poly Path Tangent | 指定した頂点インデックスにおける PolyPath のローカル接線ベクターを返します。 |
| Get PolyPath Arc Length | PolyPath の長さを返します。 |
| Get NearestVertexIndex | 3D 内の指定したポイントに最も近い PolyPath 頂点のインデックスを返します。 |
| Flatten To 2D On Axis | 指定した軸をドロップして、残りの 2 つの座標を XY 座標として使用することで、パスの 2D に平坦化されたコピーを作成します。 |
| Convert Spline To PolyPath | 指定したサンプリング オプションに基づいて、USplineComponent からの位置を PolyPath にサンプリングします。 |
| Convert PolyPath To Array | 3D ベクターの配列に PolyPath 頂点位置を取り込みます。 |
| Convert Array To PolyPath | 3D 位置ベクターの配列から PolyPath を作成します。 |
| Convert PolyPath To Array Of Vector 2D | XY 平面に投影された PolyPath 頂点位置を使って、2D ベクターの配列を作成します。 |
| Convert Array Of Vector 2D To PolyPath | 2D 位置ベクターの配列から PolyPath を作成します。対応する PolyPath 頂点の Z 座標は 0 になります。 |
| Create Circle Path 3D | XY 平面上の原点周辺に閉じた円を作成し、トランスフォーム入力によってこれを再配置します。 |
| Create Circle Path 2D | XY 平面上の指定した中央周辺に閉じた円を作成します。 閉じたパスの場合、終了頂点は開始頂点の複製ではありません。 |
| Create Arc Path 3D | XY 平面上の原点周辺に開いた円弧を作成し、トランスフォーム入力によってこれを再配置します。 |
| Create Arc Path 2D | XY 平面上の指定した中央周辺に開いた円弧を作成します。 |
メッシュの比較
これらの関数を使用すると、2 つのメッシュを比較することができます。これらのノードを使用することで、いずれのメッシュも変更されることはありません。
| ノード名 | 説明 |
|---|---|
| Is Same Mesh As | 入力オプションで定義された比較において、2 つの入力メッシュが等しい場合は true を返します。 |
| Measure Distances Between Meshes | 2 つのメッシュ間の最小/最大および平均最接近点距離を測定します。 |
| Is Intersecting Mesh | 2 つの入力メッシュ (任意のトランスフォームを含む) が幾何学的に交差している場合は、true を返します。 |
BVH および空間クエリ
これらの関数では、メッシュのバウンディング ボリューム階層 (BVH) オブジェクトを作成してクエリを実行できます。
| ノード名 | 説明 |
|---|---|
| Build BVH For Mesh | Is BVH Valid For Mesh、Rebuild BVH for Mesh、Find Nearest Point On Mesh、Find Nearest Ray Intersection With Mesh、Is Point Inside Mesh の各ノードで使用可能な、メッシュの BVH オブジェクトをビルドします。この関数は、Geometry Script Dynamic Mesh BVH 構造体を返します。 |
| Is BVH Valid For Mesh | BVH オブジェクトが依然としてそのメッシュで使用できるかどうかをチェックします。メッシュが変更された場合は、通常 false を返します。 |
| Rebuild BVH For Mesh | メッシュの BVH オブジェクトをインプレースで再ビルドします。これによって、新しい BVH をビルドするよりもメモリ割り当てを減らすことができます。 |
| Find Nearest Point On Mesh | 指定された 3D ポイントに最も近いメッシュ/BVH のポイントを検索します。 |
| Find Nearest Ray Intersection With Mesh | 3D レイとメッシュ/BVHの最も近い交点を検索します。 |
| Is Point Inside Mesh | Fast Winding Number クエリを使用して、ポイントがメッシュ/BVH の内側にあるかどうかをテストします。 |
ユーティリティ
これらのヘルパー関数は、ジオメトリ スクリプトのメッシュの処理やプロシージャル ジェネレータで役立ちます。
| ノード名 | 説明 |
|---|---|
| Create Dynamic Mesh Pool | 新しいダイナミック メッシュ プール オブジェクトを作成します。 |
| Create Unique New Asset Path Name | ベース パスおよびベース アセット名を指定して新しいユニークなアセット名を作成します。これは、Create New Static Mesh Asset From Mesh などの関数で役立ちます。 このノードはエディタ内のみで機能します。 |
| Get Mesh Info String | メッシュ統計などの情報を含むデバッグ文字列を返します。 |
| Sample Spline To Transforms | 指定したサンプリング オプションに基づいて、USplineComponent を FTransform のリストにサンプリングします。 |
用語集
| 用語 | 定義 |
|---|---|
| オーバーレイ (Overlay) | メッシュに適用されている頂点データのタイプを表すデータ構造体です。このタイプには、頂点カラー、法線、接線、UV などが含まれます。 一つの頂点には、指定したタイプの複数の値を格納することができます。この場合は、タイプに応じて最後の値が使用されるか、値が平均化されるか、もしくは任意の値が使用されます。 |
| ワンリング (One-ring) | 選択した頂点に隣接する、エッジで接続された複数の頂点です。
M 頂点のワンリング。 |
| UV セット/レイヤー (UV Set/Layer) | メッシュの UV 座標が含まれます。UV チャンネル とも呼ばれます。複数の UV チャンネルを使って、さまざまな UV マップ を表すことができます。 |