HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Лажа с анимацией (https://hlfx.ru/forum/showthread.php?threadid=3407)
Отправлено KiQ 13-05-2012 в 13:34:
ONeiLL о, это еще вроде на араржменте обсуждали, щас найду
Добавлено 13-05-2012 в 17:34:
http://am.half-lifecreations.com/fo...php?topic=598.0
__________________
-Brain is dead-
Отправлено ONeiLL 13-05-2012 в 13:50:
ура!!!!
Добавлено 13-05-2012 в 17:36:
Правда я тупо закоментил всё это дело
Добавлено 13-05-2012 в 17:40:
теперь глючит только тогда, когда я стою на месте
Добавлено 13-05-2012 в 17:50:
и прыгаю
Отправлено Jimmy C. 13-05-2012 в 14:11:
ONeiLL ты не забыл положить player.mdl из кс в папку models в халфе?
__________________
Все что делает маппер, программист делает в движке, поскольку ему лень. ©Дядя Миша

Отправлено ONeiLL 13-05-2012 в 16:31:
не
Добавлено 13-05-2012 в 18:20:
но там на форуме про это говорят
Добавлено 13-05-2012 в 20:31:
с анимацией idle я разобрался, остался прыжок
Отправлено Ku2zoff 13-05-2012 в 17:21:
ONeiLL не проще было пересадить меш игрока из КС на халфовский скелет?
Отправлено ONeiLL 14-05-2012 в 07:32:
Ku2zoff , я в моделировании нуб, да я и так всё уже зделал. Если кому надо, то вот, держите:
C++ Source Code:
1 | void CBasePlayer::SetAnimation( PLAYER_ANIM playerAnim ) |
7 | speed = pev->velocity.Length2D(); |
9 | if (pev->flags & FL_FROZEN) |
12 | playerAnim = PLAYER_IDLE; |
18 | //m_IdealActivity = ACT_HOP; |
21 | case PLAYER_SUPERJUMP: |
22 | //m_IdealActivity = ACT_LEAP; |
26 | m_IdealActivity = ACT_DIESIMPLE; |
27 | m_IdealActivity = GetDeathActivity( ); |
38 | m_IdealActivity = m_Activity; |
41 | m_IdealActivity = ACT_RANGE_ATTACK1; |
47 | if ( !FBitSet( pev->flags, FL_ONGROUND ) && (m_Activity == ACT_HOP || m_Activity == ACT_LEAP) ) // Still jumping |
49 | m_IdealActivity = m_Activity; |
51 | else if ( pev->waterlevel > 1 ) |
54 | m_IdealActivity = ACT_HOVER; |
56 | m_IdealActivity = ACT_SWIM; |
60 | m_IdealActivity = ACT_WALK; |
65 | switch (m_IdealActivity) |
73 | if ( m_Activity == m_IdealActivity) |
75 | m_Activity = m_IdealActivity; |
77 | animDesired = LookupActivity( m_Activity ); |
78 | // Already using the desired animation? |
79 | if (pev->sequence == animDesired) |
82 | pev->gaitsequence = 0; |
83 | pev->sequence = animDesired; |
88 | case ACT_RANGE_ATTACK1: |
89 | if ( FBitSet( pev->flags, FL_DUCKING ) ) // crouching |
90 | strcpy( szAnim, "crouch_shoot_" ); |
92 | strcpy( szAnim, "ref_shoot_" ); |
93 | strcat( szAnim, m_szAnimExtention ); |
94 | animDesired = LookupSequence( szAnim ); |
95 | if (animDesired == -1) |
98 | if ( pev->sequence != animDesired || !m_fSequenceLoops ) |
103 | if (!m_fSequenceLoops) |
105 | pev->effects |= EF_NOINTERP; |
108 | m_Activity = m_IdealActivity; |
110 | pev->sequence = animDesired; |
111 | ResetSequenceInfo( ); |
115 | if (m_Activity != ACT_RANGE_ATTACK1 || m_fSequenceFinished) |
117 | if ( FBitSet( pev->flags, FL_DUCKING ) ) // crouching |
118 | strcpy( szAnim, "crouch_aim_" ); |
120 | strcpy( szAnim, "ref_aim_" ); |
121 | strcat( szAnim, m_szAnimExtention ); |
122 | animDesired = LookupSequence( szAnim ); |
123 | if (animDesired == -1) |
125 | m_Activity = ACT_WALK; |
129 | animDesired = pev->sequence; |
133 | if( playerAnim == PLAYER_JUMP ) |
134 | pev->gaitsequence = LookupSequence( "jump" ); |
135 | else if( playerAnim == PLAYER_SUPERJUMP ) |
136 | pev->gaitsequence = LookupSequence( "longjump" ); |
137 | else if ( FBitSet( pev->flags, FL_DUCKING ) ) |
141 | pev->gaitsequence = LookupActivity( ACT_CROUCHIDLE ); |
142 | // pev->gaitsequence = LookupActivity( ACT_CROUCH ); |
146 | pev->gaitsequence = LookupActivity( ACT_CROUCH ); |
149 | else if ( speed > 220 ) |
151 | pev->gaitsequence = LookupActivity( ACT_RUN ); |
155 | pev->gaitsequence = LookupActivity( ACT_WALK ); |
159 | // pev->gaitsequence = LookupActivity( ACT_WALK ); |
160 | pev->gaitsequence = LookupSequence( "idle1" ); |
163 | // Already using the desired animation? |
164 | if (pev->sequence == animDesired) |
167 | //ALERT( at_console, "Set animation to %d\n", animDesired ); |
168 | // Reset to first frame of desired animation |
169 | pev->sequence = animDesired; |
171 | ResetSequenceInfo( ); |
Если зделать так, то idle и jump будут нормально выглядеть
Добавлено 14-05-2012 в 11:32:
Давно хотел спросить, что надо зделать, чтобы анимация смерти "проигралась" до конца, а то у меня моделька на коленках стоит 
И что надо зделать, чтобы после смерти модель не вертелась, то есть я убит, но моделька поворачивается за мышкой
Отправлено Jimmy C. 14-05-2012 в 13:53:
Цитата:
ONeiLL писал:
И что надо зделать, чтобы после смерти модель не вертелась, то есть я убит, но моделька поворачивается за мышкой
Держи http://articles.thewavelength.net/447/__________________
Все что делает маппер, программист делает в движке, поскольку ему лень. ©Дядя Миша

Отправлено ONeiLL 14-05-2012 в 14:29:
(epeFk@ спасибо!!!