خلاصه (Summary)

Inverse Kin CHOP یک شبیه‌سازی Inverse Kinematics (IK) برای آبجکت‌های استخوان (Bone Objects) محاسبه می‌کند.


پارامترها – صفحه Kinematics

  • Solver Type (solvertype): ⊞ – روشی که برای تعیین حرکت استخوان هنگام جابه‌جایی خودش، اجدادش یا فرزندانش استفاده می‌شود:

    • None (none): هیچ راه‌حل حرکتی روی استخوان اعمال نمی‌شود.

    • Show Rest Position (rest): موقعیت Rest استخوان‌ها را نمایش می‌دهد. استخوان‌ها بر اساس زاویه‌های Rest در زنجیره تنظیم می‌شوند. این زاویه‌ها در حل‌کننده IK استفاده می‌شوند. بنابراین می‌توان از این گزینه به‌عنوان ابزار کمکی برای مشاهده موقعیت Rest زنجیره استفاده کرد.

    • Show Capture Position (capture): مقادیر چرخش را در پارامترهای زاویه Capture نمایش می‌دهد. این پارامترها در Skeleton SOP هنگام عملیات “capture points” تنظیم می‌شوند یا از طریق منوی Grab Capture Angles. مشابه Rest، این Solver هم می‌تواند برای بازگرداندن زنجیره به حالت Capture استفاده شود.

    • Inverse Kinematics (inverse): حل‌کننده IK تلاش می‌کند استخوان‌ها را طوری قرار دهد که انتهای آخرین استخوان زنجیره با مبدأ آبجکت مشخص‌شده به‌عنوان End Affector منطبق شود. شکل زنجیره از زاویه‌های Rest هر استخوان مشتق می‌شود.

      • برای تنظیم نتایج، می‌توان زاویه‌های Rest استخوان‌ها را تغییر داد.

      • توجه: نتایج IK فقط در صورتی پیوسته خواهند بود که زاویه‌های Rest ثابت بمانند. اگر زاویه‌های Rest را انیمیت کنید، ممکن است زنجیره پرش (Jump) داشته باشد.

      • وقتی از Kinematics استفاده می‌شود، چرخش‌های محاسبه‌شده توسط Solver می‌توانند با فعال‌سازی پرچم Export روی Inverse Kin CHOP به استخوان‌ها صادر شوند. افزودن چرخش اضافی به استخوان‌ها در زنجیره IK توصیه نمی‌شود چون مقادیر آن‌ها توسط Solver بازنویسی می‌شوند.

    • IK with Constraints (constraint): حل IK همراه با محدودیت‌ها.

    • Follow Curve (curve): استخوان‌ها را طوری قرار می‌دهد که در امتداد اولین منحنی موجود در یک آبجکت هم‌تراز شوند. این حالت برای انیمیشن دم‌ها یا ستون فقرات مفید است.

  • Root Bone (boneroot): اولین استخوان زنجیره (شروع زنجیره).

  • End Bone (boneend): آخرین استخوان زنجیره. اگر مشخص شود، کل زنجیره شامل همه استخوان‌های بین Root و End خواهد بود.

  • End Affector (endaffector): آبجکتی که به‌عنوان انتهای زنجیره (End Effector) عمل می‌کند.

  • Twist Affector (twistaffector): اگر مشخص شود، کل زنجیره استخوان‌ها در امتداد محور Root تا End Effector می‌چرخد تا اولین استخوان بیشترین میزان ممکن به سمت Twist Affector نشانه رود. مقدار Twist هم می‌تواند مشخص شود و روی این چرخش اعمال گردد.

  • IK Twist (iktwist): مقدار پیچشی که در حل IK مجاز است.

  • IK Dampening (ikdampen): میزان دمپینگ (کاهش سرعت در نزدیکی مرزهای مجاز چرخش).

  • Curve Object (curve): آبجکت منحنی‌ای که برای Solver “Follow Curve” استفاده می‌شود.


پارامترها – صفحه Common

  • Time Slice (timeslice): اگر روشن باشد، کانال‌ها به‌صورت Time Sliced محاسبه می‌شوند (فاصله بین آخرین Cook و فریم جاری).

  • Scope (scope): مشخص می‌کند کدام کانال‌ها تحت تأثیر قرار گیرند.

Sample Rate Match (srselect): ⊞ – مدیریت نرخ نمونه‌برداری ورودی‌های مختلف:

  • Resample At First Input’s Rate (first): استفاده از نرخ ورودی اول.

  • Resample At Maximum Rate (max): بازنمونه‌گیری به بالاترین نرخ.

  • Resample At Minimum Rate (min): بازنمونه‌گیری به پایین‌ترین نرخ.

  • Error If Rates Differ (err): در صورت ناسازگاری نرخ‌ها خطا می‌دهد.

Export Method (exportmethod): ⊞ – روش اتصال کانال CHOP به پارامتر مقصد:

  • DAT Table by Index (datindex): استفاده از جدول DAT الحاقی و ایندکس کانال.

  • DAT Table by Name (datname): استفاده از جدول DAT الحاقی و نام کانال.

  • Channel Name is Path:Parameter (autoname): نام کانال به‌عنوان مسیر کامل مقصد استفاده می‌شود (مانند geo1/transform1:tx).

Export Root (autoexportroot): مسیر پایه برای همه‌ی مسیرهای نسبی در حالت Export.
Export Table (exporttable): جدولی در DAT که اطلاعات Export در آن نگهداری می‌شود.


کانال‌های Info CHOP

اطلاعات اضافه Inverse Kin CHOP از طریق Info CHOP در دسترس است.

Common CHOP Info Channels

  • start: شروع بازه CHOP (برحسب نمونه)

  • length: تعداد نمونه‌ها در CHOP

  • sample_rate: نرخ نمونه‌برداری (فریم بر ثانیه)

  • num_channels: تعداد کانال‌ها

  • time_slice: اگر Time Slice فعال باشد = 1، وگرنه = 0

  • export_sernum: تعداد دفعاتی که اتصالات Export به‌روزرسانی شده‌اند

Common Operator Info Channels

  • total_cooks: تعداد دفعات Cook از شروع پروسه

  • cook_time: مدت Cook آخر (میلی‌ثانیه)

  • cook_frame: شماره فریم Cook آخر نسبت به Timeline کامپوننت

  • cook_abs_frame: شماره فریم Cook آخر نسبت به زمان مطلق

  • cook_start_time: زمان شروع Cook در آن فریم (ms)

  • cook_end_time: زمان پایان Cook در آن فریم (ms)

  • cooked_this_frame: اگر در این فریم Cook شده باشد = 1

  • warnings: تعداد هشدارها (در صورت وجود)

  • errors: تعداد خطاها (در صورت وجود)