Давно задумал воспроизвести на своей карте момент из оригинала хл2, где в цитадели двигались по особым подвесным рельсам металлические капсулы-камеры, в которых еще можно покататься игроку, да все времени не было. И вот, наконец-то дошли руки.
Ниже приведен убогонький рисунок, на нем показано расположение всех важных элементов.
Начнем, как обычно, с простой комнаты. Я свою закрасил такими текстурами, чтобы не отвлекали внимание. В центре комнаты, как у меня на рисунке, проведите под потолком монорельсу, закрасив ее для начала текстурой поярче. Длинный браш монорельсы превратите в энтитю funk_brush.
Теперь приступим к созданию статичной модели капсулы. Разместите энтитю prop_vehicle_prisoner_pod на карте, выберите для нее модель prisoner_pod_inner. Далее установим на карте две prop_dynamic – в строчках World Model выберите inner_pod_arm и inner_pod_rotator из папки vehicle. Разместите их так, как показано на рисунке. «Ротатор» должен быть присоединен под верхний захват капсулы, хоть особой роли это не играет, но при физической привязке капсула будет качаться реалистичнее.
Создайте в месте соединения «ротатора» и «держателя» объект funk_door_rotating. Он понадобится, если вы захотите сделать поворот капсулы на месте, к тому же дальнейшая связка объектов будет идти через него.(см. рисунок)
На другом, свободном конце держателя, разместите объект funk_tracktrain. Он, как уже ясно, будет заставлять двигаться нашу капсулу вперед. Важный момент – капсула будет стыковаться с монорельсом через держатель как раз в том месте, где будет расположен funk_tracktrain.
В принципе, можно обойтись и более простой конструкцией кронштейнов, но так капсула будет двигаться нереалистично.
Теперь, самый важный элемент конструкции – энтитя phys_ragdollconstraint. Она будет отвечать за правильное крепление капсулы к кронштейну, а так же за реалистичное раскачивание. Разместите ее в месте стыка капсулы и ротатора.
Теперь самый муторный момент – настройка всех объектов. Одна ошибка – и наша конструкция будет вести себя неадекватно. Ниже буду приводить название объекта, и описывать необходимые настройки.
prop_vehicle_prisoner_pod
name – pod (или укажите любое удобное вам имя)
func_tracktrain
name – train
first stop target – p1 (это имя первой точки отправления, но об этом чуть ниже)
Max speed – 70
Initial speed – 20 (думаю, тут все ясно. начальная скорость, и скорость постоянная)
func_door_rotating
name – rotator
parent - train
prop_dynamic
World model – inner_pod_rotator
name – указывать не нужно
parent – rotator
prop_dynamic
World model – inner_pod_arm
name – указывать не нужно
parent – train
phys_ragdollconstraint
name – phys
Entity 1 – pod
Entity 2 – rotator (таким образом мы скрепили физику двух моделей. Обратите внимание на скриншот – там показано правильное расположение энтити – ровно посередине между капсулой и prop_dynamic )
X axis min limit – 0
X axis max limit – 0
Y axis min limit – - 35
Y axis max limit – 40
Z axis min limit – 0
Z axis min limit – 0
X axis friction – 0.6
Z axis friction – 0.6 (фух, эти параметры отвечают за способность капсулы к раскачиванию относительно нашей физической точки опоры)
Настройка объектов закончена. Теперь аутпуты. Создайте где-нибудь в пределах карты объект logic_auto, жмем в нем закладку Outputs и добавляем следующие строчки:
OnMapSpawn => pod => EnterVehicleImmediate (с загрузкой карты игрок будет уже в капсуле)
OnMapSpawn => pod => Lock (капсула с игроком будет закрыта, чтобы не выбрался во вовремя движения)
OnMapSpawn => train => StartForward (прикажет нашей трэйн-энтити двигаться до первой точки)
С аутпутами покончено. Теперь осталось разместить на монорельсе два объекта path_track – один вначале, чуть дальше нашей капсулы, другой в конце. Назовите первый объект p1 и укажите следующей точкой объект p2. Объект p2 должен быть конечным, поэтому удалите в нем строчку, если таковая появилась, о следующей точке движения.
Осталось разместить в любой точке карты место появления игрока – оно не играет роли, так как с загрузкой карты игрок будет уже в капсуле, и источник света. Сохраняем, компилим – и вуаля – сразу после загрузки игрок находится в качающейся капсуле, которая едет вперед по монорельсе. Можно добавить триггер, открывающий в определенный момент капсулу – но это вы уже додумайте сами. Сразу охватить весь тутор достаточно сложно, поэтому мои исходники и готовая карта прилагаются.
ВНИМАНИЕ
Возможные баги
Текстуры на капсуле даже на высшем качестве весьма размыты и выглядят некрасиво. Постройте освещение так, чтобы капсула была не сильно освещена.
Капсула может двигаться только вперед – при попытке зациклить точки parh_track’a, в одну сторону капсула движется нормально, а на обратном пути неимоверно изворачивается и цепляется за воздух)) Поэтому я и удалил следующую точку движения у объекта р2.
Не делайте резких поворотов монорельса, из-за этого возникает чрезмерное раскачивание капсулы, и, как следствие, экрана.
Лично у меня начиналась морская болезнь при тесте капсулы на изогнутом монорельсе)))
Аффтар Crush
Ccылка помещена в туторы =@
Тутор: Капсулы из Цитадели
- impulse666
- Полковник
- Сообщения: 7405
- Зарегистрирован: 08.12.2005
- Откуда: Atman
- Благодарил (а): 2340 раз
- Поблагодарили: 590 раз
- Vaskiheimo
- Лейтенант
- Сообщения: 242
- Зарегистрирован: 29.10.2005