character-rigging

ساخت rig داده‌محور برای انیمیشن دوبعدی کاراکتر با اجزا، مفصل‌ها و محدودیت‌های قابل‌استفاده‌مجدد

این Skill برای ساخت rig_plan و ورودی renderer در انیمیشن دوبعدی محلی طراحی شده است. کاراکتر را به اجزای مستقل تقسیم می‌کند و برای هر بخش، parent، pivot، ترتیب لایه و محدودیت چرخش تعریف می‌کند.

با این ساختار، rig هر کاراکتر به یک بسته داده‌ای قابل‌استفاده‌مجدد تبدیل می‌شود و اجرای انیمیشن در GSAP یا Remotion قابل‌پیش‌بینی‌تر خواهد بود. این رویکرد برای تغییر نگاه، حرکت اندام، حالت دهان و تعامل با props بدون بازنویسی runtime مناسب است.

چه چیزی می‌گیرید

  • ساختار JSON برای بسته rig شامل parts، joints، parent و layer
  • تعریف pivot در مختصات واقعی artwork برای transform دقیق
  • اعمال constraint برای جلوگیری از چرخش‌های غیرممکن اندام
  • تفکیک چشم، مردمک، حالت‌های دهان و props قابل‌تعامل
  • چک‌لیست کیفیت برای آماده‌سازی rig در GSAP و Remotion

برای چه کاری خوب است

  • تیم‌هایی که برای ویدیوهای دوبعدی چند کاراکتر قابل‌انیمیت می‌سازند
  • پروژه‌های OpenMontage که به `rig_plan` یا renderer input نیاز دارند
  • انیمیشن‌هایی با تغییر نگاه، حرکت اندام، lip-sync ساده یا تعامل با props
  • پروژه‌هایی که می‌خواهند داده کاراکتر از منطق runtime جدا باشد

برای چه کاری نیست

  • مدل‌سازی سه‌بعدی، skeletal rig در Blender یا انیمیشن پیچیده سه‌بعدی
  • کاراکترهایی که فقط به یک تصویر ثابت و بدون حرکت اجزا نیاز دارند
  • پروژه‌هایی که به سیستم کامل طراحی artwork یا تولید asset نیاز دارند

دربارهٔ این اسکیل

Character Rigging

Use this skill when building OpenMontage rig_plan artifacts or renderer input
for local 2D character animation.

Proven Patterns

  • Keep runtime code generic; make each character a data package.
  • Split characters into independently transformable parts.
  • Define pivots in the same coordinate space as the artwork.
  • Store constraints on moving parts to prevent impossible rotations.
  • Keep layer order explicit; do not rely on SVG source order after generation.
  • Start with one view and add views only when the shot list requires them.

Rig Package

{
  "character_id": "mouse",
  "rig_type": "svg_rig",
  "parts": [
    { "id": "body", "kind": "torso", "layer": 10 },
    { "id": "head", "kind": "head", "layer": 30, "parent": "body" },
    { "id": "arm_right", "kind": "limb", "layer": 40, "parent": "body" }
  ],
  "joints": {
    "head": { "pivot": [320, 180], "rotation": [-20, 20] },
    "arm_right": { "pivot": [390, 310], "rotation": [-70, 95] }
  }
}

Quality Checklist

  • Every moving part has a pivot.
  • Every child part has a parent where hierarchy matters.
  • Mouth shapes are separate assets or separate path groups.
  • Eyes and pupils are separate when gaze needs to change.
  • Props are separate if the character touches or carries them.

Sources

  • SVG transform-origin behavior is browser-defined and can be sensitive to coordinate space; prefer explicit SVG-coordinate pivots when using GSAP svgOrigin: https://gsap.com/docs/v3/GSAP/CorePlugins/CSS/
  • Remotion animations must be frame-driven and deterministic via current frame: https://www.remotion.dev/docs/use-current-frame

دانلود ZIP