Сообщения, созданные пользователем stilist
22 сентября 2016 10:22
Роман, уточните, если мне сейчас для изучения API требуется понять сакральный смысл всех exports.init, init_cb, load(), load_cb(data_id, success) да и вообще как работает движок и зачем там инициализировать то или иное и почему именно в этой функции - где это можно посмотреть?
Может есть какая-нибудь наглядная структура работы движка, дорожная карта или как там это называют обычно?
Может есть какая-нибудь наглядная структура работы движка, дорожная карта или как там это называют обычно?
Алексей
22 сентября 2016 10:16
22 сентября 2016 10:13
Роман, доброе утро,
Вопрос с подкаталогами видимо в том, что у блендера относительная ссылка идет от места расположения файла модели (у меня она //textures), а у blend4web от каталога с программой. Соотвественно abspath или что там у блендера отвечает за абсолютный полный путь при экспорте в json создает ссылку к текстурам несколько раз наверх и дальше вниз в каталог blender, имяпроекта и там в textures - /../../../blender/имяпроекта/textures и также эта ссылка остается в json файле при deploy. Поэтому если json лежит в ./common/assets/json и манипулирует ссылками от js в корне сайта, то он просто не находит /blender/имяпроекта/textures, в связи с чем я просто поменял вручную ссылки в json файле, хотя лучше конечно было бы избежать залезать в json файл.
Подскажите, текстуры в каком каталоге лучше хранить в прожект менеджере, чтобы json экспортировался сразу с подходящими относительными ссылками, работающими также и после deploy?
Вопрос с подкаталогами видимо в том, что у блендера относительная ссылка идет от места расположения файла модели (у меня она //textures), а у blend4web от каталога с программой. Соотвественно abspath или что там у блендера отвечает за абсолютный полный путь при экспорте в json создает ссылку к текстурам несколько раз наверх и дальше вниз в каталог blender, имяпроекта и там в textures - /../../../blender/имяпроекта/textures и также эта ссылка остается в json файле при deploy. Поэтому если json лежит в ./common/assets/json и манипулирует ссылками от js в корне сайта, то он просто не находит /blender/имяпроекта/textures, в связи с чем я просто поменял вручную ссылки в json файле, хотя лучше конечно было бы избежать залезать в json файл.
Подскажите, текстуры в каком каталоге лучше хранить в прожект менеджере, чтобы json экспортировался сразу с подходящими относительными ссылками, работающими также и после deploy?
Алексей
21 сентября 2016 18:27
То есть для коллижн объектов можно тогда выполнить и загрузить всю сцену с самой простой геометрией - ландшафт и основные плоскости, так?
А как решать вопрос с объектами на заднем плане? Возможно ли сначала грузить удаленные объекты меньшего разрешения и детализации, а при приближении догружать уже полноценные модели? Незаметно для пользователя.
А как решать вопрос с объектами на заднем плане? Возможно ли сначала грузить удаленные объекты меньшего разрешения и детализации, а при приближении догружать уже полноценные модели? Незаметно для пользователя.
Алексей
21 сентября 2016 16:52
21 сентября 2016 16:29
Отлично! С этими настройками работает как нельзя лучше.
Сейчас параллельно ковыряю скрипт для того, чтобы крутить камерой не мышкой, а стрелочными кнопками. С javascript не знаком, но нашел в peregon tale поворот персонажа вправо-лево со следующей логикой:
var left_logic = function(s){return (s[0] || s[1])};
var right_logic = function(s){return (s[2] || s[3])};
function rotate_cb(obj, id, pulse) {
var elapsed = m_ctl.get_sensor_value(obj, "LEFT", 4);
if (pulse == 1) {
switch(id) {
case "LEFT":
m_phy.character_rotation_inc(obj, elapsed * ROT_SPEED, 0);
break;
case "RIGHT":
m_phy.character_rotation_inc(obj, -elapsed * ROT_SPEED, 0);
break;
}
}
}
m_ctl.create_sensor_manifold(_character, "LEFT", m_ctl.CT_CONTINUOUS,
rotate_array, left_logic, rotate_cb);
m_ctl.create_sensor_manifold(_character, "RIGHT", m_ctl.CT_CONTINUOUS,
rotate_array, right_logic, rotate_cb);
Пока не совсем понимаю что за переменные s[0]..1,2,3. и как обеспечить поворот персонажа вокруг горизонтальной оси.
Сейчас параллельно ковыряю скрипт для того, чтобы крутить камерой не мышкой, а стрелочными кнопками. С javascript не знаком, но нашел в peregon tale поворот персонажа вправо-лево со следующей логикой:
var left_logic = function(s){return (s[0] || s[1])};
var right_logic = function(s){return (s[2] || s[3])};
function rotate_cb(obj, id, pulse) {
var elapsed = m_ctl.get_sensor_value(obj, "LEFT", 4);
if (pulse == 1) {
switch(id) {
case "LEFT":
m_phy.character_rotation_inc(obj, elapsed * ROT_SPEED, 0);
break;
case "RIGHT":
m_phy.character_rotation_inc(obj, -elapsed * ROT_SPEED, 0);
break;
}
}
}
m_ctl.create_sensor_manifold(_character, "LEFT", m_ctl.CT_CONTINUOUS,
rotate_array, left_logic, rotate_cb);
m_ctl.create_sensor_manifold(_character, "RIGHT", m_ctl.CT_CONTINUOUS,
rotate_array, right_logic, rotate_cb);
Пока не совсем понимаю что за переменные s[0]..1,2,3. и как обеспечить поворот персонажа вокруг горизонтальной оси.
Алексей
21 сентября 2016 16:05
21 сентября 2016 14:36
У меня получается задавать вопросы явно быстрее, чем получать на них ответы)
Добрый день,
Сделал бродилку по имеющимся примерам. Отдельные объекты для определения границ collision делать на стал.
Прошу подсказать по двум моментам:
1) Для ограды вокруг участка границы collision почему-то определяются как прямоугольник, в связи с чем персонаж забирается наверх даже с учетом наличия проема в ограде. То же самое касается дверного проема. Как сделать, чтобы для collision определялась только то, что внутри мешей?
2) Объект персонажа и камера, видимо, имеют разные системы координат, в связи с чем, пока не захвачен курсор мышки, управление wasd двигает персонаж наоборот. Как можно сразу привязать систему координат объекта персонажа и камеры?
Добрый день,
Сделал бродилку по имеющимся примерам. Отдельные объекты для определения границ collision делать на стал.
Прошу подсказать по двум моментам:
1) Для ограды вокруг участка границы collision почему-то определяются как прямоугольник, в связи с чем персонаж забирается наверх даже с учетом наличия проема в ограде. То же самое касается дверного проема. Как сделать, чтобы для collision определялась только то, что внутри мешей?
2) Объект персонажа и камера, видимо, имеют разные системы координат, в связи с чем, пока не захвачен курсор мышки, управление wasd двигает персонаж наоборот. Как можно сразу привязать систему координат объекта персонажа и камеры?
Алексей