Great! Is the performance the same as the usual animations?
That's usual animation. Retargeting creates a new animation for the target skeleton with the source animation data and skeleton.
How long does it take to retarget the animations?
Between the blink of an eye and a heartbeat, I didn't really test. It's mostly meant to be an initialization thing, you won't retarget on each frame so I guess performance is fast enough. I can run some perf test for the sport though...
Also, if I have a bunch of different models with the same bone structure to use the same animations, will it only have the memory impact of 1 animation loaded, or one copy for each different model, like it is currently?
Well..it doesn't really work like that. The idea behind retargeting is that you can't apply the same animation data to different skeleton (unless they are exactly the same, meaning structure, bone indices, scale and proportion). So when you retarget, visually the animation is the same, but the animation data is different, so you need one animation data set for each skeleton.
For the particular case of strictly identical skeletons, things could be done to share animation data, but, that's unrelated to retargeting.
Nice stuff! Can you give a little more details?
Sure, what do you want to know? :p
For now, retargeting works only for rotation and scale, I still have trouble with bone positions. That's why Sinbad stays in place in the video.
Also it only works with skeleton with structures that are close to each other. For example if the source skeleton has 2 bones where the target has one, it doesn't work.
Also for rotation there are bone twisting issues. Computed rotation sometime end up in a limb being rotated for PI or PI/2 on one axis. I’ve seen other retargeting softwares having the very same issue, and offering a manual way to fix it. So that’s what I did for now. I think this issue is somehow predictable with math magic, so maybe at some point I’ll find out and users will have less manual configuration on the bone mapping to properly retarget.
I plan to make the algorithm work with most common BVH sources (the one I linked in the fist post), at first. Then will see if other sources can be integrated.
I’d like to make some UI in the SDK so users could import a BVH anim and retarget it to their character skeleton with a view on both skeleton and previewing animation. This will come in handy for the upcoming Cinematic editor, because one will be able to attach more usual animations to a model (I mean other than kick, slash, die, jump :p) thant could be useful in a cinematic.
Still a lot to do