Форум

Лимиты на перемещение камеры Transform внутри сцены

28 декабря 2015 15:45 #6140
в SDK есть пример с лого. Это который тут на сайте
:\blend4web_sdk_free\blender\website\logo_3d\logo_3d_horizontal.blend
Дорогу осилит идущий
29 декабря 2015 10:55 #6150

Вроде подходящего лимита предусмотренного движком для данной ситуации нет.
Нет, можно только вообще отключить перетаскивание галочкой "Use Panning Mode".

Поведение камеры можно изменить, используя систему сенсоров. После загрузки приложения, например, в load_cb() можно создать сенсорное множество на камере, которое регистрирует колбэк limit_cam_cb - в нем можно поменять позицию камеры непосредственно перед рендерингом:

var m_ctl  = require("controls");
var m_scenes  = require("scenes");

function limit_cam_cb(cam, id, pulse) {
    ...
}

function load_cb(data_id, success) {
    var elapsed = m_ctl.create_elapsed_sensor();
    var cam = m_scenes.get_active_camera();
    m_ctl.create_sensor_manifold(cam, "MANIFOLD_NAME", m_ctl.CT_CONTINUOUS,
                [elapsed], null, limit_cam_cb);
}
Команда Blend4Web
29 декабря 2015 14:55 #6152

Поведение камеры можно изменить, используя систему сенсоров. После загрузки приложения, например, в load_cb() можно создать сенсорное множество на камере, которое регистрирует колбэк limit_cam_cb - в нем можно поменять позицию камеры непосредственно перед рендерингом:

А как это будет работать? Когда камера будет покидать определённую область сработает колбек, который вернёт предыдущие координаты камеры, так ?
29 декабря 2015 15:16 #6153
А как это будет работать? Когда камера будет покидать определённую область сработает колбек, который вернёт предыдущие координаты камеры, так ?
Ну, в данном случае сенсор простой - он вызывает колбэк каждый кадр. В нем можно проверить текущие координаты камеры и подвинуть, если нужно. А так можно задавать и более сложную логику вызова колбэка.

Вообще, для подобных действий больше бы подошёл метод set_render_callback() - просто добавляем колбэк перед рендерингом и делаем в нем - что хотим. Это проще, чем разбираться в системе сенсоров. Но сейчас он в некоторых случаях некорректно работает - нам уже жаловались: https://www.blend4web.com/ru/forums/topic/992/. Этот баг мы пофиксим в январском релизе. А вообще, мы планируем поработать с камерой на предмет API для изменения/наследования поведения камеры определённого типа.

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