Так скажем – Второй мини урок «Повелитель Света» Вы спросили:
- А как сделать включаемый и выключаемый свет?
Вам ответили:
-Написать скрип выключателя. Вот такой, например:
Code
scn AAAKainLightSwitchScript
Short bLightState
Begin OnActivate
If bLightState != 1
AAAKainLight01Ref.Enable
AAAKainLightSwitchRef.Activate AAAKainLightSwitchRef
Set bLightState to 1
Else
AAAKainLight01Ref.Disable
AAAKainLightSwitchRef.Activate AAAKainLightSwitchRef
Set bLightState to 0
Endif
End
И добавляют:
Скрипт вешается на любой объект, который можно активировать.
Активатор следует связать с лампочкой "LinkedRef" связью.
В настройках копии лампочки нужно выбрать параметр "Initially Disabled".
И тут вы понимаете, что ничего не понимаете!
Ничего страшного, это явление обычное для всех новичков в любом деле!
Давайте разбираться.
Для начала нам нужно выполнить все условия прописанные в скрипте. Их тут опять не много!
Нам нужны:
- Активатор AAAKainLightSwitchRef
- Лампочка AAAKainLight01Ref
Начнём с лампочки.
В Редакторе в окне Object Window в ветке древовидной структуры папок Wopld Objects и далее ветку Light.
Второй путь - поиск через фильтр, для этого в окне Object Window в маленьком окошке Filter сразу под названием окна напишите light (свет), а в самом низу списка всех объектов игры выберите *All.
А в правой части окна Object Window возьмите любую лампочку, я выбрал LightViolet
И как описано в первом мини уроке - переносим её в рабочее окно редактора, и устанавливает в нужном месте. Примерно так.
Как вы понимаете это только «лампочка – источник света». А сам светильник Вы можете найти по поиску через фильтр, вписав в поле поиска Light отсортировав объекты по типу – нажав кнопку Form Type – вот здесь
И прокрутив список до объектов с символом синего домика (наверное это домик!)
Начинаете просмотр с первого – кликнув на нём ПКМ и открыв окно Preview. Если мешает Ground plane – снимите галочку под этой надписью (поверхность исчезнет). Навигация в этом окне простая – зажав ЛКМ – вращаем камеру, прокрутив Колёсико мышки приближаем и отдаляем.
Окно Preview при открывании всегда становится активным. Поэтому для прокрутки списка объектов при помощи стрелок на клавиатуре– кликните ЛКМ на окне Object Window - тем самым сделав активным.
Найдите подходящий Вам светильник
и установите в рабочем окне Редактора.
Возвращаемся к лампочке.
Так как возможно Вы захотите изменить её яркость и цвет освещения, давайте, как и в случае с дверью из первого мини урока, создадим новый объект.
Последовательность Ваших действий точно такая же – окна вы знаете, поэтому обойдёмся без картинок.
Двойной клик ЛКМ по лампочке - Reference – Edit Base – поле ввода ID – вписываем собственный ID, например АААKAINLight01. Закрываем окно, подтверждаем создание нового объекта и в поле Reference Editor ID вписываем АААKAINLight01Ref. (Имя Ref может быть любым, я просто скопировал имя ID и добавил окончание Ref, что не выдумывать)
И сразу же ставим галочку в поле Persistent Reference – тем самым разрешая объекту участвовать в связях с другими объектами. И в поле Initially Disabled (отключив отображение в игре)
Небольшое пояснение, зачем мы вписали в поле ввода Reference Editor ID вписали АААKAINLight01Ref.
АААKAINLight01 – это новый созданный нами объект и он имеет уникальный (неповторимый) ID (идентификатор). Он может быть только один, это понятно по определению – уникальный.
А АААKAINLight01Ref – это копия нашего уникального обьекта – их может быть сколько угодно много. Например следующий можно назвать АААKAINLight02Ref.
Для чего это нужно и как можно использовать?
Во первых для скриптов.
А во вторых для чистоты мода и стабильности игры.
Вроде всё понятно!
Ну раз понятно – пара сделать следующий шаг и создать активатор (включатель).
Для этого в окне Object Window переходим к ветке Wopld Objects далее Activator далее открываем ветку Clutter и в левой части окна в списке объектов находим – ElectricalSwitch.
Альтернативный путь поиска – в Filter написать Switch.
Затем перетаскиваем выключатель в рабочее окно и устанавливаем где и как надо.
У меня вот так.
Лампочка, светильник и выключатель.
На этом этапе мы должны изменить ID выключателя на свой и связать наш активатор и лампочку LinkedRef связью.
Для этого делаем двойной клик ЛКМ по выключателю и в Edit Base меняем ID на свой.
Я вписал так AAAKainLightSwitch. Закрываем окно и соглашаемся с созданием нового объекта . А в открытом окне Reference при помощи двух < > стрелок перелистываем вкладки
до Linked Ref и открыв её видим вот такое содержимое. Поля Cell и Reference пока пустые – в них написано None –наш активатор (выключатель) ни с чем связан.
Затем свдинут окрытые окна таким образом что бы было видно лампочку в рабочем окне редактора, нажимаем на длинную кнопку с надписью Select Reference in Render Windows
При этом Рабочее окно редактора станет активным, а указатель мышки измениться на "прицел" красного цвета.
Перемещаем прицел на лампочку, он меняет цвет на белый - это сигнал того, что с этим объектом связь может быть установлена. Делаем двойной клик ЛКМ – при этом становится активным окно
Reference, в котором мы видим, что поля Cell и Reference теперь заполнены.
В первом мы видим место, а во втором нашу лампочку.
А в Рабочем окне Редактора мы видим жёлтую стрелочку, которая протянута от активатора (выключателя) к источнику света (лампочке).
Связь мы установили, все условия необходимые для работы скрипта выполнили.
Пришло время добавить скрипт.
Последовательность Ваших действий по добавлению скрипта – точно такая же как в мини уроке Повелитель времени.
Опишу коротко -двойной клик ЛКМ на активаторе – Reference – Edit Base – Script –New – вписываете или копируете и вставляете текст скрипта – cохраняете скрипт и закрываете окно Script Edit.
Затем закрываете окно Activator. Далее вновь нажимаете на EditBase и открываете окно Activator. В поле прокрутки Script находим наш AAAKainLightSwitchScript. Жмём OK – закрываем окно Activator и следом закрываем окно Reference.
Пояснение: Может показаться, что последние два действия закрыть окно, открыть окно – полная бессмыслица. Не всё так просто!
Пока окно Activator не будет закрыто созданный скрипт не появиться в поле прокрутки Script. Поэтому только так – закрыть и открыть.
Альтернативный путь поиска, просмотра и создания скриптов - через пункт Cameplay
главного меню редактора рассмотрим в следующем уроке.
Ну что пришло время проверить в игре, что у нас получилось.
Запускаем игру и видим сначала вот это – тьма.
Затем «нажимаем на кнопочку…» и видим – свет.
Здорово!
Или почти здорово – свет есть, а эффекта свечения нет.
Непорядок. Давайте исправим это!
Но как?
И вот тут в «игру» вступает мой, да и не только мой, играющий тренер, член команды «МодТес» с сайта http://mod-tec.ru (да Вы не ошиблись отсюда) Sergey_Ros - вот с таким советом:
1. Поставьте флажок в Ref-копии лампочки (луковицы, излучателя) напротив пункта "Persistance Reference".
2. Затем выберите необходимый эффект свечения, откройте его Ref-копию, пройдите во вкладку "Enbale Parent" и с помощью кнопки "Select Reference in Render Window" выберите Ref-копию лампочки.
3. Результатом этого станет наследование эффекта свечения состояния родительского объекта (лампочки). Т.е., если лампочка "Enable", то и эффект будет "Enable". И наоборот.
Давайте попробуем реализовать этот совет в «жизни»!
Для начала найдём сам эффект. Открываем ветки в дереве папок окна Object Window по такому пути Wopld Objects - Static – Effects- Ambient и в левой части окна находим и выбираем FXGlowSimpFillRnd. Перетаскиваем его в Рабочее окно редактора и устанавливаем на место. Примерно так.
1 пункт у нас уже выполнен.
Приступаем к выполнению второго - двойной клик по FXGlowSimpFillRnd дальше Edit Base – меняем ID на свой например так AAAKainFXGlow. Соглашаемся на создание нового объекта. И вписываем в поле Reference Editor ID – AAAKainFXGlowRef.
Затем выполняем те же самые действия, что и при создании связи между активатором и лампочкой. Только в этот случае делаем это во вкладке Enbale Parent. Если бокс эффекта будет вам мешать установить связь с лампочкой – сдвиньте его в сторону, а после выбора прицелом лампочки и установления связи, верните на место.
Связь установлена – поля Cell и Reference заполнены.
Закрываем окно Reference.
Сохраняем плагин и идём смотреть в игре.
Дело сделано! И снова все рады и смеются.
А мы поздравляем Вас с очередным званием - Повелитель Света.
Послесловие.
Как вы понимаете и это только пример. Вы можете настроить яркость, радиус, цвет по собственному желанию.
В моём случае настройки такие
А если вы добавите в скрипт после строки
AAAKainLight01Ref.Enable
строку
PlaySound UIPipBoyLightOn.
А после строки
AAAKainLight01Ref.Disable
строку
PlaySound UIPipBoyLightOff
Тогда при активации (включении и выключении) активатора будет проигрываться звук – в этом примере звук включения и выключения подсветки Пипбоя.
Пробуйте, делайте и всё у Вас получиться!
Пока.