آموزش ریگ بندی در مایا (بخش سوم)
فهرست مطالب
آخرین به روزرسانی در 29/07/2022
در بخش سوم از آموزش ریگ بندی در مایا قرار داریم.
در بخش قبلی ما به مباحث Spline IK ، اسکریپت نویسی با پایتون ، کنترل های ستون فقرات و … پرداختیم.
در این بخش ما به ادامه ی ریگ بندی در بخش های جدیدی خواهیم پرداخت ، که بخش های جدید شامل سر و گردن و کار کردن روی فیزیک حرکتی راحت تر آنها برای انیماتور می باشد.
تا پایان با ما همراه باشید.
پیش نیاز این دوره ی آموزشی تسلط و مطالعه ی آموزش ریگ بندی در مایا (بخش دوم) می باشد.
و همچنین تسلط بر مدل سازی در نرم افزار مایا .
مقدمه
همانطور که گفته شد این بار ریگ بندی سر و گردن در مایا را ایجاد می کنیم.
ناحیه گردن یک ستون فقرات (استخوان های گردن) از 7 مهره تشکیل شده است، و مانند آنچه در مورد ناحیه کمر و قفسه سینه انجام دادیم، این کار را در CG ساده می کنیم تا برای انیماتور قابل کنترل تر شود.
ما قصد داریم 2 کنترلر برای گردن به انیماتور بدهیم که این کنترلرها شامل : یکی در پایه گردن و دیگری بین پایه و استخوان اطلس، جایی که ستون فقرات به جمجمه می رسد ، قرار دارد.
این کنترلرها معمولا انعطاف پذیری لازم را به قسمت های مورد نظر ما می دهد.
هیچ چیز در اینجا مشخص نیست، بنابراین اگر می خواهید کنترلر بیشتر یا حتی کمتری داشته باشید، تغییرات لازم را اعمال کنید.
با حرکت از گردن، مفاصل سر، فک و چشم و کنترل ها را اضافه می کنیم.
سر و فک، مانند گردن، مبتنی بر FK خواهد بود، اما ما همچنین مقداری انعطاف پذیری را به ریگ اضافه خواهیم کرد.
تغییر space به انیماتور اجازه می دهد تا تصمیم بگیرد که یک ناحیه خاص از کدام قسمت بدن باید پیروی کند.
مثلاً سر باید با گردن، بالاتنه یا اصلاً هیچ جهتی نداشته باشد؟
با اضافه کردن space-switching به ریگ، میتوانیم نتایج بسیار جالبی ایجاد کنیم.
وقتی این ویژگی را به چشم اضافه کنیم، متوجه منظور من خواهید شد.
لازم به ذکر است در حال حاضر ما در حال تنظیم چرخش X برای drive flexion/extension برای همه مفاصل هستیم.
این باعث می شود که طول اتصالات با ویژگی translate Y تعیین شود، نه translate X .
ایجاد مفاصل گردن، سر و فک
در این بخش میخواهیم به آموزش ریگ بندی سر و گردن در مایا بپردازیم.
در نمای side ، به Skeleton > Joint Tool بروید.
ما می خواهیم شروع زنجیره مفصل گردن را به انتهای زنجیره ستون فقرات خود بچسبانیم.
برای انجام این کار، کلید V را روی صفحه کلید نگه دارید (point snapping) و نزدیک به انتهای مفصل ستون فقرات کلیک کنید اما روی آن کلیک نکنید.
هنگامی که اولین مفصل را در جای خود قرار دادید، کلید V را رها کنید و یک مفصل در وسط گردن و سپس در پایه سر ایجاد کنید.
هنوز در ابزار، کلید Shift را نگه دارید و یک مفصل نهایی در نوک سر ایجاد کنید.
نام این مفاصل را از ریشه تا آخر به صورت زیر تغییر دهید : neckA_jnt ، neckB_jnt، head_jnt و headEnd_jnt. اکنون باید مفاصل را جهت دهی کنیم تا چرخش X مثبت خم شدن ایجاد کند.
برای انجام این کار، neckA_jnt را انتخاب کنید و به Skeleton > Orient Joint Tool (Options) بروید.
محور اصلی را روی Y، محور دوم را روی X و جهتگیری جهانی محور ثانویه را روی X تنظیم کنید.
اعمال را بزنید و سپس نتایج را آزمایش کنید.
حالا مفصل فک می آید. در نمای جانبی، یک زنجیره فک 3 مفصلی ایجاد کنید که از جلو و زیر گوش شروع می شود، سپس در گوشه فک و در نهایت از چانه.
ما می توانیم یک زنجیره 2 مفصلی ایجاد کنیم که از ناحیه گوش به سمت چانه می رود.
من فقط مفصل اضافی را وارد می کنم زیرا دوست دارم از نظر بصری شبیه یک فک واقعی باشد.
نام مفاصل را تغییر دهید : jawA_Jnt، jawB_jnt و jawEnd_jnt. jawA_jnt را انتخاب کنید و با استفاده از تنظیمات قبلی به Skeleton > Orient Joint Tool بروید.
در نهایت، والدهای jawA_jnt در زیر head_jnt قرار می گیرند.
بعد مفاصل چشم می آیند.
در حال حاضر، هندسه کره چشم کمی از مرکز خارج شده است.
برای سهولت در تنظیم کنترل های چشمی، تصمیم گرفتیم با چرخاندن هندسه در محور Y آنها را صاف کنیم.
سپس، با انتخاب هندسه کره چشم، به Modify > Freeze Transforms بروید.
حالا یک کره چند ضلعی ایجاد کنید و کره را ترنسلیت کنید، بچرخانید و مقیاس دهید تا روی هندسه چشم اصلی قرار گیرد.
این می تواند به عنوان هندسه پروکسی ما عمل کند و همچنین هنگام قرار دادن مفاصل مفید خواهد بود.
نام کره تازه ایجاد شده را به l_eyeball_proxy تغییر دهید.
Feature Editor را باز کنید و در سمت چپ برگه، به Display بروید و Display Handle را روشن کنید.
اکنون میتوانیم از دسته نمایشگر استفاده کنیم تا از مرکز کره به بیرون بچسبیم.
بنابراین Joint Tool را فعال کنید، کلید V را نگه دارید (برای فعال کردن knock point) و یک مفصل از مرکز هندسه کره چشم ایجاد کنید که به نوک جلویی چشم ختم می شود.
نام مشترک را به l_eye_jnt و l_eyeEnd_jnt تغییر دهید.
l_eyeball_proxy و l_eye_jnt را کپی کنید و سپس یک علامت منفی جلوی مقدار در کانال Translate X بزنید.
این سمت راست را ایجاد می کند.
نام هندسه و مفاصل را به جای l_ به r_ تغییر دهید.
هم l_eye_jnt و هم r-eye jnt را انتخاب کنید و به Skeleton > Orient Joint Tool (Options) بروید، Orient Joint to World را روشن کنید و روی Apply کلیک کنید .
در نهایت، l_eye_jnt و r_eye_jnt زیر head_jnt. قرار می گیرد.
ایجاد low-res mesh
اکنون باید مش را خرد کرده و آن را به مفاصل مربوطه پر کنیم.
ما در این قسمت به جزئیات نمی پردازیم، زیرا این همان فرآیندی است که برای ایجاد low-res mesh برای بالاتنه استفاده کردیم.
اما اشاره می کنیم که حفره داخلی چشم و دهان را حذف کردیم تا کمی روی ریگ روشن شود.
مطمئن شوید که نام هندسه خرد شده را نیز با استفاده از همان نامگذاری که برای هندسه نیم تنه استفاده کردیم، تغییر دهید.
همچنین میتوانید چند کره زیر هر مفصل چشم ایجاد کنید و دوباره مطمئن شوید که نام آنها را به درستی تغییر دهید.
ایجاد کنترلرهای سر و گردن
اکنون کنترلهای مفاصل گردن، سر و فک را اضافه میکنیم.
بنابراین، neckA_jnt، neckB_jnt، head_jnt، jawA_jnt را انتخاب کنید و اسکریپت createControls.py را در Script Editor باز کنید.
مطمئن شوید که خط آخر به صورت زیر خوانده می شود:
cmds.orientConstraint(ctrl, s, mo=0)
و سپس اسکریپت را اجرا کنید.
حالا بیایید سلسله مراتب کنترل را ایجاد کنیم.
jawA_ctrl_offset را انتخاب کنید و آن را در قسمت head_ctrl قرار دهید.
والد بعدی head_ctrl_offset زیر neckB_ctrl و سپس والد neckA_ctrl_offset در neckA_ctrl_offset. در نهایت، neckA_jnt را به neckA_ctrl constrain کنید و سپس neckA_ctrl_offset را در زیر chest_IK_ctrl قرار دهید.
برای ویرایش شکل کنترلها و انتخاب آسانتر آنها، با زدن F8 روی صفحهکلید به حالت کامپوننت بروید.
CV های کنترلها را انتخاب کنید و مقیاسبندی کنید و آنها را به شکل هندسی ترنسلیت کنید.
اکنون کمی مرتب کردن به کار مورد نیاز است : neckA_jnt را انتخاب کنید، Ctrl+G را بزنید و سپس نام گروه را head_jnt_grp تغییر دهید.
هر دو head_jnt_grp و spine_jnt_grp را انتخاب کنید و Ctrl+G را بزنید. نام گروه جدید torso_jnt_grp را تغییر دهید.
ساخت کنترلر چشم ها
برای کنترلهای چشمی، میخواهیم یک شکل مکان یاب از یک منحنی CV ایجاد کنیم.
برای انجام این کار، به هر نمای orthographic بروید (از نمای Front شروع می کنیم) و CV Curve Tool را با درجه منحنی روی 1 Linear فعال کنید.
حالا Grid snapping را روشن کنید (یا کلید X را نگه دارید) و شروع به کشیدن یک cross (ضربدر) کنید.
در ابزار بمانید، به نمای top بروید و به افزودن 2 نقطه دیگر ادامه دهید تا چیزی شبیه locator ایجاد کنید.
شکل را تغییر نام دهید l_eye_ctrl و سپس دوبار CTRL+G را بزنید.
نام گروه برتر را l_eye_ctrl_offset و گروه زیر را l_eye_ctrl_auto تغییر دهید.
برای قرار دادن کنترل، l_eye_ctrl_offset را انتخاب کنید و آن را در زیر l_eye_jnt قرار دهید.
هنگامی که در جای خود ظاهر شد، مقادیر transform را برای گروه افست صفر کنید و سپس Shift+P را فشار دهید تا آن را از محل اتصال خارج کنید.
حالا آفست را در محور Z بیرون بکشید تا جلوی شخصیت قرار بگیرد.
l_eye_ctrl_offset را انتخاب کنید و Ctrl+D را بزنید تا کپی شود. l_ را با r_ برای گره های کنترل و گروه جایگزین کنید و سپس یک منها ، جلوی مقدار Translate X قرار دهید تا آن را به سمت دیگر ببرید.
در مرحله بعد، یک کنترل برای حمل هر دو کنترل چشم فردی ایجاد می کنیم.
به نمای front بروید و با استفاده از ابزار منحنی CV، یک شکل square ( مربع) بکشید.
نام آن را به eyes_ctrl تغییر دهید و سپس Ctrl+G را دوبار فشار دهید تا سلسله مراتب کنترل ایجاد شود.
نام بالاترین گروه را eyes_ctrl_offset و گروه بعدی را eyes_ctrl_auto تغییر دهید.
برای قرار دادن کنترل در جای خود، به این ترتیب انتخاب کنید.
l_eye_ctrl، r_eye_ctrl و سپس eyes_ctrl_offset. به Constrain > Point بروید و سلسله مراتب کنترل باید در جای خود قرار گیرد.
اکنون گره PointConstraint را که در زیر eyes_ctrl_offset قرار دارد، حذف کنید.
شکل eyes_ctrl را در حالت component (F8) و سپس l_eyes_ctrl_offset والد و r_eyes_ctrl_offset را در زیر eyes_ctrl ویرایش کنید.
آخرین کاری که می خواهیم انجام دهیم این است که constraint های چشم را تنظیم کنیم.
l_eye_ctrl را انتخاب کنید، shift-select l_eye_jnt را انتخاب کنید و به Constraints > Aim (Options) بروید.
Aim Vector را روی 0، 0، 1 قرار دهید و Apply را بزنید.
همین کار را برای چشم راست انجام دهید و شخصیت باید بتواند خوب به اطراف نگاه کند.
تنظیم دید چشم ها در مایا
برای تنظیم دید چشم ها در مایا با ایجاد 2 مکان یاب (Create > Locator) شروع کنید و نام آنها را به eyesHeadFollow_low و eyesWorldFollow_loc تغییر دهید.
هر دو مکان یاب را انتخاب کنید و آنها را در زیر eyes_ctrl قرار دهید.
مقادیر Translation را صفر کنید تا در جای خود قرار گیرند و سپس Shift+P را فشار دهید تا از حالت والد خارج شوند.
اکنون eyesHeadFollow_loc والد را در زیر head_ctrl قرار دهید و eyesWorldFollow_loc را در جایی که هست رها کنید.
به این ترتیب انتخاب کنید ؛ eyesHeadFollow_loc ، eyesWorldFollow_loc، eyes_ctrl_auto و به Constrain > Parent بروید.
اکنون میخواهیم یک ویژگی به eyes_ctrl اضافه کنیم تا به ما اجازه دهد تعیین کنیم که آیا چشمها باید از کنترلر سر پیروی کنند یا wold .
eyes_Ctrl را انتخاب کنید و به Modify > Add Attribute بروید.
یک نام طولانی برای eyesFollow بگذارید و Data Type را روی Enum قرار دهید.
در زیر Enum Names، سبز را برجسته کنید و نام New را روی Head قرار دهید و سپس آبی را برجسته کنید و نام جدید را روی World تنظیم کنید.
بعد از آماده شدن گزینه Add را بزنید.
اکنون به Animate > Set Driven Key > Set بروید.
eyes_ctrl را انتخاب کنید و Load Driver را در پنجره Set Driven Key بزنید.
سپس parentConstraint را در زیر eyes_ctrl_auto انتخاب کنید و Load Driven را بزنید.
ویژگی eyesFollow را روی Head در eyes_ctrl قرار دهید و سپس Eyes Head Follow Loc W0 را روی 1 و Eyes World Follow Loc W1 را روی 0 در ParentConstraint تنظیم کنید.
ویژگی eyesFollow را در سمت راست بالای پنجره Set Driven Key و constraint weights را در پنجره پایین سمت راست برجسته کنید و سپس کلید را بزنید.
اکنون eyesFollow را روی World قرار دهید، مقادیر وزن را در والدین Constraint معکوس کنید و یک بار دیگر کلید را در پنجره Set Driven Key بزنید. اکنون باید بتوانید eye_ctrl را دنبال کنید یا کنترل سر را دنبال نکنید.
اکنون eyesWorldFollow_loc را انتخاب کنید، Ctrl+G را بزنید و نام گروه جدید را worldFollow_loc_grp تغییر دهید.
در نهایت، هر دو eyesWorldFollow_loc و eyesHeadFollow_loc را انتخاب کنید و Ctrl+H را فشار دهید تا مخفی شوند.
ایجاد space switching برای سر
4 locator ایجاد کنید و نام آنها را به صورت زیر تغییر دهید :
headNeckFollow_loc، headTorsoFollow_loc، headCOGFollow_loc و headWorldFollow_loc.
هر 4 locator را در زیر head_ctrl قرار دهید، مقادیر Translation را صفر کنید تا در جای خود قرار گیرند و سپس Shift+P را بزنید تا از حالت والد خارج شوند.
حالا به این ترتیب انتخاب کنید ؛ headNeckFollow_loc، headTorsoFollow_loc، headCOGFollow_loc، headWorldFollow_loc و سپس head_ctrl_auto و به Constrain > Orient بروید.
head_ctrl را انتخاب کنید و به Modify > Add Attribute بروید.
اسم آن را headFollow بگذارید، آن را به عنوان Enum تنظیم کنید و 4 نام Enum زیر را اضافه کنید :
neck، torso، COG و world.
پنجره Set Driven Key را باز کنید و head_ctrl را به عنوان Driver و گره orientConstraint را به عنوان شی Driven بارگیری کنید.
همان کاری که برای چشم ها انجام دادیم، Enum را روی حالت مربوطه قرار دهید و سپس تمام constraint weights مربوطه به جز یکی را خاموش کنید.
پس از اتمام کلید را بزنید و سپس برای باقی مانده Enums تکرار کنید.
هنگامی که کلیدهای تنظیم شده را ایجاد کردید، locator ها را تحت کنترل های زیر قرار دهید :
headNeckFollow_loc در زیر neckB_ctrl. headTorsoFollow_loc under chest_IK_ctrl; headCOGFollow_loc تحت COG_ctrl و headWorldFollow_loc تحت worldFollow_loc_grp. سپس با زدن Ctrl+H همه locator ها را مخفی کنید.
مهرسا امینی
برنامه نویس ، انیماتور ، سئوکار
در زندگی رویاهات را دنبال کن