Component:SkinnedMeshRenderer: Difference between revisions

From Resonite Wiki
m Add to Renderer Category
fix table for auto process
 
(2 intermediate revisions by 2 users not shown)
Line 12: Line 12:
== Usage == <!--T:2-->
== Usage == <!--T:2-->
{{Table ComponentFields
{{Table ComponentFields
|Mesh|Mesh| The mesh to be rendered. Can be a [[StaticMesh (Component)|StaticMesh]] or a [[:Category:Components:Assets:Procedural Meshes|Procedural Mesh]]
|Mesh|{{RootFieldType|AssetRef`1|[[Type:Mesh|Mesh]]}}|TypeAdv0=true| The mesh to be rendered. Can be a [[StaticMesh (Component)|StaticMesh]] or a [[:Category:Components:Assets:Procedural Meshes|Procedural Mesh]]
|Materials|Material| A list of materials to be applied to the mesh
|Materials|{{RootFieldType|SyncAssetList`1|[[Type:Material|Material]]}}|TypeAdv1=true| A list of materials to be applied to the mesh
|MaterialPropertyBlocks|MaterialPropertyBlock|  
|MaterialPropertyBlocks|{{RootFieldType|SyncAssetList`1|[[Type:MaterialPropertyBlock|MaterialPropertyBlock]]}}|TypeAdv2=true|
|ShadowCastMode|ShadowCastMode| How this object will cast shadows onto the world, or if it <i>only</i> draws a shadow.
|ShadowCastMode|ShadowCastMode| How this object will cast shadows onto the world, or if it <i>only</i> draws a shadow.
|SortingOrder|Int|  
|MotionVectorMode|MotionVectorMode|
|SortingOrder|Int|
|BoundsComputeMethod|SkinnedBounds| How the bounds of this mesh will be calculated. Should be left as ''Static'' if possible, for performance reasons.
|BoundsComputeMethod|SkinnedBounds| How the bounds of this mesh will be calculated. Should be left as ''Static'' if possible, for performance reasons.
|ProxyBoundsSource|SkinnedMeshRenderer|  
|ProxyBoundsSource|'''[[Component:SkinnedMeshRenderer|SkinnedMeshRenderer]]'''|TypeAdv7=true|
|Bones|Slot| ''Automatically Assigned'' &mdash; List of bones present in this mesh
|ExplicitLocalBounds|BoundingBox|
|BlendShapeWeights|Float| ''Automatically Assigned'' &mdash; List of blendshapes present in this mesh, and their respective weights.
|Bones|{{RootFieldType|SyncRefList`1|[[Type:Slot|Slot]]}}|TypeAdv9=true| ''Automatically Assigned'' &mdash; List of bones present in this mesh
|BlendShapeWeights|{{RootFieldType|SyncFieldList`1|[[Type:Float|Float]]}}|TypeAdv10=true| ''Automatically Assigned'' &mdash; List of blendshapes present in this mesh, and their respective weights.
}}
}}
== Behavior ==
== Behavior ==
Line 31: Line 33:


<!--T:5-->
<!--T:5-->
{| class="wikitable" style="font-size:10pt;"
{{Table ComponentTriggers
! colspan="2" style="background: lightblue; font-size:10pt;" | Custom UI Elements
|SplitSubmeshes()|null|Will split this mesh into additional submeshes, each having only one material
|- style="font-size:10pt; text-align:center; font-weight:bold;"
|MergeByMaterial()|null|Will merge all submeshes that use the same material
| Name
|SeparateOutBlendshapes()|null|Any part of the mesh that isn't animated by a [[Blendshape]] will be separated into a submesh
| Description
|StripEmptyBlendshapes()|null|Blendshapes that don't animate any vertices will be removed from the mesh
|-
|StripEmptyBones()|null|Bones that aren't weighted to any vertices will be removed from the mesh
| Split into separate meshes by material
|VisualizeBoneBounds()|null|Shows the bounding boxes for all of the bones in this mesh
| Will split this mesh into additional submeshes, each having only one material
|VisualizeApproximateBoneBounds()|null|
|-
|ClearBoundsVisuals()|null|Hides the bounding boxes for the bones in this mesh.
| Merge submeshes with same material
}}
| Will merge all submeshes that use the same material
|-
| Separate parts of mesh unaffected by blendshapes
| Any part of the mesh that isn't animated by a [[Blendshape]] will be separated into a submesh
|-
| Strip empty blendshapes
| Blendshapes that don't animate any vertices will be removed from the mesh
|-
| Strip empty bones
| Bones that aren't weighted to any vertices will be removed from the mesh
|-
| Visualize bone bounding boxes
| Shows the bounding boxes for all of the bones in this mesh
|-
| Visualize approximate merged bone sphere bounds
|  
|-
| Remove bone bounding box visuals
| Hides the bounding boxes for the bones in this mesh.
|-
|}


== Examples == <!--T:6-->
== Examples == <!--T:6-->
Line 67: Line 48:
== Related Components == <!--T:7-->
== Related Components == <!--T:7-->
</translate>
</translate>
[[Category:Components{{#translation:}}|SkinnedMeshRenderer (Component){{#translation:}}]]
[[Category:Components{{#translation:}}|Skinned Mesh Renderer]]
[[Category:Components:Rendering{{#translation:}}|SkinnedMeshRenderer (Component){{#translation:}}]]
[[Category:Components:Rendering{{#translation:}}|Skinned Mesh Renderer]]
[[Category:Renderer]]
[[Category:Renderer]]

Latest revision as of 20:25, 5 November 2024


This article or section is a Stub. You can help the Resonite Wiki by expanding it.


Component image 
SkinnedMeshRenderer component as seen in the Scene Inspector

Intoduction

The SkinnedMeshRenderer component is used for rendering animated/dynamic 3D meshes in the world, and applying materials to that mesh.


Usage

Fields
Name Type Description
persistent Bool Determines whether or not this item will be saved to the server.
UpdateOrder Int Controls the order in which this component is updated.
Enabled Bool Controls whether or not this component is enabled.
Mesh Mesh The mesh to be rendered. Can be a StaticMesh or a Procedural Mesh
Materials list of Material A list of materials to be applied to the mesh
MaterialPropertyBlocks list of MaterialPropertyBlock
ShadowCastMode ShadowCastMode How this object will cast shadows onto the world, or if it only draws a shadow.
MotionVectorMode MotionVectorMode
SortingOrder Int
BoundsComputeMethod SkinnedBounds How the bounds of this mesh will be calculated. Should be left as Static if possible, for performance reasons.
ProxyBoundsSource SkinnedMeshRenderer
ExplicitLocalBounds BoundingBox
Bones list of Slot Automatically Assigned — List of bones present in this mesh
BlendShapeWeights direct SyncFieldList`1<Float> Automatically Assigned — List of blendshapes present in this mesh, and their respective weights.

Behavior

While it can be used for rendering static meshes, it is not recommended as there is a slight performance penalty for using SkinnedMeshRenderer, even if the animation features aren't used — Please try to use MeshRenderer where possible.

Special Functions

Triggers
Name Arguments Description
SplitSubmeshes() null Will split this mesh into additional submeshes, each having only one material
MergeByMaterial() null Will merge all submeshes that use the same material
SeparateOutBlendshapes() null Any part of the mesh that isn't animated by a Blendshape will be separated into a submesh
StripEmptyBlendshapes() null Blendshapes that don't animate any vertices will be removed from the mesh
StripEmptyBones() null Bones that aren't weighted to any vertices will be removed from the mesh
VisualizeBoneBounds() null Shows the bounding boxes for all of the bones in this mesh
VisualizeApproximateBoneBounds() null
ClearBoundsVisuals() null Hides the bounding boxes for the bones in this mesh.

Examples

Related Components