I’m relatively new to Panda3d, and I have been mulling over this problem for awhile now so I figured it was time to see if anyone out there had any advice.
I have a fully rigged character in Maya and the goal is to get this character to preform different animations with different arms within panda. Basically the character needs to be able to move each hand individually to one of five spots at any time. As far as I know, Inverse Kinematics doesn’t import into Panda3d, so animations of some sort are needed
I’ve heard that breaking up the character into 3 separate models and calling animations separately on each of them (his arms and body) is one way to go about this, but I’m not exactly sure what that would involve (if i would need to break the mesh and rig or what).
I’m open to any suggestions here. Thanks in advance!
You’ll need to use subpart animations, sometimes called partial-body animations. You don’t need to split up the model or the rig or anything.
Unfortunately, this interface is not currently documented in the manual (it mentions only split-body animations, which is a lot more work and does require splitting up the model). Fortunately, the interface is not terribly difficult.
The basic idea is to call actor.makeSubpart() once for each subset of joints that you want to animate separately, e.g. the right arm and the left arm. This creates a new “part” that you can give a name to. There is a default part named “modelRoot” that refers to the enter actor, but your new parts can refer to just their individual pieces.
All of the actor methods, like play(), stop(), loop(), whatever, take an optional partName= keyword argument. So once you have set up your subparts, you can play them individually by using the partName argument.
Read the source code in direct/src/actor/Actor.py, or at least the generated API docs, for more information.
This sounds very helpful. I cant wait to test this out.