Re: [hlcoders] Player animation ? Interesant Discussion

2005-01-12 Thread Patrick Flanagan
Using Matt's suggestions, I was able to get a HL2DM model animating in
my code. Turns out I was in fact loading the wrong model animations
file.


On Tue, 11 Jan 2005 23:45:26 -0700, Jose Luis Gonzalez [EMAIL PROTECTED] 
wrote:
 This is a multi-part message in MIME format.
 --
 [ Picked text/plain from multipart/alternative ]
 This is interesant. Can we use the HL2DM models in the SDK?. What is the 
 correct way to do?, cloning the HL2DM weapons to the SDK and using the 
 animation layer sequences of the HL2DM??.

 Looking in the Model viewer, a lot of models have the weapon activity 
 sequences, like GMAN. Can we use this model with the SDK, for example?.

 This code is the correct way to do the animation sequences??. Can you post an 
 example using a HL2 model or a HL2DM model ??. Thanks.

 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto: [EMAIL PROTECTED] ] On Behalf Of Adrian Finol
 Sent: Tuesday, January 11, 2005 2:05 PM
 To:  hlcoders@list.valvesoftware.com
 Subject: RE: [hlcoders] Player animation ?

 Actually, it looks like he's not loading the HL2DM models but the HL2
 ones. In HL2DM Humans and Combine share the same animations.

 Make sure you are loading from the right *_animations.mdl animation
 files. Both set of models should have the same animation and activity
 names.

 Other than that Major Boone speaks the truth. Using the Weapon's
 activity translation table is the cleanest way to handle different
 animations per weapon.

 -Original Message-
 From:  [EMAIL PROTECTED]
 [mailto: [EMAIL PROTECTED] ] On Behalf Of Matt Boone
 Sent: Tuesday, January 11, 2005 2:05 PM
 To:  hlcoders@list.valvesoftware.com
 Subject: RE: [hlcoders] Player animation ?

 HL2DM player animation uses a different system than is in the sdk.
 Basically you have a list of base sequences, preblended with 9-way aims
 and 9-way runs - those are the aim animations and are called in game
 code via activities ( why you see different animation names in combine
 vs rebels ).

 Shooting is done by adding the fire animation as a gesture over top of
 the base sequence.

 For Dod we're doing a hybird, with the activities on base sequence and
 fire/reload/hand signal gestures over top, but non-networked like the
 sdk does it to reduce net traffic.

 I would recommend moving at least to using activities for your player
 animations so avoid all the nasty string construction and comparing.

 As far as your animations only playing the first and last frame, this
 function doesn't appear to be causing that. I would check with a a
 different model/sequence to see if it's a problem in your model.

 -Original Message-
 From:  [EMAIL PROTECTED]
 [mailto: [EMAIL PROTECTED] ] On Behalf Of Patrick
 Flanagan
 Sent: Tuesday, January 11, 2005 11:33 AM
 To:  hlcoders@list.valvesoftware.com
 Subject: [hlcoders] Player animation ?

 I'm trying to get player animation working with some non-CS models.
 Specifically, I'd like to get animations working with the models used in
 HL2DM. I used model viewer to load up the combine models from HL2DM and
 some of the resistance models from HL2DM.

 Not only are their animations totally different from CS, they're
 different from each other. The combine models have different animations
 than the resistance models. I've been working on converting the
 animation names in sdk_playeranimstate.cpp to call the animations in
 combine_solder.mdl, which I think is the one used in HL2DM.

 I've run into some problems with this though.

 First off, there's doesn't seem to be any walking or running shooting
 animations. There are animations like ShootSGs, ShootSGc, ShootSMG1s,
 ShootSMG1c, etc but there's no walk_upper_mp5 or run_upper_mp5 like in
 the CS models. There doesn't seem to be any animation to be running and
 shooting at the same time.

 Second, the animations seem to only play the first frame and then stop.
 For example, I changed CalcFireLayerSequence to look like this:

 int CSDKPlayerAnimState::CalcFireLayerSequence(PlayerAnimEvent_t event)
 {
 // Figure out the weapon suffix.
 CWeaponSDKBase *pWeapon = m_pHelpers-SDKAnim_GetActiveWeapon();
 if ( !pWeapon )
 return 0;

 const char *pSuffix = GetWeaponSuffix();
 if ( !pSuffix )
 return 0;

 // Don't rely on their weapon here because the player has
 usually switched to their
 // pistol or rifle by the time the PLAYERANIMEVENT_THROW_GRENADE
 message gets to the client.
 if ( event == PLAYERANIMEVENT_THROW_GRENADE )
 {
 pSuffix = Gren;
 }

 switch ( GetCurrentMainSequenceActivity() )
 {
 case ACT_PLAYER_RUN_FIRE:
 case ACT_RUN:
 //return CalcSequenceIndex( %s%s,
 DEFAULT_FIRE_RUN_NAME, pSuffix );
 return CalcSequenceIndex( ShootSMG1s );
 //FIXME: totally wrong

 case ACT_PLAYER_WALK_FIRE:
 case ACT_WALK:
 //return CalcSequenceIndex( %s%s,
 DEFAULT_FIRE_WALK_NAME, pSuffix );
 return CalcSequenceIndex( ShootSMG1s );
 //FIXME: totally wrong

 case ACT_PLAYER_CROUCH_FIRE:
 case ACT_CROUCHIDLE:
 return CalcSequenceIndex( %s%s,
 

RE: [hlcoders] Player animation ? Interesant Discussion

2005-01-11 Thread Jose Luis Gonzalez
This is a multi-part message in MIME format.
--
[ Picked text/plain from multipart/alternative ]
This is interesant. Can we use the HL2DM models in the SDK?. What is the 
correct way to do?, cloning the HL2DM weapons to the SDK and using the 
animation layer sequences of the HL2DM??.

Looking in the Model viewer, a lot of models have the weapon activity 
sequences, like GMAN. Can we use this model with the SDK, for example?.

This code is the correct way to do the animation sequences??. Can you post an 
example using a HL2 model or a HL2DM model ??. Thanks.

-Original Message-
From: [EMAIL PROTECTED]
[mailto: [EMAIL PROTECTED] ] On Behalf Of Adrian Finol
Sent: Tuesday, January 11, 2005 2:05 PM
To:  hlcoders@list.valvesoftware.com
Subject: RE: [hlcoders] Player animation ?

Actually, it looks like he's not loading the HL2DM models but the HL2
ones. In HL2DM Humans and Combine share the same animations.

Make sure you are loading from the right *_animations.mdl animation
files. Both set of models should have the same animation and activity
names.

Other than that Major Boone speaks the truth. Using the Weapon's
activity translation table is the cleanest way to handle different
animations per weapon.

-Original Message-
From:  [EMAIL PROTECTED]
[mailto: [EMAIL PROTECTED] ] On Behalf Of Matt Boone
Sent: Tuesday, January 11, 2005 2:05 PM
To:  hlcoders@list.valvesoftware.com
Subject: RE: [hlcoders] Player animation ?

HL2DM player animation uses a different system than is in the sdk.
Basically you have a list of base sequences, preblended with 9-way aims
and 9-way runs - those are the aim animations and are called in game
code via activities ( why you see different animation names in combine
vs rebels ).

Shooting is done by adding the fire animation as a gesture over top of
the base sequence.

For Dod we're doing a hybird, with the activities on base sequence and
fire/reload/hand signal gestures over top, but non-networked like the
sdk does it to reduce net traffic.

I would recommend moving at least to using activities for your player
animations so avoid all the nasty string construction and comparing.

As far as your animations only playing the first and last frame, this
function doesn't appear to be causing that. I would check with a a
different model/sequence to see if it's a problem in your model.

-Original Message-
From:  [EMAIL PROTECTED]
[mailto: [EMAIL PROTECTED] ] On Behalf Of Patrick
Flanagan
Sent: Tuesday, January 11, 2005 11:33 AM
To:  hlcoders@list.valvesoftware.com
Subject: [hlcoders] Player animation ?

I'm trying to get player animation working with some non-CS models.
Specifically, I'd like to get animations working with the models used in
HL2DM. I used model viewer to load up the combine models from HL2DM and
some of the resistance models from HL2DM.

Not only are their animations totally different from CS, they're
different from each other. The combine models have different animations
than the resistance models. I've been working on converting the
animation names in sdk_playeranimstate.cpp to call the animations in
combine_solder.mdl, which I think is the one used in HL2DM.

I've run into some problems with this though.

First off, there's doesn't seem to be any walking or running shooting
animations. There are animations like ShootSGs, ShootSGc, ShootSMG1s,
ShootSMG1c, etc but there's no walk_upper_mp5 or run_upper_mp5 like in
the CS models. There doesn't seem to be any animation to be running and
shooting at the same time.

Second, the animations seem to only play the first frame and then stop.
For example, I changed CalcFireLayerSequence to look like this:

int CSDKPlayerAnimState::CalcFireLayerSequence(PlayerAnimEvent_t event)
{
 // Figure out the weapon suffix.
 CWeaponSDKBase *pWeapon = m_pHelpers-SDKAnim_GetActiveWeapon();
 if ( !pWeapon )
 return 0;

 const char *pSuffix = GetWeaponSuffix();
 if ( !pSuffix )
 return 0;

 // Don't rely on their weapon here because the player has
usually switched to their
 // pistol or rifle by the time the PLAYERANIMEVENT_THROW_GRENADE
message gets to the client.
 if ( event == PLAYERANIMEVENT_THROW_GRENADE )
 {
 pSuffix = Gren;
 }

 switch ( GetCurrentMainSequenceActivity() )
 {
 case ACT_PLAYER_RUN_FIRE:
 case ACT_RUN:
 //return CalcSequenceIndex( %s%s,
DEFAULT_FIRE_RUN_NAME, pSuffix );
 return CalcSequenceIndex( ShootSMG1s );
//FIXME: totally wrong

 case ACT_PLAYER_WALK_FIRE:
 case ACT_WALK:
 //return CalcSequenceIndex( %s%s,
DEFAULT_FIRE_WALK_NAME, pSuffix );
 return CalcSequenceIndex( ShootSMG1s );
//FIXME: totally wrong

 case ACT_PLAYER_CROUCH_FIRE:
 case ACT_CROUCHIDLE:
 return CalcSequenceIndex( %s%s,
DEFAULT_FIRE_CROUCH_NAME, pSuffix );

 case ACT_PLAYER_CROUCH_WALK_FIRE:
 case ACT_RUN_CROUCH:
 return CalcSequenceIndex( %s%s,
DEFAULT_FIRE_CROUCH_WALK_NAME, pSuffix );

 default:
 case ACT_PLAYER_IDLE_FIRE:
 //return CalcSequenceIndex( %s%s,
DEFAULT_FIRE_IDLE_NAME, pSuffix );
 return CalcSequenceIndex( ShootSMG1s );