Нужна помощь

22 сентября 2016 10:21 #12004
Тип персонажа из first person подходит, но там камера управляется мышкой с захватом браузером, а на сафари эта функция почему-то отказывается работать. Приходится грузить хром, а мышку я хотел бы оставить для нажатия на кнопки сайта, выделения отдельных объектов и т.д

есть решение для браузеров, не поддерживающих пойнтер лок. для них удобнее применять request_mouse_drag из аддона mouse.js
добавьте его заместо request_pointerlock в коде примера
Разработчик Blend4Web
22 сентября 2016 10:22 #12005
Роман, уточните, если мне сейчас для изучения API требуется понять сакральный смысл всех exports.init, init_cb, load(), load_cb(data_id, success) да и вообще как работает движок и зачем там инициализировать то или иное и почему именно в этой функции - где это можно посмотреть?
Может есть какая-нибудь наглядная структура работы движка, дорожная карта или как там это называют обычно?
Алексей
22 сентября 2016 10:32 #12006
есть решение для браузеров, не поддерживающих пойнтер лок. для них удобнее применять request_mouse_drag из аддона mouse.js
добавьте его заместо request_pointerlock в коде примера

Я просто хотел бы управлять персонажем не мышкой, а кнопками со стрелками, плюс wasd конечно для перемещения.
Алексей
22 сентября 2016 10:36 #12007
Роман, уточните, если мне сейчас для изучения API требуется понять сакральный смысл всех exports.init, init_cb, load(), load_cb(data_id, success) да и вообще как работает движок и зачем там инициализировать то или иное и почему именно в этой функции - где это можно посмотреть?
Может есть какая-нибудь наглядная структура работы движка, дорожная карта или как там это называют обычно?

Возможно, стоит нарисовать такую карту. Когда вы вызываете exports.init, идёт инициализация webglного контекста, если ваша система его поддерживает, то в init_cb передаётся флажок, говорящий, что всё хорошо. Такая схема сделана для того, чтобы вы могли вставить какой-нибудь фоллбэк для тех систем, которые не поддерживают webgl. Например, утешающую картинку. Далее, начинается загрузка. Загрузка занимает какое-то время, объекты сцены становятся доступны лишь после того, как они загрузятся. Поэтому и существует load_cb, куда вам следует разместить логику работы приложения, с этого момента сцена загружени и всё доступно
Разработчик Blend4Web
22 сентября 2016 10:40 #12008
Я просто хотел бы управлять персонажем не мышкой, а кнопками со стрелками, плюс wasd конечно для перемещения.

Перемещение персонажа вперёд-назад, вправо-влево можно посмотреть в этом уроке, для поворота персонажа вы можете использовать куски кода из аддона mouse.js:
function default_rotation_cb(rot_x, rot_y) {
    var character = m_scs.get_first_character();
    var camera    = m_scs.get_active_camera();
    m_cam.eye_rotate(camera, rot_x, rot_y);
    if (character) {
        var angles = m_cam.get_camera_angles_char(camera, _vec2_tmp);
        m_phy.set_character_rotation(character, angles[0], angles[1]);
    }
}

тут поворачивается камера и персонаж
Разработчик Blend4Web
23 сентября 2016 00:42 #12030
Доброе утро,

Есть необходимость запихнуть еще одного-двух-трех персонажей в игровой мир. Есть какой-нибудь пример скрипта для нескольких юзеров?
Алексей
23 сентября 2016 11:30 #12038
Приветствую!

В наших приложениях мы использовали только одного персонажа. Так что таких примеров пока привести не можем. Но в целом здесь не должно быть каких-то специфических проблем.

Нужно только помнить, что по-умолчанию при вызовe app.enable_camera_controls камера подвяжется к первому найденному персонажу с видом от первого лица, поэтому в случае с несколькими персонажами её не стоит использовать.

Я бы рекомендовал вам посмотреть, как организован самый первый урок по "Сказу о Пятигоре". Сам урок можно найти здесь. API в нём немного устарел, но логика управления персонажем не претерпела изменений.

Здесь персонаж управляется исключительно клавиатурой. Несколько персонажей будут контролироваться теми же самыми функциями из модуля physics
Разработчик Blend4Web
23 сентября 2016 20:48 #12049
Добрый вечер,

У многих с кем сейчас общаюсь на браузеры установлены какие-то дополнения - пунто свичеры и т.д., что мешает управлять клавиатурой. Есть какая-нибудь возможность все это отключать или запускать модель в отдельном js окне?
Алексей
26 сентября 2016 17:48 #12111
Добрый день.

Это странное поведение, поскольку события нажатия клавиши должны возникать всё равно. Не могли бы вы уточнить, на какой системе и с каким именно (хотя бы примерно) Punto Switcher'ом возникает проблема?
Разработчик Blend4Web
26 сентября 2016 17:50 #12112
Добрый вечер,

Подскажите, если у меня есть два импортированных модуля - один с create_sensor_manifold на управление кнопками, а другой с созданием двух кнопок в канвасе и переключением по нажатии на одну из них в режим enable_camera_controls, так вот при загрузке сцены она вся переключается в режим enable_camera_controls и при нажатии на disable_camera_controls обратно в ручной режим не переключается.

Насколько я понимаю, необходимо эту функцию загонять в функцию управления от кнопок, так как она сбивает настройки управления, переводя их на управление камерой, а дальше заново настройки ручного управления просто не инициируются, так?

Второй вопрос: как в консоли после того, как сцена загрузилась, получить доступ к модулям, чтобы вручную поковыряться с объектами? В настоящее время у меня большая часть переменных и модулей после загрузки сцены стали недоступны.
Алексей
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.