
説明
The Procedural Instance Spawner is made to enrich game environments through procedural spawning of instanced static meshes, at runtime or in editor.
(All vegetation, rocks and debris in the above pictures where spawned in runtime using the Procedural Instance Spawner.)
Utilizes background threads to minimize performance impact and is fully deterministic.
A custom system for generating collision only where and when needed ensures smooth gameplay in large and detailed worlds.
Includes Blueprint functions for removal of spawned instances in runtime.
Functionality for writing and reading any data to instances in Blueprint with possibility to have float variables directly accessible in materials as Per Instance Custom Data floats.
Video resources:
Video tutorial - Using the Smart Collision System
Environment showcase video 2 - Large spruce forest
Timelapse of creating a forest environment using the Procedural Instance Spawner plugin
Video tutorial - Get started using the plugin
Video on how to use Per Instance Custom Data is coming!
Written Documentation
Features:
Runtime spawning
Utilizes background threads
Hierarchical synchronization, enabling complex worlds
Highly optimized collision generation, allowing for smooth performance in large, detailed worlds
Support for Large World Coordinates
Accurate collision and proximity tests
Filter spawning by object types to spawn on, object types to spawn under and object types that blocks spawning
Center spawning around active camera, world location or a specified actor
Advanced settings for rotation, scaling and height offset of spawned instances
Settings for spawn filtering includes: Height interval, Slope intervals, Collision checks, Sphere traces, Object Proximity, Edge Detection, Cluster filtering and filtering by Surface Type/Landscape Layer
Functionality for writing and reading any data (using user defined custom structs) to instances in Blueprint with possibility to have float variables directly accessible in materials as Per Instance Custom Data floats.
Presets to immediately get going
Settings that allow for fine tweaking
Prepared for adding of custom spawn point filtering and/or function for finding spawn points
Included Blueprint functions:
Regenerate
Remove Spawned
Reset Removed
Set Collision Mode
Line Trace Spawners by Channel
Get Overlapped Instances
Get Instance Custom Data
Set Instance Custom Data
Reset Instance Custom Data
Remove Instance
Remove Overlapped Instances
Restore Removed at Location
Get Spawner Data
Load Instances From Data Structure
Components:
Spawner Collision Invoker (Actor Component) - Lets spawners track the actor attached to and update collision as needed
Spawner Projectile Collision (Scene Component) - Emulates physics collision (and trigger hit events) with instances of spawners using the Smart Collision system for the component it is attached to.
Updates:
Version 1.5:
Added functionality for writing and reading any data to instances in Blueprint with possibility to have float variables directly accessible in materials as Per Instance Custom Data floats.
Added Edge Detection.
Added Blueprint functions: "Get Overlapped Instances", "Restore Removed at Location", "Get Instance Custom Data", "Set Instance Custom Data" and "Reset Instance Custom Data".
Bug fixes.
(Per Instance Custom Data is supported for Unreal Engine 5.5 and onward.)
Version 1.4:
Added a new setting "Collision Mode", and a new system (Smart Collision) for generating collision only where and when needed, drastically improving runtime performance!
Added support for tracing of complex collision to proximity checks and collision detections (regular Collision Check and Sphere Collision).
Improved precision on regular Collision Check (Both for tracing of simple and complex collision).
Fade in of spawned instances for reduced popping is now compatible with nanite meshes.
General performance optimizations.
Bug fixes.
Useability improvements.
(On updating the plugin, existing spawners will have their Collision Mode set to either "Collision Enabled" or "Collision Disabled" depending on if any of its Instance Types have collision enabled. The mode: Collision Enabled identically matches how the spawner previously worked.
For improved runtime performance of spawners with collision, try switching to the new Smart Collision system!)
Version 1.3:
Bug fixes.
Added setting for including objects with mobility set to Movable when tracing (Off by default).
Version 1.2:
Significant generation speedup!
(After updating to the new version, please regenerate the spawners to ensure optimal performance. This will prevent duplication of instances spawned with previous versions.)
Version 1.1:
Added support for filtering by Surface Types.