Режимы передвижения юнитов human

Скорости движения юнитов типа human задаются в файле .../scene/properties/human.ext в рамках экстендера {Сhassis "foot" [...]}

Экстендер Сhassis разделен на блоки описания способов перемещения:

  • Crawl (ползание)

  • Swim (плавание)

  • Run (основной способ перемещения)

  • Strafe (боковое движение)

Каждый способ перемещения имеет свой набор режимов перемещения, описания которых включают значения параметров скорости движения, скорости проигрывания соответствующих анимаций, скорости разворота и других компонент, составляющих движение юнита.

Единицы измерения параметров скоростей:

  • скорость движения S=[km/h];

  • скорость анимации A=[km/h];

  • скорость поворота [degree/s].

Скорость проигрывания анимации (Sa) передвижения юнита в игре рассчитывается по формуле:

Sa=S/AAsSa=S/A*As

где As - параметр масштабирования анимации (animation scale)

Описание способов передвижения

Основной способ передвижения

Блок описания основного способа перемещения Run содержит несколько режимов передвижения, которые учитывают состояние юнита и приказы, которые он получил.

Режимы ходьбы Юниты используют режим ходьбы для перемещения по карте при патрулировании территории или во время переноса тяжелых предметов на одну руку (например, канистра) или на две руки (например, ящик или труп).

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

  • spot (режим обнаружения) и sneak (режим незаметного перемещения) - оба подвида используются при перемещении юнитов под управлением ИИ для поиска спрятавшихся врагов

  • walk - обычная ходьба в расслабленном состоянии или под нагрузкой

Режим медленного бега Режим медленного бега Slow включается автоматически, когда в состоянии юнита срабатывают ограничения на скорость передвижения, например, юнит устал или бежит по сложной местности.

Режим бега средней интенсивности Режим Normal для бега со средней интенсивностью включается автоматически при соответствующих состояниях юнита, когда срабатывают ограничения на скорость передвижения, когда юнит устал или движется по сложной местности. Отличается от режима Slow значениями параметров скоростей.

Режим бега Режим бега является основным режимом перемещения юнитов типа human. Режим бега имеет подвиды:

  • Fast - передвижение во время боя, когда нет приказа charge для ускоренного перемещения.

  • Assault - режим передвижения включается по приказу charge и позволяет стрелять на бегу. Используется для перебежек в укрытие с целью атаки и для перемещения юнитов в бою.

  • Bow - режим перемещения включается по приказу withdraw, при этом юнит не может стрелять на бегу. Используется для бегства от врагов и для забегания в укрытие во время бегства.

В скриптах миссий обычно используется режимы перемещения (run)fast или (run)assault

Ползание и плавание

Блоки описаний для способов передвижения ползания Crawl и плавания Swim содержат три режима передвижения, которые отличаются скоростью перемещения:

  • Slow — медленное перемещение, когда юнит устал или ранен;

  • Normal — обычная скорость;

  • Fast — ускоренное перемещение по приказу игрока.

Движение с прицеливанием

Strafe — это способ перемещения, представляющий собой ходьбу или бег с прицеливанием. Используется юнитами под управлением Искусственного Интеллекта для перемещения в бою на небольшие расстояния.

В блоке описания движения с прицеливанием, помимо скоростей, указываются имена анимаций для верхней и нижней частей тела в процессе перемещения.

Режим Strafe недоступен для включения/выключения из скриптов

Пример настройки режимов передвижения

Пример настройки режимов передвижения
{Chassis "foot"			  										
	;  speed S (km/h) animation A (km/h) rotation (degree/s)
	;  animation speed = movement speed / A * animation scale 
	{Crawl           
		{Slow		3	5  100 }
		{Normal		3.75	5  200 }
		{Fast		5.25	5  200 }
	}                     
	{Swim                 
		{Slow		1.5	5  200 }
		{Normal		2.25	5  200 }
		{Fast		3.75	5  200 }
	}                     
	{Run                  						
		{Sneak		3.75	2    400 }   ; x 0.85
		{Spot 		4.5  	2    400 }   ; x 0.5
		{Walk 		5.25	1.8  400 }   ; x 0.48
		{Slow		6  	3    800 }   ; x 1
		{Normal		10.5   	5    800 }   ; x 0.55
		{Fast		13.5   	7    800 }   ; x 0.33
		{Bow   		20.25  	7    1200 }   ; x 0.55
	}
	{Strafe
		; 		m  m+v  km/h  speed	animation up 		     	animation down		
		; m+v = mask + value for strafe counter
		{Forth		3  2 0	6.5   3		"walk_spot_gun_up_1"		"walk_spot_gun_down_1"}	
		{Forth		3  2 1	11.0  1 	"run_spot_gun_up" 		"run_spot_gun_down"}    		  	
		{Forth		8  0 0	13.2  1.2	"run_spot_gun_up" 		"run_spot_gun_down"}				
		{Left		4  0 0	10.5  1.22	"run_spot_back-strafe_gun_up"	"run_spot_back-strafe_gun_down"}	
		{Right		8  0 0	13.0  1.1	"run_spot_left-strafe_gun_up"	"run_spot_left-strafe_gun_down"}	
		{Back		8  0 0	10.5  1.22	"run_back_spot_gun_up"		"run_back_spot_gun_down"}			
	}
}

Для способов перемещения Crawl, Swim , Runв каждом блоке для режимов перемещения (slow, normal, fast...) задаются:

  • первое число — скорость передвижения юнита, в км/ч;

  • второе число — скорость анимации, в км/ч;

  • третье число — скорость вращения юнита при разворотах, в градусах в секунду.

Для способа перемещения Strafe кроме значений скоростей указываются имена анимаций:

  • animation up — название анимации для верхней части тела

  • animation down — название анимации для нижней части тела

Last updated