Sculpt: Pose Brush with Inverse Kinematics

This commits introduces the pose_ik_segments brush property in the Pose Brush. When increasing the IK segments count, the brush generates more segments and weights associations following the topology of the mesh. When moving the brush, these segments are transformed using an IK solver and they are used to deform the mesh.

When pressing Ctrl, the brush controls the segments' roll rotation instead of using the IK solver. The brush falloff controls how much rotation is propagated from the first to the last segment in the chain.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D6389
This commit is contained in:
Pablo Dobarro
2020-01-07 16:46:56 +01:00
parent bd766f8f06
commit fdf89acc86
12 changed files with 547 additions and 198 deletions

View File

@@ -616,9 +616,12 @@ def brush_settings(layout, context, brush, popover=False):
layout.separator()
if brush.sculpt_tool == 'POSE':
row = layout.row()
row.prop(brush, "pose_offset")
layout.separator()
layout.prop(brush, "pose_offset")
layout.prop(brush, "pose_smooth_iterations")
layout.prop(brush, "pose_ik_segments")
layout.separator()
if brush.sculpt_tool == 'SCRAPE':
row = layout.row()
row.prop(brush, "invert_to_scrape_fill", text="Invert to Fill")