4
$\begingroup$

You can hook the points of a Curve as well as the bezier points. Unfortunately, the tilt of the point is not parented with the hook.

I would like to rotate the hook and have the same behavior that using Ctrl T in Edit Mode.

Is there a way to do it? Or even a workaround?

$\endgroup$
  • $\begingroup$ I don't understand what you are meaning exactly. Could you add more info in the question and maybe show a screenshot of what you want? $\endgroup$ – JakeD Sep 29 '16 at 18:00
  • $\begingroup$ Have you tried using shapekeys? $\endgroup$ – user27640 Sep 29 '16 at 19:02
5
$\begingroup$

A possible solution is using drivers to achieve this. It has a limitation though. Essentially, in Edit Mode I was adding a Driver to the Tilt value of the handle which receives a hook modifier currently:

adding driver

Drivers allow you to control a property by another one, either with simple mathematical equations like in this example, or with complex formulas. The magenta background tells you that a driver has been added, but so far it's not doing anything. Now, go to the Graph Editor, and switch it from F-Curve to Drivers. Click the Drivers tab, and set the following values:

  • type: Sum Values (accidentally Maximum Values in my screenshot, apologies)
  • object: name of your empty which acts as the hook
  • type: X-Rotation
  • Space Transform Space

What this means is, when you rotate your empty around the X-axis, the Tilt value of the curve will be rotated by the same amount.

driver added

The limitation is the alignment of the handles. While it works perfectly fine in one case, it can behave strange in the other. The reason for this becomes more clear in this Top View:

top

While the X-Axis of my Start Empty is nicely aligned with the curve handle, the End one is off. If you align them neatly with your curve handles before using them as a hook, making sure the X-Axis always points along the handle, or if you set everything up with a totally straight curve, this should work just fine.

I did that in this Blend:

Edit

Something was going wrong when setting up the drivers in the last Blend, the Tilt values were screwed up. Might have been a little glitch of RC 2.78. Anyways, I re-created the setup in Blender 2.77a. Here is a corrected version:

$\endgroup$
  • $\begingroup$ Thanks. There's something weird, though. As you can see in this image (pasteall.org/pic/show.php?id=107293) while the driver's value is 0, the tilt value isn't. Any idea why is this? I'm doing a bandage rig so the tilt is crucial. $\endgroup$ – Antonio Buch Sep 30 '16 at 9:43
  • $\begingroup$ @AntonioBuch Not sure what happened, I did that setup on a development version of 2.78 yesterday. I've repeated the exact same steps today in 2.77a and it works. Check the new Blend file provided please. $\endgroup$ – aliasguru Sep 30 '16 at 11:35
  • $\begingroup$ Now it works fine. I did notice that you worked with 2.78 but it was wrong when I opened it in 2.78 too. Thanks! $\endgroup$ – Antonio Buch Sep 30 '16 at 16:48
5
$\begingroup$

EDIT: Aliasguru beat me to it, with a more detailed explanation on the drivers properties.

Connect the Hook object's X rotation to the Tilt property with a driver. The other two rotations are transfered with the Hook Modifier.

The result will look like this.

control tilt with hook empty


Step By Step Instructions

  1. For my example I hooked up the center of three bezier control points to an Empty. Make sure the empty's rotation order has the x rotation at the first position, which leaves XYZ and XZY. enter image description here
  2. Select the hooked up vertice and add driver to the Tilt property, by right-clicking on it, then selecting Add Driver.
    add driver
  3. In the drivers panel, set the Expression field to your variable name, in my case var. Then set up your variables input to:
    Ob/Bone: Empty
    Type: X Rotation
    Space: Transform Space
    driver settings
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.