|
| 1 | +########################################################## |
| 2 | +# Info about the MD4 format supported by the ioQ3 engine # |
| 3 | +########################################################## |
| 4 | + |
| 5 | +All models included with the original version of Quake3 from id soft are in |
| 6 | +the MD3 format. Animations in this format are realized by saving the position |
| 7 | +of every vertex in each frame which can make these files pretty large. |
| 8 | + |
| 9 | +ID started work on a newer format, the MD4 format which they never finished. |
| 10 | +This format uses a skeleton with all vertices "attached" to their bones. |
| 11 | +Because only the position of the bones must be stored for each frame and the |
| 12 | +number of bones is not very high this format is more efficient when |
| 13 | +doing animations. |
| 14 | + |
| 15 | +Raven software "finished" this format originally started by ID and included |
| 16 | +it in their game EliteForce. They called their model format "MDR" which is |
| 17 | +the name I have used throughout the sourcecode and I will continue using in |
| 18 | +this readme. Since the code on how to handle those MDR files was released |
| 19 | +under a GPL licence a long time ago, I was able to implement this format for |
| 20 | +Quake3 and do some efficiency improvements. |
| 21 | +To enable the support for this model format, go to qcommon/qfiles.h, |
| 22 | +remove the comment slashes for #define RAVENMD4 and then compile the engine. |
| 23 | + |
| 24 | +Including finished MDR models in your projects is easy: just load the model |
| 25 | +files in your cgame code as you would normally load an MD3 model. The engine |
| 26 | +will expect the models to have a ".mdr" suffix. |
| 27 | +The rest is pretty much the same: Selecting the current animation frame, |
| 28 | +adding a skin to the model, etc.. |
| 29 | +You can check out the original eliteforce game sourcecode if you want to |
| 30 | +have examples on using the md4s. The source can be got at: |
| 31 | +http://eliteforce2.filefront.com/ |
| 32 | +You can also get reference MDR files there, just go to the model/skin |
| 33 | +section there and pick something to download. |
| 34 | + |
| 35 | +Now here comes the tricky part: |
| 36 | +Creating files with this format. There are tools to create these kinds of |
| 37 | +MDR files, like a plugin for Milkshape. |
| 38 | + |
| 39 | +A pretty good overview about MDR file creation is available at |
| 40 | +http://synapse.vgfort.com/ |
| 41 | +You can find some tools for creating MDR files there. |
| 42 | + |
| 43 | +On a sidenote: |
| 44 | +There is an independent implementation of the MD4 file format available |
| 45 | +here: |
| 46 | +http://gongo.quakedev.com/ |
| 47 | +At this time, ioquake3 has no support for these models though that may |
| 48 | +change in the future. Nevertheless, he has got a tool for skeletal |
| 49 | +animations that can possibly be hooked into the MDR format with some |
| 50 | +modifications. |
| 51 | + |
| 52 | + |
| 53 | +Good luck! |
| 54 | + - Thilo Schulz |
0 commit comments