The Dynamic Transform Toolkit offers many ways to make transform manipulations within your game easier. By using three instruments - Transform Sequencer, Axis Rotator, and Spline Mover - you can easily create many level design situations without any coding.
This plugin is recommended to use with the Core Interaction System free plugin available on Fab.
There are three main tools for controlling transformations in your level: Transform Sequencer, Axis Rotator, and Spline Mover. The combination of these tools can give level designers the ability to create dynamic, interactive environments without requiring custom coding.
Transform Sequencer
The Transform Sequencer is a powerful tool that allows you to easily define and manage transforms for actors you've added to TransformChangerData. With it, you can group transforms and smoothly interpolate between them, giving you control over actor movement, rotation, and scaling—all without writing any code. Simply choose the actors for the Transform Sequencer to manage, then specify the transforms for each group in the editor. The Transform Sequencer will automatically handle all interpolations, allowing you to create smooth transitions and complex animations effortlessly.
Setup Instructions
Add a Transform Sequencer actor to your world.
Populate TransformChangerData with the actors you wish to control
Set ActiveTransformIndex to 0 and configure the desired transforms for each actor in the editor.
Set ActiveTransformIndex to 1 and configure the desired transforms for each actor in the editor.
Switching the ActiveTransformIndex between 0 and 1 will visualize the defined transform groups in the editor.
Call SetDesiredTransform or SetNextTransform to interpolate between transform groups
How to Populate Actors Easily
Group actors you wish to add.
Find the group actor name (e.g., GroupActor1).
Fill in the GroupActorSelection with the desired group actors.
Press the AddActorsFromGroupSelection button inside the details panel.
Properties and Functions
TransformChangerData: Holds references to actors that are being controlled by TransformSequencer.
TotalTransforms: Indicates how many different groups of transforms exist for each actor.
InterpType: Allows you to choose the interpolation type (e.g., constant or interpolated) for transitioning between transforms.
MinGlobalSpeed & MaxGlobalSpeed: Set minimum and maximum speed values for location, rotation, and scale. Used for randomizing each actor's movement.
bMoveConfiguration: If true, the transform configuration will move with the Transform Sequencer, making adjustments easier when repositioning.
ActiveTransformIndex: Indicates the current transform group being edited in the Blueprint editor.
AddNewTransformGroup: Adds a new transform group to TransformChangerData.
DeleteCurrentTransformGroup: Deletes the currently selected transform group in TransformChangerData.
AddActorsFromGroupSelection: A button that adds all actors from the selected group (GroupActorSelection) to TransformChangerData. This saves time by quickly populating the actors to be controlled by the Transform Sequencer.
Axis Rotator
The AxisRotator tool allows developers to rotate multiple actors around a defined axis. The axis is visualized in the editor, making it easy for developers to set up and preview rotations in real time. The rotation can be continuous or to a specific angle. The component provides options for adjusting the speed of rotation, reversing the direction, and more, making it versatile for different gameplay scenarios.
Setup Instructions
Add the Axis Rotator to the actor you want to rotate or as a separate entity to control multiple actors.
Populate the AxisRotatorActors array with references to the actors you wish to control.
Configure the rotation properties such as GlobalAxis and TargetSpeed.
Use the StartContinousRotation function to initiate continuous rotation or RotateToAngle to rotate to a specific angle.
Optionally, use the GroupActorSelection to add all actors from a specified group for easier setup.
Functions and Properties
AxisRotatorType: Defines the type of rotation (e.g., Continuous, Step Rotation, Target Angle).
AxisRotatorActors: Array of actors that are controlled by the Axis Rotator.
GlobalAxis: Defines the global axis around which the actors will rotate.
CurrentSpeed: Displays the current speed of the rotation.
TargetSpeed: Sets the target speed for the rotation.
SpeedChange: Speed of interpolation between CurrentSpeed and TargetSpeed.
ReverseDirection: Determines the direction of the rotation (true for one direction, false for the opposite).
StartContinousRotation(float Speed = -1.0f, bool bNewReverseDirection = false): Starts a continuous rotation with the given speed and direction.
RotateToAngle(float NewTargetAngle, float Speed = -1.0f, bool bNewReverseDirection = false): Rotates the actors to a specified angle.
StopRotation(): Stops the current rotation immediately.
AddActorsFromGroupSelection(): Adds all actors from the specified group to the AxisRotatorActors array, useful for efficient setup.
Spline Mover
The SplineMover tool allows actors to move along a pre-defined spline path. This is useful for moving actors along a specific trajectory. The movement can be adjusted to be back and forth, looping, or one-time traversal.
Setup Instructions
Add the SplineMover actor to world.
Define the spline path using the SplineComponent property.
Fill SplineMoverActors array with references of actors you want to move along spline
Inside SplineMoverActors set DistanceOnSpline property.
Set the MovementType and RotationType properties to configure the movement behavior.
Call StartSplineMovement() to start movement.
Properties and Functions
SplineMoverActors: Actors to be moved along the spline.
MovementSpeed: Controls the speed of movement along the spline.
RotationSpeed: Controls the speed of rotation during movement.
MovementType: Defines the type of movement (e.g., back and forth, loop, one-time).
RotationType: Specifies how the actor should rotate while moving along the spline.
OffsetRotator: Allows you to specify an offset for rotation when moving along the spline.
bAdjustSpeedWithCurve: If true, adjusts the speed of movement based on the provided curve.
SpeedCurve: The curve used for adjusting movement speed along the spline.
bSetGlobalTangent: If true, sets global tangents for all spline points.
GlobalTangent: Sets the global tangent for spline points.