From 880284a41e843ebe751e005a046586ba6718681b Mon Sep 17 00:00:00 2001 From: Damien Picard Date: Thu, 28 Jul 2022 15:32:02 +0200 Subject: Add camera rigs: use bone subtarget for DOF We no longer need the Empty workaround since rB2e70d5cb980e Also fix UI error when Track To constraint was renamed Differential Revision: https://developer.blender.org/D15471 --- add_camera_rigs/ui_panels.py | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'add_camera_rigs/ui_panels.py') diff --git a/add_camera_rigs/ui_panels.py b/add_camera_rigs/ui_panels.py index c6066147..5d545d3a 100644 --- a/add_camera_rigs/ui_panels.py +++ b/add_camera_rigs/ui_panels.py @@ -32,20 +32,23 @@ class ADD_CAMERA_RIGS_PT_camera_rig_ui(Panel, CameraRigMixin): layout.prop(cam_data, "type") # DoF - col = layout.column(align=True) + col = layout.column(align=False) col.prop(cam_data.dof, "use_dof") if cam_data.dof.use_dof: - if rig["rig_id"].lower() in ("crane_rig", "dolly_rig"): - if cam_data.dof.focus_object is None: - col.operator("add_camera_rigs.add_dof_object", - text="Add DOF Empty", icon="OUTLINER_OB_EMPTY") - else: - col.prop(cam_data.dof, "focus_object") - row = col.row(align=True) + sub = col.column(align=True) + if cam_data.dof.focus_object is None: + sub.operator("add_camera_rigs.set_dof_bone") + sub.prop(cam_data.dof, "focus_object") + if (cam_data.dof.focus_object is not None + and cam_data.dof.focus_object.type == 'ARMATURE'): + sub.prop_search(cam_data.dof, "focus_subtarget", + cam_data.dof.focus_object.data, "bones") + sub = col.column(align=True) + row = sub.row(align=True) row.active = cam_data.dof.focus_object is None row.prop(pose_bones["Camera"], '["focus_distance"]', text="Focus Distance") - col.prop(pose_bones["Camera"], + sub.prop(pose_bones["Camera"], '["aperture_fstop"]', text="F-Stop") # Viewport display @@ -74,9 +77,15 @@ class ADD_CAMERA_RIGS_PT_camera_rig_ui(Panel, CameraRigMixin): if rig["rig_id"].lower() in ("dolly_rig", "crane_rig"): # Track to Constraint col = layout.column(align=True) - col.label(text="Tracking:") - col.prop(pose_bones["Camera"].constraints["Track To"], - 'influence', text="Aim Lock", slider=True) + track_to_constraint = None + for con in pose_bones["Camera"].constraints: + if con.type == 'TRACK_TO': + track_to_constraint = con + break + if track_to_constraint is not None: + col.label(text="Tracking:") + col.prop(track_to_constraint, 'influence', + text="Aim Lock", slider=True) # Crane arm stuff if rig["rig_id"].lower() == "crane_rig": -- cgit v1.2.3