Archived

This topic is now archived and is closed to further replies.

kmsixpence

D3D8 animation

Recommended Posts

Okay, here''s the deal. I''ve looked all over the net, and maybe i''m just not searching for the right stuff, but I havn''t found anything on animation in d3d8, at least not the kind i need. I would like to animate a .x file. I have it loaded into a frame where you can move it and stuff, but I wanted to do animations different than that. I heard you need to load a secend .x file and interpolate between them? Well, if that is the case, could anyone please send me to a link to even a spot in the directx8 documentation for help. Thanks!

Share this post


Link to post
Share on other sites
I have no idea how it works, because I haven''t gotten around to playing with it yet, but you probably want the ID3DXSkinMesh mesh class in the D3D documentation. It supports adding bones to meshes, which if you have ever used a 3d modelling / animation program, is usually the easiest way to model bipedal meshes. Specifically you want ID3DXSkinMesh::UpdateSkinnedMesh, which lets you specify a bunch of matrices to transform the bones in the mesh and deform the associated mesh.

If all you want to do is interpolate between 2 meshes, you should look up vertex tweening in the SDK, which is what the dolphin sample uses.

Share this post


Link to post
Share on other sites
Skin meshing using the D3DX interfaces is a pain in the arse. In my attempt to recreate that skinned mesh tutorial (after slicing out everything I didnt need), i took an 11 hour stint at my keyboard, and never actually got the mesh to move. My only recommendation is to write your own model format, and do the vertex/bone transformations in software. The concept is very simple, and you should be able to find lots of information about skinned meshes in general all over the web.

Z.

Share this post


Link to post
Share on other sites
Hello invective,

I noticed you recommended the UpdateSkinnedMesh function
previously. I am trying to use this function now
and it fails every time. Does this function work differently
than other DX functions? Any help would be appreciated.

Thanks,
Nick

Share this post


Link to post
Share on other sites