Меню сайта
Случайный рисунок
Категории каталога
Наш опрос
Реалестичное покачевание камеры во время передвежения игрока
Сегодня будем делать реалестичное покачевание камеры во время ходьбы или бега. Код изначально подстроен под стандартную скорость игрока и звукам ходьбы. Он подходит как и на 2006, так и на 2007 версию движка. В gamemovement.cpp под строкой 65, перед списком определений добовляем:
Code
// 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");
Далее в этомже файле ищем функцию void CGameMovement::WalkMove( void ) и добавляем в самый вверх следующий код:
Code
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)); }
Источник: http://developer.valvesoftware.com/wiki/Camera_Bob
Категория: Туториалы по программированию (HL2) | Добавил: Andreazzz (21.07.2010)
Просмотров: 3386 | Комментарии: 22
| Рейтинг: 5.0 |
- Оценить -
Отлично
Хорошо
Неплохо
Плохо
Ужасно
Всего комментариев: 21 1 2 »
Порядок вывода комментариев:
По умолчанию
Сначала новые
Сначала старые
21
C@xep
(30.04.2012 08:57)
0
if ( player->m_iHealth < Ваше значение ) { 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, zoffset )); }
19
Zim
(17.05.2011 08:51)
0
if ( Переменная жизней равна 10 ) { 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)); }
0
А можете посоветовать, можно ли сделать покачивание зависимым от здоровья???
Типа, 100 хп, и мы ходим ровно
10 хп, и нас качает
P.S. забыл войти
17
Димон
(14.05.2011 10:57)
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)); }
16
Димон
(13.05.2011 18:43)
0
А можете посоветовать, можно ли сделать покачивание зависимым от здоровья??? Типа, 100 хп, и мы ходим ровно 10 хп, и нас качает
15
000
(26.03.2011 19:25)
0
да, работает, но как сделать так чтоб когда идешь в перед качало камеру как качает при этом варианте. а когда идешь влево или в право,тут уже качало в сторону передвижения?
14
Zim
(01.11.2010 22:19)
0
Мой вариант
13
Zim
(01.11.2010 22:18)
0
[code] if ( cl_viewbob_enabled.GetInt() == 1 && !engine->IsPaused() ) { float xoffset = sin( gpGlobals->curtime * cl_viewbob_timer.GetFloat() ) * player->GetAbsVelocity().Length() * cl_viewbob_scale.GetFloat() / 150; float yoffset = sin( 2 * gpGlobals->curtime * cl_viewbob_timer.GetFloat() ) * player->GetAbsVelocity().Length() * cl_viewbob_scale.GetFloat() / 450; player->ViewPunch( QAngle( xoffset, yoffset, 0)); [/code]
0
http://developer.valvesoftware.com/wiki/Camera_Bob:ru
1-10 11-11
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация |
Вход ]
Форма входа
Кто в Онлайн
Друзья сайта