ساخت یک GUI Rig پایه در 3ds Max

ساخت یک GUI Rig پایه در 3ds Max

طراحی اسکلت حرکتی (Rigging) یکی از اساسی‌ترین مراحل برای متحرک‌سازی بهینه یک کاراکتر یا آبجکت انیمیشنی است. یک GUI Rig یک رابط کاربری تولیدی توسط کاربر در محیط نرم‌افزار سه بعدی است که به انیماتور اجازه می‌دهد که کنترل کامل و دقیقی بر حرکت مدل داشته باشد. در این مطلب آموزشی، قصد داریم تا روشی را برای ساخت یک GUI Rig در 3ds Max بررسی کنیم.

final

در اینجا، سطح کار را در یک حالت ابتدایی نگه می‌داریم و با استفاده از پارامترهای wire ، یک کنترل برای کره چشم ایجاد می‌کنیم. به این منظور، 3ds Max را باز کنید و دو مربع در ویوپورت front ایجاد کنید(با استفاده از Shape ها)؛ یکی به ابعاد ۱۰ در ۱۰ و دیگری با ابعاد ۱ در ۱ . بر روی دکمه move راست‌کلیک کنید و تمام مقادیر مختصات را برای دو مربع به صفر تغییر دهید تا هر دو در مرکز قرار گیرند.

کاری که ما می‌خواهیم در اینجا انجام دهیم، استفاده از مربع کوچکتر به عنوان یک کنترلر است و همین‌طور حرکت آن را به گونه‌ای محدود می‌کنیم که نتواند به خارج از مرزهای مربع بزرگتر حرکت کند.

ابتدا مربع کوچکتر را در حالت انتخاب قرار داده و با استفاده از ابزار “Select and link” آن را به مربع بزرگتر متصل کنید. در این حالت، باید بتوانید با حرکت مربع بزرگتر، مربع کوچکتر را بدون اینکه در حالت انتخاب باشد، حرکت دهید.

controller

مسیر زیر را دنبال کنید تا Curve Editor برای شما باز شود:

Graph Editors > Track View – Curve Editor

در Curve Editor، مربع کوچکتر را انتخاب کنید. در این حالت، این مربع به صورت زردرنگ برجسته می‌شود.

curve_editor_1

بر روی X position راست‌کلیک کرده و گزینه “Assign Controller” را انتخاب کنید. در نتیجه، یک پنجره برای شما ظاهر می‌شود که باید “Float Limit” را انتخاب کرده و OK را بزنید.

curve_editor_2

سپس یک پنجره دیگر نیز با عنوان “Float Limit Controller” ظاهر می‌شود. در اینجا، شما نصف بُعد مربع بزرگتر را وارد می‌کنید که محدودیت حرکت را مشخص خواهد کرد. ابعاد مربع بزرگتر ۱۰ در ۱۰ است. بنابراین مقدار upper limit را برابر 5 و مقدار lower limit را برابر 5- وارد کنید و بر روی OK کلیک کنید. در نتیجه، حرکت کنترلر شما در جهت X به عرض مربع بزرگتر محدود خواهد شد.

همین روند را این بار برای Y Position در پنجره curve editor تکرار کنید تا کنترلر شما کاملاً محدود شود. البته یه روش نسبتاً پیشرفته برای انجام این کار وجود دارد تا زمانی که ابعاد مربع تغییر کند، شرایط کنترلر با آن منطبق شود. ولی این روش نیاز به دانش maxscript دارد و برای تازه‌کاران چندان مناسب نیست.

curve_editor_3

یک آبجکت sphere ایجاد کنید و یک مدیفایر editpoly به آن اضافه کنید. سپس به حالت polygon sub-object mode بروید و همه پلی‌گان‌ها را به جز دو رینگ جلویی انتخاب کنید. در زیر بخش Material ID از polygon sub-object mode برای ID عدد ۱ را وارد کنید. سپس حالت انتخاب را برعکس کنید (Edit > Select Inverse و یا کلید میانبر Ctrl+I) و برای ۲ رینگ انتخاب شده مقدار ID را برابر ۲ قرار دهید.

eyeball_1

با فشردن کلید M، پنجره material editor را باز کنید و یک متریال جدید از نوع multi/Sub-Object ایجاد کنید. سپس ID 1 را به سفید و 2 را به سیاه اختصاص دهید و آن را به کره چشم اضاف کنید.

material_editor

نتیجه باید ظاهری شبیه به این تصویر داشته باشد. اکنون که همه‌چیز تنظیم شده، می‌تواند حرکت کره چشم را به کنترلر متصل کنیم.

scene_1

اگر بخواهید در حال حاضر چرخش کره چشم را به کنترلر متصل کنید، چشم زاویه خود را به صفر ریست می‌کند و به طرف بالا نگاه خواهد کرد. بدیهی است که چنین حالتی را نمی‌خواهید و باید به 3ds Max بفهمانیم که زاویه کنونی در حالت صفر قرار دارد. به این منظور، کره چشم را در حالت انتخاب قرار دهید و به سراغ سربرگ “Motion” در بالای سمت راست بروید.

در بخش Parameters، بر روی “Rotation: Euler XYZ” کلیک کنید و دکمه Assign Controller را که به صورت آیکونی با شکل علامت سوال (؟) نمایش داده شده است را بزنید.

بر روی rotation List کلیک کرده و دکمه OK را بزنید.

بخش “Rotation: Euer XYZ” را باز کنید (در همان رول اوت assign controller) و اکنون باید شاهر پارامتر جدید به نام “Available” باشید. Available را انتخاب کرده و دوباره Assign Controller را فشار دهید (دکمه علامت سوال). این بار، گزینه “Euler XYZ” را انتخاب کنید.

در این حالت در پایین یک گزینه به نام “Rotation List” وجود دارد که باید در آن دو Euler XYZ لیست شده باشد. بر روی گزینه پایینی (گزینه جدید) کلیک کنید تا فعال شود.

همین پروسه را برای مربع کوچکتر کنترلر تکرار کنید و این بار به جای Rotation XYZ از Position XYZ استفاده کنید. این کار باعث می‌شود در هنگام اتصال، هیچ‌چیز از جای خود خارج نشود.

تمامی این مراحل به دلیل این بود که چرخش چشم بصورت دستی هم قابل کنترل باشد.

rotation_controller_reset

حالا زمان اتصال کره چشم به کنترلر است. به این منظور بر روی کره چشم راست‌کلیک کنید و گزینه “Wire Parameters…” را انتخاب کنید. سپس مسیر منوی زیر را دنبال کنید:

Transform > Rotation > Euler XYZ > Z Rotation

در نتیجه یک wire به دنبال موس شما ظاهر می‌شود. سپس روی مربع کوچکتر کلیک کنید و به مسیر زیر بروید:

Transform > Position > X Position > Limited Controller: Bezier Float

اکنون یک پنجره برای شما ظاهر می‌شود. در این حالت، فلشی را که به طرف سمت چپ است فشار دهید و “Connect” را انتخاب کنید. در نتیجه، کنترل در حال حاضر باید بتواند کره چشم را حرکت دهد. اگر حرکات سرعت زیادی داشتند، در پایین سمت چپ یک “/4” را مطابق شکل اضافه کنید.

wiring_1

همین روند را دقیقاً برای X rotation نیز انجام دهید. به این منظور به مسیر زیر برید:

Transform > Rotation > BOTTOM (newly created) Euler XYZ > X Rotation

سپس یک wire به دنبال موس شما ظاهر می‌شود. بر روی مربع کوچکتر کلیک کینید و مسیر زیر را انتخاب کنید:

Transform > Position > Y Position > Limited Controller: Bezier Float

در این حالت، فلشی را که به طرف سمت چپ است فشار دهید و “Connect” را انتخاب کنید.

اگر حرکت حالت معکوس داشت، مطابق شکل، یک علامت منفی در ابتدای عنوان در پایین سمت‌چپ اضافه کنید. شما همچنین می‌توانید با اضافه کردن یک نسبت مانند “/4” در پایان عنوان، سرعت حرکات را کاهش دهید.

wiring_2

به همین راحتی، کار به پایان رسید و شما در حال حاضر یک GUI rig دارید که می‌تواند چرخش کره چشم را کنترل کند. این آموزش، در یک حالت پایه، قدرت پارامترهای wire را نشان داد. در اینجا می‌توانید نگاهی به فایل صحنه نتیجه نهایی کار داشته باشید. امیدواریم این مطلب مورد استفاده شما قرار گرفته باشد.

منبع: www.timsportfolio.co.uk

برای درک بهتر این آموزشی می توانید از این ویدئو کمک بگیرید:

 
Share

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *