← All ideas
  • Published 14 Mar 2020

More advanced and convenient skeletal system

Bone should be more open, and bones and objects should be more consistent (4 stars is important, it will not increase the burden on existing users, it will only be more comfortable, and it will likely facilitate the development of other related projects)

  • The switching of the three modes of bones should be canceled. I guess this design is to facilitate the resetting of bones, save the loading animation, and facilitate the production of actions.

    But in fact, there is do not for this mode switching, and related functions can also be implemented in an uncomplicated way, and the mode switching brings a lot of binding and animation burden. the problem now is that :

  1. Repeated switching is required to set the binding
  2. You cannot pick bones when you pick a constraint. You can only select bones when you pick a skeleton. Of course, you can select a target bone and a constraint bone and then press Ctrl + Shift + C to quickly add constraints, but when you need to constrain the bone with an object , The skeleton cannot be selected together with the object;
  3. bone constraints and object constraints are not unified, and they should be the same
  4. Skeleton‘s bones are not suitable for batch renaming. Ctrl + F2 is only useful for objects. To reduce the naming work, you must develop another script.
  5. Complex levels and modes increase the workload of making skeletal animation aids.

For example, bones are more difficult to get and set than objects. Bone transform, local transform, global transform, matrix, matrix_basis, matrix_channel ... hard to use 6. Cannot modify multiple skeletons at the same time. 7. To adjust in edit mode, then constrain in pose mode. Minor changes need to be repeated operating. 8. It often takes a lot of time to make custom graphics, and you also need to consider pivot points and orientation. 9. When creating a custom graphic, you need to create it in the object mode, modify it in the editing mode of the graphic object, then exit to the object mode to select the skeleton, then switch to the pose mode to select the bone, then open the view display panel to pick the graphic, and then adjust the size Parameters, then return to the object mode to select the graphic object, and then enter the editing mode of the graphic object to modify. It is also difficult to align the two. You need to modify the shape while observing the shape of the shape on the bone. These operations are usually repeated at least a dozen times. Sometimes it takes about the same amount of time to create a custom graphic as to create a binding. . . Now, if it's not very complicated binding, I will use the bones directly. But it's the complex bindings that make me even less want to use custom graphics. . .

  • It should even be designed so that any object can serve as a bone.

The "any object" driver is uniform, Will be very easy to learn and use, which may also facilitate the implementation of node binding in the future, and it will also be easier to implement the editable motion trajectory of "any object" , and it will be easier to implement the animation layer will also make it easier for bones to participate in physics calculations.Of course, there is no need to make custom graphics and pick them up again, because "all objects" are What you see is what you get.

  • Each object can be selecting for “deformation” option, and there is a selection option “as bone”.
  • Finally, you can add a "container" similar to a group, and add all the objects in the binding to achieve the skeleton some of the original features.
71.4%

Development Status: Open

Upvote 5 Downvote 2
PlayerX
14 Mar 2020

8 Comments

Josephbburg

The title of this proposal is "More advanced and convenient skeletal system" and yet to me it seems like you're asking for bones to be less advanced.

Let's take a look at each individual suggestion:

The switching of the three modes of bones should be canceled. I guess this design is to facilitate the resetting of bones, save the loading animation, and facilitate the production of actions.

But in fact, there is do not for this mode switching, and related functions can also be implemented in an uncomplicated way, and the mode switching brings a lot of binding and animation burden. the problem now is that

The mode-switching design is consistent throughout all of Blender, and it goes much deeper than the UI. Even the C code in Blender respects the modes, so removing this behavior would be neither consistent nor easy. I could write a ten-page article about why modes are great, so I'll spare you this and address the individual points instead.

  1. The word "binding" is an indication to me that you're used to a different software (Maya perhaps)? Blender doesn't require you to set the binding at all, in fact it's computed dynamically and implicitly. That's why you can move an armature object around and see the mesh react in strange ways - it's recomputing the binding by comparing the rest state of the bones with the mesh's undeformed points. We can't get this behavior in e.g. Maya because bones don't have a distinction between rest state and pose state. At any rate "repeated switching" is hardly an inconvenience unless your armature has thousands of bones.
  2. This isn't true - turn off "Lock Object Modes" and you can select them together and use the hotkey. The UI/UX for this is a bit awkward, however, and bears improvement for this and for weight painting.
  3. I don't agree that they should be unified. They are two different things. The armature is an object that can be constrained, and each of its bones can have their own constraints. Moreover, the distinction is relevant in terms of function -- bones have a head/tail that allows constraints to target somewhere between the two points. They have an implicit orientation because of the head/tail and this has an effect on any rotation constraint. IK of course only works with bones, how could it work with objects? Even if it somehow could, you'd have to put IK settings on every object in the scene (needless clutter).
  4. Batch rename works pretty well for me, but my addon ChainTools does a few things Batch Rename doesn't. I'm eventually going to add regex to this, too.
  5. I haven't got a clue what you mean by "skeletal animation aids", but I'm assuming you mean custom shapes. This is not very hard to do in my opinion, but it could certainly be easier. It's annoying that the shape has to be constructed relative to the bone's orientation.
  6. I think this one's a known issue, but why would you want to do that anyway? If you find yourself doing this often, you should combine the armatures. One character should have one armature.
  7. I think that Blender is actually much better about re-proportioning rigs than e.g. Maya precisely because of the modes. In Blender, the constraints' properties are relative to the edit-bones, so there's no need to rebuild them after changing things. They update almost like magic. So I really don't know what your trouble is here... could it be that you're using one of the constraints that does need to be reset? There are a few of those (Stretch-To and Child Of). I'm writing a tool to automate this for my addon sometime in the future.
  8. Not sure how this is different from 5. Did I interpret that one incorrectly?
  9. I agree that this is tedious... although I suspect that it's less tedious for me because I use hotkeys to do all of this (maybe you do, too, if not-- you should).

It should even be designed so that any object can serve as a bone. The "any object" driver is uniform, Will be very easy to learn and use, which may also facilitate the implementation of node binding in the future, and it will also be easier to implement the editable motion trajectory of "any object" , and it will be easier to implement the animation layer will also make it easier for bones to participate in physics calculations.Of course, there is no need to make custom graphics and pick them up again, because "all objects" are What you see is what you get.

First-- all of the "easier to implement" is wrong. All of this would be harder to implement if these changes were made. While I like the WYSIWYG idea, there are better ways to improve the custom shape feature in Blender. Objects are not bones. Bones are unique and wonderful in Blender because they implicitly store the rest-position and the posed position of the armature. Because they are all "children" of the armature object, the point of symmetry for the rig is implicit and just works. No tedious mapping of left-to-right or copying, pasting, and inverting keyframes. Poses can be mirrored dynamically in the viewport with or without offset, and can be copied and pasted without opening a single menu. And you don't have to set anything up! All you have to do is name your bones correctly -- which you should be doing anyway. Bones have a head and a tail, as I've mentioned, which gives them an orientation. The only way to set this kind of orientation for an object is to use some kind of rotation - which would introduce non-identity transforms into your rig, which is bad.

The rigging system in Blender has had a lot of thought put into it, it's really, really good when you get to know it. And it's easy to extend and improve with Python. Well, I could keep gushing about this for pages, I won't anymore!

2
beenjohn

* @Josephbburg * i agree with your 5th point custom shapes should be allowed to be made relative to the object instead of the bone. or atleast there should be a toggle

Josephbburg

* @beenjohn * AFAIK there's even an addon that does this... maybe I'll add it to my addon at some point. The math isn't all that hard.

PlayerX Author

* @Josephbburg * Thank you for your serious reply. It's great to see that you are so persistent, and I really like strong convictions. Maybe I have some(First impressions are most lasting).

1.About mirroring

sincerly. blender can handle skeletal mirroring very well. It can even approach the perfect mirror image with constraints. I don't know much about mathematics, but I think "Armature" is no different from adding a parent to the whole. In 3dmax and Maya, animated mirroring is generally performed by multiplication operations similar to inverse transformation. (Considering only transformations relative to a certain center.)(This can even mirroring the complex rig on an arm.Not just based on the whole center) However, indeed, the mirroring part of Blender works out of the box. it's nice!

2.Regarding some of the solutions and addon you mentioned

All are great, I will definitely try it.But they sometimes look like hidden easter eggs. --This should be attributed to my poor academic performance for belneder. But there should be many new users who are as troubled as I am.

3.I will make some simple auxiliary tools In a few cases. For example, copy rotation when “child of” is turned on, and turned off “child of” then paste rotation.Allows me to make blocking and animation in different ways .but I still need some learning.

4.I think many problems can be solved from the side

That is, in the pose mode, it can be similar to the way of selecting objects(Objects can be selected along with bones in Pose mode). I tried turning off lock object modes,But I still can't select other objects in pose mode.(ver 2.82)

5.Maybe I don't need to modify multiple skeletons at now.

beenjohn

* @Josephbburg * I got so passionate about this I made a suggestion about this. But then I saw this and now I am thinking to my self should I delete it

Josephbburg

* @690089735 * Yeah, I agree, a lot of this stuff is pretty esoteric ("hidden easter eggs"). I'm making a series of videos called "Riggy Bits" that covers some of these ideas, but I've only made one video so far. My goal is to have a full curriculum of rigging tutorials someday, when I have time, to help people learn. You're absolutely right that it is difficult to learn, especially coming from other softwares with different conventions.

I found a reddit page with detailed information for mirroring and scaling animation, and from your comment, I might look into making a tool for this (if I ever have time).

Ah, child-of . I figured you'd be using this, coming from Maya where the Parent Constraint is the main workhorse. You will almost certainly get better results from Copy Transforms, or even making a pair of bones, one an actual child and another constrained to the child with a switchable Copy Transforms constraint (socket rig). Anyways, Child-Of doesn't work very well in Blender and is currently receiving some much needed bug fixing. I'd hold off on using it for now (although there are situations where it is necessary, but they're few and far between). Also, make sure that you're using "visual transforms" if you're keying based on constraints -- this will keyframe the final transformation of the bone after all constraints are applied. You can use constraints to key the bone visually, then disable the constraints entirely and the animation will play back the same way. Spend some time playing with this and it'll make things easier :D

And yes, I agree, the current UI/UX for selecting pose bones and objects is pretty atrocious. It's really hard to make it work and even harder to communicate how to do it, what's worse- I can't make it behave consistently, either. I just use the outliner, which should never be necessary!

Thanks for the reply! I love anything rigging related :P

Josephbburg

* @beenjohn * If you have ideas or questions about rigging, I want to hear them. I'm working on an addon, my goal is to make rigging as fast and easy as possible.

PlayerX Author

* @Josephbburg * Thanks for your answer。 I clearly feel your enthusiasm from your text! The only solution for users is to learn more. Even if a redesign of the animation binding system is required, it is necessary to consider whether people who have learned before can adapt.

The only solution for users at this stage is to learn more. Even if a redesign of the animation binding system is required, it is necessary to consider whether people who have learned before can adapt. The price must be high。