آموزش ریگ بندی در مایا (بخش دوم)
فهرست مطالب
آخرین به روزرسانی در 29/07/2022
در بخش دوم از آموزش ریگ بندی در مایا قرار داریم و در این بخش به صورت تمرکزی بر روی ریگ بندی تنه انسان کار خواهیم کرد.
در بخش اول از آموزش ما به معرفی بخش های ابتدایی و مقدمات پرداختیم و پس از آن با مفاهیم کنترلرها ، ترنسلیت ، گره ها ، روابط والد و فرزند ، محدودیت ها و … آشنا شدیم.
پیش نیاز این دوره ی آموزشی تسلط و مطالعه ی آموزش ریگ بندی در مایا (بخش اول) می باشد.
و همچنین تسلط بر مدل سازی در نرم افزار مایا می باشد.
مقدمه
در این فصل وظیفه ایجاد یک ریگ تنه انعطاف پذیر برای شخصیت خود را خواهیم داشت.
به جرات می توان گفت که نیم تنه مرکز حرکت کل بدن است.
بازوها، پاها و سر همگی توسط نیم تنه حمل می شوند و بنابراین ضروری است که آن را درست انجام دهیم.
ستون فقرات شما از 24 مهره تشکیل شده است: 7 مهره گردنی، 12 مهره سینه ای و 5 مهره کمری (منهای coccyx و sacrum).
به عنوان مثال، 24 کنترل برای کنترل ستون فقرات ممکن است انیماتور را کمی کوک کند.
من نمی گویم هرگز سعی نکنید واقعیت را به طور کامل در CG تکرار کنید، فقط گاهی اوقات ما فقط برای فریب دادن مخاطب نیاز به ایجاد توهم واقعیت داریم.
در این آموزش، ما نه از شکل طبیعی ستون فقرات پیروی می کنیم و نه مفاصل مایا را سمت کارکترهای تخیلی خواهیم برد.
برای ایجاد شدن شکل s ستون فقرات استفاده از یک محور برای ایجاد یک پیچ تمیز است، نه استفاده از ترکیب دو محور.
لازم به ذکر است که وضعیت مش نیز تعیین می کند که آیا این امکان پذیر است یا خیر.
دلیل قرار ندادن مفاصل مایا در قسمت پشتی تنه این است که قرار دادن آنها به وسط بالاتنه معمولاً تغییر شکل بهتری ایجاد می کند.
تنها راه برای فهمیدن اینکه چه چیزی برای شما بهتر عمل می کند این است که از طریق یک فرآیند آزمون و خطا بروید.
ستون فقراتی که ما ایجاد خواهیم کرد، مزایای هر دو سینماتیک رو به جلو (FK) و سینماتیک معکوس (IK) را به ما خواهد داد.
قبل از اینکه ریگ را شروع کنیم، می خواهم به سرعت به اهمیت استاندارهای نامگذاری و سازگاری اشاره کنم.
ریگ ها می توانند ساده شروع شوند اما خیلی سریع بسیار پیچیده می شوند.
بنابراین ضروری است که خیلی زود ساختاری را برای نظم بخشیدن به ریگ هایمان ایجاد کنیم.
اولین کاری که میتوانیم انجام دهیم این است که یک استاندارد نامگذاری برای همه انواع شی ایجاد کنیم.
به عنوان مثال، تمام اتصالات با پسوند _jnt ، تمام کنترل ها با پسوند _ctrl و … به پایان می رسند.
همه مفاصل یا کنترل های سمت راست با r_ و همه مفاصل و کنترل های سمت چپ با l_ شروع می شوند.
این نظم باعث دسترسی راحت تر به بخش های مختلف ریگ بندی می شود.
برای اینکه ریگ تا جایی که می تواند برای انیماتور کارآمد باشد، می توانیم چند نکته را در نظر داشته باشیم.
در ابتدا، ما می توانیم تصمیم بگیریم که کدام محورهای چرخشی چه نوع حرکتی را در کل تنه ایجاد می کند.
به عنوان مثال، ما می خواهیم چرخش X را به عنوان ویژگی که flexion/extension را ایجاد می کند، تنظیم کنیم.
به این ترتیب، انیماتور می تواند صرفاً در ویرایشگر نمودار کار کند و چه بازو، پا یا ستون فقرات را انتخاب کرده باشد، می داند که با ویرایش چرخش X، می تواند حالت خم شدن ایجاد می کند.
ایجاد مفاصل ستون فقرات IK
در نمای جانبی، به Skeleton > Joint Tool بروید.
با استفاده از دکمه سمت چپ ماوس ، اولین مفصل را درست در زیر ناف و در مرکز هندسه ایجاد کنید.
کلید Shift را روی صفحه کلید نگه دارید (با این کار یک زنجیره مفصلی مستقیم ایجاد می شود) و با انجام 6 کلیک اضافی به ایجاد بقیه ستون فقرات ادامه دهید.
وقتی زنجیره مفصل خود را کشیدید، روی صفحه کلید Enter را بزنید تا از ابزار خارج شوید.
اکنون، در Outliner، زنجیره مفصل را باز کرده و همه را به جز مفصل ریشه در زنجیره انتخاب کنید.
مقدار 8 را (باید مقدار را آزمایش کنید) را در چنل Translate X در Channel Box قرار دهید تا طول همه اتصالات برابر باشد.
فقط مفصل ریشه را انتخاب کنید و آن را به اطراف ترنسلیت کنید تا زمانی که از موقعیت ستون فقرات راضی باشید.
حال باید به تغییر نام مفاصل بپردازید.
از ریشه تا بالا، نام مفاصل را به این صورت تغییر دهید: spineA_IK_jnt، spineB_IK_jnt، spineC_IK_jnt، spineD_IK_jnt، spineE_IK_jnt، spineF_IK_jnt و spineEnd_IK_jnt.
حالا spineEnd_jnt را انتخاب کنید و Ctrl+D را بزنید تا کپی شود و سپس Shift+P را بزنید تا از سلسله مراتب مشترک فعلی خارج شود.
نام آن را به chest_IK_jnt تغییر دهید.
Ctrl+D را بزنید تا آن را کپی کنید و نام مشترک جدید midSpine_IK_jnt را تغییر دهید.
کلید V را نگه دارید تا ابزار Point Snap فعال شود و مفصل کپی شده جدید را به spineD_IK_jnt بچسبانید.
آن مفصل جدید را کپی کنید، نام آن را hip_IK_jnt تغییر دهید و سپس آن را به spineA_IK_jnt بکشید.
شعاع 3 اتصال جدید در Channel Box را افزایش دهید تا به راحتی قابل انتخاب باشند.
مفاصل ستون فقرات IK در جای خود قرار دارند و شعاع را تغییر می دهند تا برخی از مفاصل به راحتی قابل انتخاب باشند.
ساخت low-res mesh
ما برای آزمایش ریگ بندی، به سادگی مش را خرد می کنیم و سپس به سادگی هندسه خرد شده را به مفاصل تغییر می دهیم.
این به نوبه خود به ما یک ریگ کم رزولوشن می دهد که انیماتور می تواند از آن برای دریافت بازخورد سریع برای انیمیشن خود استفاده کند تا اینکه مجبور به تکیه بر playblasting باشد.
اکنون راههای زیادی برای انجام این کار وجود دارد و ما بسته به حالتی که در آن هستیم از روشهای مختلفی استفاده میکنیم.
ما در این قسمت یک مثال را شرح خواهیم داد که شما می توانید به راحتی آزمایشات مختلف را نیز برای رسیدن به هدف نهایی تست کنید.
بنابراین ابتدا مدل را کپی کرده و با زدن Ctrl+H نسخه اصلی را مخفی کنید.
همانطور که روی نیم تنه تمرکز می کنیم، به حالت چهره بروید و به سادگی تمام هندسه گردن، سر، بازوها و پاها (نه لگن) را حذف کنید.
در حین انجام این کار سعی کنید همه چیز را متقارن نگه دارید.
اکنون، تمام چهرههای بین spineA_IK_jnt و spineB_IK_jnt را انتخاب کنید (در صورت امکان از توپولوژی برای راهنمایی شما استفاده کنید) و در مجموعه منوی مدلسازی (F3)، به Mesh > Extract بروید.
سپس چهره های بین spineB_IK_jnt و spineC_IK_jnt را انتخاب کرده و مرحله را تکرار کنید.
این کار را ادامه دهید تا زمانی که 7 قسمت توری جداگانه داشته باشید.
پس از تکمیل، تمام قسمت ها را انتخاب کنید و به Edit > Delete By Type > History بروید.
پس از این، بخشهای هندسی را از ریشه به بالا تغییر نام دهید : hip_proxy_geo، spineA_proxy_geo، spineB_proxy_geo، spineC_proxy_geo، spineD_proxy_geo، spineE_proxy_geo و spineF_proxy_geo.
پس از این، به سادگی بخش هندسی مربوطه را انتخاب کرده و آن را در زیر مفصل مربوطه قرار دهید.
چرخش مفاصل اکنون باید بر هندسه تأثیر بگذارد.
اگر دوست دارید، میتوانید چگالی هندسه پروکسی را نیز کاهش دهید تا یک ریگ سریعتر ایجاد کنید.
تا زمانی که حجم مش با رزولوشن پایین با مدل اصلی مطابقت داشته باشد، شما باید آماده باشید.
اضافه کردن Spline IK
اکنون به Skeleton > IK Spline Handle Tool (Options) بروید و همه چیز را به جز تعداد Spans به همان شکلی که هست روی حالت دیفالت رها کنید.
تعداد Spans را به عدد 2 تغییر دهید.
سپس در Viewport، روی spineA_IK_jnt و سپس بر روی spineEnd_IK_jnt کلیک کنید.
اگر این کار را در Outliner انجام می دهید، ابزار را فعال کنید، spineA_IK_jnt را انتخاب کنید و Ctrl را نگه دارید و سپس spineEnd_IK_jnt را انتخاب کنید. ikHandle1 را به spine_IK و curve1 را به spine_CRV تغییر نام دهید.
Spline IK متفاوت از IK معمولی عمل می کند، زیرا این منحنی است که باعث تغییر شکل مفاصل می شود، نه خود دسته ی IK.
برای تغییر شکل منحنی، باید به حالت کامپوننت برویم و CV ها را ترنسلیت کنیم، که برای انیماتور چندان مفید نیست.
ما میتوانیم برای هر CV یک cluster (خوشه) ایجاد کنیم و اسکلت را به آن شکل تغییر شکل دهیم.
ما قصد نداریم از این روش برای این آموزش استفاده کنیم، اما اگر بخواهید آزمایش کنید، می توانید از این روش استفاده کنید : یک CV را از منحنی انتخاب کنید (برای رفتن به حالت component ، F8 را بزنید) و سپس به Create Deformers > Cluster بروید.
اکنون می توانید خوشه را تحت یک کنترل والد کنید، که انیماتور به راحتی می تواند آن را بگیرد.
ما قصد داریم از روشی استفاده کنیم که از Rigging برای skinning منحنی به طور مستقیم به برخی مفاصل استفاده می کند.
برای این کار کافیست chest_IK_jnt، midSpine_IK_jnt، hip_IK_jnt و spine_CRV را انتخاب کنید.
با انتخاب 4 مورد، به Skin > Bind Skin > Smooth Bind (Options) بروید و از تنظیمات زیر استفاده کنید:
Bind to : مفاصل انتخاب شده (Selected joints)
Bind Method : نزدیکترین فاصله (Closest Distance)
Skinning Method : خطی کلاسیک و وزنهای عادی (Classic Linear and Normalize)
وقتی وارد Skinning نهایی شخصیت شدیم، این تنظیمات را با جزئیات بیشتری بررسی خواهیم کرد.
روی Apply کلیک کنید و اکنون باید بتوانید ستون فقرات را با استفاده از 3 مفصل تغییر شکل دهید.
استفاده از اسکریپت پایتون برای ایجاد کنترلر ها
در مرحله بعد، ما به چند کنترلر برای اتصالات نیاز داریم.
ما از روش ایجاد کنترلهایی که در آموزش قبلی انجام دادم استفاده خواهیم کرد، فقط فرآیند را با استفاده از اسکریپت پایتون به صورت خودکار میکنیم.
اگرچه میتوانید بدون هیچ اسکریپتی نیز این فرایند را انجام دهید، اما این روش میتواند بهرهوری شما را به شدت افزایش دهد، به خصوص در کارهای تکراری مانند ایجاد کنترل.
در ویرایشگر اسکریپت، میتوانید با رفتن به History > Echo all commands، هر عملیاتی را انجام دهید.
اگرچه از دستورات MEL استفاده میکنید، میتوانید به راحتی با استفاده از Maya Help Docs (F1) از پایتون استفاده کنید.
دلیل انتخاب پایتون این است که به راحتی به پکیج های دیگر قابل انتقال است.
عملکرد و نحوه ی استفاده از پایتون به شرح زیر می باشد :
#create controls script
“””
: How to use
1. Select all the joints you want to add controls to, and execute the script.
“””
import maya.cmds as cmds
sl = cmds.ls(sl=1)
: for s in sl
ctrlName = s.replace(“_jnt”, “_ctrl”)
ctrl = cmds.circle( nr=(0, 1, 0), r=1, n=ctrlName)[0]
group = cmds.group(ctrl, n=ctrl + “_auto”)
offset = cmds.group(group, n=ctrl + “_offset”)
cmds.parentConstraint(s, offset, mo=0)
cmds.delete(cmds.parentConstraint(s, offset))
cmds.parentConstraint(ctrl, s, mo=0)
پروسه ی کار به این صورت است : ابتدا باید تمام اتصالاتی را که میخواهید کنترلهایی را به آنها اضافه کنید، انتخاب کنید (آنها باید با پسوند _jnt ختم شوند).
سپس اسکریپت یک دایره ایجاد می کند، نام اتصالات را کپی می کند اما _jnt را با پسوند _ctrl جایگزین می کند.
همانطور که در آموزش قبلی توضیح داده شد، دایره دو بار برای ایجاد سلسله مراتب کنترل با استفاده از گره های _auto و _offset گروه بندی می شود.
سپس گره _offset تحت اتصال مربوطه (با غیرفعال بودن Maintain Offset) constrain میشود تا آن را در محل صحیح قرار دهد و سپس آن constrain حذف میشود.
در نهایت، مفصل به کنترل constrain می شود. در صورت نیاز اسکریپت را اصلاح کنید.
همچنین می توانید این اسکریپت را در Shelf ذخیره کنید تا سریعتر از آن استفاده کنید.
در صورت نیاز، نیز متون را می توانیم ویرایش کنیم ؛ به عنوان مثال، من ممکن است این خط را بخواهیم ویرایش کنم :
ctrl = cmds.circle( nr=(0, 1, 0), r=1, n=ctrlName)[0]
to
ctrl = cmds.circle( nr=(0, 1, 0), r=10, n=ctrlName)[0]
: This would increase the radius of the control circle from 1 to 10. Or I may edit the final line from
cmds.parentConstraint(ctrl, s, mo=0)
to
cmds.orientConstraint(ctrl, s, mo=0)
cmds.pointConstraint(ctrl, s, mo=0)
این اتصال را به کنترلر با استفاده از constrain های جهت و نقطه بر خلاف یک constrain والد constrain می کند.
اتصالات FK فقط باید به کنترل های مربوطه constrain شوند، بنابراین ما دوباره این اسکریپت را مطابق با نیازهای خود ویرایش می کنیم.
و از قبل آن را روی چند مفصل تست کنید.
ایجاد کنترل های ستون فقرات IK
حال بیایید کنترلرها را در مفاصل کنترل IK خود اعمال کنیم.
ابتدا ویرایشگر اسکریپت را باز کنید (Window > General Editors) و یک تب جدید پایتون را با فشار دادن Ctrl+T یا نگه داشتن دکمه سمت راست ماوس در پنجره ورودی و انتخاب New Tab ایجاد کنید.
هنگامی که پنجره سورس باز می شود، حتما پایتون را انتخاب کنید.
اسکریپت createControls.py را به بخش ورودی ویرایشگر اسکریپت بکشید یا به File > Load Script (Ctrl+O) بروید.
اسکریپت را در پوشه Script در پوشه پروژه 3dt_rigging که با این آموزش ارائه می شود، پیدا خواهید کرد.
حالا hip_IK_jnt، midSpine_IK_jnt، chest_IK_jnt را انتخاب کنید و با رفتن به Command > Execute (Ctrl+E) اسکریپت را اجرا کنید.
همچنین می توانید اسکریپت را با برجسته کردن تمام متن و زدن Enter در Numpad اجرا کنید.
اکنون باید 3 کنترل ایجاد شود و والد مفاصل به آنها constrain شود.
اگر می خواهید شکل کنترل ها یا محل قرارگیری را ویرایش کنید تا به راحتی قابل انتخاب باشند، این کار را در حالت component (F8) انجام دهید.
هر کاری که انجام می دهید، موقعیت، چرخش یا مقیاس را در حالت شیء ویرایش نکنید زیرا این کار شما را از بازگشت به حالت پیش فرض باز می دارد.
اضافه کردن IK twist
در حال حاضر، ما نمیتوانیم ستون فقرات را حرکت دهیم و این موردی است که باید برطرف شود.
برای انجام این کار، spine_IK را انتخاب کنید و ویرایشگر Attribute (Ctrl+A) را باز کنید.
IK Solver Attributes و سپس Advanced Twist Controls را باز کنید.
فعال کردن Twist Controls را روشن کنید.
برای کنترل حرکت و پیچش ستون فقرات از طریق hip_IK_ctrl و chest_IK_ctrl، باید World Up Type را روی Object Rotation Up (Start/End) تنظیم کنیم.
محور بالا را روی منفی Z تنظیم کنید زیرا پشت کاراکتر ما در wold مایا به آن جهت است.
اکنون هر یک از مفاصل spine_IK را انتخاب کنید و متوجه خواهید شد که محور Z رو به جلو است، بنابراین باید بردار بالای اولی و بردار بالای دومی را روی 0، 0، -1 تنظیم کنیم زیرا ستون فقرات ما در جهت مخالف است.
حالا hip_IK_ctrl را در کادر World Up Object و chest_IK_ctrl را در World Up Object 2 تایپ کنید.
آخرین کاری که باید انجام دهیم این است که Twist Value Type را روی Start/End قرار دهیم.
اکنون باید بتوانید hip_IK_ctrl و chest_IK_ctrl را بچرخانید و حرکت خوبی از ستون فقرات بگیرید.
اضافه کردن حالت کشش (stretch)
افزودن مقداری کنترل کشش به انیماتور اجازه میدهد تا در صورت تمایل یا نیاز، ژستهای کارکتر را تغییر دهد.
برای اضافه کردن کشش، طول spine_CRV را تقسیم می کنیم (که مقدار اولیه 1 را به ما می دهد) از طریق یک گره ضربی تقسیم و سپس خروجی آن مقدار را به مقیاس X از مفاصل spine_IK (که همچنین دارای مقدار اولیه 1 می باشد).
بنابراین هر بار که spine_CRV طول خود را تغییر میدهد، طول جدید خود را بر طول قدیمی تقسیم میکند و مقدار افست به ستون فقرات ما وارد میشود که باعث ایجاد حالت کشش میشود.
خوب، پس ابتدا باید طول ستون فقرات_CRV خود را دریابیم.
برای انجام این کار، منحنی را انتخاب کنید و در پنجره Mel، تایپ کنید: arclen –ch 1;
با این کار گره curveInfo1 که Arc Length را در خود جای داده است در دسترس قرار میدهد (این عدد را پایین بیاورید).
برای پیدا کردن آن، ویرایشگر Attribute را باز کنید که آن را در قسمت سمت راست ترین برگه پیدا خواهید کرد.
همچنین می توانید با انتخاب spine_CRV به Hypershade (Window > Rendering Editors) بروید و پس از آن به Graph > Input and Output Connections بروید.
نام گره curveInfo1 را به spineInfo تغییر دهید و سپس در Hypershade، به Create > General Utilities > Multiply Divide بروید.
روی گره Multiply Divide دوبار کلیک کنید تا در ویرایشگر Attribute باز شود و عملیات را روی Divide قرار دهید.
اکنون در پنجره اول Input 2، مقدار Arc Length را که قبلاً یادداشت کردید، وارد کنید.
در Hypershade، دکمه سمت راست ماوس را روی فلش Output در گره spineInfo نگه دارید و arcLength را انتخاب کنید.
شما باید یک بیت رشته ای به اشاره گر متصل کنید.
حال دکمه سمت راست موس را روی فلش ورودی گره Multiply Divide نگه دارید و به input1 > input1X بروید.
حال، هر زمان که منحنی طول خود را تغییر دهد، طول جدید بر طول قدیمی تقسیم می شود.
اکنون باید این را به مقیاس مفاصل خود وارد کنیم.
spineA_IK_jnt را انتخاب کنید و در Hypershade به Graph > Add Selected to Graph بروید.
حالا دکمه سمت راست موس را روی فلش Output گره Multiply Divide نگه دارید و به output > output بروید.
سپس دکمه سمت راست موس را روی فلش ورودی spineA_IK_jnt نگه دارید و به Scale > ScaleX بروید.
باید همین اتصال را با بقیه مفاصل spine_IK (منهای spineEnd_IK_jnt) انجام دهیم.
برای انجام سریع این کار، به Script Editor بروید و خط زیر را از History پیدا و کپی کنید :
connectAttr – force multiplyDivide1.outputX spineA_IK_jnt.scaleX;
یک تب Mel جدید باز کنید و سپس این خط را 5 بار در پنجره ورودی (یک خط برای هر مفصل اضافی) قرار دهید.
سپس به سادگی، نام اتصالات را جایگزین کنید تا با مفاصل باقی مانده مطابقت داشته باشد. بنابراین به این صورت خوانده می شود:
connectAttr – force multiplyDivide1.outputX spineB_IK_jnt.scaleX;
connectAttr – force multiplyDivide1.outputX spineC_IK_jnt.scaleX;
connectAttr – force multiplyDivide1.outputX spineD_IK_jnt.scaleX;
connectAttr – force multiplyDivide1.outputX spineE_IK_jnt.scaleX;
connectAttr – force multiplyDivide1.outputX spineF_IK_jnt.scaleX;
آخرین کاری که باید انجام دهید تغییر نام گره Multiply Divide به spine_md است.
مفاصل FK و کنترلر ها
راهاندازی IK توسط یک زنجیره مشترک FK هدایت میشود، بنابراین بیایید اکنون آن را اضافه کنیم.
Point Snapping را روشن کنید یا کلید V را روی صفحه کلید نگه دارید و در نمای جانبی، از Skeleton > Joint Tool برای ایجاد یک زنجیره 4 مفصلی استفاده کنید.
با کلیک بر مفصل ریشه زنجیره IK شروع کنید (مطمئن شوید که کمی با فاصله از مفصل کلیک کنید تا یک زنجیره جدید ایجاد شود، نه اینکه زنجیره IK را ادامه دهید)، سپس به هر مفصل دیگر و سپس به مفصل انتهایی.
نام مفاصل را از ریشه به بالا تغییر دهید: spineA_FK_jnt، spineB_FK_jnt، spineC_FK_jnt و spineEnd_FK_jnt.
اکنون میخواهیم خمش را با استفاده از ویژگی چرخش مثبت X، به جای چرخش منفی Y که در حال حاضر روی آن تنظیم شده است، ایجاد کنیم.
برای انجام این کار، spineA_FK_jnt را انتخاب کنید و به Skeleton > Orient Joint Tool (Options) بروید.
ما اغلب به اینجا می آییم تا جهت مفاصل خود را تعیین کنیم.
برای ستون فقرات FK، می توانیم به سادگی Orient Joint to World را روشن کرده و Apply را بزنید.
اکنون مفاصل را بچرخانید و چرخش مثبت X باید به شما خمشی بدهد.
حالا بیایید کنترل ها را اضافه کنیم. خط آخر اسکریپت createControls.py را برای خواندن ویرایش کنید:
cmds.orientConstraint(ctrl, s, mo=0)
اکنون تمام اتصالات FK (منهای spineEnd_FK_jnt) را انتخاب کرده و اسکریپت را اجرا کنید.
پس از ایجاد کنترل ها، شکل کنترل ها را در حالت component ویرایش کنید تا به راحتی قابل انتخاب باشند.
به یاد داشته باشید : شکل را در حالت object ویرایش نکنید.
کار بعدی که باید انجام دهیم این است که یک سلسله مراتب FK برای کنترل های خود ایجاد کنیم تا رفتار FK مفاصل را تقلید کند.
ما این کار را از طریق والدین انجام خواهیم داد.
ابتدا spineC_FK_ctrl_offset والد تحت spineB_FK_ctrl و سپس والد spineB_FK_ctrl_offset در spineA_FK_ctrl
در نهایت، ما می توانیم تنظیمات IK را به تنظیمات FK متصل کنیم.
برای انجام این کار، ابتدا chest_IK_ctrl_offset والد تحت spineC_FK_ctrl و سپس والدین midSpine_IK_ctrl_offset در spineB_FK_ctrl قرار می گیرد.
ایجاد کنترل COG
آخرین کنترلی که باید اضافه کنیم، کنترل COG (مرکز ثقل) است.
کنترلی که کل نیم تنه را حمل می کند.
در نمای بالا، به Create > CV Curve Tool (Options) بروید و درجه منحنی را روی 1 Linear قرار دهید.
حالا یک شکل منحصر به فرد انتخابی خود را در سراسر wold بکشید و مطمئن شوید که شکل بسته است و پس از اتمام با زدن Enter روی صفحه کلید از ابزار خارج شوید.
برای آسانتر و دقیقتر کردن آن، میتوانید از grid snapping (نگه داشتن X) یا point snapping (نگه داشتن V) استفاده کنید.
نام منحنی را به COG_ctrl تغییر دهید و سپس دو بار کلیدهای Ctrl+G را بزنید تا دوبار آن را به خود گروه بندی کنید.
نام بالاترین گروه را COG_ctrl_offset و گروه بعدی را به نام COG_ctrl_auto تغییر دهید.
اکنون باید کنترل را در جای خود قرار دهیم. برای انجام این کار، والد COG_ctrl_offset را زیر مجموعه ی hip_IK_ctrl قرار دهید و سپس مقادیر ترنسلیت و چرخش را در کادر Channel صفر کنید.
این باید COG_ctrl_offset را در جای خود ببندد.
اکنون با زدن Shift+P، COG_ctrl_offset را حذف کنید.
COG_ctrl را تغییر شکل دهید تا در صورت نیاز به راحتی در حالت component انتخاب شود.
حالا بیایید این را به طور کامل جمع کنیم.
ابتدا spineA_FK_ctrl و سپس Shift-select spineA_FK_jnt را انتخاب کنید و Constrain > Point را انتخاب کنید.
سپس والد hip_IK_ctrl_offset و spineA_FK_CTRL_offset تحت COG_ctrl. spineA_IK_jnt، hip_IK_jnt، midSpine_IK_jnt، chest_IK_jnt و spineA_FK_jnt را انتخاب کنید و Ctrl+G را بزنید.
نام این گروه جدید را به spine_jnt_grp تغییر دهید.
spine_IK و spine_CRV را انتخاب کنید و Ctrl+G را بزنید.
نام این گروه را به spine_doNotTouch_grp تغییر دهید.
حالا spine_jnt_grp و spine_doNotTouch_grp را انتخاب کنید و Ctrl+G را بزنید.
نام این گروه را به spine_rig_grp تغییر دهید.
آخرین کاری که باید انجام دهید این است که spine_CRV را انتخاب کنید، Attribute Editor را باز کنید و Inherits Transform را غیرفعال کنید.
بعداً وقتی کنترل globalSRT را اضافه می کنیم این امر منطقی خواهد بود.
کنترل اصلی مورد استفاده برای مقیاس، چرخش و ترنسلیت شخصیت به موقعیت شروع بازگشت.
فعلاً ریگ را در این قسمت قرار می دهیم.
در بخش های بعدی، ریگ را برای گردن و سر ایجاد می کنیم و همچنین کنترل globalSRT را اضافه خواهیم کرد.
مهرسا امینی
برنامه نویس ، انیماتور ، سئوکار
در زندگی رویاهات را دنبال کن