Jump to content

Home

The GLA Challenge


Wudan

Recommended Posts

  • Replies 86
  • Created
  • Last Reply

Not too worry too much about derailling the thread - it almost feels like the whole concept of new animations has drifted far away from what it was intended to do - like what Corto got me looking for in the first place.

 

I'm not too shocked that making a humanoid GLA hasn't worked out - I'm certain that it is something we will move past when we devise a new way of thinking of it.

 

I've got a long list of interviews and blurbs about Ghoul2, it was touted as true skeletal animation, and blah blah blah ... BUT it also mentions that only SOME of the JK2 animations were motion capture, and all of the saber moves were keyed in. ALL of the models and animations were done in XSI.

 

I don't think you'll be able to make new animations for the humanoid skeleton in Max, as is, because you are looking at a lot of work moving data to and fro, and no guarantees that it will work.

 

When I was hex editing, and changing those values, everything made some sense. I've spent a lot of time going over and over the _humanoid.gla, and I'm now pretty certain what has to be done.

 

First things first, I have to do a much better write-up on the GLA format.

Link to comment
Share on other sites

You're correct about stuff being done on the fly. At least the following is done on the fly:

 

1. Transitions (interploted) from single frame animation to single frame animation (examples: idle positions) It also seems do interplotation into these positions but not out of these animations.

 

2. Movement leaning

 

3. Leg/Torso/Head animation merging

 

4. Head Tracking

 

It's very powerful. You could probably make everything on the fly if you knew what you were doing.

Link to comment
Share on other sites

Hey, I'm back from my two week vacations on the beach. Ready to resume my task as animations advisor =), or sort of. I've been reading all posts and I'm up to date now with the current status of the GLA project.

I'll be joining #JK2coding every night from today as I used to. So, see you all there tonight at 8:00 pm (GMT -3). I wanna catch up some more things to be usefull again.

Link to comment
Share on other sites

API == Application Program Interface, JK2's Ghoul2 commands are mentioned by this name in code ...

 

G2_API commands listed in g_syscalls.c

G2_API commands listed in cg_syscalls.c

 

Technically, if they worked, or one knew how to use them, you could specifiy springiness and mesh out some qboolean and CG_Trace magick to make custom IK-ish performance by the player models ... very very spiffy, but the trap_G2 commands don't seem to work very well.

Link to comment
Share on other sites

*raise hand* I know! I know! Well, at least partly. :D I know about bone setting, bolt setting, finding origin/orientation data, and surface toggling. Hell, I just fixed a minor animation bug with the roll animations.

 

While you've been hammering away at the .gla formats, I've been slowly but surely decripting the system as I go.

 

When you say "IK", do you mean the Icurus system? Bah! Recreating something like Icurus in MP would take forever and not be very useful.

Link to comment
Share on other sites

oh, that's already in there. The primary bone setting functions use angles off the parent bone. Basically, the game moves bottom to top each frame adjusting the bones from the defualt animation angles to what you want.

 

No need to redo work that's already been done. :D

 

Come onto #jk2coding you bums.

Link to comment
Share on other sites

You *might* be able to do that. You'd have to make a separate model that looks exactly the same as your in-game model, if you wanted to have that character have new animations, because the animation file a character uses is in the model file, but it could be possible.

Link to comment
Share on other sites

As ASk says, 'this is useless.' - as in, trying to dump the GLA to XSI is useless.

 

At least, I don't have any vested interest in dumping the GLA to XSI, because I don't know how to use XSI, or the formatting, etc.

 

However, because I understand what the various parts of the GLA (except for the first skeleton array - if BoBo_Fett would enlighten me as to how the basepose for the skeleton is calculated, I think I pretty much understand the rest.

 

So, a good programmer could probably whip up a way of showing the skeleton, with each 'joint' as little dots, with hierarchy and everything drawn correctly within a week. He might have some little slider bars to adjust the skeleton's angles and positions within 2. Some shiny features, et cetera, we'd be looking at new (non-borked) animations within a month or two. Very optimistic outlook.

 

However, I will not be able to write such a program so quickly. I'm going to school, I work, and I try to keep my wife and kid in line, which takes up a lot of my time.

 

So, if someone is interested in such a project, let me know, I can try to help you in any way possible.

 

I'll be revising and re-writing my un-official GLA documentation, since I've yet to formally write everything I know down.

Link to comment
Share on other sites

mdxm (.glm) format is based on MD3. There are tons of free MD3 loaders out there.

 

Plus, we don't really need to render the .glm, just lines and dots for joints and bones. Little knobs to rotate this and that and move this and that. Very simple. Very powerful.

Link to comment
Share on other sites

                   Frame (    0): 0x  3300
      QuatIndex(     1) Address: 0x39255e
Quat: fd bf fe 7f fe 7f fe 7f  0 80  0 80  0 7a
  W:   1.000000
  X:   0.000000
  Y:   0.000000
  Z:   0.000000
XLAT:   0.000000
YLAT:   0.000000
ZLAT: -24.000000

 

I wrote a little program to show the values held in the 14 bytes. Next Step - more functionality!

Link to comment
Share on other sites

Yes. Quaternion Form.

 

You'll notice that Raven's Code also includes 'xlat', which used to be thought was 6 bytes. I've interpretted it as 3 separate 2 byte sections(xlat, ylat, zlat), each of them 'lateral joint position changes from the basepose', which means when I reversed the positioning and told quat index 0 (which is like 1, only the zlat is 0 instead of -24, -24 puts the feet on the ground, btw) to have a +20 zlat, i got the expected Mr Fantastic effect, all the bones refering to quat index 0 stretched upwards about 20 units or so.

 

Unilaterally, the Quaternion is a better way to describe Rotations which contain more than one angular velocity. Most of this is heavy flashbacks to high-school physics, but I'm taking my time and learning all about it.

 

When I'm done with JK2 coding (which I might be, once I have put the last nail in this coffin), I'd like to go to Tenebrae 2 and make it Quaternion based (if Charles H hasn't done this already) - it's what makes games like Unreal2 so dynamic. If you think about it, the players viewpoint in Quake3 only ever rotates on 2 axii, when it should be able to rotate on 3. Doom3/Quake4 will have Quaternions, no doubt.

Link to comment
Share on other sites

JK2 is the same as Quake3, euler (yay!), but it can be hard to visualize what I'm talking about. Basically, stick out your right hand. Make your index finger point forward, your middle finger point left and your thumb stick up. Your pointer finger is the Y Axis. While rotations occur on the X (look up and down) and Z (look left and right) axii, they don't on the Y axis (tilt head from left to right). I think they could, but that's not what I'm after. I'm close to busting the Quaternion, I can see the values, I can change the values, now I just have to measure the behavior, document and test it.

 

Then we'll go from there.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...