Каталог туториалов Кодинг Реалестичное покачивание камеры при ходьбе

Реалестичное покачивание камеры при ходьбе

Код изначально подстроен под стандартную скорость игрока и звукам ходьбы. Он подходит как и на 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



Комментарии

levan563
 28.07.2011
0  
 
Quote (Le-Satan-Pirate)
  Если найду видео по The Revenge с прошлогодней ежегодной конференции AgnesTeam, то скину в скайп/icq - там как-раз была тема с подобным =)))

Мы эту фичу переделываем...Там надо импровизировать со значениями...а то при таких значениях он болтается как алкаш...
#3 Ответ Цитата

Опрос

Вы играете в Zombie Panic: Source?

МИНИ-ЧАТ

Друзья сайта

HL2 & Source Games

Mapper720.Ru - сайт о маппинге Half-life 2

 

Статистика


Онлайн всего: 1
Прохожих: 1
Пользователей: 0


Сегодня нас посетили:

Приветствуем нового пользователя:
Noug4at

Новое в AgnesTeam

Теги

smd expotrer smd importer smd плагин 3ds max тутор запор запорожец модель для чайников ленивых Displacement 3ds Max Hammer source создание модели 3D Ripper 3D Ripper DX 3d ripper dx туториал 3D Ripper DX уроки 3D ripper урок 3dr риппер Combine HUD Suit Туториал refract понтовый эффект преломление текстуры Source sdk SkyBox небо скайбокс создание skybox создание скайбокса маппинг portal 2 Portal 2 панели панели веры портал 2 Portal gel source sdk урок гель гель отталкивающий гель туторы source sdk мосты плотного света тутор туторы portal 2 уроки портал 2 строим карту portal 2 hammer editor кейв джонсон туториал portal 2 панели урок source sdk вспышки от выстрелов game_ Ui кодинг облагораживание мода покачивание камеры коддинг создание кода prop_static prop_physics_override энтити prop_ prop_dynamic_ornament физика phys_pulleyconstraint phys_ballsocket Phys_ физика Source phys_motor Left4Dead2: ep2 Episode 2 маппинг машина радар