Saltar al contenido principal

Kit mesh

155 herramientas. Generado a partir del código fuente del plugin; no lo edites a mano.

Las descripciones de las herramientas y de los argumentos se muestran en inglés porque reflejan el schema de las herramientas (el mismo texto que el agente recibe en tools/list).

Guía​

Static and skeletal mesh assets: LOD chains, build and reduction settings, materials and sections, sockets, simple and complex collision, UV channels and lightmap UVs, Nanite and distance fields, procedural authoring with Geometry Script, skeletal mesh basics (bones, morph targets, physics assets, skeleton binding) and folder-wide audits.

Works on UE 4.27 through 5.8 (123 tools on 4.27, 155 on 5.8). The extra 5.x tools are Nanite and the whole mesh.gs_* Geometry Script family; they are hidden from tools/list on older engines and refused with E_NOT_SUPPORTED if called anyway.

The kit is split over six classes that all expose the mesh. namespace:

ClassPrefixWhat
UUeaKit_Meshmesh.info, LODs, build settings, materials, sections, sockets, lightmap, distance field, Nanite, bounds, import settings, duplicate/rename/delete/export/merge/validate
UUeaKit_MeshCollisionmesh.simple collision primitives, convex decomposition, complexity, physical material, per-section collision, collision audits
UUeaKit_MeshUVmesh.UV channels, projections, lightmap UVs, UV bounds, tiling, auto-UV
UUeaKit_MeshGeometrymesh.gs_Geometry Script primitives and operations (UE 5 + the GeometryScripting plugin)
UUeaKit_SkeletalMeshmesh.sk_skeletal mesh LODs, materials, sockets, bones, morph targets, physics assets, skeleton
UUeaKit_MeshBatchmesh.folder audits and bulk edits

Not here: placing meshes in a level (actor kit), mesh component settings (component kit), importing FBX (asset kit asset.import_*), materials themselves (material kit).

Start here​

  1. mesh.get_info {"mesh":"/Game/Meshes/SM_Rock"} — LODs with triangle/vertex/section counts, materials, sockets, bounds, lightmap, collision summary, Nanite, LOD group, source files.
  2. mesh.audit {"folder":"/Game/Meshes"} — the whole folder with triangle budgets, LOD coverage, missing collision and lightmap resolution, plus the offenders.
  3. mesh.validate {"mesh":"..."} — one mesh checked for a broken LOD chain, missing collision, unusable lightmap UVs and empty material slots.
  4. mesh.report {"folder":"/Game/Meshes"} — the same audit as markdown text for a human.

Everything that changes an asset is transactional (edit.undo works) but nothing is saved until you call mesh.save or asset.save_all.

Recipes​

A production-ready prop in three calls​

mesh.generate_lods {"mesh":"/Game/Meshes/SM_Crate","count":3}
mesh.auto_convex_collision {"mesh":"/Game/Meshes/SM_Crate","hullCount":4,"maxHullVerts":16}
mesh.generate_lightmap_uv {"mesh":"/Game/Meshes/SM_Crate","srcChannel":0,"dstChannel":1,
"minResolution":64}

mesh.generate_lods rebuilds the whole LOD chain from LOD0 by reduction (default percentages 0.5, 0.25, 0.125…), mesh.auto_convex_collision replaces the simple collision with a convex decomposition, and mesh.generate_lightmap_uv turns on the engine's lightmap UV generator and points the lightmap coordinate index at the new channel.

Collision from scratch​

mesh.fit_collision_to_bounds {"mesh":"...","kind":"box"} // one box on the bounds
mesh.add_capsule_collision {"mesh":"...","radius":30,"length":80}
mesh.set_collision_complexity{"mesh":"...","complexity":"use_simple_as_complex"}
mesh.get_collision {"mesh":"..."} // check the result

Shapes: box, sphere, capsule, kdop10x/10y/10z/18/26 (mesh.add_kdop_collision or the generic mesh.add_simple_collision), convex hulls (mesh.auto_convex_collision). mesh.set_collision_primitive edits one primitive numerically; convex hulls cannot be edited that way. mesh.copy_collision clones a whole setup onto another mesh, and mesh.get_collision_json / mesh.set_collision_json round-trip the aggregate geometry as text.

A prop built from nothing (UE 5, GeometryScripting)​

mesh.gs_info {} // confirm the plugin is enabled
mesh.gs_pipeline {
"primitive":"box", "dimensions":{"x":200,"y":200,"z":40},
"ops":[ {"op":"translate","vector":{"x":0,"y":0,"z":20}},
{"op":"recompute_normals","amount":45},
{"op":"simplify_percent","amount":0.8} ],
"folder":"/Game/Props", "name":"SM_Platform", "collision":true }

mesh.gs_pipeline is the one-call version. The individual steps also exist: mesh.gs_create_box/sphere/cylinder/capsule/cone/torus/plane/stairs/ramp create a new asset, and mesh.gs_boolean, mesh.gs_simplify, mesh.gs_transform, mesh.gs_mirror, mesh.gs_recenter_pivot, mesh.gs_weld, mesh.gs_fill_holes, mesh.gs_remove_small_components, mesh.gs_voxel_solidify, mesh.gs_voxel_morphology, mesh.gs_flip_normals, mesh.gs_recompute_normals, mesh.gs_set_material_ids and mesh.gs_combine edit an existing one. Every modify tool takes inPlace (default true) or a folder + name pair to write a copy instead. mesh.gs_measure returns triangle/vertex counts, surface area, volume and bounds; mesh.gs_generate_collision_from_mesh produces simple collision from the geometry itself (box, sphere, capsule, convex, swept_hull, min_volume, level_set).

Project-wide clean-up​

mesh.audit {"folder":"/Game","maxTriangles":50000,"minLods":2,"onlyOffenders":true}
mesh.find_without_collision {"folder":"/Game/Props"}
mesh.batch_auto_collision {"folder":"/Game/Props","kind":"box","onlyMissing":true,"dryRun":true}
mesh.batch_auto_collision {"folder":"/Game/Props","kind":"box","onlyMissing":true,"dryRun":false}

Every batch tool defaults to dryRun: true: run it once to see what would change, then repeat with dryRun: false. The family is mesh.batch_set_lod_group, mesh.batch_generate_lods, mesh.batch_set_lightmap, mesh.batch_set_nanite (5.0+), mesh.batch_set_build_settings, mesh.batch_rebuild and mesh.batch_auto_collision. The read-only finders are mesh.find_high_poly, mesh.find_without_lods, mesh.find_without_collision and mesh.find_duplicate_geometry.

Skeletal meshes​

mesh.sk_get_info first, then mesh.sk_list_bones, mesh.sk_list_morph_targets, mesh.sk_list_sockets. To give a character physics:

mesh.sk_create_physics_asset {"mesh":"/Game/Chars/SK_Hero","folder":"/Game/Chars",
"name":"PHYS_Hero","geomType":"sphyl","assign":true}

mesh.sk_regenerate_lods and mesh.sk_remove_lods need UE 5 (4.27 has no scripting entry point for them and returns E_NOT_SUPPORTED with a hint); the reduction settings themselves (mesh.sk_set_reduction) can be written on both engines.

Gotchas​

  • Rebuild cost. Tools that change build/reduction/UV settings call PostEditChange(), which rebuilds the render data. Several of them take rebuild: false so you can batch the changes and finish with one mesh.rebuild. Triangle counts in a reply come from the built data, so they only move after a rebuild.
  • Engine content is read-only in spirit. Duplicate first: mesh.duplicate {"mesh":"/Engine/BasicShapes/Cube","folder":"/Game/Temp","name":"SM_Copy"}, then edit the copy.
  • Nanite vs LODs. A Nanite mesh ignores the LOD chain at render time but still uses it for the fallback mesh and for collision. Do not delete the LODs of a Nanite mesh that also uses use_complex_as_simple collision — mesh.validate flags that combination.
  • Lightmap UVs. coordinateIndex must point at a channel that exists, or the lighting build reuses channel 0 (overlapping UVs). Either turn on the generator with mesh.generate_lightmap_uv or create the channel yourself with mesh.add_uv_channel + a projection.
  • UV editing needs source geometry. mesh.copy_uv_channel, mesh.set_uv_tiling and mesh.flip_uv_v work on the mesh description, so they refuse meshes that only have render data (E_NOT_SUPPORTED). The projection tools (mesh.generate_planar_uv and friends) work anywhere.
  • 4.27 differences. On 4.27 the kit goes through UEditorStaticMeshLibrary (EditorScriptingUtilities, already enabled by the plugin); on 5.x through UStaticMeshEditorSubsystem / USkeletalMeshEditorSubsystem. Nanite, Geometry Script and the skeletal LOD regeneration tools simply do not exist on 4.27.
  • Geometry Script must be enabled. The mesh.gs_* tools carry RequiresPlugin="GeometryScripting": if the plugin is off they are not listed and calls are refused with the plugin name. mesh.gs_info always answers and tells you whether it is enabled.
  • mesh.merge needs an editor world. It merges through temporary actors, so it is refused with E_EDITOR_STATE when no map is open. lodSelection: -1 merges all LODs; a value of 0-7 merges that specific LOD and is required if you also want mergeMaterials. The engine's merge utility picks its own asset name (/Game/F/SM_Merged would become /Game/F/SM_SM_Merged), so the tool moves the result to the exact folder/name you asked for and always returns the final object path in mesh; anything it could not do lands in notes.
  • Material slots. mesh.remove_material_slot refuses while a render section still points at the slot; move the section with mesh.set_section first.

Herramientas​

Leyenda. riesgo 0 = solo lectura, 1 = operación inofensiva del editor, 2 = modifica un asset, 3 = elimina/reemplaza un asset, 4 = proyecto/configuración/build, 5 = potencialmente destructivo (las llamadas por encima de MaxAutoRisk requieren "_confirm": true). modifica = se ejecuta en una transacción (edit.undo la revierte). requiere PIE / requiere mundo = se rechaza sin una sesión PIE / sin un nivel abierto. requiere el plugin = no disponible cuando el plugin está desactivado. dryRun = acepta el argumento dryRun. smoke = cubierto por edit.self_test.

mesh.add_box_collision (riesgo 2, modifica, smoke)​

Adds a box collision primitive. An empty extent uses the mesh bounds.

ArgumentoTipoDescripción
meshstringobligatorio.
extent{x,y,z}Full size on X/Y/Z. (0,0,0) uses the mesh bounds.
center{x,y,z}
rotation{x,y,z}Rotation as pitch/yaw/roll.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.add_capsule_collision (riesgo 2, modifica, smoke)​

Adds a capsule (sphyl) collision primitive. Radius/length of 0 are derived from the bounds.

ArgumentoTipoDescripción
meshstringobligatorio.
radiusnumberRadius in centimetres; <= 0 derives it from the bounds. Valor predeterminado 0.0.
lengthnumberLength of the cylindrical part; <= 0 derives it from the bounds. Valor predeterminado 0.0.
center{x,y,z}
rotation{x,y,z}Rotation as pitch/yaw/roll.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.add_kdop_collision (riesgo 2, modifica, smoke)​

Adds a kDOP hull (kdop10x, kdop10y, kdop10z, kdop18, kdop26) fitted to the mesh.

ArgumentoTipoDescripción
meshstringobligatorio.
kindstringobligatorio. kdop10x / kdop10y / kdop10z / kdop18 / kdop26.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.add_material_slot (riesgo 2, modifica, smoke)​

Appends a material slot to the mesh.

ArgumentoTipoDescripción
meshstringobligatorio.
materialstringMaterial assigned to the new slot (optional).
slotNamestringName of the new slot (defaults to the material name).

Devuelve: mesh, materials, count, message.

mesh.add_simple_collision (riesgo 2, modifica, smoke)​

Adds a simple collision shape by name (box, sphere, capsule or any kDOP) fitted to the mesh.

ArgumentoTipoDescripción
meshstringobligatorio.
shapestringobligatorio. box / sphere / capsule / kdop10x / kdop10y / kdop10z / kdop18 / kdop26.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.add_socket (riesgo 2, modifica, smoke)​

Adds a socket with a relative location, rotation, scale and tag.

ArgumentoTipoDescripción
meshstringobligatorio.
namestringobligatorio. Socket name.
location{x,y,z}
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means "leave alone" on set and (1,1,1) on add.
tagstringFree-form tag stored on the socket.
previewMeshstringStatic mesh shown at the socket in the editor preview.
newNamestringNew socket name (mesh.set_socket only).

Devuelve: mesh, sockets, count, message.

mesh.add_sphere_collision (riesgo 2, modifica, smoke)​

Adds a sphere collision primitive. A radius of 0 uses the bounding sphere.

ArgumentoTipoDescripción
meshstringobligatorio.
radiusnumberRadius in centimetres; <= 0 uses the bounding sphere. Valor predeterminado 0.0.
center{x,y,z}

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.add_uv_channel (riesgo 2, modifica, smoke)​

Appends an empty UV channel to a LOD.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
channelintegerUV channel index. Valor predeterminado 0.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.audit (riesgo 0, smoke)​

Audits every static mesh of a folder: triangles, LODs, collision, lightmap, Nanite, materials, plus the meshes that break the given budgets.

ArgumentoTipoDescripción
folderstringobligatorio.
recursivebooleanValor predeterminado true.
limitintegerValor predeterminado 200.
maxTrianglesintegerFlag meshes with more LOD0 triangles than this (<= 0 disables the check). Valor predeterminado 100000.
minLodsintegerFlag meshes with fewer LODs than this (<= 0 disables the check). Valor predeterminado 2.
onlyOffendersbooleanOnly return the flagged meshes. Valor predeterminado false.

Devuelve: meshes, count, offenders, totalTriangles, withoutCollision, singleLod, naniteEnabled, message.

mesh.auto_convex_collision (riesgo 3, modifica, smoke)​

Replaces the simple collision with a convex decomposition of the mesh (hull count, vertices per hull, voxel precision).

ArgumentoTipoDescripción
meshstringobligatorio.
hullCountintegerMaximum number of convex hulls to generate. Valor predeterminado 4.
maxHullVertsintegerMaximum vertices per hull (6-32). Valor predeterminado 16.
precisionintegerVoxel resolution of the decomposition (higher = slower and more accurate). Valor predeterminado 100000.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.batch_auto_collision (riesgo 3, modifica, dryRun, smoke)​

Generates simple collision for every mesh of a folder (box, sphere, capsule or convex), optionally only where it is missing. Supports dryRun.

ArgumentoTipoDescripción
folderstringobligatorio. Content folder to process.
kindstringbox / sphere / capsule / convex.
onlyMissingbooleanOnly touch meshes that have no simple collision yet. Valor predeterminado true.
hullCountintegerConvex hull count when kind is convex. Valor predeterminado 4.
limitintegerMaximum number of meshes processed. Valor predeterminado 50.
dryRunbooleanReport what would happen without changing anything. Valor predeterminado true.

Devuelve: meshes, count, changed, dryRun, message.

mesh.batch_generate_lods (riesgo 3, modifica, dryRun, smoke)​

Generates a LOD chain for every static mesh of a folder, optionally only for the meshes that have a single LOD.

ArgumentoTipoDescripción
countintegerTotal number of LODs, including LOD0. Valor predeterminado 3.
percentsarray of numberTriangle fraction per generated LOD.
onlyIfSingleLodbooleanOnly touch meshes that currently have a single LOD. Valor predeterminado true.
dryRunbooleanValor predeterminado true.

Devuelve: meshes, count, changed, dryRun, message.

mesh.batch_rebuild (riesgo 3, modifica, dryRun, smoke)​

Rebuilds the render data of every static mesh of a folder (slow: use dryRun first to see the count).

ArgumentoTipoDescripción
dryRunbooleanValor predeterminado true.

Devuelve: meshes, count, changed, dryRun, message.

mesh.batch_set_build_settings (riesgo 2, modifica, dryRun, smoke)​

Applies build settings (normals, tangents, lightmap UV generation, degenerates, precision) to every LOD of every mesh of a folder.

ArgumentoTipoDescripción
recomputeNormalsstring"true"/"false" to change, empty to leave alone.
recomputeTangentsstring
generateLightmapUVsstring
removeDegeneratesstring
fullPrecisionUVsstring
minLightmapResolutionintegerMinimum lightmap resolution used by the lightmap UV generator (-1 = leave). Valor predeterminado -1.
dstLightmapIndexintegerDestination UV channel of the generated lightmap UVs (-1 = leave). Valor predeterminado -1.
dryRunbooleanValor predeterminado true.

Devuelve: meshes, count, changed, dryRun, message.

mesh.batch_set_lightmap (riesgo 2, modifica, dryRun, smoke)​

Sets the lightmap resolution of every static mesh of a folder, optionally only where it is below a threshold.

ArgumentoTipoDescripción
resolutionintegerLightmap resolution applied to the meshes. Valor predeterminado 64.
onlyBelowintegerOnly touch meshes whose current resolution is below this value (<= 0 = touch all). Valor predeterminado 0.
dryRunbooleanValor predeterminado true.

Devuelve: meshes, count, changed, dryRun, message.

mesh.batch_set_lod_group (riesgo 2, modifica, dryRun, smoke)​

Assigns a LOD group to every static mesh of a folder.

ArgumentoTipoDescripción
groupstringobligatorio. LOD group applied to every mesh of the folder.
dryRunbooleanReport what would happen without changing anything. Valor predeterminado true.

Devuelve: meshes, count, changed, dryRun, message.

mesh.batch_set_nanite (riesgo 2, modifica, UE 5.0+, dryRun, smoke)​

Turns Nanite on or off for every static mesh of a folder above a triangle threshold.

ArgumentoTipoDescripción
enabledbooleanTurn Nanite on or off. Valor predeterminado true.
minTrianglesintegerOnly touch meshes with at least this many LOD0 triangles. Valor predeterminado 0.
dryRunbooleanValor predeterminado true.

Devuelve: meshes, count, changed, dryRun, message.

mesh.collision_stats (riesgo 0, smoke)​

Collision audit of a folder: meshes without simple collision, meshes using complex-as-simple and hull counts.

ArgumentoTipoDescripción
folderstringobligatorio. Content folder to process.
kindstringbox / sphere / capsule / convex.
onlyMissingbooleanOnly touch meshes that have no simple collision yet. Valor predeterminado true.
hullCountintegerConvex hull count when kind is convex. Valor predeterminado 4.
limitintegerMaximum number of meshes processed. Valor predeterminado 50.
dryRunbooleanReport what would happen without changing anything. Valor predeterminado true.

Devuelve: meshes, withoutSimpleCollision, usingComplexAsSimple, totalPrimitives, totalConvexHulls, offenders, message.

mesh.copy_collision (riesgo 2, modifica, smoke)​

Copies the simple collision of one mesh onto another.

ArgumentoTipoDescripción
fromstringobligatorio. Mesh the collision is read from.
tostringobligatorio. Mesh the collision is written to.
replacebooleanReplace the destination's collision instead of appending to it. Valor predeterminado true.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.copy_uv_channel (riesgo 2, modifica, smoke)​

Copies the UV coordinates of one channel into another (the destination is created when missing).

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
fromintegerobligatorio. Channel to read from.
tointegerobligatorio. Channel to write to (created when missing).

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.delete (riesgo 3, modifica, destructivo, smoke)​

Deletes a static mesh asset. Refused while other assets still reference it.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, name, folder, message, notes.

mesh.duplicate (riesgo 2, modifica, smoke)​

Duplicates a static mesh into folder/name. Use this to create the working copy before editing engine content.

ArgumentoTipoDescripción
meshstringobligatorio. Source static mesh asset path or unique name.
folderstringDestination folder (defaults to the source folder).
namestringobligatorio. Name of the new asset.

Devuelve: mesh, name, folder, message, notes.

mesh.export (riesgo 1)​

Exports a static mesh to an FBX or OBJ file. Not smoke-tested: it writes outside the content folder.

ArgumentoTipoDescripción
meshstringobligatorio.
filestringobligatorio. Absolute path of the file to write.
formatstringfbx (default) or obj.

Devuelve: mesh, name, folder, message, notes.

mesh.find_duplicate_geometry (riesgo 0, smoke)​

Groups static meshes of a folder that share the same triangle count, vertex count and bounds (likely duplicates).

ArgumentoTipoDescripción
folderstringobligatorio. Content folder to scan.
recursivebooleanInclude subfolders. Valor predeterminado true.
limitintegerMaximum number of meshes inspected. Valor predeterminado 200.

Devuelve: groups, count, scanned, message.

mesh.find_high_poly (riesgo 0, smoke)​

Static meshes of a folder whose LOD0 exceeds a triangle threshold, sorted by triangle count.

ArgumentoTipoDescripción
thresholdintegerLOD0 triangle count above which a mesh is reported. Valor predeterminado 50000.

Devuelve: meshes, count, offenders, totalTriangles, withoutCollision, singleLod, naniteEnabled, message.

mesh.find_without_collision (riesgo 0, smoke)​

Static meshes of a folder without simple collision.

ArgumentoTipoDescripción
folderstringobligatorio. Content folder to scan.
recursivebooleanInclude subfolders. Valor predeterminado true.
limitintegerMaximum number of meshes inspected. Valor predeterminado 200.

Devuelve: meshes, count, offenders, totalTriangles, withoutCollision, singleLod, naniteEnabled, message.

mesh.find_without_lods (riesgo 0, smoke)​

Static meshes of a folder that have a single LOD.

ArgumentoTipoDescripción
folderstringobligatorio. Content folder to scan.
recursivebooleanInclude subfolders. Valor predeterminado true.
limitintegerMaximum number of meshes inspected. Valor predeterminado 200.

Devuelve: meshes, count, offenders, totalTriangles, withoutCollision, singleLod, naniteEnabled, message.

mesh.fit_collision_to_bounds (riesgo 2, modifica, smoke)​

Fits a single box, sphere or capsule to the mesh bounds, replacing the existing simple collision by default.

ArgumentoTipoDescripción
meshstringobligatorio.
kindstringbox / sphere / capsule.
replacebooleanReplace the existing simple collision instead of adding to it. Valor predeterminado true.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.flip_uv_v (riesgo 2, modifica, smoke)​

Flips one UV channel vertically (v = 1 - v), the usual fix for meshes authored in a V-up tool.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
channelintegerUV channel index. Valor predeterminado 0.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.generate_box_uv (riesgo 2, modifica, smoke)​

Generates box-projected UVs into a channel (an empty size uses the mesh bounds).

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
channelintegerobligatorio. UV channel the projection is written to.
position{x,y,z}Centre of the projection gizmo in local space.
orientation{x,y,z}Orientation of the projection gizmo as pitch/yaw/roll.
tiling{x,y,z}Tiling on U and V (planar and cylindrical); defaults to 1,1.
size{x,y,z}Size of the projection box (box projection only); defaults to the mesh bounds.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.generate_cylindrical_uv (riesgo 2, modifica, smoke)​

Generates cylindrical-projected UVs into a channel.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
channelintegerobligatorio. UV channel the projection is written to.
position{x,y,z}Centre of the projection gizmo in local space.
orientation{x,y,z}Orientation of the projection gizmo as pitch/yaw/roll.
tiling{x,y,z}Tiling on U and V (planar and cylindrical); defaults to 1,1.
size{x,y,z}Size of the projection box (box projection only); defaults to the mesh bounds.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.generate_lightmap_uv (riesgo 2, modifica, smoke)​

Turns on the engine's lightmap UV generator for a LOD and rebuilds it (source channel, destination channel and minimum resolution).

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
minResolutionintegerMinimum lightmap texture resolution used for the packing. Valor predeterminado 64.
srcChannelintegerUV channel the generator reads from. Valor predeterminado 0.
dstChannelintegerUV channel the generated lightmap UVs are written to. Valor predeterminado 1.
setLightmapIndexbooleanAlso point the mesh's lightmap coordinate index at dstChannel. Valor predeterminado true.
rebuildbooleanValor predeterminado true.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.generate_lods (riesgo 2, modifica, smoke)​

Builds a whole LOD chain from LOD0 by automatic reduction (default 0.5, 0.25, 0.125...). One call replaces the existing LODs.

ArgumentoTipoDescripción
meshstringobligatorio.
countintegerobligatorio. Total number of LODs to produce, including LOD0 (2-8).
percentsarray of numberTriangle fraction per generated LOD (default 0.5, 0.25, 0.125...).
screenSizesarray of numberScreen size per LOD; empty means auto-compute.
rebuildbooleanValor predeterminado true.

Devuelve: mesh, message, lods, notes.

mesh.generate_planar_uv (riesgo 2, modifica, smoke)​

Generates planar-projected UVs into a channel (position, orientation and tiling of the projection gizmo).

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
channelintegerobligatorio. UV channel the projection is written to.
position{x,y,z}Centre of the projection gizmo in local space.
orientation{x,y,z}Orientation of the projection gizmo as pitch/yaw/roll.
tiling{x,y,z}Tiling on U and V (planar and cylindrical); defaults to 1,1.
size{x,y,z}Size of the projection box (box projection only); defaults to the mesh bounds.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.get_bounds (riesgo 0, smoke)​

Local-space bounds of the mesh: origin, box extent, sphere radius, min/max and the bounds extensions.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, origin, boxExtent, sphereRadius, min, max, positiveBoundsExtension, negativeBoundsExtension, message.

mesh.get_build_settings (riesgo 0, smoke)​

Build settings of one LOD as key/value text.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.
lodintegerLOD index (0 = highest detail). Valor predeterminado 0.

Devuelve: mesh, values, message.

mesh.get_collision (riesgo 0, smoke)​

Full collision setup of a mesh: every primitive with its geometry, the complexity flag, the physical material, mirroring and the complex collision mesh.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.get_collision_json (riesgo 0, smoke)​

Serialises the aggregate collision geometry of a mesh as engine property text, for a later mesh.set_collision_json.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, collision, primitives, message.

mesh.get_info (riesgo 0, smoke)​

Everything about a static mesh in one call: LODs with triangle/vertex/section counts, materials, sockets, bounds, lightmap, collision summary, Nanite, distance field, LOD group, min LOD and source files.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, name, folder, lodCount, lods, materials, sockets, boundsOrigin, boundsExtent, boundsSphereRadius, lightmapResolution, lightmapCoordinateIndex, collision, naniteEnabled, generateDistanceField, distanceFieldResolutionScale, lodGroup, minLod, supportRayTracing, allowCpuAccess, hasVertexColors, sourceFiles, totalTriangles, totalVertices.

mesh.get_lod (riesgo 0, smoke)​

Build settings, reduction settings, screen size and statistics of one LOD.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.
lodintegerLOD index (0 = highest detail). Valor predeterminado 0.

Devuelve: mesh, stats, buildSettings, reductionSettings, autoComputeScreenSize.

mesh.get_nanite (riesgo 0, UE 5.0+, smoke)​

Current Nanite settings of a mesh as key/value text.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, values, message.

mesh.get_source_info (riesgo 0, smoke)​

Files the mesh was imported from plus the import settings that will be reused on the next reimport.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, sourceFiles, canReimport, importDataClass, settings, message.

mesh.get_stats (riesgo 0, smoke)​

Per-LOD triangle/vertex/section counts, total counts, UV channels, vertex colours, lightmap resolution, collision primitive count and a rough memory estimate.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, lods, totalTriangles, totalVertices, uvChannels, hasVertexColors, lightmapResolution, collisionPrimitives, materialSlots, estimatedMemoryKb.

mesh.get_uv_bounds (riesgo 0, smoke)​

Min/max UV coordinates of one channel and whether it leaves the 0-1 range.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
channelintegerUV channel index. Valor predeterminado 0.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.gs_auto_uv (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Automatic UV unwrap with Geometry Script (XAtlas or PatchBuilder) written back into a LOD.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
channelintegerUV channel the generated layout is written to. Valor predeterminado 0.
methodstringxatlas (default) or patchbuilder.
initialPatchCountintegerInitial patch count for the patchbuilder method. Valor predeterminado 100.
iterationsintegerXAtlas iteration count. Valor predeterminado 2.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.gs_boolean (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Boolean union, subtraction or intersection of two static meshes, written in place or into a new asset.

ArgumentoTipoDescripción
otherstringobligatorio. Second operand.
opstringunion / subtract / intersect.
otherLocation{x,y,z}Translation applied to the second operand before the operation.
otherRotation{x,y,z}Rotation of the second operand as pitch/yaw/roll.
otherScale{x,y,z}Scale of the second operand; (0,0,0) means 1,1,1.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_combine (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Appends several static meshes into a single new asset.

ArgumentoTipoDescripción
meshesarray of stringobligatorio. Static meshes to append, in order.
folderstringobligatorio. Destination folder.
namestringobligatorio. Destination asset name.
collisionbooleanAlso generate simple collision for the result. Valor predeterminado false.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_create_box (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Creates a static mesh asset containing a box (dimensions, subdivision steps, optional collision).

ArgumentoTipoDescripción
folderstringobligatorio. Destination content folder.
namestringobligatorio. Name of the new static mesh asset.
dimensions{x,y,z}Box and plane size on X/Y/Z in centimetres; zero falls back to 100.
radiusnumberRadius of a sphere, cylinder, capsule or cone base; <= 0 falls back to 50. Valor predeterminado 0.0.
heightnumberHeight of a cylinder, cone or the cylindrical part of a capsule; <= 0 falls back to 100. Valor predeterminado 0.0.
majorRadiusnumberMajor radius of a torus. Valor predeterminado 0.0.
minorRadiusnumberMinor (tube) radius of a torus. Valor predeterminado 0.0.
topRadiusnumberTop radius of a cone (0 = a sharp tip). Valor predeterminado 0.0.
stepsintegerGeneric subdivision count (sphere latitude, torus major steps, plane subdivisions). Valor predeterminado 0.
radialStepsintegerRadial subdivisions of a cylinder, capsule or cone. Valor predeterminado 0.
heightStepsintegerVertical subdivisions of a cylinder or cone. Valor predeterminado 0.
cappedbooleanClose the ends of a cylinder or cone. Valor predeterminado true.
stepCountintegerNumber of steps of a staircase. Valor predeterminado 8.
widthnumberWidth of a staircase or ramp. Valor predeterminado 100.0.
collisionbooleanAlso generate simple collision fitted to the result. Valor predeterminado true.
materialstringMaterial assigned to slot 0 of the new asset.
location{x,y,z}Location of the primitive inside the asset.
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_create_capsule (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Creates a static mesh asset containing a capsule (radius, height of the cylindrical part).

ArgumentoTipoDescripción
folderstringobligatorio. Destination content folder.
namestringobligatorio. Name of the new static mesh asset.
dimensions{x,y,z}Box and plane size on X/Y/Z in centimetres; zero falls back to 100.
radiusnumberRadius of a sphere, cylinder, capsule or cone base; <= 0 falls back to 50. Valor predeterminado 0.0.
heightnumberHeight of a cylinder, cone or the cylindrical part of a capsule; <= 0 falls back to 100. Valor predeterminado 0.0.
majorRadiusnumberMajor radius of a torus. Valor predeterminado 0.0.
minorRadiusnumberMinor (tube) radius of a torus. Valor predeterminado 0.0.
topRadiusnumberTop radius of a cone (0 = a sharp tip). Valor predeterminado 0.0.
stepsintegerGeneric subdivision count (sphere latitude, torus major steps, plane subdivisions). Valor predeterminado 0.
radialStepsintegerRadial subdivisions of a cylinder, capsule or cone. Valor predeterminado 0.
heightStepsintegerVertical subdivisions of a cylinder or cone. Valor predeterminado 0.
cappedbooleanClose the ends of a cylinder or cone. Valor predeterminado true.
stepCountintegerNumber of steps of a staircase. Valor predeterminado 8.
widthnumberWidth of a staircase or ramp. Valor predeterminado 100.0.
collisionbooleanAlso generate simple collision fitted to the result. Valor predeterminado true.
materialstringMaterial assigned to slot 0 of the new asset.
location{x,y,z}Location of the primitive inside the asset.
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_create_cone (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Creates a static mesh asset containing a cone (base radius, top radius, height).

ArgumentoTipoDescripción
folderstringobligatorio. Destination content folder.
namestringobligatorio. Name of the new static mesh asset.
dimensions{x,y,z}Box and plane size on X/Y/Z in centimetres; zero falls back to 100.
radiusnumberRadius of a sphere, cylinder, capsule or cone base; <= 0 falls back to 50. Valor predeterminado 0.0.
heightnumberHeight of a cylinder, cone or the cylindrical part of a capsule; <= 0 falls back to 100. Valor predeterminado 0.0.
majorRadiusnumberMajor radius of a torus. Valor predeterminado 0.0.
minorRadiusnumberMinor (tube) radius of a torus. Valor predeterminado 0.0.
topRadiusnumberTop radius of a cone (0 = a sharp tip). Valor predeterminado 0.0.
stepsintegerGeneric subdivision count (sphere latitude, torus major steps, plane subdivisions). Valor predeterminado 0.
radialStepsintegerRadial subdivisions of a cylinder, capsule or cone. Valor predeterminado 0.
heightStepsintegerVertical subdivisions of a cylinder or cone. Valor predeterminado 0.
cappedbooleanClose the ends of a cylinder or cone. Valor predeterminado true.
stepCountintegerNumber of steps of a staircase. Valor predeterminado 8.
widthnumberWidth of a staircase or ramp. Valor predeterminado 100.0.
collisionbooleanAlso generate simple collision fitted to the result. Valor predeterminado true.
materialstringMaterial assigned to slot 0 of the new asset.
location{x,y,z}Location of the primitive inside the asset.
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_create_cylinder (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Creates a static mesh asset containing a cylinder (radius, height, radial steps, capped).

ArgumentoTipoDescripción
folderstringobligatorio. Destination content folder.
namestringobligatorio. Name of the new static mesh asset.
dimensions{x,y,z}Box and plane size on X/Y/Z in centimetres; zero falls back to 100.
radiusnumberRadius of a sphere, cylinder, capsule or cone base; <= 0 falls back to 50. Valor predeterminado 0.0.
heightnumberHeight of a cylinder, cone or the cylindrical part of a capsule; <= 0 falls back to 100. Valor predeterminado 0.0.
majorRadiusnumberMajor radius of a torus. Valor predeterminado 0.0.
minorRadiusnumberMinor (tube) radius of a torus. Valor predeterminado 0.0.
topRadiusnumberTop radius of a cone (0 = a sharp tip). Valor predeterminado 0.0.
stepsintegerGeneric subdivision count (sphere latitude, torus major steps, plane subdivisions). Valor predeterminado 0.
radialStepsintegerRadial subdivisions of a cylinder, capsule or cone. Valor predeterminado 0.
heightStepsintegerVertical subdivisions of a cylinder or cone. Valor predeterminado 0.
cappedbooleanClose the ends of a cylinder or cone. Valor predeterminado true.
stepCountintegerNumber of steps of a staircase. Valor predeterminado 8.
widthnumberWidth of a staircase or ramp. Valor predeterminado 100.0.
collisionbooleanAlso generate simple collision fitted to the result. Valor predeterminado true.
materialstringMaterial assigned to slot 0 of the new asset.
location{x,y,z}Location of the primitive inside the asset.
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_create_plane (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Creates a static mesh asset containing a flat rectangle in XY (dimensions, subdivisions).

ArgumentoTipoDescripción
folderstringobligatorio. Destination content folder.
namestringobligatorio. Name of the new static mesh asset.
dimensions{x,y,z}Box and plane size on X/Y/Z in centimetres; zero falls back to 100.
radiusnumberRadius of a sphere, cylinder, capsule or cone base; <= 0 falls back to 50. Valor predeterminado 0.0.
heightnumberHeight of a cylinder, cone or the cylindrical part of a capsule; <= 0 falls back to 100. Valor predeterminado 0.0.
majorRadiusnumberMajor radius of a torus. Valor predeterminado 0.0.
minorRadiusnumberMinor (tube) radius of a torus. Valor predeterminado 0.0.
topRadiusnumberTop radius of a cone (0 = a sharp tip). Valor predeterminado 0.0.
stepsintegerGeneric subdivision count (sphere latitude, torus major steps, plane subdivisions). Valor predeterminado 0.
radialStepsintegerRadial subdivisions of a cylinder, capsule or cone. Valor predeterminado 0.
heightStepsintegerVertical subdivisions of a cylinder or cone. Valor predeterminado 0.
cappedbooleanClose the ends of a cylinder or cone. Valor predeterminado true.
stepCountintegerNumber of steps of a staircase. Valor predeterminado 8.
widthnumberWidth of a staircase or ramp. Valor predeterminado 100.0.
collisionbooleanAlso generate simple collision fitted to the result. Valor predeterminado true.
materialstringMaterial assigned to slot 0 of the new asset.
location{x,y,z}Location of the primitive inside the asset.
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_create_ramp (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Creates a wedge-shaped ramp (width, and dimensions as run/rise).

ArgumentoTipoDescripción
folderstringobligatorio. Destination content folder.
namestringobligatorio. Name of the new static mesh asset.
dimensions{x,y,z}Box and plane size on X/Y/Z in centimetres; zero falls back to 100.
radiusnumberRadius of a sphere, cylinder, capsule or cone base; <= 0 falls back to 50. Valor predeterminado 0.0.
heightnumberHeight of a cylinder, cone or the cylindrical part of a capsule; <= 0 falls back to 100. Valor predeterminado 0.0.
majorRadiusnumberMajor radius of a torus. Valor predeterminado 0.0.
minorRadiusnumberMinor (tube) radius of a torus. Valor predeterminado 0.0.
topRadiusnumberTop radius of a cone (0 = a sharp tip). Valor predeterminado 0.0.
stepsintegerGeneric subdivision count (sphere latitude, torus major steps, plane subdivisions). Valor predeterminado 0.
radialStepsintegerRadial subdivisions of a cylinder, capsule or cone. Valor predeterminado 0.
heightStepsintegerVertical subdivisions of a cylinder or cone. Valor predeterminado 0.
cappedbooleanClose the ends of a cylinder or cone. Valor predeterminado true.
stepCountintegerNumber of steps of a staircase. Valor predeterminado 8.
widthnumberWidth of a staircase or ramp. Valor predeterminado 100.0.
collisionbooleanAlso generate simple collision fitted to the result. Valor predeterminado true.
materialstringMaterial assigned to slot 0 of the new asset.
location{x,y,z}Location of the primitive inside the asset.
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_create_sphere (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Creates a static mesh asset containing a UV sphere (radius, steps).

ArgumentoTipoDescripción
folderstringobligatorio. Destination content folder.
namestringobligatorio. Name of the new static mesh asset.
dimensions{x,y,z}Box and plane size on X/Y/Z in centimetres; zero falls back to 100.
radiusnumberRadius of a sphere, cylinder, capsule or cone base; <= 0 falls back to 50. Valor predeterminado 0.0.
heightnumberHeight of a cylinder, cone or the cylindrical part of a capsule; <= 0 falls back to 100. Valor predeterminado 0.0.
majorRadiusnumberMajor radius of a torus. Valor predeterminado 0.0.
minorRadiusnumberMinor (tube) radius of a torus. Valor predeterminado 0.0.
topRadiusnumberTop radius of a cone (0 = a sharp tip). Valor predeterminado 0.0.
stepsintegerGeneric subdivision count (sphere latitude, torus major steps, plane subdivisions). Valor predeterminado 0.
radialStepsintegerRadial subdivisions of a cylinder, capsule or cone. Valor predeterminado 0.
heightStepsintegerVertical subdivisions of a cylinder or cone. Valor predeterminado 0.
cappedbooleanClose the ends of a cylinder or cone. Valor predeterminado true.
stepCountintegerNumber of steps of a staircase. Valor predeterminado 8.
widthnumberWidth of a staircase or ramp. Valor predeterminado 100.0.
collisionbooleanAlso generate simple collision fitted to the result. Valor predeterminado true.
materialstringMaterial assigned to slot 0 of the new asset.
location{x,y,z}Location of the primitive inside the asset.
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_create_stairs (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Creates a straight staircase from stacked boxes (stepCount, width, and dimensions as step run/rise).

ArgumentoTipoDescripción
folderstringobligatorio. Destination content folder.
namestringobligatorio. Name of the new static mesh asset.
dimensions{x,y,z}Box and plane size on X/Y/Z in centimetres; zero falls back to 100.
radiusnumberRadius of a sphere, cylinder, capsule or cone base; <= 0 falls back to 50. Valor predeterminado 0.0.
heightnumberHeight of a cylinder, cone or the cylindrical part of a capsule; <= 0 falls back to 100. Valor predeterminado 0.0.
majorRadiusnumberMajor radius of a torus. Valor predeterminado 0.0.
minorRadiusnumberMinor (tube) radius of a torus. Valor predeterminado 0.0.
topRadiusnumberTop radius of a cone (0 = a sharp tip). Valor predeterminado 0.0.
stepsintegerGeneric subdivision count (sphere latitude, torus major steps, plane subdivisions). Valor predeterminado 0.
radialStepsintegerRadial subdivisions of a cylinder, capsule or cone. Valor predeterminado 0.
heightStepsintegerVertical subdivisions of a cylinder or cone. Valor predeterminado 0.
cappedbooleanClose the ends of a cylinder or cone. Valor predeterminado true.
stepCountintegerNumber of steps of a staircase. Valor predeterminado 8.
widthnumberWidth of a staircase or ramp. Valor predeterminado 100.0.
collisionbooleanAlso generate simple collision fitted to the result. Valor predeterminado true.
materialstringMaterial assigned to slot 0 of the new asset.
location{x,y,z}Location of the primitive inside the asset.
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_create_torus (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Creates a static mesh asset containing a torus (major radius, minor radius, steps).

ArgumentoTipoDescripción
folderstringobligatorio. Destination content folder.
namestringobligatorio. Name of the new static mesh asset.
dimensions{x,y,z}Box and plane size on X/Y/Z in centimetres; zero falls back to 100.
radiusnumberRadius of a sphere, cylinder, capsule or cone base; <= 0 falls back to 50. Valor predeterminado 0.0.
heightnumberHeight of a cylinder, cone or the cylindrical part of a capsule; <= 0 falls back to 100. Valor predeterminado 0.0.
majorRadiusnumberMajor radius of a torus. Valor predeterminado 0.0.
minorRadiusnumberMinor (tube) radius of a torus. Valor predeterminado 0.0.
topRadiusnumberTop radius of a cone (0 = a sharp tip). Valor predeterminado 0.0.
stepsintegerGeneric subdivision count (sphere latitude, torus major steps, plane subdivisions). Valor predeterminado 0.
radialStepsintegerRadial subdivisions of a cylinder, capsule or cone. Valor predeterminado 0.
heightStepsintegerVertical subdivisions of a cylinder or cone. Valor predeterminado 0.
cappedbooleanClose the ends of a cylinder or cone. Valor predeterminado true.
stepCountintegerNumber of steps of a staircase. Valor predeterminado 8.
widthnumberWidth of a staircase or ramp. Valor predeterminado 100.0.
collisionbooleanAlso generate simple collision fitted to the result. Valor predeterminado true.
materialstringMaterial assigned to slot 0 of the new asset.
location{x,y,z}Location of the primitive inside the asset.
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_fill_holes (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Fills every open boundary loop of a mesh.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh to read.
lodintegerLOD read and written (default 0). Valor predeterminado 0.
inPlacebooleanWrite the result back into the source mesh instead of creating a new asset. Valor predeterminado true.
folderstringDestination folder when inPlace is false.
namestringDestination asset name when inPlace is false.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_flip_normals (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Flips every triangle and normal of a mesh (fixes inside-out geometry).

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh to read.
lodintegerLOD read and written (default 0). Valor predeterminado 0.
inPlacebooleanWrite the result back into the source mesh instead of creating a new asset. Valor predeterminado true.
folderstringDestination folder when inPlace is false.
namestringDestination asset name when inPlace is false.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_generate_collision_from_mesh (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Generates simple collision for a static mesh from its own geometry (boxes, spheres, capsules, convex hulls or minimum-volume shapes).

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
methodstringbox / sphere / capsule / convex / min_volume / swept_hull / level_set.
maxHullsintegerMaximum number of convex hulls. Valor predeterminado 4.
hullTargetFaceCountintegerTarget face count per simplified hull. Valor predeterminado 25.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_info (riesgo 0, UE 5.0+, smoke)​

Whether Geometry Script is available here, plus the operation and primitive names accepted by mesh.gs_pipeline.

Sin argumentos.

Devuelve: available, ops, primitives, engine, message.

mesh.gs_measure (riesgo 0, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Triangle/vertex counts, surface area, volume and bounds of a mesh as seen by Geometry Script.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh to read.
lodintegerLOD read and written (default 0). Valor predeterminado 0.
inPlacebooleanWrite the result back into the source mesh instead of creating a new asset. Valor predeterminado true.
folderstringDestination folder when inPlace is false.
namestringDestination asset name when inPlace is false.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_mirror (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Mirrors the geometry across the X, Y or Z plane through the origin.

ArgumentoTipoDescripción
axisstringx, y or z: the axis the geometry is mirrored across.
weldbooleanWeld the geometry along the mirror plane. Valor predeterminado true.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_pipeline (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Builds a whole prop in one call: a primitive or an existing mesh, an ordered list of operations, and one output asset.

ArgumentoTipoDescripción
meshstringExisting static mesh used as the source; leave empty to start from a primitive.
primitivestringPrimitive to start from when 'mesh' is empty: box / sphere / cylinder / capsule / cone / torus / plane.
dimensions{x,y,z}Size of the starting primitive (box/plane dimensions).
radiusnumberRadius of the starting primitive. Valor predeterminado 0.0.
heightnumberHeight of the starting primitive. Valor predeterminado 0.0.
opsarray of UeaGsOpOrdered list of operations applied to the working mesh.
folderstringDestination folder (required unless inPlace is true).
namestringDestination asset name (required unless inPlace is true).
inPlacebooleanWrite the result back into 'mesh' instead of creating a new asset. Valor predeterminado false.
collisionbooleanAlso generate simple collision for the result. Valor predeterminado false.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_recenter_pivot (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Moves the geometry so the pivot ends up at the bounds centre, the bottom centre, the top centre or the origin.

ArgumentoTipoDescripción
modestringbounds_center / bottom_center / origin / top_center.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_recompute_normals (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Recomputes the normals, optionally splitting them along edges sharper than an angle.

ArgumentoTipoDescripción
angleThresholdnumberSplit the normals along edges sharper than this angle (degrees). Valor predeterminado 60.0.
splitNormalsbooleanCompute split (hard-edge) normals instead of smooth per-vertex normals. Valor predeterminado true.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_remove_small_components (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Removes small disconnected islands below a triangle count, area or volume.

ArgumentoTipoDescripción
minTrianglesintegerRemove connected islands with fewer triangles than this. Valor predeterminado 4.
minAreanumberRemove connected islands with a smaller surface area than this. Valor predeterminado 1.0.
minVolumenumberRemove connected islands with a smaller volume than this. Valor predeterminado 1.0.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_set_material_ids (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Assigns one material ID to every triangle of a mesh.

ArgumentoTipoDescripción
materialIdintegerMaterial ID (material slot index) assigned to every triangle. Valor predeterminado 0.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_simplify (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Simplifies a mesh to a triangle count, a vertex count or a fraction of its triangles.

ArgumentoTipoDescripción
targetTrianglesintegerTarget triangle count; used when > 0. Valor predeterminado 0.
targetVerticesintegerTarget vertex count; used when > 0 and targetTriangles is 0. Valor predeterminado 0.
percentnumberFraction of the current triangles to keep (0-1); used when the counts above are 0. Valor predeterminado 0.5.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_transform (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Translates, rotates and scales the geometry of a mesh (optionally recentring it first).

ArgumentoTipoDescripción
translate{x,y,z}
rotate{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.
recenterbooleanMove the geometry so its bounds are centred on the origin before the transform. Valor predeterminado false.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_uv_planar_projection (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Planar UV projection computed with Geometry Script (works on the dynamic mesh, unlike mesh.generate_planar_uv).

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
channelintegerobligatorio. UV channel the projection is written to.
position{x,y,z}Centre of the projection gizmo in local space.
orientation{x,y,z}Orientation of the projection gizmo as pitch/yaw/roll.
tiling{x,y,z}Tiling on U and V (planar and cylindrical); defaults to 1,1.
size{x,y,z}Size of the projection box (box projection only); defaults to the mesh bounds.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.gs_voxel_morphology (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Voxel morphology: dilate, contract, close or open the mesh by a distance.

ArgumentoTipoDescripción
gridResolutionintegerVoxel grid resolution along the longest axis. Valor predeterminado 64.
windingThresholdnumberWinding threshold used to decide what is inside (solidify only). Valor predeterminado 0.5.
operationstringdilate / contract / close / open (morphology only).
distancenumberOffset distance in centimetres (morphology only). Valor predeterminado 1.0.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_voxel_solidify (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Voxelises a mesh and rebuilds a watertight surface from it (the usual fix for messy CAD geometry).

ArgumentoTipoDescripción
gridResolutionintegerVoxel grid resolution along the longest axis. Valor predeterminado 64.
windingThresholdnumberWinding threshold used to decide what is inside (solidify only). Valor predeterminado 0.5.
operationstringdilate / contract / close / open (morphology only).
distancenumberOffset distance in centimetres (morphology only). Valor predeterminado 1.0.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.gs_weld (riesgo 2, modifica, UE 5.1+, requiere el plugin GeometryScripting, smoke)​

Welds coincident mesh edges within a tolerance (closes cracks left by an import).

ArgumentoTipoDescripción
tolerancenumberDistance tolerance in centimetres. Valor predeterminado 0.01.

Devuelve: mesh, name, triangles, vertices, surfaceArea, volume, boundsMin, boundsMax, message, notes.

mesh.has_vertex_colors (riesgo 0, smoke)​

Whether a LOD of the mesh stores per-vertex colours.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.
lodintegerLOD index (0 = highest detail). Valor predeterminado 0.

Devuelve: mesh, values, message.

mesh.insert_uv_channel (riesgo 2, modifica, smoke)​

Inserts an empty UV channel at a given index, shifting the later channels up.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
channelintegerUV channel index. Valor predeterminado 0.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.list (riesgo 0, smoke)​

Lists static meshes under a folder with optional triangle-count, LOD-count and collision filters. Empty folder lists /Game.

ArgumentoTipoDescripción
folderstringContent folder to search ("/Game" when empty).
nameContainsstringKeep only meshes whose name contains this text.
minTrianglesintegerKeep only meshes with at least this many LOD0 triangles (-1 = no filter). Valor predeterminado -1.
maxTrianglesintegerKeep only meshes with at most this many LOD0 triangles (-1 = no filter). Valor predeterminado -1.
withoutCollisionbooleanKeep only meshes without simple collision. Valor predeterminado false.
lodCountintegerKeep only meshes with exactly this many LODs (-1 = no filter). Valor predeterminado -1.
limitintegerMaximum number of meshes returned. Valor predeterminado 100.

Devuelve: meshes, count, scanned, message.

mesh.list_collision_primitives (riesgo 0, smoke)​

Simple collision primitives of a mesh (same data as mesh.get_collision without the summary fields).

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.list_lod_groups (riesgo 0, smoke)​

LOD group names configured for this project (Engine LOD group settings).

Sin argumentos.

Devuelve: names, count.

mesh.list_materials (riesgo 0, smoke)​

Material slots of the mesh: index, slot name, imported name, material path and UV density.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, materials, count, message.

mesh.list_sections (riesgo 0, smoke)​

Render sections of a LOD: material index, triangle count, collision, shadow casting and ray tracing flags.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.
lodintegerLOD index (0 = highest detail). Valor predeterminado 0.

Devuelve: mesh, sections, count, message.

mesh.list_sockets (riesgo 0, smoke)​

Sockets of the mesh with their relative transforms and tags.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, sockets, count, message.

mesh.list_uv_channels (riesgo 0, smoke)​

UV channels of a LOD with their bounds, whether they leave the 0-1 range and which one is the lightmap channel.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.
lodintegerLOD index (0 = highest detail). Valor predeterminado 0.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.merge (riesgo 3, modifica, requiere mundo, smoke)​

Merges several static meshes into a single new asset (mesh merge utilities, optional material baking). Needs an editor world because the sources are merged through temporary components.

ArgumentoTipoDescripción
meshesarray of stringobligatorio. Static meshes to merge, in order.
folderstringobligatorio. Destination content folder.
namestringobligatorio. Name of the merged asset.
mergeMaterialsbooleanBake the source materials into a single merged material. Valor predeterminado false.
pivotAtOriginbooleanPlace the pivot at the world origin instead of the first mesh's pivot. Valor predeterminado true.
lodSelectionintegerLOD of each source mesh to merge (-1 = use all LODs). Valor predeterminado 0.

Devuelve: mesh, name, folder, message, notes.

mesh.rebuild (riesgo 2, modifica, smoke)​

Rebuilds the render data of the mesh and reports any build errors.

ArgumentoTipoDescripción
meshstringobligatorio.
silentbooleanSuppress the engine's build progress dialog. Valor predeterminado true.

Devuelve: mesh, message, lods, notes.

mesh.remove_all_sockets (riesgo 3, modifica, destructivo, smoke)​

Removes every socket of the mesh.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, sockets, count, message.

mesh.remove_collision (riesgo 3, modifica, destructivo, smoke)​

Removes every simple collision primitive of the mesh.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.remove_collision_primitive (riesgo 3, modifica, smoke)​

Removes one collision primitive by type and index.

ArgumentoTipoDescripción
meshstringobligatorio.
typestringobligatorio. box / sphere / capsule / convex.
indexintegerobligatorio.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.remove_lods (riesgo 3, modifica, smoke)​

Removes every LOD except LOD0.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, message, lods, notes.

mesh.remove_material_slot (riesgo 3, modifica, smoke)​

Removes a material slot. Refused while a section still uses it.

ArgumentoTipoDescripción
meshstringobligatorio.
slotstringobligatorio. Slot index or slot name. Refused when a section still uses the slot.

Devuelve: mesh, materials, count, message.

mesh.remove_socket (riesgo 3, modifica, smoke)​

Removes one socket by name.

ArgumentoTipoDescripción
meshstringobligatorio.
namestringobligatorio.

Devuelve: mesh, sockets, count, message.

mesh.remove_uv_channel (riesgo 3, modifica, smoke)​

Removes one UV channel from a LOD.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
channelintegerUV channel index. Valor predeterminado 0.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.rename (riesgo 3, modifica, smoke)​

Renames or moves a static mesh asset.

ArgumentoTipoDescripción
meshstringobligatorio. Source static mesh asset path or unique name.
folderstringDestination folder (defaults to the source folder).
namestringobligatorio. Name of the new asset.

Devuelve: mesh, name, folder, message, notes.

mesh.rename_material_slot (riesgo 2, modifica, smoke)​

Renames a material slot (the name components use to override the material).

ArgumentoTipoDescripción
meshstringobligatorio.
slotstringobligatorio. Slot index or current slot name.
newNamestringobligatorio.

Devuelve: mesh, materials, count, message.

mesh.report (riesgo 0, smoke)​

Markdown-style summary of a folder's static meshes: totals, budgets and the worst offenders, for a human to read.

ArgumentoTipoDescripción
folderstringobligatorio.
recursivebooleanValor predeterminado true.
limitintegerValor predeterminado 200.
maxTrianglesintegerFlag meshes with more LOD0 triangles than this (<= 0 disables the check). Valor predeterminado 100000.
minLodsintegerFlag meshes with fewer LODs than this (<= 0 disables the check). Valor predeterminado 2.
onlyOffendersbooleanOnly return the flagged meshes. Valor predeterminado false.

Devuelve: report, meshes, totalTriangles, message.

mesh.save (riesgo 2, modifica)​

Saves the mesh package to disk. Not smoke-tested: the self-test must not write assets to disk.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, message, lods, notes.

mesh.set_build_settings (riesgo 2, modifica, smoke)​

Build settings of one LOD (or of every LOD with lod=-1): normals, tangents, lightmap UV generation, degenerates, precision, build scale and distance field.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerLOD to change, or -1 for every LOD. Valor predeterminado 0.
recomputeNormalsstring"true"/"false" to change, empty to leave alone.
recomputeTangentsstring
useMikkTSpacestring
generateLightmapUVsstring
minLightmapResolutionintegerMinimum lightmap resolution used when generating lightmap UVs (-1 = leave). Valor predeterminado -1.
srcLightmapIndexintegerSource UV channel for the generated lightmap UVs (-1 = leave). Valor predeterminado -1.
dstLightmapIndexintegerDestination UV channel for the generated lightmap UVs (-1 = leave). Valor predeterminado -1.
removeDegeneratesstring
buildReversedIndexBufferstring
highPrecisionTangentBasisstring
fullPrecisionUVsstring
buildScalenumberUniform build scale applied to the source geometry (<=0 = leave). Valor predeterminado -1.0.
distanceFieldResolutionScalenumberDistance field resolution scale (<0 = leave). Valor predeterminado -1.0.
distanceFieldTwoSidedstring
rebuildbooleanValor predeterminado true.

Devuelve: mesh, message, lods, notes.

mesh.set_collision_complexity (riesgo 2, modifica, smoke)​

Collision complexity of the mesh (default, simple_and_complex, use_simple_as_complex, use_complex_as_simple).

ArgumentoTipoDescripción
meshstringobligatorio.
complexitystringobligatorio. default / simple_and_complex / use_simple_as_complex / use_complex_as_simple.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.set_collision_json (riesgo 3, modifica)​

Replaces the aggregate collision geometry from the text produced by mesh.get_collision_json. Not smoke-tested: it needs the exact text of a previous mesh.get_collision_json call.

ArgumentoTipoDescripción
meshstringobligatorio.
collisionstringobligatorio. Aggregate geometry text as returned by mesh.get_collision_json.

Devuelve: mesh, collision, primitives, message.

mesh.set_collision_mirrored (riesgo 2, modifica, smoke)​

Whether mirrored collision data is generated for negatively scaled instances.

ArgumentoTipoDescripción
meshstringobligatorio.
mirroredbooleanGenerate mirrored collision data for negatively scaled instances. Valor predeterminado true.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.set_collision_primitive (riesgo 2, modifica, smoke)​

Changes the geometry of one box, sphere or capsule collision primitive.

ArgumentoTipoDescripción
meshstringobligatorio.
typestringobligatorio. box / sphere / capsule. Convex hulls cannot be edited numerically.
indexintegerobligatorio.
center{x,y,z}
rotation{x,y,z}Rotation as pitch/yaw/roll.
extent{x,y,z}Full size on X/Y/Z of a box; (0,0,0) leaves it.
radiusnumberRadius of a sphere or capsule; <= 0 leaves it. Valor predeterminado 0.0.
lengthnumberLength of a capsule; <= 0 leaves it. Valor predeterminado 0.0.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.set_complex_collision_mesh (riesgo 2, modifica, smoke)​

Uses another static mesh as the complex (per-triangle) collision geometry.

ArgumentoTipoDescripción
meshstringobligatorio.
complexCollisionMeshstringStatic mesh whose geometry is used as the complex collision; empty clears it.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.set_cpu_access (riesgo 2, modifica, smoke)​

CPU access to the vertex data and the uniform-sampling data used by Niagara and physics queries.

ArgumentoTipoDescripción
meshstringobligatorio.
allowCpuAccessbooleanKeep the vertex data accessible to the CPU at runtime. Valor predeterminado true.
uniformSamplingbooleanBuild the data needed to sample the mesh surface uniformly. Valor predeterminado false.
gpuUniformSamplingbooleanBuild the GPU-side uniform sampling data (requires uniformSampling). Valor predeterminado false.

Devuelve: mesh, message, lods, notes.

mesh.set_distance_field (riesgo 2, modifica, smoke)​

Mesh distance field generation, resolution scale and self-shadow bias.

ArgumentoTipoDescripción
meshstringobligatorio.
generatebooleanGenerate a mesh distance field. Valor predeterminado true.
resolutionScalenumberDistance field resolution scale (<0 = leave). Valor predeterminado -1.0.
selfShadowBiasnumberSelf-shadow bias (<0 = leave). Valor predeterminado -1.0.
rebuildbooleanValor predeterminado false.

Devuelve: mesh, message, lods, notes.

mesh.set_extended_bounds (riesgo 2, modifica, smoke)​

Extra padding added to the rendered bounds of the mesh.

ArgumentoTipoDescripción
meshstringobligatorio.
positiveBoundsExtension{x,y,z}Extra size added on the +X/+Y/+Z side of the bounds.
negativeBoundsExtension{x,y,z}Extra size added on the -X/-Y/-Z side of the bounds.

Devuelve: mesh, origin, boxExtent, sphereRadius, min, max, positiveBoundsExtension, negativeBoundsExtension, message.

mesh.set_import_settings (riesgo 2, modifica, smoke)​

FBX import settings stored on the mesh, used by the next reimport.

ArgumentoTipoDescripción
meshstringobligatorio.
combineMeshesstring"true"/"false" to change, empty to leave alone.
generateLightmapUVsstring
autoGenerateCollisionstring
oneConvexHullPerUcxstring
normalImportMethodstringComputeNormals / ImportNormals / ImportNormalsAndTangents.
normalGenerationMethodstringBuiltIn / MikkTSpace.
vertexColorImportOptionstringIgnore / Override / Replace.
removeDegeneratesstring
buildReversedIndexBufferstring

Devuelve: mesh, sourceFiles, canReimport, importDataClass, settings, message.

mesh.set_lightmap (riesgo 2, modifica, smoke)​

Lightmap texture resolution and the UV channel that carries the lightmap UVs.

ArgumentoTipoDescripción
meshstringobligatorio.
resolutionintegerLightmap texture resolution in pixels (-1 = leave). Valor predeterminado -1.
coordinateIndexintegerUV channel that carries the lightmap UVs (-1 = leave). Valor predeterminado -1.

Devuelve: mesh, message, lods, notes.

mesh.set_lightmap_uv_channel (riesgo 2, modifica, smoke)​

UV channel that the lighting build reads the lightmap UVs from.

ArgumentoTipoDescripción
meshstringobligatorio.
channelintegerobligatorio. UV channel that carries the lightmap UVs.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.set_lod_count (riesgo 2, modifica, smoke)​

Sets how many LODs the mesh has. New LODs copy LOD0's build settings; extra LODs are dropped.

ArgumentoTipoDescripción
meshstringobligatorio.
countintegerobligatorio. Number of LODs to keep (1-8). Extra LODs copy LOD0's settings.
rebuildbooleanRebuild the render data afterwards (slow but returns accurate statistics). Valor predeterminado true.

Devuelve: mesh, message, lods, notes.

mesh.set_lod_group (riesgo 2, modifica, smoke)​

Assigns a project LOD group (drives LOD count, screen sizes and reduction). "None" clears it.

ArgumentoTipoDescripción
meshstringobligatorio.
groupstringobligatorio. LOD group name from the project settings (see mesh.list_lod_groups); "None" clears it.

Devuelve: mesh, message, lods, notes.

mesh.set_lod_screen_size (riesgo 2, modifica, smoke)​

Screen size (0-1) at which one LOD becomes active.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerobligatorio.
screenSizenumberobligatorio. Screen size (0-1) at which this LOD becomes active.
autoComputebooleanLet the engine compute the LOD screen sizes automatically instead. Valor predeterminado false.

Devuelve: mesh, message, lods, notes.

mesh.set_lod_screen_sizes (riesgo 2, modifica, smoke)​

Screen sizes of every LOD at once, starting at LOD0.

ArgumentoTipoDescripción
meshstringobligatorio.
screenSizesarray of numberobligatorio. One screen size per LOD, starting at LOD0.
autoComputebooleanLet the engine compute the LOD screen sizes automatically instead. Valor predeterminado false.

Devuelve: mesh, message, lods, notes.

mesh.set_material (riesgo 2, modifica, smoke)​

Assigns a material to one slot (slot index or slot name).

ArgumentoTipoDescripción
meshstringobligatorio.
slotstringobligatorio. Slot index ("2") or slot name.
materialstringMaterial or material instance asset path; empty clears the slot.

Devuelve: mesh, materials, count, message.

mesh.set_materials (riesgo 2, modifica, smoke)​

Assigns materials to every slot at once, in slot order.

ArgumentoTipoDescripción
meshstringobligatorio.
materialsarray of stringobligatorio. One material asset path per slot, in slot order.

Devuelve: mesh, materials, count, message.

mesh.set_min_lod (riesgo 2, modifica, smoke)​

Lowest LOD the renderer may use, optionally per platform.

ArgumentoTipoDescripción
meshstringobligatorio.
minLodintegerobligatorio. Lowest LOD index the renderer may use.
platformstringPlatform name for a per-platform override ("Mobile", "Switch"...); empty = default.

Devuelve: mesh, message, lods, notes.

mesh.set_nanite (riesgo 2, modifica, UE 5.0+, smoke)​

Turns Nanite on or off and sets its precision/fallback settings (UE 5.0+; every listed field exists on all 5.x releases).

ArgumentoTipoDescripción
meshstringobligatorio.
enabledbooleanobligatorio. Turn Nanite on or off for this mesh.
positionPrecisionintegerPosition precision exponent; -1000 (the default) leaves the current value. Valor predeterminado -1000.
fallbackPercentTrianglesnumberFallback mesh triangle fraction (0-1, <0 = leave). Valor predeterminado -1.0.
fallbackRelativeErrornumberFallback mesh relative error (<0 = leave). Valor predeterminado -1.0.
keepPercentTrianglesnumberTriangle fraction kept by the Nanite build (0-1, <0 = leave). Valor predeterminado -1.0.
rebuildbooleanValor predeterminado true.

Devuelve: mesh, values, message.

mesh.set_phys_material (riesgo 2, modifica, smoke)​

Physical material of the mesh's body setup.

ArgumentoTipoDescripción
meshstringobligatorio.
physMaterialstringPhysical material asset path; empty clears it.

Devuelve: mesh, summary, primitives, generateMirrored, complexCollisionMesh, message, notes.

mesh.set_ray_tracing (riesgo 2, modifica, smoke)​

Whether the mesh takes part in ray tracing.

ArgumentoTipoDescripción
meshstringobligatorio.
supportbooleanobligatorio. Whether the mesh takes part in ray tracing.

Devuelve: mesh, message, lods, notes.

mesh.set_reduction (riesgo 2, modifica, smoke)​

Reduction settings of one LOD (triangle/vertex percentage, max deviation, welding, hard angle, base LOD).

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerobligatorio.
percentTrianglesnumberFraction of triangles to keep (0-1). Negative leaves the current value. Valor predeterminado -1.0.
percentVerticesnumberFraction of vertices to keep (0-1). Negative leaves the current value. Valor predeterminado -1.0.
maxDeviationnumberMaximum allowed deviation from the source mesh. Negative leaves the current value. Valor predeterminado -1.0.
weldingThresholdnumberWelding threshold in centimetres. Negative leaves the current value. Valor predeterminado -1.0.
hardAnglenumberHard-edge angle threshold in degrees. Negative leaves the current value. Valor predeterminado -1.0.
recalculateNormalsbooleanRecalculate normals after the reduction. Valor predeterminado false.
baseLodintegerLOD used as the source of the reduction (-1 leaves the current value). Valor predeterminado -1.
rebuildbooleanValor predeterminado true.

Devuelve: mesh, message, lods, notes.

mesh.set_section (riesgo 2, modifica, smoke)​

Changes one render section: material slot, collision, shadow casting and ray tracing visibility.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerobligatorio.
sectionintegerobligatorio.
materialIndexintegerMaterial slot index used by the section (-1 = leave). Valor predeterminado -1.
collisionstring"true"/"false" to change, empty to leave alone.
castShadowstring
visibleInRayTracingstring

Devuelve: mesh, sections, count, message.

mesh.set_section_collision_many (riesgo 2, modifica, smoke)​

Turns collision on or off for every render section of a LOD at once.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerLOD whose sections are changed. Valor predeterminado 0.
enabledbooleanCollision flag applied to every section of that LOD. Valor predeterminado true.

Devuelve: mesh, sections, count, message.

mesh.set_socket (riesgo 2, modifica, smoke)​

Changes an existing socket (transform, tag, preview mesh and optionally its name).

ArgumentoTipoDescripción
meshstringobligatorio.
namestringobligatorio. Socket name.
location{x,y,z}
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means "leave alone" on set and (1,1,1) on add.
tagstringFree-form tag stored on the socket.
previewMeshstringStatic mesh shown at the socket in the editor preview.
newNamestringNew socket name (mesh.set_socket only).

Devuelve: mesh, sockets, count, message.

mesh.set_uv_tiling (riesgo 2, modifica, smoke)​

Scales and offsets the UV coordinates of one channel.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerValor predeterminado 0.
channelintegerValor predeterminado 0.
scale{x,y,z}Multiplier applied to U (x) and V (y).
offset{x,y,z}Offset added to U (x) and V (y) after scaling.

Devuelve: mesh, lod, count, lightmapCoordinateIndex, channels, message, notes.

mesh.sk_add_socket (riesgo 2, modifica)​

Adds a socket attached to a bone. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
namestringobligatorio.
bonestringBone the socket is attached to.
location{x,y,z}
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.
newNamestringNew socket name (mesh.sk_set_socket only).

Devuelve: mesh, sockets, count, message.

mesh.sk_check_skeleton_compatible (riesgo 0)​

Whether a skeleton is compatible with the mesh's bone hierarchy. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
skeletonstringobligatorio. Skeleton asset path.
checkCompatibilitybooleanRefuse the change when the skeleton is not compatible with the mesh. Valor predeterminado true.

Devuelve: mesh, message, lods, notes.

mesh.sk_create_physics_asset (riesgo 3, modifica)​

Creates a physics asset from the mesh's bones (geometry type, minimum bone size, constraints). Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
folderstringobligatorio. Destination content folder.
namestringobligatorio. Name of the new physics asset.
minBoneSizenumberBones smaller than this are skipped. Valor predeterminado 20.0.
geomTypestringsphere / box / sphyl / capsule / single_convex / multi_convex.
bodyForAllbooleanCreate a body for every bone, even the small ones. Valor predeterminado false.
createConstraintsbooleanCreate constraints between the bodies. Valor predeterminado true.
walkPastSmallbooleanKeep walking past bones that are too small instead of stopping. Valor predeterminado true.
assignbooleanAlso assign the new asset to the mesh. Valor predeterminado true.

Devuelve: mesh, message, lods, notes.

mesh.sk_get_bone_transform (riesgo 0)​

Reference transform of one bone, in component space or relative to its parent. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
bonestringobligatorio.
spacestringref (component space, default) or local (relative to the parent bone).

Devuelve: mesh, bone, space, location, rotation, scale, message.

mesh.sk_get_bounds (riesgo 0)​

Imported bounds of a skeletal mesh plus its bounds extensions. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio. Skeletal mesh asset path or unique name.

Devuelve: mesh, origin, boxExtent, sphereRadius, positiveBoundsExtension, negativeBoundsExtension, message.

mesh.sk_get_info (riesgo 0)​

Everything about a skeletal mesh: skeleton, LODs, materials, sockets, bone and morph target counts, physics assets, bounds and cloth. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio. Skeletal mesh asset path or unique name.

Devuelve: mesh, name, skeleton, lodCount, lods, materials, sockets, boneCount, morphTargetCount, physicsAsset, shadowPhysicsAsset, lodSettings, perPolyCollision, minLod, boundsOrigin, boundsExtent, clothingAssets, message.

mesh.sk_get_stats (riesgo 0, smoke)​

Skeletal mesh audit of a folder: meshes without a physics asset, with a single LOD, bone and morph target totals.

ArgumentoTipoDescripción
folderstringContent folder to search ("/Game" when empty).
skeletonstringKeep only meshes bound to this skeleton.
limitintegerMaximum number of meshes returned. Valor predeterminado 100.

Devuelve: meshes, withoutPhysicsAsset, singleLod, totalBones, totalMorphTargets, offenders, message.

mesh.sk_list (riesgo 0, smoke)​

Lists skeletal meshes under a folder, optionally filtered by skeleton.

ArgumentoTipoDescripción
folderstringContent folder to search ("/Game" when empty).
skeletonstringKeep only meshes bound to this skeleton.
limitintegerMaximum number of meshes returned. Valor predeterminado 100.

Devuelve: meshes, count, message.

mesh.sk_list_bones (riesgo 0)​

Bones of the reference skeleton with their parent, depth and child count. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
nameContainsstringKeep only bones whose name contains this text.
depthintegerMaximum hierarchy depth returned (-1 = no limit). Valor predeterminado -1.
limitintegerMaximum number of bones returned. Valor predeterminado 200.

Devuelve: mesh, bones, count, total, message.

mesh.sk_list_lods (riesgo 0)​

LODs of a skeletal mesh with triangle/vertex counts, screen size, hysteresis and reduction. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio. Skeletal mesh asset path or unique name.

Devuelve: mesh, message, lods, notes.

mesh.sk_list_materials (riesgo 0)​

Material slots of a skeletal mesh. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio. Skeletal mesh asset path or unique name.

Devuelve: mesh, materials, count, message.

mesh.sk_list_morph_targets (riesgo 0)​

Morph target names of a skeletal mesh. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio. Skeletal mesh asset path or unique name.

Devuelve: mesh, morphTargets, count, message.

mesh.sk_list_sockets (riesgo 0)​

Sockets stored on the mesh (not the ones inherited from the skeleton). Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio. Skeletal mesh asset path or unique name.

Devuelve: mesh, sockets, count, message.

mesh.sk_regenerate_lods (riesgo 3, modifica)​

Regenerates the LOD chain by reduction (UE 5 uses the skeletal mesh editor subsystem). Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
countintegerobligatorio. Total number of LODs, including LOD0.
percentsarray of numberTriangle fraction per generated LOD (default 0.5, 0.25, 0.125...).
regenerateEvenIfImportedbooleanRegenerate LODs even when they were imported rather than generated. Valor predeterminado false.

Devuelve: mesh, message, lods, notes.

mesh.sk_remove_lods (riesgo 3, modifica, destructivo)​

Removes LODs (by index, or every LOD except LOD0). Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
lodsarray of integerLOD indices to remove; empty removes every LOD except LOD0.

Devuelve: mesh, message, lods, notes.

mesh.sk_remove_socket (riesgo 3, modifica)​

Removes a socket by name. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
namestringobligatorio.

Devuelve: mesh, sockets, count, message.

mesh.sk_rename_material_slot (riesgo 2, modifica)​

Renames a material slot. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
slotstringobligatorio.
newNamestringobligatorio.

Devuelve: mesh, materials, count, message.

mesh.sk_set_bounds_extension (riesgo 2, modifica)​

Extra padding added to the rendered bounds of a skeletal mesh. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
positiveBoundsExtension{x,y,z}
negativeBoundsExtension{x,y,z}

Devuelve: mesh, origin, boxExtent, sphereRadius, positiveBoundsExtension, negativeBoundsExtension, message.

mesh.sk_set_lod_hysteresis (riesgo 2, modifica)​

LOD hysteresis (the delay that stops a LOD from flickering). Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerobligatorio.
valuenumberobligatorio. Screen size (0-1) or LOD hysteresis, depending on the tool.

Devuelve: mesh, message, lods, notes.

mesh.sk_set_lod_screen_size (riesgo 2, modifica)​

Screen size at which a LOD becomes active. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerobligatorio.
valuenumberobligatorio. Screen size (0-1) or LOD hysteresis, depending on the tool.

Devuelve: mesh, message, lods, notes.

mesh.sk_set_lod_settings_asset (riesgo 2, modifica)​

Assigns a SkeletalMeshLODSettings asset that drives the LOD chain. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
assetstringAsset path; empty clears the reference.

Devuelve: mesh, message, lods, notes.

mesh.sk_set_material (riesgo 2, modifica)​

Assigns a material to one slot. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
slotstringobligatorio. Slot index or slot name.
materialstringMaterial asset path; empty clears the slot.

Devuelve: mesh, materials, count, message.

mesh.sk_set_materials (riesgo 2, modifica)​

Assigns materials to every slot at once. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
materialsarray of stringobligatorio. One material asset path per slot, in slot order.

Devuelve: mesh, materials, count, message.

mesh.sk_set_min_lod (riesgo 2, modifica)​

Lowest LOD the renderer may use, optionally per platform. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
minLodintegerobligatorio.
platformstringPlatform name for a per-platform override; empty = default.

Devuelve: mesh, message, lods, notes.

mesh.sk_set_per_poly_collision (riesgo 2, modifica)​

Turns per-polygon collision on or off (expensive; only for meshes that need exact traces). Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
enabledbooleanValue of the flag. Valor predeterminado true.

Devuelve: mesh, message, lods, notes.

mesh.sk_set_physics_asset (riesgo 2, modifica)​

Assigns (or clears) the physics asset of a skeletal mesh. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
physicsAssetstringPhysics asset path; empty clears it.

Devuelve: mesh, message, lods, notes.

mesh.sk_set_reduction (riesgo 2, modifica)​

Reduction settings of one LOD (triangle/vertex percentage, deviation, bones to remove). Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
lodintegerobligatorio.
percentTrianglesnumberFraction of triangles to keep (0-1); negative leaves the current value. Valor predeterminado -1.0.
percentVerticesnumberFraction of vertices to keep (0-1); negative leaves the current value. Valor predeterminado -1.0.
maxDeviationnumberMaximum deviation percentage; negative leaves the current value. Valor predeterminado -1.0.
bonesToRemovearray of stringBones removed at this LOD.
baseLodintegerBase LOD the reduction reads from; negative leaves the current value. Valor predeterminado -1.

Devuelve: mesh, message, lods, notes.

mesh.sk_set_shadow_physics_asset (riesgo 2, modifica)​

Assigns (or clears) the cheaper physics asset used for shadow computations. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
physicsAssetstringPhysics asset path; empty clears it.

Devuelve: mesh, message, lods, notes.

mesh.sk_set_skeleton (riesgo 3, modifica)​

Binds the mesh to a skeleton, optionally refusing an incompatible one. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
skeletonstringobligatorio. Skeleton asset path.
checkCompatibilitybooleanRefuse the change when the skeleton is not compatible with the mesh. Valor predeterminado true.

Devuelve: mesh, message, lods, notes.

mesh.sk_set_socket (riesgo 2, modifica)​

Changes an existing socket (bone, transform, name). Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio.
namestringobligatorio.
bonestringBone the socket is attached to.
location{x,y,z}
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.
newNamestringNew socket name (mesh.sk_set_socket only).

Devuelve: mesh, sockets, count, message.

mesh.sk_validate (riesgo 0)​

Sanity check of a skeletal mesh: missing skeleton or physics asset, LOD chain, empty material slots. Not smoke-tested: no skeletal mesh ships in engine content.

ArgumentoTipoDescripción
meshstringobligatorio. Skeletal mesh asset path or unique name.

Devuelve: mesh, errors, warnings, valid, message.

mesh.uv_stats (riesgo 0, smoke)​

UV audit of a folder: meshes with a single UV channel, without generated lightmap UVs or using channel 0 as the lightmap.

ArgumentoTipoDescripción
folderstringobligatorio. Content folder to scan.
limitintegerMaximum number of meshes inspected. Valor predeterminado 200.

Devuelve: meshes, withoutLightmapUvs, lightmapOnChannelZero, singleUvChannel, offenders, message.

mesh.validate (riesgo 0, smoke)​

Sanity check of a mesh: degenerate LOD chain, missing collision, missing lightmap UVs, empty material slots and Nanite/collision mismatches.

ArgumentoTipoDescripción
meshstringobligatorio. Static mesh asset path or unique asset name.

Devuelve: mesh, errors, warnings, valid, message.