Ru/Cables and Ropes

From Valve Developer Community
Jump to navigation Jump to search

Template:Otherlang2

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

Template:Note:ru

Расстановка

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

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

Template:Warning:ru

Внешний вид

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

Поведение

Опорные точки кабеля могут быть помещены в иерархию с другими объектами, и будут двигаться вместе с этими сущностями. В карте-примере, предлагаемой в SDK, движущаяся дверь (искусно замаскированная под шест) задаёт динамическую опорную точку для двух кабелей. Во время движения двери кабели растягивается, сохраняя длину. In addition, a timed env_shake entity periodically moves all the anchor points, causing the cables to "bounce." These techniques can be a very effective visual tool for adding movement and polish to simple moving pieces in the world.

It is possible to detach cables from their anchor points, either by a player's direct action or by triggering it to do so. When a cable receives a "Break" input, it will detach itself from the anchor point which received the input. A cable will also detach itself from an anchor point if that point is parented via hierarchy to an entity which is killed. In the sample map provided in the SDK, add a weapon_crowbar entity to the map. The tattered pole (a func_breakable) on the left-most side of the map can be broken with the crowbar. When the pole breaks, it triggers a "Break" output to the anchor point at its top and the cable attached to it will fall to the ground.

By default, cables are not solid and will pass through world geometry. In some cases (especially when cables are broken), this can be visually unacceptable. By using the "Collide With World" setting on the entity, the cable can be made to collide with world geometry. Because this makes the cable more expensive, this setting is only recommended for cables that exhibit the problem of penetrating the world.

Example maps

  • sdk_cables.vmf

TWHL example maps

See also