Author Topic: CHRONO CROSS FILE EXPLORATION THREAD  (Read 86826 times)

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #480 on: March 28, 2008, 11:55:19 pm »
My first step is to get everything wikified, so maybe I'll come across something in the many notes we left in this thread along the way. I seem to recall one experiment where I got one of Serge's bandana ties to stretch all the way to his knee or something, so I'll have to keep an eye out for that when I do a run-through and see if that will be useful in any way.

There are probably several possibilities for the messed-up bandana ties, but at first glance it looks to me like the 3D coordinates assigned to each of the bandana tie vertices is way off, although the bandana ties are "rooted" to the correct place (i.e., the head bone/head joint I guess). Either that, or the 3D coordinates given to the bandana tie vertices are being specified relative to the wrong joint. We'll figure it out eventually.

Luminaire85

  • Guru of Time Emeritus
  • Chronopolitan (+300)
  • *
  • Posts: 311
    • View Profile
    • Chrono Cinema
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #481 on: March 29, 2008, 01:04:14 am »
Okay, so this is where I think the first four bones of Serge's model actually go, since (1) the bones exactly span the vertices mapped to each bone and (2) Bone.3 ends right at the point in Serge's head where the bandana tips connect.

As my earlier post today suggests, I have adjusted my code so that Bone.1 takes the length of what is given for Bone.2, Bone.2 takes the given length for Bone.3, and Bone.3 takes the given length for Bone.4. All of these bones keep their given rotations. Right now I am only manipulating the bone data, and leaving the vertices intact as they are.

The next step will be to try to figure out one of Serge's arms or legs. I think if I can figure one of them out then the others will fall into place.

[attachment deleted by admin]

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #482 on: March 29, 2008, 02:22:37 am »
I'm sorry...

Call me juvenile, stupid, shallow, immature, or outright peurile,  but that picture is HILARIOUS HAHAHAAH!!!

at myself

Luminaire85

  • Guru of Time Emeritus
  • Chronopolitan (+300)
  • *
  • Posts: 311
    • View Profile
    • Chrono Cinema
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #483 on: March 30, 2008, 10:10:29 am »
Heh, wasn't thinking about that at all.

Some good news: Version 0.2.1 of my script, which I archived on the forums for good reason, calculates Serge's bandana correctly. Hopefully all I need to do is compare that version with the current version and figure out which of the changes I made is causing the trouble.

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #484 on: March 30, 2008, 10:54:57 am »
Awesome! Do you think it would be worthwhile running the Mystic Knights models through that version as well and seeing what (if any) difference it makes for those models?

Luminaire85

  • Guru of Time Emeritus
  • Chronopolitan (+300)
  • *
  • Posts: 311
    • View Profile
    • Chrono Cinema
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #485 on: April 21, 2008, 03:20:58 pm »
I don't know if I've mentioned this before, but I've noticed that most, if not all, of the troublesome areas of each model occur where the joint data contains significant values for all three rotation angles. I've been thinking of them as Euler angles and just using Blender's Euler construct to work with them, but I've been thinking that may be premature.

I'm fairly sure that the angles as presented in the model files represent rotation around the x-axis, y-axis, and z-axis, respectively, but I'm not sure how to interpret coupled rotations. Any insight into this would be most welcome.

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #486 on: April 21, 2008, 03:30:06 pm »
By "coupled rotations" Luminaire, are you referring to the dual shoulder and hip joints specified in Section 2? I'll have to take a look at Serge's Section 2 rotation values compared to Kid's and Flea's and Guile's when I get a chance to dive back into this.

EDIT: There was some other joint type being discussed in this thread a while back, might have been posited by MDenham. I can't remember what that was offhand and I can't find it in the thread at the moment, but I'll shout it out if I come across it next time I try to wikify everything.
« Last Edit: April 21, 2008, 03:35:04 pm by FaustWolf »

Luminaire85

  • Guru of Time Emeritus
  • Chronopolitan (+300)
  • *
  • Posts: 311
    • View Profile
    • Chrono Cinema
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #487 on: April 21, 2008, 03:44:30 pm »
As an example of what I meant to say, take one of Serge's bandana ties. According to the way my script is interpreting the Section 2 data (which appears to be kinda close, but not quite, to the right way to do it), the rotation data for those vertices comes out to be (-82.5, 89.9, 6.2). A set of rotation angles with only one nonzero value, e.g. (-82.5, 0, 0), would correspond to a rotation around the axis corresponding to the nonzero value by the amount of the value, e.g. rotate -82.5 degrees around the x-axis. The problem is that rotating around one axis causes the other two axes to move, and so the order of rotations matters.

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #488 on: April 23, 2008, 01:15:44 am »
Hey Luminaire, while I was going through the Chrono Cross File Structure Page lately, I checked out ZeaLitY's debug room notes and found a debug option for this:


Adjust Chara.'s rot
   Start Changes
      "Current Values...
      X:0
      Z:0
      Y:0"
      Set rotx = 0000
         (If >4096) "Max is 4096!"
      ~
      Next
      Set rotx again
      ~
      Set rotz again
      ~
      Set roty again


Would it help things any to see this option in motion? I could do a Youtube vid after I get finals out of the way. I'm not sure if it rotates the whole model (ZeaLitY would know better), but it might demonstrate how the rotation planes are handled, perhaps.

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #489 on: April 23, 2008, 02:23:49 am »
Yep, just rotates everything.

MDenham

  • CC:DBT Dream Team
  • Chronopolitan (+300)
  • *
  • Posts: 330
  • Glowsticks are not a weapon.
    • View Profile
    • Java IRC - konata.echoes-online.com
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #490 on: April 23, 2008, 04:03:50 am »
Faust: It's because of how that menu's ordered that I was pretty sure most rotations were in either X-Z-Y or Y-Z-X order (not sure which of the two, though, but probably X-Z-Y).

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #491 on: April 23, 2008, 11:02:09 am »
If that's the way the root bone operates (hence the whole model turning) for field models, then I imagine all bone joints would operate thus. I didn't pick up on this earlier because I was trying to figure it out solely by observing, and no doubt got mixed up along the way. Luminaire, does the assumption of an X-Z-Y order Euler rotation for all joints change things at all?

Luminaire85

  • Guru of Time Emeritus
  • Chronopolitan (+300)
  • *
  • Posts: 311
    • View Profile
    • Chrono Cinema
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #492 on: April 23, 2008, 01:57:16 pm »
I can't say for sure until I mess around with it, but as near as I can tell the way I was doing it was X-Y-Z order, so it's something different anyway.

I may also try to play around with those rotations in debug mode too.

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #493 on: May 10, 2008, 02:24:28 am »
Time to get the ball rolling again with a review question.

Luminaire and MDenham, did we ever settle on the exact offset ranges for Serge's Section 1-1-1, 1-1-2, 1-1-3, and 1-1-4?

I know Section 1-1-1 is offsets 0x40 ~ 0x8B, but how about the others? The vertex numbers for Section 1-1-1 add up to 301, but I'm having difficulty getting the other sections to add up to 210, 5, and 43 vertices respectively. I've attached a screencap of Section 1-1 of Serge's model, and also a zipped Excel spreadsheet in case anyone wants to fiddle with it.

Our previous posts on the matter begin here:
http://www.chronocompendium.com/Forums/index.php/topic,4770.msg88512.html#msg88512




[attachment deleted by admin]

Luminaire85

  • Guru of Time Emeritus
  • Chronopolitan (+300)
  • *
  • Posts: 311
    • View Profile
    • Chrono Cinema
Re: CHRONO CROSS FILE EXPLORATION THREAD
« Reply #494 on: May 10, 2008, 10:19:04 am »
That's because Section 1-1 actually has the repeating structure

{unidentified data}
8-byte vertex groups
16-byte vertex groups

The length of each segment of unidentified data can be determined by reading the first four bytes. If the value is 1, the length is 24 (including the first four bytes); if the value is greater than 1, the length is 24 + 4*value.

In Serge's model file there are two repeats of that structure, with offsets

0x0020-0x003f Unknown
0x0040-0x008b 8-byte vertex groups - 301 vertices
0x008c-0x028b 16-byte vertex groups - 210 vertices
0x028c-0x02ab Unknown
0x02ac-0x02b7 8-byte vertex groups - 5 vertices
0x02b8-0x0357 16-byte vertex groups - 43 vertices

No idea what the unknown sections represent.