Quantcast

Jump to content

» «
Photo

[3DSMAX|REL] Manhunt2 MDL Importer/Exporter

17 replies to this topic
Leeao
  • Leeao

    Player Hater

  • Members
  • Joined: 07 May 2008
  • China

#1

Posted 02 November 2014 - 07:44 AM Edited by Leeao, 01 October 2015 - 06:58 AM.

This is my Manhunt2 MDL Importer/Exporter script for 3dsMax.
 
Features:
  •   Import: Manhunt2 PC MDL,Manhunt2 PSP/PS2/WII DFF models
  •   Export: Manhunt2 PC MDL
Note:
  • PSP/PS2 some models of the face direction is reversed. You need to manually flip the face normal to fix it.
Welcome Feedback & Bug Reports. Thanks!
 
 
Manhunt2 MDL IO Requirement
 
All 3dsMax Version (I'm on max2014 development,theoretically support all versions.)
 
.NET framework 4.0 or Higher

 
Information

Revision Version Release Date: Oct 1, 2015
First Version  Release Date:9/26/2013
 
Download
-------------

http://1drv.ms/1k3cLHf 
http://pan.baidu.com/s/1pJG32Kr
Google Drive
 
Thanks

Fatduck
MAJEST1C_R3
41hc1
 
Changelogs
-----------
Spoiler

jwjkY1V.png21829619096_7d6d5051a4_o.png
uu7s.png
 
Manhunt2 MDL Editor:
EMneXpW.png
21843899262_c7688e2ab5_o.png
Download see above "Download".
 
 
 
Video Tutorials:
 
1.Manhunt2 Character MOD Skin Rigging Tutorials

Google+

sample file:
https://drive.google...iew?usp=sharing



2.Convert Manhunt1 dff models to Manhunt2 mdl format

Google+

sample file:
https://drive.google...iew?usp=sharing
 
Thanks MetalKitten help me upload to youtube!  :lol:
 
my manhunt2 mods:
http://pan.baidu.com/s/1xsqeU
  • Speccy, Frank.s, cj2000 and 11 others like this

ALMOST610
  • ALMOST610

    Gangsta

  • Feroci
  • Joined: 30 Jan 2009
  • Australia

#2

Posted 06 November 2014 - 04:06 AM

Bloody awesome Top Notch Work!!!

 

Its even better having all those subtools included in the scripts too.

  • Jinx., dkluin and Blue like this

Leeao
  • Leeao

    Player Hater

  • Members
  • Joined: 07 May 2008
  • China

#3

Posted 08 November 2014 - 12:56 AM

Bloody awesome Top Notch Work!!!

 

Its even better having all those subtools included in the scripts too.

:lol: Thanks!

Are you interested to try it(manhunt2 mod)?

 

Here it seems less popular :cry:


cj2000
  • cj2000

    Homeboy

  • Members
  • Joined: 17 Jun 2008
  • None
  • Best Conversion 2016 [GTA: Underground]

#4

Posted 03 February 2015 - 11:55 AM

 

Bloody awesome Top Notch Work!!!

 

Its even better having all those subtools included in the scripts too.

:lol: Thanks!

Are you interested to try it(manhunt2 mod)?

 

Here it seems less popular :cry:

 

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.


Leeao
  • Leeao

    Player Hater

  • Members
  • Joined: 07 May 2008
  • China

#5

Posted 10 September 2015 - 04:10 AM Edited by Leeao, 10 September 2015 - 04:12 AM.

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...OW8&usp=sharing
  • Blackbird88, Vadim M. and ZT- like this

Leeao
  • Leeao

    Player Hater

  • Members
  • Joined: 07 May 2008
  • China

#6

Posted 15 September 2015 - 10:00 AM Edited by Leeao, 15 September 2015 - 10:03 AM.

Manhunt2 MDL Editor added wii dff support .

I'm now working write a wii dff2mdl pc format model converter ,a part of MDL Editor.
21423867662_bc39f64c02_n.jpg

  • Frank.s, Blackbird88, ZT- and 1 other like this

Leeao
  • Leeao

    Player Hater

  • Members
  • Joined: 07 May 2008
  • China

#7

Posted 01 October 2015 - 06:49 AM Edited by Leeao, 01 October 2015 - 06:58 AM.

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.
21843817532_8b8b08e354_o.png21829619096_7d6d5051a4_o.png

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
21843899262_c7688e2ab5_o.png

Download
http://1drv.ms/1k3cLHf
http://pan.baidu.com/s/1pJG32Kr
https://drive.google...OW8&usp=sharing
  • Blackbird88 and ZT- like this

chormi
  • chormi

    Player Hater

  • Members
  • Joined: 17 Jul 2007

#8

Posted 20 October 2015 - 08:17 PM Edited by chormi, 20 October 2015 - 08:23 PM.

I need manhunt1 ifp import/export script for 3ds max. If somebody have please let me know on pm. Thanks.


Leeao
  • Leeao

    Player Hater

  • Members
  • Joined: 07 May 2008
  • China

#9

Posted 26 October 2015 - 12:15 PM Edited by Leeao, 26 October 2015 - 12:15 PM.

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.
DaYkbpB.png
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
NBMIQAW.jpg?1
Fixed invisible/popping bug After
XQqhE5r.png
  • ZT- likes this

cj2000
  • cj2000

    Homeboy

  • Members
  • Joined: 17 Jun 2008
  • None
  • Best Conversion 2016 [GTA: Underground]

#10

Posted 26 October 2015 - 04:51 PM

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?


cj2000
  • cj2000

    Homeboy

  • Members
  • Joined: 17 Jun 2008
  • None
  • Best Conversion 2016 [GTA: Underground]

#11

Posted 11 November 2015 - 04:27 PM Edited by cj2000, 11 November 2015 - 04:29 PM.

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;//ANCT
unsigned int blocs;
}

BlocHeader{
fourCCHeader header1;//BLOC
unsigned int strSize;
char name[strSize];
fourCCHeader header2;//ANPK
unsigned int animations;//?
}

AnimationHeader{
fourCCHeader header;//NAME
unsigned int strSize;
char name[strSize];
unsigned int seqs;
unsigned int unk1;
float unk2;
}

SeqHeader{
fourCCHeader header;//SEQU MH1, SEQT MH2
unsigned 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++.

  • Frank.s likes this

Leeao
  • Leeao

    Player Hater

  • Members
  • Joined: 07 May 2008
  • China

#12

Posted 12 November 2015 - 11:26 AM

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!   :lol: 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 like this

cj2000
  • cj2000

    Homeboy

  • Members
  • Joined: 17 Jun 2008
  • None
  • Best Conversion 2016 [GTA: Underground]

#13

Posted 12 November 2015 - 03:23 PM

 

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!   :lol: 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..


Leeao
  • Leeao

    Player Hater

  • Members
  • Joined: 07 May 2008
  • China

#14

Posted 24 November 2015 - 06:42 AM Edited by Leeao, 24 November 2015 - 09:25 AM.

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. :lol:
 
 
------------------------------------------------------------------
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.
  • cj2000 and ZT- like this

cj2000
  • cj2000

    Homeboy

  • Members
  • Joined: 17 Jun 2008
  • None
  • Best Conversion 2016 [GTA: Underground]

#15

Posted 26 November 2015 - 11:50 AM

 

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. :lol:
 
 
------------------------------------------------------------------
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.


Leeao
  • Leeao

    Player Hater

  • Members
  • Joined: 07 May 2008
  • China

#16

Posted 27 November 2015 - 02:55 AM Edited by Leeao, 27 November 2015 - 03:16 AM.

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.


Skript47
  • Skript47

    Square Civilian

  • Members
  • Joined: 18 Aug 2009
  • Ukraine

#17

Posted 25 January 2016 - 05:08 PM

 

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:
2cy2mia.jpg

Blackalien
  • Blackalien

    Keepin' it Old Shool

  • Members
  • Joined: 23 Feb 2015
  • Bulgaria

#18

Posted 05 April 2016 - 03:26 PM Edited by Blackalien, 05 April 2016 - 03:26 PM.

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.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users