0
$\begingroup$

So, I have a robot that I am rigging (think eve from the pixar film Walle). It's shaped like a large diamond. https://ibb.co/cSCOPbdiamond-prism shaped spaceship model. But the four bottom panels open up so that it looks like this: https://ibb.co/bHzRcw.Diamond-shaped spaceship but... Triangular-prism on top, with the bottom having opened up. The way that I am currently doing it feels really janky. Since I want to rotate the panels along an axis that isn't solely x, y, or z... I've created my own custom transform orientations.

This might be a side-problem, but I can't really rotate using the transform manipulators. It works fine for scale and position, but anytime I click on them to rotate it just moves the 3D cursor instead. I can find one or two tiny and specific spots that allow me to rotate using the manipulators.

And I haven't found anything that adresses using the lock axis hotkeys for custom orientations...

Furthermore, I'm trying to translate all of this into a rig. an attempt to change the rotation of a panel of a 3D diamondSince the panels only ever need to go from rotation A to B or in the middle, it'd be great if I could just create a rig that limits the rotation to those values, but I'm having a hard time figuring out the rig constraints to do that...

So.... Overall question is: Can I rotate on my custom axies using axis lock hotkeys?

Follow up questions are: Is there a better way than that? And can I create a rig that essentially does it for me?

$\endgroup$
0
$\begingroup$

Rigs (and Armatures) are made for that exact purpose.

I will create a rig with the topological help of the given triangle shapes.

  1. Hide all but one triangle (we'll rig this one first). ⇧ ShiftLMB LMB, H
  2. Add an armature. ⇧ ShiftA > Armature

Next steps are demonstrated in the following image.

  1. Snap the 3d cursor to one of the top vertices. LMB LMB, ⇧ ShiftS > Snap to selected
  2. Add a helper empty.
  3. Snap the cursor to the adjacent top vertex.
  4. Go into edit mode of the armature. Snap the bone to the cursor. ⇧ ShiftS

enter image description here

  1. Go into pose mode with the armature selected. ⎈ Ctrl↹ Tab Then select the bone.
  2. Go to the bone constraint tab. Add a damped track constraint.
  3. Set the empty as the target.
  4. Apply the Pose as Rest Pose. ⎈ CtrlA
  5. Delete the helper empty.
  6. Parent the mesh object to the bone, by selecting the mesh object first LMB LMB, then ⇧ ShiftLMB LMB selecting the bone and pressing ⎈ CtrlP > To Bone.

enter image description here

  1. Set the bones rotation order to any other but quaternions. Lock the X and Z axis.

enter image description here

The triangle is rotated only by rotating the bone.


Much quicker method

This method has the only drawback that the resulting bones won't have a size of one.

  1. Snap the cursor to the first vertex.
  2. Add a bone (at cursor location).
  3. Snap the cursor to the 2nd vertex.
  4. Select the head of the bone and snap it to the cursor position.

    enter image description here


Bonus Rigging

  1. Create the same single bone rigging for all needed triangles.
  2. Add a new bone at the center and parent all others to it, this will be the root bone to move the whole rig.
  3. Add custom shapes from meshes to the bones.

enter image description here

Now it looks pretty.

A unified open controler

  1. Select triangle flap bones. Duplicate the ⇧ ShiftD. Scale the down (just to make the easy to distinguish). Name everything correctly. Parent the larger bones to their smaller parents. The small parent bones are going to be used to control an overall animation of all four flaps. Rotating them will rotate their child bones and the mesh.

enter image description here

  1. Create an action on them by selecting the parents and setting a rotation key I > rotation on frame 1. Rotate them outwards RYY on frame 21 and set another rotation key.

enter image description here

  1. Rename the action and add a fake user just in case.

enter image description here

  1. Add another controler bone and parent it to the root bone. Name it usefully ("open"). Select a parent bone of a single flap and add an action constraint targeting our action with the "open" bone as the driver and the range as the action range.

enter image description here

The "open" bone now controls the action.

enter image description here

  1. Remove the action from the dopesheet / action editor.
  2. Select all parent bones, selecting the one with the action last. Press space and find/execute the operation: Copy Constraints to selected bones. Then move them to another layer. M2

enter image description here

Simple rig done.

enter image description here

$\endgroup$
  • $\begingroup$ This was super helpful! I've got a few problems with the rigging though. One of my four wing/panels is not rotating the same way as the others. The closer it's rotation gets to 180, the more it shrinks into a flat face. The same happens when using the larger bones instead of the smaller ones. Pic1 and Pic2. I'm assuming its something wrong with my parenting order, as fiddling with it seemed to aleviate the problem in certain spots. $\endgroup$ – Mythology98 Dec 10 '17 at 20:10
  • $\begingroup$ @Mythology98 Hey, I'm glad you're progressing. Both of your links Pic1 and Pic2 link to the same url. But you can also simply ask a new question describing your (new) problem, uploading your file also helps. $\endgroup$ – Leander Dec 11 '17 at 18:54
0
$\begingroup$

That's exactly what a simple single bone does: it rotates in its own (local) axis, so that its rotation world is affected by its rotation set in edit mode.

If you really need (and I don't think so) the triangle of bones following the panel, you can parent them to a bone set as in my example and use it as the main rotation bone.

enter image description here

$\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.