PDA

View Full Version : Human Modeling and Animation Questions



Lt. Sherpa
29-06-2009, 03:00
I've spent the better part of this last week (my break between summer sessions 1 & 2 :P ) learning 3DS Max and trying to understand MoW's animation system, but I'm still having difficulty putting everything together. So far, my understanding is that all human models are built on a universal IK bone structure, with a mesh (humanskin) that is linked to this. The bone structure needs to be universal/constant because all of the animation files use this structure. Any significant changes would have some really odd results.
So, if I were to make an entirely new character mesh and link it to the IK structure in the gb_com example file and export it, it should work. All I need to do is create a new breed with the skin, and I'm good to go.

What I'm actually having difficulty with is determining how animations are called. I was looking in the .mdl file for the skin and noticed /properties/animation/human/human_anm.ext
This file essentially contains two lines, with variation

{blend "pose_stand_look_around_gun" {pose "stand_look_around_gun" end}}
{sequence "stand_look_around_gun" {speed 0.65}}

{pose "stand_look_around_gun" end} points to {sequence "stand_look_around_gun"}. the sequence is the anm file that is called, but what is {blend "pose_stand_look_around_gun" } ?

I don't quite grasp what blend means, and I haven't found any other solid references to the "pose_stand_look_around_gun" or other various blend poses.


to further complicate things, I found human.ext, which extends human_fsm.ext, which further extends all of the human_fsm/*.inc files, which all makes absolutely no sense at all.


So, I guess that breaks everything down into two questions. what files/functions call the blend "pose" in human_anm.ext and what files reference human.ext, human_fsm.ext, and the human_fsm/*.inc files?

Thanks,
Sherpa

MrDorf
29-06-2009, 03:35
This is something I don't fully understand myself just yet, but I've noticed a lot of pieces to the puzzle on my travels through the files of this game. Check out the "set/stuff/settings" folder for even more .fsm file references....though I have a feeling they'll just going to add to the confusion rather than clear things up.

I'd be interested in hearing if/when you work this out. Adding and calling infantry animations is something we've been considering for our mod but put on the backburner until the more iconic units were ready.

Also, usually in game animation terms a blend is the dynamic combination of two animation states. Basically they'll blend the last few frames of a "run stop" into the first few frames of a "raise weapon" animation, providing what looks like more complex movement. It's usually used when the two animations are focusing on different parts of the body. So effectively you'll get the soldier coming to a halt, and as he does his arms are moving to raise his rifle at the same time.

Now, that said, MoW may not use it in that form, but that's pretty typical and probably pretty close to what's going on.

Lt. Sherpa
29-06-2009, 06:32
So I looked farther down into the pz4g.def file, and saw this segment of code:

("crew_4_human_extended")
{boarder
{anm "driver"
{forward {begin "board_pz4_driver"} {end "seat_gunner_stand"} {base "open_driver"}}
{reverse {end "board_pz4_driver" -1} {base "open_driver" -1}}
}
{anm "left"
{forward {begin "board_tank_right"} {end "seat_gunner_stand"}}
{reverse {end "emit_tank_2_hold"}}
}
{anm "right"
{forward {begin "board_tank_left"} {end "seat_gunner_stand"}}
{reverse {end "emit_tank_2_hold"}}
}
{anm "armor"
{forward {begin "board_highArmor"} {end "pose_seat_armor_1"}}
{reverse {end "emit_tank_2"}}
}
{anm "armor1"
{forward {begin "board_lowArmor"} {end "pose_seat_armor_2"}}
{reverse {end "emit_body"}}
}
{anm "armor2"
{forward {begin "board_lowArmor"} {end "pose_seat_armor_1"}}
{reverse {end "emit_body"}}
}
}

Looking at anm "armor2", this starts to make sense. when a character is mounting the rear of the tank, begin the animation sequence "board _lowArmor" and end with "pose_seat_armor_1". This pose blends with the beginning of the seat_armor1 animation. This is as opposed to "pose_seat_armor_2", which blends with the end of the seat_armor1 animation. I'm guessing this is to provide some variance in the looping animation, so they don't sway or act in unison.

This makes more sense now. Basically, the poses were to be used in conjunction with other animations, like you said, to make more complex animations. What was throwing me off was that I was looking at human_anm.ext on its own, without any way of understanding its usage.


Still, those .inc and .fsm files are throwing me way off. I have no idea how to start understanding their format or how they're implemented.

MrDorf
29-06-2009, 07:18
Yeah, the boarding stuff is something I've looked at a bit and actually makes a little sense, but the real holy grail of understanding is how to trigger regular infantry movement/weapons fire/reaction animations. If you can break that code, you're awesome beyond reason....unfortunately I have a feeling it's directly linked to the AI, and therefore very, very hard to get to if not impossible.

Heer_sturmfuhrer
29-06-2009, 09:06
Shouldnt you ask soldier of destiny for advice seeing as though he has custom human models working in his mod?

Sturm

MrDorf
29-06-2009, 09:45
Shouldnt you ask soldier of destiny for advice seeing as though he has custom human models working in his mod?

Sturm


Well, custom human models aren't that big of an issue. All you really need to do is link your custom model with the existing skeleton and adjust the appropriate game files and blammo...new human model in game. It's complicated and takes a lot of work and talent, but it's been no real mystery and its been done successfully before.

What the Lt. here is trying to decipher is actually the gateway to creating entirely new human animations and by association, identifying and possibly manipulating the stimuli which triggers those animations. It's pretty much the least known area of the game when it comes to modding. I'm pretty sure no one has come close to figuring it out yet, so his time and effort is well placed.