Загрузка сцены Blender в BabylonJS

Я сделал сцену в Blender, экспортировал ее в .babylon, а теперь импортирую в игру. Карта весит 351 КБ, и я загружаю ее в игру так:

var BABYLON;
var canvas = document.getElementById('gamecanvas');
var engine = new BABYLON.Engine(canvas, true);
var scene = new BABYLON.Scene(engine);
var light = new BABYLON.PointLight('light', new BABYLON.Vector3(0,0,10), scene);
var player = new BABYLON.FreeCamera('player', new BABYLON.Vector3(1,1,1), scene); //IMPORTANT LINE
var player_height = 2;
var player_speed = 1;
var player_inertia = 0.9;
var mouse_position = new BABYLON.Vector2(mouse_position.x, mouse_position.y);

function INIT_GAME(){

    engine.runRenderLoop(function(){ //IMPORTANT LINE
        scene.render();
    });

    canvas.height = window.innerHeight;
    canvas.width = window.innerWidth;
    canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock;
    canvas.requestPointerLock();

    scene.enablePhysics(); //IMPORTANT LINE
    scene.setGravity(new BABYLON.Vector3(0, -10, 0)); //IMPORTANT LINE

    player.attachControl(canvas, true); //IMPORTANT LINE
    player.ellipsoid = new BABYLON.Vector3(1, player_height, 1);
    player.checkCollisions = true;
    player.applyGravity = true;
    player.keysUp = [87];
    player.keysDown = [83];
    player.keysLeft = [65];
    player.keysRight = [68];
    player.inertia = player_inertia;
    player.speed = player_speed;

    window.addEventListener('resize', function(){
        engine.resize();
    });

    BABYLON.SceneLoader.Load('Scenes', 'zombie_map.babylon', engine); //IMPORTANT LINE
}

Я попытался сузить все до того, что вам нужно посмотреть, но я оставил все это на всякий случай, если я что-то пропустил. (INIT_GAME загружается при загрузке страницы). Моя проблема в том, что я думаю, что сцена загружается, но она просто дает мне странный значок загрузки, который, как я полагаю, просто пытается загрузить Вавилон в сцене, которую я передал. Мои вопросы:

  • Я правильно все загружаю?
  • Какой правильный формат для импорта сцены .babylon?
  • Не слишком ли велик размер карты для браузера, и если да, то как ее сжать?

Я могу предоставить ссылку на сайт, если вам нужно увидеть результаты в лоб. Дайте мне знать, спасибо!


person Taylor Brown    schedule 01.04.2016    source источник


Ответы (1)


Я думаю, что решение очень простое.

Добавьте косую черту после вашего rootURL.

Так что замените

BABYLON.SceneLoader.Load('Scenes', 'zombie_map.babylon', engine); //IMPORTANT LINE

с

BABYLON.SceneLoader.Load('Scenes/', 'zombie_map.babylon', engine); //IMPORTANT LINE

Попробуйте это и дайте мне знать, как это происходит.

person Jeremy Hanlon    schedule 01.04.2016
comment
Тьфу, я надеялся, что ты не прав, но ты был прав. Нубская ошибка с моей стороны, спасибо! - person Taylor Brown; 01.04.2016
comment
Я знал, что это было только потому, что сам совершил ту же ошибку всего несколько дней назад :) - person Jeremy Hanlon; 01.04.2016