آموزشMagnet SOP در نرم افزار Touchdesigner
خلاصه (Summary)
Magnet SOP به شما امکان میدهد تا با استفاده از یک شیء دیگر، تغییر شکل (Deformation) هندسه ورودی را از طریق یک «میدان مغناطیسی» (Magnetic Field) تحت تأثیر قرار دهید که این میدان توسط یک metaball field تعریف میشود.
این عملگر برای ایجاد برآمدگیها (bumps) و فرورفتگیهای متحرک (dents) درون اشیاء، و همچنین برای ساخت جلوههای ویژه گوناگون کاربرد دارد.
نکته مهم این است که تغییر شکل واقعی از طریق پارامترهای Translate در Magnet SOP اعمال میشود، نه از طریق خود متابال.
متابال تنها ناحیه اثر (Area of Effect) برای پارامترهای Translate را تعیین میکند. وزن (Weight) متابال تعیین میکند که تأثیر Translate در Magnet SOP تا چه اندازه قوی باشد.
قدرت میدان مغناطیسی در مرکز میدان متابال بیشترین مقدار را دارد و در لبههای میدان به صفر میرسد.
📘 کلاس پایتون: magnetSOP_Class
📄 فهرست مطالب
-
خلاصه
-
پارامترها – صفحه اصلی
-
پارامترها – صفحه Deform (تغییر شکل)
-
پارامترها – صفحه Attributes (ویژگیها)
-
ورودیهای عملگر
-
کانالهای Info CHOP
-
6.1. کانالهای مشترک Info برای SOP
-
6.2. کانالهای مشترک Info برای Operator
-
⚙️ پارامترها – صفحه اصلی (Parameters – Page)
Deform Group deformgrp
به شما اجازه میدهد گروهی از هندسه را برای تغییر شکل مشخص کنید و گروهی را نیز تعیین کنید که بهعنوان آهنربا عمل کند.
از الگوها (patterns) پشتیبانی میکند، همانطور که در Pattern Matching توضیح داده شده است.
Magnet Group magnetgrp
به شما اجازه میدهد گروهی از هندسه را برای تغییر شکل مشخص کنید و گروهی را نیز تعیین کنید که بهعنوان آهنربا عمل کند.
از الگوها (patterns) پشتیبانی میکند.
🌀 پارامترها – صفحه Deform (Parameters – Deform Page)
Transform Order xord ⊞
ترتیب کلی تبدیلها را تنظیم میکند. ترتیب تبدیل مشخص میکند که عملیات تغییر (Scale، Rotate، Translate) به چه ترتیبی اعمال شوند.
با تغییر ترتیب، میتوانید با همان مقادیر نتایج متفاوتی بگیرید.
گزینههای موجود:
-
Scale Rotate Translate (srt)
-
Scale Translate Rotate (str)
-
Rotate Scale Translate (rst)
-
Rotate Translate Scale (rts)
-
Translate Scale Rotate (tsr)
-
Translate Rotate Scale (trs)
Rotate Order rord ⊞
ترتیب چرخشها را درون ترتیب کلی تبدیلها تعیین میکند.
گزینهها:
-
Rx Ry Rz (xyz)
-
Rx Rz Ry (xzy)
-
Ry Rx Rz (yxz)
-
Ry Rz Rx (yzx)
-
Rz Rx Ry (zxy)
-
Rz Ry Rx (zyx)
Translate t ⊞
این سه فیلد، هندسه منبع را در سه محور X، Y، Z جابهجا میکنند.
ترنسلیتهای متابال فقط موقعیت ناحیه تأثیر را مشخص میکنند.
تأثیر واقعی از طریق آهنربای فرضی درون Magnet SOP ایجاد میشود، و جهت این تأثیر توسط پارامترهای Translate خود Magnet SOP تعیین میشود.
⚠️ نکته: اگر مقادیر Translate در Magnet SOP همگی صفر باشند، آهنربا هیچ تأثیری در تغییر شکل نخواهد داشت.
وزن (Weight) متابال شدت این تأثیر را مقیاسبندی میکند.
-
X:
tx -
Y:
ty -
Z:
tz
Rotate r ⊞
سه فیلد چرخش هندسه منبع حول محورهای مختلف:
-
X:
rx -
Y:
ry -
Z:
rz
Scale s ⊞
سه فیلد مقیاسدهی هندسه ورودی در سه محور:
-
X:
sx -
Y:
sy -
Z:
sz
Pivot p ⊞
نقطه محور (pivot point) برای تبدیلها.
توجه: با نقطه pivot در کانالهای pivot متفاوت است.
-
X:
px -
Y:
py -
Z:
pz
🎨 پارامترها – صفحه Attributes (ویژگیها)
Affect Position position
اجازه میدهد آهنربا موقعیت هندسه ورودی را تغییر دهد.
بهصورت پیشفرض فعال است.
Affect Point Color color
اجازه میدهد آهنربا رنگ نقاط هندسه ورودی را تغییر دهد.
💡 نکته: برای کنترل میزان تأثیر هر آهنربا بر رنگ نقاط سطح، زمانی که گزینه Affect Point Color فعال است، رنگ نقاط را پیش از Magnet SOP با استفاده از Point SOP به سیاه (0,0,0) تنظیم کنید.
سپس فیلدهای Translate در Magnet SOP رنگ RGB را بهصورت نقطهبهنقطه با مقادیر (2,2,2) اضافه میکنند که به رنگ سفید نزدیک میشود.
⚠️ استفاده از کانالهای Scale و Rotate برای تغییر در فضای رنگی سهبعدی توصیه نمیشود.
Affect Point Normal nml
اجازه میدهد آهنربا نرمالهای نقاط (جهت سطح) را تغییر دهد.
Affect Point Velocity velocity
اجازه میدهد آهنربا سرعت نقاط هندسه ورودی را تغییر دهد.
🔌 ورودیهای عملگر (Operator Inputs)
-
Input 0:
-
Input 1:
(هیچ توضیح خاصی داده نشده است)
📊 کانالهای Info CHOP (اطلاعات اضافی)
اطلاعات اضافی مربوط به Magnet SOP از طریق یک Info CHOP قابل دسترسی است.
🔹 کانالهای مشترک SOP Info
-
num_points: تعداد نقاط در این SOP -
num_prims: تعداد اشکال اولیه (primitives) -
num_particles: تعداد ذرات -
last_vbo_update_time: زمانی که در یک ترد دیگر صرف بهروزرسانی دادههای هندسی GPU از دادههای CPU شده است (جزء زمان فریم محسوب نمیشود) -
last_meta_vbo_update_time: زمانی که در یک ترد دیگر صرف بهروزرسانی دادههای سطحی متا (مثل متابالها یا NURBS) روی GPU شده است
🔹 کانالهای مشترک Operator Info
-
total_cooks: تعداد دفعات cook شدن از شروع فرآیند -
cook_time: مدت زمان آخرین cook بر حسب میلیثانیه -
cook_frame: شماره فریم زمانی که آخرین بار cook شده است (نسبت به تایملاین کامپوننت) -
cook_abs_frame: شماره فریم cook آخر نسبت به زمان مطلق -
cook_start_time: زمان شروع cook در آن فریم (بر حسب میلیثانیه) -
cook_end_time: زمان پایان cook در آن فریم (بر حسب میلیثانیه) -
cooked_this_frame: مقدار ۱ اگر در این فریم cook شده باشد -
warnings: تعداد هشدارها -
errors: تعداد خطاها
