اسکریپت بیان - مدار یک نقطه
با یک عبارت Scripted سفارشی، موقعیت یک شی را به دور یک نقطه بچرخانید. موقع تمیز کردن جدول زمانی، موقعیت شی تغییر خواهد کرد. با استفاده از مثلثات می توان حرکت دایره ای را به صورت دو بعدی با استفاده از توابع سینوسی و کسینوس تعریف کرد.در این مثال، فریم فعلی به عنوان متغیری که حرکت را القا می کند استفاده می شود. frame یک عبارت ساده است که با bpy.context.scene.frame_current مطابقت دارد.
یک درایور به ویژگی X Location اضافه کنید.
نوع درایور را روی Scripted Expression تنظیم کنید.
عبارت 0 + (sin(frame / 8) * 4) را اضافه کنید، جایی که:
frame/8 : فریم فعلی انیمیشن است که بر 8 تقسیم می شود تا سرعت مدار کاهش یابد
(sin( )*4) : حاصل sin(frame/8) را در 4 برای دایره بزرگتر ضرب می کند.
0 + : برای کنترل افست به نقطه مرکز مدار استفاده می شود.
یک درایور به ویژگی Y Location با عبارت 0 + اضافه کنید (cos(frame / 8) * 4)
جدول زمانی را پاک کنید تا اثر را ببینید. برای کنترل اندازه و مرکز مدار، متغیرها را آزمایش کنید
با یک عبارت Scripted سفارشی، موقعیت یک شی را به دور یک نقطه بچرخانید. موقع تمیز کردن جدول زمانی، موقعیت شی تغییر خواهد کرد. با استفاده از مثلثات می توان حرکت دایره ای را به صورت دو بعدی با استفاده از توابع سینوسی و کسینوس تعریف کرد.در این مثال، فریم فعلی به عنوان متغیری که حرکت را القا می کند استفاده می شود. frame یک عبارت ساده است که با bpy.context.scene.frame_current مطابقت دارد.
یک درایور به ویژگی X Location اضافه کنید.
نوع درایور را روی Scripted Expression تنظیم کنید.
عبارت 0 + (sin(frame / 8) * 4) را اضافه کنید، جایی که:
frame/8 : فریم فعلی انیمیشن است که بر 8 تقسیم می شود تا سرعت مدار کاهش یابد
(sin( )*4) : حاصل sin(frame/8) را در 4 برای دایره بزرگتر ضرب می کند.
0 + : برای کنترل افست به نقطه مرکز مدار استفاده می شود.
یک درایور به ویژگی Y Location با عبارت 0 + اضافه کنید (cos(frame / 8) * 4)
جدول زمانی را پاک کنید تا اثر را ببینید. برای کنترل اندازه و مرکز مدار، متغیرها را آزمایش کنید
تابع سفارشی - مقدار مربع
یک تابع سفارشی ایجاد کنید تا مربع یک مقدار (یعنی value2) را بدست آورید. افزودن تابع به فضای نام درایور امکان استفاده از عبارات درایور را فراهم می کند. فضای نام درایور فهرستی از توابع داخلی برای استفاده در عبارات درایور و همچنین ثابت هایی مانند π و e دارد. این موارد را می توان از طریق کنسول پایتون بررسی کرد:
bpy.app.driver_namespace[' <tab>
acos']
acosh']
asin']
asinh']
atan']
...
برای افزودن یک تابع جدید به فضای نام درایور، خود تابع باید پیاده سازی شود و سپس به bpy.app.driver_namespace اضافه شود.
یک تابع سفارشی ایجاد کنید تا مربع یک مقدار (یعنی value2) را بدست آورید. افزودن تابع به فضای نام درایور امکان استفاده از عبارات درایور را فراهم می کند. فضای نام درایور فهرستی از توابع داخلی برای استفاده در عبارات درایور و همچنین ثابت هایی مانند π و e دارد. این موارد را می توان از طریق کنسول پایتون بررسی کرد:
bpy.app.driver_namespace[' <tab>
acos']
acosh']
asin']
asinh']
atan']
...
برای افزودن یک تابع جدید به فضای نام درایور، خود تابع باید پیاده سازی شود و سپس به bpy.app.driver_namespace اضافه شود.
بخش کد نویسی
موارد زیر را به ویرایشگر متن داخل Blender اضافه کنید و Run Script را فشار دهید
یک درایور با یک عبارت Scripted مانند مربع (فریم) اضافه کنید.
نمونه های تابع سفارشی بیشتری در قالب های ویرایشگر متن Blender ‣ Python ‣ درایور توابع موجود است. از آنجایی که Simple Expressions نمی تواند به توابع سفارشی دسترسی داشته باشد، استفاده از آنها فقط برای محاسبات پیچیده منطقی است.
موارد زیر را به ویرایشگر متن داخل Blender اضافه کنید و Run Script را فشار دهید
import bpy
def square(val):
"""Returns the square of the given value"""
return val * val
# Add function to driver_namespace.
bpy.app.driver_namespace['square'] = square
یک درایور با یک عبارت Scripted مانند مربع (فریم) اضافه کنید.
نمونه های تابع سفارشی بیشتری در قالب های ویرایشگر متن Blender ‣ Python ‣ درایور توابع موجود است. از آنجایی که Simple Expressions نمی تواند به توابع سفارشی دسترسی داشته باشد، استفاده از آنها فقط برای محاسبات پیچیده منطقی است.
مشاهده جستجوی ویژگی لایه
Node Attribute Material در حالت View Layer به طور خودکار ویژگی ویژگی را در چندین مکان جستجو می کند. این، برای مثال، میتواند به تنظیم مقدار مشخصی از ویژگی سفارشی در سطح صحنه یا جهان اجازه دهد و سپس آن را بهطور متفاوت برای یک لایه مشاهده لغو کند.
ویژگیهای زمینه درایورها این رفتار را اجرا نمیکنند، بنابراین در صورت لزوم باید به صورت دستی از طریق مقادیر بازگشتی و یک عبارت شرطی شبیهسازی شود (شرایط عبارتاند از Simple Expression).
برای یک ویژگی به نام attr، گره شش مسیر RNA زیر را به ترتیب امتحان می کند:
["attr"] in the active View Layer (custom property).
attr in the active View Layer (built-in property).
["attr"] in the active Scene.
attr in the active Scene.
world["attr"] in the active Scene.
world.attr in the active Scene.
بسته به ویژگی خاص، ممکن است فقط زیر مجموعه ای از این مکان ها را بررسی کنید. به عنوان مثال، تصویر سمت راست نحوه دسترسی به یک ویژگی را نشان می دهد که مشخص است قطعاً یک ویژگی سفارشی با مقدار رنگ است.
Node Attribute Material در حالت View Layer به طور خودکار ویژگی ویژگی را در چندین مکان جستجو می کند. این، برای مثال، میتواند به تنظیم مقدار مشخصی از ویژگی سفارشی در سطح صحنه یا جهان اجازه دهد و سپس آن را بهطور متفاوت برای یک لایه مشاهده لغو کند.
ویژگیهای زمینه درایورها این رفتار را اجرا نمیکنند، بنابراین در صورت لزوم باید به صورت دستی از طریق مقادیر بازگشتی و یک عبارت شرطی شبیهسازی شود (شرایط عبارتاند از Simple Expression).
برای یک ویژگی به نام attr، گره شش مسیر RNA زیر را به ترتیب امتحان می کند:
["attr"] in the active View Layer (custom property).
attr in the active View Layer (built-in property).
["attr"] in the active Scene.
attr in the active Scene.
world["attr"] in the active Scene.
world.attr in the active Scene.
بسته به ویژگی خاص، ممکن است فقط زیر مجموعه ای از این مکان ها را بررسی کنید. به عنوان مثال، تصویر سمت راست نحوه دسترسی به یک ویژگی را نشان می دهد که مشخص است قطعاً یک ویژگی سفارشی با مقدار رنگ است.
شکل درایورهای کلیدی
بهبود تغییر شکل مش
مشکلات تقاطع را که هنگام استفاده از آرماتورها و رنگ آمیزی وزن رخ می دهد، به ویژه در مفاصل برطرف کنید. از کلیدهای شکل نیز می توان برای اصلاح و اصلاح یک دکل استفاده کرد، به عنوان مثال برای پیشنهاد تشکیلات عضلانی. در این مثال، یک کلید شکل برای بهبود تغییر شکل در آرنج یک بازوی ابتدایی استفاده شده است
سمت چپ: تغییر شکل مش اسکلتی بدون اصلاح. راست: کلید شکل اصلاحی اعمال شد
بهبود تغییر شکل مش
مشکلات تقاطع را که هنگام استفاده از آرماتورها و رنگ آمیزی وزن رخ می دهد، به ویژه در مفاصل برطرف کنید. از کلیدهای شکل نیز می توان برای اصلاح و اصلاح یک دکل استفاده کرد، به عنوان مثال برای پیشنهاد تشکیلات عضلانی. در این مثال، یک کلید شکل برای بهبود تغییر شکل در آرنج یک بازوی ابتدایی استفاده شده است
سمت چپ: تغییر شکل مش اسکلتی بدون اصلاح. راست: کلید شکل اصلاحی اعمال شد
Media is too big
VIEW IN TELEGRAM
یک مثال کلی از کارکرد driver و shape key :
در این مثال shape key توسط driver مقادیر آن ها کنترل میشود یعنی با فرمول نویسی ساده در پنل درایور و استفاده از شکل دایره ها بعنوان مقدار وقتی که دایره در موقعیت داخلی x خود حرکت کند مقدار shape key هم تغییر خواهد کرد
در این مثال shape key توسط driver مقادیر آن ها کنترل میشود یعنی با فرمول نویسی ساده در پنل درایور و استفاده از شکل دایره ها بعنوان مقدار وقتی که دایره در موقعیت داخلی x خود حرکت کند مقدار shape key هم تغییر خواهد کرد
درج Keyframe
حالت : Object Mode
منو : Object ‣ Animation ‣ Insert Keyframe
میانبر : i
چندین روش برای افزودن کلیدهای جدید وجود دارد. یعنی:
در نمای سهبعدی، با فشار دادن I ویژگیهای کلیدی را بر اساس تنظیمات کاربر پیشفرض کانالهای کلیدی کلید میزنیم.
هنگامی که یک مجموعه کلید فعال است، به جای خواندن تنظیمات برگزیده کاربر استفاده می شود.
نگه داشتن نشانگر روی یک ویژگی و فشار دادن I یا با منوی زمینه توسط یک ویژگی RMB و Insert Keyframe را از منو انتخاب کنید.
با فعال کردن تنظیمات برگزیده کاربر "Pie Menu on Drag"، با نگه داشتن I و حرکت مکان نما، یک منوی پای ظاهر می شود تا یکی از Location، Rotation، Scale و Available را وارد کنید.
حالت : Object Mode
منو : Object ‣ Animation ‣ Insert Keyframe
میانبر : i
چندین روش برای افزودن کلیدهای جدید وجود دارد. یعنی:
در نمای سهبعدی، با فشار دادن I ویژگیهای کلیدی را بر اساس تنظیمات کاربر پیشفرض کانالهای کلیدی کلید میزنیم.
هنگامی که یک مجموعه کلید فعال است، به جای خواندن تنظیمات برگزیده کاربر استفاده می شود.
نگه داشتن نشانگر روی یک ویژگی و فشار دادن I یا با منوی زمینه توسط یک ویژگی RMB و Insert Keyframe را از منو انتخاب کنید.
با فعال کردن تنظیمات برگزیده کاربر "Pie Menu on Drag"، با نگه داشتن I و حرکت مکان نما، یک منوی پای ظاهر می شود تا یکی از Location، Rotation، Scale و Available را وارد کنید.
UnityChan(Channel)
درج Keyframe حالت : Object Mode منو : Object ‣ Animation ‣ Insert Keyframe میانبر : i چندین روش برای افزودن کلیدهای جدید وجود دارد. یعنی: در نمای سهبعدی، با فشار دادن I ویژگیهای کلیدی را بر اساس تنظیمات کاربر پیشفرض کانالهای کلیدی کلید میزنیم. هنگامی…
درج Keyframe با Keying Set
منو : Object ‣ Animation ‣ Insert Keyframe with Keying Set
میانبر : K
درج فریمهای کلیدی برای مجموعه کلیدی مشخص شده، با منوی مجموعههای کلیدی موجود.
منو : Object ‣ Animation ‣ Insert Keyframe with Keying Set
میانبر : K
درج فریمهای کلیدی برای مجموعه کلیدی مشخص شده، با منوی مجموعههای کلیدی موجود.
حذف Keyframes
منو : Object ‣ Animation ‣ Delete Keyframes
میانبر : Alt-I
روش های مختلفی برای حذف فریم های کلیدی وجود دارد
در نمای سه بعدی، Alt-I را فشار دهید تا کلیدها را از اشیاء انتخاب شده در فریم فعلی حذف کنید.
وقتی ماوس روی یک مقدار قرار گرفت، Alt-I را فشار دهید.
یک مقدار RMB را انتخاب کنید و حذف Keyframe را از منو انتخاب کنید.
منو : Object ‣ Animation ‣ Delete Keyframes
میانبر : Alt-I
روش های مختلفی برای حذف فریم های کلیدی وجود دارد
در نمای سه بعدی، Alt-I را فشار دهید تا کلیدها را از اشیاء انتخاب شده در فریم فعلی حذف کنید.
وقتی ماوس روی یک مقدار قرار گرفت، Alt-I را فشار دهید.
یک مقدار RMB را انتخاب کنید و حذف Keyframe را از منو انتخاب کنید.
ووو به دوستانی که با ما بودن و خط به خط توضیحات گره ها را خوندن و یاد گرفتن تبریک میگم شما بصورت تخصصی توانستید compositing را در بلندر و یونیتی با تدریس FPro Sensei یاد بگیرید من انتظار ندارم استاد کار کردن با تمام گره ها شده باشید پس هر روز تمرین کنید تا روز یه روز بهتر تر بشید
این اولین و تخصصی ترین و جامع ترین آموزش در کل پلتفرم فارسی بود که تونستم یاد بدم راستشو بخواهید برای خودم خیلی تحت فشار بودم چون دو موتور قدرتمند را طبق وعده ای که داده بودم همزمان آموزش دادم امیداورم لذت برده باشید
تمامی گره های که در این بخش کامپوزیت نرم افزار ها وجود داشت تک به تک و خط به خط آموزش داده شد
برای تشکر کردن از من و حمایت کردن میتوانید لینک کانال را انتشار دهید تا همه ازش استفاده کنند
این آموزش خفن و جذاب و هم با تمامی سختی های یاد دادنش به پایان رسید کاری بود از FPro Sensei
بزودی سر فصل های آموزش لینک بندی خواهد شد
این اولین و تخصصی ترین و جامع ترین آموزش در کل پلتفرم فارسی بود که تونستم یاد بدم راستشو بخواهید برای خودم خیلی تحت فشار بودم چون دو موتور قدرتمند را طبق وعده ای که داده بودم همزمان آموزش دادم امیداورم لذت برده باشید
تمامی گره های که در این بخش کامپوزیت نرم افزار ها وجود داشت تک به تک و خط به خط آموزش داده شد
برای تشکر کردن از من و حمایت کردن میتوانید لینک کانال را انتشار دهید تا همه ازش استفاده کنند
این آموزش خفن و جذاب و هم با تمامی سختی های یاد دادنش به پایان رسید کاری بود از FPro Sensei
بزودی سر فصل های آموزش لینک بندی خواهد شد
👍2❤1
UnityChan(Channel)
آموزش و بررسی سیستم (کامپوننت ها) های ساخت انواع محدودیت برای ریگ و ابجکت در یونیتی 6
بررسی انواع constraints (محدودیت ها) در یونیتی 6
منظور از محدودیت ها چیست و چه کاربردی دارد ؟ همان طور که میدانید که ابجکتی که شما چه در یونیتی چه در آنریل چه در بلندر چه در مایا چه در 3dmax و......... که نرم افزار هایی که میشناسید حرکت یا property (خواص) آن ها محدودیت ندارن و به اصطلاح آزاد هست هر کجا دوست داشتید میتوانید جابه جا کنید بزرگ و کوچک کنید در هر درجه خواستید چرخش بدید و....
ولی اگر ابجکت ما حرکتش آزاد باشد نمی توانیم بصورت راحت انیمیشن بسازیم و به اگر بتوانیم قطعا سخت و طاقت فرسا خواهد بود خوب ما چه کار انجام میدهیم میایم این محدودیت ها چه برای ریگ جه برای ابجکت میزاریم مثلا محدودیتی که میدونم همه باهاش آشنا هستن IK هست که قبلا هم توضیح دادم کاربردش چی هست
این محدودیت هایی که الان مشاهده میکنید بدون نصب پکیج در قسمت components های یونیتی موجود هست ولی در مقایسه با بلندر محدودیت های بسیار کمی وجود دارد
منظور از محدودیت ها چیست و چه کاربردی دارد ؟ همان طور که میدانید که ابجکتی که شما چه در یونیتی چه در آنریل چه در بلندر چه در مایا چه در 3dmax و......... که نرم افزار هایی که میشناسید حرکت یا property (خواص) آن ها محدودیت ندارن و به اصطلاح آزاد هست هر کجا دوست داشتید میتوانید جابه جا کنید بزرگ و کوچک کنید در هر درجه خواستید چرخش بدید و....
ولی اگر ابجکت ما حرکتش آزاد باشد نمی توانیم بصورت راحت انیمیشن بسازیم و به اگر بتوانیم قطعا سخت و طاقت فرسا خواهد بود خوب ما چه کار انجام میدهیم میایم این محدودیت ها چه برای ریگ جه برای ابجکت میزاریم مثلا محدودیتی که میدونم همه باهاش آشنا هستن IK هست که قبلا هم توضیح دادم کاربردش چی هست
این محدودیت هایی که الان مشاهده میکنید بدون نصب پکیج در قسمت components های یونیتی موجود هست ولی در مقایسه با بلندر محدودیت های بسیار کمی وجود دارد