由用户创建的信息 Roman_Sementsov
27 February 2017 14:28
Добрый день.
Я как-то решал такую задачку следующим образом: брал объект-кубик, парентил его к персонажу, чтобы он брал только его перемещение. Ставил на него сенсор, чтобы он брал вращение камеры. Затем на этот кубик ставил сенсор-кастер луча на 15 метров. Если этот луч во что-то попадал, то выставлял камере это расстояние до объекта (использовал сферическую систему координат для камеры, но это не обязательно).
Можно и из персонажа кастить луч, но у меня у объекта для луча и у персонажа были настроены разные группы коллизии (объект кастер игнорировал некоторые группы коллизии)
Увы, изменять тип прозрачности нельзя, поскольку в зависимости от типа прозрачности генерируется разный шейдер. А нельзя использовать Blend тип прозрачности и анимировать альфу? Blend учитывает глубину и будет соответсововать Opaque при единичной альфе
1. Хочу сделать коллизию для камеры что бы она сквозь текстуры не проваливалась, думаю строить луч от объекта до камеры, находить препятствия и если они есть приближать камеру. Я пойду в правильном направлении или уже есть готовый алгоритм? В ферме взаимодействия коллизии с камерой не обнаружил.
Я как-то решал такую задачку следующим образом: брал объект-кубик, парентил его к персонажу, чтобы он брал только его перемещение. Ставил на него сенсор, чтобы он брал вращение камеры. Затем на этот кубик ставил сенсор-кастер луча на 15 метров. Если этот луч во что-то попадал, то выставлял камере это расстояние до объекта (использовал сферическую систему координат для камеры, но это не обязательно).
Можно и из персонажа кастить луч, но у меня у объекта для луча и у персонажа были настроены разные группы коллизии (объект кастер игнорировал некоторые группы коллизии)
2. Можно ли как то менять центр тяжести у авто? А то больно часто переворачиваетсяПо идее, центр тяжести становится в середине баундингбокса, можно с ним попробовать поиграться. А так - пока что нельзя изменять центр тяжести, такой задачи никогда не вставало)
3. Можно ли из api включать/выключать прозрачность материалам и менять тип прозрачности (Alpha blend, Alpha clip, и т.д.)? Хочу попробовать сделать плавное появление объектов на горизонте и делать полупрозрачными некоторые объекты, которые находятся ближе к камере. Например деревья.
Увы, изменять тип прозрачности нельзя, поскольку в зависимости от типа прозрачности генерируется разный шейдер. А нельзя использовать Blend тип прозрачности и анимировать альфу? Blend учитывает глубину и будет соответсововать Opaque при единичной альфе
27 February 2017 14:12
Думаю, что дело в том, что камера припаренчена к физическому объекту, с которым происходит взаимодействие. Физика работает в другом потоке, поэтому возможны некоторые проблемы с обменом информацией.
Там сейчас отключены воркеры, т.е. физика и графика работают в одном потоке. Можно попробовать сделать тоже самое для тестов, передать в app.init флаг physics_use_workers: false , но при этом просядет фпс
А когда именно воспроизводится баг? может быть такое, что он воспроизводится после применение возвращающего колёса на землю момента?
UPD: для Linux в Firefox отключаются воркеры
Возможно глюк в js машине браузера хрома… В фаерфоксе всё хорошо.
Там сейчас отключены воркеры, т.е. физика и графика работают в одном потоке. Можно попробовать сделать тоже самое для тестов, передать в app.init флаг physics_use_workers: false , но при этом просядет фпс
А когда именно воспроизводится баг? может быть такое, что он воспроизводится после применение возвращающего колёса на землю момента?
UPD: для Linux в Firefox отключаются воркеры
27 February 2017 12:24
Обнаружил баг, не знаю был ли он в предыдущих релизах…
В общем иногда отваливается камера, закреплённая методом m_const.append_semi_soft_cam к авто (останавливается или телепортируется куда то), если fps меньше 60 и авто преимущественно перевёрнуто (примерно после 3-6 мин игры)… В консоли при этом относительно пусто.
Добрый день.
Пробовал подхачить фпс, тестить на устройствах, которые выдают небольшой фпс, но так и не получилось стабильно воспроизвести баг (был один случай похожий на баг).
Не могли вы чуть-чуть помочь с описаным багом? напирмер, повыводить в консоль tsr камеры, можно взять методом get_tsr из модуля transform, было бы интересно узнать что в него попадает в случае бага
22 February 2017 16:01
Hello
We've researched the problem and decided to change the documentation of this method. The call of m_sfx.mute(null,true); disables sounds for the scene, it doesn't work with speakers. It disables music for the whole scene.
If you need to turn off/on all speakers, you can iterate them:
or
Sorry
We've researched the problem and decided to change the documentation of this method. The call of m_sfx.mute(null,true); disables sounds for the scene, it doesn't work with speakers. It disables music for the whole scene.
If you need to turn off/on all speakers, you can iterate them:
var speakers = m_sfx.get_speaker_objects();
for (var i = 0; i < speakers.length; i++)
m_sfx.mute(speakers[i], true);
or
var speakers = m_sfx.get_speaker_objects();
for (var i = 0; i < speakers.length; i++)
m_sfx.mute(speakers[i], false);
Sorry
22 February 2017 15:21
Hello Alberto,
You forgot to replace variable names after ctrl + c & ctrl +v
Here's a correct version of the function
You forgot to replace variable names after ctrl + c & ctrl +v
Here's a correct version of the function
function sliders() {
var taza = m_scenes.get_object_by_name("taza");
var x_slider = document.getElementById("x_coord");
x_slider.oninput = function(e) {
m_mat.set_nodemat_value(taza, ["taza", "x_coord"], x_slider.value);
}
var y_slider = document.getElementById("y_coord");
y_slider.oninput = function(e) {
m_mat.set_nodemat_value(taza, ["taza", "y_coord"], y_slider.value);
}
var rotacion = document.getElementById("rotacion");
rotacion.oninput = function(e) {
m_mat.set_nodemat_value(taza, ["taza", "rotacion"], rotacion.value);
}
var x_scale = document.getElementById("x_scale");
x_scale.oninput = function(e) {
m_mat.set_nodemat_value(taza, ["taza", "x_scale"], x_scale.value);
}
var y_scale = document.getElementById("y_scale");
y_scale.oninput = function(e) {
m_mat.set_nodemat_value(taza, ["taza", "y_scale"], y_scale.value);
}
}
22 February 2017 13:43
22 February 2017 10:18
Hello berdon,
You can create timeline and elapsed sensors and interpolate the shape key value every frame (from start value to finish one). Take a look please at this demo, it uses these sensors for procedural camera animation.
You can create timeline and elapsed sensors and interpolate the shape key value every frame (from start value to finish one). Take a look please at this demo, it uses these sensors for procedural camera animation.
10 February 2017 16:05
10 February 2017 15:43