Форум

На объекте пропадает эффект Outline

27 апреля 2018 15:55
Приветствую всех! Есть простая сценка. По клику на объекте, через редактор логики запускаем на нем эффект Outline http://prntscr.com/jatkml По клику на втором объекте, эффект Outline должен появиться на нем и исчезнуть на первом. Проблема заключается в том, что как только кликнуть в любом месте экрана, эффект Outline пропадает. Хотя должен постоянно мигать на выбранном объекте пока не будет выбран следующий. Прошу подсказки, как это исправить. Спасибо за ваши ответы!
28 апреля 2018 11:46
Не является ли "любое место экрана" тоже selectable-объектом? Не включены ли на объектах флажки "Outline on Select"?
Александр (команда Blend4Web)
twitter
28 апреля 2018 13:00
Других объектов со свойством selectable, кроме маленьких хотспотов нет. А если бы и были, то как они могут остановить эффект outline на выбранном объекте, если это свойство задано соответствующей нодой в редакторе логики? Кроме, собствено, эффекта outline, объекту назначается новый материал и этот материал остается на объекте, что в принципе правильно. Еще раз, эффект outline задан нодой в редакторе логики и должен оставаться на выбранном объекте до тех пор, пока не будет выбран другой. Но работает почему-то не так.
28 апреля 2018 13:12
Можно blend-файл с примером?
Александр (команда Blend4Web)
twitter
28 апреля 2018 13:32
Пример прикрепил.
28 апреля 2018 14:15
1) Приложение Viewer, которое открывается при нажатии на кнопку Fast Preview имеет некоторый функционал, связанный с аутлайном при выборе объектов.

При выключенном "Overview outlining mode" должно быть поведение как вы описывали. Но есть небольшой баг, который уже исправили.
2) Если вы экспортируете json в assets и запустите приложение, то будет корректное поведение, потому что не будет конфликтов с какой-то иной логикой, ведь приложение "чистое".
3) Поскольку у вас на панели "Selection and Outlining" значение Relapses нулевое, то аутлайн не прекратится пока его принудительно не остановить. Для этого я добавил соответствующие ноды.
4) Если вам нужно подсвечивать только выделенный объект, то проще использовать галочку "Outline on Select"
Прикрепил подправленный проект.
Александр (команда Blend4Web)
twitter
28 апреля 2018 14:31
В данном случае приложение будет публиковаться в единственный html файл. Ваш пример ведет себя так, как и мой. Сферу выбрал, outline включился, щелкнул на пустом пространстве экрана - outline пропал. Так не должно быть.
28 апреля 2018 15:23
Так в чем же причина пропадания эффекта outline от клика на пустом пространстве экрана, если он задан нодами?
04 мая 2018 16:16
Похоже на лишний код в плеере.
Временное решение - закомментировать две строчки в webplayer.js вот так:
function main_canvas_clicked(x, y) {
    var prev_obj = get_selected_object();

    // if (prev_obj && m_scs.outlining_is_enabled(prev_obj) )
    //     m_scs.clear_outline_anim(prev_obj);

    var obj = _pick(x, y);
    set_selected_object(obj);
}


Далее в менеджере проектов нажмите build project напротив проекта webplayer. После этого перезагрузите Blender и экспорт в html будет подхватывать пересобранный плеер.
Александр (команда Blend4Web)
twitter
05 мая 2018 11:55
Сделал как написали, опубликовал проект в файл html, в итоге ничего не видно, просто однотонная серая заливка.
Кнопка Fast Preview проект запускает, но outliner пропадает как и раньше. В движке есть два файла плеера http://prntscr.com/je0cra С каким из них работать? Указанные строчки закомментировал в обеих, сделал build проекта плеера, но после этого публикация в html перестала работать.
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.