Cách sử dụng biểu thức Time Expression trong After Effect

Cách sử dụng biểu thức Time Expression trong After Effect

Bởi MotionArray vào 7/1/20 lúc 14:51
  1. MotionArray

    MotionArray QT

    Đã được thích:
    45
    Nếu bạn muốn tạo ra 1 chuyển động phức tạp mà không muốn dùng tay để kéo thả tạo , nhưng muốn tránh tạo ra hàng trăm keyframe bằng tay, hãy thử sử dụng các Expression(biểu thức). Expression là một biểu thức có thể gán giá trị được tính toán ra vào thuộc tính đối tượng tại 1 keyframe.

    Một trong những Expression khá hay trong After Effects là Time Expression.

    Time Expression là gì?


    [​IMG]

    Time Expression trong After Effects trả về thời gian hiện tại của tác phẩm tính bằng giây. Bạn có thể viết biểu thức thời gian trong After Effects bằng cách nhập lênh sau:

    Mã:
    time;
    Các giá trị được tạo bởi biểu thức này có thể được sử dụng để điều khiển chuyển động bằng cách kết nối một giá trị thuộc tính với biểu thức.
    Trong ví dụ trên tôi đã đã sử dụng một layer văn bản để xem trước giá trị được tạo bởi biểu thức Time. Khi video đang phát, bạn sẽ thấy các giây được tính trong bảng composition thông qua layer văn bản. Tất cả những gì tôi đã làm được sử dụng một biểu thức thời gian đơn giản để After Effects tạo ra các giá trị đó.

    Mã:
    time.toFixed(2);
    Làm thế nào để sử dụng Time Expression?

    Cơ bản cách để chèn Expresstion


    Khi muốn đặt key một tham số bất kỳ thì bạn chỉ việc click vào biểu tượng cái đồng hồ trước tham số. Và khi muốn sử dụng expression trên tham số đó bạn chỉ việc giữ phím Alt và nhấn vào biểu tượng cái đồng hồ thì AE sẽ hiện ra 1 hộp thoại để bạn nhập biểu thức vào.

    Nếu không muốn sử dụng Expression nữa thì chỉ việc xóa biểu thức đi, hoặc nhấn vào dấu = để không áp dụng biểu thức cho đối tượng.


    Để giúp minh họa giải thích chính xác những gì tôi muốn nói, tôi muốn bạn nghĩ về thời gian theo một cách mới. Hãy thử nghĩ về thời gian là con số mà bạn có thể tự tạo ra chứ không phải dựa theo bộ đếm thời gian.

    Ví dụ: Nếu tôi nhân đôi Time Expression, nó sẽ hiện 8 giây chứ không phải 4 giây.

    Mã:
    time*2;
    [​IMG]

    Tôi sẽ thêm biểu thức thời gian vào thuộc tính xoay vòng. Thuộc tính xoay vòng sẽ trả về 1 độ mỗi 1 giây.

    [​IMG]

    Cứ mỗi giây, chế phẩm chạy vòng quay sẽ tăng thêm một độ. Nhưng, ví dụ đó khá nhàm chán và bạn có thể không thấy nhiều thay đổi lắm. Hãy tăng tốc mọi thứ lên một chút!

    [​IMG]

    Trong ví dụ đầu tiên, chúng tôi thử nghiệm 1 độ cho mỗi giây. Vì vậy, nếu chúng ta muốn nó quay đủ vòng tròn, chúng ta cần biết có bao nhiêu độ trong 1 vòng quay; đó là 360 độ.

    Mã:
    time*360;
    Bằng cách nhân thời gian với 360, After Effects sẽ tăng tốc quá trình theo cấp số nhân.

    Những ví dụ tuyệt vời về Time Expression

    1 Xoay nhiều layer


    Dưới đây là một ví dụ về các vòng quay ở các tốc độ khác nhau.

    [​IMG]

    Tôi lấy Time Expression và nhân chúng với số lượng khác nhau!

    Để xoay, nhân thời gian với 360, là một vòng quay, sau đó chia nó cho số giây bạn muốn một vòng quay xảy ra. Đây là đoạn mã đại diện cho ý tưởng:

    Mã:
    // One full rotation every 2 seconds
    time*(360/2);

    2 Tạo chuyển động chờ


    Một cách thực sự hữu ích để khai thác Time Expression là tạo ra các chuyển động bị trì hoãn. Chúng ta thực sự có thể yêu cầu After Effects tua về
    phía trước và tua lùi lại. Đối với điều này, tôi sẽ giới thiệu một giá trị biểu thức mới là valueAtTime();

    [​IMG]

    Trong ví dụ này, tôi đã yêu cầu After Effects xem xét vị trí x của một layer khác và sau đó bảo nó trì hoãn nửa giây. Thật đáng ngạc nhiên, mã rất đơn giản và bằng cách sử dụng chỉ mục của một layer, bạn có thể lặp đi lặp lại nhiều lần với mỗi layer có độ trễ riêng. Lưu ý: Biểu thức chỉ mục trong After Effects kéo một giá trị dựa trên thứ tự của layer trong timeline.

    Mã:
    thisComp.layer (index + 1) .transform.xPocation.valueAtTime (time - .5)
    Liệu trên có vẻ khó hiểu. Đây là cách anh ấy chia nhỏ valueAtTime:

    Mã:
    var halfASecond = 0.5;
    var now = time;
    var halfASecondAgo = now - halfASecond;
    valueAtTime(halfASecondAgo);
    
    Tóm lại, valueAtTime là một biểu thức cho After Effects kéo một giá trị từ một thuộc tính (scale, position, slider,...) trong một thời gian khai báo.

    Thực hành


    Nếu bạn muốn thử một thứ gì đó thú vị, tôi sẽ gửi cho bạn một tệp dự án đơn giản.



    Nguồn: schoolofmotion.com

     
    1 ♥
    Có thể bạn thích
Hầu hết mọi thứ di chuyển và liên quan đến một yếu tố đồ hoạ thì được gọi là Motion Graphic.

Bình luận

Thảo luận trong 'Mẹo - Hướng dẫn' bắt đầu bởi MotionArray, 7/1/20.

    1. daoyolee

      daoyolee Newbie

      Đã được thích:
      12
      có ai biết cách làm màu gradient chạy theo cái kim đồng hồ như này là làm như thế nào không
      [​IMG]
       
    2. 1tsm3ed

      1tsm3ed Newbie

      Đã được thích:
      1
      Theo mình thì cách đơn giản nhất là bạn pre compose layer hình tròn lại rồi sử dụng expression như kim đồng hồ
       
      1 ♥
    3. MotionArray

      MotionArray QT

      Đã được thích:
      45
      Cảm ơn ý kiến của bạn
       

Chia sẻ trang này