Форум

Возможно ли это в Blend4Web

21 октября 2016 11:49
Добрый день! Добро пожаловать на наш форум

Вот старый проект одного из наших клиентов, как раз с кубиком Рубика.

Но это простая анимация. Т.е. 9 кубов берутся, вращаются, потом снова берется другие 9 кубов, вращаются и т.д. А вот если интерактивно это делать, то задача становится довольно нетривиальной.

По факту, механизму нужно будет делать два действия, которые редактор логики Blend4Web пока не позволяет: это "перепрыгивать" с одного родителя на другого (когда вращаются разные оси), и притом запоминать предыдущее расположение. То есть, в зависимости от выбранной оси вращения, точка вращения должна менять местоположение и активировать разные кубы, затем анимация должна "добавляться" к предыдущему положению. У нас есть планы по поддержке Constrains Блендера, возможно, с ними могло бы получиться.

Также есть варианты динамической смены самой текстуры. Точнее, координат наложения. Чтобы UV эдак перепрыгивала по нажатии на кнопку поворота. Теоретически это сделать возможно, но это будет очень комплексная задача.

В этоге, как мне кажется, в любом случае реализация задачи имеет большое количество подводных камней, и не совсем подойдет для изучения основ Блендера, т.к. требует уже погружения в более комплексные материи
21 ноября 2016 12:10
Ок. Спасибо за ответ. С кубиком пока решили не заморачиваться.
С интересом продолжаю изучать возможности blend4web. Возник такой вопрос: можно ли использовать видео с хромакеем в качестве текстуры так, чтобы зеленый был прозрачным? Пробовал сделать такую прозрачность с помощью нодов, читал мануал, искал уроки, но пока безуспешно.
21 ноября 2016 14:35
Да, без проблем
chroma.zip
Ну, единственное что - видео-текстуры сами по себе довольно тяжелые, и в смысле веса, и в смысле производительности. Ну, если их использовать довольно интенсивно
21 ноября 2016 17:38
Спасибо!
Все работает! А управлять видео есть возможность? Запустить, остановить?
Хочу сделать интерактивную обучалку про животных для малыша.
Собачка уже лает вот http://mydog.my1.ru/Dog.html
21 ноября 2016 18:18
какая прелесть х)

Нет, пока для видео такой возможности нет. Но мы тут посовещались, и, вполне возможно, скоро можно будет :)
Ну, это если без программирования. С программированием можно все и даже больше
21 ноября 2016 18:40
Было бы супер!
Ибо кодить мне что-то не очень удается.
Сделал льва видеотекстурой с хромакеем на поляне. При старте html странички запускается звук соответствующего видео, но не совпадает с видео. Пробовал задержку настроить - бесполезно (
22 ноября 2016 05:29
Ну, единственное что - видео-текстуры сами по себе довольно тяжелые, и в смысле веса, и в смысле производительности.
Вроде не тяжелее видеоролика. Их же можно стримить с сервера по типу как это делает youtube?
22 ноября 2016 11:02
Ответ на сообщение пользователя Winter_Fox
Вроде не тяжелее видеоролика. Их же можно стримить с сервера по типу как это делает youtube?

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

Одна видео-текстура еще норм :)


Сделал льва видеотекстурой с хромакеем на поляне. При старте html странички запускается звук соответствующего видео, но не совпадает с видео. Пробовал задержку настроить - бесполезно (

Как настраивали видео-текстуру?
22 ноября 2016 16:56
Павел, заменил в вашем примере хромокея видео на это https://youtu.be/Ye4CnzaAqf4, добавил плэйн с фоновой картинкой, добавил спикер со звуком из этого видео в mp3. Поставил в нод эдиторе задержку на звук, но с ее помощью все равно не получилось синхронизировать. Видимо это специфика выполнения JS при загрузке страницы…
23 ноября 2016 14:31
Тут все просто :)

Видео играется на 24 фпс, а музыка записана под 30 фпс.
Во вкладке рендер в меню таймлайн выберите 30 фпс, и все будет окей

только уберите delay и do not wait из логики
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.