×
Menu

Доработка Stencil Рагнаблейдный Привет Неревару

Примечание (ВАЖНО)!
К сожалению, возможно проблемы, т.е. метод не на 100% стабилен!
Нарушения порядка отрисовки объектов в сцене и наличие глобального уровня воды, могут приводить к разрушению правильного отображения оружия.
Такое чаще всего возникает при смене локации.
Возможно, требуется дополнительный мониторинг такого объекта средствами МВСЕ, дабы оный объект всегда размещался правильно в графике сцены.
Т.е. если (действительно) внезапно все перестало работать, это не значит, что модель "сломалась".
Хотя этого тоже нельзя исключать.
Но высока вероятность нарушения порядка отрисовки объектов в сцена за счет появления какого-то нового объекта со свойствами трафарета, или иных причин.
Так или иначе, описанный ниже метод, показывал довольно стабильный результат.
 
Возможно, рассматривая данную заметку, получиться найти более оптимальные настройки и окончательно решить проблему разрушения правильной работы сложно настроенных трафаретов.
 

Примечание по моделям мечей с частицами и трафаретами.
Собственно проверено практикой, теория была здесь (еще в 2020ом). (сия же заметка от 2022го как и модель меча)
Основная задача была получить:
- черное лезвие на котором видны звезды и при этом чувствуется глубина, ака объем внутреннего пространства!
- ореол вокруг лезвия.
- попутно решить задачку с водой, дабы меч работал менее более нормально в любой локации.
 
Модель этого меча есть в архиве к заметкам:
@_Notes_for_Modmaking_ver(video_only)/Additional_Files/Tours/@How_To/NiStencilProperty/MoreAdvanced(Vids+Nifs)/qshw.NIF
 
Что здесь есть?
- Гарда, собственно рукоять меча.
- Фильтры. Отдельные объекты с настройками трафарета специально для решения проблем с водой!
- Системы частиц, образующие лезвие. Содержат настройки трафаретов.
- Еще частицы, образующие свечение вокруг лезвия. Содержат настройки трафаретов.
- И еще частицы! Для дополнительных искр вокруг лезвия. Содержат настройки трафаретов.
- Билборд объект с текстурой неба, он то как раз и будет нарисован на лезвии. Содержит настройки трафаретов.
 
Примечание.
Настройки систем частиц не рассматриваем, т.к. они могут быть произвольны и не относятся к теме этой заметки.
 
объект
название
описание и свойства что здесь есть.
niNode
garda
ничего интересного.
Никаких особых настроек (в этом случае) не требуется.
 
NiCollisionSwitch
Partilces
а это и есть лезвие!
Упакованое в колижен свитч ноду, скорее на всякий случай, чем по реальной необходимости.
Содержит все системы частиц и их настройки.
Т.е. настройки этой ноды оказываю влияние на все что в нее вложено.
 
Обратите внимание!
Флаг, этой ноды, 11!
Т.е. она скрыта по умолчанию!
Это следует ОБЯЗАТЕЛЬНО сделать, т.е. скрыть лезвие.
Если конечно стоит цель отключать поток (огня) когда оружие выложено в мир.
В данном случае, такая цель была.
В мире видна только рукоять, но не "магическое" лезвие.
Оное активируется только при взятии оружия в руки, на изготовку.
 
           niVisController
 
Для контроля за состоянием невидимость лезвия, здесь находится контроллер невидимости.
Включающий лезвие только в руках игрока!
 
Работает глобально на все содержимое этой ноды.
 
 
Теперь идут вложенные ноды со своими уникальными настройками и прочим.
niNode
FILTR!
_StencilMask
(to
avoid
water
problem)
А это как и написано!
Фильтры для решения проблем с водой. *покрайней мере они стараются это делать...
Т.е. содержимое этой ноды работает на изменения значений в стенсильном буфере.
И позволяет мечу работать в локациях с водой.
Т.е. постоянно обнуляя значения stens ref, для создания уникальных условий в буфере никак не пересекающихся с условиями задаваемыми настройками свойств трафарета воды.
 
Содержит 3 шейпа. Каждый со своими настройками трафарета.
А также z-буфер флаг 1.
 
NiTriShape
FILTR1
 
 
 
 
 
FILTR2
 
 
 
 
 
FILTR3
Задача - обнулить значения трафаретов для всех случаев.
Сами объекты никак не рисуются игрой, но только выполняют роль фильтра, дабы лезвие работало стабильно.
Находятся в начале сцены файла! Это важно!
 
Фильтры отключены.
Вот этот фон за спиной и вокруг и есть тот самый объем со звездами!
См. в конце этой заметки.
Фильтры включены.
И объем, виден только внутри лезвия!
 
niNode
EMITTER!
Эмиттер частиц, не содержит ничего интересного.
 
Который нужен в основном для предотвращения нежелательного увеличения размера частиц и фиксировании позиции оных.
 
NiSortAdjustNode
 
Dark_Steam
Нода сортировщик альфы.
Включен режим отсечки (sorting = off)
Здесь, такой режим сортировки влияет на отрисовку звезд.
SORTING_INHERIT
SORTING_OFF
 
В ней находится основной поток частиц.
Собственно Дарк Стим, т.е. эти частицы работают монитором для отображения звездного неба и основой для прочего!
 
NiBSParticleNode
SuperSpray01
Это их нода.
На которую и повешены основные свойства.
 
Флаг 170.
 
Это оказывает влияние на поведение частиц при движении.
Здесь позволяет сохранять форму клинка и лишь несколько смещаться после взмахе.
Т.е. и динамику сохраняет, но и не позволяет слишком растягиваться.
 
Если поставить флаг 32(42), частицы будут оставлять хвост.
Что хорошо для факелов, но не для меча.
Т.к. при ударе, лезвие будет визуально рассыпать.
Впрочем, такой флаг позволят создавать что-то похожее на кнут.
 
Флаг 32 (если использовать)
При движении это может показаться интересным...
Но при ударе, лезвие "осталось" за спиной, хотя рука уже ушла в сторону после удара.
 
 
И флаг 170 (что используется в файле)
Лезвие лишь слегка изгибается, но не отстает от рукояти.
Равно и при ударе, сохраняется правильная связь.
 
 
 
NiStringExtraData обычная для частиц sgoKeep
NiStencilProperty (собственно они тут самые главные)
NiZBufferProperty флаг 1
NiMaterialProperty по вкусу, ничего такого.
NiAlphaProperty 4643 22
NiFogProperty флаг 11 Fog Depth 1
 
NiRotatingParticles
Dark_1
Dark_2
Dark_3_
base_steam
Это сами системы частиц.
Для большего разнообразия их три.
Отличаются только настройками текстур.
Что влияет на контур лезвия меча и создает более ровный поток.
 
NiBSParticleNode
Glow_around_dark
Это нода частиц отвечает за создание свечения вокруг лезвия!
 
Флаг также 170.
Т.к. ореол должен сохраняться вокруг лезвия.
 
Содержит три потока частиц с разными настройками текстур и альфа свойств.
NiStringExtraData обычный для частиц.
NiZBufferProperty флаг 1
NiMaterialProperty по вкусу.
NiStencilProperty
Not_Equal как раз отвечает за "не рисовать" там где 7890. Т.е. здесь это на лезвии. Что и позволяет создавать правильный ореол, только вокруг лезвия меча.
NiFogProperty флаг 11 глубина 1 - фон нужен для предотвращения проявления контура полигонов частиц под водой.
 
Далее идут сами частицы (с разными текстурами и альфа свойствами)!
 
NiRotatingParticles
Blue_glow
Это голубое свечение вокруг лезвия.
Размер частиц большой.
Что позволяет получить значительный ореол свечения.
 
NiAlphaProperty флаг 13 22 (разные флаги дают более интересные результаты)
 
NiRotatingParticles
Red_glow_contur
Это розовое свечение с небольшой зоной.
Размер частиц, чуть больше чем частицы самого лезвия.
Т.е. работают только по краю лезвия.
 
NiAlphaProperty 4617 22
 
NiRotatingParticles
Sparks
Это искры, вокруг лезвия.
Т.е. поток искр по краю клинка и всегда рядом с ним.
Имеют NiBSPArrayController в качестве эмиттера указан поток частиц лезвия Dark_3_base_steam.
 
NiAlphaProperty 1 22
 
NiBSParticleNode
Sparks
Еще искры!
 
И здесь флаг 42.
Эти частицы летают произвольно и оставляют за собой хвосты.
Добавляют больше живости в сцену.
 
Однако, флаг 42(32) "позволяет" частицам пропадать.
Т.е. эти частицы могут внезапно исчезать и появляется позже.
В данном случае это практически не заметно и может быть "оправдано" "магической природой лезвия".
 
Т.е. еще одна нода с частицами для вящей былинности могущественного клинка!
 
 
 
NiStringExtraData обычно.
NiZBufferProperty 1
NiMaterialProperty по вкусу
NiAlphaProperty 4705 5
NiFogProperty 4 0.8
NiStencilProperty в целом также как и выше, частицы не рисуются внутри клинка.
Значение BOTH делает цвет частиц более насыщенным.
 
NiRotatingParticles
Simple_spark_
from_blade
NiBSPArrayController использует в качестве эмиттера Dark_3_base_steam
NiRotatingParticles
Area_spark
NiAlphaProperty 4621
NiBSPArrayController использует для эмиттинга уже Simple_spark_from_blade!
И другой флаг альфы.
 
NiSortAdjustNode
 
Здесь нода сортировщика не нужна, можно обойтись обычной.
Т.е. ее настройки SORTING_INHERIT.
 
 
NiBSAnimationNode
 
Stars_for_stencil
_space_only
 
В ее состав помещена анимационная нода (флаг 32), дабы контроллер смещения текстуры смог нормально работать.
Он будет дальше.
 
Собственно в этой ноде и находятся "звезды" т.е. тот самый объем который Неревар может видеть сквозь тьму клинка.
Обратите внимание, эта нода находится в самом конце графика файла!
 
 
 
NiZBufferProperty 3
NiStencilProperty
Equal - т.е. рисуем звезды только на клинке! там где маска 7890.
И оттого что EQUAL объект находится внизу списка, иначе он не сможет нормально отобразится на лезвии.
Значение CCW рисуем только внутреннюю сторону.
Если включить внешнюю, или обе, объем заметно поменяется.
Т.е. объект со звездами будет рисовать не только дальнюю сторону, но и ближнюю, что повлияет на отображение.
 
NiCollisionSwitch
Stars_for_stencil
_space_only
Еще одна колижен свитч нода.

На всякий случай, спрайты были убраны в нее, дабы не создавать игре лишней головной боли.
Впрочем, в оружиях, да еще со скрытыми деталями (как это лезвие) спрайты можно и не убирать в КС ноды.
Т.е. на зоны активации объектов это не будет влиять.
 
NiTriShape
Space_notUsed
(spriteMuchBetter)
Этот объект отключен.
Т.е. он скрыт и больше не используется.
Но при желании можно задействовать.

Здесь это была капсула.
При этом, изначально не помещенная в билборд ноду.
Но использования куба в составе билборд ноды, показало лучший эффект.
Капсула.
Размещенная вокруг клинка.
Однако, поскольку частицы могут менять свои позиции, иной раз они оказывались вне оной.
Отчего теряли рисунок звезд.
 
NiNode
crl
Возможно лишняя нода.
Т.к. несет малую вспомогательную нагрузку будучи взята из другого файла.
 
Sprite_for
BetterLooking
А вот здесь сами звезды!
Которые упакованы в билбордноду, что позволяет им всегда быть повернутыми к игроку.
И всегда находится на лезвии!
 
Или почти всегда...
 
 
NiTriShape
Box01
Объект содержащий текстуры звезд и контроллер их движения для большей суровости.
Здесь это огромный БОКС.
Которому, отключены нормали в шейпдате.
Так чтобы источники освещения не оказывалм на него никакого влияния!
 
NiUVController - передвигает звезды!
В дополнение к тому, что они и так реагируют на смену взгляда игрока за счет Билборд ноды.
 
При этом, сам объект В РАЗЫ БОЛЬШЕ самого меча.
Т.е. фактически игрок находится внутри оного огромного куба!
Это нужно для получения эффекта глубины и размещения лезвия на его фоне гарантированно и в любой проекции.
Т.е. не важно в какой позе будет игрок и откуда смотреть, лезвие всегда окажется на фоне звезд.
И не получится, что какая-то часть потеряет свою "текстуру".
 
Если дополнительно добавить на этот куб свойства тумана:
niFog = xx
без niFog свойств.
 
NiNode
Bounding Box
Пустая нода для удобства выделения меча в редакторе.
Никакой иной функции.
 
В динамике, объем виден лучше.
Частицы позволяют получить эффект подобный "оригинальному" мечу Рагнаблейду из Рубак (Slayers)
 
Дальнейшее развитие.
Различные свойства альфа позволяют получить призрачный меч.
 
Т.е. одним мечом дело не ограничилось, было сделано несколько версий.
 
Равно как и маски текстур с niFog - открывают простор по генерации "духовных" "энергетических" и пр. "жидких" мечей.
Ореолов можно и парочку... ярко синий и розовый.
И конечно множество искр! Куда ж без них? ))
Руби их Рагнаблейд!(С)
Или что-то в этом роде(С)
 
 
Примечание...
В какой-то момент, лезвие перестало работать согласно заявленному и показанному.
Т.е. без какой-то явной причины связанной с правками меча (либо были внесены какие-то не очевидные правки которые привели к сбою).
Либо сказался глюк драйвера, либо нарушился порядок отрисовки объектов в сцене.
Отчего, этот метода (также) не оказался стабильным на 100%, хотя и показал наилучшие результаты (среди всех прочих тестов).
Учитывайте такую возможность (сбоя) при создании похожей модели.
*Возможно на ОпМВ с этим не будет проблем.
*Возможно зависит от версии драйвера видеокарты и модели оной.