Skeletal Animation Anyone?

I’ve never gotten very far with skeletal animation because i don’t have the patience to find the tools for creating (or documents for loading) a bone structure and it’s associated animations/poses.

Everything I have looked at so far doesn’t seem to work the way I would expect. I know I could write my own bone creator and poser, but that seems like such a waste of time …

The question is, for those of you with familiarity about the subject, what tools would you recommend for setting up skeletons and skeletal poses?

If it helps any, I typically use Lightwave for modeling.

Thanks!

you could take a look at d3’s md5mesh/md5anim file formats. google for sample code :slight_smile:

Don’t use Maya. I have.

O_o

You mean the FBX file format? Yeah, that’s the most terrible file-format / SDK i have ever worked with. Tried to do skeletal animation with it, too. I have never gotten all the bone data out of it, so i gave up. FBX might be well structured, but a structure without helpful documentation is worth ****.

The Doom 3 stuff is certainly a good starting point. Maybe you could also try Collada. It’s a bit complicated, but ok. If you try it, i advise you to do use Feeling Software’s importer. Parsing the files on your own is much work.

Jan.

I use collada as the main fileformat for geometry and animation.
Works fairly well, the amount of freedom this format supports is a bit confusing at first, but as soon as you understand the basic design-ideas it gets much more transparent.

I used the “official” low-level API for collada because the libraries from feelingsoftware don’t compile on Linux.

I used maya for bones too, their solver seems to be horribly unprecise when it comes to IK. Sometimes my bones started to “swim” or “float” in a range of [-0.3, 0.3] around the position where they were supposed to be.

Originally posted by namespace:
I used maya for bones too, their solver seems to be horribly unprecise when it comes to IK. Sometimes my bones started to “swim” or “float” in a range of [-0.3, 0.3] around the position where they were supposed to be.
For real?! 8-O That’s insane (unless you were 2^23, take or leave a few orders, units from 0.0, which I dubt)! I thought Maya was supposed to be very solid!

Was this a version pre or post Adobe?

I suppose you mean pre or post autodesk :slight_smile:

It was Maya 8, dunno if thats pre or post.

Originally posted by namespace:
I used the “official” low-level API for collada because the libraries from feelingsoftware don’t compile on Linux.
What :eek:
You need to write a single Makefile and the FCollada just compiles fine under Linux. Still that’s a shame they do not provide it, I do agree.

I think the following one should do the trick:

CC=g++
CXXFLAGS=-DLINUX -MD -fPIC -I. -I/usr/include/libxml2
LDFLAFS=-lxml2

all: listcpp
	make -j 8 FCollada

FCollada: OBJS
	ar -cq libFCollada.a $(OBJS)

listcpp:
	printf "OBJS=" > listcpp.inc
	for i in `find . -name "*.cpp"`; do printf " $$i" ; done | sed -e 's/\.cpp/\.o/g' -e "s/\.\/FColladaTest[A-Za-z\.\/]*//g"  >> listcpp.inc

-include listcpp.inc
-include *d */*d

OBJS: $(OBJS)

clean:
	find . -type f -name '*.o' -exec rm {} \;

Originally posted by tfpsly:
You need to write a single Makefile and the FCollada just compiles fine under Linux.
Maybe it does so now, I made the switch to collada over a year
ago and back then it was a mess. I used a auto-generated sconsfile for compilation which does exactly the same as your makefile.

Funny nobody mentions Cal3d… although it is old, it is open source, the programming is rather friendly and it comes with a decent demo app to show how to use the lib. Unfortunately, it does all the bone animation on the CPU, so the exercise to the reader is to convert it to some form of efficient vertex/fragment program running renderer.

Originally posted by namespace:
[quote]Originally posted by tfpsly:
You need to write a single Makefile and the FCollada just compiles fine under Linux.
Maybe it does so now, I made the switch to collada over a year
ago and back then it was a mess. I used a auto-generated sconsfile for compilation which does exactly the same as your makefile.
[/QUOTE]I haven’t tried compiling Collada under Linux before the latest version, and I’ve read some stl stuff used in Collada would not compile under Linux, (which sounds weird as stl is supposed to be quite portable). Maybe the Linux support is quite recent. Still I had a pleasant surprise having no bad surprise :slight_smile: