UnityChan(Channel)
آموزش و بررسی سیستم (کامپوننت ها) های ساخت انواع محدودیت برای ریگ و ابجکت در یونیتی 6
بررسی انواع constraints (محدودیت ها) در یونیتی 6
منظور از محدودیت ها چیست و چه کاربردی دارد ؟ همان طور که میدانید که ابجکتی که شما چه در یونیتی چه در آنریل چه در بلندر چه در مایا چه در 3dmax و......... که نرم افزار هایی که میشناسید حرکت یا property (خواص) آن ها محدودیت ندارن و به اصطلاح آزاد هست هر کجا دوست داشتید میتوانید جابه جا کنید بزرگ و کوچک کنید در هر درجه خواستید چرخش بدید و....
ولی اگر ابجکت ما حرکتش آزاد باشد نمی توانیم بصورت راحت انیمیشن بسازیم و به اگر بتوانیم قطعا سخت و طاقت فرسا خواهد بود خوب ما چه کار انجام میدهیم میایم این محدودیت ها چه برای ریگ جه برای ابجکت میزاریم مثلا محدودیتی که میدونم همه باهاش آشنا هستن IK هست که قبلا هم توضیح دادم کاربردش چی هست
این محدودیت هایی که الان مشاهده میکنید بدون نصب پکیج در قسمت components های یونیتی موجود هست ولی در مقایسه با بلندر محدودیت های بسیار کمی وجود دارد
منظور از محدودیت ها چیست و چه کاربردی دارد ؟ همان طور که میدانید که ابجکتی که شما چه در یونیتی چه در آنریل چه در بلندر چه در مایا چه در 3dmax و......... که نرم افزار هایی که میشناسید حرکت یا property (خواص) آن ها محدودیت ندارن و به اصطلاح آزاد هست هر کجا دوست داشتید میتوانید جابه جا کنید بزرگ و کوچک کنید در هر درجه خواستید چرخش بدید و....
ولی اگر ابجکت ما حرکتش آزاد باشد نمی توانیم بصورت راحت انیمیشن بسازیم و به اگر بتوانیم قطعا سخت و طاقت فرسا خواهد بود خوب ما چه کار انجام میدهیم میایم این محدودیت ها چه برای ریگ جه برای ابجکت میزاریم مثلا محدودیتی که میدونم همه باهاش آشنا هستن IK هست که قبلا هم توضیح دادم کاربردش چی هست
این محدودیت هایی که الان مشاهده میکنید بدون نصب پکیج در قسمت components های یونیتی موجود هست ولی در مقایسه با بلندر محدودیت های بسیار کمی وجود دارد
بررسی محدودیت LookAt در یونیتی 6
دوستان یک سوالی که به ذهنشون میرسه اسنکه چطوری میتوانم کاری کنم که یک ابجکت به ابجکت دیگر نگاه کنه و روش قفل کنه همانند lock track در بلندر ؟
همان طور که میدانید در C# میتوانید با LookAt از مجموعه Transfrom این کار را انجام بدید :
دوستان یک سوالی که به ذهنشون میرسه اسنکه چطوری میتوانم کاری کنم که یک ابجکت به ابجکت دیگر نگاه کنه و روش قفل کنه همانند lock track در بلندر ؟
همان طور که میدانید در C# میتوانید با LookAt از مجموعه Transfrom این کار را انجام بدید :
using UnityEngine;
public class ExampleClass : MonoBehaviour
{
public Transform target;
void Update()
{
transform.LookAt(target);
transform.LookAt(target, Vector3.left);
}
}
👍1
UnityChan(Channel)
بررسی محدودیت LookAt در یونیتی 6 دوستان یک سوالی که به ذهنشون میرسه اسنکه چطوری میتوانم کاری کنم که یک ابجکت به ابجکت دیگر نگاه کنه و روش قفل کنه همانند lock track در بلندر ؟ همان طور که میدانید در C# میتوانید با LookAt از مجموعه Transfrom این کار را انجام…
این کد C# بسیار ساده هست و نیاز نیست روش مانور بدیم همان طور مشاهده میکنید یک ابجکت بهش میدید که خواص یا به انگلیسی (Properties) از نوع Transfrom که یک نوع کامپوننت هست که برای از سه قسمت جابه جایی - چرخش - اندازه مقایس تشکیل شده را میگیره و بعد با استفاده از lookat و تایین هدف (target) و در نهایت تایین بردار که از چه جهتی باید ابجکت را ردیابی کند مثلا vector3.left کد شما تکمیل میشود ولی ما کاری به کد نویسی نداریم میخواهیم این کار را بدون کد نویسی و همانند بلندر انجام بدهیم
👍1
Look At Constraint
A Look At Constraint یک GameObject را میچرخاند تا با GameObjectهای منبع آن روبرو شود. شما معمولاً محدودیت نگاه به دوربین را برای دنبال کردن یک یا چند GameObject اعمال می کنید. علاوه بر این، اگر یک دوربین هدف را وارد کنید، یونیتی یک دوربین با محدودیت Look At با استفاده از شی هدف به عنوان منبع ایجاد می کند.
Look At یک نسخه ساده شده از محدودیت هدف است. در حالی که محدودیت هدف به شما امکان می دهد انتخاب کنید کدام محور از GameObject محدود کننده پیروی کند، محدودیت Look At همیشه از محور z پیروی می کند.
شما می توانید جهت رو به بالا را برای محدودیت Look At با تنظیم آن بر روی محور y GameObject دیگری مشخص کنید، یا می توانید یک رول را مشخص کنید که چرخشی حول محور z (محور هدف گیری شما) است.
A Look At Constraint یک GameObject را میچرخاند تا با GameObjectهای منبع آن روبرو شود. شما معمولاً محدودیت نگاه به دوربین را برای دنبال کردن یک یا چند GameObject اعمال می کنید. علاوه بر این، اگر یک دوربین هدف را وارد کنید، یونیتی یک دوربین با محدودیت Look At با استفاده از شی هدف به عنوان منبع ایجاد می کند.
Look At یک نسخه ساده شده از محدودیت هدف است. در حالی که محدودیت هدف به شما امکان می دهد انتخاب کنید کدام محور از GameObject محدود کننده پیروی کند، محدودیت Look At همیشه از محور z پیروی می کند.
شما می توانید جهت رو به بالا را برای محدودیت Look At با تنظیم آن بر روی محور y GameObject دیگری مشخص کنید، یا می توانید یک رول را مشخص کنید که چرخشی حول محور z (محور هدف گیری شما) است.
UnityChan(Channel)
Look At Constraint A Look At Constraint یک GameObject را میچرخاند تا با GameObjectهای منبع آن روبرو شود. شما معمولاً محدودیت نگاه به دوربین را برای دنبال کردن یک یا چند GameObject اعمال می کنید. علاوه بر این، اگر یک دوربین هدف را وارد کنید، یونیتی یک دوربین…
توضیح خواص :
Is Active : برای ارزیابی محدودیت این گزینه را فعال کنید. برای اعمال محدودیت، ویژگی Lock را فعال کنید.
Weight : قدرت محدودیت را تنظیم کنید. مقادیر معتبر از 0 (محدودیت تاثیری ندارد) تا 1 است (این GameObject با همان سرعتی که GameObjects منبع آن حرکت می کند) می چرخد.
Use Up Object : این گزینه را فعال کنید تا این GameObject's up vector را روی محور y از World Up Object تنظیم کنید. اگر این گزینه را غیرفعال کنید، بردار up روی مقدار Roll تنظیم می شود. بردار بالا یک GameObject مشخص می کند که کدام جهت بالا است.
Roll : زاویه چرخش را بر حسب درجه در امتداد محور z تنظیم کنید تا برای بردار بالا این GameObject (جهت رو به بالا) استفاده کنید.
فقط زمانی در دسترس است که Use Up Object فعال باشد.
Is Active : برای ارزیابی محدودیت این گزینه را فعال کنید. برای اعمال محدودیت، ویژگی Lock را فعال کنید.
Weight : قدرت محدودیت را تنظیم کنید. مقادیر معتبر از 0 (محدودیت تاثیری ندارد) تا 1 است (این GameObject با همان سرعتی که GameObjects منبع آن حرکت می کند) می چرخد.
Use Up Object : این گزینه را فعال کنید تا این GameObject's up vector را روی محور y از World Up Object تنظیم کنید. اگر این گزینه را غیرفعال کنید، بردار up روی مقدار Roll تنظیم می شود. بردار بالا یک GameObject مشخص می کند که کدام جهت بالا است.
Roll : زاویه چرخش را بر حسب درجه در امتداد محور z تنظیم کنید تا برای بردار بالا این GameObject (جهت رو به بالا) استفاده کنید.
فقط زمانی در دسترس است که Use Up Object فعال باشد.
UnityChan(Channel)
توضیح خواص : Is Active : برای ارزیابی محدودیت این گزینه را فعال کنید. برای اعمال محدودیت، ویژگی Lock را فعال کنید. Weight : قدرت محدودیت را تنظیم کنید. مقادیر معتبر از 0 (محدودیت تاثیری ندارد) تا 1 است (این GameObject با همان سرعتی که GameObjects منبع آن…
Lock : این گزینه را فعال کنید تا به Constraint اجازه دهید GameObject را بچرخاند (Constraint را اعمال کنید). اگر این گزینه را غیرفعال کنید، میتوانید ویژگیهای چرخش GameObject، Rotation At Rest و Rotation Offset را تغییر دهید. وقتی از تغییرات خود راضی بودید، Lock را علامت بزنید تا به Constraint اجازه دهید این GameObject را کنترل کند.
این ویژگی در حالت پخش تاثیری ندارد.
Rotation At Rest :هنگام استراحت در X، Y و Z، جهت GameObject محدود شده را تنظیم کنید. یک GameObject زمانی در حال استراحت است که مجموع وزنها، از جمله وزنهای فردی همه منابع، به 0 برسد.
منظور از حالت استراحت این هست که همه ای مقادیر روی 0 باشند که به اصطلاح rest گفته میشود
Rotation Offset : یک افست از جهت محدود (چرخش محاسبه شده توسط محدودیت) در X، Y و Z تنظیم کنید.
برای تغییر این ویژگی، Lock را غیرفعال کنید.
Sources : لیست GameObject هایی که این GameObject را محدود می کنند. Unity GameObject های منبع را به ترتیبی که در این لیست ظاهر می شوند ارزیابی می کند.
ترتیب بر نحوه چرخش این محدودیت GameObject محدود شده تأثیر می گذارد، زیرا چرخش ها انباشته می شوند. برای به دست آوردن نتیجه دلخواه، موارد را در این لیست بکشید و رها کنید. سفارشات مختلف منجر به نتایج متفاوت می شود.
هر ورودی در لیست حاوی یک مرجع به GameObject و وزن آن (یعنی تأثیر در محدودیت) است. یونیتی میانگین GameObjects منبع را در این لیست محاسبه می کند و می توانید با تغییر وزن برای هر منبع، تأثیر را تنظیم کنید. به عنوان مثال، اگر دو منبع (یک مکعب و یک کره) دارید و می خواهید دوربین را بیشتر روی کره متمرکز کنید، می توانید وزن کره را روی 1 (حداکثر) و وزن مکعب را 0.5 تنظیم کنید.
این ویژگی در حالت پخش تاثیری ندارد.
Rotation At Rest :هنگام استراحت در X، Y و Z، جهت GameObject محدود شده را تنظیم کنید. یک GameObject زمانی در حال استراحت است که مجموع وزنها، از جمله وزنهای فردی همه منابع، به 0 برسد.
منظور از حالت استراحت این هست که همه ای مقادیر روی 0 باشند که به اصطلاح rest گفته میشود
Rotation Offset : یک افست از جهت محدود (چرخش محاسبه شده توسط محدودیت) در X، Y و Z تنظیم کنید.
برای تغییر این ویژگی، Lock را غیرفعال کنید.
Sources : لیست GameObject هایی که این GameObject را محدود می کنند. Unity GameObject های منبع را به ترتیبی که در این لیست ظاهر می شوند ارزیابی می کند.
ترتیب بر نحوه چرخش این محدودیت GameObject محدود شده تأثیر می گذارد، زیرا چرخش ها انباشته می شوند. برای به دست آوردن نتیجه دلخواه، موارد را در این لیست بکشید و رها کنید. سفارشات مختلف منجر به نتایج متفاوت می شود.
هر ورودی در لیست حاوی یک مرجع به GameObject و وزن آن (یعنی تأثیر در محدودیت) است. یونیتی میانگین GameObjects منبع را در این لیست محاسبه می کند و می توانید با تغییر وزن برای هر منبع، تأثیر را تنظیم کنید. به عنوان مثال، اگر دو منبع (یک مکعب و یک کره) دارید و می خواهید دوربین را بیشتر روی کره متمرکز کنید، می توانید وزن کره را روی 1 (حداکثر) و وزن مکعب را 0.5 تنظیم کنید.
⚜️ یک ایده جالب و بررسی کاربرد lookat در آن
در بلندر اگر بخواهیم یک ابجکت به ابجکت دیگری نگاه کند از damped track استفاده میکنیم و همان طور که در تصویر مشاهده میکنید چشمان کاراکتر انیمه به ابجکت تو خالی که به عنوان شکل کنترل کننده چشم ها در نظر گرفتم را عمل میکنه در یونیتی هم میتوانید همین کار با این lookat پیاده سازی کنید ❗️❗️
در بلندر اگر بخواهیم یک ابجکت به ابجکت دیگری نگاه کند از damped track استفاده میکنیم و همان طور که در تصویر مشاهده میکنید چشمان کاراکتر انیمه به ابجکت تو خالی که به عنوان شکل کنترل کننده چشم ها در نظر گرفتم را عمل میکنه در یونیتی هم میتوانید همین کار با این lookat پیاده سازی کنید ❗️❗️
This media is not supported in your browser
VIEW IN TELEGRAM
دقیقا بخواهیم با gif توضیح بدهیم همیچن چیزی میتوانید در یوینتی بسازید
UnityChan(Channel)
Rotation Constraints یک جزء Rotation Constraint یک GameObject را می چرخاند برای مطابقت با چرخش GameObjects منبع آن. خواص :
Activate : بعد از اینکه GameObject محدود شده و GameObjects منبع آن را چرخانید، روی Activate کلیک کنید تا این اطلاعات ذخیره شود. Activate offset فعلی را از مبدأ GameObjects در Rotation At Rest و Rotation Offset ذخیره میکند، سپس گزینه Is Active و Lock را بررسی میکند.
Zero : چرخش GameObject محدود شده را به GameObjects مبدا تنظیم می کند. Zero فیلدهای Rotation At Rest و Rotation Offset را بازنشانی می کند، سپس گزینه Is Active و Lock را بررسی می کند.
Is Active : ارزیابی یا عدم ارزیابی محدودیت را تغییر می دهد. برای اعمال محدودیت، مطمئن شوید که Lock علامت زده شده است.
Weight : قدرت محدودیت. وزن 1 باعث می شود که Constraint این GameObject را با همان سرعت GameObjects منبع آن بچرخاند. وزن 0 اثر محدودیت را به طور کامل حذف می کند. این وزن روی همه GameObject های منبع تاثیر می گذارد. هر GameObject در لیست Sources یک وزن نیز دارد.
Constraint Settings :
Lock : تغییر حالت دهید تا Constraint GameObject را بچرخاند. برای ویرایش چرخش این GameObject، علامت این ویژگی را بردارید. همچنین میتوانید ویژگیهای Rotation At Rest و Rotation Offset را ویرایش کنید. اگر گزینه Is Active باشد، وقتی GameObject یا GameObjects منبع آن را میچرخانید، Constraint ویژگیهای Rotation At Rest یا Rotation Offset را برای شما بهروزرسانی میکند. وقتی از تغییرات خود راضی بودید، Lock را علامت بزنید تا به Constraint اجازه دهید این GameObject را کنترل کند. این ویژگی در حالت پخش تاثیری ندارد.
Rotation At Rest : مقادیر X، Y و Z برای استفاده زمانی که Weight 0 است یا زمانی که محورهای چرخش انجماد مربوطه علامت نخورده است. برای ویرایش این فیلدها، علامت Lock را بردارید.
Rotation Offset : X، Y و Z از تبدیلی که توسط محدودیت تحمیل می شود، جبران می شود. برای ویرایش این فیلدها، علامت Lock را بردارید.
Freeze Rotation Axes : X، Y یا Z را علامت بزنید تا به Constraint اجازه دهید محورهای مربوطه را کنترل کند. علامت یک محور را بردارید تا محدودیت کنترل آن را متوقف کند. این به شما امکان می دهد محور unfrozen را ویرایش، متحرک یا اسکریپت کنید.
Sources : لیست GameObject هایی که این GameObject را محدود می کنند. یونیتی GameObject های منبع را به ترتیبی که در این لیست ظاهر می شوند ارزیابی می کند. این ترتیب بر نحوه چرخش این محدودیت GameObject محدود تأثیر می گذارد. برای به دست آوردن نتیجه دلخواه، موارد را در این لیست بکشید و رها کنید. هر منبع دارای وزنی از 0 تا 1 است.
Zero : چرخش GameObject محدود شده را به GameObjects مبدا تنظیم می کند. Zero فیلدهای Rotation At Rest و Rotation Offset را بازنشانی می کند، سپس گزینه Is Active و Lock را بررسی می کند.
Is Active : ارزیابی یا عدم ارزیابی محدودیت را تغییر می دهد. برای اعمال محدودیت، مطمئن شوید که Lock علامت زده شده است.
Weight : قدرت محدودیت. وزن 1 باعث می شود که Constraint این GameObject را با همان سرعت GameObjects منبع آن بچرخاند. وزن 0 اثر محدودیت را به طور کامل حذف می کند. این وزن روی همه GameObject های منبع تاثیر می گذارد. هر GameObject در لیست Sources یک وزن نیز دارد.
Constraint Settings :
Lock : تغییر حالت دهید تا Constraint GameObject را بچرخاند. برای ویرایش چرخش این GameObject، علامت این ویژگی را بردارید. همچنین میتوانید ویژگیهای Rotation At Rest و Rotation Offset را ویرایش کنید. اگر گزینه Is Active باشد، وقتی GameObject یا GameObjects منبع آن را میچرخانید، Constraint ویژگیهای Rotation At Rest یا Rotation Offset را برای شما بهروزرسانی میکند. وقتی از تغییرات خود راضی بودید، Lock را علامت بزنید تا به Constraint اجازه دهید این GameObject را کنترل کند. این ویژگی در حالت پخش تاثیری ندارد.
Rotation At Rest : مقادیر X، Y و Z برای استفاده زمانی که Weight 0 است یا زمانی که محورهای چرخش انجماد مربوطه علامت نخورده است. برای ویرایش این فیلدها، علامت Lock را بردارید.
Rotation Offset : X، Y و Z از تبدیلی که توسط محدودیت تحمیل می شود، جبران می شود. برای ویرایش این فیلدها، علامت Lock را بردارید.
Freeze Rotation Axes : X، Y یا Z را علامت بزنید تا به Constraint اجازه دهید محورهای مربوطه را کنترل کند. علامت یک محور را بردارید تا محدودیت کنترل آن را متوقف کند. این به شما امکان می دهد محور unfrozen را ویرایش، متحرک یا اسکریپت کنید.
Sources : لیست GameObject هایی که این GameObject را محدود می کنند. یونیتی GameObject های منبع را به ترتیبی که در این لیست ظاهر می شوند ارزیابی می کند. این ترتیب بر نحوه چرخش این محدودیت GameObject محدود تأثیر می گذارد. برای به دست آوردن نتیجه دلخواه، موارد را در این لیست بکشید و رها کنید. هر منبع دارای وزنی از 0 تا 1 است.
UnityChan(Channel)
اگر من ابجکت هدف (کروی) را بچرخونم معکب ما هم خواهد چرخید
بر اساس محور ها در یونیتی اگر بخواهیم فقط محور x را تلقید کند باید در کامپوننت فقط محور x را قفل کنید