Render.ru

анимация освещения

Сергей Купровский

Пользователь сайта
Рейтинг
2
#1
Вопрос таков: есть коридор, на стенах висят светильники, камера летит волб этого коридора и по мере ее движения эти лампы должны включаться. Проблема в том, что коридор довольно длинный и светильников много, по этому анимировать их вручну - очень долго. есть ли возможнось как-то этот процес автоматизировать, например создать вспомагательный обьект (пусть это будет куб) и заставить включаться только те ИС, которые попадают внутрь обьекта?
П.С. в инете ничыего толкового на эту тему нет(
 
Рейтинг
318
#2
1. фаллоф с дистанс бленд на цвет лампочек с жестким переходом
2. expression на яркость с дистансом до камеры
примерно так - if (distance $camera001) > 100 then 0 else 100500
 

Сергей Купровский

Пользователь сайта
Рейтинг
2
#3
можно по подробнее о втором пункте?
1. фаллоф с дистанс бленд на цвет лампочек с жестким переходом
2. expression на яркость с дистансом до камеры
примерно так - if (distance $camera001) > 100 then 0 else 100500
Можно по подробнее о втором пункте?
 

igorznag

Мастер
Рейтинг
103
#4
Можно по подробнее о втором пункте?
Пример:
В новой сцене создаем одну сферу-sphere и несколько обычных светильников-light Omni.
Выделяем сферу и светильники. Запускаем скрипт. В новом окне нажимаем кнопку Apply.
Перемещаем сферу. Делаем Render. Светильники внутри сферы автоматически включаются.
Код:
rollout test "Test" (button apply "Apply"; on apply pressed do 
(lights_a=#(); sphere_a=#(); for o in selection do
(if superclassof o==light and  isproperty o "multiplier" then append lights_a o;
if classof o==Sphere then append sphere_a o)
if lights_a.count>0 and sphere_a.count==1 then
(for i=1 to lights_a.count do 
(lights_a[i].multiplier.controller=float_script();c=lights_a[i].multiplier.controller
c.AddObject ("igorznag_sphere") sphere_a[1]
str="a=0;try (animate off( refsArray = (refs.dependents this)"; str+="\n" 
str+="for i in refsArray where isvalidnode i do";str+="\n" 
str+="if distance igorznag_sphere.pos i.pos < igorznag_sphere.radius then a=1 else a=0";str+="\n" 
str+=")) catch a=0; a";str+="\n"; c.script=str; redrawViews();
)))); createdialog test
Чтобы запустить скрипт нужно:
1. Создаем текстовый файл (NotePad) и копируем код (текст) скрипта.
2. Сохраняем текстовый файл с названием "test.ms"
3. В главное меню MaxScript выбираем пункт Run Script. Выбираем файл "test.ms"
 
Рейтинг
82
#8
Его не видно при рендере .А геометрию придётся дополнительно "исключать" из светильников и визуализации т.е. дополнительно поработать мышкой.
 

Deruz

Мастер
Рейтинг
96
#9
Я как-то делал нечто подобное. Не светильники, но принципиально то же самое.
А тут как в той поговорке, мол, любой программист потратит два часа на написание скрипта, который за пять секунд сделает получасовую работу.

Т.е. ты бы вручную быстрее сделал, чем постить тут, и ждать ответ.

Для просмотра анимации - нажать на картинку.

Здесь анимирован параметр Visibiliti
 

Вложения

Deruz

Мастер
Рейтинг
96
#11
Да, и при том я полагаю что тут мне пришлось много больше "париться" нежели это требуется в сцене со светильниками. :)
 

igorznag

Мастер
Рейтинг
103
#12
Да, и при том я полагаю что тут мне пришлось много больше "париться" нежели это требуется в сцене со светильниками.
Почему больше "париться"?
Здесь анимирован параметр Visibiliti
Скрипт VGAnimVisibility немного уменьшает ручную работу.
 
Рейтинг
82
#13
Так тебе хорошо igorznag -владеешь "писательскими" талантами.А нам-то, что делать ?!Вроде приходит иногда мысль, какая, по оптимизации работы в "максе", да как бы её осуществить?
 

Deruz

Мастер
Рейтинг
96
#14
Понятное дело что скриптом всё быстрее делается, но я в этом ноль и показал как вручную быстрее сделать.
В Максе, кстати, есть листенер, который записывает в скрипт выполняемые действия, правда я его юзал только просто чтоб посмотреть.
А где его применить для дела я и придумать не могу. :)
 
Рейтинг
82
#15
Так урок авто писал - Вот его и надо было через "листнер" пропустить!!!!Сейчас был бы скрипт весом приблизительно такой же как и видео.Зато, раз.....и готовый "авто". :p
 
Рейтинг
82
#19
Да! И в нашей специальности есть свои прикольные моменты-никто другой бы этого не понял.Я рад ,что поднял немного настроение.Скрипт один ищу для создания стереографического изображения(для анаглифа).Ни кто ,случаем,не встречал?
 

Deruz

Мастер
Рейтинг
96
#20
Тут посмотри.
http://www.render.ru/forum/viewtopic.php?post_id=820283

И, кстати, точно не помню, но вроде в 2014 Максе встречал стерео камеру. Или это в Вирее было - не помню, но видел где-то.
 
Сверху