Axis Order:: نکته مهم برای انیمیت و Rig

bubo3d

کاربر متخصص انیمیشن
سلام
این چیزی که من میخوام بگم مشکلی ـه که خیلی وقته اعصابم رو خورد کرده و ازش سر در نمی اوردم و فکر میکردم مشکل و باگ مکس هست تا این که تو مایا هم دیدمش، پیش خودم گفتم: پَـــهَ ، مایا هم باگ دار شد.

یکی هم این به صورت غیر مستقیم این سوال رو توی بخش مایا پرسید ولی کسی نبود که به صورت قانونی جوابش رو بده.
شاید خیلی و خیلی از دوستان جواب و این نکته رو بدونن ولی چون خودم بعد جستوجو های متعدد تو فروم های خارجی هم چیزی گیرم نیومد و بعد با سر کله زدن پیداش کردم میخوام اینجا هم بگم تا اگه کسی هست و به این مشکل خورده و نتونسته حلش کنه به صورت قانونی بودن مشکل چیه و راه حل چیه.

خوب مشکل: نمیدونم تا حالا شده که برای انیمیت جسم یا عضوی از بدن رو توی یه محور بچرخونید و توی فریم بعد بخواین تو محور دیگه به صورت local بچرخونیدش و بعد از اتمام کار ببینید که چرخش دوم جسم به صورت عجیب و غریبی مشکل دار بشه و جسم برای رسیدن به اون چرخش و زاویه ی پایانی به دور خودش پیچ بخوره و در آخر تو زاویه پایانی به ایسته.

این مشکل من رو دیوانه کرده بود و هیییــــــــچ نمیفهمیدم مشکل چیه.

حالا من یه Video با سرعت بالا گذاشتم از مشکل و راه حل و توضیحاتی هم همینجا مینویسم.
نمیدونم تا حالا تو تب Motion دیدین که هر جسمی برای rotate تو بخش Euler یه سری پارامتر داره؟ یه پنجره ی کرکره ای هست به نام Axis order که گزینه هایی مثل: ، XYZ ــ XZY ــ YXZ ــ YZX و... هست.
یکی از دوستان تو بخش مایا پرسیده بود این چیه و کسی جوابی بهش نداد چه برسه یه جواب الکی.

من بعد بر خورد به این مشکل حس کردم که برای حل مشکلم باید به این سر بزنم، حالا مشکل از کجاست، این کار رو تو video انجام دادم ولی توضیح هم میدم: شما یه sphere ایجاد کنید، به فریم 10 برید با Auto Key روشن Sphere رو تو محور Y ـ 45 درجه بچرخونیدش و بعد از فریم 10 تا 20 حدود 180 درجه تو محور Z بچرخونیدش (( نکته: همه این rotate ـها رو با حالات Local انجام بدین )). حالا انیمیت sphere رو ببینید، حرکت تو بخش دوم بهم ریخته شده.

دلیل نوع انتخاب Axis Order تو بخش Motion tab> Rotation> Euler Parameters هست. اینم بگم انتخاب درست این گزینه مشکل رو به طور کلی حل نمیکنه و برای من عجیبه چرا این مشکل حل نشده، اگه شده من نمیدونم و اگه کسی خبر داره همینجا مطرحش کنه ممنون میشم.
خوب نوع انتخاب ما باید چجوری باشه؟! اولین و مهمترین گزینه محور عمود جسممون هست، مثلا الان تو همین Sphere ایجاد شده محور عمود Z هست ولی توی Bone ـها همیشه محور عمود X هست.
شما باید اولویت رو بر اساس محور عمود جسم قرار بدین و محور بعدی محور ارجع تر نصبت به محور سوم.

البت همه این ها باز بستگی به خواسته شما در مورد چرخش جسم هم داره که باید ببینید کدوم بهتره.

مثلا اگه شما مود rotate ـتون رو تو بخش assign Controller بذارید روی Linear Rotation چنین مشکلی پیش نمیاد ولی برای اصلاح هیچ Curve ـی هم توی Graph Editor ندارین.
نیدونم چرا تو دو محور اصلی و اولی درسته ولی وقتی بعد چرخش های متعدد میخوای محور سوم رو بچرخونی همه محور ها با هم کلید میخورن.

حالا باز همینجا درخواست میکنم اگه کسی اطلاعات بهتر و دقیق تری داره اینجا بیان کنه تا هم من هم دوستانی که این مشکل براشون اساسیه بتونن مشکلشون رو حل کنند.

حق یارتون


>>>>>>> ویرایش
اشتباها محور عمود sphere رو بجای Z ــ Y معرفی کردم که اصلاح شده
 

پیوست ها

  • Axes.rar
    1.4 مگایابت · بازدیدها: 83
آخرین ویرایش:

Saeed2vfx

Member
ایول! من توی مایا زیاد به این مشکل برخوردم. اونجا چطور میشه حلش کرد؟
 

bubo3d

کاربر متخصص انیمیشن
ایول! من توی مایا زیاد به این مشکل برخوردم. اونجا چطور میشه حلش کرد؟
سلام
اونجا هم دقیقا همین تنظیمات رو داره، توی Att editor> Transform Attributes با این تفاوت که اونجا اسمش Rotate Order هست نه Axis Order
قوانین هم همون قوانینه ریفیق

حق یارت
 

nc_hamid

Member
سلام bubo جان
من به این سوال تو همین فروم پاسخ دادم .( فکر می کنم در مورد حرکت فرمون ماشین بود که درست در نمی آمد)
یه توضیح اولیه می دم بعد می رم سراغ همین مشکل
Gimbal چیه و Gimbal Lock چیه
یه سر به سایت Wikipedia بزنین خوب توضیح داده http://en.wikipedia.org/wiki/Gimbal
ما برای اینکه بتونیم موقعیت یک جسم رو توی فضای سه بعدی نمایش بدیم نیازمند یه متد خاص هستیم . راحترین متد برای نمایش استفاده از سه مختصات چرخشی X-Y-Z ه که بر اساس در جه می چرخند .
اما یه مشکل بزرگ وجودداره این نوع چرخیدن Local ه و نمی تونین چرخش رو از موقعیت اولیه ( منظور از موقعیت اولیه چرخش بر اساس مختصات مرجعه که توی نرم افزار 3ds max بر اساس Parent ه جسمه) محاسبه کنیم .
حال چه کنیم ؟ اینجاست که دستگاه Gimbal اختراع شد ...
این دستگاه که بعدا تبدیل به ژیروسکوپ شد برای دریانوردایی بود که می خواستن موقعیت خودشون رو بر اساس یه جای مرجع بدست بیارن .
Gimbal در واقع سه تا حلقه هست که به شکلی به هم متصلند . حلقه ی اول به دومی و دومی به سومی . اینجوریه که با چرخش حلقه ی اول دو حلقه دیگه ثابته ، چرخش حلقه دوم حلقه اول رو می چرخونه و حلقه سوم ثابته و چرخش حلقه سوم هم هر دو حلقه رو حرکت می ده ...
خوب اینجوری می شه تشخیص داد که از اول ما چه مقدار چرخش داشتیم .
اما این وسط یه مشکل وجود داره...
جایی که تمام حلقه ها روی هم می افتن یه درجه آزادی کم می شه و چرخش محدود می شه ....
برای این کار الان تو علوم فضایی از چند Gibmal استفاده می کنن .. این جوری که وقتی به Gimbal Lock بر می خوریم یه Gibmal دیگه می یاد از صفر کار خودش رو شروع می کنه ...
خوب حالا این همه گفتم که چی؟؟؟!!!
توی نرم افزار های 3d هم این مشکل هست یعنی یه جاهایی محور ها روی هم می افته ( برای درک بهتر این موضوع برین تو مد Gibmal و چرخش رو انجام بدین می بینین که Curve Editor حالا باهاتون راه می یاد!!!)
توی 3d max به صورت پیش فرض Gibmal این جوریه X-->Y--->Z یعنی چرخش محور Z باعث چرخش محور های X و Y می شه چرخش Y هم محور X رو می چرخونه ...
با Axis Order شما این ترتیب رو عوض می کنین و به ظاهر مشکل Gimbal Lock حل می شه اما در واقع Gibmal Lock رفته به محور دیگه .
حالا راه حل چیه ؟
همون راه حلی که بقیه استفاده می کنن..
باید یا یه Rotation دیگه به Rotation List اضافه کنین و یا راه راحت تر اینه که از قبل یه Parent برای جسمتون بسازین و یه چرخش رو با Parent انجام بدین ...
من خیلی تو این مساله تحقیق کردم اگه سوال بود بگین انشاء الله جواب می دم ..
 

bubo3d

کاربر متخصص انیمیشن
سلام و ممنون حمید جان
دقیقا اینایی که گقتی رو رفتم و دیدم و تست هم کردم، Gimbal یه جوراییی مشکل داره چون کلا حالات محورها رو بهم می ریزه. اگه تو Video ـی که پیوست کردم دقت کنی من بعد چرخش نیاز دارم که حالت محورهای rotate ام همراه با چرخش تغییر کنن ولی تو این مود نمیشه. این Gimbal بعد چند چرخش کل محور ها رو میریزه به هم.
مشکل من فقط نوع کلید خوردن و چرخش اضافی نیست، هم اینه هم قرار گرفتن درست محورهای rotate.
باز در مورد چرخوندن محور سوم توسط جسم دیگه هم فکر کردم و تست ولی راه خوبی نیست، تصورش رو بکن یه کاراکتر با اون همه کنترلر واسه چرخش محور های هم جداگونه کنترلر داشته باشه، چه واویلایی میشه.

میخواستم اینایی که گفتی رو بنویسم ولی یادم رفت.
ولی باز خیلی خیلی خیلی ممنون حمید جان

حق یارت
 

nc_hamid

Member
bubo جان
چه بخوای چه نخوای طبیعت بر اساس Gimbal ه این مشکل مال ما نیست بلکه برای فضا نوردام هست !!! ( یعنی در جه به ذاته این مشکل تو خودش هست)
عدد هایی که توی 3ds max ذخیره می شن براساس Gimbal ه این فرقی نمی کنه که تو چه مدی باشی
عوض کردن Axis Order هم به گفته Paul Neale توی آموزش Rig فقط نوع حرکت محور ها رو ی هم عوض می کنه
یه Rigger حرفه ای باید نوع حرکت رو درک کنه و بدونه محدودیتهای حرکتی چیه اونوقت با عوض کردن Axis Order یا اضافه کردن یه Parent اضافه مشکل رو حل کنه
اتفاقا یکی از نقاط قوت استفاده از Parent همین درست شدن جهت چرخشه. چون صفر Gimbal بر اساس Local جسم Parent ه هر جهت که Parent رو تنظیم کنی صفر Gimbal همون می شه . فقط باید Freeze Rotation کنی (یه Controller صفر به جسم اضافه کنی)
 

bubo3d

کاربر متخصص انیمیشن
حالا یه نکته بگم حمید جان شاید برات جالب باشه.
توی CAT این مشکل پیر ما رو در اورد، تا این که یه راه حل براش پیدا کردیم.
نمیدونم با CAT کار کردی یا نه. تو Layer CAT ، برای شروع انیمیت باید یه لایه ی ABS بسازی و بعد شروع به انیمیت کنی، دو تا لایه دیگه برای اصلاح کار هستن به نام های L+ و W+ که معنی local و world رو میده.
ما برای این که این چرخش های اضافی و مشکل دار ایجاد نشه با ایجاد یه لایه L+ رو ABS و انیمیت رو این لایه اصلاح کننده مشکل رو تا مقدار خیلی زیادی حل کردیم.
من هم دنبال چنین چیزی بود که Curve editor یا Graph Editor چرخش ها رو بر اساس Local ایجاد کنه نه World.
حالا باز اگه چنین چیزی هست ممنون میشم بگی.
 

nc_hamid

Member
سلام
من با CAT دو سال پیش کار کردم تو مکس 2010 اون موقع خیلی اشکال داشت دیگه نرفتم سراغش تا اینکه چند وقت پیش از خودت شنیدم که خیلی به درد خور شده یکم باهاش کار کردم .
الان چیزی رو که گفتی تست کردم . خیلی برام جالب بود . وقتی لایه ABS داری اگه تو مد Gimbal باشی curve Editor درسته اما چرخش دست اشتباهه اگه تو مد local باشی چرخش درسته اما با curve editor مشکل داری (که البته مشخصه چون همون طور که گفتم تنها در صورتی مد Local بهت درست نشوم می ده Gimbal و Local بر هم منطبق باشند تازه اینم فقط تو چرخش های اول و دوم صادقه)
اما وقتی که لایه L+ اضافه می کنی درست می شه.
در واقع اضافه کردن یه لایه Local همون اضافه شدن یه Controller جدید به Rotation Control ــه
چیزی که برام خیلی جالبه اینه که چه جوری تو CAT امدن Wire ها رو انجام دادن که اینجوری شده ؟!!!!
چیزی که منو از CAT دور می کنه همینه که اصول سلسله مراتبیش یه جورایی با خود مکس فرق می کنه مثل Bip...
 

جدیدترین ارسال ها

بالا