Pivot Painter Content Examples

The Pivot Painter Tool is a MAXScript that stores model pivot and rotation information in the model's vertex data. That information can then be referenced inside of Unreal Engine 4's shader system to create interactive effects.

The PivotPainter map inside the Content Examples project provides several examples which use Pivot Painter Material Functions to produce models that achieve this effect and demonstrates how the models can be manipulated through several forces such as wind or player interaction.

PivotPainter Map


Listed below are the examples provided in the PivotPainter map:

Example What is Demonstrated
1.1. Scale the elements Increasing/decreasing the scale of an object over time.
1.2. Scale using camera distance Increasing/decreasing the scale of an object based on distance to the player.
1.3. Create unique animation phase How to create a unique animation phase for multiple objects.
1.4. Animate with random stored value Creating a unique animation phase for multiple objects using a random stored value.
1.5. Rotate the sub-objects Rotating objects over time.
1.6. Update the meshes normals How to rotate objects as well as the object's Normals over time.
1.7. Update the normals in the vertex shader Rotating objects as well as their Normals over time through the Vertex Shader. This is a cost-effective method and increases performance.
1.8. Update a normal texture Rotating objects and their Normals over time as well as calculating the Normals in the Vertex Shader.
1.9. Translate the sub-objects How to offset the objects' vertices with a random number-based animation.
1.10. Move objects away from the player Creating objects that react to, and move away from, the player based on their pivot (e.g. grass that moves as a player walks through it and is not affected by wind).
1.11. Lock the objects pivot points Similar to example 10, but also creates a 3D sphere movement mask.
1.12. Rotate away from the wind direction How to create objects that react to, and rotate based on, wind direction (e.g. an object that moves back-and-forth from point A to point B).
1.13. Limit the rotation via object orientation Similar to example 12, but limits the amount of movement through object orientation properties. Limiting the objects rotation amount by its orientation toward the wind source can mimic a tree branch's reaction to the wind.
1.14. Change the animation phase using wind A series of objects that have unique movement based on wind (e.g. grass that is affected by wind, not player contact).
1.15. Improve the animation using distance to pivot falloff offsets Similar to example 14, but a more natural movement is applied by using Falloff Offsets to control movement.
1.16. Improve the animation using randomization Similar to example 15, but more realistic movement is created by using random Falloff Offsets.
1.17. Animate with a texture Animating an object based on wind by using a texture (this requires DirectX 10 or above).
1.18. Use a texture and the previous animation offset techniques Combines examples 10 through 17 to produce textured animated objects that react to wind.
1.19. Combine multiple rotations Shows how one can correctly perform multiple rotations at the same time within the Vertex Shader.
1.20. Ambient Creatures Ambient creatures that react based on distance to the player (e.g. creatures that become excited when the player is near).
1.21. Advanced Grass A more game-ready example of textured grass that moves based on wind and reacts to player contact.
1.22. Advanced Palm Tree A textured palm tree that sways based on wind.
1.23. Advanced Tree A textured tree with branches and leaves that react based on wind (created with the hierarchy painter).