Leeao Posted November 2, 2014 Share Posted November 2, 2014 (edited) This tool is a model file, animation file, collision file, 3dsMAX import and export script for Manhunt2. Support: Import: Manhunt 2 MDL (PC),DFF (PSP/PS2/WII) model file Manhunt 1/2 IFP Animation file Manhunt 2 BIN Animation file Manhunt 1/2 COL collision file Manhunt 1 DFF model file Export: Manhunt 2 MDL Manhunt 1/2 IFP binary animation file / json text file Manhunt 1/2 COL collision file Welcome Feedback & Bug Reports. Thanks! Allen_Manhunt2_Scripts Requirement: ------------ 3dsMax 8 or Higher .NET framework 4.0 or Higher Revision Version Release Date: Nov 02, 2019 Download ------------- Moddb Google Drive http://pan.baidu.com/s/1pJG32Kr Manhunt 2 MDL Editor: This tool is an Manhunt 2 *.MDL/*.DFF models file Editor. Includes the following functions: Add (include merge big/multi mdl/dff file ,add single mdl/dff file) Delete (single/Multiple) Export (single/Multiple mdl/dff file) Replace (single mdl/dff file) Reorder Decompress/Compress zlib resource file. Spoiler Download:Google Drive Video Tutorials: 1.Manhunt2 Character MOD Skin Rigging Tutorials Google+ sample file: https://drive.google.com/file/d/0B1Tyu12_4Pg2RXVnb0FxMndxb2M/view?usp=sharing 2.Convert Manhunt1 dff models to Manhunt2 mdl format Google+ sample file: https://drive.google.com/file/d/0B1Tyu12_4Pg2OHljMVVjRVFTczg/view?usp=sharing my manhunt2 mods: Google Drive http://pan.baidu.com/s/1xsqeU Edited March 14 by Leeao dkluin, Error2k, Jugend84 and 13 others 16 Link to comment Share on other sites More sharing options...
ALMOST610 Posted November 6, 2014 Share Posted November 6, 2014 Bloody awesome Top Notch Work!!! Its even better having all those subtools included in the scripts too. dkluin, Jinx. and Blue 3 Link to comment Share on other sites More sharing options...
Leeao Posted November 8, 2014 Author Share Posted November 8, 2014 Bloody awesome Top Notch Work!!! Its even better having all those subtools included in the scripts too. Thanks! Are you interested to try it(manhunt2 mod)? Here it seems less popular Link to comment Share on other sites More sharing options...
cj2000 Posted February 3, 2015 Share Posted February 3, 2015 Bloody awesome Top Notch Work!!! Its even better having all those subtools included in the scripts too. Thanks! Are you interested to try it(manhunt2 mod)? Here it seems less popular Why not popular? It looks really awsome, the only problem for me is the download link, that not worcks, but it could be just an other problem of the f***ing PC, I have to worck now with. Link to comment Share on other sites More sharing options...
Leeao Posted September 10, 2015 Author Share Posted September 10, 2015 (edited) Update: 2015-9-10 Release v1.1 Fixed UV2 export errors, major updates. Fixed material problem, automatically remove unwanted materials. Fixed export invalid skin weight problems. Download http://1drv.ms/1k3cLHf http://pan.baidu.com/s/1pJG32Kr https://drive.google.com/folderview?id=0B1Tyu12_4Pg2fkpQUVJvWlV1Q0tLU1F5YWlDeGlkWmtJUFI4TGZfYmNVRVhXZ3lmQkJ1OW8&usp=sharing Edited September 10, 2015 by Leeao Blackbird88, ZT- and Vadim M. 3 Link to comment Share on other sites More sharing options...
Leeao Posted September 15, 2015 Author Share Posted September 15, 2015 (edited) Manhunt2 MDL Editor added wii dff support . I'm now working write a wii dff2mdl pc format model converter ,a part of MDL Editor. Edited September 15, 2015 by Leeao Blackbird88, Frank.s, Hovac and 1 other 4 Link to comment Share on other sites More sharing options...
Leeao Posted October 1, 2015 Author Share Posted October 1, 2015 (edited) Manhunt2 MDL IO update: 2015-10-1 Release v1.2 Added WII DFF Importer. Optimize the normal data input and output. Added welding uv data feature, remove redundant data. Manhunt2 MDL/DFF Editor update: 2015-10-1 Release Version1.7 -Added WII DFF version model edit -Added an WII DFF to PC MDL Format Converter Download http://1drv.ms/1k3cLHf http://pan.baidu.com/s/1pJG32Kr https://drive.google.com/folderview?id=0B1Tyu12_4Pg2fkpQUVJvWlV1Q0tLU1F5YWlDeGlkWmtJUFI4TGZfYmNVRVhXZ3lmQkJ1OW8&usp=sharing Edited October 1, 2015 by Leeao ZT- and Blackbird88 2 Link to comment Share on other sites More sharing options...
chormi Posted October 20, 2015 Share Posted October 20, 2015 (edited) I need manhunt1 ifp import/export script for 3ds max. If somebody have please let me know on pm. Thanks. Edited October 20, 2015 by chormi Link to comment Share on other sites More sharing options...
Leeao Posted October 26, 2015 Author Share Posted October 26, 2015 (edited) I need manhunt1 ifp import/export script for 3ds max. If somebody have please let me know on pm. Thanks.Perhaps in the future I will add support for it. There COL format, INST format, BSP format. I have plans to add support for them. ================================================ MDL IO UPD: 2015-10-26 Release v1.3 Add a new welding vertex algorithms. Improved algorithm to recalculate normals. Fixed a model transparent BUG. Fixed some minor issues. MDL Editor UPD: 2015-10-15 Release Version 1.85 -Fixed old version Manhunt2 MDL Editor created or saved files compatibility issues.(Fixed the old version of the file transparent bug). -Improved decompression and compression mode. 2015-10-10 Release Version 1.8 -Fixed a model invisible/popping bug. -Optimize the textures name part of the code. invisible/popping bug Before Fixed invisible/popping bug After Edited October 26, 2015 by Leeao ZT- 1 Link to comment Share on other sites More sharing options...
cj2000 Posted October 26, 2015 Share Posted October 26, 2015 I need manhunt1 ifp import/export script for 3ds max. If somebody have please let me know on pm. Thanks. Doesn´t the import script for GTA SA ifp worck for it? Link to comment Share on other sites More sharing options...
cj2000 Posted November 11, 2015 Share Posted November 11, 2015 (edited) OK checked it and know that Manhunt ifp Format not the same with GTA ones. Both parts of Manhunt use quite the same ifp Format, the bigest diference is that Manhunt 2 ifps are compressed with zlib/deflate. Some structures used in Manhunt ifp: fourCCHeader{char fourCC[4];}FileHeader{fourCCHeader header;//ANCTunsigned int blocs;}BlocHeader{fourCCHeader header1;//BLOCunsigned int strSize;char name[strSize];fourCCHeader header2;//ANPKunsigned int animations;//?}AnimationHeader{fourCCHeader header;//NAMEunsigned int strSize;char name[strSize];unsigned int seqs;unsigned int unk1;float unk2;}SeqHeader{fourCCHeader header;//SEQU MH1, SEQT MH2unsigned char unk1;unsigned char unk2;unsigned char unk3;unsigned char frames;}Sequence{SeqHeader header;Frame frames[header.frames];}Animation{AnimationHeader header;Sequence sequences[header.seqs];}Bloc{BlocHeader header;Animation animations[header.animations];}IfpFile{FileHeader header;Bloc blocs[header.blocs];} I know it´s not 100% corect C/C++. Edited November 11, 2015 by cj2000 Frank.s 1 Link to comment Share on other sites More sharing options...
Leeao Posted November 12, 2015 Author Share Posted November 12, 2015 OK checked it and know that Manhunt ifp Format not the same with GTA ones. Both parts of Manhunt use quite the same ifp Format, the bigest diference is that Manhunt 2 ifps are compressed with zlib/deflate. Some structures used in Manhunt ifp: It's cool man! in fact, I have researching this format before. You missing the SEQU/SEQT details. A few days later I will post the full format. Some MH1, MH2 resource format. I also write my new script and editing tools support for them. ZT- and R3ZA 2 Link to comment Share on other sites More sharing options...
cj2000 Posted November 12, 2015 Share Posted November 12, 2015 OK checked it and know that Manhunt ifp Format not the same with GTA ones. Both parts of Manhunt use quite the same ifp Format, the bigest diference is that Manhunt 2 ifps are compressed with zlib/deflate. Some structures used in Manhunt ifp: It's cool man! in fact, I have researching this format before. You missing the SEQU/SEQT details. A few days later I will post the full format. Some MH1, MH2 resource format. I also write my new script and editing tools support for them. Didn´t know, you already have researched this format. I know that SEQU/SEQT details are missing, was not really able to encrypt it.. Link to comment Share on other sites More sharing options...
Leeao Posted November 24, 2015 Author Share Posted November 24, 2015 (edited) On 11/12/2015 at 11:23 PM, cj2000 said: Didn´t know, you already have researched this format. I know that SEQU/SEQT details are missing, was not really able to encrypt it.. Do not worry, the format came. ------------------------------------------------------------------ Manhunt 1&2 IFP ANPK Format Animation Library Spoiler //--- 010 Editor v6.0 Binary Template // // File: Manhunt 1/2 IFP ANPK Format Anim Library // Author: Allen(Leeao) // Revision: // Purpose:Manhunt 1/2 Animation //-------------------------------------- typedef struct{ char ANPK[4];//0x4B504E41 DWORD numAnimPack; struct { char NAME[4];//0x454D414E DWORD AnimNameLen; char AnimName[AnimNameLen]; DWORD numBones; //number of SEQT(bones) DWORD ChunkSize; //this value is all SEQT data size , not include SEQT header size 9 bytes and end size 4 bytes( a float ). float FrameTimesCount;/* time in seconds . frames count = FrameTimesCount*30.0 + 1 the frames count in seconds only express last frame time because frame index start at 0 time in seconds * framerate = frame index. game use frame rate is 30 fps in turn , frame time in seconds = frame index / framerate (30) */ local int i; local uint chunksize; struct{ char flag[4]; //0x54514553=SEQT(Manhunt 2), 0x55514553=SEQU(Manhunt 1) ushort BoneID; //Animation Bone ID byte FrameType; //1-quat; 2-quat,translate; 3-translate; ushort frames; local uint startOffset = FTell(); ushort StartTime; //ChunkStart. if StartTime>0 Frame Index = StartTime/2048*30-1 // if StartTime== 0 Frame Index = StartTime/2048*30 //if StartTime > 0 express the anim frame data is continuous. //if StartTime==0 express the anim frame data is non-continunos.The interval between the upper and lower frames is at least 2 frames. local float times = 0.0; if (FrameType > 2) { short direction_quat[4];//Initial direction } else { if(StartTime==0) FSeek(FTell()-2); } for(i=0;i<frames;i++) { struct{ if(StartTime==0) { if((FrameType==3)&&(i==0)) { //just skip }else { ushort time;//(in seconds)= time/2048.0 get seconds value , Time base on StartTime,Need add all prev times count(StartTime+=time). //Frame Index = time/2048.0*30 get frame ID times += time/2048.0; } } //else if(StartTime>0) frame index = (StartTime/2048.0*30-1) + i if (FrameType < 3) short quatXYZW[4];//value = short/4096.0 if (FrameType > 1) short translateXYZ[3];//value = short/2048.0 }frame<hidden=false>; } //ChunkEnd chunksize+=FTell()-startOffset; if (flag=="SEQT")float LastFrameTime;//if (StartTime==0) value = (frame[frames].time(last frame time) /2048.0*30.0 as integer Rounding algorithm)/30.0 //if (StartTime>0) value = StartTime/2048.0 }SEQT[numBones]<optimize=false>; int headerSize; //Always is 0x10;particle effects section float unknown; int eachEntrySize; //MH1 64Bytes MH2 160Bytes int numEntry; //num particle effects section if(numEntry>0) { for (i=0;i<numEntry;i++) { if(SEQT[0].flag=="SEQT") struct{ float time; int unknown; int unknown2; char CommandName[64]; int unknown3; int BoneID; //Animation Bone ID char particleName[8]; float particlePosition[7]; byte unknown4[40]; }entry; else if(SEQT[0].flag=="SEQU") { struct{ float time; int unknown; int unknown2; int unknown3; int unknown4; int BoneID; //Animation Bone ID char particleName[8]; float particlePosition[7]; int unknown5; }entry; } } } }AnimPackEntry[numAnimPack]<optimize=false>; }ANPK; typedef struct{ char BLOC[4];//0x434F4C42 DWORD BlockNameLen; char BlockName[BlockNameLen]; ANPK AnimPack; }BLOC; typedef struct{ char ANCT[4];//0x54434E41 DWORD numBlock; BLOC block[numBlock]<optimize=false>; }ANCT; Manhunt 1&2 IFP Format #include "Manhunt IFP anim library.bt"ANCT anct; There are some format I do not post out. You can download here. DOWNLOAD It includes: Manhunt 1 inst,col,ifp format Manhunt 2 inst,col,ifp,font,gxt,mdl,strmanim_pc.bin,tex/txd format. About Manhunt 1/2 BSP format some details have not done. Perhaps in the future release. Edited November 3, 2019 by Leeao update format ZT- and cj2000 2 Link to comment Share on other sites More sharing options...
cj2000 Posted November 26, 2015 Share Posted November 26, 2015 Didn´t know, you already have researched this format. I know that SEQU/SEQT details are missing, was not really able to encrypt it.. Do not worry, the format came. ------------------------------------------------------------------ Manhunt 1&2 IFP Format Animation Library //--------------------------------------//--- 010 Editor v6.0 Binary Template//// File: Manhunt 1/2 IFP Format Anim Library// Author: Allen(Leeao)// Revision:// Purpose:Manhunt 1/2 Animation//--------------------------------------typedef struct{char ANPK[4];DWORD numAnimPack;struct { char NAME[4]; DWORD AnimNameLen; char AnimName[AnimNameLen]; DWORD numBones; //number of SEQT(bones) DWORD ChunkSize; //this value is all SEQT data size , not include SEQT header size 9 bytes and end size 4 bytes( a float ). float FrameTimesCount; //frames count = FrameTimesCount/30.0 local int i; struct{ char flag[4]; //SEQT(Manhunt 2) SEQU(Manhunt 1) short BoneID; //Animation Bone ID byte FrameType; //1-quat; 2-quat,translate; 3-translate; short frames; short StartTime; //need /2048.0*30 get frameid value if (FrameType > 2) { if(StartTime>0){short unknown;} short unknown2[3]; //Initialization position?? } else { if(StartTime==0) FSeek(FTell()-2); } for(i=0;i<frames;i++) { struct{ if(StartTime==0) { short time; //(in seconds)= time/2048.0 get seconds value // Time base on StartTime,Need add all prev times count(StartTime+=time). //FrameID = time/2048.0*30 get frame ID } //else time = startFrameID(StartTime/2048.0*30) + i if (FrameType < 3) short quatXYZW[4]; //need /2048.0 get value if (FrameType > 1) short positionXYZ[3]; //need /2048.0 get value }frame; } if (flag=="SEQT")float LastFrameTime;//If (StartTime==0)value = last framedata's time/2048.0 //or If (StartTime>0) , unknown time }SEQT[numBones]<optimize=false>; int headerSize; //Always is 0x10;particle effects section float unknown; int eachEntrySize; //MH1 64Bytes MH2 160Bytes int numEntry; //num particle effects section if(numEntry>0) { /* Manhunt 2 particle effects section 160 bytes per data. The following sections from the Majestic on projectmanhunt.com/forums */ for (i=0;i<numEntry;i++) { if(SEQT[0].flag=="SEQT") struct{ float time; int unknown; int unknown2; char CommandName[64]; int unknown3; int BoneID; //Animation Bone ID char particleName[8]; float particlePosition[7]; byte unknown4[40]; }entry; else if(SEQT[0].flag=="SEQU") { struct{ float time; int unknown; int unknown2; int unknown3; int unknown4; int BoneID; //Animation Bone ID char particleName[8]; float particlePosition[7]; int unknown5; }entry; } } }}AnimPackEntry[numAnimPack]<optimize=false>;}ANPK;typedef struct{ char BLOC[4]; DWORD BlockNameLen; char BlockName[blockNameLen]; ANPK AnimPack;}BLOC;typedef struct{char ANCT[4];DWORD numBlock;BLOC block[numBlock]<optimize=false>;}ANCT;Manhunt 1&2 IFP Format #include "Manhunt IFP anim library.bt"ANCT anct;There are some format I do not post out. You can download here.DOWNLOAD It includes: Manhunt 1 inst,col,ifp format Manhunt 2 inst,col,ifp,font,gxt,mdl,strmanim_pc.bin,tex/txd format. About Manhunt 1/2 BSP format some details have not done. Perhaps in the future release. Really great worck. For Manhunt 2 BSP format you could ask Majestic, hi has writen an importer for this format. Link to comment Share on other sites More sharing options...
Leeao Posted November 27, 2015 Author Share Posted November 27, 2015 (edited) Really great worck. For Manhunt 2 BSP format you could ask Majestic, hi has writen an importer for this format. Thanks man! I think he is quite busy. I already know most of, but did not get to know some of the details. Edited November 27, 2015 by Leeao Link to comment Share on other sites More sharing options...
Skript47 Posted January 25, 2016 Share Posted January 25, 2016 Really great worck. For Manhunt 2 BSP format you could ask Majestic, hi has writen an importer for this format. Thanks man! I think he is quite busy. I already know most of, but did not get to know some of the details. So that is finished tool? You're not gonna: 1) Add multiple export and delete function 2) Include DLL into EXE 3) Change awful interface with buttons to context menu and delete popup message when program closed 4) Increase performance ? Also i tested importer and it's don't work well with most of models: Link to comment Share on other sites More sharing options...
just Gesha Posted April 5, 2016 Share Posted April 5, 2016 (edited) The tool is awesome man, geat work on it! Any possible way to make MDL to DFF, since I would like to add some Manhunt 2 stuff in GTA. Edited April 5, 2016 by Blackalien Link to comment Share on other sites More sharing options...
Leeao Posted September 3, 2018 Author Share Posted September 3, 2018 Some updates. Changelogs ----------- 2018-09-03 Release Version 2.0 -Add "Reorder by name" function -Add multiple export and multiple delete function -Add multiple add function -Add Right click menu (context menu) -Simplify the program, Include DLL into EXE Igor Bogdanoff and ZT- 2 Link to comment Share on other sites More sharing options...
Leeao Posted September 15, 2018 Author Share Posted September 15, 2018 (edited) Add Import Manhunt 1/2 IFP/BIN format Animations Support. https://drive.google.com/open?id=1La9RCLjrz6clzGXgEfkhzykVIr_tCJ2q Edited September 15, 2018 by Leeao Jago, Pedrin, Sor3nt and 1 other 4 Link to comment Share on other sites More sharing options...
Leeao Posted November 3, 2019 Author Share Posted November 3, 2019 Changelogs ----------- 2019-11-02 Add IFP Animation importer/exporter. Support binary animation file / json text file Add Col collision file importer/exporter. Add Manhunt 1 DFF model Importer. Add Manhunt 2 MDL file batch export. Download Hovac, Pedrin and Jago 3 Link to comment Share on other sites More sharing options...
CogentJin Posted November 21, 2019 Share Posted November 21, 2019 (edited) Great app, but when I export the .anim it says I need a higher version of Unity to play it, even though I have the newest one. Suggestions? Edit: Never mind, I figured it out, thank you! Edited November 21, 2019 by CogentJin Link to comment Share on other sites More sharing options...
Leeao Posted November 27, 2019 Author Share Posted November 27, 2019 (edited) On 11/21/2019 at 2:10 PM, CogentJin said: Great app, but when I export the .anim it says I need a higher version of Unity to play it, even though I have the newest one. Suggestions? Edit: Never mind, I figured it out, thank you! Exporting .anim is only part of the internal data of the IFP binary file at the moment, it is not any known animation format. If you know the IFP format, you can use the data of the .anim file to directly edit the IFP file with a hex editor, by the way For a moment, I originally planned to edit an IFP tool to edit and replace IFP files, but it was not put into action. The function of exporting IFP format and .anim was written prior to exporting the .json file, so it was retained and No deletion. Currently, you can modify the IFP file by exporting the .json file, then decompressing the IFP file through MHT(Manhunt toolkit), then replacing the relevant files, and repacking. If you only want to call it in Unity3D, export the FBX format directly in MAX. Edited November 27, 2019 by Leeao CogentJin 1 Link to comment Share on other sites More sharing options...
CogentJin Posted November 28, 2019 Share Posted November 28, 2019 14 hours ago, Leeao said: Exporting .anim is only part of the internal data of the IFP binary file at the moment, it is not any known animation format. If you know the IFP format, you can use the data of the .anim file to directly edit the IFP file with a hex editor, by the way For a moment, I originally planned to edit an IFP tool to edit and replace IFP files, but it was not put into action. The function of exporting IFP format and .anim was written prior to exporting the .json file, so it was retained and No deletion. Currently, you can modify the IFP file by exporting the .json file, then decompressing the IFP file through MHT(Manhunt toolkit), then replacing the relevant files, and repacking. If you only want to call it in Unity3D, export the FBX format directly in MAX. That's exactly what I did. After fixing the bones so they represent the Humanoid layout, the ManHunt 1 animations work exactly as expected. I had trouble with some ManHunt 2 IFP files loading, any time I would try 3D Max would force close. If anyone else has this problem just run 3D Max as Administrator. The issue was some kind of unauthorized access exception. I wish I could post .GIFs of what I'm making with the animations, it's pretty cool I think. If I ever figure it out I'll PM you, sir. Thank you again Leeao. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now