Render.ru

Динамика проблемы с динамикой.

ARTEM TSARAEV

Активный участник
Рейтинг
13
#1
Народ у меня возникает проблема с динамикой когда шар попадает в кеглю, он не отталкивает её а втыкивается в неё, и дальше просчёт останавливается, помогите пожалсто, если можно поподробней)
 

Steelhawk

Активный участник
Рейтинг
12
#2
Надеюсь, оба тела сделали Active Rigid Body? А вообще я подозреваю, что как минимум сцену надо смотреть.
 

ARTEM TSARAEV

Активный участник
Рейтинг
13
#3
)) я сам разобрался, я вообще нормальо знаю динамику, но с этой проблемой три часа провозился пока решил, ужас
 
Рейтинг
34
#5
Пытаюсь разобраться с динамикой . В общем назрела куча вопросов .
Вопрос 1 :
Попытался ускорить динамику . Изначально динамика занимала примерно 160 кадров . Чтобы она занимала 100 кадров написал ( списал ) экспрешен для rigidSolver.currentTime типа rigidSolver.currentTime = ( 160/100 )*time1.outTime ; . Динамика стала проигрываться немного по другому а по времени заметного различия нет . Почему ?
Вопрос 2 :
В сцене есть локатор ( loc ) и эмитер . Для частиц написан такой вот рунтайм скрипт :
vector$vloc = << loc.tx , loc.ty , loc.tz >> ;
vector$vpos = position ;
vector$vres = $vloc - $vpos ;
acceleration = $vres ;
В общем у Цыпцына частицы движуться по спирали , у меня же тупо по кругу .
Подозреваю что как всегда накасячил в коде но мала ли что нить другое ?
Вопрос 3 :
Не совсем динамика скорее MEL . Для того что бы из эмитера по парядку вылетали шесть инстанированых самолётов Цыпцын для частиц в закладке Instancer для атрибута ObjectIndex создал атрибут indexPP ( Per Particle ) который равен indexPP = particleId%6 . Блин объясните как всё получилось ? Цыпцын пишет что эта формула значит " индех равен остатку деления номера частицы на 6 " .
Например вылетает первая частица . Если я правильно понял номер частицы 1/6 равно 0.16 . Почему вылетает первый самолёт ?
Например вылетает вторая частица . 2/6 равно 0.33 . Почему вылетает второй самолёт ?
 

JBond

Знаток
Рейтинг
33
#6
2.Наверно нехватает рандомной величины
acceleration = $vres+sphrand(1);

3.В первых шести делениях остатка нет .Поэтому будут присваиваться прямые значения,а потом пойдет 7%6=1, 8%6=2, 9%6=3
 
Рейтинг
34
#7
J-Bond с последним вопросом вроде со скрипом но что то в голове осело . Спасибо .
Со вторым фигня всё равно . Добавлял к acceleration рандом ... частицы просто начали немного шнырять туда сюда . Кароче позже попробую разабраться .
А вот первый вопрос я уже на саму майку начинаю грешить . Неработает созданный экспрешн . rigidSolver.currentTime и time1.outTime у меня почему то всё равно равны . Хотя rigidSolver.currentTime должен быть в 1.6 раз больше ( rigidSolver.currentTime типа rigidSolver.currentTime = ( 160/100 )*time1.outTime ; ) Ошибок при создании майка не выдала и в гиперграфе он в связях отображаеться . Почему так ?
 
Рейтинг
34
#9
J-Bond
http://www.fayloobmennik.net/808016

Две сценки . Пока залил посмотрел сценку с домино что я тебе скинул . В общем между rigidSolver и time1 появилось нода с подозрительным названием timeToUnitConversion . Попробую почитать пока хелп . А по поводу частиц я в принципе незнаю как там получаеться движение по спирали . Если только постепенно rate эмитера уменьшать , что то получаеться но это всё равно не то .
 
Рейтинг
34
#11
Да . Я вроде в майке видел галку что то вроде " сохранять без учёта версии " или попробавать в какой другой фармат импортнуть ?
PS C частицами сам только что разобрался . Conserve для частиц в 0.999 и получаеться спираль . Даволен как слон .
 

JBond

Знаток
Рейтинг
33
#12
Поставил 2012. Экспрешн работает нормально с динамикой .
Проблема в скармливании integer -float
лучше дробь заменить на целое число
 
Рейтинг
34
#13
J-Bond ещё раз спасибо .
Заменил экспрешн на rigidSolver.currentTime = ( 160.0/100.0 )*time1.outTime ; и всё заработало ! Блин а ведь совсем недавно читал что при делении на целое число , остаток не учитываеться . Вот и получалось что я умножал время на единицу . Кароче книги книгами а опыт нужен .
ЗЫ а моя сценка у тебя сразу заработала , или тож подправить пришлось ?
 

JBond

Знаток
Рейтинг
33
#14
Оно как-то странно работало. Я дробь заменил числом и время стало корректно отображаться.
 
Сверху