Подробный обзор окна RBA (Reference Batch Action)
Сегодня в нашем туториале речь пойдет об очень полезном и функциональном окне (панели, если хотите) - Reference Batch Action (горячая клавиша «-» (дефис) работает только в окне просмотра (Render Window)) Вы могли встретиться с ним, если знакомы с официальными туториалами, которые написала Bethesda. С помощью этого окна можно связывать один или группу объектов Y с одним объектом X.
Ладно, перейдем к делу. Вот так, собственно, выглядит окно Reference Batch Action:
рис. 1.0
Окно можно визуально разделить на три части (рис. 1.1):
1) Поле Selected References. В нем отображаются выбранные объекты, которые впоследствии будут привязаны к конкретному Ref’у (активатору, родителю и некоторым другим).
Чтобы выбрать объект, можно просто щелкнуть по нему левой кнопкой мыши или же выбрать объект в окне Cell View.
2) Поле Target Reference. Здесь выбирается ячейка (поле Cell) и сам объект (поле Reference) к которому будет привязаны все объекты из поля Selected References. Так же есть возможность выбора объекта через окно просмотра (Render Window).
3) Поле Action. Здесь устанавливается определенный вид связи объектов.
рис. 1.1
С первыми двумя частями окна вроде все понятно, а вот поле Action вызывает наибольший интерес. Давайте рассмотрим подробнее, чем же все-таки отличаются виды связи и для чего они служат.
Примечание: я не буду рассматривать первые четыре функции. Просто потому, что они предназначены для работы с водой.
Поле Action
Функция - Set Enable Parent
Ну что же, начнем рассматривать первый вид связи объектов (пропуская четыре первых) – Set Enable Parent. Дословно – «Установить включающего родителя». Теперь поясню, что это значит. Допустим, вам надо после нажатия на переключатель, включить 25 лампочек. Присваивать для каждой свое собственное REF имя мало того, что утомительно и нецелесообразно, но еще и технически нелогично. Но с помощью функции Set Enable Parent можно легко включить 25 лампочек, создав всего лишь одно REF имя!
Примечание: А можно вообще обойтись без этого! (правда, для этого надо хоть немного знать скриптинг).
Рассказываю, как делается привязка:
1) Берем одну лампочку и присваиваем ей свое собственное REF имя. Не забудьте поставить галочку в чекбоксе Persistent Reference у копии объекта!
2) Открываем окно RBA.
3) Выделяем другие 24 лампочки.
4) Выбираем тип связи Set Enable Parent.
5) В поле Target Reference выбираем ячейку с лампочкой и саму лампочку с индивидуальным REF именем.
Примечание: если объекты находятся не в ячейках, а в Watelend (Пустоши), то выбрать REF объект можно с помощью функции Select Reference in Render Window.
Все, связь установлена! Всего за пять шагов можно избавиться от той рутины, которая отняла бы ваше время. На ручное переименование ушло бы около… 10 минут. Если это делать быстро, то 7 минут. Но способ с панелью гораздо лучше и удобней. Тем более, в Bethesda ее же не зря делали. ;)
Примечание: вообще, я использую XMarker’ы, вместо любого из однотипных объектов, которые собираюсь привязать к активатору. Я привязываю все объекты к маркеру, которому присваиваю уникальное Ref-имя, а потом привязываю все нужные мне объекты (те же лампочки) к маркеру.
Пример работы вы можете посмотреть в нашем моде ("В поисках вечности") в ячейке, где находится пазл с генераторами. Там это функция используется для заметы погасших лампочек на светящиеся.
Функция - Set Linked Ref
Данный вид связи позволяет привязать только один объект к другому. Я знаю, что эта функция полезна в тех случаях, когда используется универсальный скрипт. Допустим, как при создании терминала, который открывает дверь – есть готовый терминал, а вам всего лишь надо привязать его к двери и поставить уровень сложности взлома. После этого можно открывать и взламывать терминал или дверь. Так же эта функция используется для создания патрулей – создается несколько маркеров и каждый друг с другом соединяется функцией в той последовательности, в которой вы хотите. Потом по этим маркерам будет идти NPC.
Но можно функцию использовать и в своих скриптах. Так как туториал не по скриптингу, я просто приведу пример скрипта Bethesda с моими комментариями, но не буду объяснять, как создать свой скрипт – это выходит за рамки статьи.
scn Default1xActivateLinkedRefSCRIPT ;Название скрипта
; a standard, all-purpose script Перевод: стандартный, многоцелевой скрипт
ref myLink ;Объявление ref-переменной
short doOnce ;Переменная для проверки
begin onTriggerEnter player ;Тип блока. Скрипт сработает, когда только ГГ войдет в Триггер
if doOnce == 0 ;Проверка. Нужна для того, что бы скрипт выполнялся один раз.
set myLink to getLinkedRef ;Собственно, главная строчка в скрипте. Именно с помощью функции ;getLinkedRef и происходит взаимосвязь с объектами через скрипт.
myLink.activate ;Активирует привязанный объект.
set doOnce to 1 ;Переменной doOnce присваивают значение 1. Чтобы скрипт выполнился один раз.
Endif
end
Привязка производится так же, как и с установкой активирующего родителя (Set Enable Parent).
Функция - Set Activate Ref
В принципе, то же самое, что и Set Linked Ref. Разница лишь в том, что здесь можно только активировать объект. Допустим, есть объект «Дым», который начинает дымить только тогда, когда его активируют. Еще есть переключатель, нажав на который, происходит функция активации (просто активируется сам переключатель).
Для того, что бы активировать дым через переключатель нужно взять объект «Дым» и привязать его к переключателю. И все! Когда ГГ нажмет на переключатель, дым начнет дымить.
Так же эта функция используется при создании ловушек – когда ГГ рвет растяжку (активатор), то падают гранаты. Также гранаты могут иметь несколько активаторов – растяжку и платформу.
Функция - Set Owner
Эта функция привязывает объект к конкретному владельцу (NPC) или же к конкретной фракции. Этот тип связи может помочь на Пустошах. Потому что в ячейках можно настроить владельца или фракцию для всех объектов находящихся в ней. Если вы видели мародеров на Пустоши, которые имеют свои прибежища, то могли заметить, что все предметы этого мародера принадлежат ему, и они подсвечены красным цветом. Вот именно для этого и существует эта функция – что бы привязывать предметы к конкретному NPC. Процесс привязки простой – выделяем предметы, которые хотим привязать к NPC и, собственно, привязываем. J
Функция - Set Multibound
Для начала поясню, что же такое Multibound. Multibound Box – это тот же Room Marker, но в основном он используется в экстерьерах. Так как это удобнее – не надо делать порталы, как при создании RoomMarker’ов. Multibound Box позволяет изолировать объекты находящиеся в нем. Если какая либо часть Multibound Box видна, то все объекты в нем тоже видны (они обрабатываются движком), а если ГГ отвернулся, то ниодна вещь не будет обрабатываться движком. Для чего это нужно? Что бы сберегать ресурсы системы на слабых машинах.
Теперь о функции:
Эта функция позволяет привязать конкретные объекты к Multibound Box, даже если они не находятся в нем.
Вообще, этой функцией разработчики не пользовались – они просто ставили Multibound Box нужных им размеров.
Привязка идет по той же системе – берутся нужные объекты и привязываются к конкретному Multibound Box.
Функция - Set External Emittance
Внешнее освещение может быть использовано для того, что бы добиться особых эффектов, которые применяются как свойство у особого типа освещения.
Обычно, эта функция используется что бы:
- Изменять освещение (lights), световые эффекты (light effects) и свечение (glows) в течении суток. Это значит, что днем тип освещения один, а ночью другой.
- Теннпенни-Тауер и другие поселения используют особый (InvertedDaylightWarmRegion) экстерьерный тип освещения, что бы симулировать свет в окнах ночью.
- Делает эффекты тумана и дыма более насыщенными, чем при включении свечения в настройках самих эффектов (вкладка Emittance в Ref-копии объекта).
Правда, у вас может появиться вопрос, к чему привязывать? Ну, например, настроить в каком-нибудь объекте тип свечения.
Во вкладке Emittance нужно выставить экстерьерное свечение. И привязать все остальные светящиеся объекты к нему.
Собственно, туториал закончился.
Комментарии