Ru/Camera Bob: Difference between revisions
| HunteR4708 (talk | contribs)  (→Код) | MiSTeR24RuS (talk | contribs)  mNo edit summary | ||
| Line 1: | Line 1: | ||
| {{otherlang2|en=:Camera_Bob|}} | {{otherlang2|en=:Camera_Bob|}} | ||
| Этот туториал научит вас основам создания реалистичной камеры, когда игрок ходит/бегает. Результатом является довольно реалистичная симуляция качки головы игрока, которая подходит под стандартную скорость ходьбы игрока и звукам. Этот туториал был тестирован только на мултиплеере  | Этот туториал научит вас основам создания реалистичной камеры, когда игрок ходит/бегает. Результатом является довольно реалистичная симуляция качки головы игрока, которая подходит под стандартную скорость ходьбы игрока и звукам. Этот туториал был тестирован только на мултиплеере Orange Box и бета-версии OB SDK, но этот код должен работать почти на каждой версии программного кода Valve. Большое спасибо [http://forums.steampowered.com/forums/member.php?u=562817 sharkkk] и [http://forums.steampowered.com/forums/member.php?u=380894 Winston] с форумов Steam за их коды. | ||
| Источники: | Источники: | ||
Revision as of 00:43, 28 July 2010
Этот туториал научит вас основам создания реалистичной камеры, когда игрок ходит/бегает. Результатом является довольно реалистичная симуляция качки головы игрока, которая подходит под стандартную скорость ходьбы игрока и звукам. Этот туториал был тестирован только на мултиплеере Orange Box и бета-версии OB SDK, но этот код должен работать почти на каждой версии программного кода Valve. Большое спасибо sharkkk и Winston с форумов Steam за их коды.
Источники: код Sharkkk'а код Winston'а
Код
В 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");
Мы добавили консольные команды для включения/отключения, контроля скорости и силы качки.
В этом же файле, найдите функцию 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));
		
	}
Вот это и добавит качку, которая будет вычислять скорость игрока и собственно применят ее.
Перевел на русский язык HunteR4708.