由用户创建的信息 Ivan Lyubovnikov
24 May 2017 10:26
а надо какие то параметры при запуске задавать или все по умолчанию оставить?можно оставить все по умолчанию; справку по параметрам можно посмотреть так: project_server.py -h
"Blender executable is not found, please open the scene manually." это у всех так?Нужно создать системную переменную "blender" с путем к исполняемому файлу.
23 May 2017 11:26
23 May 2017 10:44
22 May 2017 12:52
22 May 2017 12:13
Здравствуйте, сенсоры здесь действительно не нужны, подойдет стандартный обработчик mousemove. Стоит ещё проверять объект, возвращаемый функцией pick_object, т.к. при его отсутствии она вернет null и дальнейшие действия могут приводить к ошибкам:
var obj = m_scenes.pick_object(x, y);
if (obj) {
...
}
но оно срабатывает только раз на наведение и дает дикую просадку fps при работеmousemove должен срабатывать постоянно при движении мыши, дикой просадки тоже быть не должно. Покажите, что в консоли, есть ли какие-либо ошибки?
22 May 2017 10:57
19 May 2017 19:12
Здравствуйте, видео старое, поэтому на текущей версии движка будут ошибки - ряд вещей делается уже совсем не так, как раньше. Вообще для создания приложений лучше пользоваться менеджером проектов. Вот здесь есть пример: Создание интерактивного веб-приложения.
Как создадите проект, там уже будет шаблонный код в главном js-модуле. Надо будет только настроить сцену и персонажа на ней, настройка описана здесь: Персонажи.
В коде достаточно будет в функции load_cb() поменять строчку m_app.enable_camera_controls(); на m_fps.enable_fps_controls(); предварительно подключив модуль fps в начале:
Подробнее про API персонажа: Управление персонажем с помощью API.
Ещё в составе SDK есть пример приложения с локацией, персонажем и базовой физикой. Скрипты находятся внутри SDK по пути ./apps_dev/tutorials/firstperson/, а blend-файлы - ./blender/tutorials/firstperson/ - можете глянуть как пример.
Как создадите проект, там уже будет шаблонный код в главном js-модуле. Надо будет только настроить сцену и персонажа на ней, настройка описана здесь: Персонажи.
В коде достаточно будет в функции load_cb() поменять строчку m_app.enable_camera_controls(); на m_fps.enable_fps_controls(); предварительно подключив модуль fps в начале:
var m_fps = require("fps");
Подробнее про API персонажа: Управление персонажем с помощью API.
Ещё в составе SDK есть пример приложения с локацией, персонажем и базовой физикой. Скрипты находятся внутри SDK по пути ./apps_dev/tutorials/firstperson/, а blend-файлы - ./blender/tutorials/firstperson/ - можете глянуть как пример.
18 May 2017 12:52
As I see from the system info, the problem is that the browser cannot initialize directx 11 and use directx 9 instead, which is a cause for some webgl bugs. It will be helpful if you attach a file where this issue is reproduced, so we would dig into it.
This most likely happens under Windows 7 without the KB2670838 update installed, which provides Direct3D 11.1 functionality. I'd recommend to install it to get rid of this and other possible bugs. You can download it from this page: Platform Update for Windows 7.
This most likely happens under Windows 7 without the KB2670838 update installed, which provides Direct3D 11.1 functionality. I'd recommend to install it to get rid of this and other possible bugs. You can download it from this page: Platform Update for Windows 7.
17 May 2017 14:43
Здравствуйте. что то я разбирался разбирался и запутался :(( а можно мне идиоту как это по подробнее разжевать если несложно плз. :(Ну смотрите: допустим у нас известен id элемента-якоря, имя объекта, к которому он привязан, и точка, в которой якорь висит над объектом (задана в виде смещения относительно центра объекта). Подаем все это в функцию:
update_anchor_pos("box", "box_1", anchor_offset);
Она будет обновлять позицию якоря по позиции объекта во вьюпорте. В ней происходит вот что:
берем объект движка по его имени и получаем позицию его центра в 3-мерном пространстве сцены:
var obj = m_scenes.get_object_by_name(obj_name);
var pos = m_trans.get_translation(obj, _vec3_tmp);
добавляем смещение якоря, чтобы получить точку, в которой якорь должен "висеть" над объектом:
m_vec3.add(pos, anchor_offset, pos);
используем главную камеру сцены, чтобы спроецировать 3-мерную точку якоря в 2-мерную точку на канвасе, которая представляет собой значения в обычных CSS пикселях:
var cam = m_scenes.get_active_camera();
var canvas_xy = m_cam.project_point(cam, pos, _vec2_tmp);
выставляем их как смещения у элемента-якоря:
var anchor_el = document.getElementById(anchor_id);
anchor_el.style.left = canvas_xy[0] + "px";
anchor_el.style.top = canvas_xy[1] + "px";
Позиции якорей нужно обновлять каждый кадр, для этого можно зарегистрировать соответствующую функцию через set_render_callback, например, так:
var anchors_data = [
{ id: "box", obj_name: "box_1", offset: [2,3,4] },
{ id: "box2", obj_name: "box_2", offset: [1,1,1] },
{ id: "box3", obj_name: "box_3", offset: [0,5,3] },
];
m_main.set_render_callback(function() {
for (var i = 0; i < anchors_data.length; i++)
update_anchor_pos(anchors_data[i].id, anchors_data[i].obj_name, anchors_data[i].offset);
});
17 May 2017 10:25
т.к. блендер попробует запустить свою копию или выгрузить загруженнуюможно ещё отключить опцию Run on Startup в настройках аддона, чтобы он вообще не пытался запустить сервер:
Локальный сервер разработки