Форум

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

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

Вроде подходящего лимита предусмотренного движком для данной ситуации нет.
Нет, можно только вообще отключить перетаскивание галочкой "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);
}
29 декабря 2015 14:55

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

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

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

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