论坛

由用户创建的信息 Evgeny Rodygin
14 October 2016 19:09
Reply to post of user kimholder
Our website already has a file structure it wouldn't make sense to redo, so i am trying to export the json files to a folder called 'blend4web' within the existing folder hierarchy. I have loaded it on our GitHub site to play with it before putting it on the official site. The scene doesn't load, though. What have i done wrong?

The GitHub site is here, and the repo is here.

The html is
<iframe width="80%" height="auto" src="webplayer/webplayer.html?load=blend4web/LalandeMarkers.json">if you see this something is wrong</iframe>


The blend4web folder has the bin file, the json file, the image for the texture, and i threw in the blender file. The webplayer folder has everything from deploy/apps/webplayer in the SDK.
Hi,
The path to json in the iframe should be set relatively to webplayer.html. So you need to put "../" before the folder path.
This code will work:
<iframe width="80%" height="auto" src="webplayer/webplayer.html?load=../blend4web/LalandeMarkers.json">if you see this something is wrong</iframe>
14 October 2016 11:03
- get_rendered_info() –> What is exactly this infos ? How display or exploit this ?
You can just call this function and check the output. But not all browsers support the required extension. Chrome does support it.

- pause() –> This method pauses the application but what exactly ? The refresh ? The shadow calculation ? Events ? Everithing ?
Yes. Basically it pauses everything: graphics/physics/logics. But you don't need to track if the page is active. Browsers are managing this for us. So the page doesn't make any calculations.
14 October 2016 10:20
Hi Marcos,

Yes, the problem of big sizes is really a common one for any 3D software.
Generally, such issues are being solved by dividing world into tiles and moving everything closer to the origin when a new tile is reached.

As of scaling a character. Check the Step Height parameter in character settings. It doesn't take scale into account, so you need to set a new value after scaling.
12 October 2016 16:29
Добрый день,
Изменять это свойство на данный момент невозможно.
Есть два варианта.
1) Пользоваться физическим рейкастингом, как это сделано в этом примере.
2) Скрывать нужный объект перед вызовом функции pick_object и потом его снова показывать.
11 October 2016 16:43
Рывки происходят потому что все операции в коде выполняются в разных несвязанных потоках управления. Рендеринг Blend4Web в своём, анимация обрабатывается в потоке, который сам себя асинхронно запускает через setTimeout, а фактор обновляется в потоке созданном в setInterval. Во всех них время съезжает чуть-чуть друг относительно друга и это хорошо видно глазу. Если нажать на паузу, то съедет ещё сильнее.

Лучше всё это делать через сенсоры и использовать только два слота.

[EDIT]
Если детальнее, то фактор сбрасывается в ноль не одновременно со сменой анимации.
11 October 2016 15:50
Hi,

You can use a three-lines Python script for this task.

1) Open "Text Editor" in Blender.
2) Create a new file and put the following text inside:
import bpy
for o in bpy.context.selected_objects:
o.b4w_selectable = True

3) Select all required objects and press the "Run Script" button.

This approach can be used for any property you need.
11 October 2016 15:00
Я предполагаю, что может быть не совсем очевидно в этом API. Лучше будет сказать, что смешиваются последние слоты, а не анимации. То есть, если вы применили скелетную анимацию к 7 и 8 слотам, то они и только они (слоты) будут смешиваться. При этом вы можете менять анимацию (m_anim.apply) на этих слотах, как вам угодно и уместить в них все варианты ходьбы персонажа. Пусть их будет хоть полторы тысячи.
У меня нет возможности делать более подробный пример, но надеюсь, я пролил свет на этот вопрос.

Вообще, этот функционал всё ещё экспериментальный, поэтому я бы на данный момент не стал строить с помощью него серьёзные приложения. Есть принципиальные моменты, которые мы изменим в ближайшем будущем.
11 October 2016 11:05
Ответ на сообщение пользователя Onis
Столкнулся со смешиванием двух анимаций, воспользовался этой статьей. Задача сделать плавно переходящие анимации. Воспользовался готовым исходником, сделал плавный переход от одной анимации к другой каждые 5 секунд, все хорошо, вот только в самом начале перехода проскальзывает кадр вообще не подходящий.
Ну и после недолгого проигрывания, анимация прекращается, полагаю, что это связно с тем что переменные m_anim.SLOT_+число закончились, подскажите как быть в этой ситуации?
Нет совсем никакой необходимости постоянно переназначать анимацию на новые слоты и тем более удалять её оттуда. Лучше её один раз применить и в дальнейшем просто менять фактор смешивания. Скачок в вашем примере обусловлен неточностью значений фактора смешивания и удалением анимации. Если нужны новые анимации их так же можно назначить на уже занятые слоты. Они просто перетрут навешенную анимацию.

Я изменил ваш пример так, что mix_factor меняется по синусу от step, давая плавное перетекание анимаций.

И ещё, я бы рекомендовал пользоваться встроенной системой сенсоров Blend4Web. setInterval не привязывается к обновлению кадров и может давать сильные рывки при небольших FPS.
03 October 2016 16:59
Да, действительно, исправляя одну критическую ошибку, мы добавили опечатку.
Обновили сборки на сайте ещё раз. Теперь версия 16.09.2 Спасибо за репорт!
02 October 2016 21:46
Hi,

I assume, you are speaking about an application.You can just call the camera_anim.auto_rotate method inside a loading callback. It should do the trick.