خلاصه
Geo Text COMP متن را در فضای سهبعدی (3D) رندر میکند.
این کامپوننت هیچ SOPی را نمیخواند یا تولید نمیکند، بلکه مستقیماً با استفاده از کتابخانه Slug رندر انجام میدهد.
میتواند با هر متریال MAT نورپردازی (lit) و تکسچرگذاری (textured) شود.
ویژگیها
تنظیم فونت، رنگ، اندازه، بولد، ایتالیک، فاصله بین کاراکترها (tracking) و چندخطی، مشابه Text COMP.
برخلاف Text COMP که مرز Width و Height دارد، Geo Text این مرز را ندارد و بهجای آن از Layout Box استفاده میکند.
Layout Box دارای عرض و ارتفاع است.
بهصورت پیشفرض، گوشه پایین-چپ آن در مختصات (0,0,0) فضای شیء قرار میگیرد.
با تنظیم Layout Box Anchor U و V روی (0.5, 0.5)، میتوان مرکز جعبه را روی (0,0,0) گذاشت.
با Layout Box میتوان متن را راستچین یا بالاچین کرد، آن را به محدودهی جعبه کلیپ نمود و حتی Padding به هر طرف اضافه کرد.
📌 معادل دوبعدی این کامپوننت: Text COMP
📌 برای تغییرات کاراکتر بهصورت جداگانه: Text Formatting Codes
رندر چندرشتهای مستقل
برای رندر چند متن که هرکدام موقعیت و استایل جداگانه داشته باشند:
از Specification DAT و Specification CHOP استفاده میشود.
هر ردیف در Spec DAT یک بلاک متنی (Text Block) است.
ستون
text
رشته متن را مشخص میکند و پارامتر Text را override میکند.بقیه ستونها پارامترهای Geo Text (مثل
tx
،fontsize
و غیره) را override میکنند.بعضی ستونها پارامتر مستقیم ندارند ولی رفتار خاص دارند (مثل
append
).
Spec CHOP
میتواند مقدارهای عددی (مثل tx, ty, rz, fontcolorr و …) برای هر بلاک بدهد.
تعداد سمپلهای Spec CHOP باید برابر تعداد ردیفهای Spec DAT باشد.
پارامترهایی که میتوان override کرد
اندازه فونت، رنگ فونت، Tracking
همهی پارامترهای مربوط به Layout Box و alignment
ستونهای ترنسفورم (tx, ty, tz, rx, ry, rz, sx, sy, sz)
ستون append
وقتی مقدار
append = 1
باشد، بلاک جدید دقیقاً بعد از بلاک قبلی قرار میگیرد.ترنسفورمها به بلاکهای بعدی ارث میرسند.
ترنسفورمهای محلی (Local)
ستونهایی مثل
ltx, lrz
ترنسفورم محلی اعمال میکنند که به بلاکهای append بعدی منتقل نمیشوند.اگر ستون
localxform = pre
باشد، ترنسفورم محلی قبل از ترنسفورمهای ارثبری در فضای جهانی اعمال میشود.
نکته در رندر
Geo Text برای نمایش حروف از Blending و Transparency استفاده میکند.
هر کاراکتر (glyph) یک مستطیل نیمهشفاف است.
برای جلوگیری از دیدن پسزمینه مستطیلها:
متن باید بعد از هندسههای پشت سرش رندر شود.
این کار با Draw Priority در صفحه Render انجام میشود (مقدار منفیتر یعنی دیرتر کشیده شود).
متنها طبق ترتیب ردیفهای Spec DAT کشیده میشوند.
پس بهتر است سطرهایی که عقبتر هستند زودتر در جدول بیایند.
📌 برای گزینههای ترنسفورم بیشتر: OP Snippets
شباهت
Geo Text شبیه Text COMP است، با این تفاوت که Text دوبعدی است و Geo Text سهبعدی.
پارامترها
Text Page
Mode (mode): مشخص میکند متن از کجا گرفته شود:
از پارامتر Text
یا از Specification DAT / CHOP
Text (text): وقتی در حالت Text باشد، رشتهای که رندر میشود را مشخص میکند.
Specification DAT (specdat):
داده از یک جدول DAT خوانده میشود.
هر ردیف یک خط متن است که میتواند ترنسفورم، رنگ، چینش و تنظیمات متفاوتی داشته باشد.
اگر ستونی خالی بماند، مقدار پیشفرض پارامتر اعمال میشود.
ستونهای معتبر: text, tx, ty, tz, rx, ry, rz, sx, sy, sz, px, py, pz, ltx, lty, ltz, lrx, lry, lrz, lsx, lsy, lsz, lpx, lpy, lpz, fontcolorr, fontcolorg, fontcolorb, fontalpha, alignx, aligny, alignymode, fontsize, tracking, skew, horzstretch, linespacing, wordwrap, layoutsizew, layoutsizeh, layoutanchoru, layoutanchorv, textpaddingl, textpaddingr, textpaddingb, textpaddingt, render, append, localxform.
Specification CHOP (specchop): داده عددی را به بلاکهای متنی اعمال میکند. هر سمپل مربوط به یک ردیف در Spec DAT است.
Sort by Depth (sorted): وقتی فعال شود، ردیفها از عقب به جلو (نسبت به دوربین) کشیده میشوند تا شفافیت درست کار کند. (روی تعداد زیاد متن سنگین است).
Formatting Codes (formatcodes): فعالسازی کدهای فرمت مثل
{#color(255,0,0);}
.Parse Escape Sequences (escapeseq): پشتیبانی از
\t
,\n
,\r
برای تب و خط جدید.Smart Punctuation (smartpunct): جایگزینی خودکار گیومهها، سه نقطه (…) و خط فاصله (—).
Word Wrap (wordwrap): شکستن متن وقتی از عرض Layout Box بیشتر شود.
Font Page
Font (font): انتخاب فونت از لیست سیستم. (اولین بار انتخاب ممکن است کمی طول بکشد).
Font File (fontfile): انتخاب فایل فونت دلخواه (غیرثبتشده در سیستم).
Bold (bold): نمایش متن بولد.
Italic (italic): نمایش متن ایتالیک.
Font Size (fontsize): اندازه فونت (واحد بر اساس فضای صحنه).
Tracking (tracking): فاصله افقی بین کاراکترها.
Skew (skew): کج کردن بالای کاراکترها.
Horz Stretch (horzstretch): کشیدگی افقی حروف.
Line Spacing (linespacing): فاصله بین خطوط.
Font Color (fontcolor): رنگ فونت (RGB).
Font Alpha (fontalpha): شفافیت فونت.
Layout Box Anchor U/V: مشخصکردن نقطهی چرخش و مبنای جعبه.
Layout Box Size (layoutsize): عرض و ارتفاع جعبه مجازی.
Clip to Layout Box: برش متن بیرون از جعبه.
Text Padding: فاصله از لبههای جعبه.
Horizontal Align (alignx): چینش افقی (Left, Center, Right).
Vertical Align (aligny): چینش عمودی (Top, Center, Bottom).
Vertical Align Mode (alignymode):
با Font Metrics (ثابت، بسته به فونت)
یا Bounding Box (وابسته به متن، مناسب متن استاتیک).
Xform Page
Transform Order (xord): ترتیب اعمال Scale, Rotate, Translate.
Rotate Order (rord): ترتیب اعمال چرخشها (Rx, Ry, Rz).
Translate (t): جابجایی روی محورهای X, Y, Z.
Rotate (r): چرخش روی محورهای X, Y, Z.
Scale (s): مقیاس روی محورهای X, Y, Z.
Pivot (p): نقطه مرجع برای مقیاس و چرخش.
وضیحات چرخش و مقیاس
Pivot Points: اگر یک کامپوننت با Pivot های مختلف بچرخد، نتایج متفاوتی میدهد.
Uniform Scale (مقیاس یکنواخت): اندازه کامپوننت را در هر سه محور به یک نسبت تغییر میدهد.
⚠️ نکته: تغییر Scale در کانالهای دوربین پیشنهاد نمیشود. ولی اگر انجام شود، خروجی رندر تا حد ممکن با Viewport هماهنگ خواهد بود.
پارامتر Parent Transform
Parent Transform Source: جایگزین پارامتر قدیمی Constrain To است. تعیین میکند موقعیت اولیه شیء از کجا گرفته شود:
Parent (Hierarchy) → از والد
Specify Parent Object → شیء مشخص
World Origin → مبدا جهان
Parent Object: اجازه میدهد این کامپوننت به مسیر شیء دیگری قفل شود.
Look At: باعث میشود کامپوننت همیشه به سمت یک کامپوننت دیگر نگاه کند (Origin آن).
مثال: دوربینی که همیشه حرکت یک شیء دیگر را دنبال میکند.
📌 ترفند: اگر بخواهی دوربین روی نقطهای که در صحنه وجود ندارد تمرکز کند → یک Null بساز، Display Flag آن را خاموش کن، دوربین را Parent آن کن و پارامتر Look At دوربین را روی Null بگذار.
Forward Direction: تعیین میکند کدام محور (±X, ±Y, ±Z) بهعنوان جهت جلو در نظر گرفته شود.
Look At Up Vector: هنگام استفاده از Look At، یک Up Vector هم میتوان تعریف کرد:
Don’t Use Up Vector → بدون بردار بالا (ممکن است انیمیشن بد شود).
Use Up Vector → دقیقاً تعیین میکند محور Y مثبت کجا باشد.
Use Quaternions → از کواترنیون برای محاسبه چرخش روان استفاده میکند.
Use Roll → زاویه Roll هم قابل کنترل است.
پارامتر Path
Path SOP: نام SOPی که مسیر حرکت را تعریف میکند (مثلاً مسیر حرکت دوربین).
Roll: زاویه چرخش شیء در طول مسیر.
Position: موقعیت روی مسیر، بین 0 (ابتدا) تا 1 (انتهای مسیر). تا عدد 10 هم قابل تکرار (Loop) است.
Orient along Path: اگر فعال شود، محور Z مثبت کامپوننت در راستای مسیر قرار میگیرد.
Orient Up Vector: تعیین میکند محور Y مثبت کجا باشد (X/Y/Z).
Auto-Bank Factor: چرخش خودکار بر اساس انحنای مسیر. مقدار 0 یعنی غیرفعال.
Parameters – Pre-Xform Page
این بخش دقیقاً مثل این است که یک والد برای شیء اضافه شود.
ترتیب اعمال:
Apply Pre-Transform: فعالسازی Pre-Xform.
Transform Order / Rotate Order / Translate / Rotate / Scale / Pivot: مثل صفحه Xform.
Uniform Scale: مقیاس یکنواخت.
Reset Transform: ریست کردن ترنسفورم این صفحه.
Commit to Main Transform: انتقال مقادیر این صفحه به Xform اصلی.
Xform Matrix/CHOP/DAT: استفاده از یک ماتریس 4×4 برای ترنسفورم مستقیم. ترتیب اعمال:
Parameters – Instance Page
قابلیت Instancing برای ساخت چند نسخه (Instance) از هندسه روی GPU.
Instancing: روشن/خاموش.
Instance Count Mode:
Manual → تعداد را دستی بدهی.
OP Length → تعداد از تعداد سطرهای DAT یا نمونههای CHOP گرفته شود.
Num Instances: تعداد نمونهها (وقتی Manual باشد).
Default Instance OP: تعیین CHOP یا DAT پیشفرض برای دادههای Instance.
First Row is: در صورت استفاده از DAT:
Ignored → ردیف اول نادیده گرفته میشود.
Names → ردیف اول نام ستونهاست.
Values → ردیف اول داده اولین Instance است.
Transform Order / Rotate Order: ترتیب اعمال ترنسفورمها برای هر Instance.
Translate / Rotate / Scale / Pivot OP: میتوان برای هرکدام یک CHOP/DAT/SOP داد.
هرکدام از محورهای X/Y/Z جداگانه قابل کنترل هستند.
Active: کانالی که تعیین میکند کدام Instance رندر شود (0 = خاموش).
Parameters – Instance 2 Page
وقتی داده از TOP/CHOP/SOP/DAT بیاید، به ترتیب به ویژگیهای Instance نگاشت میشود.
Rotate to Vector: امکان چرخش هر Instance به سمت یک بردار خاص.
Forward Direction → تعیین محور جلو.
Rotate to OP → منبع داده.
X/Y/Z → دادهی چرخش.
Rotate Up Vector: تعیین محور بالا (X/Y/Z).
Instance Order: ترتیب اعمال World Transform و Instance Transform:
Instance → World
World → Instance
Texture Mode:
Replace → جایگزینی مختصات UV
Transform → انتقال UV
Color Mode:
Replace, Multiply, Add, Subtract
Instance Textures: میتوان چندین TOP داد. هر Instance با استفاده از پارامتر Texture Index یکی از آنها را انتخاب میکند.
محدودیت: ویندوز حداکثر 16384 بافت، macOS حداکثر 128 بافت همزمان.
Parameters – Instance 3 Page
اینجا میتوان ویژگیهای سفارشی (Custom Attributes) تعریف کرد که در GLSL MAT قابل استفاده باشند.
TDInstanceCustomAttrib0(), TDInstanceCustomAttrib1() و … برای دسترسی.
هر GPU تعداد متفاوتی ویژگی سفارشی پشتیبانی میکند.
پارامترها: OP منبع + مقادیر X/Y/Z/W.
Parameters – Render Page
کنترل متریال و رندرینگ کامپوننت.
Material: انتخاب MAT.
Render: روشن/خاموش بودن نمایش.
Draw Priority: ترتیب کشیدن (اعداد کوچکتر دیرتر کشیده میشوند → برای شفافیت مهم است).
Pick Priority: اولویت انتخاب هنگام استفاده از Render Pick.
Wireframe Color: رنگ نمایش در حالت Wireframe.
Light Mask: محدودکردن چراغهایی که روی این هندسه تأثیر میگذارند.
Parameters – Extensions Page
مدیریت Extensionهای پایتون برای این کامپوننت.
Extension: لیست Extensionها.
Object: کلاس پایتونی متصل.
Name: نام اختیاری.
Promote: اگر روشن باشد متدها مستقیم در کامپوننت در دسترس هستند (n.SomeFunction). اگر خاموش باشد باید از
.ext
صدا زده شوند (n.ext.SomeFunction).Re-Init Extensions: بازکامپایل تمام Extensionها.
Parameters – Common Page
تنظیمات عمومی مربوط به نمایش، کپی و ارتباط با فایلها.
Parent Shortcut / Global OP Shortcut: نام مستعار برای دسترسی سریع به مسیر کامپوننت.
Internal OP: تعریف اپراتورهای داخلی و نام میانبر برایشان.
Node View: تعیین نمایشگر گره.
Enable Cloning / Clone Master: تنظیمات Clone.
Load on Demand: فقط هنگام نیاز بارگذاری شود.
Enable External .tox: وصلکردن فایل خارجی tox.
External .tox Path: مسیر فایل tox.
Reload Custom/Built-in Parameters: هنگام بارگذاری مجدد، مقادیر پارامترها را ریست کند یا نه.
Save Backup of External: بکاپ گرفتن داخل toe.
Sub-Component to Load: انتخاب یک COMP خاص از فایل tox.
Relative File Path Behavior: تنظیم اینکه مسیرهای نسبی داخل کامپوننت نسبت به toe باشد یا tox یا والد.