Help exporting a 3dsmax animation

Hi,

I'm using 3Dsmax to build and animate a biped character with a skin modifier. But I'm having a lot of trouble exporting the animation to .3ds. The bones move, but the skin just doesn't follow.



I've seen some amazing work done by others. Could you share how you got an animated character into jme?



Thanks a lot

  -Cuppo

for skeleton animation, ur best bet is md5. and good for u, 3ds max has some pretty good md5 exporters available.



check out the jme wiki page on md5 format.



heres my md5 importer and a viewer. http://code.google.com/p/md5importer/

Hi neakor,

Thanks for your help, I'll switch to md5 for my models.



I'm looking for md5 exporters for max. Is there a specific one that you would recommend? Right now, I'm leaning towards an exporter written by Berserker on the doom3 forums.

CuppoJava said:

Hi neakor,
Thanks for your help, I'll switch to md5 for my models.

I'm looking for md5 exporters for max. Is there a specific one that you would recommend? Right now, I'm leaning towards an exporter written by Berserker on the doom3 forums.


not a problem. i would actually suggest using the one written by der_ton. i think u can also find that on the doom3 forums.

i havent tried the Berserker's one. but the der_ton one works quite well for our artists.

Hi neakor,

I downloaded der_ton's exporter and it's working great so far. But I'm confused about how textures are stored in the MD5 format.

From what I've read, we need to manually take care of the textures ourselves? What does this mean?



Is there a textured example file that you are willing to share? Just a textured cube would be of great help.



Our workflow so far is:

Create models and texture them in 3DS Max.

Export models to MD5 using der_ton's exporter

Import models to JME using your importer.



So the last piece of the puzzle is to figure out how textures fit into this equation. Thanks a lot for your help.

  -Cuppo

textures should be automatically handled by the importer.



the md5 mesh file actually contains the texture information which the importer uses to load the texture.



for our project, we simply export the textured model, and everything is there already.



im not an artists, so i cant really tell u exactly how to texture the model, but if ur textures dont show up, try use a different shader for the texture. (i think its phong that works fine, but im not sure)

hey,

we have currently kind of the same problem.

We don't wanna to export pre-created Animations, but export a rigged model (biped/skin modifier) from 3ds max to jme.

Using some interactive Inputcontrollers for e.g. handtracking, we want to be able to manipulate the bones according to the tracked  movement of the user.



So modeling and skinning is not the problem in 3ds 2009 in the current tests.

But using Max's own colladaimporter seems to be absolute incompatible with Modelloader or Colladaimporter.

So we tried to export the model as .fbx, and use autodesk's FBXConverter afterwards to convert the file from .fbx to .dae

Seem's to work fine, and the import runs with 0 probs… the fpsNode says there are 2 models, the loggingsystem tells there is skin and bones created, and even debugging into the Importer shows there is a skinnode with a propper skin and Bonecontroller.

BUT…  :? … the model is absolute invisible… setting, CullMode, Cullstate, MaterialState has no effect.



Exporting just a static mesh from 3ds -> fbx -> convert to .dae -> import works absolutely fine.

So it seems that the reason for this prob is the "skinModifier" of 3ds. After it's  applied the model is invisible.





Edit: Digging into it, it seems this have to do with the influences of each vertex… if one/more vertex is not influenced by any bone, the triangle gets visible…



A question: does md5 save the weights of the bones-infulence  only into the pre-created animations or "global" for the existing bones. And has somebody here success by exporting md5 from 3dsmax?

A question: does md5 save the weights of the bones-infulence  only into the pre-created animations or "global" for the existing bones. And has somebody here success by exporting md5 from 3dsmax?


md5 saves weights for the bones, not the animations. it makes no sense to store weights for a particular animation. that way, u'll have to adjust ur weights all the time. the weights r stored in md5mesh file, so they r animation independent.

we use md5 at work here and also for another commercial project as well. and we both use 3dmax, it works perfectly fine.

for the collada problem, so far i havent seen any successful examples without using NCSoft in house collada exporter. i was thinking writing one that is compatiable with the jme collada importer, but i just dont have enought time right now.

here it works fine too. I saw it somewhere in the Sources: the Importer supports only one Skeleton per File. But there are not many reasons to have more than one :slight_smile:



I still have one Question. How to Debug the Bones from MD5 files? the SkeletonDebugger works only with the MD5Object, but the Importer gives me a modelNode. I tried to call its joints, and he finds all of them, but on other positions they should be.



In my Oppinion its better to make the Debugger compatible to JME, that user can activate/deactivate it always, instead of the way its done now. :’(

.:emp...hellg:. said:


I still have one Question. How to Debug the Bones from MD5 files? the SkeletonDebugger works only with the MD5Object, but the Importer gives me a modelNode. I tried to call its joints, and he finds all of them, but on other positions they should be.

In my Oppinion its better to make the Debugger compatible to JME, that user can activate/deactivate it always, instead of the way its done now. :'(


what skeleton debugger? md5importer doesnt have a skeleton debugger. i think md5reader has one. but the modelNode u r talking about is from md5importer....im confused. :?

jeah, I mean the Debugger of the Importer. the model Node is part of the MD5Importer:


public ModelNode getModelNode()



but the SkeletonDebugger wants a MD5Model

public SkeletonDebugger(MD5Model model) {
   this.model = model;
}



this stuff seems to works only with the MD5MeshParser, which isn't used by the Md5Importer itself.

To see the Bones is not so imported for me, but I want to use the PositionInformations of the Bones for Physics. Is there any other way to get the real Positions out of the ModelNode?

He neakor, I just saw in the Code, that you wrote this stuff. What do you use the most time, the MD5Importer, or the MD5MeshParser?

Greetings :D

i think theres some confusions here.



the MD5MeshParser is part of MD5Reader2 project which is not completed yet. that is maintained by ender.



MD5Importer is my version of loading md5 format 3d assets. it is complete and being used by a bunch of projects right now including my own commercial MMO and a MMO we r build at work here.



the SkeletonDebugger comes from MD5Reader which is an older version of MD5Reader2. ive never used it before and i dont really c a reason to create something like that for MD5Importer.


To see the Bones is not so imported for me, but I want to use the PositionInformations of the Bones for Physics. Is there any other way to get the real Positions out of the ModelNode?


the bones positions r all stored in the Joint class which u can retrieve from ModelNode.

if u wanna use MD5Importer, please go to my project page instead of the MD5Reader repository. for some reasons, ender hasnt deleted my code from their repository yet. ill ask him to do so to avoid future confusions.

http://code.google.com/p/md5importer/