Banner

Hãy tưởng tượng, bạn muốn tạo và liên kết hàng trăm hoạt ảnh animation phức tạp, nhưng nếu làm thủ công bằng t ay thì sẽ là một cơn ác mộng. Đừng lo! Adobe After Effects sẽ đem đếm cho bạn giải pháp cực kỳ hiệu quả. Một biểu thức After Effects Expression là một đoạn mã JavaScript để gán các giá trị cho một thuộc tính lớp layer tại một thời điểm cụ thể, nhằm thay đổi dễ dàng các thông số như position, opacity, scale, ….

Expressions

Tại sao lại cần dùng After Effects Expression

Ví dụ: bạn có một quả bóng di chuyển trên màn hình từ trái sang phải, nhưng bạn cũng muốn quả bóng đó lắc lư. Thay vì tạo hoạt ảnh cho thuộc tính bằng nhiều điển keyframe kết hợp Easy Ease In/Out, chỉ với vài dòng mã, chúng ta đã có được điều đó

Tiết kiệm thời gian và tạo hoạt ảnh nhanh chóng

Các biểu thức expression cho phép bạn tự động hóa các hành động (chẳng hạn như lắc lư, rung rinh hoặc trả lại). Điều này tiết kiệm thời gian đáng kể, trong đó bạn không phải tạo khung hình chính mới cho mỗi hành động. Dưới đây là một vài ví dụ để bạn bắt đầu.

Liên kết các thuộc tính khác nhau

Bạn có thể sử dụng các biểu thức để liên kết các thuộc tính khác nhau như Xoay (Rotate) và Vị trí (Position) trên các bố cục. Việc liên kết có thể giúp bạn tạo các hoạt ảnh khác nhau mà không cần phải viết các biểu thức khác nhau cho mỗi loại.

Tạo motion infographics

Bạn có thể sử dụng các biểu thức khi tạo các mẫu Đồ họa chuyển động. Điều chỉnh các thuộc tính khác nhau, liên kết hoạt ảnh và sửa đổi các MOGRT trong After Effects.

Kiểm soát nhiều lớp để tạo ra các hình ảnh động phức tạp.

Roi chọn cho phép bạn dễ dàng điều khiển nhiều hoạt ảnh từ một vài điều khiển, tạo ra các hoạt ảnh sẽ tốn nhiều công sức hơn bằng cách sử dụng các tính năng khác.

Tạo đồ thị và biểu đồ động

Nhanh chóng tạo đồ họa thông tin động và chuyển động như bản đồ thế giới động và biểu đồ thanh động cho biết chỉ số ô nhiễm của các quốc gia khác nhau.

Lưu và sử dụng lại các biểu thức

Lưu các biểu thức dưới dạng mẫu và sử dụng lại trong các project After Effects khác. 

Giao diện biểu thức After Effect Expression

Trước khi chúng ta bắt đầu làm việc với các biểu thức expression, bước đầu tiên chúng ta cần tìm hiểu giao diện của nó. Sử dụng các bước sau để bắt đầu:

Bước 1: Tạo mới composition và chọn trên thanh menu: Layer > New > Solid để tạo một layer mới.

Bước 2: Trong Timeline, chọn layer vừa tạo và nhấn phím S trên bàn phím của bạn để hiển thị thuộc tính Scale tỷ lệ. Từ đây, hành trình của bạn với các biểu thức bắt đầu.

expression

Bước 3: Tạo một biểu thức After Effects Expression bằng cách nhấn giữ phím Alt (Window) hoặc Opt (MacOS) và đồng thời click chuột vào biểu tượng đồng hồ bấm giờ để thêm biểu thức vào thuộc tính. After Effects chỉ định các biểu thức mặc định cho tất cả các thuộc tính mà bạn có thể sửa đổi sau này.

Lưu ý những thay đổi trong giao diện After Effect từ khi tạo biểu thức. Đầu tiên, giá trị của thuộc tính Scale (hiển thị là 100,100) thay đổi từ màu xanh lam sang màu đỏ. Màu đỏ cho biết giá trị có một biểu thức hoạt động.

expression open

Bước 4: Một vòng tròn đã xuất hiện ở bên trái của đồng hồ bấm giờ, hãy nhấp vào nó để mở. Sử dụng nó để hiển thị chính biểu thức.

  • Nút đầu tiên trông giống như một dấu bằng (“=”) và bật và tắt biểu thức. Nó xuất hiện màu xanh lam khi biểu thức được bật.
  • Nút thứ hai chuyển đổi hiển thị giá trị của biểu thức theo thời gian trong Graph Editor.
  • Nút thứ ba với hình xoắn ốc nhỏ là cái roi mà bạn có thể sử dụng để giúp xây dựng các biểu thức.
  • Nút thứ tư mở menu ngôn ngữ biểu thức Expression Language , có thể được sử dụng để giúp xây dựng biểu thức.
expression options

Bước 5: Cuối cùng, ở bên phải của bốn nút, bạn có thể xem biểu thức mặc định biến đổi vị trí. Nếu bạn muốn thay đổi biểu thức, hãy bấm vào văn bản biểu thức trong Dòng thời gian để kích hoạt trường trình chỉnh sửa biểu thức. Nó hoạt động giống như bất kỳ trường văn bản nào; sao chép, dán, chọn hoặc kéo văn bản. Nhấn enter sẽ tạo ra một dòng mới và bạn có thể thay đổi kích thước chiều cao. Nhấp vào nó và nhập biểu thức bạn muốn, chẳng hạn như lung lay: wiggle(3,50). 

edit expression
 

Sử dụng toán học đơn giản trong các biểu thức After Effects Expression

Các giá trị cho thuộc tính có chứa biểu thức xuất hiện ở kiểu màu đỏ hoặc hồng.

Một cách tốt để bắt đầu làm việc với các biểu thức là tạo một biểu thức đơn giản với pick whip và sau đó điều chỉnh hành vi của biểu thức bằng các phép toán đơn giản, chẳng hạn như các phép toán được liệt kê trong bảng sau:

Ký tự

Chức năng

+

Cộng

Trừ

/

Chia

*

Nhân

*-1

Thực hiện ngược lại với ban đầu, chẳng hạn như ngược chiều kim đồng hồ thay vì chiều kim đồng hồ.

Các biểu thức phổ biến bạn có thể sử dụng

Time

time*40

Biểu thức thời gian phù hợp với các vật thể chuyển động vĩnh viễn. Ví dụ: nếu bạn muốn một đối tượng xoay vô thời hạn, bạn có thể thêm thời gian biểu thức vào thuộc tính Rotation và đối tượng sẽ quay với tốc độ 1 độ trên giây. Nó cũng hoạt động với các phương trình toán học cơ bản, vì vậy nếu bạn muốn đối tượng trước đó quay nhanh hơn 40 lần, hãy sử dụng biểu thức time*40.

Wiggle

wiggle

Biểu thức lắc lư là một trong những biểu thức After Effects phổ biến nhất. Biểu thức lung lay thực hiện chính xác những gì tương tự gợi ý – nó khiến một thuộc tính lắc lư theo một số lượng ngẫu nhiên. Biểu thức này có thể được sử dụng để làm cho cảnh của bạn có vẻ tự nhiên hơn.

Các con số giữa dấu ngoặc đơn kiểm soát sự lung lay; số đầu tiên là số lần lắc trong một giây và số thứ hai là số lần lắc. Vì vậy, thuộc tính Vị trí có biểu thức lung lay wiggle(2,30) sẽ lắc lư 2 lần mỗi giây lên đến 30 pixel.

Loop

loop_out

Nếu bạn sử dụng nhiều khung hình chính để tạo hoạt ảnh thay thế, việc này có thể tốn thời gian. Thay vào đó, hãy sử dụng biểu thức vòng lặp để tự động hóa việc này và tạo các hoạt ảnh lặp phức tạp. Có hai kiểu lặp – loopIn và loopOut (được sử dụng phổ biến hơn). Vì vậy, thuộc tính Rotation với biểu thức loopOut (); hoặc loopOut (“chu kỳ”); lặp lại hoạt ảnh của bạn cho đến khi kết thúc dòng thời gian.

5 biểu thức After Effects Expression mỳ ăn liền đơn giản

Bounce Expression

Đầu tiên, hãy tạo một hoạt ảnh animation (tỷ lệ scale 100 đến 120% hoặc vị trí từ trái sang phải). Tiếp theo, hãy áp dụng biểu thức dưới đây cho thuộc tính mà bạn đã đóng khung chính để làm cho hoạt ảnh bị trả lại.

n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time){
n--;
}
}
if (n == 0){
t = 0;
}else{
t = time - key(n).time;
}
if (n > 0 && t < 1){
v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
amp = .06;
freq = 3;
decay = 5.0;
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
}else{
value;
}

Wiggle Expression

Có thể được áp dụng cho bất kỳ thuộc tính nào, nhưng hoạt động tốt trên vị trí để tạo ra chuyển động tự nhiên của máy ảnh.

wiggle(1,50);

Squash And Stretch Expression

Áp dụng nó cho thuộc tính tỷ lệ của bất kỳ đối tượng nào. Hoạt động tốt nhất trên các biểu tượng hoặc dấu đầu dòng.

maxDev = 13; // max deviation in pixels
spd = 30; //speed of oscillation
decay = 1.0; //how fast it slows down
t = time - inPoint;
x = scale[0] + maxDev*Math.sin(spd*t)/Math.exp(decay*t);
y = scale[0]*scale[1]/x;
[x,y]

Motion Tail Expression

Đầu tiên tạo hiệu ứng cho vị trí position của một đối tượng. Sau đó, áp dụng biểu thức dưới đây cho vị trí:

delay = 5; //number of frames to delay
d = delay*thisComp.frameDuration*(index - 1);
thisComp.layer(1).position.valueAtTime(time - d)

Và mã này cho độ mờ opacity:

 opacityFactor = .75;
 Math.pow(opacityFactor,index - 1)*100

Bây giờ chỉ cần sao chép toàn bộ lớp đó (Ctrl + D / Cmd + D) một vài lần.

Timer Up Or Down Expression

Tạo một layer văn bản và áp dụng biểu thức cho thuộc tính văn bản nguồn source text.

//Define time values
var hour = Math.floor((time/60)/60);
var min = Math.floor(time/60);
var sec = Math.floor(time);
var mili = Math.floor(time*60);
// Cleaning up the values
if (mili > 59){ mili = mili - sec*60; }
if (mili < 10){ mili = "0" + mili; } if (sec > 59){ sec = sec - min*60; }
if (sec < 10){ sec = "0" + sec; } if (min >= 59){ min = min - hour*60; }
if (min < 10){ min = "0" + min; }
// no hour cleanup
if (hour < 10){ hour = "0" + hour; }
//Output
hour + ' : ' + min + ' : ' + sec + ' : ' + mili;