<?xml version="1.0" encoding="UTF-8" ?> <class name="MeshInstance3D" inherits="GeometryInstance3D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd"> <brief_description> Node that instances meshes into a scenario. </brief_description> <description> MeshInstance3D is a node that takes a [Mesh] resource and adds it to the current scenario by creating an instance of it. This is the class most often used render 3D geometry and can be used to instance a single [Mesh] in many places. This allows reuse of geometry which can save on resources. When a [Mesh] has to be instantiated more than thousands of times at close proximity, consider using a [MultiMesh] in a [MultiMeshInstance3D] instead. </description> <tutorials> <link title="3D Material Testers Demo">https://godotengine.org/asset-library/asset/123</link> <link title="3D Kinematic Character Demo">https://godotengine.org/asset-library/asset/126</link> <link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link> <link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link> </tutorials> <methods> <method name="create_convex_collision"> <return type="void" /> <argument index="0" name="clean" type="bool" default="true" /> <argument index="1" name="simplify" type="bool" default="false" /> <description> This helper creates a [StaticBody3D] child node with a [ConvexPolygonShape3D] collision shape calculated from the mesh geometry. It's mainly used for testing. If [code]clean[/code] is [code]true[/code] (default), duplicate and interior vertices are removed automatically. You can set it to [code]false[/code] to make the process faster if not needed. If [code]simplify[/code] is [code]true[/code], the geometry can be further simplified to reduce the amount of vertices. Disabled by default. </description> </method> <method name="create_debug_tangents"> <return type="void" /> <description> This helper creates a [MeshInstance3D] child node with gizmos at every vertex calculated from the mesh geometry. It's mainly used for testing. </description> </method> <method name="create_multiple_convex_collisions"> <return type="void" /> <description> This helper creates a [StaticBody3D] child node with multiple [ConvexPolygonShape3D] collision shapes calculated from the mesh geometry via convex decomposition. It's mainly used for testing. </description> </method> <method name="create_trimesh_collision"> <return type="void" /> <description> This helper creates a [StaticBody3D] child node with a [ConcavePolygonShape3D] collision shape calculated from the mesh geometry. It's mainly used for testing. </description> </method> <method name="find_blend_shape_by_name"> <return type="int" /> <argument index="0" name="name" type="StringName" /> <description> </description> </method> <method name="get_active_material" qualifiers="const"> <return type="Material" /> <argument index="0" name="surface" type="int" /> <description> Returns the [Material] that will be used by the [Mesh] when drawing. This can return the [member GeometryInstance3D.material_override], the surface override [Material] defined in this [MeshInstance3D], or the surface [Material] defined in the [Mesh]. For example, if [member GeometryInstance3D.material_override] is used, all surfaces will return the override material. </description> </method> <method name="get_blend_shape_count" qualifiers="const"> <return type="int" /> <description> </description> </method> <method name="get_blend_shape_value" qualifiers="const"> <return type="float" /> <argument index="0" name="blend_shape_idx" type="int" /> <description> </description> </method> <method name="get_surface_override_material" qualifiers="const"> <return type="Material" /> <argument index="0" name="surface" type="int" /> <description> Returns the override [Material] for the specified surface of the [Mesh] resource. </description> </method> <method name="get_surface_override_material_count" qualifiers="const"> <return type="int" /> <description> Returns the number of surface override materials. This is equivalent to [method Mesh.get_surface_count]. </description> </method> <method name="set_blend_shape_value"> <return type="void" /> <argument index="0" name="blend_shape_idx" type="int" /> <argument index="1" name="value" type="float" /> <description> </description> </method> <method name="set_surface_override_material"> <return type="void" /> <argument index="0" name="surface" type="int" /> <argument index="1" name="material" type="Material" /> <description> Sets the override [Material] for the specified surface of the [Mesh] resource. This material is associated with this [MeshInstance3D] rather than with the [Mesh] resource. </description> </method> </methods> <members> <member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh"> The [Mesh] resource for the instance. </member> <member name="skeleton" type="NodePath" setter="set_skeleton_path" getter="get_skeleton_path" default="NodePath("..")"> [NodePath] to the [Skeleton3D] associated with the instance. </member> <member name="skin" type="Skin" setter="set_skin" getter="get_skin"> Sets the skin to be used by this instance. </member> </members> </class>