Пятница, 22.09.2017, 20:05
Приветствую Вас Guest | RSS
Главная страница | Статьи | Регистрация | Вход
Меню сайта

Случайный рисунок

Категории каталога
Туториалы по маппингу (HL2) [68]
Туториалы по маппингу для Half-Life
Туториалы по текстурированию (HL2) [10]
Туторы по текстурированию для Half-Life
Туториалы по моделированию (HL2) [9]
Туторы по моделированию для Half-Life
Туториалы по программированию (HL2) [53]
Туторы по прагроммированию для Half-life
Другие туториалы (HL1 и HL2) [4]
Туторы которые не вошли в другие категории
Half-Life 2 Beta [1]
Статьи о npc и weapon в бете Half-Life 2, а так же мануалы и FAQ.
Туториалы по маппингу (HL1) [14]
Туторы по маппингу для Half-Life 1
Туториалы по текстурированию (HL1) [1]
Туторы по текстурированию для Half-Life 1
Туториалы по моделированию (HL1) [1]
Туторы по моделированию для Half-Life 1
Туториалы по программированию (HL1) [30]
Туторы по программированию для Half-Life 1

Наш опрос
Оцените мой сайт
Всего ответов: 618

Начало » Статьи » Туториалы по программированию (HL2)

Реалестичное покачевание камеры во время передвежения игрока
Сегодня будем делать реалестичное покачевание камеры во время ходьбы или бега. Код изначально подстроен под стандартную скорость игрока и звукам ходьбы. Он подходит как и на 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)
Просмотров: 2119 | Комментарии: 22 | Рейтинг: 5.0 |

Всего комментариев: 211 2 »
21  
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  
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));

}

20  
Это то понятно, но как найти эту переменную? Был вариант m_iHealth, но он не работал sad

18  
А можете посоветовать, можно ли сделать покачивание зависимым от здоровья???
Типа, 100 хп, и мы ходим ровно
10 хп, и нас качает
P.S. забыл войти biggrin

17  
Мой вариант:
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  
А можете посоветовать, можно ли сделать покачивание зависимым от здоровья???
Типа, 100 хп, и мы ходим ровно
10 хп, и нас качает

15  
да, работает, но как сделать так чтоб когда идешь в перед качало камеру как качает при этом варианте. а когда идешь влево или в право,тут уже качало в сторону передвижения?

14  
Мой вариант

13  
[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]

8  
http://developer.valvesoftware.com/wiki/Camera_Bob:ru

9  
Разница в том что тут более ясное описание happy

11  
Точнее родным-русским языком написано smile

7  
Я вот со своим кодом помудил, более-менее реалестичней стало

1-10 11-11
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Кто в Онлайн

Друзья сайта

Баннеры

  Сайт CrazyArts   Black   Сообщество сайтов о Half-Life   Самый   Только   Все   hl2 top 100     Rambler's Top100  

игры
игры

  Каталог сайтов Планета Топ 100 - Planet Top 100       ТОП ЛУЧШИХ ИГРОВЫХ САЙТОВ           Detroit Team Site :: Моды от Detroit Team, видео, новости.   Naruto-kun[Звезда Наруто]  


The idea of dising: Homie7