Ru/Prefab: Difference between revisions
No edit summary |
|||
Line 4: | Line 4: | ||
}} | }} | ||
'''Префаб''' означает ''' | '''Префаб''' означает '''сборка''', и является отдельно сохраненным объектом, состоящим, как правило, из различных элементов: брашей, пропов или сущностей. Система префабов позволяет легко хранить части ваших уровней, которые можно использовать неоднократно. Примеры полезных префабов включают коридоры, столбы, специально установленные сущности, и т.д.. | ||
Префабы - это просто маленькие файлы карт (.[[VMF]]), которые содержат только ваш префаб. Эти файлы хранятся в определенной папке, обычно <code>\sourcesdk\bin\prefabs</code>, чтобы [[Valve Hammer Editor|Хаммер]] мог легко их найти и вставить в ваш уровень. | Префабы - это просто маленькие файлы карт (.[[VMF]]), которые содержат только ваш префаб. Эти файлы хранятся в определенной папке, обычно <code>\sourcesdk\bin\prefabs</code>, чтобы [[Valve Hammer Editor|Хаммер]] мог легко их найти и вставить в ваш уровень. | ||
'''Примечание:''' | '''Примечание:''' Убедитесь, что в играх orangebox используете <code>\sourcesdk\bin\orangebox\bin\prefabs</code> | ||
Префабы можно выстраивать по иерархии, просто добавляя их в подпапки каталога <code>\prefabs</code>. Это позволяет сортировать их на основе принадлежности к карте или моду, | Префабы можно выстраивать по иерархии, просто добавляя их в подпапки каталога <code>\prefabs</code>. Это позволяет сортировать их на основе принадлежности к карте или моду, что облегчает поиск. | ||
== Создание префабов == | == Создание префабов == | ||
Префабы в Хаммере создаются так: | |||
# Если префабы предназначены для взаимодействия с поименованными объектами внутри себя, в конце имени каждого объекта добавляем маркер "_&i". См. ниже [[#Prefab tokens|Маркер префабов]]. | # Если префабы предназначены для взаимодействия с поименованными объектами внутри себя, то в конце имени каждого объекта добавляем маркер "_&i". См. ниже [[#Prefab tokens|Маркер префабов]]. | ||
# Выделите объекты, которые нужно добавить в префаб (зажав {{key|Ctrl}}). | # Выделите объекты, которые нужно добавить в префаб (зажав {{key|Ctrl}}). | ||
# Если вы планируете вставлять префаб | # Если вы планируете вставлять префаб с помощью [[Entity Tool]], то в качестве точки отсчета будет выбрано начало координат (0,0,0) вашей карты, поэтому желательно перенести выбранные объекты в эту точку и центрировать префаб по ней. | ||
# Нажмите кнопку '''Create Prefab''' на [[Hammer New Objects Toolbar|панели объектов]], или выберите команду '''Create Prefab''' в [[Hammer_Tools_Menu|меню инструментов]]. (Горячая клавиша: {{key|Ctrl+R}}) | # Нажмите кнопку '''Create Prefab''' на [[Hammer New Objects Toolbar|панели объектов]], или выберите команду '''Create Prefab''' в [[Hammer_Tools_Menu|меню инструментов]]. (Горячая клавиша: {{key|Ctrl+R}}) | ||
# Откроется диалог '''Save As...''', показывая каталог префабов Хаммера. Впишите имя файла и сохраните префаб, нажав кнопку '''Save'''. {{note:ru|К файлу автоматически добавляется расширение ''.vmf'', однако | # Откроется диалог '''Save As...''', показывая каталог префабов Хаммера. Впишите имя файла и сохраните префаб, нажав кнопку '''Save'''. {{note:ru|К файлу автоматически добавляется расширение ''.vmf'', однако у некоторых пользователей его не было. Чтобы перестраховаться, припишите файлу расширение ''.vmf''. Также, это расширение можно добавить позже, открыв папку префабов.}} {{bug:ru|После сохранения самого первого префаба Хаммер может закрыться.}} | ||
# Теперь новый префаб будет доступен для вставки на [[Hammer New Objects Toolbar|панели объектов]]. | # Теперь новый префаб будет доступен для вставки на [[Hammer New Objects Toolbar|панели объектов]]. | ||
=== Маркер префабов === | === Маркер префабов === | ||
К именам | К именам энтить внутри префаба можно добавить специальный ''маркер'' "&i", так что на карте им будет присвоен уникальный номер. Маркер может включаться в [[targetname|имя]], [[Inputs and Outputs|входы и выходы]], и т.д.. Все маркеры в префабе будут заменены на тот же номер. Это позволяет сущностям внутри префабов не ссылаться на другие префабы. | ||
Например, сущность [[func_door]] с именем "door_sliding_&i" в префабе, на карте станет называться "door_sliding_1". В последующих префабах она будет называться "door_sliding_2", "door_sliding_3", ... | Например, сущность [[func_door]] с именем "door_sliding_&i" в префабе, на карте станет называться "door_sliding_1". В последующих префабах она будет называться "door_sliding_2", "door_sliding_3", ... | ||
Line 28: | Line 28: | ||
Триггеру [[trigger_multiple]], включенному в ''один префаб'' с триггером "door_sliding_&i", который он запускает, будет присвоен тот же номер, что и двери. | Триггеру [[trigger_multiple]], включенному в ''один префаб'' с триггером "door_sliding_&i", который он запускает, будет присвоен тот же номер, что и двери. | ||
{{note:ru|Другие | {{note:ru|Другие элементы, как например прикрепленные к префабу [[env_cubemap|кубмапы]], сохраняться не будут, и отбрасываются при каждой вставке.}} | ||
{{tip:ru|Используйте звездочку (*) в фильтре поиска префабов, использующих подстановку. Например, поиск ''door_*'' выдаст ''door_1'', ''door_2'', ''door_red_7'', и т.д..}} | {{tip:ru|Используйте звездочку (*) в фильтре поиска префабов, использующих подстановку. Например, поиск ''door_*'' выдаст ''door_1'', ''door_2'', ''door_red_7'', и т.д..}} | ||
Line 39: | Line 39: | ||
Есть два способа: с помощью {{Hammer entity}}, или {{Hammer block}}. | Есть два способа: с помощью {{Hammer entity}}, или {{Hammer block}}. | ||
В целом, процедура одинакова в обоих случаях: сперва определитесь с инструментом, затем на [[Hammer New Objects Toolbar| | В целом, процедура одинакова в обоих случаях: сперва определитесь с инструментом, затем на [[Hammer New Objects Toolbar|Панели объектов]] выберите префаб, и вставьте его в одно из окон. | ||
Инструмент {{Hammer entity}}, используемый чаще всего, сохраняет исходный размер префаба. Инструмент {{Hammer block}} допускает изменение размера префаба. | Инструмент {{Hammer entity}}, используемый чаще всего, сохраняет исходный размер префаба. Инструмент {{Hammer block}} допускает изменение размера префаба. | ||
{{tip:ru|После того, как вы | {{tip:ru|После того, как вы выбрали способ создания префаба (Entity Tool или Block Tool), на панели объектов появится кнопка '''Insert original prefab''' (вставить оригинальный префаб). Используйте её, чтобы вставить префаб в центр окна 2D-вида. После этого префаб можно двигать куда угодно. Убедитесь, что включена [[Hammer_Map_Operations_Toolbar|Texture Locking]]!}}{{clr}} | ||
=== Использование Entity Tool === | === Использование Entity Tool === | ||
Line 50: | Line 50: | ||
[[Image:InsertPrefabTut3.png|right|200px]] | [[Image:InsertPrefabTut3.png|right|200px]] | ||
Чтобы разместить префаб в исходном размере, используйте {{Hammer entity}}. | |||
# Выберите {{Hammer entity}} на панели инструментов. (Горячие клавиши: {{key|Shift+E}}) | # Выберите {{Hammer entity}} на панели инструментов. (Горячие клавиши: {{key|Shift+E}}) | ||
Line 59: | Line 59: | ||
=== Использование Block Tool === | === Использование Block Tool === | ||
Чтобы разместить префаб в нужном масштабе, используйте {{Hammer block}}. | |||
Как | Как вставить префаб нужного размера: | ||
# На панели инструментов выберите {{Hammer block}}. (Горячие клавиши: {{key|Shift+B}}) | # На панели инструментов выберите {{Hammer block}}. (Горячие клавиши: {{key|Shift+B}}) | ||
# На панели [[Hammer New Objects Toolbar|Object bar]], в поле '''Categories:''' выберите Prefabs. | # На панели [[Hammer New Objects Toolbar|Object bar]], в поле '''Categories:''' выберите Prefabs. | ||
Line 69: | Line 69: | ||
{{clr}} | {{clr}} | ||
Обратите внимание, что любой вставленный префаб автоматически [[Grouping_and_VisGrouping:ru|группируется]], и если вам нужно переместить отдельный объект, то | Обратите внимание, что любой вставленный префаб автоматически [[Grouping_and_VisGrouping:ru|группируется]], и если вам нужно переместить отдельный объект в префабе, то его следует разгруппировать. | ||
== Текстура Skip tool == | == Текстура Skip tool == |
Revision as of 02:36, 19 November 2016
Префаб означает сборка, и является отдельно сохраненным объектом, состоящим, как правило, из различных элементов: брашей, пропов или сущностей. Система префабов позволяет легко хранить части ваших уровней, которые можно использовать неоднократно. Примеры полезных префабов включают коридоры, столбы, специально установленные сущности, и т.д..
Префабы - это просто маленькие файлы карт (.VMF), которые содержат только ваш префаб. Эти файлы хранятся в определенной папке, обычно \sourcesdk\bin\prefabs
, чтобы Хаммер мог легко их найти и вставить в ваш уровень.
Примечание: Убедитесь, что в играх orangebox используете \sourcesdk\bin\orangebox\bin\prefabs
Префабы можно выстраивать по иерархии, просто добавляя их в подпапки каталога \prefabs
. Это позволяет сортировать их на основе принадлежности к карте или моду, что облегчает поиск.
Создание префабов
Префабы в Хаммере создаются так:
- Если префабы предназначены для взаимодействия с поименованными объектами внутри себя, то в конце имени каждого объекта добавляем маркер "_&i". См. ниже Маркер префабов.
- Выделите объекты, которые нужно добавить в префаб (зажав Ctrl).
- Если вы планируете вставлять префаб с помощью Entity Tool, то в качестве точки отсчета будет выбрано начало координат (0,0,0) вашей карты, поэтому желательно перенести выбранные объекты в эту точку и центрировать префаб по ней.
- Нажмите кнопку Create Prefab на панели объектов, или выберите команду Create Prefab в меню инструментов. (Горячая клавиша: Ctrl+R)
- Откроется диалог Save As..., показывая каталог префабов Хаммера. Впишите имя файла и сохраните префаб, нажав кнопку Save. Template:Note:ru Template:Bug:ru
- Теперь новый префаб будет доступен для вставки на панели объектов.
Маркер префабов
К именам энтить внутри префаба можно добавить специальный маркер "&i", так что на карте им будет присвоен уникальный номер. Маркер может включаться в имя, входы и выходы, и т.д.. Все маркеры в префабе будут заменены на тот же номер. Это позволяет сущностям внутри префабов не ссылаться на другие префабы.
Например, сущность func_door с именем "door_sliding_&i" в префабе, на карте станет называться "door_sliding_1". В последующих префабах она будет называться "door_sliding_2", "door_sliding_3", ...
Триггеру trigger_multiple, включенному в один префаб с триггером "door_sliding_&i", который он запускает, будет присвоен тот же номер, что и двери.
Вставка префабов
Готовый префаб очень просто вставить на карту.
Есть два способа: с помощью Entity tool , или Block tool
.
В целом, процедура одинакова в обоих случаях: сперва определитесь с инструментом, затем на Панели объектов выберите префаб, и вставьте его в одно из окон.
Инструмент Entity tool , используемый чаще всего, сохраняет исходный размер префаба. Инструмент Block tool
допускает изменение размера префаба.
Использование Entity Tool
Чтобы разместить префаб в исходном размере, используйте Entity tool .
- Выберите Entity tool
на панели инструментов. (Горячие клавиши: Shift+E)
- На панели Object bar, в поле Categories: выберите Prefabs.
- В поле Objects: выберите из списка нужный префаб.
- Щелкните в окне 2D-вида в том месте, куда хотите поместить префаб. В качестве альтернативы, вы можете щелкнуть в окне 3D-вида, после чего префаб будет вставляться автоматически.
- Нажмите Return или ↵ Enter, чтобы вставить префаб.
Использование Block Tool
Чтобы разместить префаб в нужном масштабе, используйте Block tool .
Как вставить префаб нужного размера:
- На панели инструментов выберите Block tool
. (Горячие клавиши: Shift+B)
- На панели Object bar, в поле Categories: выберите Prefabs.
- В поле Objects: выберите из списка нужный префаб.
- В окне 2D-вида начертите прямоугольник, убедившись, что его размер и положение во всех окнах редактора соответствуют вашим требованиям.
- Нажмите Return или ↵ Enter, чтобы вставить префаб. Он будет отмасштабирован по начерченному прямоугольнику.
Обратите внимание, что любой вставленный префаб автоматически группируется, и если вам нужно переместить отдельный объект в префабе, то его следует разгруппировать.
Текстура Skip tool
Обычно, префаб состоит из множества объектов, которые вам нужно куда-либо переместить или скопировать, и если префаб имеет неопределенный размер, то его компоненты могут оказаться в неожиданных местах. Вы можете этого избежать, окружив префаб текстурой skip:
- Установите размер сетки на максимальный, на который желаете перемещать префаб. (Обычно, браш skip рисуется с размерами 4x4x4.)
- Создайте браш, охватывающий все компоненты префаба.
- Покройте его со всех сторон текстурой skip.
- Выберите все компоненты префаба, (включая браш skip) и сохраните его.
Теперь положение компонентов внутри браша соотнесено с ним, и браш будет выравнивать их по графике Хаммера. Поскольку браш конвертирован в текстуру skip, он не компилируется с картой.
Готовые префабы
Список готовых в Source SDK префабов см. Category:Prefabs.
См. также
- func_instance - это продвинутая альтернатива для префабов, доступная на движках Counter-Strike: Global Offensive, Left 4 Dead 2, Alien Swarm и Portal 2.
Внешние ссылки
Ниже представлены сайты, которые изготавливают префабы и модели: