×
Меню
Индекс

Texture projection and animation

Проецирование текстуры эффекта на какую-нибудь поверхность.
 
Собственно в прочих разделах об этом довольно сказано, но в качестве примечания выделим в отдельный раздел.
 
Берем прожектор FSpot  - применяем к нему текстуру, например скриншот некой игровой локации.
И регулируя положения прожектора в сцене - проецируем картинку на некую поверхность.
Поскольку используется текстура, то от положения прожектора будет зависеть только масштаб оной.
Т.е. не важно в каком режиме работает проекция Circle или Rectangle.
Редактируем Hotspot для точного размещения проекции и, собственно пока все.
 
Это из справки к МАХу, то что должно получиться.
 
 
Смотрим, что получилось!
В режиме Light
В режиме Энвиромент.
Не принципиально, растяжение будет во всех режимах.
 
Получилось как-то не важно, полосы портят впечатление.
Но, это поправимо!
Переходим в фотошоп:
Где, делаем небольшую рамку вокруг текстуры.
Для EFFECT_PROJECTED_LIGHT режима работы эффекта - белую. Т.к. белый цвет в этом слоте эффекта дает прозрачность.
Для EFFECT_ENVIRONMENT_MAP - черную. Здесь наоборот, черный = прозрачность.
 
И снова смотрим, что получилось!
LIGHT
ENVIRONMENT
Точно и аккуратно!
 
Такая "проекция" полностью неподвижна, не смотря на то, что это эффект.
Что позволяет делать проекции картин, или "видений" .
 
Примечание.
Рамку можно создавать при экспорте используя флаг в ДДС плагине.
 

Анимации...
 
Hrnchamd писал о том, как работает текстура зачарования в игре.
Enchanting adds a NiTextureEffect (dynamic texture effect)
It's applied with the "environment map" mode.
The NiTextureEffect texture is manually cycled by the engine.
Yeah, it needs a timer and checks to stop it cycling during pause.
NiTextureEffects aren't designed to have flip style textures. I think they expect you to use render targets for that stuff.
 
Как уже было показано, назначить непосредственно на эффект анимированную текстуру нельзя, однако, это можно обойти!
И такэ создать Кинотеатр в Нирне.
Правда, это потребует времени...
 
На самом деле, все весьма просто!
1. Создаем поток текстур, т.е. то что будет "кином".
2. Создаем проекцию, как было показано в начале этого параграфа, назначаем на его  Projector Map первый фрейм потока.
Фонарик, повернуть на 90* к поверхности объекта. Т.е. он покамест не должен светить на поверхность.
Полезно задать фонарику имя текстуры, дабы потом не путаться, где и какой фрейм на каком фонарике.
3. Клонируем фонарик!  Назначаем на его Projector Map следующий фрейм текстуры.
И так далее... Сколько текстур, столько и фонариков.
 
Теперь все, что остается это их анимировать!
Поскольку, эффект не может быть выключен, это приходится как-то обходить.
Самый просто способ, менять проекцию!
Т.е. просто повернуть фонарик относительно поверхности.
 
Будет удобно делать это сразу после клонирования и назначения текстуры.
 
Берем первый фонарик, в первом фрейме направляем его на поверхность, во втором фрейме, поворачиваем его в сторону.
Например вверх.
Поскольку поворот занимает всего 1 фрейм, то в игре это не будет заметно.
Точно также для второго фонарика.
Во втором фрейме он освещает поверхность, а в третьем повернут в сторону.
Берем третий... и дальше!
Вот тут потребуется выдержка и время, т.е. чем больше текстур, тем больше фонариков!
И каждый нужно правильно анимировать.
Последовательно сменяющие друг друга картинки.
В статике конечно не очень наглядно, но в динамике это выглядит весьма затейливо.
 
Вращаем фонарики, как кадры кинопленки!
 
 
Примечание.
Придел эффектов на поверхность 100.
Однако, это можно решить заменив поверхность. Посредством анимаций.
До 100го фрейма одна, а после 100го фрейма - другая.
Также можно использовать Light Include&Exlude tool - для указания, какие фонарики на кого светят.
Поскольку все это делается в 4-ом, или 5-ом МАХах, то поддержано создание всех эффектов и анимаций.
Для экспорта в 5-ом используйте ФФЕ модуль!
 
Примечание.
Это может работать только в режиме EFFECT_PROJECTED_LIGHT.
Другие режимы не поддерживают наложение нескольких текстур на одну поверхность..
Не забывайте,  EFFECT_PROJECTED_LIGHT требует светлых текстур и светлых поверхностей!
Впрочем если использовать белую текстуру эмитирующую экран, то можно пользовать и темные текстуры.
 
Примечание.
В каких-то случаях, можно прикрепить фонарики к другому объекту установив на нем флаг Billboard.
Это будет полезно при создании некоторых интерактивных эффектов.
 
Примечание.
Если задумаете сделать эффект трассировки луча в массиве частиц, не следует назначать текстуры "кинопленки" в качестве эффекта! Примените обычную текстуру с "пятном" света назначив ее на отдельный фонарик!
Используйте Light Include&Exlude tool для этого.
Можно попробовать просто двигать фонарик для получения эффекта воздействия луча проектора на частицы.
Также, полезно будет использовать модификатор изменения цвета частиц в зависимости от времени их жизни.
 
Совмещая проекцию текстуры со спрайтом...
Т.е. поместив эффект в Billboard ноду можно получить более интересные результаты.
В т.ч. создавать глаза всегда смотрящие за игроком с упрощенной геометрией объекта!
См. здесь. И здесь.
 
И да, это текстурный эффект в режиме проекции!
Что позволяет избавиться от проблемы вылезания глазных яблок из орбит.