Форум

Сообщения, созданные пользователем masterjiamaster
28 ноября 2016 21:56
спасибо)
28 ноября 2016 19:11
напишите ссылку пожалуйста где скачать ? b4w.whitespace.min.js
28 ноября 2016 17:41
Здравствуйте, скачал новую версию b4w.min.js библиотеки, скачал новую версию блендера, и почему-то сейчас если вывести массив полученный методом get_all_objects() то выведет следующую структуру в консоли
0
:
Object
Aq
:
null
Aw
:
Array[0]
C
:
null
Ct
:
null
Ee
:
null
Ek
:
false
Fs
:
null
Fu
:
Array[0]
G
:
Array[1]
Hc
:
Array[0]
Ib
:
""
La
:
true
Lj
:
20
NB
:
false
Ok
:
"Cube"
P
:
null
Qo
:
false
Sp
:
true
Sq
:
"AUTO"
Tb
:
null
Tf
:
Array[1]
Vj
:
true
Vl
:
null
Wl
:
null
XB
:
Object
Ya
:
null
Zk
:
Array[0]
anchor
:
null
ba
:
Array[8]
cj
:
false
cz
:
false
dp
:
""
gi
:
"67f7a46bfa49ad77dc3b8411678a11a8"
is_character
:
false
jg
:
Object
k
:
Object
kl
:
false
name
:
"Cube"
ns
:
Array[0]
og
:
null
os
:
null
ow
:
false
parent
:
null
pe
:
Array[0]
pf
:
null
qp
:
Array[0]
qz
:
null
type
:
"MESH"
v
:
null
ve
:
false
vq
:
Array[3]
zf
:
Array[0]
__proto__
:
Object


а раньше вот у меня осталась стараюя наработка структура 1 объекта была следующей:
0
:
Object
action_anim_cache
:
Array[2]
actions
:
Array[1]
anchor
:
null
anim_behavior_def
:
10
anim_slots
:
Array[8]
armobj
:
null
bpy_origin
:
true
character_settings
:
null
collision_id
:
""
cons_armat_bone_descends
:
Array[0]
cons_descends
:
Array[1]
constraint
:
null
correct_bounding_offset
:
"AUTO"
field
:
null
floater
:
null
floating_settings
:
null
is_character
:
false
is_dynamic
:
true
is_floating
:
false
is_hair_dupli
:
false
is_vehicle
:
false
light
:
null
meta_objects
:
Array[0]
metatags
:
null
name
:
"zazhimnoe_kolco_r.001"
need_update_transform
:
false
nla_events
:
Array[0]
origin_name
:
"zazhimnoe_kolco_r.001"
outline_animation
:
Object
parent
:
null
parent_bone
:
""
parent_is_dupli
:
false
physics
:
null
physics_constraints
:
Array[0]
physics_settings
:
Object
pinverse_tsr
:
null
reflective_objs
:
Array[0]
render
:
Object
scenes_data
:
Array[1]
sensor_manifolds
:
null
sensor_manifolds_arr
:
Array[0]
sfx
:
null
type
:
"MESH"
use_default_animation
:
false
use_obj_physics
:
false
uuid
:
"58db198a8d33bfa6ca28e43acd11b6c0"
vehicle
:
null
vehicle_settings
:
null
vertex_anim
:
Array[0]
viewport_alignment
:
null
__proto__
:
Object


у меня на сцене было около 300 объектов я запускал анимацию путем получения объектов через метод get_all_objects() а затем я в цикле я получал имя и action объекта и добавлял анимацию через apply(obj,action); ну и дальше соответственно запускал через play

дк вот интересует вопрос часто ли будет меняться структура объектов ? и правильно ли я вообще применяю анимацию к массе объектов, для полноты картины скину часть кода который отвечает за воспроизведение анимации

var _anim_get_frame = 1;//устанавливаем изначально 1 кадр  текущим для анимации
var _frame = 1;
var _add_anim = 0;/*если равен 1, это значит что для объектов мы уже добавили анимацию и можно с ними работать*/
var _timerId;
function play_anim(_frame,speed) {
    clearInterval(_timerId);
        _timerId = setInterval(function() {
            $('.clock').text(parseInt($('.clock').text())+1);
            $('#time').val(parseInt($('#time').val())+24);
            
            if (parseInt($('.clock').text())>=80) {
                setTimeout(function() {
                clearInterval(_timerId);
                $('.clock').text(80);
                $('#time').val(1800);
              }, 0); 
            }
          }, 1000);
        setTimeout(function() {
         clearInterval(_timerId);
         $('.clock').text(0);
       }, 100000);  

    //alert(_frame);
    $('.button_container:nth-child(2)').css("display","block");
    $('.button_container:nth-child(1)').css("display","none");
    
   var mas = m_scs.get_all_objects("ALL",m_obj.DATA_ID_ALL);
   //console.log(mas);
    var mas_name = [];
    var lok = 1;
    for (var key in mas) {
        console.log(mas);
        mas_name[lok] = mas[key].name
        lok++;
        if (mas[key].type == 'Lamp' || mas[key].type == "WORD" || mas[key].type == 'EMPTY') {
            
        }else{

                
            
            var obj = m_scs.get_object_by_name(mas[key].name);//имя объекта
            var amima = m_anim.is_animated(obj);
            //console.log(amima);

            if ($.isEmptyObject(mas[key].actions)) {
                
            }else{
                
                
                
                
                var action = mas[key].actions[0].name;//актион объекта
               
                if (obj) {
                   
                    if (_add_anim == 0) {
                        m_anim.apply(obj,action);
                        //_anim_get_frame = m_anim.get_frame(obj);/*получаем текущий кадр*/
                        //console.log("kadr="+_anim_get_frame);
                    
                        m_anim.set_behavior(obj,m_anim.AB_FINISH_STOP);
                        if (!_anim_playing_ob) {
                            //m_anim.set_speed(obj, anim_speed);
                            //console.log(anim_speed);
                            m_anim.play(obj,function(){
                                _anim_playing_ob = false;
                                //anim_speed *= -1;
                                _anim_get_frame = m_anim.get_frame(obj);
                               m_anim.set_frame (obj, _anim_get_frame);
                                });
                       
                        }else{
                         
                        }
                       
                    }else{
                        if (parseInt(_frame) != 1 && typeof(_frame) == "string") {
                            var anim_lenght = m_anim.get_anim_length(obj);
                            if (parseInt(_frame) >= parseInt(anim_lenght)) {
                                m_anim.set_last_frame (obj);
                            }else{
                                m_anim.set_frame (obj,parseInt(_frame));
                            }
                        }
                        //    
                        //}else{
                        //    if (anim_speed == 1) {
                        //        m_anim.set_frame (obj, _anim_get_frame);/*устанавливаем текущий кадр после остановки анимации*/
                        //    }else{
                        //        m_anim.set_last_frame (obj);
                        //    }
                        //}
                        //_anim_get_frame = m_anim.get_frame(obj);/*получаем текущий кадр*/
                        //console.log("kadr="+_anim_get_frame);
                    
                        m_anim.set_behavior(obj,m_anim.AB_FINISH_STOP);
                        if (!_anim_playing_ob) {
                            m_anim.set_speed(obj, speed);
                            //console.log(anim_speed);
                            m_anim.play(obj,function(){
                                _anim_playing_ob = false;
                                //anim_speed *= -1;
                                _anim_get_frame = m_anim.get_frame(obj);
                               m_anim.set_frame (obj, _anim_get_frame);
                                });
                    
                        }
                    }
                }
            }                                    
        }
    }
    console.log(mas_name);
     _add_anim = 1;/*добавили к объектам анимацию и можно с ними уже работать*/
}
$('#play').click(function(_frame){
        var speed = 1;
        play_anim(_frame,speed);
});




и теперь чтобы получить имя action объекта мне нужно прописывать mas[key].Tf[0].action.name

что за Tf ? непонятное сочетание символов, раньше чтобы получить имя action объекта
нужно было написать mas[key].actions[0].name все понятно)
06 октября 2016 11:42
Доброго времени суток! есть 3д модель из кучи мелких деталей с анимацией, не могу понять почему не работает анимация в обратном направлении, создал тестово кнопку "revers", если запустить анимацию и затем нажать на кнопку "revers" то она вроде как работает в обратном направлении, но как то слишком быстро и неправильно, подскажите в чем может быть проблема ?
тут около 300 объектов, сначала получаю все имена объектов , проверяю на анимацию и запускаю анимацию, реверсивную анимацию сделал изменив скорость на -1
вот ссылка на сам проект http://vellift.ru/anim-sgr-10_11/
вот код:
function play_anim(_frame,speed) {
    clearInterval(_timerId);
        _timerId = setInterval(function() {
            $('.clock').text(parseInt($('.clock').text())+1);
            $('#time').val(parseInt($('#time').val())+24);
            
            if (parseInt($('.clock').text())>=80) {
                setTimeout(function() {
                clearInterval(_timerId);
                $('.clock').text(80);
                $('#time').val(1800);
              }, 0); 
            }
          }, 1000);
        setTimeout(function() {
         clearInterval(_timerId);
         $('.clock').text(0);
       }, 100000);  

 
    $('.button_container:nth-child(2)').css("display","block");
    $('.button_container:nth-child(1)').css("display","none");
    
   var mas = m_scs.get_all_objects("ALL",m_obj.DATA_ID_ALL);

    var mas_name = [];
    var lok = 1;
    for (var key in mas) {
        mas_name[lok] = mas[key].name
        lok++;
        if (mas[key].type == 'LAMP' || mas[key].type == 'WORLD' || mas[key].type == 'EMPTY') {
            
        }else{

                
            
            var obj = m_scs.get_object_by_name(mas[key].name);//имя объекта
            var amima = m_anim.is_animated(obj);
           

            if ($.isEmptyObject(mas[key].actions)) {
             
            }else{
                var action = mas[key].actions[0].name;//актион объекта
                if (obj) {
                    if (_add_anim == 0) {
                        m_anim.apply(obj,action);
                        
                    
                        m_anim.set_behavior(obj,m_anim.AB_FINISH_STOP);
                        if (!_anim_playing_ob) {
                            
                            m_anim.play(obj,function(){
                                _anim_playing_ob = false;
                              
                                _anim_get_frame = m_anim.get_frame(obj);
                               m_anim.set_frame (obj, _anim_get_frame);
                                });
                    
                        }
                       
                    }else{
                        if (parseInt(_frame) != 1 && typeof(_frame) == "string") {
                            var anim_lenght = m_anim.get_anim_length(obj);
                            if (parseInt(_frame) >= parseInt(anim_lenght)) {
                                m_anim.set_last_frame (obj);
                            }else{
                                m_anim.set_frame (obj,parseInt(_frame));
                            }
                        }
                       
                    
                        m_anim.set_behavior(obj,m_anim.AB_FINISH_STOP);
                        if (!_anim_playing_ob) {
                            m_anim.set_speed(obj, speed);
                            //console.log(anim_speed);
                            m_anim.play(obj,function(){
                                _anim_playing_ob = false;
                                //anim_speed *= -1;
                                _anim_get_frame = m_anim.get_frame(obj);
                               m_anim.set_frame (obj, _anim_get_frame);
                                });
                    
                        }
                    }
                }
            }                                    
        }
    }
    console.log(mas_name);
     _add_anim = 1;/*добавили к объектам анимацию и можно с ними уже работать*/
}
$('#play').click(function(_frame){
        var speed = 1;
        play_anim(_frame,speed);
});
$('#revers').click(function(_frame){
        var speed = -1;
        play_anim(_frame,speed);
});
27 июля 2016 21:04
оууу спасибо)
27 июля 2016 15:02
Столкнулся с такой проблемой, в блендере создал цилиндр увеличил его по z, иными словами увеличил высоту цилиндра экспортировал, открыл в браузере но цилиндр остался по высоте таким же размером как и по " х" как и по "y", если поменять размер по ''x" или по "y" то и по z цилиндр меняется, как будто стоит какой то ограничитель, подскажите как можно избавиться от этого ?

и еще такой вопрос для отображения размеров деталей какие лучше использовать элементы для стрелочек ?
27 июля 2016 14:59
СПасибо)
27 июля 2016 08:51
Здравствуйте, а как можно сделать подсветку деталей с помощью скриптов, а не при помощи blender там где у каждого объекта можно поставить галочку при наведении и он будет подсвечиваться
27 июля 2016 07:39
Спасибо)
26 июля 2016 18:53
Здравствуйте, подскажите как лучше сделать временную шкалу для анимации, например у меня есть 3д объект с анимацией и хочу его выложить на сайт, и чтобы пользователь мог запустить анимацию остановить анимацию, и с помощью временной шкалы регулировать текущий кадр, что вы можете посоветовать ?
у меня такая идея, создать ползунок в виде html элементов, повешать на них события зажатия и отжатия кнопки мыши, и получать из ползунка значение и подставлять в массив с функцией которая возращает кадр анимации и применять это все к объекту