Đóng gói animation thành “component” tái sử dụng
Mục tiêu kỹ thuật
- Tổ chức hierarchy (group / parent) rõ ràng
- Tạo module (thành phần độc lập, có control riêng)
- Thiết lập interface điều khiển (control panel)
- Đảm bảo thay đổi 1 chỗ → cập nhật toàn bộ
- Chuẩn bị cho template production
1. Nguyên tắc rigging trong Cavalry
Rigging = thiết kế hệ thống để dễ điều khiển + tái sử dụng
3 lớp bắt buộc
- Visual
- Shape / Text
- System
- Repeater / Field / Behaviour
- Control
- Slider / Expression
👉 Không trộn lẫn 3 lớp này
2. Tạo module cơ bản (Loading Component)
Mục tiêu: 1 loader có thể chỉnh size, speed, số lượng
Bước 1 — tạo visual
- Circle nhỏ (size 16)
- Đặt lệch tâm (X = 120)
Bước 2 — system
- Add Repeater:
- Count:
12 - Rotation:
360°
- Count:
Bước 3 — animation
- Rotate toàn bộ:
- 0s:
0° - 2s:
360°
- 0s:
- Linear loop
👉 Đây là loader cơ bản
3. Thêm control
Mục tiêu: biến loader thành module
Tạo các control
1. Size
- Slider:
CTRL_Size(0–200)
2. Speed
- Slider:
CTRL_Speed(0.5–3)
3. Count
- Slider:
CTRL_Count(4–24)
4. Link control → system
Size
BaseSize * (CTRL_Size/100)
Speed (rotation)
time * CTRL_Speed * 180
Count (repeater)
- Bind Count =
CTRL_Count
👉 1 module giờ có thể tuỳ biến
5. Group & hierarchy
Mục tiêu: file không rối
Bước
- Tạo Group:
COMP_Loader - Bên trong gồm:
- Visual
- Repeater
- Animation
Đặt tên chuẩn
CTRL_*→ controlCOMP_*→ componentSYS_*→ system
👉 Khi project lớn, naming = sống còn
6. Expose control (giao diện dùng)
Mục tiêu: người khác chỉ chỉnh control
Cách làm
- Đưa tất cả
CTRL_*lên top level - Ẩn/khóa layer không cần chỉnh
👉 File trở thành “tool” chứ không phải “scene”
7. Tạo module thứ 2 (Text Intro)
Mục tiêu: tái sử dụng nhiều lần
Thành phần
- Text
- Per-character animation
- Background bar (optional)
Control
CTRL_Text(string nếu có)CTRL_DelayCTRL_Duration
Logic
- Delay per character:
index * CTRL_Delay
👉 Dùng lại cho:
- Ads
- TikTok
- Intro video
8. Kết hợp nhiều module
Mục tiêu: xây system lớn
Ví dụ scene
- COMP_Loader
- COMP_TextIntro
- COMP_Background
👉 Mỗi component độc lập nhưng cùng control tổng
9. Global control (master)
Mục tiêu: điều khiển toàn scene
Tạo:
CTRL_Master_Progress
Dùng:
localProgress = clamp(CTRL_Master_Progress - offset, 0, 1)
👉 1 slider → toàn bộ animation
10. Mini project — Modular Loader
Yêu cầu
- 1 component loader
- Có control:
- Size
- Speed
- Count
11. Mini project — Text System
Yêu cầu
- Text animation
- Có control:
- Delay
- Duration
- Style (optional)
12. Mini project — Combined Scene
Yêu cầu
- ≥ 2 component
- Có:
- Master control
- Naming rõ ràng
- Không chỉnh trực tiếp layer con
13. Checklist kỹ thuật
- Có group rõ ràng
- Control tách riêng
- Không hardcode giá trị
- Module hoạt động độc lập
- Có thể reuse
14. Lỗi phổ biến
1. Không tách module
→ File khó sửa
2. Control nằm rải rác
→ Không dùng được
3. Không đặt tên
→ Không scale được project
4. Logic dính chặt vào layer
→ Không tái sử dụng
15. Tư duy quan trọng
- Ngày 1–11: bạn làm animation
- Ngày 12:Bạn xây hệ thống sản xuất animation
So sánh
| Amateur | Pro |
|---|---|
| Mỗi file làm lại | Dùng module |
| Chỉnh tay | Dùng control |
| Khó sửa | Sửa 1 chỗ |
Nguyên tắc vàng
Nếu bạn phải làm lại từ đầu → bạn chưa rig đúng
Để lại một bình luận