Trả lời ngắn
Nếu đã dùng DaVinci Resolve để dựng video, có thể anh em quen với việc bấm keyframe rồi kéo từng điểm để tạo chuyển động. Nhưng khi muốn một logo đập theo nhịp, một biểu tượng xoay đều hoặc nhiều thành phần đi theo nhau, chỉnh từng keyframe sẽ tốn công. Expression giúp biến giá trị của một thông số thành công thức, để Fusion tự tính giá trị đó ở các frame khác nhau.
1. Expression khác Keyframe ở đâu?
| Cách làm | Keyframe | Expression |
|---|---|---|
| Điều khiển | Đặt giá trị ở từng mốc thời gian | Đặt quy tắc tính giá trị |
| Chỉnh chuyển động lặp lại | Thường phải sắp xếp/sao chép keyframe | Chỉ cần sửa công thức |
| Phù hợp | Chuyển động có chủ đích, cần art-direct | Chuyển động lặp, thông số liên kết, tự động hóa |
| Hạn chế | Dễ nhiều keyframe khó quản lý | Phải đúng cú pháp và tham số |
Không phải lúc nào Expression cũng tốt hơn Keyframe. Chuyển động cần điều khiển chính xác theo nhịp dựng có thể dùng keyframe tiện hơn. Expression phù hợp khi có quy luật rõ ràng, hoặc cần liên kết nhiều thuộc tính.
2. Sử dụng Expression ở đâu?
Các ví dụ trong series này áp dụng cho Fusion Page, kể cả clip Text+ mở ở Fusion từ timeline Edit Page. Trên Fusion, chọn node rồi thao tác với thông số trong Inspector, ví dụ:
Transform1 → Size: kích thước.Transform1 → Angle: góc xoay.Transform1 → Center: tọa độ vị trí gồm X và Y.Merge1 → Blend: độ hòa trộn, thường dùng để điều khiển hiện/ẩn.Text1 → Styled Text: nội dung của Text+.
Lưu ý: Cùng tên hiệu ứng trên Edit Page không có nghĩa là hỗ trợ đúng cú pháp Simple Expression của Fusion.
3. Cách tạo Expression: 5 bước
- 1Đưa clip hoặc Text+ lên timeline, chọn clip và chuyển sang Fusion.
- 2Thêm
Transformsau node muốn tạo chuyển động (nếu cần). - 3Chọn node
Transform1, mở Inspector và tìm Size. - 4Nhấp chuột phải vào tên tham số Size → Expression; hoặc nhập dấu
=trong ô giá trị số rồi nhấn Enter để mở vùng Expression. - 5Dán công thức sau vào ô Expression, nhấn Enter rồi phát thử timeline:
1 + 0.12*sin(time/8)Kết quả dự kiến: đối tượng phóng to, thu nhỏ quanh mức Size 1.0. Với giá trị 8 nhỏ hơn, dao động sẽ nhanh hơn; giá trị 0.12 lớn hơn, biên độ phóng to/thu nhỏ sẽ lớn hơn.
4. Giải mã một Expression đơn giản
1 + 0.12*sin(time/8)time: số frame hiện tại trong ngữ cảnh composition của Fusion; không mặc định là số giây.sin(...): hàm sin, tạo giá trị dao động từ -1 đến 1.0.12: biên độ. Size sẽ nằm trong khoảng xấp xỉ 0.88–1.12./8: làm chậm nhịp của dao động so vớisin(time).1 +: đặt tâm dao động ở Size 1.
Nếu tính ra sin(...) = 0 thì Size = 1. Nếu sin(...) = 1 thì Size = 1.12. Nếu sin(...) = -1 thì Size = 0.88.
5. 5 ký hiệu cần nhớ
| Ký hiệu | Ý nghĩa | Ví dụ |
|---|---|---|
+ - * / | Cộng, trừ, nhân, chia | time*3 |
% | Phần dư, hữu ích khi lặp nhịp | time%24 |
sin(), cos() | Sóng tuần hoàn | sin(time/8) |
Point(x,y) | Tạo tọa độ gồm X và Y | Point(0.5,0.5) |
iif(điều kiện,a,b) | Chọn a hoặc b | iif(time%24<12,1,0) |
6. Ba lỗi thường gặp
Dán công thức vào sai thông số. Ví dụ Point(0.5,0.5) trả về một điểm gồm hai tọa độ, không phù hợp với ô Size cần một số. Write On → End cần số từ 0–1, không phải văn bản. Luôn kiểm tra dòng Dán vào của từng mẫu.
Sai tên node. Transform1.Size chỉ đúng khi node nguồn vẫn tên Transform1. Khi đổi tên node, hãy kiểm tra lại tham chiếu.
Nhầm frame và giây. time*3 xoay 3 độ/frame. Video 24fps và 60fps sẽ có tốc độ xoay theo giây khác nhau. Với chuyển động mở đầu chỉ chạy một lần, các ví dụ nâng cao dùng time-comp.RenderStart để trừ frame bắt đầu.
7. Tắt hoặc sửa Expression thế nào?
Nhấp chuột phải vào tên thông số có Expression rồi chọn Remove Expression để gỡ. Nếu chỉ muốn đổi tốc độ, hãy sửa trực tiếp con số trong ô Expression. Mở Spline Editor để kiểm tra đường cong giá trị theo thời gian.
8. Nên học mẫu nào tiếp theo?
Bắt đầu bằng Pulse, Rotate, Float trong 8 công thức tạo motion. Sau đó chuyển sang Expression cho Text+ và liên kết thông số giữa các node. Tất cả có ví dụ sẵn để sao chép.
Lưu ý kiểm thử: Giá trị của các công thức trong series đã được đối chiếu bằng script trên Fusion của DaVinci Resolve Studio 21.1 (macOS). Hình ảnh render thực tế, clip trên timeline và các phiên bản Resolve khác chưa được kiểm tra; hãy luôn xem lại trong Viewer của bạn.
Khi nào nên dùng
- Muốn một logo đập theo nhịp, biểu tượng xoay đều hoặc nhiều thành phần đi theo nhau mà không phải chỉnh từng keyframe.
- Chuyển động có quy luật rõ ràng, hoặc cần liên kết nhiều thuộc tính.
Khi nào chưa nên dùng
- Chuyển động cần điều khiển chính xác theo nhịp dựng: keyframe có thể tiện hơn.
- Chỉ cần chia sẻ thông số giữa các node mà không có phép tính bổ sung: Instance hoặc Publish/Connect To có thể phù hợp hơn.
Câu hỏi liên quan
Expression trong Fusion là gì?
Expression biến giá trị của một thông số thành công thức, để Fusion tự tính giá trị đó ở các frame khác nhau thay vì đặt keyframe thủ công.
Expression có luôn tốt hơn Keyframe không?
Không. Expression phù hợp khi chuyển động có quy luật hoặc cần liên kết nhiều thuộc tính; chuyển động cần điều khiển chính xác theo nhịp dựng có thể dùng keyframe tiện hơn.
`time` trong Expression là số giây hay số frame?
Là số frame hiện tại trong ngữ cảnh composition của Fusion, không mặc định là số giây, nên tốc độ theo giây sẽ khác khi FPS thay đổi.
Tài liệu chính thức
Nội dung được đối chiếu với tài liệu chính thức của nhà phát triển và nhà sản xuất liên quan. Tên menu hoặc tính năng có thể thay đổi theo phiên bản phần mềm và hệ điều hành.
Nguyễn Hoà – Edit Không Khó

Editor & Trainer, chia sẻ DaVinci Resolve, Fusion, CapCut, Motion Graphic và Color Grading theo hướng hiểu bản chất.
Xem trang tác giả →