Build Options

This section will control how the assembly animation happens. It has a lot of options to control how an element is positioned, if it rotates, scales, moves along a path, bounces etc. etc. It also controls how quickly an object is built and how quickly parts are positioned. Also in this section is where you can chain together multiple assembly, setup events, using custom builders and more.

Build Options Inspector.

Build Time

How quickly the object will build in seconds. Note the total time will also have the place time added for the final element to be put in place.

Use Build Time Curve

Allows you to use a curve to control the build speed throughout the animation, this means you can slow down the build around a complex part if you want or speed it up through not so interesting parts.

Build Time Curve

The curve that controls the build speed. The curve value will be clamped to be above 0.01 so that the animation does not stop. Lower values will slow the build animation.

Build Distance

Sets how far from their final destination the element will start their animation. This value can either be a single value used for all elements or by clicking the right hand down arrow you can choose to use random values between two values to add variation if required.

Build Style

Various options for how the elements will animate to their destinations. Note this like other values can be overridden per object or using the Adjust system.

None - No animation will happen

Appear - The element will just appear at its destination

Radial - This and vertical currently do the same thing. The starting point for the element will be on the line from the Origin through the elements final position and at a distance of the Build Distance. Adjust the origin and projection value will control the direction of the movement.

Vertical - This is the same as the Radial option and uses the origin position and project value to control the animation direction.

Transform - If you use the Spline option then use this mode to make use of the spline either to move along or to build from.

Origin

This is the point the elements move towards and controls the direction of the movement. Changing this value will control say whether the object builds from the front, or from behind or above etc. You can also use the editor tool to drag the origin directly in the scene view, and like other params this can be overridden per object etc. so different parts of the object can build from different directions.

Place Mode

Says whether the placement of the element is speed based or tiem based. It can be useful to say use time if the build distance varies so they will build in order for example.

Time - Use the place time value for the element animation

Speed - Use the Speed value for the element animation

Place Time

If time mode selected then this is how long in seconds it will take for the element to position itself. You can use either a single value or you can have it use a random value between two constants for more variation.

Place Speed

If speed mode selected then this is the speed at which the element will position itself. You can use either a single value or you can have it use a random value between two constants for more variation.

Build On Awake

Says whether the object should build itself when it appears in the scene. It is better to use the Start Mode option at the top of the inspector as this is likely to be removed at some point.

Mesh Pivot Mode

For each element this will control where the pivot is, this is important if you have any rotation or scaling on the build animation as it will control how it looks as it rotates etc.

Object - Element will use the main objects position as the pivot.

Center - Element will use its vertices center point as the pivot.

Bottom - Element will use the center bottom point as the pivot.

Top - Element will use the center top point as the pivot.

Rotate Mode

There maybe a case where you don't want the same rotation direction for all the pieces, for example elements that are on different sides of a car, it might look odd if they rotate the same direction for each side of the car so in that case you would select Flip X Axis which would mean the elements on each side of the car would rotate in different directions as they build which would look more correct.

Normal - Use the same rotate value for all elements

Flip X Axis - Negate the rotation value is element is on the other side of the X axis

Flip Y Axis - Negate the rotation value is element is on the other side of the Y axis

Flip Z Axis - Negate the rotation value is element is on the other side of the Z axis

Rotate Range

You can set how much each element rotates as it builds. You can have either a single value for all the elements or you can have it set a value between two constants for more variation.

Projection

This is an important value to help control the build direction of the elements. For example if you wanted all the parts to drop straight down you would set this to 0 1 0 so that only the y part of the direction is used. If you wanted sideways movement you would use 1 0 0. You can set these top any value to remove or amplify the direction value, or negate if if needed.

Random Seed

For the random value between two constants this will set the initial seed value.

Build From Section

You can find info on the Build From Section

Build Curves Examples.

Use Place Curve

By default elements will animate to their end position in a linear way which can be a little dull so there is an option to use various curves to control the behaviour of the element as it moves into position. The place curve will control the position along the path to its position with 0 being the start point and 1 being the final end point, so you could add a bounce by doing a simple place curve that reaches 1 early and then reduces before going back to 1 like in the example below. You can off course have multiple bounces, change the amount of bounce or generally control the speed of the placement animation in way.

Example of a Bounce Place Curve.

To enable the use of the place curve you need to check the box to the left of the curve that will then enable the curve and allow you to edit the curve.

Use Rot Curve

You can also use a curve to control any rotation that is applied to the element as it positions itself.

Use Scale Curve

The same for the scaling of the element, scaling as extra options to either use uniform scaling or there is also the option to have a per axis scale curve which might be useful for doing stretch and squash effects on elements. If the use scale curve option is disabled Artificer will default to a linear scaling of the element from 0 to 1 as it is placed. If you don't want this behaviour and say want to have the elements be the same original size then enable the use scale curve option and set a straight line with values of 1 at both ends for example.

Per Axis Scale

Enable the per axis scale curves.

Scale Curves

Depending on the Per Axis value you will see either one or three scale curves. If one curve then that will apply uniform scaling to the element, if three curves then you can control each axis scaling separately.

Use Unscaled Time

For the animation of the elements moving Artificer uses the default Time.defaultTime for moving items, if you enable this option unscaled time will be used which is great if you want objects to build while the game is paused etc.

Custom Builder

Artificer has various built in methods to control the animation of the building process but it also allows for you to use your own custom builders if you need something very specific. You do this by coding your own method for placement in an overridden CustomBuilder class. If you have your own builder on and object in the scene then you can select it here and it will be used instead of Artificer values. Check the Custom Builder section of the docs for more info on this.

Placing

Another useful feature of Artificer is that you can have you own script that tracks the placement of elements as they are built, this could be used to add particle effects, sound effects, trails etc. to elements. This is done by an overriden class on a gameobject, if you have one then you select it here. See the Placing section for more info on this feature.

Last updated