Forum

User posts Roman Sementsov
27 September 2016 10:02
Доброго времени суток.


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

Я правильно вас понял, у вас есть два написанных вами модуля. В одном из них вы написали логику управления камерой клавишами клавиатуры, используя create_sensor_manifold. Так же вы создали два HTML-элемента, по клику на которые вызывается enable_camera_controls или disable_camera_controls. И работает это не правильно: клик на disable_camera_controls ломает логику управления, написанную через create_sensor_manifold

Вызов функции disable_camera_controls приводит к удалению служебных манифолдов со следующими именами:

"FORWARD", "BACKWARD", "ROT_UP", "ROT_DOWN",
            "ROT_LEFT", "ROT_RIGHT", "UP", "DOWN", "LEFT", "RIGHT",
            "MOUSE_WHEEL", "TOUCH_ZOOM", "ZOOM_INTERPOL", "MOUSE_X", "MOUSE_Y",
            "TOUCH_X", "TOUCH_Y", "ROT_TRANS_INTERPOL", "CHANGE_MOVE_STYLE"


Обратите внимание, может быть вы использовали для манифолда одно из этих имён?


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

Можно это осуществить через глобальный объект b4w:


Если у вас затруднения с использованием манифолдов, вы могли бы прислать ваш проект на саппорт почту. В таком случае получилось бы более продуктивное общение.
26 September 2016 17:48
Добрый день.

Это странное поведение, поскольку события нажатия клавиши должны возникать всё равно. Не могли бы вы уточнить, на какой системе и с каким именно (хотя бы примерно) Punto Switcher'ом возникает проблема?
26 September 2016 09:48
Будете что то новое показывать?

Нового ничего не показывали) просто общались
26 September 2016 09:46
Просмотрщик все сцены поворачивает на 90 градусов

Да, мы повернули систему координат на 90 градусов вокруг оси Х, чтобы система координат соответствовала блендеровской. Обратной совместимости не будет, поэтому для новой версии движка потребуется реекспорт сцены.

Там было много чего сделано еще и для оптимизации рендеринга.

Иными сломавами, мы всё сломали и собрали заново. Поэтому возможны баги, сейчас мы активно их исправляем
23 September 2016 09:48
Добрый день.

Я немного не в теме беседы, уж очень активно вы тут обсуждаете


ретье ( НА УСТРОЙСТВЕ)

На устройстве выявилось странное поведение вывода текстур на 3Д объекте
ОНИ ВЫВОДЯТСЯ ПОВЕРХ ВСЕХ ЭЛЕМЕНТОВ СЦЕНЫ !!!
даже поверх тех которые по факту сверху ! т.е. выводятся насквозь!
( хотя в браузере десктопном все було ок)

Можно узнать, какой девай вы имеете ввиду?


Error: WebGL: texImage2D: Incurred CPU-side conversion, which is very slow.b4w.min.js:572:53
Error: WebGL: texImage2D: Incurred CPU pixel conversion, which is very slow.b4w.min.js:572:53
Error: WebGL: texImage2D: Chosen format/type incurred an expensive reformat: 0x1908/0x1401b4w.min.js:572:53
Error: WebGL: texImage2D: Incurred CPU-side conversion, which is very slow.b4w.min.js:572:53
Error: WebGL: texImage2D: Incurred CPU pixel conversion, which is very slow.b4w.min.js:572:53
Error: WebGL: texImage2D: Chosen format/type incurred an expensive reformat: 0x1908/0x1401b4w.min.js:572:53
Error: WebGL: texImage2D: Incurred CPU-side conversion, which is very slow.b4w.min.js:572:53
Error: WebGL: texImage2D: Incurred CPU pixel conversion, which is very slow.b4w.min.js:572:53
Error: WebGL: texImage2D: Chosen format/type incurred an expensive reformat: 0x1908/0x1401b4w.min.js:572:53
Error: WebGL: texImage2D: Incurred CPU-side conversion, which is very slow.b4w.min.js:572:53
Error: WebGL: texImage2D: Incurred CPU pixel conversion, which is very slow.b4w.min.js:572:53
Error: WebGL: texImage2D: Chosen format/type incurred an expensive reformat: 0x1908/0x1401

Firefox?
B4W ERROR: apply_outline_anim(): wrong object

У объекта в блендере стоит галочка Outlining?
22 September 2016 11:08
Друзья, приглашаем вас на MIXAR2016!

http://mixar2016.ru/

Вход бесплатный, но лучше заранее зарегистрироваться.

Выставка будет проходить в эту субботу (24.09.2016), основная тема - 3D, Виртуальная и Дополненная реальность, Интерактивные технологии.
На выставке будут присутствовать члены нашей команды, можно будет пообщаться в неформальной обстановке. Ждём!
22 September 2016 10:40
Я просто хотел бы управлять персонажем не мышкой, а кнопками со стрелками, плюс 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]);
    }
}

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

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

есть решение для браузеров, не поддерживающих пойнтер лок. для них удобнее применять request_mouse_drag из аддона mouse.js
добавьте его заместо request_pointerlock в коде примера
22 September 2016 10:18
Подскажите, текстуры в каком каталоге лучше хранить в прожект менеджере, чтобы json экспортировался сразу с подходящими относительными ссылками, работающими также и после deploy?

там же где и все ассеты:

SDK/deploy/assets/PROJ_NAME/

project manager имеет опцию: Create Scene Starter Files, лучше её нажимать. Тогда он создат директорию для /blend-файла и директорию для ассетров (текстуры, json, bin файлы, всё это удобно хранить вместе) и положит туда json и bin файлы