Lily Gizmos is a Blender add-on that allows you to easily create custom gizmos, i.e. viewport interactors/handles. This powerful tool lets users interact with parametric shapes or rigs in a very smooth way.
- No coding is needed, whereas vanilla Blender requires python scripting to create custom handles. Just create an empty and turn on its in the Empty properties panel.
- Gizmos can be customized - from their color to their entire shape, which can be imported from any mesh.
- They can drive any property of an object or bone, including location, rotation, scale, etc.
- If you are a developer yourself, you can add your own widget by just creating a new file in the Gizmos directory.
1. Create an Empty object.
2. In the Empty properties, enable LilyGizmo. This shows extra settings.
3. Chose the gizmo type: Angle or Move 1D/2D/3D. This defines how the user's moves are translated into changes of the target parameter(s).
4. Setup the target(s), namely what in the scene will be affected by the gizmo. A target is a component (X,Y,Z,W) of a property (location, rotation, scale, etc.) of an object.
5. The location and orientation of the gizmo is set by moving/rotating the empty around. If it feels wrong, try resetting it to the origin.
If the display of the gizmo is not updated correctly after changes, use the Update Gizmo button, or turn gizmos off and on again in the Gizmo Display menu.
You can get support and give feedback on the BlenderArtists thread: https://blenderartists.org/t/lily-gizmos-support-thread-easily-add-custom-gizmos-to-your-scenes
Custom target property You can use dev tootltips to know what to use as a custom property if loc/rot/scale is not enough for you.
Angle widgets One usually wants angle gizmos to follow the object they target. To do so, use a Copy Location constraint rather than parenting the gizmo to the object.
Hide Empty Disabling the empty in the viewport will eventually hide the gizmo too. If you want to hide it while keeping the gizmo on, set its Empty Size (not the scale) to 0.
"Move" gizmos will usually be at the origin, at least for their coordinate corresponding to the one they drive.
"Angle" gizmos must usually be parented to the parent of the object they drive, not directly the object itself (actualy it works, but it's weird to drive the rotation of the object from a gizmo that also rotates with it). Alternatively they can have a constraint to follow the target object without being parented to it.
An add-on for easily creating gizmos in Blender 2.90 or 2.83 LTS.