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