Adding joints to weighted skeleton

Adding joints to weighted skeleton

Hi all,

I have a character with a skeleton that I have weighted that is working fine. Now I want to add some additional joints to the skeleton, so I add the joints to the joint hierarchy (as childs to one of the earlier leaf joints) and drag them to the skeleton tag. So far, all is good. The joints show up in the skeleton tag and they don't have any vertices weighted to them. But then, when I start weight painting vertices for these bones, every vertex I paint on flies to the origin. And what's even worse, I can't undo it!

Is this a bug, or am I doing something wrong? :confused:
 
I hit this same problem a bit ago. you can't just paint vertex weights from scratch. you must bind them to the mesh first.

Martin, is there anyway of adding new joints without disturbing what is already there?

Todd
 
I've finally had the time to look at this again, and I just can't find a way to get it working.

Starting over isn't really an option. While it might be okay for one model, starting over with every model whenever I change my skeleton isn't really a working workflow. And not changing the skeleton isn't an option either. That would mean that I couldn't for example animate a character's body, and later decide that I wanted to add joints for facial animation.

So, unless Martin has some input on how to do this, what I'll have to do is take the model into some other 3D package to add the joints. Which is too bad, because I really like working in Cheetah. :(
 
Im pretty sure I requested an "export skin weights" map option awhile back, but like bvh import it seems it wasnt that popular a feature...You could dig it up on the wishlist though...

The sooner Martin sticks himself in the cloning vat the better! :p

AC
 
Starting over isn't really an option. While it might be okay for one model, starting over with every model whenever I change my skeleton isn't really a working workflow. And not changing the skeleton isn't an option either. That would mean that I couldn't for example animate a character's body, and later decide that I wanted to add joints for facial animation.
You're absolutely right, but that's the way it is with C3D, and it seems to be worse than that. You can't even really move joints around once you've bound them to a mesh without messing stuff up.

There are a lot of workflow issues with animation (especially character animation) in C3D which will hopefully be addressed in version 5 (since the whole featureset is pretty new, I guess we need to expect some teething problems).

Im pretty sure I requested an "export skin weights" map option awhile back, but like bvh import it seems it wasnt that popular a feature
I'm not really sure how this would help since the obvious cases in tweaking a model involve editing the mesh (pushing vertices around or adding new vertices) and/or the skeleton, so that all you end up with is an obsolete weight map.

Second, this is probably scriptable to the extent that it's useful.

What I think we need to wish for.

What most 3D animation packages have is an "edit rigging" mode which lets you move the "base position" of vertices in the mesh, and the "base position" of joints/bones. If you added a bone to a skeleton tag in "edit rigging" mode it would be assigned zero weight and appropriate offsets. By the same token, most 3D animation packages have an "IK" mode which turns on IK solving (and prevents ordinary editing from taking place). Both probably belong on the wishlist.

Edit: actually I think the folks doing animation in C3D should "get together" and figure out what needs fixing, prioritise it, and put together some kind of coordinated wish list. But there's no question C3D needs some major fixes. Another problem is working with existing keyframes. If you want to adjust the timing on a keyframe you need to do it once for each element in the hierarchy ... it's very painful.
 
Last edited:
Yeah, Cheetah is so good in other respects that I sometimes forget it's so new.

What most 3D animation packages have is an "edit rigging" mode which lets you move the "base position" of vertices in the mesh, and the "base position" of joints/bones. If you added a bone to a skeleton tag in "edit rigging" mode it would be assigned zero weight and appropriate offsets.
Actually, I think new joints should be auto-bound and assigned zero weight just by dragging them to the skeleton tag - that's what you would expect to happen. No need to introduce a new mode for that.

But some way of editing the base positions of joints would also be great. I've bumped into that need as well. Maybe as a simple checkbox on the skeleton tag that while selected made edits to joints not affect the mesh? That way it wouldn't need a new tool or mode.

Edit: actually I think the folks doing animation in C3D should "get together" and figure out what needs fixing, prioritise it, and put together some kind of coordinated wish list. But there's no question C3D needs some major fixes. Another problem is working with existing keyframes. If you want to adjust the timing on a keyframe you need to do it once for each element in the hierarchy ... it's very painful.
Great idea! Off the top of my head, two things that I can think of that I've felt a need for are:
  • Mirror weights
  • Copy weights from one mesh to another with slightly different geometry
Maybe we should start a new thread in the Wish List?
 
Character animation in C3D is a very recent addition I honestly don't think it will get revisited for a while. This is from the news page:

"Cheetah3D 5.0 will offer a brand new node based material system with many different shaders and procedural textures, new powerful boolean operations which also support N-Gons, a instancing/particle system, and many more."

However, that can't stop us from wishing. Personally I think a dope sheet is essential, then improvements to weighting and then an easier workflow between FK and IK.
 
Maybe as a simple checkbox on the skeleton tag that while selected made edits to joints not affect the mesh? That way it wouldn't need a new tool or mode.
This is exactly what an "edit rigging mode" is.

I agree about the behavior when adding joints to a skeleton tag. But by the same token, when you remove a joint, any vertices weighted to it need to be reassigned to its parent.

I think a dope sheet is essential
Depends what you mean by "dope sheet". If it essentially gives us a hierarchical view in the keyframe / f-curve views that lets you see and manipulate every keyframe in a hierarchy at once OR adds a completely new spreadsheet-like view with this ability ... well that would be fine. The key is to be able to see what's going on and change it efficiently. If we simply get a spreadsheet view without this functionality, well that's not so useful.

Bottom Line
  • We need to be able to edit a rigged mesh, and modify a rigged skeleton, without re-weighting from scratch.
  • We need some rig utilities, including mirror weighting and "reset to rest position" (kind of like what auto-saving the bind pose does, but more robust) -- although some of this can be, or already is, done in scripts.
  • We need to be able to see and manipulate keyframes across hierarchy (as well as time, which we already can) in both f-curve and timeline/keyframe views. (IMO a dope sheet is merely a "nice to have" if you have this capability.)
  • We need to be able to manipulate more than one object at a time. Multiple selections should work properly.
Let me just add that I was a Strata 3D / Blitz / Studio Pro* user for many years and it has had "character animation" functionality for something like seven years and C3D managed to outdo it in one release by one programmer. That said, C3D achieves so much with so little it makes me hungry for more... but in the end I can always buy Lightwave or C4D if I really need the functionality.

* I drew the line at CX. They keep advertising the same feature the program is already supposed to have as a new feature. "Hey, it really works this time." I've already poured a few thousand dollars down that particular black hole, no thanks.
 
Last edited:
Dope sheet, timeline window call it what you will I want to manipulate keyframes per object and globally within a scene in one window. From what I've read in this thread we're all singing from the same hymn sheet. And like everyone else I'd rather wait for Martin than go off and try to find alternatives. I've used other apps. and I prefer Cheetah3D, so if somebody wants to cut and paste this onto the wish list you have my vote.

Andrew
 
We've currently got an f-curve editor, key editor, and object hierarchy ... none of which let you perform operations on more than one object at a time. A dope sheet which had the same problem would just make things worse.

I'd rather merge the f-curve and key editors, and allow you to hierarchically disclose as much or as little as you want to, and edit anything you can select (and be able to select across both hierarchy and time). It should also show keyframes below the current disclosure level (so if I have a hierarchy collapsed, keyframes for everything in the hierarchy should be visible, selectable, and manipulable at the top level).
 
Back
Top