Нужна помощь

11 ноября 2016 13:08 #13755
Решил убрать захват мышки канвасом и сделать обзор курсором. Все получилось и работает, но возникает вопрос относительно способа сихронизации поворота камеры и чарактера. Способ, когда с объекта камеры берутся данные и прилепливаются к чарактеру прост и ясен, но если мне нужно развернуть чарактера кнопками, то как мне параметры углов с чарактера снять?
А как это должно выглядеть? Можно кнопками разворачивать камеру, и при этом чарактер просто синхронизировать точно так же с неё. Или нужно наоборот - обновлять камеру с чарактера? Вроде разницы особой нет, если они сразу же синхронизируются, можно тогда 1-м способом делать. Стандартно у нас все управление через камеру идет.
Команда Blend4Web
11 ноября 2016 14:09 #13759
Друзья, Вы ответите насчет ошибки в консоли, которая отключает uranium и все коллизион вместе с ним? А то я планирую в выходные мощно поработать.
Алексей
11 ноября 2016 14:34 #13761
Ошибка, вылетающая при включении физики на всех материалах связана с тем, что физическому движку недостаточно памяти для такого объема геометрии. В вашей сцене более 600000 вершин. Обычно для физики создают гораздо более простой меш и отключают на нём рендеринг. Так например сделано в этом уроке.
Вам же не нужно, чтобы персонаж натыкался на каждую палочку в заборе?
Разработчик Blend4Web
11 ноября 2016 14:48 #13762
А в применении к перемещению персонажа и повороту камеры континиус работает во всех случаях и обеспечивает плавное перемещение при помощи клавиш, а триггер плавно работает только по перемещению персонажа, а для поворота камеры необходмо отжать и нажать клавишу заново. Я для себя хочу понять: во всех случаях в функцию передаётся дельта значения относительно текущих значений, но камера останавливается, а персонаж перемещается при триггере…
Тут дело не в сенсорах и типах, а в специфике перемещения персонажа. Если ему движение задавать через set_character_move_dir, то он так и будет двигаться, пока его тем же методом не обнулить. Поэтому здесь и триггер сработает.
Команда Blend4Web
11 ноября 2016 15:46 #13767
Ответ на сообщение пользователя Евгений Родыгин
Ошибка, вылетающая при включении физики на всех материалах связана с тем, что физическому движку недостаточно памяти для такого объема геометрии. В вашей сцене более 600000 вершин. Обычно для физики создают гораздо более простой меш и отключают на нём рендеринг. Так например сделано в этом уроке.
Вам же не нужно, чтобы персонаж натыкался на каждую палочку в заборе?

Полностью согласен, не нужно. Но я хотел бы максимально упростить процесс. В мыслях рисуется копия всего, потом объединение, потом применение модификатора, чтобы упростить до коробки и нескольких кубиков. Может какие-либо еще варианты есть, чтобы не ручками это делать, а отдать десятью строчками кода на просчет железякам?
Алексей
11 ноября 2016 18:16 #13775
Ответ на сообщение пользователя stilist
Полностью согласен, не нужно. Но я хотел бы максимально упростить процесс. В мыслях рисуется копия всего, потом объединение, потом применение модификатора, чтобы упростить до коробки и нескольких кубиков. Может какие-либо еще варианты есть, чтобы не ручками это делать, а отдать десятью строчками кода на просчет железякам?
Можно пересобрать физический движок, увеличив количество памяти до, скажем 128мб. Это делается несложно. Из зависимостей нужно будет поставить только emscripten. Но. Вас точно не устроит производительность, которую вы получите. Никакие риалтаймовые движки не обрабатывают сотни тысяч вершин на приемлемой скорости.

Поэтому ваш вариант с модификатором выглядит куда реалистичнее. Возможно, результат будет удовлетворительный. Но это сложно предсказать. Все-таки физику, обычно настраивают вручную.
Разработчик Blend4Web
11 ноября 2016 22:54 #13786
В общем, весьма неплохо сработала последовательность:
1) Массив из перечня объектов для коллизиона
2) Копия и объединение, с переносом на другой слой
3) Применение модификатора Decimate сначала collapse на 0.15, потом planar на 20' - это в моем случае снизило по выбранным объектам количество вершин с 380К до 25К и по внешнему виду не удалило ни одного плейна из тех, которые явно образуют собой поверхности.
4) Далее убираем все слоты материалов, ставим один материал и назначаем его свойства.
Алексей
12 ноября 2016 00:23 #13787
Коллеги, обнаружил удивительное поведение функции b4w.camera_anim.track_to_target(s_movs.camobj, m_scs.get_object_by_name('Camera_char') , 0.2, 5, 5, 3). Я точно абсолютно знаю, где находится Camera_char, но зум исполняется вдоль -Z вместо -X.
Алексей
12 ноября 2016 21:35 #13793
Коллеги, обнаружил удивительное поведение функции b4w.camera_anim.track_to_target(s_movs.camobj, m_scs.get_object_by_name('Camera_char') , 0.2, 5, 5, 3). Я точно абсолютно знаю, где находится Camera_char, но зум исполняется вдоль -Z вместо -X.
Мы эту функцию забыли поправить, когда переходили на блендеровскую систему координат, поэтому сейчас пока её лучше не использовать. К этому релизу пофиксим.
Команда Blend4Web
14 ноября 2016 09:17 #13810
Хорошо, тогда посоветуйте способ управления камерой, если у меня есть перечень объектов в виде массива, а дальше будет скрипт, перемещающий камеру от одного к другому. Нужен перечень корректно работающих функций. Пример с яблоками из кодасниппетс мне подойдет или есть еще удобные функции?

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