December 10th, 2012, 09:37
I just got BMDVew2 compiling on linux, however exporting to 3DS using lib3ds produces garbage data, so if anyone wants to work on it here you go:
February 4th, 2013, 18:09
I got your source to build but I had to modify the Makefile. I attached the Makefile.txt (rename to Makefile).
I'm building under linux, not a mac.
Last edited by dashxdr; February 4th, 2013 at 18:14.
February 4th, 2013, 18:16
Ok I got it to build and I got it to load a .bdl file (from Mario.arc inside Super Mario Galaxy). I see Mario in the jesus pose, arms straight out. Are there any controls to animate him? I'm a newb as regards 3D. Are these the "bones" people speak of?
Originally Posted by antidote
February 4th, 2013, 20:51
Just an update in the hopes that this thread will be of more use to other people exploring this area.
There is a thread from 2008 timeframe on this site where these things were first getting worked out. Here's some of the link:
What's maddening is these people talk about viewing animations, they make comments on how cool they are... but they don't say what specific files they're viewing from Super Mario Galaxy to view the animations. Or even how to view animations in bmdview2. So here's that info:
In the dump of the Super Mario Galaxy you will see these files:
Unpack those. Inside the Mario.arc file is mario.bdl which contains the model (with bones, or control points, or whatever). This model can be animated, but doesn't contain any of the animation data itself.
Inside MarioAnime.arc are all the animation data files, they end in .bck. Here are some examples:
and so on.
With my linux built executable from the original post, having used my modified Makefile, I ended up with a program
To view the models, you pass a .bdl file to it on the command line:
To view an animation, you pass both the .bdl file and the .bck file on the command line:
bmdview2_glut mario.bdl run.bck
The animations play very slowly, something like 1/16th the speed they should. The source in bmdview2 can be modified, main.cpp:
float animTime = 16*16*g_time; //TODO: find the right factor for this
The original line had only 16*g_time, I added the 2nd "16*". This speeds up the animations.
I'd have loved to RTFM but there doesn't appear to be much documentation.
Hope this is helpful...
Last edited by dashxdr; February 4th, 2013 at 20:56.
February 5th, 2013, 16:59
Just FYI for anyone who cares, I'm likely going to be making some changes to the bmdview2 behaviour, so I created a google code project here:
February 22nd, 2013, 18:44
OK I found the critical problem in your exporter code, it was a very very minor typo.
Originally Posted by antidote
addons/export3ds.cpp line 287
- for(size_t k = 2; j < curr.points.size(); ++j)
+ for(size_t k = 2; k < curr.points.size(); ++k)
The point numbers for each triangle were garbled. I updated the copy of the codebase on googlecode:
Just posting this here for the sake of closure, even though the original poster seems to have vanished... The exported model now is recognizable.
April 3rd, 2013, 10:10
alright glad to see someone found it useful