Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!

    1. Red Dead Redemption 2

      1. PC
      2. Gameplay
      3. Missions
      4. Help & Support
    2. Red Dead Online

      1. Gameplay
      2. Find Lobbies & Outlaws
      3. Help & Support
      4. Frontier Pursuits
    1. Crews & Posses

      1. Recruitment
    2. Events

    1. GTA Online

      1. Diamond Casino & Resort
      2. DLC
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Grand Theft Auto Series

    3. GTA 6

    4. GTA V

      1. PC
      2. Guides & Strategies
      3. Help & Support
    5. GTA IV

      1. Episodes from Liberty City
      2. Multiplayer
      3. Guides & Strategies
      4. Help & Support
      5. GTA IV Mods
    6. GTA Chinatown Wars

    7. GTA Vice City Stories

    8. GTA Liberty City Stories

    9. GTA San Andreas

      1. Guides & Strategies
      2. Help & Support
      3. GTA SA Mods
    10. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
      3. GTA VC Mods
    11. GTA III

      1. Guides & Strategies
      2. Help & Support
      3. GTA III Mods
    12. Top Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    13. Wiki

      1. Merchandising
    1. GTA Modding

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    3. Featured Mods

      1. DYOM
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Red Dead Redemption

    2. Rockstar Games

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Programming
      5. Movies & TV
      6. Music
      7. Sports
      8. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. News

    2. Forum Support

    3. Site Suggestions

Sign in to follow this  
Leeao

[3DSMAX|REL] Manhunt 2 MDL IFP Importer/Exporter

Recommended Posts

Leeao

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

-------------

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

21843899262_c7688e2ab5_o.png

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:

http://pan.baidu.com/s/1xsqeU

Edited by Leeao

Share this post


Link to post
Share on other sites
ALMOST610

Bloody awesome Top Notch Work!!!

 

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

Share this post


Link to post
Share on other sites
Leeao

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:

Share this post


Link to post
Share on other sites
cj2000

 

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.

Share this post


Link to post
Share on other sites
Leeao

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 by Leeao

Share this post


Link to post
Share on other sites
Leeao

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

Edited by Leeao

Share this post


Link to post
Share on other sites
Leeao

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.com/folderview?id=0B1Tyu12_4Pg2fkpQUVJvWlV1Q0tLU1F5YWlDeGlkWmtJUFI4TGZfYmNVRVhXZ3lmQkJ1OW8&usp=sharing

Edited by Leeao

Share this post


Link to post
Share on other sites
chormi

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

Edited by chormi

Share this post


Link to post
Share on other sites
Leeao

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

Edited by Leeao

Share this post


Link to post
Share on other sites
cj2000

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?

Share this post


Link to post
Share on other sites
cj2000

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++.

Edited by cj2000

Share this post


Link to post
Share on other sites
Leeao

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.

Share this post


Link to post
Share on other sites
cj2000

 

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

Share this post


Link to post
Share on other sites
Leeao
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. :lol:

 

 

------------------------------------------------------------------

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 by Leeao
update format

Share this post


Link to post
Share on other sites
cj2000

 

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.

Share this post


Link to post
Share on other sites
Leeao

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 by Leeao

Share this post


Link to post
Share on other sites
Skript47

 

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

Share this post


Link to post
Share on other sites
Blackalien

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 by Blackalien

Share this post


Link to post
Share on other sites
Leeao

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

 

Share this post


Link to post
Share on other sites
Leeao

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
 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • 2 Users Currently Viewing
    0 members, 0 Anonymous, 2 Guests

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.