×
Menu

Heads with billboard eyes via decal map and texture effect

Первым делом см. эту тему.
Общая теория и детали.
 
Теоретически, описываемый в этой заметке метод, является самым перспективным и оптимизированным.
Но на практике, получить стабильную проекцию текстуры, на голове, оказалось затруднительно.
Т.е. метод работает, да.
Но вот проекция текстура ведет себя не стабильно.
Возможно, это (когда-нибудь) получится отладить и найти правильные настройки для стабильной работы.
На активаторах и статиках это работает стабильно, но вот на головых НПС и животных (на паре кошек было проверено(С) этот метод показывал некоторую нестабильность.
 
Основное отличие от этого метода, использования одних текстур, без добавления каких либо новых шейпов.
Т.е. метод позволяет максимально оптимизировать модель, сокращая кол-во шейпов до минимума.
Также, данный метод, не позволяет использовать другие текстурные эффекты.
Т.е. добавить еще больше блеска глазам, не получиться.
Но только сделать проекцию глазного яблока.

Основа метода такова:
- взять голову НПС из Бетер Хеадз плагина и посмотреть какая в ней использована текстура.
- загрузить текстуру в фотошоп.
Где, закрасить глаза белым цветом, это нужно для лучше работы текстурного эффекта.
И сохранить под другим именем.
- не закрывая текстуры, добавить в нее альфа канал.
В котором, закрасить глаза черным.
Т.е. только область глаз в альфа канале должны быть черной, все остальное белое.
Сохранить под другим именем, с пометкой, что это DC - decal текстура!
Итого, получится две новых текстуры.
Одна с белыми глазами и без альфа канала, другая с альфа каналом, где область глаз означена черным.
Декаль с включенной альфой и базовая текстура с белыми глазами.
 
Переходим в нифскоп.
- меняем голове базовую текстуру на новую.
- добавляем слот декали.
 
Теперь добавляем новую билборд ноду.
В которую добавляем текстурный эффект в режиме лайч.
В качестве текстуры указываем текстуру глаза.
 
*надо проверять включение плоскости отсечения (clipping plane) это может оказывать заметное влияние на поведение эффектов.
*по умолчанию, оставить выключенной.
*как вариант - использовать 3д редактор для получения нужной конструкции нод.
Т.е. будет достаточно скопировать полученные из МАХа ноды и вставить в этот файл.
 
Далее, помещаем эту ноду в состав обычной ноды.
NiBillboardnode->attach parent node->ninode
Полученную ноду перемещаем в зону глаза (левого например).
Назовем ее L+ea (к примеру).
Т.е. размещаем ее по центру глаза, но внутри сетки головы.
Примерно так:
Собственно это и будет является точкой проекции текстуры.
 
И снова:
Ninode->attach parent node->ninode
Т.е. пакуем эту ноду еще в одну ноду!
Назовем эту ноду Effect.
 
А теперь, копируем ту первую ноду и вставляем!
Назовем ее R+ea (к примеру).
Т.е. получаем такую систему.
- верхняя нода содержит две обычных ноды, внутри которых лежат Билборд ноды содержащие эффекты.
 
Возвращаем к R+ea ноде и помещаем ее напротив правого глаза.
Достаточно будет сменить значение Х.
С -1.7862 на 1.7862.
 
И последний штрих!
Переходим в настройки корневой ноды (niNode0)
где в разделе эффектов указываем номера текстурных эффектов.
Здесь их 2 штуки.
 
 
В принципе все!
Голова получила текстурные эффекты, которые будут маскироваться картой декалей и отображаться только на зоне глаз.
Увы, на практике, оные эффекты не хотят вести себя ровно и пристойно.
Возможно проблема в неправильной точке опоры оных отчего проекция постоянно соскальзывает.
Или в каком ином моменте, например влияние контроллеров анимации скелета.

есть мнение что голова поворачивается к игроку и эффект теряет правильное положение либо соскальзывает.
не уверен в чем и где проблема.
на активаторах это работает, но вот на существах и собственно головах нпс возникали проблемы.
эффект, в правильной проекции, появлялся, иной раз, только при нажатии меню...
 
Собственно артефакты смещения проекции.
 
на голове отдельно от тела, артефакты наблюдаются также, но (вродебы) не так сильно.