×
Меню
Индекс

Создание активаторов с точкой контроля

 
Т.е. объекта, который будет иметь лишь небольшую область (точку) через которою только и может быть активирован.
 
Например, это может быть дверь с ручкой.
Вся область двери (активатор) не будет выводить сообщение с названием объекта, оно будет появляться только при наведении на "ручку" (кнопку).
При этом, в плагине, не потребуется создание вспомогательных активаторов, как это делается в обычных случаях!
 
Также, рассмотрим момент, анимации коллизии (root collision)(РК) такого объекта, посредством переноса управляющего контроллера в отдельную ноду.
Т.е. вложенные в РК контроллеры, могу не работать, как им положено, но это можно обойти перенеся их во внешнюю ноду.
См. здесь в т.ч.
 
И так!

 
Это финальный вид объекта, теперь давайте разберем что же тут есть и как оно работает!
 
1. Для начала, стоит отметить, что это Хниф файл!
Т.е. используется обычный набор из трех файлов необходимых для продвинутой анимации объекта в игре.
Анимация, в игре, будет вызываться скриптом через PlayGroup при нажатии на кнопку.
Которая, кнопка, расположена прямо на двери и не является отдельным ниф файлом!
Дверь (в игре это активатор) имеет РутКоллизион для блокировки прохождения через нее.
 
2. NiStringExtraData = RCN
На самом деле здесь, это, не является обязательным, т.к. он влияет только на вложенные в состав обычных Нод, Рк ноды.
Но он здесь есть, "на всякий случай".
Т.к. РК нода содержит в своем составе анимированные объекты.
Хотя нужен он, только для случая, когда сама РК, находится в составе обычной ноды содержащей анимацию.
 
3. NiNode ROOT является корнем для видимых сеток объекта.
Здесь это произвольная организация файла и не имеет принципиальной роли.
Т.е. описываем все содержимое, в т.ч. не играющее какой либо значимой роли.
 
4. Нода doors, содержит собственно, двери и кнопку с рычагом.
Само по себе, это всего лишь нода с детьми, т.е. так было устроен файл и это не играет значимой роли.
Т.е. это также, простые вещи сами по себе, которые есть в этом файле.
 
5. А вот здесь уже начинается важное!
Где ноды doorJam, right_door и left_door - являются NiCollisionSwitch нодами, т.е. полностью "неосязаемы".
Собственно именно это и отвечает за скрытие планки с названием объекта при наведении курсора на объект.
Т.е. сколько курсором по двери не води, а сообщение с названием (равно и возможность активировать) появится только при наведении на кнопку!
 
6. собственно кнопка и рычаг. Lever_animated и BUTTON!
В обычных нодах! Что и позволяет активировать дверь только через эту часть.
Также, здесь, именно в составе нод кнопки и рычага находятся объекты упомянутые в КФ файле.
Сами половинки дверей, выше, анимированные морфингом и не упоминаются в КФ.
Но, как уже отмечалось, КФ файл, должен иметь кейфрейм контроллер, для правильной работы.
Поэтому, здесь, нажатие кнопки и поворот рычага были сделаны через кейфрейм, что и позволило удобно создать Кф файл.
 
7. Bounding Box находится в координатах кнопки и рычага.
Т.е. размещен непосредственно вокруг этого блока.
Что позволяет вывесить плашку с названием НАД кнопкой.
Как было показано здесь, именно ББ позволяет управлять положение плашки с названием объекта!
собственно, в редакторе, хорошо видно положение ББ вокруг ручки.
Т.е. его положение в сцене и объем.
Который перекрывает блок управления дверью с обеих ее сторон.
 
8. RootCollisionNode которая отвечает за блокировку прохождения через нее игрока и прочих.
Без нее, дверь будет "призрачной" ибо см. выше NiCollisionSwitch!
Т.е. сама дверь призрачна и для активации и для прохождения через нее, но наличие РК решает проблему с "призрачностью"!
Блокируя онуе своими невидимыми, для рендеринга, объектами.
 
9. animated_part_L и animated_part_R это створки невидимых дверей.
Которые должны быть анимированы, чтобы через дверь можно было пройти, что логично.
Также РК содержит и сетку контура дверей, которая статична и не использует анимации.
Но вот здесь и возникает проблемка!
3д МАХ не сохраняет контроллеров анимации на вложенных в РК объектах!
А если добавить им анимации в нифскопе напрямую, они могут и не заработать!
Что особенно критично для морфинга, которым в данном случае были анимированы видимые детали дверей.
Т.е. морфинг нельзя перенести в КФ файл и из РК в составе Хниф файла, он не работает!
Т.е. здесь двери были анимированны морфингом, что позволяет корректно уменьшать створки дверей, а не просто смещать их.\
Это критично, если двери используются в соседних коридорах.
И что же делать?
Конечно брать бубен и камлать, ака шаманить с обходными путями, ибо нормальные Герои никогда не идут на пролом, а только городят новые горы, дабы обойти уже имеющиеся!
 
10. И вот оно обходное решение проблемки в виде огорода сгорженного!
Дополнительная нода, CtrlForCollDoorPart, содержит два, последовательно вложенных друг в друга, контроллера анимации (кейфрейм) которые и влияют на объекты в составе РК.
Сами эти объекты являются копиями створок дверей, только без анимации морфинга. Который был удален.
Т.е. контроллеры вынесены из РК в отдельную ноду и управляют объектами в составе РК.
Хотя цели контроллеров находятся в РК, но вынос их за приделы РК удобно решил проблемку!
Также, поскольку "двери" в составе РК невидимы, то менять их размер можно свободно.
Главное правильно убрать преграду на пути Игрока, а как она там исчезает, уже неважно.
Равно, такой контроллер смещения и масштабирования, можно создать прямо в нифскопе.
Главное правильно указать тайминги времени для раскрытия и уменьшения масштаба.
Хотя, конечно, будет удобнее, все сделать в 3д Редакторе.
 
В итоге.
В итоге, получается дверь (активатор) управляемая ОДНИМ локальным скриптом, с КФ файлом, где содержатся команды на группы анимации, анимацией морфинга основных видимых дверей (отчего они не будут перекрывать соседние проходы если были поставлены рядом), анимированными деталями в составе РК, что позволяет управлять состояние преграды и! Зоной (точкой) через которую только и можно взаимодействовать с дверью!
Что логично, навести курсор на кнопку и нажать. Вместо посмотреть в верхней левый угол двери и можно жать.
 
Как видите, все довольно просто, если правильно собрать ЛЕГО из подручных материалов.
Благо, что к 2022ом году, сообщество, наконец-то! "познало ЧИМ" и уразумело суть двемерзской магии слов и значений, через использование которой и стало возможным подобное колдунство с обходными путями через Этериус и создание огороженных областей на пути к Сердцу Внутри Горы!

Курсор наведен на дверь, но плашки с названием, а равно и возможности активировать - не появляется!
Курсор наведен на блок управления, где за счет наличия Боунд Бокса, плашка появляется НАД кнопкой.
 
Курсор в самом низу рычага, но плашка с названием стоит на своем месте! Это все влияние Боунд Бокса.
 
Дверь открыта, можно свободно проходить!