This is a re-discovered part of the original design docs in Blender; the means to provide access at Object level to the underlying geometry of Meshes, Curves, Surfaces or Lattices, also known as Hooks.

 

A Hook is an Object feature, and is like the 'Parent' in an Object, but in this case only for part of the vertices. You can create as many Hooks in an Object as you like, and assign for each Hook which vertices should move. Overlapping vertex 'groups' are also possible, here a weighting factor per Hook is provided.

 

Note that this system doesn't work with the Mesh Vertex Groups (yet), but instead provides a generic method for all Object types. What a Hook stores are references to the indices of vertices, meaning that when you completely remodel something, you most likely have to reassign exsisting Hooks as well.

 

For later, Hooks will be looked at for access to Armatures as well. Also Hook "Force" Ipos and Python access will be worked on.

 

Known issues: it might be possible Hook deform isn't updated immediately for (some) constraints. Instant and interactive updates in Blender in general (armatures, constraints, deformers, hierachy etc) has to be reviewed still, hopefully for 2.36.

Adding Hooks

Since Hooks relate to vertices or control points, most editing options are available in EditMode for Meshes, Curves, Surfaces and Lattices.

 

Select any amount of vertices, and Ctrl H will give the Hooks menu.

Add, New Empty

Add a new Hook, and create (as Parent) a new Empty Object at the center of the selection.

 

Add, To Selected Object

When another Object is selected (you can do that in Editmode with Ctrl RightMouse) the new Hook is created and parented to that Object.

This is useful, especially since a single Object can have many Hooks Parented to itself.

Using Hooks

Inside of EditMode, Hooks are disabled, to enable modeling better.

 

Only in Object Mode you can actually use the Hooks. All Object level options and transformations are possible now, including using hierarchies, Constraints, Ipo and Path animations.

In this picture the Empty was translated and scaled, causing the 'hooked' Cube to deform.

 

You can also make the Hook-Parent a child of the original object (here, the empty is a child of the cube), if you don't want Object transformations to deform the Hooks.

EditMode Options

Once Hooks are available in an Object, the Ctrl H menu will give additional options:

  • Remove...
    This will give a new menu with a list of Hooks to remove
  • Reassign...
    Use this if you want to assign new vertices to a Hook
  • Select...
    To select the vertices of a specific Hook
  • Clear Offset...
    This will neutralize the current transformation of a Hook parent

Hooks Panel

You can find buttons for Hooks in the Object Context (F7), tabbed behind the "Draw" Panel.

 

Here you can give a Hook a new name (which is default the Parent name), or give it a new Parent (by typing its name) or assign it a "Force" weighting factor.

Force

Since multiple Hooks can work on the same vertices, you can weight the influence of a Hook this way. Weighting rules are:

  • If the total of all 'forces' is smaller than 1.0, the remainder (1.0-forces) will be the factor the original position is still taken into account
  • If the total of all 'forces' is larger than 1.0, it only uses the Hook transformations, averaged by their weights.

Falloff

If not zero, the falloff is the distance where the influence of a hook is zero. It currently uses a smooth interpolation, comparable to the 'proportional editing' tool.