Recently I've discovered Smartbody, this software bundles a lot of different and complex features for animating human characters, provides things like locomotion, steering, object manipulation, lip syncing, gazing, nonverbal behavior and retargeting in real time. It even has Kinect suppor working on Linux! Here's a video demostrating a reaching parameterized animation, but there are a bunch more on their website.
That was the good, but here is the great. This software is developed at the USC Institute for Creative Technologies and it's provided free and open, under a LGPL license.
This is so amazing, and I've been dreaming so long for a software like this that is mandatory for me to try it.
So hands on, these are the steeps that took me to get it running, since the building process was a bit complicated on my Arch box, I've documented it.
1.- Download the latest Linux SDK package.
2.- It comes with
activemq-cpp-library-3.8.3 included in the package, you have to extract, build, and install it first. Doing
3.- Then I had to install
xerces-c using pacman.
4.- I also had to install
boost-numeric from the Arch Linux User Repository, using (https://wiki.archlinux.org/index.php/Arch_User_Repository)[the standard way of installing those packages].
5.-Then I was getting a
protobuf version conflict, seemed that the one I had installed using pacman was not compatible, so I had to delete the following list of packages using pacman:
protobuf. I wasn't really using pidgin anyway.
6.- Next I had to download protobuf-2.4.1 sources, then building and istalling them.
7.- I also had to install
ode from pacman.
8.- At this point I was getting an error printing thigs like:
previous declaration ‘off64_t gzseek64...
I tracked the error to the
zlib.h file included in the package. There is a block of code starting like:
if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0
And then a block of variable definitons, just below there is another block starting like this:
if !defined(ZLIB_INTERNAL) && _FILE_OFFSET_BITS-0 == 64 && _LFS64_LARGEFILE-0
And then the definition of the same variables. It's pretty clear that one or the other block is intended to be executed, but for some reason in my machine both are executed, so the definition of the variables happens twice. I just commented out one of the blocks and continued to the next step.
9.- At this point I was pretty lost because I was having lots of problems linkin Ogre. I was so clueless that I even had to post in the official forum. I recieved a fast response from the forum administrator, pointing that Ogre is not the only way of rendering the 3D scenes, and in Linux version is disabled by default. So I decided to exclude Ogre from the building process. You can easily do this by setting to
FALSE the paremeter
BUILD_OGRE that is located on the
CMakeLists.txt file under the
sbgui folder of the project, on line 19. The
sbgui folder holds the code for the GUI and displaying things code.
10.- At this point I passed the building and linking stage and the software successfully installed on my pc. There was just one last thing to do, when I executed
./sbgui it wasn't starting telling that I could not link the
activemq library. I had installed it before, but it was installed under
/usr/local/lib directory, and that directory was not listed in the environment variable Linux uses to search for librares. For adding it you just have to append it to the
LD_LIBRARY_PATH environment variable like this
Finally everything was running fine and smooth, I' ve just given a fast look to the tool, but in the next days I want to gave a more detailed look to it, I'm specially interested in the Irrlicht integration feature.
The tool has lots of options and things to learn, it comes with some examples and detailed documentation, so there is a lot to learn and experiment from here, I'll be reporting here my experiments as long as my free time allows me to, I maybe will also tweeting related stuff.
There is more to come! :)