论坛

由用户创建的信息 recoshet
12 August 2016 08:15
Четко выявленный косяк со стартом b4w сервера при старте Blender через Steam.
Просто интересно… В чём смысл запуска blender через steam ?

Есть предположения что blender в этом случае запускается от имени другого пользователя, созданным при установки steam. И данный пользователь не имеет доступа к прослушиванию порта 6687, заданным по умолчанию для web сервера b4w.

Попробуйте установить порт 27015 в настройках аддона (стандартный порт сервера игры counter-strike )
12 August 2016 07:57
Приветствую!

У меня возникал такой вопрос, когда я пробовал посадить лес. Мне ответили так:
Лучше всего линковать через группы. Создаете дерево + лод к нему, настраиваете их как надо и объединяете в группу под названием Tree_01, например. Потом выбираете File/Link в блендере и выбираете линковать группу Tree_01, таким образом группа вешается на Empty и все объекты входящие в него будут перемещаться как бы внутри Empty, что бы скопировать её достаточно просто скопировать Empty, даже не надо использовать alt-d, просто копируете стандартным ctrl-d и все объекты находящиеся внутри группы будут оставаться линкованными из того файла откуда вы их прилинковали первый раз.

Т.е. вместо дерева вы создаёте ящик в отдельном blend файле. Добавляете его в группу. После в вашей сцене "линкуете" группу с ящиком. И этот уже линкованный объект можете копировать через ctrl-d в вашей сцене
10 August 2016 19:53
Прелоадер это отдельный компонент. Он выводит загрузку не в canvas а отдельный dom элемент, но опирается на цикл loop().

Браузер специально приостанавливает эти временные колбеки по таймеру для оптимизации, походу тут ничего не сделаешь. Только переписывать модуль загрузки ресурсов в движке b4w…

А вот раньше такого "костыля" в браузере небыло…
10 August 2016 19:32
Чуть чуть разобрался и мне кажется тут дело вот в чём:
Для загрузки ресурсов нужно что бы крутился цикл loop(), он, грубо говоря, вешается на метод браузера setTimeout(), который перестаёт срабатывать на неактивной вкладке. След-но и загрузка сцены не идёт… Надо подумать как дёргать метод в неактивной вкладке по таймеру…
10 August 2016 18:43
Получил первым же объектом в массиве лампочку этой функцией

Весь код выглядит так:
"use strict"

// register the application module
b4w.register("test_get_obj", function(exports, require) {

// import modules used by the app
var m_app       = require("app");
var m_data      = require("data");
var m_scn       = require("scenes");

/**
 * export the method to initialize the app (called at the bottom of this file)
 */
exports.init = function() {
    m_app.init({
        canvas_container_id: "main_canvas_container",
        callback: init_cb,
        show_fps: true,
        console_verbose: true,
        autoresize: true
    });
}

/**
 * callback executed when the app is initialized 
 */
function init_cb(canvas_elem, success) {

    if (!success) {
        console.log("b4w init failure");
        return;
    }

    load();
}

/**
 * load the scene data
 */
function load() {
    m_data.load("test_get_obj.json", load_cb);
}

/**
 * callback executed when the scene is loaded
 */
function load_cb(data_id) {
    m_app.enable_camera_controls();

    // place your code here
    var objs = m_scn.get_all_objects("ALL",data_id);
    console.log(objs);
}


});

// import the app module and start the app by calling the init method
b4w.require("test_get_obj").init();
10 August 2016 09:58

про дебаг на устройстве: не могу ничего сделать, т.к. реалтайм консоль отключена и достучаться до нее не получается, т.к. это не браузер стандартный да и экран микроскопический стандартные методы дебагинга не подходят.

Попробуйте этот способ https://developers.google.com/web/tools/chrome-devtools/debug/remote-debugging/remote-debugging

Так же можно отлаживать и через wi-fi.

У меня все отлаживает, даже если webview находится где то в глубине нативного приложения
10 August 2016 09:33
Если веб сервер отдаст все файлы правильно, то проблем не будет…
Какое содержимое показывает отладчик браузера в запросах от b4w? Оно соответствует содержанию запрошенных файлов?
10 August 2016 09:22
Добро пожаловать на форум

Что бы отображать сцену b4w через плеер (что рекомендуется) нужны следующие файлы:
1. .json
2. .bin
3. текстуры

В простейшем случае на вашем сайте вы должны организовать загрузку архива с файлами 3D сцены. (загружаем архив как картинку в админке )

Либо же можно загружать готовый экспортированный html файл. Но данный метод обладает следующими минусами:
1. Обычно занимает больше места, не очень оптимизирован
2. Коды движка не сохраняются в кеше, из за чего при просмотре других товаров всё грузится заного
3. Могут выявиться проблемы в безопасности в админке сайта

Рекомендую ознакомиться с этой статьёй

Метод загрузки через плеер реализован в этом проекте

Если что пояснить нужно, спрашивайте
09 August 2016 09:00
Меня смущает ?t=31052016152546 в запросе json и bin файла.
Это "?параметр=значение" get запроса. b4w их всталяет, что бы браузер не обращался к кешу. Можете их игнорировать и сказать серверу, что бы он обрабатывал запрос, не обращая внимания на эту строчку.

Либо можно сказать b4w, что бы он не генерировал GET параметр. Укажите при инициализации параметр
prevent_caching: false
09 August 2016 08:30
Проверил, у меня всё работает.
Пример импортировать через менеджер проектов
В сцене копирую серый куб, делаю ему гравитацию 0 и поднимаю чуть чуть и даю пинок, что бы начал двигаться
Через секунду другой json подгружается. Появляется тёмный куб и с ним происходит тоже самое.

Dynamic, проставлены галочки Ghost и No Sleeping
Извиняюсь, не заметил этого.