Ngày 12 — Rigging & Modular System

Đó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

  1. Visual
    • Shape / Text
  2. System
    • Repeater / Field / Behaviour
  3. 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°

Bước 3 — animation

  • Rotate toàn bộ:
    • 0s:
    • 2s: 360°
  • 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_* → control
  • COMP_* → component
  • SYS_* → 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_Delay
  • CTRL_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

AmateurPro
Mỗi file làm lạiDùng module
Chỉnh tayDùng control
Khó sửaSử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

Bình luận

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *