Skip to content

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 instances
  • SetAnimationPlayRate: Control playback speed per instance
  • PauseAnimation / ResumeAnimation: Pause and resume individual instances
  • SetAnimationPosition: Jump to specific animation times per instance
  • StopAnimation: Stop animations on specific instances

Batch Animation Operations

  • BatchUpdateInstancesTransforms: Efficiently update multiple instance transforms
  • BatchUpdateInstancesData: Bulk update instance animation data
  • ChangeInstanceList: Switch instances between different animation lists

Animation List Management

  • GetInstancesInList: Query which instances are using specific animation lists
  • SetInstanceAnimListData / 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