XeNTaX Forum Index
Forum MultiEx Commander Tools Tools Home
It is currently Sun May 28, 2017 4:09 pm

All times are UTC + 1 hour


Forum rules


Please click here to view the forum rules



Post new topic Reply to topic  [ 107 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8  Next
Author Message
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Sun Jan 16, 2011 5:56 am 
Offline
n00b

Joined: Mon Jun 21, 2010 8:42 am
Posts: 16
Has thanked: 1 time
Have thanks: 0 time

Doesn't work when I export to max 2011. It comes out as a mess of wires and bones sitting right into each other pointing upward. I already set my list separator(can't find anything else that says decimal separator) to . instead of ,

You can make the ads go away by registering



Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Sat Jan 29, 2011 12:14 am 
Offline
beginner

Joined: Mon Jan 11, 2010 1:03 am
Posts: 21
Has thanked: 1 time
Have thanks: 0 time
so is the tool ready? can we now take models out of tfu????


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Sat Jan 29, 2011 3:13 am 
Offline
beginner

Joined: Mon Jan 11, 2010 1:03 am
Posts: 21
Has thanked: 1 time
Have thanks: 0 time
any body? so is the tool ready yet? and be so kind as to tell how to use it too


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Sat Jan 29, 2011 3:26 am 
Offline
double-veteran
double-veteran
User avatar

Joined: Thu Oct 22, 2009 10:24 am
Posts: 795
Location: Russia, Siberia
Has thanked: 137 times
Have thanks: 77 times
reappper wrote:
any body? so is the tool ready yet? and be so kind as to tell how to use it too

Yes, in this post.

And please, don't dubleposting here.

Szkaradek123 wrote:
Blender importer for models from Star Wars The Force Unleashed .
(Blender 249 and Python 2.6.)

Hi, Szkaradek123. Please tell me more detail how to automatically apply textures, because when i jointing (ctrl+J, maybe?) all objects and then importing in 3ds max (trough the psk), i gets only one material.

_________________
Thank you for all you do here
my blog | my forum


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Sun Jan 30, 2011 12:25 am 
Offline
beginner

Joined: Mon Jan 11, 2010 1:03 am
Posts: 21
Has thanked: 1 time
Have thanks: 0 time
ok so I manage to get the models out of tfu now have we work on getting the rigs out? like the bones?


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Sun Jan 30, 2011 8:39 am 
Offline
n00b

Joined: Mon Jun 21, 2010 8:42 am
Posts: 16
Has thanked: 1 time
Have thanks: 0 time
You wait for the experts to make a script.


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Tue Feb 01, 2011 5:50 pm 
Offline
beginner

Joined: Thu Oct 22, 2009 8:54 pm
Posts: 32
Has thanked: 2 times
Have thanks: 4 times
I am posting this link because I have had many requests for the tutorial I have made about extracting a Storm Trooper from Star Wars The Force Unleashed. Your suggestions and comments would be greatly appreciated.

http://uberblack3d.com/articles/storm-trooper-classic-tutorial/


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Wed Jun 15, 2011 1:15 am 
Offline
beginner

Joined: Mon Jan 11, 2010 1:03 am
Posts: 21
Has thanked: 1 time
Have thanks: 0 time
so is this project dead or what? have we finally got bones no?? tired of waiting


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Tue Mar 20, 2012 11:49 pm 
Offline
mega-veteran
mega-veteran

Joined: Mon May 12, 2008 5:15 pm
Posts: 183
Has thanked: 4 times
Have thanks: 82 times
The Force Unleashed plugin for Noesis has been updated: http://oasis.xentax.com/index.php?content=plugins

Fixes a bug with gto models and adds support for the .animations files.

If i get the chance i will try and put together documentation to supplement rogueclarkey's description earlier in the thread.

Have fun.


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Wed Mar 21, 2012 12:56 am 
Offline
double-veteran
double-veteran
User avatar

Joined: Thu Oct 22, 2009 10:24 am
Posts: 795
Location: Russia, Siberia
Has thanked: 137 times
Have thanks: 77 times
revelation wrote:
The Force Unleashed plugin for Noesis has been updated
thank you revelation

_________________
Thank you for all you do here
my blog | my forum


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Wed Mar 21, 2012 1:16 am 
Offline
beginner

Joined: Thu Oct 22, 2009 8:54 pm
Posts: 32
Has thanked: 2 times
Have thanks: 4 times
revelation wrote:
The Force Unleashed plugin for Noesis has been updated: http://oasis.xentax.com/index.php?content=plugins

Fixes a bug with gto models and adds support for the .animations files.

If i get the chance i will try and put together documentation to supplement rogueclarkey's description earlier in the thread.

Have fun.


It's been a long time coming.. thanks for letting me test it.


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Fri Jun 08, 2012 12:41 am 
Offline
mega-veteran
mega-veteran

Joined: Mon May 12, 2008 5:15 pm
Posts: 183
Has thanked: 4 times
Have thanks: 82 times
Well i was asked about how to interpret the information within the .animations file, and i had not gotten around to coming back to this thread, so i guess i shal do a quick and dirty explaination of things. Hopefully it will be enough to get those interested started in looking into the data (assuming i can express it clearly enough).

The animations files are structured into the following sections:

Code:
HEADERS
DATA
-JOINT_KEYFRAME_DATA
-JOINT_KEYFRAME_INFO
-JOINT_KEYFRAME_INDICES
-NAME_DATA


The HEADERS section can consist of up to 4 different headers:

Code:
struct R2D2pack_HEADER
{
   // 0x00
   char   fileTag[8]   <format = hex>; // 'R2D2pack'
   uint32 fileVersion;
   uint32 dataSize     <format = hex>;
   // 0x10
};

struct PACK_HEADER
{
   // 0x00
   uint32 dataTag           <format = hex>; // 'pack'
   uint32 unknown0x14[2]    <format = hex>; // [1] resource crc
   uint32 dataFlags         <format = hex>;
   // 0x10
   uint32 unknown0x20[4]    <format = hex>;
   // 0x20
};

struct R2D2mult_HEADER
{
   // 0x00
   char   fileTag[8]   <format = hex>; // 'R2D2mult'
   uint32 fileVersion;
   uint32 dataSize     <format = hex>;
   // 0x10
};

struct ANIM_HEADER
{
   // 0x00
   uint32 dataTag           <format = hex>; // 'mina'
   uint32 unknown0x04[3]    <format = hex>; // [1] resource crc
   // 0x10
   uint32 unknown0x10       <format = hex>;
   uint32 jointCount;
   float  duration;
   uint32 unknown0x1C       <format = hex>;
   // 0x20
   uint32 unknown0x20       <format = hex>;
   uint32 unknownSize0x24   <format = hex>; // sub-header/data alignment size?
   uint32 dataSize          <format = hex>; // animation name offset?
   uint32 unknown0x2C       <format = hex>;
   // 0x30
   uint32 jointInfoOffset   <format = hex>; // joint data?
   uint32 jointFramesOffset <format = hex>; // keyframe data?
   uint32 unknownSize0x38   <format = hex>; // base data offset?
   uint32 nameOffset        <format = hex>; // name offset?
   // 0x40
};


The PACK_HEADER follows the R2D2pack header if it is present.

The ANIM_HEADER follows the R2D2mult header.

The data sizes in the R2D2pack and R2D2mult headers is used to access the name strings in a slightly peculiar way in the code. Using the the values starting from the begining of the data blocks that follow these headers actually takes you to the end of the string. But if you read the byte prior to this point, add 2, and subtract it from this end offset you can obtain an offset to the beginning of the string that specifies the name of the animations file and the animation pack file (.r2a) respectively.

The ANIM_HEADER is treated as somewhat of a split data structure in the code, the second portion starting at the location of the unknownSize0x24 value. This value contains an offset from this point to the beginning of the data section that follows. In all of the files i have investigated so far this has always been 0x1C, but my assumption is that the data section may have alignment requirements (on a 32-byte boundary?) and this value would contain the offset to the aligned position of the data should it not follow directly after the ANIM_HEADER. But for the most part i have not seen this needed, so i mention it solely to be complete.

The ANIM_HEADER jointInfoOffet and jointFramesOffset are relative to the beginning of the JOINT_KEYFRAME_DATA that follows the header.

The layout of the JOINT_KEYFRAME_DATA relies heavily on the flags specified in the JOINT_KEYFRAME_INFO structure that follows it, as does the JOINT_KEYFRAME_INDICEIS. So i will describe that first:

Code:
struct JOINT_KEYFRAME_INFO
{
   // 0x00
   uint32 jointHash    <format = hex>; // crc
   uint32 framesOffset <format = hex>; // keyframe indices?
   uint32 dataOffset   <format = hex>;
   uint16 framesCount  <format = hex>;
   uint16 formatFlags  <format = hex>; // flags?
   // 0x10
};


This section is a list of ANIM_HEADER.jointCount structure that define the data layout of each joints keyframe data and indices. Joints do not have to be present for every one that is in the model file. Since the animation it initialized with the base pose transforms, these joint will just not be modified.

The framesOffset and dataOffset values are relative to the JOINT_KEYFRAME_INDICES and JOINT_KEYFRAME_DATA sections respectively. The jointHash is a simple crc value based on the actual joint name from the model file.

The real important piece of information in this structure are the formatFlags. They specify whether or not the keyframe data is bit packed or not, whether it is 32-bit floats or 16-bit short values, whether position or rotation data is even present, which components of the position and rotation are valid, as well as what form the keyframe indices are in (8-bit byte, 16-bit short, 32-bit float).

The formatFlags can be assumed to have this format:

Code:
union FORMAT_FLAGS
{
   // 0x00
   uint16 flags;
   struct
   {
      uint16 posLayout : 3;
      uint16 posFlag   : 1;
      uint16 rotLayout : 3;
      uint16 rotFlag   : 1;
      
      uint16 dataFlag  : 2;
      uint16 rotFormat : 2;
      uint16 posFormat : 2;
      uint16 idxFormat : 2;
   };
   // 0x02
};


The idxFormat determines the data size of the individual elements of the joints keyframe indices and can have the following values:

Code:
3 - 8-bit frame index
2 - 16-bit frame index
else - 32-bit float frame time (in seconds)


Animations are 30 frames per second, so for the non-float frame index values simply divide by 30 to get the float time in seconds, or the reverse by multiplying the float frame times by 30 to get the fram index.

The posFormat and rotFormat specify the data type of the position and roation values (if present):

Code:
3 - bit-packed data (big endian)
2 - 32-bit float data
1 - 16-bit short data


16-bit data values are normalized by dividing by 32767.

The dataFlag specifies if position, rotation, or both of them are present:

Code:
3 - position and rotation data present
2 - rotation data present
1 - position data present


The rotFlag and posFlag specify how to interpres the rotLayout and posLayout respectively;

Code:
0 - the Layout values specify fully vector/quaternion layout formats
1 - the Layout values are treated as a 3-bit mask for each of the x,y,z components to determine which of them are present in the data


When the rotFlag or posFlag bits are not set (0) then the respective Layout values can be:

Code:
posLayout:
2 - (3) 16-bit short values (x,y,z)
1 - (3) 32-bit float values (x,y,z) - NOTE: when the dataFlag specifies rotations are present and the rotLayout is also 32-bit float, an extra float for the w component is present for alignment purposes.

rotLayout:
3 - (3) 16-bit short values (x,y,z) -> w = 1 - sqrt(x^2 + y^2 + z^2)
2 - (4) 16-bit short values (x,y,z,w)
1 - (4) 32-bit float values (x,y,z,w)


The Layout values should match the Format values for their respective components.

When the rotFlag or posFlag are set the rotLayout and posLayout are 3 separate bit values each for the x, y, and/or z component that is present in the data.

Code:
The bits are ordered:
210
xyz


With 0 being the least significant bit, etc.

When data is bit-packed the rot- and pos- Flag bits should be set if the dataFlag specifies they are present.

Reading the data from the JOINT_KEYFRAME_DATA section requires the information above. When the data is not bit-packed the process if fairly straight forward. Rotation and position components are packed ones after the other: pos0,rot0,pos1,rot1,...etc. Assuming the dataFlag specifies they are present.

The skeleton for an animation is initialized using the base pose information from the model. If data is not specified for a joint based on the flags information, then the values are not overwritten during processing.


- Bit Packed Data -

Bit-packed data complicates things slightly as the data is tightly packed into a big-ending ordered bit stream, where the components of the position and rotation components can be variable bit sizes which are specified in the data itself.

If position data is present the first 4 bytes are a 32-bit floating point scaling value for the position information.

Following this are up to (18) bytes of data used to specify the base values and bit-sizes for the position and rotation xyz components. The presence of these values is controlled by the xyz bits in the posLayout and rotLayout respectively.

The values are used to specify the base values and bit sizes of each component of the position and rotation values.

The order is as follows:

Code:
[basePosX : 16], [basePosY : 16], [basePosZ : 16], [bitSizeX : 8], [bitSizeY : 8], [bitSizeZ : 8], [baseRotX : 16], [baseRotY : 16], [baseRotZ : 16], [bitSizeX : 8], [bitSizeY : 8], [bitSizeZ : 8]


These are specified for both the position and rotation data if specified as present. The 'base' values are 16-bits each, the 'bitSize' values are 8-bits each (3 * 2-bytes + 3 * 1-byte == up to 9 bytes each for position and rotation == up to 18-bytes).

The individial components will not be present if the corresponding bit is not set in the respective Layout values from the joint data flags.

So if bit 0 is not set for posLayout, then the z-component of the positions are not present (basePosX, basePosY, bitSizeX, bitSizeY). The rotation values are handled in the same manner using the respective flags and format information.

Following this information is framesCount number of bit packed values for the components specified as being present. The bit stream is read a big-endian data in x,y,z order for position then rotation for the compoents that are valid. The bitSize values specify the number of bits to read for each component from the stream.

The final value for each component is calculated using the following function:
Code:
((packedValue - (0xFFFF >> (0x11 - bitSize))) + baseValue) * valueScale

packedValue == value read from bit-stream
bitSize == bit size for the component being read
baseValue == base value for the component being read
valueScale == scale for the component type being read (for positions this is the 32-bit float at the beginning of the data, for rotations this is 1/32767 to normalize into the range 0...1)


All the values are treated as signed 16-bit values.

Since only 3 components of the rotation are specified the w value is found through standard normalized quaternion methods.



Well that was simply a brain dump of how to interpret the animation data. i am not entirely sure if it will make sense to anyone as i have written it, so feel free to ask for clarification on anything if needed.

Hope it helps.


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Fri Jun 08, 2012 10:13 am 
Offline
ultra-n00b

Joined: Sun May 20, 2012 12:43 am
Posts: 1
Has thanked: 2 times
Have thanks: 0 time
Thanks a lot revelation


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Sat Feb 01, 2014 1:37 pm 
Offline
beginner

Joined: Sat Jun 30, 2012 11:48 pm
Posts: 29
Has thanked: 13 times
Have thanks: 0 time
UberBlack wrote:
Image

Quick Render in Maya

quick question if thats ok how did you get it in a T-pose? when i import they are A-pose


Top
 Profile  
 
 Post subject: Re: Star Wars The Force Unleashed - PC Version .z files
PostPosted: Sun Aug 16, 2015 12:59 am 
Offline
advanced

Joined: Sun Oct 02, 2011 6:16 pm
Posts: 66
Has thanked: 5 times
Have thanks: 1 time
Hi, i want to translate game. How can i do this?



Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 107 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8  Next

All times are UTC + 1 hour


Who is online

Users browsing this forum: oyunceviri, RandomTBush and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group