Hi @Wayne Dixon (waylow), I started work on adding a new rig to your add-on Add Camera Rigs. But for that, I needed to make some changes to the add-on so I ended up not implementing the rig right away. The add-on works almost the same as before, but it is in my opinion easier to maintain and extend.
This diff includes the following modifications:
Fixes
- Fix widgets’ names: they were hardcoded and didn’t follow the preferences, leading to crashes.
- The UI was put back into the Item category, instead of Create, because it is not related to object creation.
- Fix some strange topology in two widget shapes.
Improvements (in my opinion — to be discussed!)
UI
- UI and operators use a new poll method, so that they work when either the rig or the camera is selected.
- The composition guides UI was converted to a panel, so that they may be drag-selected.
- Focal Length display depends on the camera’s Lens Unit.
Operators
- Marker binding and DOF object operators were converted to the bpy.data API, making them simpler.
Rigging
- Bones were moved around so that they are more similar between rigs.
- They were scaled down to be 1 unit long, a simpler length — for instance, widgets are the same size as modeled. Widgets were scaled up to compensate.
- The camera and aim bones were placed at 1.7 unit high, to be approximately at a standing human’s eyes’ height if the scene is in meters.
- Properties and drivers for focal length and Aim Lock constraint influence were removed, as they seemed redundant. The properties are now directly exposed in the UI.
- Much of the rig generation was refactored to deduplicate code between the two rig types.
General
- Automatic renaming to .000 was removed, since Blender already handles duplicate names.
- Widget prefix and collection were renamed to WGT- and Widgets respectively. This is to be closer to another much-used rigging add-on, Rigify, hopefully unifying them.
- Arm and height bones were renamed using PascalCase, to be more in line with Blender’s own convention (see eg. NurbsCurve).
- The GPL license header was added to every file.
- Some cleanup was done to better respect Python’s PEP 8.
The camera rig I’d like to add later is described in this article, and the code is here. It is mostly useful for 2D productions, but since there is already an official camera rig add-on in Blender, I figured it could be added there. If you think it could be a useful addition to your add-on, I’ll make another patch.