Render.ru
Поддержать

Проверка и исполнение цикла при анимации.

Виталий Мартынов

Активный участник
Рейтинг
11
Всем привет. Возникла такая задача. Нужно осуществить исполнение цикла на каждом фрейме анимации. Поясню на примере. Есть бокс разбитай на фрагменты, которые объединены в группу. Группа двигается по оси х. Нужно осуществить скрывание фрагментов при анимации, если их положение больше определенного значения. Составляю скрипт.


s = $*frag* -- создаю коллекцию из фрагментов
a = (s as array) -- создаю массив из коллекции
g = $Group001 -- определяю группу фрагментов
animate on
( at time 0 g.pos = [0, 0, 0]
at time 100 g.pos = [150, 0, 0] -- двигаю группу
for i = 1 to a.count do
(
if a.pos.x > 50 do hide a -- задаю скрытие фрагментов по положению
)
)

При исполнении происходит скрытие только в начальном кадре, и не происходит в остальных. А нужно чтоб куски скрывались последовательно на протяжении всей анимации, если их положение по х становится больше 50. Голову изломал - так и не получилось. Может знающие подскажут.

igorznag

Мастер
Рейтинг
103
А нужно чтоб куски скрывались последовательно на протяжении всей анимации, если их положение по х становится больше 50.
Пример: Кусок это чайник. Скрываем материал кусков.
1. В новой сцене запускаем скрипт.
2. Визуализируем сцену.
for i=1 to 5 do
(
t=Teapot();t.name="igorznag_frag"+(i as string);
m=standardMaterial();m.name="igorznag_frag_mat"+(i as string);
m.diffuse=color (random 0 255) (random 0 255) (random 0 255)
t.radius=10;t.pos.x=i*25;t.material=m
)
group $igorznag_frag* name:"igorznag_Group001"
---------------------------------------------
s=$igorznag_frag*
a = (s as array)
g = $igorznag_Group001
animate on 
(
at time 0 g.pos = [0, 0, 0] 
at time 100 g.pos = [150, 0, 0]
for i = 1 to a.count do 
( 
for j=0 to 100 do
(
at time j 
if a[i].pos.x > 50 then a[i].material.opacity=0
else a[i].material.opacity=100
)--for j=0 to 100 do
)--for i = 1 to a.count do
)--animate on

Виталий Мартынов

Активный участник
Рейтинг
11
Спасибо за ответ. Понял свою ошибку. Нужно было создавать дополнительный цикл для animate для создания ключей
и анимировать visibility (это если не юзать материал).