Кабели и верёвки

From Valve Developer Community
Jump to: navigation, search
English

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

Примечание:Кабели не соприкасаются с объектами, разве что вы не сделаете их такими. Чтобы остановить объект кабелем, нужен физический ограничитель. Подробнее ниже.

Расстановка

Кабель протянут между двумя точками в Hammer.

Кабели тянутся по карте с помощью энтить move_rope и keyframe_rope. Сперва, в нужную опорную точку поместите энтитю move_rope, это будет начало верёвки. Затем, во вторую опорную точку поместите keyframe_rope. В поле "Next Keyframe" энтити move_rope впишите имя энтити keyframe_rope. Теперь вы видите линию, приблизительно показывающую проложенный между двумя точками кабель. Клонирование keyframe_rope автоматически задаёт имя новой энтите. Используя этот способ, вы сможете быстро проложить кабель между несколькими точками (например, ЛЭП).

Предупреждение:Не клонируйте move_rope, Хаммеру это не нравится, и он может закрыться.

Внешний вид

Когда кабели протянуты между двумя точками, они имеют некоторое количество "провисаний", то есть изгибов. Провисание помогает придавать кабелям большее ощущение движения и правдоподобности. Значение, введённое в соответствующее поле энтити предписывает, сколько "лишнего" кабеля будет висеть между точками. Чем больше задано число, тем длиннее будет кабель, и тем больше он будет провисать. Если одна из конечных точек кабеля удаляется, то провисание не пересчитывается, и он будет натягиваться. Аналогично, если точки сближаются, то тугой кабель начнёт свисать. (ПРИМЕЧАНИЕ: Энтитя keyframe_rope имеет флажок 'Auto Resize', который включает перерасчёт длины кабеля в реальном времени. Это чрезвычайно полезно для таких вещей, как подъёмный кран с грузом или противовес лифта.) Каждый раз при вводе нового значения, Хаммер обновляет картинку длины кабеля, и вы будете видеть его так, как он будет выглядеть в игре.

Поведение

Опорные точки кабеля могут быть помещены в иерархию с другими объектами, и будут двигаться вместе с этими сущностями. В карте-примере, предлагаемой в SDK, движущаяся дверь (замаскированная под шест) задаёт динамическую опорную точку для двух кабелей. Во время движения двери кабели растягиваются, сохраняя длину. Кроме того, привязанная к таймеру энтитя тряски периодически смещает опорные точки, заставляя кабели "болтаться." Эти методы могут быть очень эффективным визуальным инструментом, чтобы добавлять жизни в мир карты.

Кабели можно отсоединять от опорных точек непосредственно действиями игрока, или запрограммированными ситуациями. Когда ввод опорной точки получает сигнал "Break", кабель отвязывается от неё. Также, кабель оторвётся от опорной точки, если иерархически связанная с ней энтитя будет убита. В карту-пример SDK добавьте ломик weapon_crowbar. Теперь можно разбить ломаный шест (разбиваемый объект), расположенный слева. После того, как шест разобьётся, включится вывод "Break", который заставит опорную точку кабеля упасть на землю.

По-умолчанию, кабели не являются твёрдыми объектами, и проходят сквозь геометрию мира. В некоторых случаях (особенно при обрыве кабеля), это будет визуально неприемлемо. С помощью настройки "Collide With World", кабель можно сделать сталкивающимся с геометрией. Но поскольку это утяжеляет визуализацию, включать её рекомендуется только тогда, когда существует реальная проблема проникновения в мир.

Карта-пример

  • sdk_cables.vmf

Карты-примеры TWHL

См. также

  • Cables on Models - Размещение кабеля на моделях.
  • phys_lengthconstraint - энтитя, которая подвешивает объект на не растягивающемся тросе.
  • phys_pulleyconstraint - энтитя, которую используют для создания шкива.
  • phys_spring - энтитя, которую используют для создания эластичного, пружинящего кабеля.
  • WiseWind - Продуваемая ветром линия электропередач
  • Hanging lamps - урок, как создавать подвесной светильник.
  • Suspended Object Trap - урок, как создавать ловушку с объектом, подвешенным на верёвке.