🧭 خلاصه (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.
