In my master thesis project Adaptive Animation for Character Locomotion in collaboration with Unity Technologies I have now finished a second demo of the potential of adaptive animation:
Now characters can walk in any direction (forwards, backwards, sideways, and anything in between) with any speed. Characters can also start and stop walking with proper transitions. More info at the page above.
Request for models!
I have tested the system with several biped (two-legged) characters but i am in DIRE NEED of animated models with more than two legs to test with! If you have any characters I may use as test data for this project, it would help me a lot. Models will only be used for testing and not in public demos unless explicit permission is given. Also, I will put a thanks in the Master Thesis.
The models can be anything really: animals, aliens, robots, or whatever, as long as they use legs to move around with! I can import models up to Maya 8.5 and in .fbx format. Animations work best with the system if:
There is at least one idle animation and one walk or run animation. But the more, the better!
The feet don’t intersect too much with the ground (though a little don’t hurt).
The feet move backwards (for e.g. a forward walk) at a somewhat constant speed while on the ground (though the system can fix small variations).
If you are in doubt, just send away! Even animations that don’t work still show me something valuable about the limitations of the system.
very impressive indeed. ive been following your work closely and will be sending you a bunch of biped models with all the animation you can eat towards the end of next week.
Thanks for the tip! I don’t know if some walk cycles are included or if I would need to make them myself. The latter might take a while when I have no experience with Blender at all, but I’ll certainly investigate.
I’d like to say more about performance, but I’m not sure how to go about it. I have JCsProfiler Stats (http://forum.unity3d.com/viewtopic.php?t=8966&highlight=jcsprofiler) and it has been great for showing me which parts of the code are most heavy relative to each other, so I could focus on optimizing the right things, but as for overall performance, I don’t know how to read the numbers.
What should I measure? Time spent per frame?
As for raycasts, there are currently one raycast per leg per frame. It may change, but I’ll keep it reasonable, and if a more fancy foot placement algorithm take up many more raycasts I’ll leave the option to turn it off.
wicked man! this is looking really good!
do you use the same kind of technology as seen in games like crysis,assassins creed and gtaIV (euphoria)? they seem to have very nice adaptive animation systems.
looking forward to seeing the progress with this one
Well, I know that my system is very different (and much simpler) than Euphoria, but I don’t know much about what technologies are used in Crysis and Assassins Creed. If there is any information available about their technologies, I’d sure like to know.
I think my system is somewhat comparable to some of the effects in Assassins Creed though. Certainly, the ability for the feet to land at just the right spots is something I plan to implement.
Also…I guess you may know already, but there are lots of tech demos at http://www.gametrailers.com, often explaining concepts and stuff about technologies used in games.
I’ve seen that one before, and as I said, my system is very different (and much simpler) than Euphoria. Euphoria is based on Dynamic Motion Synthesis, basically controlling virtual muscles to move the body, based on complex biologically based behaviors. My system just applies some animation blending combined with inverse kinematics in a clever way.
I haven’t seen that article before, and I think I should look some more into gametrailers.com too. I appreciate you pointing me towards this. It’s highly useful for me.
Hey runevision, I’ve been playing around with the locomotion system as it’s been released, but I’m having a lot of trouble figuring out how to integrate my own animations into it. I want to make a biped, so I started just by looking at how your hero character is set up. The only script references I can see to his animations are in the LegController. However, changing these animations doesn’t seem to have any effect.
Is there some other way that animations are used by the system? If I just wanted to plug my own model with walk, run and idle animations into the simple hero you have in the planet walk scene, where would I begin?
Did you use the menu…
Custom → Locomotion Initialization
…after changing the animations?
You generally need to do that every time you have changed something in the LegController component.
Also, did you read the documentation that comes with the system? I’m assuming you did, but I’m just checking, since if you haven’t, there will be many things that could be confusing.
Place your own model in the scene.
Use the steps from the tutorial in the docs to set up the LegController and LegAnimator components.
Look at which other components are used for the Hero model in the planet walk demo and apply the same components to your own model. Most of those components are not directly related to the Locomotion System, but you would need them if you want all the same functionality as the hero character has in that demo scene.