I am trying to extend the tutorial with a small model created in blender. The model get loaded and rendered, but there are no animations to play. If I call pview from command line it shows no animations but if called from the chicken exporter (inside blender) plays animations nicely.
(I used the tag code on the console output as it does not change the identation)
Can someone clarify me what is that flag passed as final argument to auto_bind. The default value would be zero from the auto_bind.h header, but there are posts with the ~0 as argument and it did the job.
At last I found out that to get individual animations to work as I select I need to do:
int animnum=2; //Select a valid animation index
dummy_animation = dummy_anims.get_anim(animnum);
mystring = dummy_anims.get_anim_name(animnum);
std::cout << "Got anim named >" << mystring << "<" <<std::endl;
std::cout << "Animation Node is OK!!!" << std::endl;
std::cout << "Animation Node is BAD!!!" << std::endl;
I was even able to add a few more animations and got they working very well. Panda3d seens pretty easy and fun to work, although there are some things not clear to me.
The third parameter to auto_bind() controls how forgiving the matching of animation to model should be. With 0, the default, it is important that all of your joint names (and the character name) be the same between animation and model. With ~0, as forgiving as possible, it will work even if some of your names do not match.
Thank you, I was able to get a single animation working also in pview. It took me some time to figure it out, maybe I got the wrong thinking paradigm for it.
So, lets say, if I want to create a model with many animations in a single .egg (or .bam) file and let my C++ code load the model and pick a animation, by its name, to play, then do I always have to pass ~0 as flag value?