Ru/Cables and Ropes: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
(Created page with "{{otherlang2 |title=Провода и верёвки |en=Cables_and_Ropes }} '''Cables''' provide a simple method for adding movement and complexity to a scene for a relative...")
 
mNo edit summary
 
(23 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{otherlang2
{{lang|Cables and Ropes|title=Кабели и верёвки}}
|title=Провода и верёвки
{{Abstract Mapping}}
|en=Cables_and_Ropes }}
__NOTOC__
'''Кабели''' обеспечивают простой способ добавить сцене движение и сложность при относительно небольших затратах ресурсов. Кабели могут быть протянуты между движущимися объектами и использованы в качестве видимых физических ограничителей (пружины, ограничители длины, и т.д.). Они могут колыхаться или обрываться согласно событиям на карте.


'''Cables''' provide a simple method for adding movement and complexity to a scene for a relatively low cost. Cables can be strung between moving objects and used as a visual representation between physical constraints (springs, length constraints, etc). Cables can also dynamically be shaken or broken by level events.
{{Note|Кабели ''не'' соприкасаются с объектами, разве что вы не сделаете их такими. Чтобы остановить объект кабелем, нужен физический ограничитель. Подробнее ниже.}}


{{note|Cables are ''not'' solid unless you make them that way. To suspend an object by a cable you must also use a physics constraint. Details below.}}
== Расстановка ==
[[File:hammer_cables.jpg|frame|Кабель протянут между двумя точками в Hammer.]]


== Placement ==
Кабели тянутся по карте с помощью энтити {{ent|move_rope}} и {{ent|keyframe_rope}}. Сперва, в нужную опорную точку поместите энтити <code>move_rope</code>, это будет начало верёвки. Затем, во вторую опорную точку поместите <code>keyframe_rope</code>. В поле "Next Keyframe" энтити <code>move_rope</code> впишите имя энтити <code>keyframe_rope</code>. Теперь вы видите линию, приблизительно показывающую проложенный между двумя точками кабель. Клонирование <code>keyframe_rope</code> автоматически задаёт имя новой энтите. Используя этот способ, вы сможете быстро проложить кабель между несколькими точками (например, ЛЭП).
[[Image:hammer_cables.jpg|frame|A cable strewn between two points in Hammer.]]
{{warning|Не клонируйте <code>move_rope</code>, Хаммеру это не нравится, и он может закрыться.}}{{clr}}


Cables are strewn through a level using the [[move_rope]] and [[keyframe_rope]] entities. First, place a <code>move_rope</code> entity at one desired anchor point for the rope. Next, place a <code>keyframe_rope</code> at the second anchor point. Point the "Next Keyframe" field on the <code>move_rope</code> to the <code>keyframe_rope</code> entity. You'll now see a line representing an estimation of how the cable will lie between the two points. Cloning the <code>keyframe_rope</code> entity will automatically rename the new entity and point the entity that was cloned from to that new entity. Using this method you can quickly lay out cables through multiple points (like power lines).
== Внешний вид ==
{{warning|Do not clone the <code>move_rope</code>, Hammer does not like when this is attempted and will crash.}}{{clr}}
Когда кабели протянуты между двумя точками, они имеют некоторое количество "провисаний", то есть изгибов. Провисание помогает придавать кабелям большее ощущение движения и правдоподобности. Значение, введённое в соответствующее поле энтити предписывает, сколько "лишнего" кабеля будет висеть между точками. Чем больше задано число, тем длиннее будет кабель, и тем больше он будет провисать. Если одна из конечных точек кабеля удаляется, то провисание не пересчитывается, и он будет натягиваться. Аналогично, если точки сближаются, то тугой кабель начнёт свисать. (ПРИМЕЧАНИЕ: Энтитя keyframe_rope имеет флажок 'Auto Resize', который включает перерасчёт длины кабеля в реальном времени. Это чрезвычайно полезно для таких вещей, как подъёмный кран с грузом или противовес лифта.) Каждый раз при вводе нового значения, Хаммер обновляет картинку длины кабеля, и вы будете видеть его так, как он будет выглядеть в игре.


== Appearance ==
== Поведение ==
Cables have a certain amount of "slack", which is the amount of bend they have while resting between their two anchor points. Slack helps give the cables a greater sense of motion and believability. The value entered into the entity field dictates how much "extra" cable there is between the two anchor points. This is equivalent to stretching the cable directly between the two points, then adding the specified number of units to that length. As the cable moves, the slack is not recalculated, so a cable that initially droops due to slack will become taut if one of the end points moves away from the other. Likewise, a taut cable will begin to droop if its end points move closer together. (NOTE: The keyframe_rope entitiy includes a flag marked 'Auto Resize' which will recalculate the slack on the rope in realtime.  This is extremely useful for things like a crane raising an object or a counterweighted elevator.) The line representing the estimated lie of the cable in Hammer will update itself based on the values entered, and may be used as a guide for how the cable will look when seen in the engine.
Опорные точки кабеля могут быть помещены в {{L|Entity Hierarchy (parenting)|иерархию}} с другими объектами, и будут двигаться вместе с этими сущностями. В карте-примере, предлагаемой в SDK,  {{L|func_door|движущаяся дверь}} (замаскированная под шест) задаёт динамическую опорную точку для двух кабелей. Во время движения двери кабели растягиваются, сохраняя длину. Кроме того, привязанная к таймеру энтитя {{L|env_shake|тряски}} периодически смещает опорные точки, заставляя кабели "болтаться." Эти методы могут быть очень эффективным визуальным инструментом, чтобы добавлять жизни в мир карты.


== Behavior ==
Кабели можно отсоединять от опорных точек непосредственно действиями игрока, или запрограммированными ситуациями. Когда ввод опорной точки получает сигнал "Break", кабель отвязывается от неё. Также, кабель оторвётся от опорной точки, если иерархически связанная с ней энтитя будет убита. В карту-пример SDK добавьте ломик weapon_crowbar. Теперь можно разбить ломаный шест  ({{L|func_breakable|разбиваемый объект}}), расположенный слева. После того, как шест разобьётся, включится вывод "Break", который заставит опорную точку кабеля упасть на землю.
Cable anchor points may be placed in [[Entity_Hierarchy_(parenting)|hierarchy]] with other objects, and will move along with those entities. In the sample map provided in the SDK, a [[func_door|moving door]] (cleverly disguised as a pole) provides a dynamic anchor point for two cables. As the door moves, the cables stretch and move to maintain their span. 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.
По-умолчанию, кабели не являются твёрдыми объектами, и проходят сквозь геометрию мира. В некоторых случаях (особенно при обрыве кабеля), это будет визуально неприемлемо. С помощью настройки  "Collide With World", кабель можно сделать сталкивающимся с геометрией. Но поскольку это утяжеляет визуализацию, включать её рекомендуется только тогда, когда существует реальная проблема проникновения в мир.


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 ==
* <code>sdk_cables.vmf</code>
* <code>sdk_cables.vmf</code>


=== TWHL example maps ===
=== Карты-примеры TWHL ===
* [http://twhl.co.za/mapvault_map.php?id=3920 A counter-weighted door]
* [https://twhl.co.za/mapvault_map.php?id=3920 A counter-weighted door]
* [http://twhl.co.za/mapvault_map.php?id=3924 Cable shakes on blast]
* [https://twhl.co.za/mapvault_map.php?id=3924 Cable shakes on blast]


== See also ==
== См. также ==
* [[Cables on Models]] - Cable placement on models.
* {{L|Cables on Models}} - Размещение кабеля на моделях.
* [[phys_lengthconstraint]] - entity that suspends an object with a unstretchable cable.
* {{ent:ru|phys_lengthconstraint}} - энтитя, которая подвешивает объект на не растягивающемся тросе.
* [[phys_pulleyconstraint]] - entity used to make a pulley.
* {{ent:ru|phys_pulleyconstraint}} - энтитя, которую используют для создания шкива.
* [[phys_spring]] - entity used to make a stretchable, springy cable.
* {{ent:ru|phys_spring}} - энтитя, которую используют для создания эластичного, пружинящего кабеля.
* [[WiseWind]] - Wind-blown power lines
* {{L|WiseWind}} - Продуваемая ветром линия электропередач
* [[Hanging lamps]] - tutorial for making a hanging lamp prop.
* {{L|Hanging lamps}} - урок, как создавать подвесной светильник.
* [[Suspended Object Trap]] - tutorial for making a trap with an object suspended by a rope.
* {{L|Suspended Object Trap}} - урок, как создавать ловушку с объектом, подвешенным на верёвке.


[[Category: Level Design]]
{{ACategory|Level Design}}

Latest revision as of 08:54, 25 May 2025

English (en)Deutsch (de)Русский (ru)中文 (zh)Translate (Translate)
Серия Воссоздание окружающей обстановки(en) Выскажите свои мысли — Помогите нам воплотить больше идей

Снаряжение | Животные и существа | Муравьиные львы | Лучи и лазеры | Кабели и верёвки | Движущиеся облака | Теория цвета | Битвы | Комбайны | Сжатие ресурсов | Двери | Пыль, туман и дым | Лифты | Переключение карт | Внешнее освещение, солнце, погода и окружение | Взрывы | Огонь | Растительность | Стекло и окна | Хэдкраб | Жизнеспособность | Лестницы | Освещение | Оптимизация | Физические объекты | Сканеры сетчатки | Звук и музыка | Спецэффекты | Ландшафт | Поезда | Турели | Вода | Оружие | Зомби

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

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

Расстановка

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

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

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

Внешний вид

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

Поведение

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

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

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

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

  • sdk_cables.vmf

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

См. также

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