Форум

Анимация прозрачности объектов с одинаковым материалом в разное время

02 ноября 2016 13:06 #13263
Здравствуйте. У меня есть объёмный проект на BGE, который я хочу портитовать под Blend4web. В проекте объекты часто плавно исчезают и появляются в нужное время по таймлайну. В сцене как правило не одна сотня объектов и многие из них имеют одинаковый материал, при этом скрываться должна только часть из них. В BGE это реализовывалось так:
1) включение параметра Object Color во вкладке материалов
2)анимация альфы параметра Object color во вкладке объекта


Вопрос: как эту задачу наименьшей кровью можно решить в Blend4web не назначая на каждый объект отдельный материал?
02 ноября 2016 14:55 #13265
Вопрос: как эту задачу наименьшей кровью можно решить в Blend4web не назначая на каждый объект отдельный материал?
Какими средствами вы планируете пользоваться для изменения параметров материала: нодовой логикой или средствами API и написанием JavaScript кода?
Blend4Web и всё такое. Тридешу тридэ, моделю модели.
02 ноября 2016 15:02 #13266
Хотелось бы нодами)
02 ноября 2016 15:41 #13267
Хотелось бы нодами)
Именно плавно в данный момент можно только используя нодовые материалы использовав примерно такой сетап с нодой Value поданой в Alpha канал ноды Output. И в дальшейшем использовав ноду Set Shader Node Param изменять этот Value c 1 до 0. Нода Set Shader Node Param обращается к материалу через имя его объекта, поэтому прозрачность объекта будет изменена именно на этом объекте, а материал для всех объектов может быть один.


А с какой целью вам такой сетап? Может можно обойтись другими средствами? Например если нужно прятать объект по отдалении то можно воспользоваться настройкой LODов, или же Hide Show нодами. Дело в том что если вы измените прозрачность материала на объекте он всё еще будет рендерится на сцену, это снизит производитлеьность сцены.
Blend4Web и всё такое. Тридешу тридэ, моделю модели.
02 ноября 2016 16:25 #13271
Ну, допустим у нас есть интерактивное справочное приложение по демонтажу определенного оборудования. При нажатии на определенный элемент интерфейса начинается анимация: отвёртка откручивает крепеж, крепеж поэлементно вылетает с места крепления и исчезает. То есть исчезновение должно произойти в определенный момент времени относительно проигрываемой анимации. Круто если бы можно было бы анимировать параметр прозрачности в NLA, как в случае с object color.
02 ноября 2016 16:51 #13273
Круто если бы можно было бы анимировать параметр прозрачности в NLA, как в случае с object color.
Подготовил для вас пример как это лучше всего реализовать.
Первая нода Play Animation проигрывает экшн объекта, вторая экшн материала, далее нода Hide Object прячет объект что бы он не рендерился на сцене для оптимизации. Обращение идет через имя объекта поэтому на всех объектах можно использовать один и тот же материал.

bolt_example.blend
Blend4Web и всё такое. Тридешу тридэ, моделю модели.
02 ноября 2016 19:27 #13283
Большое спасибо за оперативную помощь
03 ноября 2016 12:43 #13309
Чтобы не плодить темы, спрошу здесь. Можно ли посредством нодовой логики округлить число с плавающей точкой до целого. Или если нет такой возможности, можно ли взять переменную, созданную в редакторе логики, преобразовать скриптом и вернуть значение обратно в редактор?
03 ноября 2016 12:59 #13310
Чтобы не плодить темы, спрошу здесь. Можно ли посредством нодовой логики округлить число с плавающей точкой до целого. Или если нет такой возможности, можно ли взять переменную, созданную в редакторе логики, преобразовать скриптом и вернуть значение обратно в редактор?
Здравствуйте!

Встроенной функции для округления в нодовой логике нет, через скрипт можно с помощью ноды JS_Callback.
На англоязычном форуме была тема по ее использованию: https://www.blend4web.com/en/forums/topic/1988/
Команда Blend4Web - разработчик
09 ноября 2016 12:22 #13644
Снова здравствуйте. Наткнулся на проблему сортировки прозрачных объектов. Не могу понять что делаю не так. Есть ли возможность это поправить?

 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.