VA Instanced Mesh Component
The VA Instanced Mesh Component provides efficient rendering and animation control for multiple instances of vertex-animated meshes. This component is essential for crowd scenarios, repeated environmental elements, and any situation requiring many animated meshes with optimized performance.
Component Types
The plugin provides three distinct instanced mesh components for different use cases:
UVAInstancedMeshComponent
Basic instanced mesh component that inherits from
UInstancedStaticMeshComponent
. Best for simple multi-instance scenarios where you need basic instancing without advanced spatial organization.
UVAHierarchicalInstancedMeshComponent
Advanced hierarchical version that inherits from
UHierarchicalInstancedStaticMeshComponent
. Provides spatial optimization for large numbers of instances through hierarchical organization. Use this for performance-critical scenarios with hundreds or thousands of instances.
UVACrowdInstancedComponent
Internal crowd system component that is automatically generated by the Crowd Tools when painting instances in Crowd Editor Mode. This component is not directly accessible in Blueprints - instead, it's created and managed behind the scenes when you use the crowd painting tools. Includes specialized features for crowd management, spatial queries, and editor integration.
Core Properties
Each VA Instanced Mesh Component includes these essential properties:
- Vertex Animation Asset: The VA Asset Collection containing mesh and animation data
- Vertex Animation Mesh Index: Which mesh to use from the asset collection (for multi-mesh collections)
- Custom Data Floats Hash: Read-only validation hash for custom data configurations
Animation Sub-Components
The VA Instanced Mesh Component uses a modular architecture with specialized sub-components:
- Animation Lists Collection: Manages multiple animation lists for complex behaviors
- Animation Mode Manager: Controls animation modes (Single vs AnimList)
- Animation Player: Handles the actual animation playback
- Instance Data Stores: Manage both persistent and runtime animation data per instance
Instance Data Management
The component uses a sophisticated dual data store system:
Persistent Data Store
Saves instance-specific animation states that persist across editor sessions and level reloads. This includes saved animation assignments and custom animation parameters.
Transient Data Store
Manages runtime-only instance data for performance optimization. This data is recreated each session and doesn't persist to disk.
Per-Instance Data Access
Each instance can have individual animation settings, custom data values, and animation states managed independently through the data store system.
Per-Instance Animation Control
Unlike basic static mesh components, VA Instanced Mesh Components provide granular per-instance animation control:
Individual Animation Functions
PlayAnimation
: Start specific animations on selected instancesSetAnimationPlayRate
: Control playback speed per instancePauseAnimation
/ResumeAnimation
: Pause and resume individual instancesSetAnimationPosition
: Jump to specific animation times per instanceStopAnimation
: Stop animations on specific instances
Batch Animation Operations
BatchUpdateInstancesTransforms
: Efficiently update multiple instance transformsBatchUpdateInstancesData
: Bulk update instance animation dataChangeInstanceList
: Switch instances between different animation lists
Animation List Management
GetInstancesInList
: Query which instances are using specific animation listsSetInstanceAnimListData
/GetInstanceAnimListData
: Manage per-instance animation list data
Performance Optimizations
Efficient Instance Removal
The component uses
SetRemoveSwap()
for optimized instance removal that maintains performance when dynamically adding/removing instances from large collections.
LOD Support
When not using Nanite-enabled VA Asset Collections, the component supports automatic LOD switching based on distance for optimal performance with large instance counts.
Nanite Integration
For Nanite-enabled assets, includes
ExtraWPONaniteAllowance
property for world position offset compatibility with Nanite virtualized geometry.
See Also
- Getting Started - Understand how components fit into the overall process
- Crowd Tools - Tools for placing and managing crowd instances
- VA Mesh Component - For single instance usage
- Animation Control - Understanding animation modes and control
- Custom Animation Lists - Create custom animation behaviors
- VA Asset Collection - The asset type used by this component