Форум

Подсветка предметов

11 марта 2015 10:18
Подскажите, как можно реализовать вот такую задачу. Есть цельная модель(сарай с 6 окнами на боку). Этот сарай разбит на 2 части(левая и правая). Переход внутрь сарая реализован так: сделаны 2 модельки поменьше, что бы они не выпирали за текстуры сарая, они сделаны активными, а сам сарай нет, отлавливается клик на на этих(внутренних) объектах. Чтобы подсветить сторону сарая, на которую навели курсор мыши(события отлавливаются на внутренних объектах), было бы неплохо с эмитировать, например загорание света(окна стали желтого цвета). Для реализации надо делать анимацию или можно обойтись заменой материала? И вообще это реализуемо?
11 марта 2015 10:31
Можно поподробнее. Что это? Подразумевается, какая-то игровая логика? Что за переходы? Зачем сарай разбит на две части? Ну и пример в виде бленд-файла нужен. А то, три раза перечитал, так и не понял о чем речь идет.
Арт-директор
Группа разработки Blend4Web
https://www.blend4web.com/ru/author/43
11 марта 2015 10:53
Например есть многоквартирный дом и должна быть возможность зайти в каждую квартиру отдельно(квартира это отдельная сцена). Переход от сцены с домом в сцену квартиры реализован так: есть один объект(дом), внутрь него спрятаны объекты при клике на которые и происходит переход. Вот вопрос в том как подсветить часть модели дома в которой располагается квартира, при наведении на нее курсора.

P.S. К бленд файлу пока доступа нет.
11 марта 2015 11:41

Вот вопрос в том как подсветить часть модели дома в которой располагается квартира, при наведении на нее курсора
Добрый день. Можно сделать дом, состоящим из частей. Каждая часть будет подствечиваться при наведении мышкой на нее.
Можно сделать дом, состоящим из множетсва мелких кусков и программно вызывать glow-анимацию множетсва объектов, при каком-либо событии (как пример, наведение мышкой). Но в любом случае придется разбивать дом на куски
12 марта 2015 22:04
За ответы огромное всем спасибо, начал ковыряться дальше и нашел простенький вариант enable_mouse_hover_glow. Но возникла пара вопросов:
1) Можно ли поменять цвет подсветки?
2) Можно ли заставить объект не реагировать на наведение мыши? Например: 3 сундука все подсвечиваются. Один кликнули(посмотрели что внутри), больше этот сундук не подсвечивается.
13 марта 2015 10:16
Добрый день.
1) Можно ли поменять цвет подсветки?
Да, можно. Цвет подсветки задается в blend-файле в настройках на вкладке World (выделено зеленым).


2) Можно ли заставить объект не реагировать на наведение мыши? Например: 3 сундука все подсвечиваются. Один кликнули(посмотрели что внутри), больше этот сундук не подсвечивается.
Да, можно. Прикладываю к сообщению пример подобного функционала
14 марта 2015 18:01
Появилась необходимость по клику вначале фиксировать подсветку, а при повторном клике осуществлять действие.
.enable_mouse_hover_glow() делает это с помощью модуля сцен .set_glow_intensity(obj, value), а set_glow_intensity(obj, value) в свою очередь через .glow_intensity подскажите как можно вызвать .glow_intensity?
14 марта 2015 20:20
Здравствуйте

enable_mouse_hover_glow() нужна для того, чтобы подсвечивать объекты автоматически, при прохождении курсора мыши над ними (специфическая функция)

set_glow_intensity() это базовая функция для управления эффектом, поэтому вам нужна именно она. Включить и выключать эффект можно подавая value=1 и value=0 соответственно.

glow_intensity это не функция, а свойство внутреннего объекта движка, причём обращаться к нему непосредственно нельзя
Команда Blend4Web
https://twitter.com/AlexKowel
15 марта 2015 18:25
Александр, подскажите а как можно проверить какое значение имеет glow_intensity? После клика по объекту мне надо проверить 1) glow_intensity = 1(светится) ->переходим по ссылке, 2) glow_intensity = 0(не светится) -> set_glow_intensity(obj, 1), для всех остальных объектов сцены set_glow_intensity(obj, 0).
15 марта 2015 19:36
Ответ на сообщение пользователя CyberKatana
Александр, подскажите а как можно проверить какое значение имеет glow_intensity? После клика по объекту мне надо проверить 1) glow_intensity = 1(светится) ->переходим по ссылке, 2) glow_intensity = 0(не светится) -> set_glow_intensity(obj, 1), для всех остальных объектов сцены set_glow_intensity(obj, 0).

К сожалению, на данный момент функция get_glow_intensity() не реализована. Скорее всего, мы сделаем этот метод к следующему релизу в конце этого месяца, а пока, в качестве временного решения, вам потребуется сохранить состояние свечения в какой-нибудь дополнительной переменной, связанной с объектом.
Команда Blend4Web
https://twitter.com/AlexKowel
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.