controlJoint should have a parameter for not overriding/copying over transform, but simply shifting it relatively each frame
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Panda3D |
Won't Fix
|
Wishlist
|
Unassigned |
Bug Description
I want to rotate a bone relative to its regular animation, not replacing the animation entirely.
Right now, the only way to move a joint relatively with procedural code from its current animation-induced transform each frame appears to be to make a parent joint which isn't animated, and fiddle around with that one using controlJoint (so the actual joint can still keep the animation affecting it).
However, that requires fiddling in the 3d model (either in the modeller pre-export or code-wise) and it's not trivial to pull off for beginners.
Therefore, controlJoint should have a parameter that will optionally give me a node which doesn't copy its transform over the bone and disables its natural animation as the manual currently states it does, but instead will leave the bone animated and only add the transform relatively to the animation-induced one each frame.
Also yes, this seems a less common thing to do, but let me point out where this thing might be kind of vital:
* Adding random noise on top of animations (e.g. idle animation) for increased realism
* Modifying feet position during walk and stand animations without screwing over the whole animation to meet the ground properly for increased realism
* Rotating the head bone for looking around relatively in a limited cone, while respecting the original base rotation which might be very important if it is unusual (e.g. during rolling over on the floor - head would be looking backwards or in other entire different directions as per the animation and you don't want to stupidly copy forward looking over that)
Yes, it is not necessary for ragdoll. But for all those other sort of things, this seems very useful and currently it seems to be much harder to pull off than it should be.