×
Меню
Индекс

Heads with billboard eyes via texture effect

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

- Импортируем в МАХ одну из голов!
Не важно, какую.
- Сразу делаем с нее копии, дабы затем обновить анимации морфинга. О чем см. раздел анимации голов.
- Теперь выделив полигоны с текстурой глаз, detach-им их в режиме нового объекта! Т.е. оригинальный полигон можно и сохранить...
- Затем еще раз, применяем detach уже на новом объекте.
Чтобы получить два участка. Это важно.
Глаза должны быть раздельными.
Левый и правый.
Необходимо накладывать свой собственный эффект на каждый из глаз.
Т.к. текстурный эффект в режиме EFFECT_PROJECTED_LIGHT лучше работает в "одиночестве".
Да, этот режим покажет лучший результат.
Он и будет установлен здесь по умолчанию.
 
Также, удаляем текстуры с глаз!
т.е. назначаем им пустой материал.
Т.к. текстурный эффект полностью перекроет собой поверхность и будет выглядеть как обычная текстура.
 
Это рекомендуется сделать!
Т.е. не накладывать на "глаза" обычную текстуру.
Что позволяет эффекту работать более чисто.
 
И возвращаемся на уровень выделения исходных полигонов!
Смещаем их немного назад, т.е. так чтобы они не пересекались с новыми элементами, которые были созданы на их основе.
Этот вариант немного упростит настройку головы в целом.
 
- Теперь клонируем их!
Т.е. создаем еще копии с уже ранее отделенных от головы полигонов.
И двигаем вперед относительно головы.
Т.е. создаем вспомогательные элементы, которые будут нужны для правильной работы эффекта.
 
- Применяем, на глазах, reset X-form и Align to world с точкой опоры в центре.
Выровнять все объекты очень важно!
 
Точки опоры должны быть по их центру!
Но не по нулевым координатам мира.
Это будет влияет на работу эффекта в т.ч.
 
И "вспомогательные глаза" и основные поверхности глаз на которые будет проецироваться эффект.
Все должны иметь точки опоры по центру.
Иначе в игре может начаться "болтанка" эффекта, или он будет "слишком" чувствителен к смещению камеры.
Или вовсе перестанет реагировать на смещение камеры!
 
- И применяем к копиям max properties, см. выше.
Т.е. каждый вспомогательный глаз должен иметь свойства:
 
Т.е. базовые поверхности глаз остаются обычными шейпами.
А их копии помечаются для использования в БилБорд нодах.
Именно они и будут отвечать за наложение и работу текстурного эффекта.
 
- Теперь, добавляем в сцену фонарик и выравниваем его по одной из копий глаза.
Т.е. точки опоры в центре.
Назначаем ему текстуру на слот прожектора, линкуем к одному из "вспомогательных" глаз и пр. см. описание в разделах выше..
 
- создаем (не клонируем!) второй фонарик и поместив рядом со вторым "глазом" линкуем уже к нему.
 
Клонирование "фонариков" как ни странно, может приводить к проблемам.
Лучше всякий раз создавать новый фонарик.
 
- Остается назначить освещение фонариками "основным" глазам.
Левому левый фонарик, правому правый. Да, через меню Light Incl\Exl.
 
Поворачивать фонарики в сторону глаз, не следует.
Т.к. Билборд внесет свои коррективы и выставит их в правильное положение.
 
- И помещаем, вспомогательные глаза, в ту точку, откуда эффект будет проецироваться на поверхность глаз!
 
Т.к. положение фонарика отвечает за начало проекции эффекта.
(о чем ниже еще будет пара слов)
(возможно было бы правильнее сразу настроить проекцию, но через нифскоп это выглядит удобнее)
Проекцию можно менять непосредственно в МАХе, так и через настройку положения эффекта (или его родительской ноды) в Нифскопе.
Что предпочтительнее.
 
Эти элементы следует задвигать ЗА сетку головы!
Т.к. это даст лучшую точку проекции текстуры.
Помещение фонарике (всей ноды) перед сеткой, как ни странно, дает худший результат.
 
Проекцию эффекта можно корректировать и в МАХе.
Достаточно вызвать быстрый рендеринг по F9, чтобы увидеть изменения.
(влияет положение источника света относительно поверхности)
(а также параметры Hotspot&Falloff)
Однако, редактирование положения проекции в нифскопе, может оказаться более точным и удобным, т.к. показывает результат сразу в редакторе.
 
Однако!
Перед экспортом, следует повернуть фонарик лучом вниз!
Т.к. билборд нода, внесет свои коррективы в его поворот.
Т.е. значения поворота фонарика должны быть равны 0 0 0.

Также!
Не следует двигать сам фонарик, но тот объект к которому он был присоединен.
- Остается экспортировать полученный результат без морфинга, но с эффектами, через ТЕС экспортер.
- Затем обновив морфинг экспортировать голову через Нифтулз.
- И собрать все это в нифскопе в один файл.
 
Глаза могут иметь морфинг, а можно попробовать обойтись и без оного.
Оставив анимации только на сетки головы.
Т.е. если не detach-ить глаза от головы, но удалив все прочие полигоны, можно попробовать сохранить морфинг...
 
Если использовался МАХ4 или morpher.dlu был заменен для 5го, можно все сразу, через ТЕС экспортер.
И эффект и обновленный морфинг.
 
Т.е. сначала получаем модель с эффектами, но без анимации.
А потом создаем модель с анимациями, но без эффектов, через Нифтулз.
И далее совмещаем их через Нифскоп.
Копируя шейпы между файлами.
 
 
Теперь все что останется, подправить положение эффекта на зрачках, в нифскопе.
Если полученный из МАХа результат не получился как следует.
 
Вероятнее всего, будет достаточно поправить translation Z в настройках текстурного эффекта. По крайней мере в данном случае было именно так.
 
Либо подвигать сами ноды в которые были помещены эффекты.
Т.е. можно смещать точку проекции, как через настройку текстурного эффекта.
так и положением его родительской ноды.
Как было показано, текстурные эффекты это подкласс niNode и как следствие, имеют одинаковый стек настроек (положения в сцене).
 
Билбордную ноду, лучше не трогать!
Пускай все ее координаты будут = 0 0 0.
И translation и rotation.
На крайний случай, достаточно будет упаковать ее в обычную ноду.
И передвигать уже эту ноду.
Но не текстурный эффект и не билборд ноду.
 
 
Либо вот так.
Полностью настроенная голова НПС.
С дополнительными нодами.
Финальный вид ниф файла головы.
Глаза и их Спрайтовые ноды идут отдельно.
А сам шейп головы в корне файла.
 
Дополнительно можно накинуть (на глаза) остальные текстурные эффекты.
 
Собственно данный метод позволяет обойти проблему "вылезания" из орбит сферических глаз, особенно если глазная щель узкая и не располагает к размещению за ней сферы.
 
И как видно (в игре) при любой проекции камеры, глаза не вылезают из орбит.
Как они делают в случае использования "физического" объекта.
 
Если отключить нормали в настройках шейпдаты, можно дополнительно затенить глаз.
 
На правом глазу есть текстурные свойства!
Т.е. в наличие базовая текстура.
Что негативно сказалось на отображении эффекта.
Однако, полезно помнить, что текстурным эффектом в режиме LIGHT
можно дополнительно управлять посредством DECAL карты.
 
Поверхности глаз без текстурных свойств!
Оба глаза отображаются нормально.
Этот метод работает и для существ!
При этом, можно копировать настроенный эффект из одного файла (например головы) в другие.
 
Хотя, здесь всплыл один странный момент... может быть случайный глюк конечно был.
Если билборд нода с текстурным эффектом не имела шейпа в своем составе, эффект отказывался реагировать на смещение камеры!
Т.е. если в файле головы, шейп был удален, то в файле существа его наличие оказалось необходимым.
Однако, шейп может быть скрытым это никак не повлияет на работу спрайта.
- дополнительный шейп понадобившийся для правильной реакции эффекта на положение камеры.
 
Зеленый квадратик в правом глазу, тот самый дополнительный шейп. (показан в тестовых целях)
И глаз нормально реагирует на смещение камеры.
Эффект на левом глазу, не получил этого шейпа и никак не реагирует на смещение камеры*.
*это может быть не совсем точно.
*есть мнение, что с головами НПС это не работает в полной мере.