خلاصه (Summary)

Phaser CHOP برای اینترپولیشن انیمیشن به‌صورت پلکانی (با افست زمانی) استفاده می‌شود. Phaser یک کانال خروجی با چندین سمپل تولید می‌کند. هر سمپل در طول یک چرخه از مقدار 0 تا 1 انیمیت می‌شود، اما هر سمپل در زمان متفاوتی از 0 شروع کرده و در زمان متفاوتی به 1 می‌رسد.

برای مثال، فرض کنید مجموعه‌ای شامل N شیء دارید که می‌خواهید آن‌ها را از یک موقعیت شروع به یک موقعیت پایان انیمیت کنید. شما مقدار Num Samples را برابر N قرار می‌دهید؛ در این حالت Phaser CHOP یک کانال با N سمپل خروجی می‌دهد که این سمپل‌ها از 0 تا 1 انیمیت می‌شوند و با یک تابع easing اینترپوله می‌گردند.
در Phaser CHOP چرخه‌ی شروع تا پایان توسط ورودی اول CHOP کنترل می‌شود؛ این ورودی باید شامل یک کانال با مقادیر بین 0 تا 1 باشد.

مقادیر 0 تا 1 را می‌توان همراه با Lookup CHOP استفاده کرد تا گروه‌هایی از کانال‌ها انیمیت شوند.

به‌صورت پیش‌فرض، زمان‌بندی به شکل یکنواخت پلکانی (staggered) است. اگر بخواهید این انتقال‌ها به‌صورت نامنظم پلکانی شوند، باید از ورودی دوم استفاده کنید؛ یعنی مجموعه‌ای از مقادیر در یک کانال CHOP (معمولاً شامل N سمپل) که بین 0 و 1 هستند.
مقدار phase رابطه‌ی زمانی هر شیء را با سایر اشیای موجود در CHOP مشخص می‌کند.

  • مقدار phase برابر 1 نشان‌دهنده‌ی شیئی است که «جلوتر از بقیه» حرکت می‌کند (یعنی زودتر از دیگران شروع به انیمیت شدن می‌کند).

  • مقدار 0 نشان‌دهنده‌ی شیئی است که دیرتر از بقیه شروع می‌کند (آخرین شیء در easing / انیمیشن).

اگر ورودی phase داده نشود، مقدار phase به‌صورت خودکار برابر i/N در نظر گرفته می‌شود که در آن N تعداد کل اشیا (یا سمپل‌ها) و i اندیس سمپل جاری است.

در Phaser مفهومی به نام Edge نیز وجود دارد که میزان یکپارچگی (cohesiveness) گروه اشیای انیمیت‌شده و سرعت بالا رفتن مقادیر سمپل‌ها را توصیف می‌کند.

  • مقدار Edge کوچک باعث می‌شود اشیا خیلی سریع وارد انیمیشن شوند.

  • مقدار Edge بزرگ باعث می‌شود اشیا آهسته‌تر و هماهنگ‌تر با سایر سمپل‌ها انیمیت شوند.

برای آشنایی با پیش‌زمینه‌ی Phaser CHOP می‌توانید سخنرانی David Braun در TouchDesigner Summit را ببینید. عملکرد این OP به‌شدت از تحقیقات و توسعه‌ی David در زمینه‌ی quantitative easing الهام گرفته شده است.

همچنین بخش OP Snippets را ببینید.


فهرست مطالب (Contents)

  1. Summary

  2. Parameters – Phaser Page

  3. Parameters – Common Page

  4. Operator Inputs

  5. Info CHOP Channels
      5.1 Common CHOP Info Channels
      5.2 Common Operator Info Channels


Parameters – Phaser Page

  • Edge (edge)
    لبه‌ی جداسازی فاز بین دو حالت. مقدار Edge کوچک‌تر به معنای جداسازی تیزتر بر اساس تفاوت فازها است.
    اگر ورودی Edge متصل باشد، این پارامتر استفاده نخواهد شد.

  • Num Samples (nsamples)
    اندازه‌ی خروجی را مشخص می‌کند. اگر ورودی Phase وجود داشته باشد، این پارامتر نادیده گرفته می‌شود.

  • Output Format (outputformat)
    فرمت خروجی را مشخص می‌کند.

  • Extend Input (extend)
    مشخص می‌کند ورودی زمان چگونه تفسیر شود تا مقدار Phaser محاسبه گردد، زمانی که ورودی زمان خارج از بازه‌ی 0 تا 1 باشد.


Parameters – Common Page

  • Time Slice (timeslice)
    با فعال کردن این گزینه، کانال‌ها به‌صورت Time Slice پردازش می‌شوند. Time Slice فاصله‌ی زمانی بین آخرین فریم cook شده و فریم cook فعلی است.

  • Scope (scope)
    برای تعیین این‌که کدام کانال‌ها تحت تأثیر قرار بگیرند، برخی CHOPها از رشته‌ی Scope در صفحه‌ی Common استفاده می‌کنند. (نگاه کنید به Pattern Matching)

  • Sample Rate Match (srselect)
    مدیریت حالتی که چند CHOP ورودی نرخ نمونه‌برداری متفاوت دارند. هنگام Resample شدن، منحنی‌ها بر اساس روش Interpolation انتخاب‌شده (یا Linear به‌صورت پیش‌فرض) درون‌یابی می‌شوند.

  • Export Method (exportmethod)
    مشخص می‌کند کانال CHOP چگونه به یک پارامتر متصل شود. برای اطلاعات بیشتر به مقاله‌ی Export مراجعه کنید.

  • Export Root (autoexportroot)
    مسیری به نود ریشه که تمام مسیرهای Export با روش Channel Name = Path:Parameter نسبت به آن تعریف می‌شوند.

  • Export Table (exporttable)
    دیت (DAT)ای که هنگام استفاده از روش‌های Export مبتنی بر جدول، اطلاعات Export در آن ذخیره می‌شود.

  • Rename From (commonrenamefrom)
    الگوی نام کانال‌هایی که باید تغییر نام داده شوند. (Pattern Matching)

  • Rename To (commonrenameto)
    الگوی جایگزین برای نام‌ها. پارامترهای پیش‌فرض نام کانال‌ها را تغییر نمی‌دهند. (Pattern Replacement)

مثال:
Channel Names: c[1-10:2] ambient
Rename From: c* ambient
Rename To: b[1-5] amb

در این مثال، کانال‌های c1 c3 c5 c7 c9 و ambient گرفته می‌شوند
و سپس به b1 b2 b3 b4 b5 و amb تغییر نام داده می‌شوند.

برای توضیحات بیشتر درباره‌ی الگوهای تغییر نام، به Rename CHOP مراجعه کنید.


Operator Inputs

  • Input 0: Time
    زمان‌بندی فاز را مشخص می‌کند. اگر متصل نباشد، زمان‌بندی به‌طور پیش‌فرض یک رمپ LFO با طول 4 ثانیه خواهد بود.
    این CHOP فقط باید شامل یک کانال باشد؛ تمام کانال‌ها به‌جز اولین کانال نادیده گرفته می‌شوند.

  • Input 1: Phase
    در صورت اتصال، خروجی Phaser CHOP از ورودی Phase پیروی می‌کند. با این حال، اگر فرمت خروجی چندکاناله (Multi-Channel Output Format) انتخاب شده باشد، خروجی عملاً ترانهاده (transpose) می‌شود.

  • Input 2: Edge
    در صورت اتصال، سمپل‌های Edge به‌جای پارامتر Edge استفاده خواهند شد.


Info CHOP Channels

اطلاعات اضافی مربوط به Phaser CHOP از طریق Info CHOP قابل دسترسی است.

Common CHOP Info Channels

  • start – شروع بازه‌ی CHOP بر حسب سمپل

  • length – تعداد سمپل‌ها در CHOP

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

  • num_channels – تعداد کانال‌ها در CHOP

  • time_slice – اگر Time Slice فعال باشد 1 و در غیر این صورت 0

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

Common Operator Info Channels

  • total_cooks – تعداد دفعاتی که این اپراتور از شروع اجرا cook شده است

  • cook_time – مدت زمان آخرین cook بر حسب میلی‌ثانیه

  • cook_frame – شماره فریم آخرین cook نسبت به تایم‌لاین کامپوننت

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

  • cook_start_time – زمان شروع cook (میلی‌ثانیه) در فریمی که cook شده

  • cook_end_time – زمان پایان cook (میلی‌ثانیه) در فریمی که cook شده

  • cooked_this_frame – اگر اپراتور در این فریم cook شده باشد 1

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

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