Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
MeshInstance3D
Eredita: GeometryInstance3D < VisualInstance3D < Node3D < Node < Object
Ereditato da: SoftBody3D
Nodo che istanzia delle mesh in uno scenario.
Descrizione
MeshInstance3D è un nodo che prende una risorsa Mesh e la aggiunge allo scenario attuale creandone un'istanza. Questa è la classe usata più spesso per il rendering della geometria 3D e si può utilizzare per creare un'istanza di una singola Mesh in molti posti. Ciò consente di riutilizzare la geometria, risparmiando così sulle risorse. Quando è necessario istanziare una Mesh più di migliaia di volte in prossimità, considerare invece l'utilizzo di una MultiMesh in una MultiMeshInstance3D.
Tutorial
Proprietà
|
||
Metodi
bake_mesh_from_current_blend_shape_mix(existing: ArrayMesh = null) |
|
bake_mesh_from_current_skeleton_pose(existing: ArrayMesh = null) |
|
void |
create_convex_collision(clean: bool = true, simplify: bool = false) |
void |
|
void |
create_multiple_convex_collisions(settings: MeshConvexDecompositionSettings = null) |
void |
|
get_active_material(surface: int) const |
|
get_blend_shape_count() const |
|
get_blend_shape_value(blend_shape_idx: int) const |
|
get_skin_reference() const |
|
get_surface_override_material(surface: int) const |
|
void |
set_blend_shape_value(blend_shape_idx: int, value: float) |
void |
set_surface_override_material(surface: int, material: Material) |
Descrizioni delle proprietà
La risorsa Mesh per l'istanza.
NodePath skeleton = NodePath("") 🔗
NodePath to the Skeleton3D associated with the instance.
Note: The default value of this property has changed in Godot 4.6. Enable ProjectSettings.animation/compatibility/default_parent_skeleton_in_mesh_instance_3d if the old behavior is needed for compatibility.
La Skin utilizzata da questa istanza.
Descrizioni dei metodi
ArrayMesh bake_mesh_from_current_blend_shape_mix(existing: ArrayMesh = null) 🔗
Esegue uno snapshot dall'ArrayMesh attuale con tutte le forme di fusione applicate in base ai loro pesi attuali e lo elabora nella mesh existing fornita. Se non è fornita alcuna mesh existing, viene creato, elaborato e restituito un nuovo ArrayMesh. I materiali della superficie della mesh non vengono copiati.
Prestazioni: I dati della Mesh devono essere ricevuti dalla GPU, bloccando il RenderingServer nel processo.
ArrayMesh bake_mesh_from_current_skeleton_pose(existing: ArrayMesh = null) 🔗
Esegue uno snapshot della posa attuale dello scheletro animato della mesh con skin e la elabora nella mesh existing. Se non è fornita alcuna mesh existing, viene creato, elaborato e restituito un nuovo ArrayMesh. È necessario uno scheletro con una skin registrata per poter funzionare. Le forme di fusione sono ignorate. I materiali della superficie della mesh non vengono copiati.
Prestazioni: I dati della Mesh devono essere ricevuti dalla GPU, bloccando il RenderingServer nel processo.
void create_convex_collision(clean: bool = true, simplify: bool = false) 🔗
Questa funzione di supporto crea un nodo StaticBody3D figlio con una forma di collisione ConvexPolygonShape3D calcolata dalla geometria della mesh. È utilizzato principalmente per i test.
Se clean è true (predefinito), i vertici duplicati e interni sono rimossi automaticamente. Puoi impostarlo su false per rendere il processo più veloce se non necessario.
Se simplify è true, la geometria può essere ulteriormente semplificata per ridurre il numero di vertici. Disabilitato per impostazione predefinita.
void create_debug_tangents() 🔗
Questa funzione di supporto crea un nodo MeshInstance3D figlio con gizmo su ogni vertice calcolati dalla geometria della mesh. È usato principalmente per i test.
void create_multiple_convex_collisions(settings: MeshConvexDecompositionSettings = null) 🔗
Questa funzione di supporto crea un nodo StaticBody3D figlio con più forme di collisione ConvexPolygonShape3D calcolate dalla geometria della mesh tramite scomposizione convessa. L'operazione di scomposizione convessa può essere controllata con parametri settings opzionali.
void create_trimesh_collision() 🔗
Questa funzione di supporto crea un nodo StaticBody3D figlio con una forma di collisione ConcavePolygonShape3D calcolata dalla geometria della mesh. È utilizzato principalmente per i test.
int find_blend_shape_by_name(name: StringName) 🔗
Restituisce l'indice della forma di fusione con il nome name. Restituisce -1 se non esiste alcuna forma di fusione con questo nome, incluso quando mesh è null.
Material get_active_material(surface: int) const 🔗
Restituisce il Material che sarà utilizzato dalla Mesh durante il disegno. Questo può restituire GeometryInstance3D.material_override, il Material di sostituzione della superficie definito in questo MeshInstance3D o il Material di superficie definito nella mesh. Ad esempio, se GeometryInstance3D.material_override è utilizzato, tutte le superfici restituiranno il materiale sostitutivo.
Restituisce null se nessun materiale è attivo, incluso quando mesh è null.
int get_blend_shape_count() const 🔗
Restituisce il numero di forme di fusione disponibili. Produce un errore se mesh è null.
float get_blend_shape_value(blend_shape_idx: int) const 🔗
Restituisce il valore della forma di fusione all'indice blend_shape_idx. Restituisce 0.0 e produce un errore se mesh è null o non ha una forma di fusione a quell'indice.
SkinReference get_skin_reference() const 🔗
Restituisce lo SkinReference interno contenente il RID dello scheletro associato a questo RID. Vedi anche Resource.get_rid(), SkinReference.get_skeleton() e RenderingServer.instance_attach_skeleton().
Material get_surface_override_material(surface: int) const 🔗
Restituisce il Material di sostituzione per la superfice surface specificata della risorsa Mesh. Vedi anche get_surface_override_material_count().
Nota: Questo restituisce il Material associato alle proprietà di Sostituzione del materiale di superficie nel MeshInstance3D, non il materiale all'interno della risorsa Mesh. Per ottenere il materiale all'interno della risorsa Mesh, utilizza invece Mesh.surface_get_material().
int get_surface_override_material_count() const 🔗
Restituisce il numero di materiali sostitutivi di superfice. Questo è equivalente a Mesh.get_surface_count(). Vedi anche get_surface_override_material().
void set_blend_shape_value(blend_shape_idx: int, value: float) 🔗
Imposta il valore della forma di fusione all'indice blend_shape_idx su value. Genera un errore se mesh è null o non ha una forma di fusione in quell'indice.
void set_surface_override_material(surface: int, material: Material) 🔗
Imposta la sostituzione del material per la superfice surface della risorsa Mesh. Questo materiale è associato a questa MeshInstance3D anziché alla mesh.
Nota: Questo assegna il Material associato alle proprietà Sostituzioni del materiale di superficie nella MeshInstance3D, non il materiale all'interno della risorsa Mesh. Per impostare il materiale all'interno della risorsa Mesh, usa invece Mesh.surface_get_material().