خلاصه
Blend CHOP دو یا چند CHOP ورودی (در ورودیهای 2، 3 و غیره) را با استفاده از مجموعهای از کانالهای ترکیب (blending channels) در ورودی 1 با هم ترکیب میکند.
کانالهای ترکیب باعث میشوند مقادیر CHOPها با شدتهای مختلف در خروجی CHOP مؤثر باشند. این عمل شبیه به Blend SOP عمل میکند.
اولین کانال ورودی 2 با اولین کانال ورودی 3 و ورودی 4 و غیره ترکیب میشود.
ورودی 1 نقش ورودی کنترلی را دارد و شامل کانالهای وزن ترکیب (blend weight) برای بقیه ورودیهاست.
برای هر CHOP ورودی (از ورودی 2 به بعد) یک کانال وزن در ورودی 1 وجود دارد.
به این صورت:
اولین کانال در ورودی 1 → وزن ترکیب ورودی 2 است.
دومین کانال در ورودی 1 → وزن ترکیب ورودی 3 است.
و به همین ترتیب…
بنابراین تعداد کانالهای ترکیب در ورودی 1 باید برابر با تعداد ورودیها (به جز ورودی 1) باشد.
(اما هنگام استفاده از روش Differencing و وقتی گزینه Omit First Weight Channel روشن است، اولین کانال ورودی 1 بهعنوان وزن ورودی 3 در نظر گرفته میشود، چون ورودی 2 بهعنوان «پایه» بوده و نیازی به وزن ندارد.)
بازه خروجی CHOP برابر با بازه ورودی 1 (کانالهای ترکیب) است.
اگر ورودیهای 2 به بعد فقط حالتها (poses) باشند، مشکلی نیست، زیرا CHOP بین حالتها با استفاده از شرایط Extend ترکیب انجام میدهد.
نکته: این CHOP بهینهسازی شده است و ورودیهایی که وزنشان صفر باشد پردازش (cook) نمیشوند.
کلاس پایتون
blendCHOP_Class
محتوای سند
خلاصه
پارامترها – صفحه Blend
پارامترها – صفحه مشترک (Common)
ورودیهای اپراتور
کانالهای Info CHOP
5.1. کانالهای Info مشترک CHOP
5.2. کانالهای Info مشترک اپراتور
پارامترها – صفحه Blend
Method (method – ⊞): روش ترکیب.
Omit First Weight Channel (firstweight): هنگام استفاده از روش Differencing، کانال وزن برای ورودی پایه (base input) بیاثر است. اگر این گزینه روشن باشد، آن کانال حذف میشود.
Fix Underflows (underflow): جایگزین کردن مقادیر عددی بسیار کوچک (denormalized) با صفر. این مقادیر در غیر این صورت میتوانند باعث مشکلات کارایی شوند.
پارامترها – صفحه مشترک (Common)
Time Slice (timeslice): روشن کردن این گزینه باعث میشود کانالها بهصورت Time Sliced پردازش شوند.
(Time Slice فاصله زمانی بین فریم cook قبلی و فریم cook فعلی است.)Scope (scope): تعیین میکند کدام کانالها تحت تأثیر قرار بگیرند. برخی CHOPها از یک رشته Scope در صفحه مشترک استفاده میکنند. (نگاه کنید به Pattern Matching)
Sample Rate Match (srselect – ⊞): مدیریت مواردی که نرخ نمونهبرداری (sample rate) ورودیهای مختلف CHOP متفاوت است.
در صورت Resampling، منحنیها طبق گزینه روش درونیابی (Interpolation Method) یا در صورت نبود، به صورت «خطی» (Linear) درونیابی میشوند.Resample At First Input’s Rate (first): نرخ ورودی اول برای resample بقیه استفاده میشود.
Resample At Maximum Rate (max): به بالاترین نرخ نمونهبرداری resample میشود.
Resample At Minimum Rate (min): به پایینترین نرخ نمونهبرداری resample میشود.
Error If Rates Differ (err): نرخهای متضاد را نمیپذیرد.
Export Method (exportmethod – ⊞): تعیین میکند که چگونه کانال CHOP به پارامتر متصل شود. (مراجعه کنید به مقاله Export)
DAT Table by Index (datindex): از جدول DAT متصلشده استفاده میکند و کانال را بر اساس اندیس (index) در CHOP ارجاع میدهد.
DAT Table by Name (datname): از جدول DAT متصلشده استفاده میکند و کانال را بر اساس نام در CHOP ارجاع میدهد.
Channel Name is Path:Parameter (autoname): کانال شامل مقصد کامل برای خروجی است (مثلاً geo1/transform1:tx).
Export Root (autoexportroot): مسیری که به گره ریشه اشاره میکند، جایی که همه مسیرها برای export با روش Channel Name is Path:Parameter به صورت نسبی تعریف میشوند.
Export Table (exporttable): جدولی از نوع DAT که برای نگهداری اطلاعات export هنگام استفاده از روشهای DAT Table Export به کار میرود.
ورودیهای اپراتور
Input 0: –
کانالهای Info CHOP
اطلاعات اضافی برای Blend CHOP از طریق یک Info CHOP در دسترس است.
کانالهای Info مشترک CHOP
start: شروع بازه CHOP بر حسب نمونهها.
length: تعداد نمونهها در CHOP.
sample_rate: نرخ نمونهبرداری کانالها بر حسب فریم بر ثانیه.
num_channels: تعداد کانالها در CHOP.
time_slice: اگر CHOP Time Slice فعال باشد 1، در غیر این صورت 0.
export_sernum: تعداد دفعاتی که اتصالهای export بهروزرسانی شدهاند.
کانالهای Info مشترک اپراتور
total_cooks: تعداد دفعاتی که اپراتور از زمان شروع پردازش cook شده است.
cook_time: مدت زمان آخرین cook بر حسب میلیثانیه.
cook_frame: شماره فریم آخرین cook نسبت به timeline کامپوننت.
cook_abs_frame: شماره فریم آخرین cook نسبت به زمان مطلق.
cook_start_time: زمان (میلیثانیه) شروع cook در فریمی که پردازش شده است.
cook_end_time: زمان (میلیثانیه) پایان cook در فریمی که پردازش شده است.
cooked_this_frame: اگر اپراتور در این فریم cook شده باشد 1.
warnings: تعداد هشدارها در این اپراتور (در صورت وجود).
errors: تعداد خطاها در این اپراتور (در صورت وجود).
