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 штуки.
В принципе все!
Увы, на практике, оные эффекты не хотят вести себя ровно и пристойно.
Возможно проблема в неправильной точке опоры оных отчего проекция постоянно соскальзывает.
Или в каком ином моменте, например влияние контроллеров анимации скелета.
есть мнение что голова поворачивается к игроку и эффект теряет правильное положение либо соскальзывает.
не уверен в чем и где проблема.
на активаторах это работает, но вот на существах и собственно головах нпс возникали проблемы.
эффект, в правильной проекции, появлялся, иной раз, только при нажатии меню...
|
|
|
Собственно артефакты смещения проекции.
|
|
на голове отдельно от тела, артефакты наблюдаются также, но (вродебы) не так сильно.
|