1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

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

Тема в разделе "Анимация", создана пользователем Сергей Купровский, 24 янв 2014.

Модераторы: Артер
  1. Сергей Купровский

    Сергей Купровский Пользователь сайта

    С нами с:
    31.12.2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    2
    Вопрос таков: есть коридор, на стенах висят светильники, камера летит волб этого коридора и по мере ее движения эти лампы должны включаться. Проблема в том, что коридор довольно длинный и светильников много, по этому анимировать их вручну - очень долго. есть ли возможнось как-то этот процес автоматизировать, например создать вспомагательный обьект (пусть это будет куб) и заставить включаться только те ИС, которые попадают внутрь обьекта?
    П.С. в инете ничыего толкового на эту тему нет(
     
  2. Boris Kulagin

    Boris Kulagin Мастер

    С нами с:
    01.08.2000
    Сообщения:
    1.400
    Симпатии:
    130
    Баллы:
    232
    1. фаллоф с дистанс бленд на цвет лампочек с жестким переходом
    2. expression на яркость с дистансом до камеры
    примерно так - if (distance $camera001) > 100 then 0 else 100500
     
  3. Сергей Купровский

    Сергей Купровский Пользователь сайта

    С нами с:
    31.12.2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    2
    можно по подробнее о втором пункте?
    Можно по подробнее о втором пункте?
     
  4. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Пример:
    В новой сцене создаем одну сферу-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"
     
  5. Сергей Купровский

    Сергей Купровский Пользователь сайта

    С нами с:
    31.12.2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    2
    Спасибо! Нужно учить програмирование)
     
  6. diwian diwian

    diwian diwian Мастер

    С нами с:
    05.06.2010
    Сообщения:
    4.742
    Симпатии:
    74
    Баллы:
    83
    Так может в место sphere лучше "атмосферик" какой нибудь поставить?!
     
  7. Сергей Купровский

    Сергей Купровский Пользователь сайта

    С нами с:
    31.12.2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    2
    чем именно лучше?
     
  8. diwian diwian

    diwian diwian Мастер

    С нами с:
    05.06.2010
    Сообщения:
    4.742
    Симпатии:
    74
    Баллы:
    83
    Его не видно при рендере .А геометрию придётся дополнительно "исключать" из светильников и визуализации т.е. дополнительно поработать мышкой.
     
  9. Deruz

    Deruz Знаток

    С нами с:
    06.10.2008
    Сообщения:
    2.070
    Симпатии:
    46
    Баллы:
    77
    Я как-то делал нечто подобное. Не светильники, но принципиально то же самое.
    А тут как в той поговорке, мол, любой программист потратит два часа на написание скрипта, который за пять секунд сделает получасовую работу.

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

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

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

    Вложения:

    • 3274130.jpg
      3274130.jpg
      Размер файла:
      74,4 КБ
      Просмотров:
      54
  10. diwian diwian

    diwian diwian Мастер

    С нами с:
    05.06.2010
    Сообщения:
    4.742
    Симпатии:
    74
    Баллы:
    83
    Да, к стати а почему бы и нет! А главное практически "за пять секунд".Молодец Deruz.
     
  11. Deruz

    Deruz Знаток

    С нами с:
    06.10.2008
    Сообщения:
    2.070
    Симпатии:
    46
    Баллы:
    77
    Да, и при том я полагаю что тут мне пришлось много больше "париться" нежели это требуется в сцене со светильниками. :)
     
  12. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Почему больше "париться"?
    Скрипт VGAnimVisibility немного уменьшает ручную работу.
     
  13. diwian diwian

    diwian diwian Мастер

    С нами с:
    05.06.2010
    Сообщения:
    4.742
    Симпатии:
    74
    Баллы:
    83
    Так тебе хорошо igorznag -владеешь "писательскими" талантами.А нам-то, что делать ?!Вроде приходит иногда мысль, какая, по оптимизации работы в "максе", да как бы её осуществить?
     
  14. Deruz

    Deruz Знаток

    С нами с:
    06.10.2008
    Сообщения:
    2.070
    Симпатии:
    46
    Баллы:
    77
    Понятное дело что скриптом всё быстрее делается, но я в этом ноль и показал как вручную быстрее сделать.
    В Максе, кстати, есть листенер, который записывает в скрипт выполняемые действия, правда я его юзал только просто чтоб посмотреть.
    А где его применить для дела я и придумать не могу. :)
     
  15. diwian diwian

    diwian diwian Мастер

    С нами с:
    05.06.2010
    Сообщения:
    4.742
    Симпатии:
    74
    Баллы:
    83
    Так урок авто писал - Вот его и надо было через "листнер" пропустить!!!!Сейчас был бы скрипт весом приблизительно такой же как и видео.Зато, раз.....и готовый "авто". :p
     
  16. Deruz

    Deruz Знаток

    С нами с:
    06.10.2008
    Сообщения:
    2.070
    Симпатии:
    46
    Баллы:
    77
    Да, прикольно. Может сам свою идею опробуешь? :p
     
  17. diwian diwian

    diwian diwian Мастер

    С нами с:
    05.06.2010
    Сообщения:
    4.742
    Симпатии:
    74
    Баллы:
    83
    Терпенья не хватит.
     
  18. Deruz

    Deruz Знаток

    С нами с:
    06.10.2008
    Сообщения:
    2.070
    Симпатии:
    46
    Баллы:
    77
    А-а-а-аааа... я чёт сразу как-то смысл пропустил.

    А сейчас прочитал - хохотал до слёз аж щёки болят... ну, блин, отмочил!
     
  19. diwian diwian

    diwian diwian Мастер

    С нами с:
    05.06.2010
    Сообщения:
    4.742
    Симпатии:
    74
    Баллы:
    83
    Да! И в нашей специальности есть свои прикольные моменты-никто другой бы этого не понял.Я рад ,что поднял немного настроение.Скрипт один ищу для создания стереографического изображения(для анаглифа).Ни кто ,случаем,не встречал?
     
  20. Deruz

    Deruz Знаток

    С нами с:
    06.10.2008
    Сообщения:
    2.070
    Симпатии:
    46
    Баллы:
    77
    Тут посмотри.
    http://www.render.ru/forum/viewtopic.php?post_id=820283

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

Поделиться этой страницей