Параметры объектов
25 октября 2016 06:00
Где можно взять простейший пример изменения свойства объекта (например запуск анимаци или изменение положения объекта) посредством js, от начала до конца по шагам)
Я застрял на этапе: var sphere = m_scenes.get_object_by_name ("sphere");
Получаю сообщение : B4W ERROR: get object sphere: not found
Я застрял на этапе: var sphere = m_scenes.get_object_by_name ("sphere");
Получаю сообщение : B4W ERROR: get object sphere: not found
25 октября 2016 10:26
по преобразованиям в пространстве есть этот урок: Простейшие манипуляции в трехмерном пространстве
по анимации можете посмотреть в этом туториале: Создание интерактивного веб-приложения
в мануале ещё есть отдельные примеры, но их тоже не очень много, вот например по камере: Управление через API
что-то по объектам можно найти непосредственно в разделе про них: Объекты
по анимации можете посмотреть в этом туториале: Создание интерактивного веб-приложения
Получаю сообщение : B4W ERROR: get object sphere: not foundскорее всего из-за неправильного имени объекта, проверьте, может должно быть "Sphere"
Где можно взять простейший примерпростые примеры ещё будем в документацию по API добавлять прямо под описанием методов, правда пока их практически нет
в мануале ещё есть отдельные примеры, но их тоже не очень много, вот например по камере: Управление через API
что-то по объектам можно найти непосредственно в разделе про них: Объекты
27 октября 2016 18:16
Я к сожалению не совсем понимаю, что, куда писать(
SOS!
Есть объект obj, у него есть анимация которая должна циклически повторяться все время работы приложения, при этом скорость воспроизведения анимации зависит от угла под которым обращена к нему камера. Так же в слотах объекта храниться дополнительная анимация, которая должна проигрываться один раз при определенном значении угла камеры.
Первую задачу я решил, но подозреваю, что очень криво, т.к. весь код срабатывает на движение мыши, так что в принципе можно забыть об оптимизации.
В результате возникает вторая проблема. Нельзя туда же записать старт дополнительной анимации, т.к. она начинается сначала, если двинуть мышью:(
Как написать изменение скорости анимации объекта не на движение мыши а на изменение положения камеры например? Двинул камерой, поменялась скорость на некое значение…
Help me!
SOS!
Есть объект obj, у него есть анимация которая должна циклически повторяться все время работы приложения, при этом скорость воспроизведения анимации зависит от угла под которым обращена к нему камера. Так же в слотах объекта храниться дополнительная анимация, которая должна проигрываться один раз при определенном значении угла камеры.
Первую задачу я решил, но подозреваю, что очень криво, т.к. весь код срабатывает на движение мыши, так что в принципе можно забыть об оптимизации.
function mouse_move_cb(move_event) {
var camera = m_scenes.get_active_camera();
var angleObject = m_scenes.get_object_by_name("AngleObject");
m_constraints.append_track(angleObject, camera);
var angleToSpeed = m_transform.get_rotation(angleObject);
var speed = angleToSpeed[2]*5;
var obj = m_scenes.get_object_by_name("cube");
if (speed > 0){
m_anim.set_speed(obj, speed);
}
}
В результате возникает вторая проблема. Нельзя туда же записать старт дополнительной анимации, т.к. она начинается сначала, если двинуть мышью:(
Как написать изменение скорости анимации объекта не на движение мыши а на изменение положения камеры например? Двинул камерой, поменялась скорость на некое значение…
Help me!
28 октября 2016 12:08
Как написать изменение скорости анимации объекта не на движение мыши а на изменение положения камеры например?Правильно, что на мышь не стоит завязываться, т.к. камеру можно и с клавиатуры двигать. Здесь нужно использовать motion-сенсор вот таким образом:
var cam = m_scenes.get_active_camera();
var move_sensor = m_ctl.create_motion_sensor(cam, 0.001, 0.001);
var cam_move_cb = function(obj, id, pulse) {
// расчет скорости
}
m_ctl.create_sensor_manifold(cam, "CAM_MOVE", m_ctl.CT_POSITIVE,
[move_sensor], function(s) { return s[0] }, cam_move_cb);
Вторая проблема все равно может остаться, например, если двигать по радиусу target-камеру - движение происходит, а угол не меняется. При старте анимации можно сделать проверку, есть ли сейчас анимация на объекте, либо через is_play, либо по глобальному флагу, который можно менять в finish_callback метода play.
28 октября 2016 13:20