jasa video

galen.nolan1@gmail.comn> Hub Contact Person HP 085642440571 (wa /telp) / 085642440571 [call only] Galennolan.

Gerakan acak Grid expression after effect



Berikut ungkapan dari keluarga gerak acak yang akan memindahkan objek secara acak di sepanjang grid ke posisi baru di grid.

Untuk menunjukkan ini, saya diterapkan ungkapan ini untuk properti posisi yang solid persegi dan kemudian digandakan padat beberapa kali.


columns = 10; //number of columns in grid
tHold= .2; //hold time (must be less than tmin)
tMin = .5; //minimum cycle time (can't be zero)
tMax = 1; //maximum cycle time

gap = this_comp.width/columns;
origin = [gap,gap];
xGrid = columns - 1;
yGrid = Math.floor(this_comp.height/gap) - 1;

start = 0;
end = 0;
j = 1;

while (time >= end){
  j += 1;
  seedRandom(j,true);
  start = end;
  end += random(tMin,tMax);
}
targetX = Math.floor(random(0,xGrid));
targetY = Math.floor(random(0,yGrid));
seedRandom(j-1,true);
x = random(); //this is a throw-away value
oldX = Math.floor(random(0,xGrid));
oldY = Math.floor(random(0,yGrid));

if(targetX == oldX && targetY == oldY){
  origin + [oldX,oldY]*gap;
}else if (time - start < tHold){
  origin + [oldX,oldY]*gap;
}else{
  deltaX = Math.abs(targetX - oldX);
  deltaY = Math.abs(targetY - oldY);
  xTime = (end - start - tHold)*(deltaX/(deltaX + deltaY));
  yTime = (end - start - tHold)*(deltaY/(deltaX + deltaY));
  if (time < start + tHold + xTime){
    startPos = origin + [oldX,oldY]*gap;
    targetPos = origin + [targetX,oldY]*gap;
    easeOut((time - start - tHold)/xTime, startPos, targetPos);
  }else{
    startPos = origin + [targetX,oldY]*gap;
    targetPos = origin + [targetX,targetY]*gap
    easeIn((time - start - tHold - xTime)/yTime, startPos, targetPos);
  }
}

Perhatikan bahwa jumlah baris dihitung dari jumlah kolom dan bahwa benda-benda datang untuk beristirahat di persimpangan baris dan kolom.

Sesuaikan jumlah kolom, terus waktu, minimum dan waktu siklus maksimum sesuai dengan kebutuhan Anda.

0 komentar: