Author Topic: CHRONO CROSS MODEL PROJECT THREAD  (Read 19921 times)

Yourgingerestfan

  • CC:DBT Dream Team
  • Magical Dreamer (+1250)
  • *
  • Posts: 1404
  • im ginger ....your ginger ....were all ginger !
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #90 on: March 28, 2009, 05:10:54 am »
I liked how Kid held the dagger in that video , it was cool xD

Dark Serge

  • Time Traveler (+800)
  • *
  • Posts: 882
  • Now, let love bleed...
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #91 on: April 17, 2009, 09:16:35 am »
Hahah awesome vid dude.

*bow* Glad you enjoyed it!

Alright, here's something just a tad more practical than (if, perhaps, not as much fun as) my last video.  I decided to try moving a couple of animations from Serge over to Kid.  Aside from copying the data, this required inserting additional commands into the first frame so that the commands from Serge would be applied to the proper articulations on Kid's model.  (For example, Kid's hair, including the braid, has nine articulations which have no corresponding part on Serge's model.  0xC bytes of extra commands for each articulation had to be inserted at the correct spot in the first frame to prevent these articulations from getting commands intended for the arms.)  I also had to modify the animated articulation identifier (which needs a name that's easier to type, dang it!) so that the commands in later frames would apply to the proper parts of Kid's model.  This generally meant sticking extra zeroes in the binary anywhere I had to put extra commands in the first frame.

This experiment falls fully under the heading of "stuff I do because I want to see if I can do it," but I feel like it's a decent demonstration of the sort of stuff we can do with our current knowledge of the animation format anyways.

You're my hero man, seriously. This stuff is so awesome. I can't wait what more the future's gonna bring.

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #92 on: April 17, 2009, 03:16:04 pm »
HyperGeek was working on getting Magil/Magus some real scythe animations last he uploaded a video on Youtube. Which is extremely awesome -- it would necessitate an update to the "Magus Unmasked" patch when he finishes with that.

HyperGeek

  • Architect of Kajar
  • Earthbound (+15)
  • *
  • Posts: 24
  • The "Hare Hare YuKid" guy
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #93 on: April 17, 2009, 03:36:12 pm »
Sorry progress on that has been scarce recently.  With the end of the semester coming up, my professors have been piling on a lot more than they did previously.

I'm gonna try to get some decent work done this afternoon.  So far I have the idle, ready to attack, and attack animations done.  I need to clean those up, but are there any other animations I should move while I'm at it?

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #94 on: April 17, 2009, 04:14:08 pm »
Yeah, we're all sidetracked with Finals approaching, no worries. It wouldn't even be effective to release a "Magus Unmasked" update until late June or July, otherwise it would just drown in Crimson Echoes publicity. This way we can make it look like there's just no end to Compendium projects.

The only other animation I might suggest changing is the spell-casting animation, but I think it looks okay the way it was originally too; your call there, I guess.

Yourgingerestfan

  • CC:DBT Dream Team
  • Magical Dreamer (+1250)
  • *
  • Posts: 1404
  • im ginger ....your ginger ....were all ginger !
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #95 on: April 17, 2009, 04:31:30 pm »
*watches hyper's video*

Wow ! Magus looks really good with lynxs animations .

HyperGeek

  • Architect of Kajar
  • Earthbound (+15)
  • *
  • Posts: 24
  • The "Hare Hare YuKid" guy
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #96 on: May 09, 2009, 01:09:40 am »
Have we broken open section 3 of the models yet?  It's not in the wiki (other than the fact that it affects shading and model positioning), and a quick search over the forums didn't turn up anything useful, so I did some poking around in there over the last couple of days.  I think I've managed to figure out a fair bit of this section from examining Serge, Kid, and Guile's models. Here's what I've got.  (If we DO already have this and I just missed it, let me know so I can delete this post.  It's kinda long, probably due to my tendency to ramble.)

Section 3 is 0x160 bytes long, no matter how complex the model is.  It seems to have three distinct segments of constant lengths, so it doesn't have any sort of header.

The first 0x100 bytes of it define points around the model.  Each point is made up of 8 byte long chunks which look something like this:

XX XX YY YY ZZ ZZ AA AA

The X's, Y's, and Z's define a coordinate in 3D space like we've already seen in section 2 (as well as pretty much the same thing in section 4).  As I've said before, I have problems thinking in 3D, so I may have the axes out of order.  (I'm guessing it's the same order as section 2, but I could be wrong.)  The A's contain the ID of whatever articulation the coordinate is relative to.

A few of these are in roughly the same position on all the models I've looked at.  (Remember that I'm getting this from Serge, Kid, and Guile.  These are, notably, humanoid models.  Non-humanoids like Poshul or Pip might differ.)  Here are the indexes of the coordinates, which are useful in the third segment.  Multiply them by 8 to get the actual offsets into section 3:

00 - Top of head
01 - Front of face
02 - Neck
03 - Right shoulder
04 - Left shoulder
05 - Right elbow
06 - Left elbow
07 - Right hand
08 - Left hand
09 - Waist
0A - Right knee
0B - Left knee
0C - Right ankle
0D - Left ankle

0x0E defines the height the camera sits at when it rotates around the character during their idle animation.  Only the vertical component of this one seems to matter.

0x0F defines the distance between the character and whatever enemy they happen to be attacking at the time.  Only one of the horizontal axes seems to matter here, and only the magnitude of the distance, not its direction, so you can't do something funny like have the character go charging past their opponent in preparation for an attack.  Um, not that that was the first thing I tried or anything.  :)

0x10 is located on the upper center of the model's torso.

0x11 is relative to the right hand on Serge, Kid, and Guile, but seems to sit a distance off from it, and I can't tell if it's roughly the same distance or direction.  This seems so out of place that part of me wants to believe that this defines a distance like 0x0E and 0x0F, but I haven't been able to determine what it affects, if anything.

The indexes from here are dependent on the model and seem a tad chaotic.  On Serge's model, 0x12 sits directly on the weapon articulation.  Guile has an entry exactly like this, but it's the very last one in the section at index 0x1F.  Kid has no corresponding entry, as she has no weapon articulation.  (Or at least, none that I could find.  She's got an articulation directly after the right hand where the weapon is on Serge, Guile, and Lynx, but it doesn't seem to actually affect anything.)  There's a lot of entries made up entirely of 0s here, with some other entries tossed in towards the end.  Only the one Guile has at 0x1F has any significance that I've figured out yet.

I'm going to jump the second segment here and come back to it in a minute.  The third segment is fairly short, anyways.

The third segment begins somewhere around 0x120 bytes in.  I can't make this segment's length make sense no matter how much I look at it, so I might be missing something, but what I've got seems to make sense.  This segment is made of 8 byte long coordinates pretty much exactly like the ones in the first segment, in the form XXXX YYYY ZZZZ AAAA with the exception that the AA AA bytes are now indexes into the list of coordinates defined by segment one.  For example, if one coordinate here was 0000 0000 0000 0700 then it would sit directly on the right hand coordinate.

The only part of the third segment that I've managed to assign any importance to is the coordinate that begins 0x1A bytes from the end of section 3.  The game attaches the character's weapon to the coordinate defined here.  By changing what coordinate in segment 1 this points to, we could, say, make Kid a lefty.

Alright, back to the second segment, which defines the model's shading.  Segment 2 is 0x20 bytes long, divided into 0x4 byte chunks.  There are 8 chunks, but the amount that actually do anything is dependent on the model.  For each that's actually used, it controls the shading to a specific part of the model.  For example, Serge only uses two of them, one of which affects the area of his shirt below the belt, and one of which affects everything else.  Kid is similar, having one chunk for her skirt and one chunk for the rest of the model.

Each chunk is of the form

RR GG BB EF

where RR, GG, and BB define how red, green, and blue, the model should be.  The neutral value for these is 0x80.  Higher values tint the model more of that color, lower values tint the model less of that color.

E and F are the fun parts.  It's one byte, but the 4 highest order bits and the 4 lowest order bits (in other words, the first digit and second digit) control different things.

E controls what texture (if any) gets drawn over the model's normal one.  Here's what the individual values do: (A lot of these look the same to me.  There may be subtle variations between some of the "identical" ones, but I didn't see them.)

0 - Normal
1 - Normal
2 - Highly reflective
3 - Highly reflective
4 - Reflective
5 - Reflective
6 - Reflective
7 - Reflective
8 - Normal
9 - Normal
A - Weird texture application (Looks like this could be Serge's normal texture, just applied in a weird way.)
B - Weird texture application
C - Garbage texture (This one isn't static, it changes every frame.  If I had to guess, I'd say it's supposed to point to a texture loaded by an attack or tech, but which is simply garbage normally.)
D - Garbage texture
E - Garbage texture
F - Garbage texture

F controls the model's transparency and a related effect or two.  Here comes the list:

0 - Solid
1 - Invisible
2 - Transparent
3 - Invisible
4 - Solid
5 - Invisible
6 - Transparent and bright
7 - Invisible
8 - Solid
9 - Invisible
A - Transparent and inverted
B - Invisible
C - Solid
D - Invisible
E - Transparent and very faint
F - Invisible

Combining these can be interesting.  For example, here's Serge made of glass.

And wow was THAT longer than I anticipated.  Let me know if I'm being redundant by posting this or if anything needs clarification.

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #97 on: May 09, 2009, 01:31:04 am »
Oh, baby, that is awesome Hyper. No, we didn't know very much about Section 3 at all but we do now!

We can do some really cool stuff with ghost models and maybe even liquid metal enemies and the like now.

IAmSerge

  • Temporal Warrior (+900)
  • *
  • Posts: 964
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #98 on: May 09, 2009, 02:06:36 am »
nice job...

...and what video are they speaking of? I wanna see it.

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #99 on: May 09, 2009, 02:30:22 am »
IAmSerge, you can take a look at all of Hyper's experiments here.

Danetta

  • Guru of Time Emeritus
  • Porrean (+50)
  • *
  • Posts: 51
  • So where is it going?
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #100 on: July 17, 2016, 07:09:10 pm »
IAmSerge, you can take a look at all of Hyper's experiments here.
Is there anyone who can explain some animation related stuff? It's clear that HyperGeek knows a lot, but I don't know a way to ask him.

utunnels

  • Guru of Reason Emeritus
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2797
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #101 on: July 17, 2016, 08:02:47 pm »
https://www.chronocompendium.com/Term/Mdl.html
https://www.chronocompendium.com/Term/Anim.html

The informations are already on the wiki, though it is a bit hard to use without examples.

Danetta

  • Guru of Time Emeritus
  • Porrean (+50)
  • *
  • Posts: 51
  • So where is it going?
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #102 on: July 17, 2016, 08:16:02 pm »
Well, I thought if someone did things like in the video, then someone know about .cpts and other things inside drp (animations sequence sets) — .0010 and .001A type files.

https://www.youtube.com/watch?v=wQijntNFD0g

utunnels

  • Guru of Reason Emeritus
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2797
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #103 on: July 17, 2016, 09:17:36 pm »

Now it is possible to rip animations from the game with some blender script mentioned in this topic, though I haven't been able to create usable bone animations. But editing the animations is another thing, without a working tool it is not a pleasant job to do.


Guess the spam bot blew this topic out of water.

Danetta

  • Guru of Time Emeritus
  • Porrean (+50)
  • *
  • Posts: 51
  • So where is it going?
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #104 on: July 18, 2016, 10:11:45 am »
But editing the animations is another thing, without a working tool it is not a pleasant job to do.
Well, you know, to create a working tool you have to understand a format.
There are operators and parameters in .001A. I am trying to disassemble it, but haven't done much except some cute camera actions.

Also, .001A files is primarily used for the effects when attack TOUCH the enemy.
For example, engine will read file only one time for the basic attack, but 3 times for Fireball element, because it touches enemy 3 times.