Home Website Youtube GitHub

Rigging a sidebag - affected by body AND secondary controls

Hi Miquel and eveyone contributing to mGear!
My question today is:

I’m rigging a simple biped character wearing a sidebag. The bag’s chest strap should move together with the body, but also be separable form it. Iv’e achieved something not too far from what I want, but it required a lot of manual work after building the mgear guide and it is still very buggy:

ezgif-7-b82e9244f1ef

My question is:
What is the most “mGear” way to go about this?
I tried to look in the forum and this is the closest thing I found: Multi level skinning , but it seemed to remain unresolved.

  • Important note: the rig I’m making is going into Unity, so the solution provided must by supported by Unity (it seems that deformers/clusters or any vertex-based animation besides blendshapes is not supported, from my searches online)

Thanks a lot in advance!
Yoel.

Hi syoels,

(You didn’t mention what technique you are already trying in your gif.)

Right now, it sounds like you are trying to solve a general rigging problem. So I’m not going to answer an “mGear way” specifically. I always use extra custom rigging and POST scripts in my rigs.

This is a technique I frequently use for bags, straps, skirts and armor:

Use 2 nurbs ribbons. One carries controllers which follow the body. The controllers control a 2nd ribbon which carry joints which skin your bag.

  1. Make a nurbs ribbon with the number of spans matching the number of controls you want on the strap of the bag. I’d suggest something like 6 to 12.
  2. Attach the same number of follicles to the ribbon. So if you have 8 spans on the ribbon, attach 8 follicles.
  3. Under each of those follicles, add a joint and an animation control.
  4. Those joints will skin a 2nd ribbon.
  5. Make a 2nd ribbon. It can be a duplicate of the first. Or it could have a few more spans. I usually use the same number of spans.
  6. Attach a lot of follicles to this ribbon. Enough so that you can smoothly skin the bag. I would suggest 12 to 24. Also add or constrain a joint under each of those follicles.
  7. Those 12 to 24 joints will skin your bag geo.
  8. Copy the skin weights from your body to the FIRST ribbon. This ribbon is carrying your controls. Now your bag should follow your character, but the controls can still be animated, to shape the SECOND ribbon.
  9. If some of the controllers are bending or spinning too much with the body, I will sometimes add a group above the control and orient constrain them to other controllers on the rig. For example, the control near the bag could be orient constrained to your COG control near the hips, but still follow the position of the body skinning.

More notes:

When I say follicle, I don’t actually use follicles anymore. I wrote about this and shared a script a while ago: https://gist.github.com/chris-lesage/0dd01f1af56c00668f867393bb68c4d7

Also, this technique is perfectly valid in Unity. Constrain your joints to the “follicles”, but keep the joints in a separate clean hierarchy and bake them before exporting.

To make this more “mGear”, you can store the ribbon skinClusters in your skinPack file. You could also use the mGear curve constraint instead of a nurbs ribbon.

4 Likes

Hi Chris!
Sorry for taking a while to reply.
Thank you so much! Your answer was more than perfect and it worked out super nicely - I even used your code replacing the follicles (I’m a newbie to rigging so didn’t actually get to use hair follicles before).

It’s not super tight, but it’s for an NPC which won’t be getting too much screen time. Here’s a working screen recording from unity:

ezgif.com-gif-maker

For future readers of this thread: not much I can add but I’ll share my work process (surely it’s not optimal but just in case):

  1. Create a biped rig & skin for everything but the bag. Made sure to add a joint for the world control (via the mGear settings) as well to serve as a root joint for my character (this joint is not in any skin cluster and doesn’t affect the mesh directly)
  2. Use mGear’s game tools to separate model+joints from the rig.
  3. Use mGear’s game tools “Import and connect” into a new file.
  4. Follow Chris’s instructions in the new file, while making sure that the joints that actually skin the bag are under the world root joint I created earlier in the hierarchy (and in order to make them follow Chris’s follicles I just used a simple parent constraint + scale constraint).
  5. Before exporting the fbx I had to select the bag joints and edit->“bake simulation”. Otherwise the fbx only contained animation for the other joints… a bit clumsy but it’s just one extra step and it works.
4 Likes

Hi! I have found the cable component in shifter absolutely amazing for things like this “layering rigging”. Especially because you can set an IK space to have both ends attached to something and also is able to get as many bones you need.
The rig is super easy to control, 2 controls + tangents, and also easy to get good shapes as well. Pretty much like the ribbon, but without having to craft it out yourself.

I have a setup like in the image attached: a control 01 parented under the shoulder for controlling the top of the strap, two cable component (front and back) down to the control or spring chain for the bag, pouch, holster…

I like to set up the bag as a spring chain so i can animate it and also have it dynamic.

This spring or control is parented under the body and the cable IK space to that spring chain, getting a completed ring around the character that also goes with the spine perfectly! You can fix some occasional clippings and animate on top all the secondary animation needed.

The whole thing is part of the joint structure, so exporting to unreal or unity is super easy. The whole skeleton is baked and exported.

Hope it helps out.

Cheers.

4 Likes