Page 1 of 2

b3d Keyframe Animation Tips needed

Posted: Wed Jul 16, 2008 2:16 am
by r3i
Hi,
I tried to import a b3d file into Irrlicht and it doesnt animate. I need a Keyframe animation and i read that only md3 and md2 have this feature in Irrlicth.

1. How can I extend Irrlicht for giving the ability to animate a b3d file?
( Have some idea? )

2. There is a good md2,md3 exporter for 3d Studio Max 9 and there are some known problems about exporting in md2/3 ?

Thanks a lot :roll:

Posted: Thu Jul 17, 2008 11:06 am
by B@z
b3d DOESN'T support keyframe animation.
It supports bone animation.

Posted: Thu Jul 17, 2008 3:07 pm
by grayman
sure, .b3d is a nice format, i suggest to use the .b3d blender exporter made by gandalf yo can download it from here http://www.gandaldf.com/

Posted: Thu Jul 17, 2008 10:02 pm
by r3i
@ B@z : My exporter allows me to export animations ( Morphing, Key Frames and bones too ) with 3d Studio Max.
I'm using b3d pipeline http://www.onigirl.com/pipeline/

@ grayman: I'm using 3d Studio Max so I can't take gandalf's exporter :(

Posted: Thu Jul 17, 2008 10:11 pm
by dlangdev
can you post a sample b3d file you exported. perhaps someone here will download and test it for you.

Posted: Thu Jul 17, 2008 11:09 pm
by dlangdev
by the way, you can test your exported b3d file using fragmotion.

download it from here: http://fragmosoft.com/

load the b3d file and select the animation tab, you'll see list of animation nodes in there. click one of them and hit play button.

you're good to go from here.

Tested

Posted: Sat Jul 19, 2008 8:06 am
by r3i
I've tested my animation with Fragmosoft and it has frames but not animation. I'll keep trying to understand how export correctly.
Thanks : )

Posted: Mon Jul 21, 2008 3:46 am
by alrusdi
I'll keep trying to understand how export correctly.
Unfortunately you models will be animated in Irrlicht correctly if they will have ONLY bone-based animations.

Posted: Mon Jul 21, 2008 9:02 am
by hybrid
Do you have a file format description which explains the way keyframe anims are stored? AFAIK, there are only anim keys defined which work on BONE elements.

Posted: Mon Jul 21, 2008 2:30 pm
by alrusdi
hybrid, b3d specification can be found on oficial site of Blitz3D Game Engine
http://blitzbasic.com/sdkspecs/sdkspecs ... _specs.txt

1) If KEYS chunk appears after BONE chunk - it is skin (or bone-based) animation
2) If KEYS chunk appears after MESH chunk - it is matrix (or scale-move-rotate) animation
3) If KEYS chunk first in NODE chunk, then this node is pivot for nested nodes and KEYS describing matrix animation for this pivot

Workaround for 2-nd type of animation (currently unsupported in Irrlicht) is to create BONE before loading KEYS for current MESH. I was writen code for it, but this code is incorrect for complex models.
And I dont want to rewrite code, because its probably impossible to solve problem of 3-rd type of animation... I don't know how to create workable bone for node which doesnt contains any vertices. Or howto animate node like this. My opinion - i's unreachable with current Irrlicht animation system.

Posted: Mon Jul 21, 2008 7:54 pm
by hybrid
Well, of course I know this file, but it's IMHO the most ridiculous spec I've ever read. I've even found more info in the b3d online manual. Anyway, even your info is too few info for me :(

Posted: Tue Jul 22, 2008 3:43 am
by alrusdi
hybrid, Hm... This spec is probably very oriented to Blitz3D users...
this one may be more helpful: http://www.geocities.com/drago_blitz/B3dFormat.html

Posted: Tue Jul 22, 2008 8:34 am
by hybrid
No, the original file is simply not useful for anything, besides a structural recognition of sub-elements. The new one is better, but quite outdated. And even more important, it only talks about skeletal animation. I'm still wondering why you think that b3d supports key framed animations.

Posted: Tue Jul 22, 2008 10:15 am
by alrusdi
Nothing changed in .b3d file format structure after second specification was published.

What do you mean by termin "keyframe animation"?

IMHO it's animation defined by series of "keys" (each key stores scale position and rotation of object). When object animated value of key (according to current time) applied to object's matrix.

Skeletal (or skin-based, or bone-based) animation requires a special object (bone), which stores some data (keys, weights and skin). When bone animated position, rotation and scale of bone applied to each vertex of skin (according to weight).

Posted: Tue Jul 22, 2008 10:50 am
by hybrid
No, keyframe animation means an animation which stores several versions of a mesh, and interpolates between them in some fashion. The stored frames (which are bound to some frame number) are named key frames, because these are the main frames which define the animation. The minor frames are calculated from those, usually on the fly.
Your definition resembles to some "root bone animation", which is why you can easily convert from that one to an arbitrarily skinned animation.