|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #285 on: January 15, 2011, 09:15:48 AM » |
|
But, havent you ever been tempted to use what you DO have done to at least see if a model COULD be imported? Since Materials and Shaders aren't completely necessary for the functionality of the model, why not try importing something.
It doesn't even have to be a model of a character. Make a Ball or a pyrimid in 3DS max, export as a model type, convert, and see if it can be placed over someone. It'll just be a textureless, shaderless shape, but it would also be the first Non-MDL0 imported model in the UNIVERSE!!!
|
|
|
Logged
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #286 on: January 15, 2011, 09:24:07 AM » |
|
But, havent you ever been tempted to use what you DO have done to at least see if a model COULD be imported? Since Materials and Shaders aren't completely necessary for the functionality of the model, why not try importing something.
It doesn't even have to be a model of a character. Make a Ball or a pyrimid in 3DS max, export as a model type, convert, and see if it can be placed over someone. It'll just be a textureless, shaderless shape, but it would also be the first Non-MDL0 imported model in the UNIVERSE!!!
I see what you mean...
still need to figure out the... face...-...points... >_>
hey RTB... you wouldn't happen to know would you?? *asking a stupid question* I just need to figure out how to get the length of the face-points...
|
|
|
Logged
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #287 on: January 15, 2011, 11:02:21 AM » |
|
And one more final set of shader swapping, before I start figuring out what those values are for.
*PICTURE* Pikachu with Shader1 (EyesYellow) replacing Shader0 (Main)... No shading whatsoever. I've got an idea for one of my WIP vertex hacks from this.
*PICTURE* Pikachu with Shader2 (Metal00) replacing Shader0 (Main). Only a solid colour. How odd.
The "cloak" shader didn't seem to work right. It made Pikachu a bit darker, but turned pitch black (like in the first screenshots I posted) after using a Smash Attack.
Hey, how'd you do that? I have the preview version of brawlbox 6.4, and everytime I replace one shader with another, I get an "Object Reference not set to an instance of an object" when trying to save. Is there a newever version of BrawlBox I should be using, or is there a Hexing thing I'm missing, or...? I'd like to play around with this.
|
|
« Last Edit: January 15, 2011, 11:03:45 AM by Oshtoby »
|
Logged
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #288 on: January 15, 2011, 11:46:02 AM » |
|
And one more final set of shader swapping, before I start figuring out what those values are for.
*PICTURE* Pikachu with Shader1 (EyesYellow) replacing Shader0 (Main)... No shading whatsoever. I've got an idea for one of my WIP vertex hacks from this.
*PICTURE* Pikachu with Shader2 (Metal00) replacing Shader0 (Main). Only a solid colour. How odd.
The "cloak" shader didn't seem to work right. It made Pikachu a bit darker, but turned pitch black (like in the first screenshots I posted) after using a Smash Attack.
Hey, how'd you do that? I have the preview version of brawlbox 6.4, and everytime I replace one shader with another, I get an "Object Reference not set to an instance of an object" when trying to save. Is there a newever version of BrawlBox I should be using, or is there a Hexing thing I'm missing, or...? I'd like to play around with this. try using a hex editor... =P Brbx (I don't think) supports replacing them yet...
I'll send you my current template for HexEdit if you like... (you have to use it in edit mode to see everything)
|
|
|
Logged
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #289 on: January 15, 2011, 11:53:12 AM » |
|
And one more final set of shader swapping, before I start figuring out what those values are for.
*PICTURE* Pikachu with Shader1 (EyesYellow) replacing Shader0 (Main)... No shading whatsoever. I've got an idea for one of my WIP vertex hacks from this.
*PICTURE* Pikachu with Shader2 (Metal00) replacing Shader0 (Main). Only a solid colour. How odd.
The "cloak" shader didn't seem to work right. It made Pikachu a bit darker, but turned pitch black (like in the first screenshots I posted) after using a Smash Attack.
Hey, how'd you do that? I have the preview version of brawlbox 6.4, and everytime I replace one shader with another, I get an "Object Reference not set to an instance of an object" when trying to save. Is there a newever version of BrawlBox I should be using, or is there a Hexing thing I'm missing, or...? I'd like to play around with this. try using a hex editor... =P Brbx (I don't think) supports replacing them yet...
I'll send you my current template for HexEdit if you like... (you have to use it in edit mode to see everything)
Absolutely! That'd be awesome!
|
|
|
Logged
|
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #291 on: January 15, 2011, 01:44:56 PM » |
|
Ok, a lot happened while I was sleeping in lol My code is not done. Right now I'm working on assembling the bone structure while the face-points are being figured out. Kryal already has an entire page setup for reading EVERY SINGLE LITTLE BIT of the dae file, so that's not a problem. The part I have to work on is taking the values it returns, converting them correctly and then assembling the values together and writing them to an mdl0. I have the writing part done and almost have the assembling part done. And Tcll, I can fix the "typos" on Brawlbox v0.64 easily for you ![Tongue](https://forums.kc-mm.com/Smileys/default/tongue.gif) p.s. your chat site died O_o
|
|
|
Logged
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #292 on: January 15, 2011, 01:47:36 PM » |
|
Ok, a lot happened while I was sleeping in lol My code is not done. Right now I'm working on assembling the bone structure while the face-points are being figured out. Kryal already has an entire page setup for reading EVERY SINGLE LITTLE BIT of the dae file, so that's not a problem. The part I have to work on is taking the values it returns, converting them correctly and then assembling the values together and writing them to an mdl0. I have the writing part done and almost have the assembling part done. And Tcll, I can fix the "typos" on Brawlbox v0.64 easily for you ![Tongue](https://forums.kc-mm.com/Smileys/default/tongue.gif) p.s. your chat site died O_o hang on... can't really post anything here yet... http://www.smashboards.com/showthread.php?t=277835
|
|
|
Logged
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #293 on: January 15, 2011, 01:59:02 PM » |
|
Oh and yeah, you really should learn C#. Kryal's code probably has all your answers, but I'm not sure where to look. If you can find a page that you think might contain an answer to your question, I can take a look at it for you ![Wink](https://forums.kc-mm.com/Smileys/default/wink.gif)
|
|
|
Logged
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #294 on: January 15, 2011, 03:58:58 PM » |
|
It doesn't even have to be a model of a character. Make a Ball or a pyrimid in 3DS max, export as a model type, convert, and see if it can be placed over someone. It'll just be a textureless, shaderless shape, but it would also be the first Non-MDL0 imported model in the UNIVERSE!!! And my two Jigglypuff hats and Maxim Tomato replacement aren't? Here ya go. (EDIT: Hold on, it broke somehow. Lemme fix it up.) here's my HexEdit template:use with this version of HexEdit (no trial period)http://lh4.ggpht.com/_IteXPmeC6ek/TTG-lguMneI/AAAAAAAACXI/gGQWKEP-h04/GUI.jpg <?xml version="1.0"?> <!DOCTYPE binary_file_format SYSTEM "BinaryFileFormat.dtd"> <binary_file_format name="MDL0" type_name="" comment="" expr="" default_byte_order="big" default_read_only="false" default_char_set="ansi"> <define_struct type_name="geometries" comment="" expr=""> <data type="int" name="count" format="signed" len="2" display=""/> <for name="point" count="count || count - 1" stop_test="count == 0" type_name="" comment=""> <struct name="" type_name="" comment="" expr=""> <if test="header.vtx_des2 == 2" comment=""> <data type="none" name="vtx2" len="4"/> </if> <!-- <if test="header.vtx_des2 == 3" comment=""> <data type="none" name="vtx3" len="9"/> </if> --> </struct> </for> </define_struct> <define_struct type_name="offset_name" comment="" expr=""> <data type="int" name="str_len" format="unsigned" len="1" display=""/> <data type="string" name="name" format="ascii" len="str_len" display=""/> </define_struct> <define_struct type_name="bounds" comment="" expr=""> <data type="int" name="min_X" format="unsigned" len="4" display=""/> <data type="int" name="min_Y" format="unsigned" len="4" display=""/> <data type="int" name="min_Z" format="unsigned" len="4" display=""/> <data type="int" name="max_X" format="unsigned" len="4" display=""/> <data type="int" name="max_Y" format="unsigned" len="4" display=""/> <data type="int" name="max_Z" format="unsigned" len="4" display=""/> <data type="none" name="pad" len="8"/> </define_struct> <define_struct type_name="relocation_group" comment="" expr=""> <data type="int" name="block_len" format="unsigned" len="4" display=""/> <data type="int" name="num_offsets" format="unsigned" len="4" display=""/> <data type="int" name="tag" format="unsigned" len="4" display="hex"/> <data type="int" name="unk1" format="unsigned" len="2" display="hex"/> <data type="int" name="unk2" format="unsigned" len="2" display="hex"/> <data type="int" name="pad" format="unsigned" len="8" display="hex"/> </define_struct> <define_struct type_name="relocation_offset" comment="" expr=""> <data type="int" name="ID" format="unsigned" len="2" display=""/> <data type="int" name="unk1" format="unsigned" len="2" display="hex"/> <data type="int" name="unk2" format="unsigned" len="2" display="hex"/> <data type="int" name="unk3" format="unsigned" len="2" display="hex"/> <data type="int" name="string_offset" format="unsigned" len="4" display=""/> <data type="int" name="data_offset" format="unsigned" len="4" display=""/> </define_struct> <define_struct type_name="Definitions" comment="" expr=""> <for name="type" count="" stop_test="this.type == 1" type_name="" comment=""> <struct name="" type_name="" comment="" expr="type{this.type}"> <data type="int" name="type" format="unsigned" len="1" display=""/> <if test="type == 2" comment=""> <struct name="t2" type_name="" comment="" expr="({this.ID1},{this.ID2})"> <data type="int" name="ID1" format="unsigned" len="2" display=""/> <data type="int" name="ID2" format="unsigned" len="2" display=""/> </struct> </if> <if test="type == 3" comment=""> <struct name="t3" type_name="" comment="" expr="({this.ID}) ({this.count})"> <data type="int" name="ID" format="unsigned" len="2" display=""/> <data type="int" name="count" format="unsigned" len="1" display=""/> <for name="tmp" count="count || count - 1" stop_test="count == 0" type_name="" comment=""> <data type="none" name="" len="6"/> </for> </struct> </if> <if test="type == 4" comment=""> <struct name="t4" type_name="" comment="" expr="({this.ID1},{this.ID2},{this.ID3},{this.ID4})"> <data type="int" name="ID1" format="unsigned" len="2" display=""/> <data type="int" name="ID2" format="unsigned" len="2" display=""/> <data type="int" name="ID3" format="unsigned" len="2" display=""/> <data type="int" name="ID4" format="unsigned" len="1" display=""/> </struct> </if> <if test="type == 5" comment=""> <struct name="t5" type_name="" comment="" expr="({this.ID1},{this.ID2})"> <data type="int" name="ID1" format="unsigned" len="2" display=""/> <data type="int" name="ID2" format="unsigned" len="2" display=""/> </struct> </if> </struct> </for> </define_struct> <define_struct type_name="Bones" comment="" expr=""> <struct name="bone_header" type_name="" comment="" expr=""> <data type="int" name="header_len" len="4" format="unsigned" display=""/> <data type="int" name="MDL0_offset" len="4" format="signed" display=""/> <data type="int" name="string_offset" len="4" format="unsigned" display=""/> <data type="int" name="bone_index" len="4" format="unsigned" display=""/> <data type="int" name="node_ID" len="4" format="unsigned" display=""/> <data type="int" name="flags" len="4" format="unsigned" display=""/> <data type="int" name="pad" len="8" format="unsigned" display=""/> <struct name="loc_rot_sca" type_name="" comment="" expr=""> <data type="int" name="sca_X" format="unsigned" len="4" display=""/> <data type="int" name="sca_Y" len="4" format="unsigned" display=""/> <data type="int" name="sca_Z" len="4" format="unsigned" display=""/> <data type="int" name="rot_X" len="4" format="unsigned" display=""/> <data type="int" name="rot_Y" len="4" format="unsigned" display=""/> <data type="int" name="rot_Z" len="4" format="unsigned" display=""/> <data type="int" name="loc_X" len="4" format="unsigned" display=""/> <data type="int" name="loc_Y" len="4" format="unsigned" display=""/> <data type="int" name="loc_Z" len="4" format="unsigned" display=""/> </struct> <struct name="bound" type_name="" comment="" expr=""> <data type="int" name="min_X" len="4" format="unsigned" display=""/> <data type="int" name="min_Y" len="4" format="unsigned" display=""/> <data type="int" name="min_Z" len="4" format="unsigned" display=""/> <data type="int" name="max_X" len="4" format="unsigned" display=""/> <data type="int" name="max_Y" len="4" format="unsigned" display=""/> <data type="int" name="max_Z" len="4" format="unsigned" display=""/> </struct> <data type="int" name="parent" len="4" format="signed" display=""/> <data type="int" name="child" len="4" format="unsigned" display=""/> <data type="int" name="next" len="4" format="unsigned" display=""/> <data type="int" name="prev" len="4" format="unsigned" display=""/> <data type="int" name="part2" len="4" format="unsigned" display=""/> </struct> <struct name="frame_matrix" type_name="" comment="" expr=""> <data type="int" name="s_1_1" format="signed" len="4" display=""/> <data type="int" name="s_2_1" format="signed" len="4" display=""/> <data type="int" name="s_3_1" format="signed" len="4" display=""/> <data type="int" name="s_4_1" format="signed" len="4" display=""/> <data type="int" name="s_1_2" format="signed" len="4" display=""/> <data type="int" name="s_2_2" format="signed" len="4" display=""/> <data type="int" name="s_3_2" format="signed" len="4" display=""/> <data type="int" name="s_4_2" format="signed" len="4" display=""/> <data type="int" name="s_1_3" format="signed" len="4" display=""/> <data type="int" name="s_2_3" format="signed" len="4" display=""/> <data type="int" name="s_3_3" format="signed" len="4" display=""/> <data type="int" name="s_4_3" format="signed" len="4" display=""/> </struct> <struct name="inverse_matrix" type_name="" comment="" expr=""> <data type="int" name="s_1_1" format="signed" len="4" display=""/> <data type="int" name="s_2_1" format="signed" len="4" display=""/> <data type="int" name="s_3_1" format="signed" len="4" display=""/> <data type="int" name="s_4_1" format="signed" len="4" display=""/> <data type="int" name="s_1_2" format="signed" len="4" display=""/> <data type="int" name="s_2_2" format="signed" len="4" display=""/> <data type="int" name="s_3_2" format="signed" len="4" display=""/> <data type="int" name="s_4_2" format="signed" len="4" display=""/> <data type="int" name="s_1_3" format="signed" len="4" display=""/> <data type="int" name="s_2_3" format="signed" len="4" display=""/> <data type="int" name="s_3_3" format="signed" len="4" display=""/> <data type="int" name="s_4_3" format="signed" len="4" display=""/> </struct> </define_struct> <define_struct type_name="Vertices" comment="" expr=""> <struct name="vertice_header" type_name="" comment="" expr=""> <data type="int" name="block_size" len="4" format="unsigned" display=""/> <data type="int" name="MDL0_offset" len="4" format="signed" display=""/> <data type="int" name="data_offset" len="4" format="unsigned" display=""/> <data type="int" name="string_offset" len="4" format="unsigned" display=""/> <data type="int" name="ID" len="4" format="unsigned" display=""/> <data type="int" name="isXYZ" len="4" format="unsigned" display=""/> <data type="int" name="type" len="4" format="unsigned" display=""/> <data type="int" name="modifier" len="1" format="unsigned" display=""/> <data type="int" name="entry_stride" len="1" format="unsigned" display=""/> <data type="int" name="num_vertices" len="2" format="unsigned" display=""/> <if test="isXYZ == 1" comment=""> <use_struct name="bounds" expr="" type_name="bounds" comment=""/> </if> </struct> <data type="string" name="vertices" len="vertice_header.entry_stride * vertice_header.num_vertices" format="default" display="vert structures" comment="I could've put a 'FOR' here, but it'd take too long when loading the file"/> <data type="none" name="pad" len="vertice_header.block_size - (vertice_header.entry_stride*vertice_header.num_vertices) - vertice_header.data_offset"/> </define_struct> <define_struct type_name="Normals" comment="" expr=""> <struct name="normal_header" type_name="" comment="" expr=""> <data type="int" name="block_size" len="4" format="unsigned" display=""/> <data type="int" name="MDL0_offset" len="4" format="signed" display=""/> <data type="int" name="data_offset" len="4" format="unsigned" display=""/> <data type="int" name="string_offset" len="4" format="unsigned" display=""/> <data type="int" name="ID" len="4" format="unsigned" display=""/> <data type="int" name="isXYZ" len="4" format="unsigned" display=""/> <data type="int" name="type" len="4" format="unsigned" display=""/> <data type="int" name="modifier" len="1" format="unsigned" display=""/> <data type="int" name="entry_stride" len="1" format="unsigned" display=""/> <data type="int" name="num_normals" len="2" format="unsigned" display=""/> <if test="isXYZ == 1" comment=""> <use_struct name="bounds" expr="" type_name="bounds" comment=""/> </if> </struct> <data type="string" name="normals" format="default" display="normal structures" len="normal_header.entry_stride*normal_header.num_normals" comment="I could've put a 'FOR' here, but it'd take too long when loading the file"/> <data type="none" name="pad" len="normal_header.block_size - (normal_header.entry_stride*normal_header.num_normals) - normal_header.data_offset"/> </define_struct> <define_struct type_name="Colors" comment="" expr=""> <struct name="color_header" type_name="" comment="" expr=""> <data type="int" name="block_size" len="4" format="signed" display=""/> <data type="int" name="MDL0_offset" len="4" format="signed" display=""/> <data type="int" name="data_offset" len="4" format="signed" display=""/> <data type="int" name="string_offset" len="4" format="signed" display=""/> <data type="int" name="ID" len="4" format="signed" display=""/> <data type="int" name="isRGBA" len="4" format="signed" display=""/> <data type="int" name="type" len="4" format="signed" display=""/> <data type="int" name="entry_stride" len="1" format="signed" display=""/> <data type="int" name="modifier" len="1" format="signed" display=""/> <data type="int" name="num_colors" len="2" format="signed" display=""/> </struct> <for name="color" count="color_header.num_colors || color_header.num_colors - 1" stop_test="color_header.num_colors == 0" type_name="" comment=""> <data type="none" name="color" len="color_header.entry_stride"/> </for> <data type="none" name="pad" len="color_header.block_size - (color_header.num_colors*color_header.entry_stride) - 32"/> </define_struct> <define_struct type_name="UV_Points" comment="" expr=""> <struct name="UV_header" type_name="" comment="" expr=""> <data type="int" name="block_size" len="4" format="unsigned" display=""/> <data type="int" name="MDL0_offset" len="4" format="signed" display=""/> <data type="int" name="data_offset" len="4" format="unsigned" display=""/> <data type="int" name="string_offset" len="4" format="unsigned" display=""/> <data type="int" name="ID" len="4" format="unsigned" display=""/> <data type="int" name="isXY" len="4" format="unsigned" display=""/> <data type="int" name="type" len="4" format="unsigned" display=""/> <data type="int" name="modifier" len="1" format="unsigned" display=""/> <data type="int" name="entry_stride" len="1" format="unsigned" display=""/> <data type="int" name="num_UVs" len="2" format="unsigned" display=""/> <if test="isXY == 1" comment=""> <struct name="bounds" expr="" type_name="" comment=""> <data type="int" name="min_X" format="unsigned" len="4" display=""/> <data type="int" name="min_Y" format="unsigned" len="4" display=""/> <data type="int" name="max_X" format="unsigned" len="4" display=""/> <data type="int" name="max_Y" format="unsigned" len="4" display=""/> <data type="none" name="pad" len="16"/> </struct> </if> </struct> <data type="string" name="UVs" len="UV_header.entry_stride * UV_header.num_UVs" format="default" display="uv structures" comment="I could've put a 'FOR' here, but it'd take too long when loading the file"/> <data type="none" name="pad" len="UV_header.block_size - (UV_header.entry_stride*UV_header.num_UVs) - UV_header.data_offset"/> </define_struct> <define_struct type_name="Shaders" comment="" expr=""> <struct name="header" type_name="" comment="" expr=""> <data type="int" name="block_size" len="4" format="unsigned" display=""/> <data type="int" name="MDL0_offset" len="4" format="signed" display=""/> <data type="int" name="string_offset" len="4" format="unsigned" display=""/> <data type="int" name="ID" len="4" format="unsigned" display=""/> <data type="int" name="unk1" len="4" format="unsigned" display=""/> <data type="int" name="textures" len="1" format="unsigned" display=""/> <data type="int" name="num_layers" len="1" format="unsigned" display=""/> <data type="int" name="Flag3" len="1" format="unsigned" display=""/> <data type="int" name="Flag4" len="1" format="unsigned" display=""/> <data type="int" name="type" len="4" format="unsigned" display=""/> <data type="int" name="Flag5" len="1" format="unsigned" display=""/> <data type="int" name="Flag6" len="1" format="unsigned" display=""/> <data type="int" name="Flag7" len="1" format="unsigned" display=""/> <data type="int" name="Flag8" len="1" format="unsigned" display=""/> <data type="int" name="unk3" format="unsigned" len="4" display=""/> <data type="int" name="unk4" format="signed" len="4" display=""/> <data type="int" name="material_offset" format="signed" len="4" display=""/> <data type="int" name="num_textures" format="signed" len="4" display=""/> <data type="int" name="textures_offset" format="signed" len="4" display=""/> <data type="int" name="P4_offset" format="signed" len="4" display=""/> <data type="int" name="P5_offset" format="signed" len="4" display=""/> <data type="int" name="P6_offset" format="signed" len="4" display=""/> </struct> <data type="none" name="tmp" len="header.textures_offset - 64"/><jump offset="header.material_offset+(header.MDL0_offset*-1)" comment="" origin="start"> <use_struct name="Material_Reference" expr="" type_name="Materials" comment=""/> </jump> <if test="header.textures_offset != 0" comment=""> <jump offset="header.textures_offset+(header.MDL0_offset*-1)" comment="" origin="start"> <for name="texture" count="header.textures || header.textures -1" stop_test="header.textures == 0" type_name="" comment=""> <struct name="texture" type_name="" comment="" expr="{this.offset_name.name}"> <data type="int" name="string_offset" format="signed" len="4" display=""/> <data type="int" name="pad" len="4" format="signed" display=""/> <data type="int" name="unk1" format="signed" len="4" display=""/> <data type="int" name="unk2" format="signed" len="4" display=""/> <data type="int" name="unk3" format="signed" len="4" display=""/> <data type="int" name="unk4" format="signed" len="4" display=""/> <data type="int" name="layerID1" format="signed" len="4" display=""/> <data type="int" name="layerID2" format="signed" len="4" display=""/> <data type="int" name="unk5" format="signed" len="4" display=""/> <data type="int" name="unk6" format="signed" len="4" display=""/> <data type="int" name="float" format="unsigned" len="4" display=""/> <data type="int" name="unk7" format="signed" len="4" display=""/> <data type="int" name="unk8" format="signed" len="4" display=""/> <jump offset="string_offset -53" comment="" origin="current"> <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/> </jump> </struct> </for> </jump> </if> <if test="header.P4_offset != 0" comment=""> <jump offset="header.P4_offset+(header.MDL0_offset*-1)" comment="" origin="start"> <struct name="P4" type_name="" comment="" expr=""> <data type="int" name="tmp" format="signed" len="4" display=""/> </struct> </jump> </if> <if test="header.P5_offset != 0" comment=""> <jump offset="header.P5_offset+(header.MDL0_offset*-1)" comment="" origin="start"> <struct name="P5" type_name="" comment="" expr=""> <data type="none" name="tmp" len="384"/> </struct> </jump> </if> <if test="header.P6_offset != 0" comment=""> <jump offset="header.P6_offset+(header.MDL0_offset*-1)" comment="" origin="start"> <struct name="P6" type_name="" comment="" expr=""> <data type="none" name="tmp" len="384"/> </struct> </jump> </if> </define_struct> <define_struct type_name="Materials" comment="" expr=""> <struct name="header" type_name="" comment="" expr=""> <data type="int" name="block_length" format="signed" len="4" display=""/> <data type="int" name="MDL0_offset" format="signed" len="4" display=""/> <data type="int" name="ID" format="signed" len="4" display=""/> <data type="int" name="unk" format="unsigned" len="1" display=""/> </struct> <data type="none" name="tmp" len="header.block_length - 13"/> </define_struct> <define_struct type_name="Objects" comment="" expr=""> <struct name="header" type_name="" comment="" expr=""> <data type="int" name="block_size" len="4" format="signed" display=""/> <data type="int" name="MDL0_offset" len="4" format="signed" display=""/> <data type="int" name="node_ID" len="4" format="signed" display=""/> <data type="int" name="vtx_des1" len="4" format="signed" display=""/> <data type="int" name="vtx_des2" len="4" format="signed" display=""/> <data type="int" name="vtx_addons" len="4" format="signed" display=""/> <data type="int" name="layout1" len="4" format="signed" display="" comment="vtx, nor, and clr"/> <data type="int" name="layout2" len="4" format="signed" display="" comment="uv src"/> <data type="int" name="shader_instr" len="4" format="signed" display=""/> <data type="int" name="data_len" len="4" format="signed" display=""/> <data type="int" name="data_len2" len="4" format="signed" display=""/> <data type="int" name="data_offset" len="4" format="signed" display=""/> <data type="int" name="layout3" len="4" format="signed" display="" comment="vtx src"/> <data type="int" name="unk" len="4" format="signed" display=""/> <data type="int" name="string_offset" len="4" format="signed" display=""/> <data type="int" name="ID" len="4" format="signed" display=""/> <data type="int" name="num_verts" len="4" format="signed" display=""/> <data type="int" name="num_faces" len="4" format="signed" display=""/> <data type="int" name="pos_inp" len="2" format="signed" display=""/> <data type="int" name="nor_inp" len="2" format="signed" display=""/> <data type="int" name="clr0_inp" len="2" format="signed" display=""/> <data type="int" name="clr1_inp" len="2" format="signed" display=""/> <data type="int" name="crd0_inp" len="2" format="signed" display=""/> <data type="int" name="crd1_inp" len="2" format="signed" display=""/> <data type="int" name="crd2_inp" len="2" format="signed" display=""/> <data type="int" name="crd3_inp" len="2" format="signed" display=""/> <data type="int" name="crd4_inp" len="2" format="signed" display=""/> <data type="int" name="crd5_inp" len="2" format="signed" display=""/> <data type="int" name="crd6_inp" len="2" format="signed" display=""/> <data type="int" name="crd7_inp" len="2" format="signed" display=""/> <data type="int" name="weights" len="4" format="signed" display=""/> </struct> <!--<jump offset="(header.MDL0_offset*-1) + header.data_offset +36" comment="" origin="start"> <for name="type" count="" stop_test="this.type == 0" type_name="" comment=""> <struct name="" type_name="" comment="" expr="{this.type}"> <data type="int" name="type" format="unsigned" len="1" display="hex"/> <if test="type == 32" comment=""> <data type="none" name="pos_mtx" len="4"/> </if> <if test="type == 40" comment=""> <data type="none" name="nor_mtx" len="4"/> </if> <if test="type == 48" comment=""> <data type="none" name="tex_mtx" len="4"/> </if> <if test="type == 56" comment=""> <data type="none" name="lit_mtx" len="4"/> </if> <if test="type == 128" comment=""> <use_struct name="Quad" expr="" type_name="geometries" comment=""/> </if> <if test="type == 144" comment=""> <use_struct name="Tri" expr="" type_name="geometries" comment=""/> </if> <if test="type == 152" comment=""> <use_struct name="Tri_Strip" expr="" type_name="geometries" comment=""/> </if> <if test="type == 160" comment=""> <use_struct name="Tri_Fan" expr="" type_name="geometries" comment=""/> </if> <if test="type == 168" comment=""> <use_struct name="Line" expr="" type_name="geometries" comment=""/> </if> <if test="type == 176" comment=""> <use_struct name="Line_Strip" expr="" type_name="geometries" comment=""/> </if> <if test="type == 184" comment=""> <use_struct name="Point" expr="" type_name="geometries" comment=""/> </if> </struct> </for> </jump>--> </define_struct> <define_struct type_name="Textures" comment="" expr=""> <data type="int" name="textures" format="signed" len="4" display=""/> <for name="texture" count="textures || textures - 1" stop_test="textures == 0" type_name="" comment=""> <struct name="texture" type_name="" comment="" expr="X: {this.X}, Y: {this.Y}"> <data type="int" name="X" format="unsigned" len="4" display=""/> <data type="int" name="Y" format="unsigned" len="4" display=""/> </struct> </for> </define_struct> <define_struct type_name="Pallets" comment="" expr=""> <data type="int" name="pallets" format="signed" len="4" display=""/> <for name="pallet" count="pallets || pallets - 1" stop_test="pallets == 0" type_name="" comment=""> <struct name="texture" type_name="" comment="" expr="X: {this.X}, Y: {this.Y}"> <data type="int" name="X" format="unsigned" len="4" display=""/> <data type="int" name="Y" format="unsigned" len="4" display=""/> </struct> </for> </define_struct> <struct name="header" type_name="" comment="" expr=""> <data type="string" name="magic" len="4" format="ascii" display=""/> <data type="int" name="filesize" format="unsigned" len="4" display=""/> <data type="int" name="sections" format="unsigned" len="4" display=""/> <data type="int" name="nodes" format="signed" len="4" display=""/> <struct name="lists" type_name="" comment="" expr=""> <data type="int" name="Definitions" format="unsigned" len="4" display=""/> <data type="int" name="Bones" format="unsigned" len="4" display=""/> <data type="int" name="Vertices" format="unsigned" len="4" display=""/> <data type="int" name="Normals" format="unsigned" len="4" display=""/> <data type="int" name="Colors" format="unsigned" len="4" display=""/> <data type="int" name="UV_Points" format="unsigned" len="4" display=""/> <data type="int" name="Shaders" format="unsigned" len="4" display=""/> <data type="int" name="Materials" format="unsigned" len="4" display=""/> <data type="int" name="Objects" format="unsigned" len="4" display=""/> <data type="int" name="Textures" format="unsigned" len="4" display=""/> <data type="int" name="Pallets" format="unsigned" len="4" display=""/> </struct> <data type="int" name="name_offset" format="unsigned" len="4" display=""/> <data type="int" name="header_len" format="unsigned" len="4" display=""/> <data type="int" name="header_offset" format="signed" len="4" display=""/> <data type="int" name="unk1" format="unsigned" len="4" display=""/> <data type="int" name="unk2" format="unsigned" len="4" display=""/> <data type="int" name="num_verticies" format="unsigned" len="4" display=""/> <data type="int" name="num_faces" format="unsigned" len="4" display=""/> <data type="int" name="unk3" format="unsigned" len="4" display=""/> <data type="int" name="num_nodes" format="unsigned" len="4" display=""/> <data type="int" name="version" format="unsigned" len="4" display=""/> <data type="int" name="unk4" format="unsigned" len="2" display=""/> <data type="int" name="unk5" format="unsigned" len="2" display=""/> <struct name="bounds" type_name="" comment="" expr=""> <data type="int" name="min_X" format="unsigned" len="4" display=""/> <data type="int" name="min_Y" format="unsigned" len="4" display=""/> <data type="int" name="min_Z" format="unsigned" len="4" display=""/> <data type="int" name="max_X" format="unsigned" len="4" display=""/> <data type="int" name="max_Y" format="unsigned" len="4" display=""/> <data type="int" name="max_Z" format="unsigned" len="4" display=""/> </struct> </struct> <jump offset="header.nodes * -1" comment="" origin="start"> <struct name="nodes" type_name="" comment="" expr=""> <data type="int" name="num_nodes" format="signed" len="4" display=""/> <for name="node" count="num_nodes || num_nodes - 1" stop_test="num_nodes == 0" type_name="" comment=""> <data type="int" name="node" format="signed" len="4" display=""/> </for> </struct> </jump> <if test="header.lists.Definitions == 0" comment=""> <jump offset="header.lists.Definitions" comment="" origin="start"> <struct name="Definitions" type_name="" comment="" expr=""> <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/> <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment=""> <struct name="data" type_name="" comment="" expr="{this.offset_name.name}"> <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/> <jump offset="relocation_offset.data_offset + header.lists.Definitions" comment="" origin="start"> <use_struct name="Definitions" expr="" type_name="Definitions" comment=""/> </jump> <jump offset="relocation_offset.string_offset + header.lists.Definitions - 1" comment="" origin="start"> <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/> </jump> </struct> </for> </struct> </jump> </if> <if test="header.lists.Bones != 0" comment=""> <jump offset="header.lists.Bones" comment="" origin="start"> <struct name="Bones" type_name="" comment="" expr=""> <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/> <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment=""> <struct name="data" type_name="" comment="" expr="{this.offset_name.name}"> <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/> <jump offset="relocation_offset.data_offset + header.lists.Bones" comment="" origin="start"> <use_struct name="Bone_data" expr="" type_name="Bones" comment=""/> </jump> <jump offset="relocation_offset.string_offset + header.lists.Bones - 1" comment="" origin="start"> <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/> </jump> </struct> </for> </struct> </jump> </if> <if test="header.lists.Vertices != 0" comment=""> <jump offset="header.lists.Vertices" comment="" origin="start"> <struct name="Vertices" type_name="" comment="" expr=""> <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/> <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment=""> <struct name="data" type_name="" comment="" expr="{this.offset_name.name}"> <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/> <jump offset="relocation_offset.data_offset + header.lists.Vertices" comment="" origin="start"> <use_struct name="Vertices" expr="" type_name="Vertices" comment=""/> </jump> <jump offset="relocation_offset.string_offset + header.lists.Vertices - 1" comment="" origin="start"> <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/> </jump> </struct> </for> </struct> </jump> </if> <if test="header.lists.Normals != 0" comment=""> <jump offset="header.lists.Normals" comment="" origin="start"> <struct name="Normals" type_name="" comment="" expr=""> <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/> <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment=""> <struct name="data" type_name="" comment="" expr="{this.offset_name.name}"> <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/> <jump offset="relocation_offset.data_offset + header.lists.Normals" comment="" origin="start"> <use_struct name="Normals" expr="" type_name="Normals" comment=""/> </jump> <jump offset="relocation_offset.string_offset + header.lists.Normals - 1" comment="" origin="start"> <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/> </jump> </struct> </for> </struct> </jump> </if> <if test="header.lists.Colors != 0" comment=""> <jump offset="header.lists.Colors" comment="" origin="start"> <struct name="Colors" type_name="" comment="" expr=""> <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/> <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment=""> <struct name="data" type_name="" comment="" expr="{this.offset_name.name}"> <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/> <jump offset="relocation_offset.data_offset + header.lists.Colors" comment="" origin="start"> <use_struct name="Colors" expr="" type_name="Colors" comment=""/> </jump> <jump offset="relocation_offset.string_offset + header.lists.Colors - 1" comment="" origin="start"> <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/> </jump> </struct> </for> </struct> </jump> </if> <if test="header.lists.UV_Points != 0" comment=""> <jump offset="header.lists.UV_Points" comment="" origin="start"> <struct name="UV_Points" type_name="" comment="" expr=""> <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/> <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment=""> <struct name="data" type_name="" comment="" expr="{this.offset_name.name}"> <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/> <jump offset="relocation_offset.data_offset + header.lists.UV_Points" comment="" origin="start"> <use_struct name="UV_Points" expr="" type_name="UV_Points" comment=""/> </jump> <jump offset="relocation_offset.string_offset + header.lists.UV_Points - 1" comment="" origin="start"> <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/> </jump> </struct> </for> </struct> </jump> </if> <if test="header.lists.Shaders != 0" comment=""> <jump offset="header.lists. Shaders" comment="" origin="start"> <struct name="Shaders" type_name="" comment="" expr=""> <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/> <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment=""> <struct name="data" type_name="" comment="" expr="{this.offset_name.name}"> <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/> <jump offset="relocation_offset.data_offset + header.lists.Shaders" comment="" origin="start"> <use_struct name="Shaders" expr="" type_name="Shaders" comment=""/> </jump> <jump offset="relocation_offset.string_offset + header.lists.Shaders - 1" comment="" origin="start"> <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/> </jump> </struct> </for> </struct> </jump> </if>
|
|
« Last Edit: January 15, 2011, 04:03:00 PM by RandomTBush »
|
Logged
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #295 on: January 15, 2011, 04:04:54 PM » |
|
Gah, I have to put the last part in a separate post. Stupid character limit. <if test="header.lists.Materials != 0" comment=""> <jump offset="header.lists.Materials" comment="" origin="start"> <struct name="Materials" type_name="" comment="" expr=""> <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/> <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment=""> <struct name="data" type_name="" comment="" expr="{this.offset_name.name}"> <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/> <jump offset="relocation_offset.data_offset + header.lists.Materials" comment="" origin="start"> <use_struct name="Materials" expr="" type_name="Materials" comment=""/> </jump> <jump offset="relocation_offset.string_offset + header.lists.Materials - 1" comment="" origin="start"> <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/> </jump> </struct> </for> </struct> </jump> </if> <if test="header.lists.Objects != 0" comment=""> <jump offset="header.lists.Objects" comment="" origin="start"> <struct name="Objects" type_name="" comment="" expr=""> <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/> <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment=""> <struct name="data" type_name="" comment="" expr="{this.offset_name.name}"> <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/> <jump offset="relocation_offset.data_offset + header.lists.Objects" comment="" origin="start"> <use_struct name="Objects" expr="" type_name="Objects" comment=""/> </jump> <jump offset="relocation_offset.string_offset + header.lists.Objects - 1" comment="" origin="start"> <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/> </jump> </struct> </for> </struct> </jump> </if> <if test="header.lists.Textures != 0" comment=""> <jump offset="header.lists.Textures" comment="" origin="start"> <struct name="Textures" type_name="" comment="" expr=""> <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/> <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment=""> <struct name="data" type_name="" comment="" expr="{this.offset_name.name}"> <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/> <jump offset="relocation_offset.data_offset + header.lists.Textures" comment="" origin="start"> <use_struct name="Textures" expr="" type_name="Textures" comment=""/> </jump> <jump offset="relocation_offset.string_offset + header.lists.Textures - 1" comment="" origin="start"> <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/> </jump> </struct> </for> </struct> </jump> </if> <if test="header.lists.Pallets != 0" comment=""> <jump offset="header.lists.Pallets" comment="" origin="start"> <struct name="Pallets" type_name="" comment="" expr=""> <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/> <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment=""> <struct name="data" type_name="" comment="" expr="{this.offset_name.name}"> <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/> <jump offset="relocation_offset.data_offset + header.lists.Pallets" comment="" origin="start"> <use_struct name="Pallets" expr="" type_name="Pallets" comment=""/> </jump> <jump offset="relocation_offset.string_offset + header.lists.Pallets - 1" comment="" origin="start"> <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/> </jump> </struct> </for> </struct> </jump> </if> <data type="none" name="none"/> </binary_file_format> paste that in:C:/Documents and Settings\*user*\Application Data\ECSoftware\HexEdit\_mdl0.xmland open an mdl0 file in HexEdit... now, the template doesn't initiate automatically :/when you open the mdl0,go to 'view'-'template'-'split window'and be sure to turn the auto sync on as well (looks like 3 red arrows "back, forth, back") be sure to set allow editing...(shows everything)@Kryal:in the last massage I sent you,that template will cause an erroruse this one...
|
|
|
Logged
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #296 on: January 15, 2011, 05:16:21 PM » |
|
I think I may have figured it out... but don't quote me on it as there's quite a large possibility I could be wrong :/
here's what I think since Kryal redirected me: Mat1 = Materials/Shaders combined (basic internal software stuff) Mat2 = low-level Shader intructions (can be shared)
Mat1 = Materials Mat2 = "Shaders" (not really a good word for these)
btw: here's why my site don't work atm: The VistaPanel is undergoing maintenance for the next 5 - 7 days.
Sorry the the inconvenience.
EDIT @ RTB: thanx... and yea... -_-*
EDIT2: I'd personnaly prefer to call the Mat2 data just plain Settings...
apparently they deal with "defining" a shader... >_>
|
|
« Last Edit: January 15, 2011, 05:47:45 PM by Tcll »
|
Logged
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #297 on: January 15, 2011, 07:01:34 PM » |
|
Tech, whats wrong with the chat? Could you please either fix it, or do you have another place in mind?
|
|
|
Logged
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #298 on: January 15, 2011, 07:22:18 PM » |
|
I think I may have figured it out... but don't quote me on it as there's quite a large possibility I could be wrong :/
here's what I think since Kryal redirected me: Mat1 = Materials/Shaders combined (basic internal software stuff) Mat2 = low-level Shader intructions (can be shared)
Mat1 = Materials Mat2 = "Shaders" (not really a good word for these)
btw: here's why my site don't work atm: The VistaPanel is undergoing maintenance for the next 5 - 7 days.
Sorry the the inconvenience.
EDIT @ RTB: thanx... and yea... -_-*
EDIT2: I'd personnaly prefer to call the Mat2 data just plain Settings...
apparently they deal with "defining" a shader... >_>
|
|
|
Logged
|
|
|
|
|
|
![](https://forums.kc-mm.com/Themes/efsane/images/post/recycled.gif) |
« Reply #299 on: January 15, 2011, 07:25:06 PM » |
|
DOH. >.<
I'm annoying the crap out of you lately huh tech? >_>
|
|
|
Logged
|
|
|
|
|
|