میلاد زندی
میلاد زندی
خواندن ۳ دقیقه·۶ سال پیش

اجرای موازی چند انیمیشن و لایه‎‎‌بندی انیمیشن‎‌ها در یونیتی

وزن ها

هر لایه انیمیشن در یونیتی میتواند وزن متفاوتی داشته باشد. این وزن که از عدد 0 تا 1 قابل مقدار دهی است؛ میزان تاثیر یک لایه بر لایه‎‌های موازی در حال اجرا با آن را مشخص میکند. وزن‎‌ها به راحتی در داخل کد ها قابل تعریف و تغییر هستند و مبنای آن‎‌ها مدیریت اجرای موازی انیمیشن‎‌ها و اثر آنها بر یکدیگر میباشد.

برای مثال وقتی شما به یک لایه از انیمیشن‌‎های یک متن رنگ قرمز و به لایه‌‎ی دیگر رنگ آبی را نسبت میدهید، نسبت وزن 1 به 0.5 در لایه‎‌ها، باعث ایجاد متنی با رنگ بنفش مایل به سرخ میشود. این یعنی آنها به صورت موازی باهم اجرا شده و اثر متناسب با وزن خود را بر روی المان انتخابی گذاشته اند. حال هرچه وزن لایه‎‌ی دارای رنگ آبی بیشتر شود، رنگ ما به بنفش نزدیک تر میشود.

همچنین با فرض اینکه این انیمیشن‎‌ها دارای زمان بندی متفاوتی باشند، مبنای زمانبندی آنها، زمان اجرایی انیمیشن لایه‎‌ی مادر (لایه‎‌ی اصلی) میباشد که در راس سایر لایه‎‌های یک المان قرار گرفته است.

با این تفاسیر در اجرای انیمیشن ها، به ترتیب پارامتر های وزن و ترتیب چینش اولویت و اثرگذاری خود را بر المان‎‌های مشمول آنها خواهند گذاشت.

در این نما، لایه‎‌ی
در این نما، لایه‎‌ی

همگام سازی لایه ها

در بعضی مواقع استفاده از وضعیت مشابه ماشین در لایه‌‎های مختلف بسیار مفید است. برای مثال وقتی شما میخواهید حالت " صدمه دیدن" و انیمیشن های مرتبط با آن (راه رفتن/دویدن/پریدن) را به جای نوع سالم این انیمیشن ها، شبیه سازی کنید؛ شما میتوانید چک باکس یکی از لایه‎‌های خود را زده و آن را با لایه‎‌ی ثانویه‌‎ای که از Source Layer قابل انتخاب است، شبیه‎‌سازی کنید. ساختار ماشین مشابه خواهد بود اما ماهیت animation clip های استفاده شده توسط وضعیت‎‌ها متفاوت خواهد بود.

Timing در لایه‎‌ها

این چک باکس به انیماتور اجازه میدهد تا زمان هر انیمیشن در لایه‎‌ی sync شده را بر مبنای وزن آن، تنظیم کند. اگر این چک باکس انتخاب نشده باشد، انیمیشن‌ها تنظیم خواهند شد و این تنظیم بر مبنای طول آن در لایه‌‎ی اصلی میباشد. اما اگر انتخاب شده باشد، طول هردو انیمیشن بر مبنای وزن آنها تعدیل خواهد گردید. در هر دو حالت (انتخاب شده و نشده) انیماتور طول انیمیشن‌‎ها را تنظیم میکند. اگر انتخاب نشده باشد، لایه‎‌ی اصلی محوریت عملکرد و اگر انتخاب شده باشد، سازش بیان شده اتفاق خواهد افتاد.

Blending در لایه‎‌ها

در این بخش Override به معنی این است که اطلاعات دریافت شده از سایر لایه‎‌ها در نظر گرفته نشود؛ این در حالی است که Additive به این معناست که این انیمیشن در لایه‎‌ای بالاتر از لایه‎‌‌‎ی قبلی خود قرار بگیرد.

Mask در لایه‎‌ها

میتوانید به هر لایه برای اجرا، یک Mask اختصاص داده تا بر روی هر لایه به طور مجزا اعمال شود.

IK Pass در لایه‎‌ها

چنانچه چک باکس Inverse Kinematics (IK Pass) فعال شود، فعالیت این سرویس با هدف callback متد OnAnimatorIK() فعال خواهد گشت. این ابزار به کارکتر‎‌‎های سه بعدی کمک میکند تا بتوانند در لحظه‎‌ای مقرر، بر اساس سیستم استخوان‌‎بندی بدنی انسان‌‎نمایی، مفاصل را در راستای در بر گرفتن - برای مثال در دست گرفتن – چیزی مدیریت کند.

یونیتیآموزش یونیتی
بنیان گذار شرکت راهکارهای هوشمند روتیک - فعال در حوزه‌ی هوش مصنوعی و علوم داده
شاید از این پست‌ها خوشتان بیاید