Форум

Сброс положения камеры и логика плеера

16 августа 2016 11:57 #11258
Здравствуйте.

Ситуация такая.
С помощью объекта, нодов-логики и пару "пустышек" легко сделать "сброс камеры в начальное положение".

Но, в плеере есть такая замечательная кнопка "ротация". То есть, если человек нажмёт авто-ротацию, то "кнопка сброса положения камеры" конечно будет работать, но и поворот камеры не прекратится.

Что-то в нодах-логики нет ничего похожего, чтобы остановить это вращение. (А было-бы неплохо)

Напрашивается js callback ? Правильно понимаю, что надо писать внешний сценарий?

Спасибо.
16 августа 2016 14:26 #11262
Добрый день.

Web Player - это тоже приложение со своей собственной логикой, которую совсем выключить не получится. Нужно понимать, какой итоговый результат вы хотите получить.

Если вам нужен весь интерфейс Web Player, и не хочется мириться с auto-rotate, то в любом случае придется написать несколько строчек кода, убрав из приложения этот функционал авто-поворота и пересобрав Web Player.

Если же интерфейс вас не волнует, то вы можете просто создать приложение пустышку через Project Manager. В этом случае вы получите "голое" приложение, которое только подключает возможность управления камерой, что тоже можно отключить, убрав строку:
m_app.enable_camera_controls();
Разработчик Blend4Web
16 августа 2016 14:51 #11263
Ответ на сообщение пользователя Евгений Родыгин
Добрый день.

Web Player - это тоже приложение со своей собственной логикой, которую совсем выключить не получится. Нужно понимать, какой итоговый результат вы хотите получить.
гм…

Я не против авто-поворота. Это даже удобно, кликнул и моделька вращается. Пусть будет!

Суть в том, что хочу изменить одни модели на другие, но предварительно выключив авторотацию и вернуть камеру в "нулевое положение".

В логике нодов: Еntry Point - Switch Select - Move Camera , не хватает Еntry Point - Switch Select - webpleer (autorotation - stop) - Move Camera.

Можно-ли вместо несуществуещего "webpleer" воспользоваться нодой " js callback" и… если можно примерным кодом.
16 августа 2016 18:10 #11272
Можно-ли вместо несуществуещего "webpleer" воспользоваться нодой " js callback" и… если можно примерным кодом.
Для использования ноды js callback нужно так или иначе иметь кастомное приложение. Использовать её в стандартном Web Player-е не получится. То есть, в вашем случае необходимо изменить приложение лежащее в папке: apps_dev/webplayer/webplayer.js, добавив нём вызов функции append_custom_callback. Сделать это нужно до инициализации движка, перед вызовом m_app.init(). Выглядеть это будет примерно так:
m_logic_nodes = require("logic_nodes"); // этот модуль необходимо подключить

function custom_cb() { // ваш коллбэк
    m_camera_anim.stop_cam_rotating();
}

exports.init = function() { // эта функция уже объявлена в Web Player
...
m_logic_nodes.append_custom_callback(1, custom_cb) // вы сможете обращаться к коллбэку по id = 1

m_app.init(....
...
}


После этого вам нужно будет пересобрать Web Player через Project Manager.
Разработчик Blend4Web
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.