Форум

Как подключить физику? Помогите чайнику.

16 мая 2017 02:40
Весь форум излазил, все примеры перекопал, пробовал и так и сяк.
Физика не включается.

Экспортирую через Json, вот сама дёмка.
(у plate физика Static, у кубика - Dynamic, в превью всё пашет)

ссылка

исходный код такой:

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>

<body>
<center>
<iframe width=800 height=600 allowfullscreen src="./webplayer/webplayer.html?load=../2k.json"></iframe>
</center>


</body>
</html>


При нажатии в Блендере на Превью у меня кубик падает вниз, как и полагается.
А при выгрузке на сервер - не двигается.


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

"use strict"; 
var app = b4w.require("app"); 
var data = b4w.require("data"); 

app.init({
canvas_container_id: "container_id", 
physics_enabled: false,  (было true)
autoresize: true, 
callback: load_cb
});

function load_cb() {
	data.load("2k.json", loaded_cb)
}

function loaded_cb() {
}


Так не пашет, зараза. Вообще ничего не выводит на экран, хотя и ошибок нет.
16 мая 2017 14:08
Добрый день и добро пожаловать.

physics_enabled: false,

отключит физику, замените на true. Если в fastpreview у вас есть физики и всё работает, значит в Blender все настройки верны. Скиньте лучше ваш пример, чтобы сразу можно было сказать в чём дело.

По вашей ссылке кубик уже лежит на плоскости, как будто он на неё упал. Не совсем понятно, что там должно быть. Вообще, в списке загруженных ресурсов у вас там есть физический движок, то есть физика инициилизировалась
Разработчик Blend4Web
16 мая 2017 15:37
Ответ на сообщение пользователя Семенцов Роман
По вашей ссылке кубик уже лежит на плоскости, как будто он на неё упал.
Совершенно верно, кадр выглядит так, как будто кубик уже упал, но я этого не видел.
А в превью вся анимация полностью показывается.

Ответ на сообщение пользователя Семенцов Роман
Скиньте лучше ваш пример, чтобы сразу можно было сказать в чём дело.

Скидываю

И на всякий случай замечу (вдруг в этом причина), что у меня папке с анимацией лежит также папка webplayer, которую я взял из примеров проектов (посмотрев видео). И в папке webplayer лежит вот что:

16 мая 2017 18:48
Скорее всего, физика стартовала на 97% и кубик уже упал. Что если его поднять выше?

Я имел ввиду пример с кодом, который вы приводили, если вас ещё интересует что там не так.
Разработчик Blend4Web
16 мая 2017 20:14
Ответ на сообщение пользователя Семенцов Роман
Скорее всего, физика стартовала на 97% и кубик уже упал. Что если его поднять выше?

Вы были совершенно правы.
Нужно было поднять куб повыше, и тогда он начинает работать.
Но если честно, это же извращение.

Куда нужно прописать код, чтобы физика запустилась только после полной загрузки страницы?
(я так понимаю, FULL HTML и JSON экспорт тут не поможет, нужно запускать через новый .js файл, в который уже нужно прописать код)

А то одно дело кубик задрать, а если будет 100 объектов, которым нужно будет приземлиться при запуске страницы.
Потом в этой сцене не разберешься…
17 мая 2017 10:36
Но если честно, это же извращение.

Да, согласен

Можно написать в load_cb перемещение куба в заданую позицию, а изначально положить его на плоскость.
var m_phy = require("physics");
function load_cb(data_id) {
....
m_phy.set_transform(cube, [0,0,5], [0,0,0,1])
}

где [0,0,5] - позиция куда надо поставить куб
Разработчик Blend4Web
18 мая 2017 02:01
Спасибо! Бум пробовать!
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.