خلاصه

Engine COMP یک فایل .tox (کامپوننت) را در یک پردازش جداگانه اجرا می‌کند. این کار توسط TouchEngine مدیریت می‌شود تا هم تبادل داده با پروژه اصلی انجام شود و هم کامپوننت مستقل اجرا گردد.

همچنین Engine COMP اجازه می‌دهد کامپوننت بارگذاری‌شده بتواند یک Window COMP باز کند و وارد Perform Mode شود. برای این قابلیت باید پارامتر Clock Mode در صفحه‌ی Tune روی حالت Independent تنظیم شود تا رویدادهای UI (تعامل کاربر) پردازش شوند.


ورودی‌ها و خروجی‌ها

  • ورودی‌ها و خروجی‌های سطح بالای کامپوننت انتخاب‌شده به ورودی و خروجی‌های Engine COMP متصل می‌شوند.

  • فقط انواع TOP، CHOP و DAT پشتیبانی می‌شوند.


پارامترهای سفارشی

  • هر پارامتر سفارشی در سطح بالای کامپوننت به پارامترهای Engine COMP اضافه می‌شود.

  • پارامترهایی که به نودهای دیگر (TOP، CHOP، DAT) ارجاع دارند پشتیبانی نمی‌شوند. به جای آن باید ورودی‌ها استفاده شوند.

  • توجه: پارامترها فقط یک‌طرفه هستند، یعنی از داخل فایل .tox نمی‌توان پارامترهای Engine COMP را تغییر داد.


مسیر فایل‌های خارجی

  • به‌طور پیش‌فرض مسیرهای نسبی درون اسکریپت‌ها یا OPها، نسبت به محل فایل .tox در نظر گرفته می‌شوند.

  • این رفتار با پارامتر Asset Paths قابل تغییر است.

  • پارامترهای سفارشی سطح بالا (که روی Engine COMP ظاهر می‌شوند) همیشه نسبت به پروژه اصلی محاسبه می‌شوند.


پایش وضعیت Engine

  • یک Info DAT به‌طور پیش‌فرض به Engine COMP متصل است که مسیر فایل و شناسه پردازش (PID) را نشان می‌دهد.

  • یک Info CHOP نیز متصل است که سه مجموعه کانال پایش دارد:

    • TouchEngine Status → وضعیت بارگذاری/اجرا/خطا

    • TouchEngine Perform → آمار عملکرد (مثل FPS و حافظه)

    • Initialize/Start → وضعیت آماده/اجرا مخصوص کامپوننت بارگذاری‌شده


کنترل وضعیت Engine

  • به‌طور پیش‌فرض TouchDesigner پردازش Engine را راه‌اندازی و فایل .tox را اجرا می‌کند.

  • برای کنترل بیشتر، پارامترهای Unload و Reload برای آزادسازی و بارگذاری مجدد استفاده می‌شوند.

  • در صفحه Advanced می‌توان با پارامترهای Launch Engine Process و Quit Engine Process کل پردازش Engine را راه‌اندازی یا متوقف کرد.


چرخه عمر کامپوننت

  • در TouchEngine، متدهای onStart() و onExit() اجرا نمی‌شوند.

  • متد onCreate() هنگام بارگذاری اجرا می‌شود و بهترین مکان برای تنظیمات اولیه است.


زمان در TouchEngine

  • هنگام شروع، زمان کامپوننت در TouchEngine از ۰ آغاز می‌شود.

  • بسته به پارامتر Clock، این زمان یا همگام با Engine COMP پیش می‌رود یا بر اساس ساعت داخلی TouchEngine.

  • برای هماهنگی نرخ پردازش، از input buffer و output buffer استفاده می‌شود.

  • گزینه Auto بافرها را به شکل خودکار تنظیم می‌کند، اما می‌توان اندازه ثابت تعیین کرد (مثلاً برای کار با صدا).


نسخه‌های TouchEngine

  • TouchEngine همراه با TouchDesigner نصب می‌شود.

  • برای استفاده از نسخه دیگر:

    • تنظیم متغیر محیطی TOUCHENGINE_APP_PATH

    • نصب TouchDesigner در پوشه‌ای به نام TouchEngine در کنار فایل .tox

    • یا ساخت لینک به نام TouchEngine که به محل نصب اشاره کند.


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

صفحه Engine

  • Tox File → انتخاب فایل .tox

  • Unload / Reload → آزادسازی یا بارگذاری مجدد

  • Reload on Crash → بارگذاری مجدد در صورت خطا

  • Asset Paths → تنظیم مسیرها (نسبت به پروژه یا فایل .tox)

  • Callbacks DAT → اجرای کد برای رویدادهای TouchEngine


صفحه Tune

  • Clock → حالت زمان (همگام یا مستقل)

  • Match Local Component Rate → هماهنگی نرخ cook با Engine COMP

  • FPS → نرخ فریم برای کامپوننت

  • Wait for Render → منتظر ماندن به‌جای رها کردن فریم‌ها

  • Render Timeout → زمان انتظار برای cook شدن فریم

  • In Buffer / Out Buffer → مدیریت بافر ورودی و خروجی (خودکار یا دستی)


صفحه InitStart

  • Pre-Roll → اجرای اولیه قبل از آماده‌سازی

  • Ready When → شرایط ورود به حالت آماده (Loaded / Buffered / Running)

  • Start when Initialized → شروع خودکار پس از آماده‌سازی

  • Initialize / Start / Play → کنترل بارگذاری و اجرای کامپوننت

  • On Done → رفتار پس از اتمام (Pause, Unload, Re-Init, Restart, Quit)


صفحه Advanced

  • On Engine COMP Create → رفتار هنگام ایجاد (هیچ، Launch، Initialize)

  • Launch Engine Process / Quit Engine Process → راه‌اندازی یا توقف پردازش TouchEngine


صفحه Extensions

  • مدیریت افزونه‌های پایتون و اتصال کلاس‌ها به کامپوننت

  • امکان تعیین نام، نمایش مستقیم توابع، یا کامپایل مجدد افزونه‌ها


صفحه Common

  • Parent Shortcut / Global OP Shortcut → میانبرهای مسیر

  • Internal OPs → تعریف مسیرهای داخلی

  • Operator Viewer → انتخاب OP برای نمایش در Node View

  • Enable Cloning / Clone Master → تنظیمات کلون‌گیری

  • Load on Demand → بارگذاری تنها در صورت نیاز

  • Enable External .tox → همگام‌سازی با فایل خارجی

  • External .tox Path → مسیر فایل .tox خارجی

  • Reload Custom / Built-In Parameters → بازخوانی پارامترها

  • Save Backup of External → ذخیره نسخه پشتیبان در .toe

  • Sub-Component to Load → انتخاب زیرکامپوننت خاص از فایل .tox

  • Relative File Path Behavior → رفتار مسیرهای نسبی (نسبت به پروژه یا .tox)


Info CHOP Channels

کانال‌های خاص Engine COMP

  • input_buffer_frames / output_buffer_frames → تعداد فریم‌ها در بافرها

  • initialize_fail, ready, running, done → وضعیت اجرای کامپوننت

  • engine_fps, engine_frame_msec → نرخ فریم و زمان cook

  • engine_dropped_frames → تعداد فریم‌های از دست رفته

  • engine_gpu_mem_used / engine_cpu_mem_used → میزان حافظه مصرف‌شده

  • engine_active_ops / total_ops → تعداد نودهای فعال و کل نودها

  • engine_timeslice_step / engine_timeslice_msec → اطلاعات تایم‌اسلایس


کانال‌های عمومی COMP

  • num_children → تعداد زیرکامپوننت‌ها


کانال‌های عمومی Operator

  • total_cooks → تعداد cook از شروع اجرا

  • cook_time → زمان cook آخر (ms)

  • cook_frame / cook_abs_frame → شماره فریم cook شده

  • warnings / errors → تعداد هشدارها و خطاها