Форум

Сообщения, созданные пользователем artocodes
05 марта 2018 07:14
Появился новый вопрос… А логикой B4W как-то можно остановить проигрывание таймлайна на определенном кадре?

P. S. Всё разобрался, оказывается в play Timeline задаются маркеры диапазона…
04 марта 2018 17:11
Спасибо Александр… Вот по докам… Я не как не могу "вкурить" каким образом искать нужные функции… Т. е. я понимаю, что должна быть функция что-то вроде select object. Но как мне её искать в документации по API? Просто перебирать все модули, пока не наткнусь на нужное?

По поводу своего вопроса, уже за выходные разобрался. А на счет колеса мышы, спасибо, что подсказали.

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

В блендере создал связку логических узлов. Получилось несколько точек входа "Entry Point". Чтоб они не стартовали автоматом поставил галку Run From Script. Затем экспортировал сцену в JSON и собрал в проект.
Осталось запускать эти точки входа по клику на кнопки. Добавил в скрипт проекта project.js
// import modules used by the app
var m_log_nodes = require("logic_nodes"); 

// place your code here
$('#butt_1').click(function(){
 	m_log_nodes.run_entrypoint("Scene", "B4WLogicNode_1");
 });

Остаётся добавить кнопку с id=butt_1 в html код страницы.
А да, я использую jQuery, так что копипаст скорее всего для вас не сработает (для события на клик)…

Думаю, для новичков вроде меня этот вариант несколько проще для переваривания.
02 марта 2018 20:09
Новичок, спрашивал в соответствующем разделе, но ответа пока нет. Сорри если повторяюсь и такая тема была.

У меня есть сцена с 200 кадрами. Условно эти кадры разделены на 2 эпизода. Я экспортирую сцену в JSON, собираю с помощью манагера (или в ручную прикручиваю B4W).

В HTML добавляю кнопу обычным div'ом, событие по клику слушаю в скрипте примерно так:
$('#mybutt').click(function(){...});

Дополнительно использу JQ )

Как влиять на HTML из самой сцены с помощью JS Callback я разобрался, а вот в обратном направлении немного сложнее…

Подскажите, что нужно прописать в функцию, чтоб она начала проигровать сцену с 1 по 100 кадр, а по клику на соседнюю кнопу с 101 по 200…
Или просто как осуществляется старт анимации скриптом (вернее не анимации, а таймлайна).

Спасибо. Буду признателен если с примерами или немного "разжевано"
02 марта 2018 14:33
Еще вопрос есть… Как отключить колесо мыши??? А то получается как только мыша над контейнером, скрол страницы прерывается, а это не есть гуд.
С предыдущим вопросом так и не разобрался… Подскажите плз… Может примерчик какой-нить?
02 марта 2018 08:18
Решил пробовать через HTML

Сразу появился вопрос.
В html есть кнопка и стиль к ней:

<!DOCTYPE html>
<html>

<head>

<title>Test</title>

<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">

<link rel="stylesheet" href="izuran_slider.css" type="text/css">

<script type="text/javascript" src="b4w.simple.min.js"></script>
<script type="text/javascript" src="jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="izuran_slider.js"></script>


<style>
	
	#tester {
	  position: absolute;
	  z-index: 1000;
	  background-color: #ffa201;
	  border-radius: 5px;
	  color: #000;
	  cursor: pointer;
	  top: 200px;
	  left: 400px;
	  width:200px;
	  height: 30px;
	  line-height: 30px;
	  text-align: center;
	}

</style>

</head>

<body>
	<div id="tester"> button </div>
	<div id="main_canvas_container"></div>
</body>

</html>


В JS создаю обработчик:

function load_cb(data_id, success) {
if (!success) {
console.log("b4w load failure");
return;
}
m_app.enable_camera_controls();


$('#tester').click(function(){
// alert('ok');
});
}

Теперь как мне сконнектить 3д сцену с этой функцией?
Т. е. чтоб по нажатию по кнопке запускалась например нодовая логика или проигрывание/остановка???
https://www.blend4web.com/ru/community/article/352/
Эту статью читал, но не могу врубиться, как поменять направление управления. Т. е. не когда событие происходит в сцене, а наоборот передать его в сцену.
Т. е. output[0] отправляется в сцену как я понял???

function node_cb(input,output) {
console.log (input[0]);
output[0] = " Hey Logic!";
}



Если управление сценой создается напрямую из JS типа этого:
b4w.require("project1_main").inherit_mat("Sphere.001", "chrome");
То где посмотреть перечень всех возможностей?
Как мне например по клику на кнопку остановить анимацию? Или перепрыгнуть на нужный кадр?
23 февраля 2018 08:37
Доброго времени суток… Я только начинаю изучать blend4web и блендер в целом. Переход с майки дается не просто, но разрабочики блендера хоть в этом меня пощадили дав привычное управление вьюпортами.
Для меня показалось вхождение несколько сложным в плане хелпов…
Да я штудирую документацию, но хотелось бы больше живых примеров. Так проще учиться )а ведь это залог успеха проекта). Почему бы ребятам у "руля" не взять опыт рендер.ру? Когда они придумали систему поощрения для написания уроков?
Т. е. они сейчас есть на blend4web, но они как-бы не особо помогают (точнее помогают когда психанул, но ведь обучение так не строится)… Кроме того, я всегда выхожу на них через гугл, а не логично через сайт. Т. е. они засунуты в 3 пис*ы. Все равно 70% понимания лично я получаю из наглядных примеров (в основном видео).

На мой взгляд чем проще вхождение - тем успешнее платформа, а мне бы хотелось чтоб наша технология шла в мир… И самый лучший вариант - это живые примеры. Вероятно человек, который ведет документацию получает за 50 тыс. Но ребята, вы бы могли сделать еще одну вакансию и использовать эти деньги иначе, получив при этом больше конетента!

Может быть есть смысл подумать на эту тему??? Создать какие-то конкурсы по написанию уроков… Или может другой подход использовать чтоб платформа была более живой…

Хорошие примеры на мой взгляд - рендер, констракт2
23 февраля 2018 08:31
Почему вы не хотите сделать html кнопки? А если нужна нодовая логика то нажатие на html элемент можно контролировать нодой JS callback
Любопытно, где можно узнать об этом подробнее?
23 февраля 2018 08:27
Еще вопрос, понимая логику API… В JS как мы обращаемся к объекту? Например у меня в сцене есть меш с именем cube. Как мне его потрогать из JS? Если можно, то буду благодарен за пример простой конструкции с пояснениями. Спасибо
23 февраля 2018 08:21
Ответ на сообщение пользователя ice99
Пробовал - надписи получаются заблюренными. Даже тему как-то создавал на форуме. Для больших кнопок пойдёт, а если на 3В-кнопке текстура с текстом - выглядит плохо. Оптимально - html.
Спасибо за подсказку, а blend4web позволяет сразу отправить на хардваррендер несколько вьюпортов? (пока не читал вашу ссылку, но на заметку взял)
23 февраля 2018 08:14
Ответ на сообщение пользователя Михаил Беззубиков
Почему вы не хотите сделать html кнопки? А если нужна нодовая логика то нажатие на html элемент можно контролировать нодой JS callback
Я уже наученный опытом… Я майщик… Блендер единственный 3д софт, который меня пощадил (были попытки с КСИ, Максом) ))) И я вроде даже как свыкся с ним )) Но по собственному опыту - я предпочитаю изучать что-то долями. Т. е. не лезть сразу и везде, а идти от простого к сложному (хотя это в принципе и не сложно скорее всего)… Просто хочется понять можно ли это сделать чисто визуальными инструментами без кода?
У меня был опыт по изучению майки в 04 году, когда я сходу забурился в MEL (т. к. программирование в то время для меня было ближе и я пытался идти в сторону создания эффектов используя партиклы и флюиды) в итоге получилась такая каша, которая меня отбросила скорее назад. С того времени у меня простое правило в изучении новых технологий - идти от простого к сложному закрепляя знания экспериментально.