4
$\begingroup$

I need to rig a robot with 6 identical and symmetrical limbs. Is there some a more efficient way of accomplishing this than going through the trouble of going in and setting all the vertex groups individually? Ideally I'd rig one limb, then duplicate that to the other 5 limbs.

legged robot

(Furthermore, I can't seem to get the bones to rotate properly as there is no Manipulate center points option in edit mode, so those angles seem to be off as well, which should end up falling out of whatever better method is here.)

Here is a link to the blend file:

$\endgroup$
  • 1
    $\begingroup$ I'd be tempted to use a driver based approach. Can you post the blend file? $\endgroup$ – batFINGER Sep 18 '17 at 8:48
  • $\begingroup$ That sounds promising, since I have more similar to this to make. What sort of driver based approach did you have in mind? Or do you just mean I have to get my hands dirty and make myself a python script? $\endgroup$ – user46081 Sep 18 '17 at 9:28
  • 1
    $\begingroup$ Some kind of cyclic (like sin / cos) on each leg, each leg having a different angle offset. Making sure 3 legs are on ground at same time. Might find 6 legged gait diagrams in this PDF interesting $\endgroup$ – batFINGER Sep 18 '17 at 10:06
  • $\begingroup$ Do you need the mesh to be one object. For something like this robot you can parent mechanical parts directly to the pose bone that drives them, without the need for weight painting. My rule of thumb is use weight painting only when there'll be deformation of the mesh. Limit rotation constraints on the hinges, and an IK target on the toe would make this "easier" to animate. $\endgroup$ – batFINGER Sep 18 '17 at 10:23
  • $\begingroup$ Well, I am inexperienced with rigging and animation, so I can't really tell you what I need exactly. I plan on making a walk cycle and several other kinds of shooting animations on top of this eventually and exporting it to Unity to end up as a character. I wanted to be sure I could just get some kind of rudimentary setup going before I getting too involved. I hadn't considered that before, so I'll probably try to run through that whole approach you suggest tomorrow it's pretty late here; thanks, and that pdf looks fun. $\endgroup$ – user46081 Sep 18 '17 at 10:28
0
$\begingroup$
  • select one leg and press P to separate it form the body; delete all the others legs
  • rig the leg
  • Shift+C to center the cursor
  • set general pivot point to cursor
  • in object mode select the leg, Shift select it's rig, Ctrl+D duplicate, Esc to prevent any unwanted movement, then R Z 60 Enter (rotate 60 degrees around Z axis and central pivot point).
  • repeat for the other 4 legs
  • Now you'll have to rename the vertex groups: let we call the three bones of the first leg A1, B1 and C1: select the second leg, in the vertex properties tab go to vertex groups and rename those 3 groups as A2, B2, C2.
  • do the same for the others legs
  • select one leg, Shift select the others and (last) the body, press Ctrl+J to join the meshes
  • select one rig and Shift select the others rigs, Ctrl+J
  • check the names of the bones, which will have to be the same as their corrispondent vertex groups.

When rigging the first leg, consider that every bone's "Head" is the pivot point of the rotation, so set it's "tail" in the exact position where you want the next bone's pivot point.

| improve this answer | |
$\endgroup$
  • $\begingroup$ This is a good, clear answer and I want to accept it but maybe I should modify my question since this is exactly what I have done previously, by following these questions: blender.stackexchange.com/questions/38730/… and blender.stackexchange.com/questions/10772/… . Renaming all 30 additional vertex groups is partly what I am trying to avoid, but it might just be inevitable I guess. $\endgroup$ – user46081 Sep 18 '17 at 9:20
0
$\begingroup$

Sadly the array modifier is not able to do this like it would be with the mirror modifier (copy Vertex Groups automatic) but I would make one Leg perfect (I would prefer the one on the X Axis) with a perfect Armature just for one leg and then duplicate and rotate the rig and the leg (together) to make the full robot. Try to join the armature and meshes together but I dont know if that works. For the pivot point Problem move the start point of the bone to control the "center point".

| improve this answer | |
$\endgroup$
  • $\begingroup$ Unfortunately that's what I had been trying previously, but Ctrl+J just wasn't working altogether. I don't think it was anticipated that someone would make the mesh and armature in tandem, so it doesn't seem to be supported. Other similar problems seemed to suggest I should join the meshes, then rename all the vertices and then join the distinct armatures, but I couldn't get that to work; all my armatures ended up always "collapsing" and leaving only one leg left. $\endgroup$ – user46081 Sep 18 '17 at 9:12
  • $\begingroup$ For your last sentence of advice, that doesn't end up working; I just tried that to see. I think I need to find some way for the armature to locally align at the last joint there. It's hard to describe without a picture, but I will anyways: The last bone at the end of the leg is aligned with the coordinate system, but the joint is rotated 60 degrees off. I'm not as worried about this, since I can get around this by bone angle constraints the tedious annoying way haha. $\endgroup$ – user46081 Sep 18 '17 at 9:15

Your Answer

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