ProInstance Tools Plugin for Unreal Engine 4 & 5
Current version: 1.28
Documentation will be updated and improved over time.
Installing the Plugin
Open Epic Games Launcher, head to Unreal Engine > Marketplace or Library tab and find ProInstance Tools Plugin. Press “Install to Engine” button and choose the appropriate engine version for you.
Open your project the engine version of which have the plugin already installed and head to Plugins tab. Find the ProInstance Tools Plugin and set it enabled by checkbox. The engine will prompt to restart itself. Restart the editor and you will have plugin enabled and ready to work.
Quickstart
After enabling the plugin you will notice a new category inside a Place Mode tab named ProInstance Tools. Inside it there will be all available ProInstance Types ready to be drag’n’dropped to your scene.
You now will be able to spawn meshes or custom actors procedurally using these ProInstance types. Also, please be sure to check out the demo map with usage examples at “ProInstanceToolsPlugin Content/Maps”.
All ProInstance settings are unified and constists of two major caterories:
- ProInstance Type Settings – depends on what type you’re having selected
- ProInstance Main Settings – unified block of settings which all ProInstance Types have (including ProInstance Functions)
ProInstance Main Settings (Unified Settings)
Unified Settings are the block of settings which all ProInstance Types have. Let’s break it all down.
Instances | |
Instance Type | Sets a component type for instances |
Instances | User-defined array of instances |
Instance Global Settings | Global instance tranform and randomization settings Can be overwritten by Instance Local Settings |
Enable Collision | Whether to have an actor collision |
Instance Self Overlap | Defines what to do when spawned instance is overlapping neighbor instance Currently working only with Static Mesh instance type |
Optimization | |
Start Cull Distance | Start distance of culling Works with Instanced Static Mesh or Hierarchical Instanced Static Mesh |
End Cull Distance | End distance of culling Works with Instanced Static Mesh or Hierarchical Instanced Static Mesh |
Randomization | |
Seed | Randomization seed |
Snapping & Aligning | |
Surface Snapping | Snaps instance’s location to a surface below |
Surface Aligning | Aligns instance’s rotation to a surface angle below |
Ignore Self Collision | Ignores self collision of instances when casting line traces for Surface Snapping |
Line Tracing Depth | Distance of line traces when casting them for Surface Snapping |
Actors To Ignore | Ignore collision of user-defined actors when casting line traces for Surface Snapping |
Debug | |
Draw Debug Line | Whether to draw debug line traces |
Draw Time | Time to draw debug line traces |
Each element of Instances array has following settings.
Mesh | User-defined Static Mesh |
Actor Class | User-defined Actor Class |
Overwrite Materials | Can overwrite Static Mesh materials if enabled Each array element represents material slot of selected Static Mesh |
Instance Local Settings | Local instance tranform and randomization settings for current instance Can overwrite Instance Global Settings if enabled |
Instance Local Settings and Instance Global Settings has same following settings.
Mobility | Set the custom mobility |
Location | |
Location Offset | Location offset of a initial instance location |
Location Range Min | Minimal random location in range |
Location Range Max | Maximum random location in range |
Rotation | |
Rotation Offset | Rotation offset of a initial instance rotation |
Rotation Type | Rotation Type. “Random From Range” chooses a rotation value between defined Min and Max range. “Random From Array” chooses defined values from Rotation Array. |
Rotation Range Min | Minimal random rotation in range |
Rotation Range Max | Maximum random rotation in range |
Rotation List | Contains the list of rotation values to choose from. |
Rotate To Actor | Rotate instance towards an user-defined Actor |
Rotate To Actor By Axes | Select an axes by which instance will be rotated |
Scale | |
Uniform Scale | Whether to have uniform scaling for instance or not |
Min Uniform Scale | Minimal random uniform scale |
Max Uniform Scale | Maximum random uniform scale |
Min Scale | Minimal random scale |
Max Scale | Maximum random scale |
Cast Shadows | Whether to cast shadows |
Enable Custom Collision | Enable Custom Collision Profile |
Custom Collision Profile Name | Custom Collision Profile Name |
Spawn Chance | Chance to spawn this instance from 0% to 100% |
Instance Length | Arbitrary instance physical length which can be used by ProInstance Types with splines |
ProInstance Types
Here’s a list of all ProInstance Types and their settings. These are main actors which you will use to have procedural mesh placement.
ProInstance_Circle
Spawns instances by a circle pattern.
Num Instances | Number of instances to spawn |
Angle | Angle of a circle pattern |
Radius | Radius of a circle pattern |
ProInstance_Grid
Spawns instances by a 3D grid pattern.
Num Instances | Number of instances to spawn in a 3D grid pattern |
Spacing | Distance between instances in a 3D grid pattern |
ProInstance_Path
Spawns instances linearly by a spline path.
Placement Type | Whether to set instance location by arbitrary Spacing or by a Spline Point |
Spacing | Distance between instances by a spline |
Max Instances | Maximum number of instances to spawn |
Use Instance Length | Whether to use length of an instance summed up with Spacing |
Follow Spline Rotation | Whether to have initial instance rotation by a spline rotation |
Closed Spline | Closed Spline |
ProInstance_PathScatter
Spawns instances randomly along a spline path.
Num Instances | Number of instances to spawn |
Use Spline Scale | Whether to use spline scale for instance placement |
Follow Spline Rotation | Whether to have initial instance rotation by a spline rotation |
Closed Spline | Closed Spline |
ProInstance_Scatter
Spawns instances randomly within a bound.
Num Instances | Number of instances to spawn |
Placement Type | Whether to use Box or Sphere as a spawn container |
Box Size | Box Size |
Box Pivot Point | Box Pivot Point |
Sphere Radius | Sphere Radius |
ProInstance Functions
Bake Instances | Bakes procedually placed Components to Actors |
Randomize Seed | Set random Seed value and re-run the Construction Script |
Update | Re-run the Construction Script |
Supported Plugin Versions
Here’s a table of latest supported Plugin version for each Engine Version.
Engine Version | 4.23 | 4.24 | 4.25 | 4.26 | 4.27 | 5.0 | 5.1 | 5.2 | 5.3 | 5.4 |
---|---|---|---|---|---|---|---|---|---|---|
Latest supported Plugin version | 1.01 | 1.12 | 1.25 | 1.27 | 1.27 | 1.27 | 1.28 | 1.28 | 1.28 | 1.28 |
Changelog
V1.0
- Initial release
V1.01
- Fixed world rotation on all instances
- Fixed offset location by Z axis in “Path” and “PathScatter”
- Custom icons for all “ProInstances”
- Fixed local rotation for “Circle”
- Default cube material changes for “softer look”
- Plugin icon changed
V1.10
- Added “Instance Global Settings” option (requested)
- Added “Rotate to Actor” option (requested)
- Added new functions: “Update”, “Set Random Seed”
- Added LOD1 to default cube
- Fixed “Cast Shadow” option if type is Static Mesh
- Fixed error when static lighting wasn’t saved on instances properly
- Altered Overview map design
V1.11
- Fixed incorrect behaviour when using “Rotate To Actor”
- Removed “Rotation Type” from ProInstance_Circle
V1.12
- Added “Overwrite Materials” functionality per instance
- Added Debug Line Trace settings
V1.20
- Added new “Bake Instance” function
- Added new “Mobility” variable
- Added new “Custom Collision Profile Name” variable
- Added more platforms to Whitelist (IOS, Switch, Xbox One, PS4)
- Renamed “Set Random Seed” function to “Ranzomize Seed”
- Removed class icons to keep consistent look to editor
- Removed unused assets in “DemoRoom” folder
V1.21
- Added “Instance Self Overlap” dropdown menu, so overlapping of instances can be disabled
- Fixed double instance spawn in ProInstance_Path
- Fixed component replication bug in multiplayer
- Fixed linetracing length on ProInstance_Scatter in sphere mode
- Fixed removal of instances when linetrace for snapping don’t hit anything
- Cleaned up blueprint function library
- Commented all variables, so hints on variables are now visible
- Updated Overview map with new examples
V1.22
- Tried to fix a flawed refactoring of a blueprint function library from 1.21
V1.23
- Fixed a flawed refactoring of a blueprint function library from 1.21
- Fixed weird bug with an unexpected 1 cm height addition when surface snapping is off
V1.24
- Fixed a logical error in linetracing function which was preventing spawning instances in air
V1.25
- Fixed “not initialized properly” variables inside structs
V1.26
- Fixed “not initialized properly” Enum variable “Rotate To Actor By Axes”
V1.27
- Added option to choose random rotation from a list of custom values
- Fixed “LogPython: Warning …”
- Fixed occasional reset of static light baking data
V1.28
- Added editor icon for a Custom Category
- Updated copyrights in source code