Ru/Prefab: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
m (Setting bug notice hidetested=1 param on page where the bug might not need tested in param specified)
 
(30 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{otherlang2
{{LanguageBar|title = Заготовка}}
|title=Префабы
|en=Prefab
}}


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


Префабы - это просто маленькие файлы карт (.[[VMF]]), которые содержат только ваш префаб. Эти файлы хранятся в определенной папке, обычно <code>\sourcesdk\bin\prefabs</code>, чтобы [[Valve Hammer Editor|Хаммер]] мог легко их найти и вставить в ваш уровень.
'''Заготовка''' является отдельно сохраненным объектом, как правило состоящий из различных частей: элементов и объектов мира. Система заготовок позволяет легко хранить части ваших карт, которые можно использовать многократно. Примеры полезных заготовок включают коридоры, столбы, специальные инсталляции объектов, и т.д..


'''Примечание:''' В играх orangebox, убедитесь, что используете <code>\sourcesdk\bin\orangebox\bin\prefabs</code>
Заготовки - это простые маленькие файлы карт (.{{L|VMF}}), которые содержат только вашу заготовку. Эти файлы хранятся в определенной директории, обычно <code>\sourcesdk\bin\prefabs</code>, чтобы {{L|Valve Hammer Editor|редактор карт}} мог их найти и Вы могли легко вставить их на ваши карты.


Префабы можно выстраивать по иерархии, просто добавляя их в подпапки каталога <code>\prefabs</code>. Это позволяет сортировать их на основе принадлежности к карте или моду, тем самым облегчая поиск.
'''Примечание:''' Убедитесь, что в играх orangebox используете <code>\sourcesdk\bin\orangebox\bin\prefabs</code>


== Создание префабов ==
Заготовки можно выстраивать по иерархии, просто добавляя их в поддиректории <code>\prefabs</code>. Это позволяет сортировать их на основе принадлежности к карте или модифцикации, что облегчает их поиск.
Следующие шаги позволяют создавать префабы в Хаммере:
# Если префабы предназначены для взаимодействия с поименованными объектами внутри себя, в конце имени каждого объекта добавляем маркер "_&i". См. ниже [[#Prefab tokens|Маркер префабов]].
# Выделите объекты, которые нужно добавить в префаб (зажав {{key|Ctrl}}).
# Если вы планируете вставлять префаб, используя [[Entity Tool]], то начало координат (0,0,0) вашей карты будет использовано в качестве точки отсчета, поэтому желательно перенести выбранные объекты в эту точку и центрировать префаб по ней.
# Нажмите кнопку '''Create Prefab''' на [[Hammer New Objects Toolbar|панели объектов]], или выберите команду '''Create Prefab''' в [[Hammer_Tools_Menu|меню инструментов]]. (Горячая клавиша: {{key|Ctrl+R}})
# Откроется диалог '''Save As...''', показывая каталог префабов Хаммера. Впишите имя файла и сохраните префаб, нажав кнопку '''Save'''. {{note:ru|К файлу автоматически добавляется расширение ''.vmf'', однако некоторые пользователи имели опыт отсутствия такового. Чтобы перестраховаться, припишите файлу расширение ''.vmf''. Также, это расширение можно добавить позже, открыв папку префабов.}} {{bug:ru|После сохранения самого первого префаба Хаммер может закрыться.}}
# Теперь новый префаб будет доступен для вставки на [[Hammer New Objects Toolbar|панели объектов]].


=== Маркер префабов ===
== Создание заготовок ==
К именам сущностей внутри префаба можно добавить специальный ''маркер'' "&i", так что на карте им будет присвоен уникальный номер. Маркер может включаться в [[targetname]], [[Inputs and Outputs|inputs and outputs]], и т.д.. Все маркеры в префабе будут заменены на тот же номер. Это позволяет сущностям внутри префабов не ссылаться на другие префабы.
Заготовки в Хаммере создаются так:
# Если заготовки предназначены для взаимодействия с поименованными объектами внутри себя, то в конце имени каждого объекта добавляем маркер "_&i". См. ниже [[#Prefab tokens|Маркер заготовок]].
# Выделите объекты, которые нужно добавить в заготовку (зажав {{key|Ctrl}}).
# Если Вы планируете вставлять заготовку с помощью {{L|Entity Tool}}, то в качестве точки отсчёта будет выбрано начало координат (0,0,0) вашей карты, поэтому желательно перенести выбранные объекты в эту точку и центрировать заготовку по ней.
# Нажмите кнопку '''Create Prefab''' на {{L|Hammer New Objects Toolbar|панели объектов}}, или выберите команду '''Create Prefab''' в {{L|Hammer_Tools_Menu|меню инструментов}}. (Горячая клавиша: {{key|Ctrl+R}})
# Откроется диалог '''Save As...''', показывая каталог заготовок Хаммера. Впишите имя файла и сохраните заготовку, нажав кнопку '''Save'''. {{note|К файлу автоматически добавляется расширение ''.vmf'', однако у некоторых пользователей его не было. Чтобы перестраховаться, припишите файлу расширение ''.vmf''. Также, это расширение можно добавить позже, открыв папку заготовок.}} {{bug|hidetested=1|После сохранения самой первой заготовки Хаммер может закрыться.}}
# Теперь новая заготовка будет доступена для вставки на {{L|Hammer New Objects Toolbar|панели объектов}}.


Например, сущность [[func_door]] с именем "door_sliding_&i" в префабе, на карте станет называться "door_sliding_1". В последующих префабах она будет называться "door_sliding_2", "door_sliding_3", ...
=== Маркер заготовок ===
К именам объектов внутри заготовки можно добавить специальный ''маркер'' "&i", так что на карте им будет присвоен уникальный номер. Маркер может включаться в {{L|targetname|имя}}, {{L|Inputs and Outputs|входы и выходы}}, и т.д.. Все маркеры в заготовкуе будут заменены на тот же номер. Это позволяет объектам внутри заготовок не ссылаться на другие заготовки.


Триггеру [[trigger_multiple]], включенному в ''один префаб'' с триггером "door_sliding_&i", который он запускает, будет присвоен тот же номер, что и двери.
Например, объект {{L|func_door}} с именем "door_sliding_&i" в заготовке, на карте станет называться "door_sliding_1". В последующих заготовках он будет называться "door_sliding_2", "door_sliding_3", ...


{{note:ru|Другие значения, как например прикрепленные к префабу [[env_cubemap|кубмапы]], не будут сохраняться, и будут сброшены при каждой вставке.}}
Триггеру {{L|trigger_multiple}}, добаленному в ''одну заготовку'' с триггером "door_sliding_&i", который он запускает, будет присвоен тот же номер, что и двери.


{{tip:ru|Используйте звездочку (*) в фильтре поиска префабов, использующих подстановку. Например, поиск ''door_*'' выдаст ''door_1'', ''door_2'', ''door_red_7'', etc.}}
{{note|Другие элементы, как например поверхности элементов указанные в добавленном в заготовку {{L|env_cubemap|кубмапы}}, сохраняться не будут, и отбрасываются при каждой вставке.}}


== Inserting prefabs ==
{{tip|Используйте звездочку (*) в фильтре поиска заготовок, использующих подстановку. Например, поиск ''door_*'' выдаст ''door_1'', ''door_2'', ''door_red_7'', и т.д..}}
[[Image:hammer_newobjects.jpg|right]]


Once you have prefab objects created, it is a simple task to insert a prefab into your level.
== Вставка заготовок ==
[[File:hammer_newobjects.jpg|right]]


There are two ways of putting a prefab into your level: Using the {{Hammer entity}}, or using the {{Hammer block}}.
Готовую заготовку очень просто вставить на карту.


The process is basically the same for both tools: First select the tool you wish to use, then select the prefab from the [[Hammer New Objects Toolbar|Object bar]], and then insert it through one of the views.
Есть два способа: с помощью {{Hammer entity}}, или {{Hammer block}}.


The {{Hammer entity}} should be used for most prefab placement, as it retains the exact size of the original prefab. Placement with the {{Hammer block}} allows for resizing of the prefab as it's placed, but is slightly more time-consuming to place correctly.
В целом, процедура одинакова в обоих случаях: сперва определитесь с инструментом, затем на {{L|Hammer New Objects Toolbar|Панели объектов}} выберите заготовку, и вставьте её в одно из окон.


{{tip|After choosing one of the prefab creation tools (either the Entity Tool or the Block Tool), then selecting a prefab library, picking the same creation tool a second time will enable the '''Insert original prefab''' button in the Object bar. You can use this button to insert the selected prefab in the center of the 2D views. After placing the prefab, it can be moved into place. Make sure [[Hammer_Map_Operations_Toolbar|Texture Locking]] is turned on!}}{{clr}}
Инструмент {{Hammer entity}}, используемый чаще всего, сохраняет исходный размер заготовки. Инструмент {{Hammer block}} допускает изменение размера заготовки.


=== Using the Entity Tool ===
{{tip|После того, как Вы выбрали способ создания заготовки (Entity Tool или Block Tool), на панели объектов появится кнопка '''Insert original prefab''' (вставить оригинальную заготовку). Используйте её, чтобы вставить заготовку в центр окна 2D-вида. После этого заготовку можно двигать куда угодно. Убедитесь, что включена {{L|Hammer_Map_Operations_Toolbar|Texture Locking}}!}}{{clr}}
[[Image:InsertPrefabTut1.png|right|200px]]
[[Image:InsertPrefabTut2.png|right|200px]]
[[Image:InsertPrefabTut3.png|right|200px]]


The {{Hammer entity}} is used to place a prefab object that should retain its original size.
=== Использование Entity Tool ===
[[File:InsertPrefabTut1.png|right|200px]]
[[File:InsertPrefabTut2.png|right|200px]]
[[File:InsertPrefabTut3.png|right|200px]]


# Select the {{Hammer entity}} from the toolbar. (Shortcut: {{key|Shift+E}})
Чтобы разместить заготовку в исходном размере, используйте {{Hammer entity}}.
# In the [[Hammer New Objects Toolbar|Object bar]], select a prefab library in the '''Categories:''' selection box.
# Select a specific prefab to insert from the library in the '''Objects:''' selection box.
# Click in one of the 2D views where you want the prefab to be placed. Alternatively you can instead just click in the 3D view, whereupon the prefab will be inserted automatically.
# Press {{key|Return}} or {{key|Enter}} to insert the prefab.


=== Using the Block Tool ===
# Выберите {{Hammer entity}} на панели инструментов. (Горячие клавиши: {{key|Shift+E}})
The {{Hammer block}} is used if you want to insert a prefab scaled to a certain size.
# На панели {{L|Hammer New Objects Toolbar|Object bar}}, в поле '''Categories:''' выберите Prefabs.
# В поле '''Objects:''' выберите из списка нужный префаб.
# Щелкните в окне 2D-вида в том месте, куда хотите поместить заготовку. В качестве альтернативы, Вы можете щелкнуть в окне 3D-вида, после чего заготовка будет вставляться автоматически.
# Нажмите {{key|Return}} или {{key|Enter}}, чтобы вставить заготовку.


To place a prefab object, scaling it to an exact size:
=== Использование Block Tool ===
# Select the {{Hammer block}} from the toolbar. (Shortcut: {{key|Shift+B}})
Чтобы разместить заготовку в нужном масштабе, используйте {{Hammer block}}.
# In the [[Hammer New Objects Toolbar|Object bar]], select a prefab library in the '''Categories:''' selection box.
 
# Select a specific prefab to insert from the library in the '''Objects:''' selection box.
Как вставить заготовку нужного размера:
# Drag a selection box in one of the 2D views, making sure it is the size and in the position that you want the prefab to be in each of the views.
# На панели инструментов выберите {{Hammer block}}. (Горячие клавиши: {{key|Shift+B}})
# Press {{key|Return}} or {{key|Enter}} to insert the prefab. It will be scaled to fit the selection box.
# На панели {{L|Hammer New Objects Toolbar|Object bar}}, в поле '''Categories:''' выберите Prefabs.
# В поле '''Objects:''' выберите из списка нужную заготовку.
# В окне 2D-вида выделите прямоугольник, убедившись, что его размер и положение во всех окнах редактора соответствуют вашим требованиям.
# Нажмите {{key|Return}} или {{key|Enter}}, чтобы вставить заготовку. Она будет списана в выделенный прямоугольник.
{{clr}}
{{clr}}


Notice that any inserted prefab is automatically [[group|grouped]], and therefore needs to be ungrouped before individual components can be moved.
Обратите внимание, что любая вставленная заготовка автоматически {{L|Grouping and VisGrouping|группируется}}, и если Вам нужно переместить отдельный объект из заготовки, то её следует разгруппировать.


== The Skip tool texture ==
== Текстура Skip tool ==


A prefab typically consists of many objects that you want to move or copy somewhere, and if the prefab happens to be of an odd size, you may end up with components ending up not exactly where you want them. You can prevent this by enveloping the prefab inside a [[skip]] [[tool texture]]:
Обычно, заготовка состоит из множества объектов, которые Вам нужно куда-либо переместить или скопировать, и если заготовка имеет неопределенный размер, то его компоненты могут оказаться в неожиданных местах. Вы можете этого избежать, окружив заготовку {{L|tool texture|текстурой}} {{L|skip}}:


# Set the grid size to a the maximum size that you expect to move the prefab in. (Typically you plan the [[skip]] brush to be a size of about 4x4x4 grid squares.)
# Установите размер сетки на максимальный, на который желаете перемещать заготовку. (Обычно, элемент карты {{L|skip}} рисуется с размерами 4x4x4.)
# Create a brush enveloping all the components of the prefab.
# Создайте элемент карты, охватывающий все компоненты префаба.
# Cover every side of the brush with the [[skip]] [[tool texture]].
# Покройте его со всех сторон {{L|tool texture|служебной текстурой}} {{L|skip}}.
# Select all the components of the prefab (''including'' the [[skip]] brush) and save it.
# Выберите все компоненты заготовки, (''включая'' браш {{L|skip}}) и сохраните его.


The positions of the components inside the brush are now relative to the enveloping [[skip]] brush, and the even size of the brush makes the movements of every component on par with the Hammer editor's graph. As the brush is covered in a [[skip]] [[tool texture]], it will not be compiled with the map.
Теперь положение компонентов внутри элементы карты соотнесено с ним, и браш будет выравнивать их по графике Хаммера. Поскольку элемент карты покрыт {{L|tool texture|служебной текстурой}} {{L|skip}}, он не компилируется с картой.


== Available prefabs ==
== Готовые заготовки ==
For a list of prefabs that are already available in the Source SDK, see [[:Category:Prefabs]].
Список готовых заготовок в Source SDK см.


== See also ==
== См. также ==


* [[func_instance]] - An advanced dynamic alternative to prefabs, available for the [[Counter-Strike: Global Offensive]], [[Left 4 Dead 2]], [[Alien Swarm]] and [[Portal 2]] engines.
* {{L|func_instance}} - это продвинутая альтернатива для заготовок, доступная на платформах {{L|Counter-Strike: Global Offensive}}, {{L|Left 4 Dead 2}}, {{L|Alien Swarm}} и {{L|Portal 2}}.


== External links ==
== Внешние ссылки ==
The following sites host custom made prefabs and models:
Ниже представлены сайты, которые изготавливают заготовки и модели:


* [http://halflife2.filefront.com/files/Half-Life_2/Prefabs;2654 (HL2) File Front prefab database]
* [https://halflife2.filefront.com/files/Half-Life_2/Prefabs;2654 (HL2) File Front prefab database]
* [http://www.fpsbanana.com/prefabs/games/2 (CS:S) FPSBANANA prefab database]
* [https://www.fpsbanana.com/prefabs/games/2 (CS:S) FPSBANANA prefab database]
* [http://z15.invisionfree.com/Biwdc_Forums/index.php?showtopic=8 Half-life 2 Prefabs(Biwdc Forums)]
* [https://z15.invisionfree.com/Biwdc_Forums/index.php?showtopic=8 Half-life 2 Prefabs(Biwdc Forums)]


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

Latest revision as of 07:16, 20 May 2025

English (en)Русский (ru)中文 (zh)Translate (Translate)


Заготовка является отдельно сохраненным объектом, как правило состоящий из различных частей: элементов и объектов мира. Система заготовок позволяет легко хранить части ваших карт, которые можно использовать многократно. Примеры полезных заготовок включают коридоры, столбы, специальные инсталляции объектов, и т.д..

Заготовки - это простые маленькие файлы карт (.VMF(en)), которые содержат только вашу заготовку. Эти файлы хранятся в определенной директории, обычно \sourcesdk\bin\prefabs, чтобы редактор карт(en) мог их найти и Вы могли легко вставить их на ваши карты.

Примечание: Убедитесь, что в играх orangebox используете \sourcesdk\bin\orangebox\bin\prefabs

Заготовки можно выстраивать по иерархии, просто добавляя их в поддиректории \prefabs. Это позволяет сортировать их на основе принадлежности к карте или модифцикации, что облегчает их поиск.

Создание заготовок

Заготовки в Хаммере создаются так:

  1. Если заготовки предназначены для взаимодействия с поименованными объектами внутри себя, то в конце имени каждого объекта добавляем маркер "_&i". См. ниже Маркер заготовок.
  2. Выделите объекты, которые нужно добавить в заготовку (зажав Ctrl).
  3. Если Вы планируете вставлять заготовку с помощью Entity Tool(en), то в качестве точки отсчёта будет выбрано начало координат (0,0,0) вашей карты, поэтому желательно перенести выбранные объекты в эту точку и центрировать заготовку по ней.
  4. Нажмите кнопку Create Prefab на панели объектов(en), или выберите команду Create Prefab в меню инструментов(en). (Горячая клавиша: Ctrl+R)
  5. Откроется диалог Save As..., показывая каталог заготовок Хаммера. Впишите имя файла и сохраните заготовку, нажав кнопку Save.
    Note.pngПримечание:К файлу автоматически добавляется расширение .vmf, однако у некоторых пользователей его не было. Чтобы перестраховаться, припишите файлу расширение .vmf. Также, это расширение можно добавить позже, открыв папку заготовок.
    Icon-Bug.pngБаг:После сохранения самой первой заготовки Хаммер может закрыться.
  6. Теперь новая заготовка будет доступена для вставки на панели объектов(en).

Маркер заготовок

К именам объектов внутри заготовки можно добавить специальный маркер "&i", так что на карте им будет присвоен уникальный номер. Маркер может включаться в имя(en), входы и выходы(en), и т.д.. Все маркеры в заготовкуе будут заменены на тот же номер. Это позволяет объектам внутри заготовок не ссылаться на другие заготовки.

Например, объект func_door(en) с именем "door_sliding_&i" в заготовке, на карте станет называться "door_sliding_1". В последующих заготовках он будет называться "door_sliding_2", "door_sliding_3", ...

Триггеру trigger_multiple(en), добаленному в одну заготовку с триггером "door_sliding_&i", который он запускает, будет присвоен тот же номер, что и двери.

Note.pngПримечание:Другие элементы, как например поверхности элементов указанные в добавленном в заготовку кубмапы(en), сохраняться не будут, и отбрасываются при каждой вставке.
Tip.pngСовет:Используйте звездочку (*) в фильтре поиска заготовок, использующих подстановку. Например, поиск door_* выдаст door_1, door_2, door_red_7, и т.д..

Вставка заготовок

Hammer newobjects.jpg

Готовую заготовку очень просто вставить на карту.

Есть два способа: с помощью Entity tool Mt-entities.png, или Block tool Hammer block.png.

В целом, процедура одинакова в обоих случаях: сперва определитесь с инструментом, затем на Панели объектов(en) выберите заготовку, и вставьте её в одно из окон.

Инструмент Entity tool Mt-entities.png, используемый чаще всего, сохраняет исходный размер заготовки. Инструмент Block tool Hammer block.png допускает изменение размера заготовки.

Tip.pngСовет:После того, как Вы выбрали способ создания заготовки (Entity Tool или Block Tool), на панели объектов появится кнопка Insert original prefab (вставить оригинальную заготовку). Используйте её, чтобы вставить заготовку в центр окна 2D-вида. После этого заготовку можно двигать куда угодно. Убедитесь, что включена Texture Locking(en)!

Использование Entity Tool

InsertPrefabTut1.png
InsertPrefabTut2.png
InsertPrefabTut3.png

Чтобы разместить заготовку в исходном размере, используйте Entity tool Mt-entities.png.

  1. Выберите Entity tool Mt-entities.png на панели инструментов. (Горячие клавиши: Shift+E)
  2. На панели Object bar(en), в поле Categories: выберите Prefabs.
  3. В поле Objects: выберите из списка нужный префаб.
  4. Щелкните в окне 2D-вида в том месте, куда хотите поместить заготовку. В качестве альтернативы, Вы можете щелкнуть в окне 3D-вида, после чего заготовка будет вставляться автоматически.
  5. Нажмите Return или Enter, чтобы вставить заготовку.

Использование Block Tool

Чтобы разместить заготовку в нужном масштабе, используйте Block tool Hammer block.png.

Как вставить заготовку нужного размера:

  1. На панели инструментов выберите Block tool Hammer block.png. (Горячие клавиши: Shift+B)
  2. На панели Object bar(en), в поле Categories: выберите Prefabs.
  3. В поле Objects: выберите из списка нужную заготовку.
  4. В окне 2D-вида выделите прямоугольник, убедившись, что его размер и положение во всех окнах редактора соответствуют вашим требованиям.
  5. Нажмите Return или Enter, чтобы вставить заготовку. Она будет списана в выделенный прямоугольник.

Обратите внимание, что любая вставленная заготовка автоматически группируется(en), и если Вам нужно переместить отдельный объект из заготовки, то её следует разгруппировать.

Текстура Skip tool

Обычно, заготовка состоит из множества объектов, которые Вам нужно куда-либо переместить или скопировать, и если заготовка имеет неопределенный размер, то его компоненты могут оказаться в неожиданных местах. Вы можете этого избежать, окружив заготовку текстурой(en) skip(en):

  1. Установите размер сетки на максимальный, на который желаете перемещать заготовку. (Обычно, элемент карты skip(en) рисуется с размерами 4x4x4.)
  2. Создайте элемент карты, охватывающий все компоненты префаба.
  3. Покройте его со всех сторон служебной текстурой(en) skip(en).
  4. Выберите все компоненты заготовки, (включая браш skip(en)) и сохраните его.

Теперь положение компонентов внутри элементы карты соотнесено с ним, и браш будет выравнивать их по графике Хаммера. Поскольку элемент карты покрыт служебной текстурой(en) skip(en), он не компилируется с картой.

Готовые заготовки

Список готовых заготовок в Source SDK см.

См. также

Внешние ссылки

Ниже представлены сайты, которые изготавливают заготовки и модели: