ExtendScript + Expression

<= Artikel sebelumnya ExtendScript Bekerja dengan Komposisi





Halo.





Di artikel sebelumnya, kami membuat dasar model untuk membangun judul di scene After Effects. Kami menambahkan adegan ke proyek, atau beberapa adegan. Sekarang kita perlu menambahkan kredit ke tempat kejadian. Untuk menambahkan judul, Anda perlu membuat model dalam tata letak AE, yang akan membantu kami untuk menyalin.





Kami masuk ke proyek, di mana komposisi ModelScene_1x1 telah dibuat . Di folder 1x1 yang sama, buat dua komposisi. Kami akan memberi nama salah satunya ModelTitre_simple_1x1 , yang lainnya ModelTitre_double_1x1 .





Mari kita mulai dengan komposisi ModelTitre_simple_1x1 . Mari tambahkan itu ke komposisi ModelScene_1x1.





Di ModelTitre_simple_1x1 itu sendiri , kami akan membuat kotak teks. Sebut saja reference_text .





. , -. After Effects, . , . . Expression, Javascript, , . . reference_text, Transform, Position.





Animation > Add Expression. Position Expression , .





:





var width = Math.round(thisLayer.sourceRectAtTime().width);
var padding = 20;
var hideX = -width - padding;
var showX = padding;
var posY = transform.position[1];
var animationTime = 0.5;

var timeIn = comp("ModelScene_1x1")
   .layer(thisComp.name)
   .inPoint;

var timeOut = comp("ModelScene_1x1")
   .layer(thisComp.name)
   .outPoint;

if (time <= animationTime) {
   easeOut(
       time,
       0,
       animationTime,
       [hideX, posY],
       [showX, posY]
   );
} else {
   easeOut(
       time,
       timeOut - timeIn - animationTime,
       timeOut - timeIn,
       [showX, posY],
       [hideX, posY]
   );
}
      
      



, . . . thisLayer, , sourceRectAtTime, .





thisLayer.sourceRectAtTime().width
      
      



. . , , .





var hideX = -width - padding;
var showX = padding;
      
      



Y ,





var posY = transform.position[1];
      
      



, . , .





var animationTime = 0.5;

var timeIn = comp("ModelScene_1x1")
   .layer(thisComp.name)
   .inPoint;

var timeOut = comp("ModelScene_1x1")
   .layer(thisComp.name)
   .outPoint;
      
      



, ModelScene_1x1, . , , thisComp.name. inPoint outPoint   .





, . , 0. animationTime, , .





if (time <= animationTime) {
   easeOut(
       time,
       0,
       animationTime,
       [hideX, posY],
       [showX, posY]
   );
}
      
      



easeOut, , 5 . 





  • time -





  • startTime - , time >= startTime





  • endTime -





  • startPosition -





  • endPosition -





position , X Y. , , X, - Y.





, ,





easeOut(
       time,
       timeOut - timeIn - animationTime,
       timeOut - timeIn,
       [showX, posY],
       [hideX, posY]
   );
      
      



-





timeOut - timeIn
      
      



animationTime





timeOut - timeIn - animationTime
      
      



, , ModelScene_1x1. , , .





, ModelTiter_double_1x1. . , . , , . reference_text, strin_1 string_2





reference_text Guide Layer.





, . , string_1 string_2. ? . , reference_text. , .





, Expression. sourceText string_1 Animation > Add Expression









var refText = thisComp.layer("reference_text")
    .text.sourceText.split("\r");

var stringID = parseInt(thisLayer.name.split("_")[1]);

refText[stringID - 1]
      
      



reference_text . , \r. refText[0], , id, refText id. sourceText string_2. string_1 reference_text, string_2 - .





. simple, , . , .





Position string_1Expression ModelTitre_simple_1x1. delay.





var delay = 0.3;
      
      



( 0.3 ):





easeOut(time,
   timeOut - timeIn - animationTime - delay,
   timeOut - timeIn - delay,
   [showX, posY],
   [hideX, posY]
);
      
      



, delay , .





Sekarang kami memiliki tata letak dari dua jenis judul dan semuanya siap untuk ditampilkan. Tapi kita akan membicarakan tentang bagaimana melakukannya lain kali. 





Anda dapat mengunduh semua Ekspresi dari artikel ini di sini





Dokumentasi ekspresi di sini





Sekian untuk hari ini.





<= Artikel sebelumnya ExtendScript Bekerja dengan Komposisi








All Articles