Реалестичное покачивание камеры при ходьбе
Код изначально подстроен под стандартную скорость игрока и звукам
ходьбы. Он подходит как и на 2006, так и на 2007 версию движка.
Итак:
1. В
gamemovement.cpp под строкой 65, перед списком определений
добовляем:
// Camera Bob
ConVar cl_viewbob_enabled (
"cl_viewbob_enabled", "1", 0, "Oscillation Toggle", true, 0, true, 1 );
ConVar cl_viewbob_timer ( "cl_viewbob_timer", "10", 0, "Speed of
Oscillation");
ConVar cl_viewbob_scale ( "cl_viewbob_scale",
"0.05", 0, "Magnitude of Oscillation"); 2. Далее в этом же файле ищем функцию
void CGameMovement::WalkMove( void )
и добавляем в самый вверх следующий код:
if ( cl_viewbob_enabled.GetInt() == 1 &&
!engine->IsPaused() )
{
float xoffset = sin(
gpGlobals->curtime * cl_viewbob_timer.GetFloat() ) *
player->GetAbsVelocity().Length() * cl_viewbob_scale.GetFloat() /
100;
float yoffset = sin( 2 * gpGlobals->curtime *
cl_viewbob_timer.GetFloat() ) * player->GetAbsVelocity().Length() *
cl_viewbob_scale.GetFloat() / 400;
player->ViewPunch( QAngle(
xoffset, yoffset, 0));
} P.S. Проект уже можно компилировать, и если вас что-то не устроит, то Вы можете поиграть со значением переменной "
cl_viewbob_scale" , однако не стоит его менять слишком сильно, это может всё испортить, и в итоге Вы будете ходить с головой набок (у меня так часто было).
Если же вас не устраивает лишь направление качки, то можете попереставлять в последней строчке переменные, например:
Было так:
player->ViewPunch( QAngle(
xoffset, yoffset, 0));
Можно так:
player->ViewPunch( QAngle( 0, yoffset, xoffset)); Или так:
player->ViewPunch( QAngle( yoffset, xoffset, 0));
Моя версия этого кода:
if ( cl_viewbob_enabled.GetInt() == 1 &&
!engine->IsPaused() )
{
float xoffset = sin(
gpGlobals->curtime * cl_viewbob_timer.GetFloat() ) *
player->GetAbsVelocity().Length() * cl_viewbob_scale.GetFloat() / 100
- 0.01;
float yoffset = sin( 2 * gpGlobals->curtime *
cl_viewbob_timer.GetFloat() ) * player->GetAbsVelocity().Length() *
cl_viewbob_scale.GetFloat() / 400;
player->ViewPunch( QAngle(0,
yoffset, xoffset));
}
Источник: http://detler.ucoz.ru/publ/pokachevanie_kamery_vo_vremja_khodby/5-1-0-194
Комментарии
28.07.2011
Мы эту фичу переделываем...Там надо импровизировать со значениями...а то при таких значениях он болтается как алкаш...