سلام
کاری که شما میخواید انجام بدید اگر حرکتتون متوش منحنی داشته باشه کمی پیچیده.ست! مخصوصا اگر تو حرکتتون منحنی داشته باشین. من براتون پروسه رو خورد میکنم و راه حل رو میذارم؛ اما تبدیل به کد MEL کردنش با خودتون (ببخشید واقعا از حوصله.م خارج بود) یکی دو مرحله رو از script editor کدهاشو نگاه کنین، باقیش دستتون میاد (فقط حتما echo all commands روشن باشه)
ببنید میزان چرخش شما میشه مسافت طی شده تقسیم بر محیط دایره، پس اول باید سراغ بدست آوردن مسافت طی شده بریم.
A: مسافت طی شده (جای سختش!
):
1. انیمیشن رو bake کنید ( edit => keys => bake simulation ). ببینید ما تک تک کلید فریم ها کار داریم. (چون میخوایم میزان جابجایی چرخ رو با بالاترین دقت ممکن بدست بیاریم)
از اینجا به بعد تا جایی که عرض خواهم کرد رو تو یک حلقه for با شرایط زمانی قرار بدین
2. بعد از نرم افزار بخواین locator $i رو بسازه و اون رو زیر چرختون point constraint کنه و بعد خود constraint رو پاک کنه.
3. محل locator رو تو یک متغیر vector ذخیره کنین
4. از نرم افزار بخواین به فریم بعدی بره و مرحله 2 و 3 دوباره اجرا بشه؛
با این تفاوت که محل locator $i+1 او یک متغیر vector جدید ذخیره میشه
5. یه متغیر float درست کنین و اندازه فاصله دو تا locator رو توش بذارین
6. یه متغیر float دیگه درست کنین و مقدار متغیر مرحله 5 رو دائما بهش اضافه کنین
انتهای حلقه for
7. از float آخری پرینت بگیرین. این شد مسافت طی شده شما!
(تا اینجا کلا MEL بود دوستان، باید تو script editor مینوشتین. از اینجا به بعد میریم تو expression editor)
B: محاسبه میزان چرخش چرخ:
1. حالا برای چرخش به جلو این کد رو تو expression editor برای جهت دلخواهتون که به جلوست بنویسین:
[LTR]$rotation = (مسافت طی شده) / 4 x 3.1415 x شعاع چرخ[/LTR]
انگلیسی هم مینویسم چون فکر میکنم فارسی و انگلیسی همراه هم بدخوانی میشه
[LTR]$rotation = $totalWay / 4 x 3.1415 x wheels radius[/LTR]
2. مقدار رو ار رادیان تبدیل به درجه کنین و داخل جهتی که میخواین چرخش رو به جلو باشه بذارین.
فقط بیزحمت اگه جاییش اشکال داشت حتما بهم بگین تا بیشتر روش فکر کنم.