Ru/Cables and Ropes: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
mNo edit summary
 
(18 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__
 
'''Кабели''' обеспечивают простой способ добавить сцене движение и сложность при относительно небольших затратах ресурсов. Кабели могут быть протянуты между движущимися объектами и использованы в качестве видимых физических ограничителей (пружины, ограничители длины, и т.д.). Они могут колыхаться или обрываться согласно событиям на карте.
'''Кабели''' обеспечивают простой способ добавить сцене движение и сложность при относительно небольших затратах ресурсов. Кабели могут быть протянуты между движущимися объектами и использованы в качестве видимых физических ограничителей (пружины, ограничители длины, и т.д.). Они могут колыхаться или обрываться согласно событиям на карте.


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


== Расстановка ==
== Расстановка ==
[[Image:hammer_cables.jpg|frame|Кабель протянут между двумя точками в Hammer.]]
[[File:hammer_cables.jpg|frame|Кабель протянут между двумя точками в Hammer.]]


Кабели тянутся по карте с помощью энтить [[move_rope]] и [[keyframe_rope]]. Сперва, в нужную опорную точку поместите энтитю <code>move_rope</code>, это будет начало верёвки. Затем, во вторую опорную точку поместите <code>keyframe_rope</code>. В поле "Next Keyframe" энтити <code>move_rope</code> впишите имя энтити <code>keyframe_rope</code>. Теперь вы видите линию, приблизительно показывающую проложенный между двумя точками кабель. Клонирование <code>keyframe_rope</code> автоматически задаёт имя новой энтите. Используя этот способ, вы сможете быстро проложить кабель между несколькими точками (например, ЛЭП).
Кабели тянутся по карте с помощью энтити {{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> автоматически задаёт имя новой энтите. Используя этот способ, вы сможете быстро проложить кабель между несколькими точками (например, ЛЭП).
{{warning:ru|Не клонируйте <code>move_rope</code>, Хаммеру это не нравится, и он может закрыться.}}{{clr}}
{{warning|Не клонируйте <code>move_rope</code>, Хаммеру это не нравится, и он может закрыться.}}{{clr}}


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


== Behavior ==
== Поведение ==
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.
Опорные точки кабеля могут быть помещены в {{L|Entity Hierarchy (parenting)|иерархию}} с другими объектами, и будут двигаться вместе с этими сущностями. В карте-примере, предлагаемой в SDK, {{L|func_door|движущаяся дверь}} (замаскированная под шест) задаёт динамическую опорную точку для двух кабелей. Во время движения двери кабели растягиваются, сохраняя длину. Кроме того, привязанная к таймеру энтитя {{L|env_shake|тряски}} периодически смещает опорные точки, заставляя кабели "болтаться." Эти методы могут быть очень эффективным визуальным инструментом, чтобы добавлять жизни в мир карты.


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


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.
По-умолчанию, кабели не являются твёрдыми объектами, и проходят сквозь геометрию мира. В некоторых случаях (особенно при обрыве кабеля), это будет визуально неприемлемо. С помощью настройки  "Collide With 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) - урок, как создавать ловушку с объектом, подвешенным на верёвке.