Jump to content

Recommended Posts

Posted

I've been looking at the animation and skeleton files for Godzilla Unleashed ps2 version, specifically Godzilla 2k's files. I know the game uses the same engine-the Spigot engine-as Rampage, even though it's a different version of that engine, the file formats are similar.

After viewing the thread on Rampage's files, I was wondering if there was a way for me to reverse engineer and import the skeleton and animation files form Godzilla Unleashed into the Amateur Skeleton Hunter and Animation Recipe Cracker programs, so I can then export them.

I have taken a look at the files with a Hex editor and it looks like it's encrypted or compressed and the files don't have any extensions, so I don't really know what format the animation files are. I do however see some patterns, but I don't what these patterns are referring to (idk if it's XYZ axis coordinates or keyframes). At least I know the skeleton is in .pwk format.

I've attached the files to the post, if you guys want to take a look/crack at it. I've also found and attached a .bdg and .prx file titled "Game_Anims" in case that might be of use.

It doesn't seem like there's any specific tools or a Noesis plugin for Godzilla Unleashed's files-if there is please let me know. I'm hoping if I could get some help here with reverse engineering the files to import into ARC and ASH. I'd strongly appreciate it.

Godzilla2kandGameAnimisfiles.rar

  • 3 weeks later...
  • Engineers
Posted (edited)

This is my guess on skeleton. Alot of unknown. Something could be bone length and position.

//------------------------------------------------
//--- 010 Editor v14.0 Binary Template
//
//      File: 
//   Authors: 
//   Version: 
//   Purpose: 
//  Category: 
// File Mask: 
//  ID Bytes: 
//   History: 
//------------------------------------------------
LittleEndian();OutputPaneClear();

local uint32 i,j,k,l;

FSkip(28);
uint32 BoneInfoDataBaseOffset;
uint32 BoneCount;
uint32 Unknown_0;
uint32 ResourceSize;
uint32 BoneInfoTOCOffset;
uint32 UnknownTOCOffset;
uint32 Unknown_1;
uint32 BoneIdOffset;
uint32 BoneTransformDataBaseOffset;

FSeek(BoneInfoTOCOffset);
uint32 BoneInfoOffset[BoneCount];

FSeek(UnknownTOCOffset);
uint32 UnknownOffset[BoneCount];


FSeek(BoneIdOffset);
struct
{
    int16 BoneId[BoneCount];
    int16 RootBoneId;
}BoneIds;

FSeek(BoneInfoDataBaseOffset);
struct
{
    for (i=0; i < BoneCount; i++)
    {
        FSeek(BoneInfoOffset[i]);
        struct
        {
            int32 BoneId;
            int32 ParentBoneId;
            int32 InfoOffsetCount;
            int32 Unknown_0;
            float Unknown_1;
            float Unknown_2;
            float Unknown_3;
            float Unknown_4;
            float Unknown_5;
            float Unknown_6;
            float Unknown_7;
            int32 Unknown_8;
            if (InfoOffsetCount != 0)
                uint32 InfoOffset[InfoOffsetCount];
        }BoneInfo;
    }
}BoneInfoTOC;

Also InfoOffset[] repeat same offset as BoneInfoOffset[] so not sure what that means. And transform data has no info offset, just base offset.

Edited by h3x3r

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...