🧭 خلاصه (Summary)
Mouse In CHOP مختصات X و Y موس (در واحدهای صفحهنمایش) را خروجی میدهد و همچنین وضعیت سه دکمه موس (چپ، راست و میانی) را مانیتور میکند.
وقتی گزینه Active روشن باشد:
موقعیتهای X و Y موس از طریق کانالهایی که در پارامترهای Position X و Position Y تعیین شدهاند، خروجی داده میشوند.
وضعیت دکمهها از طریق کانالهای تعیینشده در Left Button، Right Button و Middle Button خروجی داده میشود.
مقدار کانالهای دکمهها:
0= دکمه رها شده (Up)1= دکمه فشرده شده (Down)
از Mouse In CHOP و Keyboard In CHOP اغلب برای اتصال به ورودیهای Position و Active در Record CHOP استفاده میشود تا حرکات و ورودیها ضبط شوند.
(برای اسکریپتنویسی میتوان از کلاس پایتون mouseinCHOP استفاده کرد.)
⚙️ پارامترها — صفحه Control
| پارامتر | توضیح |
|---|---|
| Active (active) | ⊞ مشخص میکند آیا حرکت موس خروجی داده شود یا نه. • Off – غیرفعال، هیچ دادهای تولید نمیشود. • On – موس فعال است و CHOP در هر فریم cook میکند. • While Playing – فقط وقتی تایملاین در حال پخش به جلو است، رویدادها را میگیرد. |
| Output Coordinates (output) | ⊞ تعیین محدوده خروجی X و Y موس: • Normalized – مختصات در بازهی -1 تا 1 برای هر مانیتور. مانیتور اصلی در بازهی -1 تا 1 است (مرکز: 0,0). مانیتورهای دیگر مقادیر نسبی دارند؛ مثلاً مانیتوری در سمت چپ محدوده -3 تا -1 دارد. • Normalized Aspect – مشابه حالت بالا اما نسبت تصویر (aspect ratio) نیز در نظر گرفته میشود. • Absolute – مختصات خام پیکسلی. نقطه (0,0) در پایین-چپ مانیتور اصلی است. |
| Position X (posxname) | نام کانالی که مقدار حرکت افقی موس را خروجی میدهد. |
| Position Y (posyname) | نام کانالی که مقدار حرکت عمودی موس را خروجی میدهد. |
| Left Button (lbuttonname) | نام کانال وضعیت دکمه چپ موس. |
| Right Button (rbuttonname) | نام کانال وضعیت دکمه راست موس. |
| Middle Button (mbuttonname) | نام کانال وضعیت دکمه میانی موس. |
| Wheel (wheel) | کانالی که با چرخش چرخ موس تغییر میکند: بالا رفتن = مثبت، پایین رفتن = منفی. |
| Wheel Increment (wheelinc) | مقدار افزایشی/کاهشی که هنگام حرکت چرخ موس به کانال Wheel اضافه یا کم میشود. |
| Monitor (monitor) | عددی که نشان میدهد موس در کدام مانیتور قرار دارد. |
| Panels (panels) | فقط زمانی رویدادها را ثبت میکند که پنل تعیینشده در فوکوس باشد. |
⚙️ پارامترها — صفحه Channel
تنظیم نرخ نمونهبرداری و شرایط امتداد (Extend Conditions):
| پارامتر | توضیح |
|---|---|
| Sample Rate (rate) | نرخ نمونهبرداری کانالها (بر حسب نمونه در ثانیه). |
| Extend Left (left) | شرایط در سمت چپ بازه: • Hold – نگه داشتن مقدار فعلی • Slope – ادامه دادن شیب قبلی • Cycle – تکرار چرخشی • Mirror – تکرار آینهای در هر چرخه • Default Value – استفاده از مقدار ثابت تعیینشده |
| Extend Right (right) | همان گزینهها اما برای سمت راست بازه (پس از انتهای داده). |
| Default Value (defval) | مقدار ثابت مورد استفاده هنگام انتخاب حالت Default Value. |
⚙️ پارامترها — صفحه Common
| پارامتر | توضیح |
|---|---|
| Time Slice (timeslice) | فقط تغییرات بین آخرین cook و cook فعلی را پردازش میکند. |
| Scope (scope) | تعیین میکند کدام کانالها تحت تأثیر قرار گیرند. |
| Sample Rate Match (srselect) | ⊞ نحوه مدیریت تفاوت نرخ نمونهبرداری در ورودیها: • Resample At First Input’s Rate • Resample At Maximum Rate • Resample At Minimum Rate • Error If Rates Differ |
| Export Method (exportmethod) | ⊞ تعیین روش اتصال دادهها به پارامترها: • DAT Table by Index / by Name • Channel Name is Path:Parameter |
| Export Root (autoexportroot) | مسیر ریشهای برای تمام خروجیهای Export. |
| Export Table (exporttable) | DAT جدول اطلاعات Export برای روشهای DAT-based. |
📊 Info CHOP Channels
اطلاعات اضافی از طریق Info CHOP در دسترس است.
Common CHOP Info Channels
| کانال | توضیح |
|---|---|
| start | شروع بازهٔ CHOP بر حسب نمونه. |
| length | تعداد نمونهها. |
| sample_rate | نرخ نمونهبرداری (فریم بر ثانیه). |
| num_channels | تعداد کانالها. |
| time_slice | ۱ اگر Time Slice فعال باشد. |
| export_sernum | شمار دفعاتی که ارتباطهای Export بهروزرسانی شدهاند. |
Common Operator Info Channels
| کانال | توضیح |
|---|---|
| total_cooks | تعداد دفعاتی که اپراتور cook شده است. |
| cook_time | زمان cook اخیر (میلیثانیه). |
| cook_frame / cook_abs_frame | شماره فریم نسبی و مطلق cook. |
| cook_start_time / cook_end_time | زمان شروع و پایان cook در همان فریم. |
| cooked_this_frame | اگر در فریم فعلی cook شده باشد → ۱. |
| warnings / errors | تعداد هشدارها یا خطاهای موجود. |
🎨 کاربرد در پروژههای تعاملی
Mouse In CHOP یکی از سادهترین اما مهمترین ابزارها برای ساخت تعاملات بلادرنگ در TouchDesigner است.
نمونه کاربردها:
کنترل موقعیت یک نور، جسم یا دوربین با حرکت موس؛
فعالسازی افکتها یا انیمیشنها با کلیک دکمههای موس؛
تعامل زنده با پنلهای رابط کاربری (UI Panels)؛
ضبط مسیر حرکت موس برای خلق افکتهای طراحی یا ردیابی دستی با Record CHOP.
