UnityChan(Channel)
Drivers Panel منو : Sidebar region ‣ Drivers میانبر » N دوم منو : Context menu ‣ Edit Driver میانبر : Ctrl-D این پنل در نوار کناری ویرایشگر درایورها یا هنگام افزودن درایور به ویژگی به صورت پاپاور قابل مشاهده است. این ویژگی مشخصه ای را نشان می دهد که…
Driver Value : نتیجه فعلی راه اندازی درایور. برای اهداف اشکال زدایی مفید است
Variables : نیاز به توضیح بیشتر
Update Dependencies : بهروزرسانی وابستگیهای Driver Value را اجباری میکند.
Show in Drivers Editor : ویرایشگر Drivers کاملاً برجسته را باز می کند. این دکمه فقط در نسخه پاپاور پنل Drivers ظاهر می شود.
Variables : نیاز به توضیح بیشتر
Update Dependencies : بهروزرسانی وابستگیهای Driver Value را اجباری میکند.
Show in Drivers Editor : ویرایشگر Drivers کاملاً برجسته را باز می کند. این دکمه فقط در نسخه پاپاور پنل Drivers ظاهر می شود.
UnityChan(Channel)
Variables
متغیرهای درایور
متغیرها ارجاعاتی به ویژگی ها، کانال های تبدیل یا نتیجه مقایسه بین تبدیل دو شی هستند.
برای اینکه وابستگی ها به درستی ردیابی شوند، درایورها باید از طریق متغیرهای درایور، به جای ارجاع مستقیم در عبارت Python، به داده های شی دسترسی داشته باشند.
Add Input Variable : یک متغیر Driver جدید اضافه می کند.
Copy/Paste Variables : لیست متغیرهای فعلی را کپی می کند تا بتوان آن را در لیست متغیرهای راننده دیگری جایگذاری کرد
Name : نام برای استفاده در عبارات اسکریپت. نام باید با یک حرف شروع شود و فقط شامل حروف، اعداد یا زیرخط باشد.
Variable Type : نوع متغیر مورد استفاده
متغیرها ارجاعاتی به ویژگی ها، کانال های تبدیل یا نتیجه مقایسه بین تبدیل دو شی هستند.
برای اینکه وابستگی ها به درستی ردیابی شوند، درایورها باید از طریق متغیرهای درایور، به جای ارجاع مستقیم در عبارت Python، به داده های شی دسترسی داشته باشند.
Add Input Variable : یک متغیر Driver جدید اضافه می کند.
Copy/Paste Variables : لیست متغیرهای فعلی را کپی می کند تا بتوان آن را در لیست متغیرهای راننده دیگری جایگذاری کرد
Name : نام برای استفاده در عبارات اسکریپت. نام باید با یک حرف شروع شود و فقط شامل حروف، اعداد یا زیرخط باشد.
Variable Type : نوع متغیر مورد استفاده
Single Property : مقدار یک ویژگی RNA را که توسط یک مرجع بلوک داده و یک رشته مسیر مشخص شده است، بازیابی می کند.
در مورد ویژگی های تبدیل، این مقدار دقیق ویژگی UI را برمی گرداند، در حالی که Transform Channel در صورت نیاز، والد و/یا محدودیت ها را در نظر می گیرد.
ID Type : نوع بلوک ID. به عنوان مثال: کلید، تصویر، شی، ماده.
ID : شناسه از نوع ID-block. به عنوان مثال: "Material.001"
RNA Path : نام RNA ویژگی، بر اساس زیرمجموعه ای از نحو دسترسی ویژگی پایتون. به عنوان مثال: location.x یا location[0] برای مقدار کانال انیمیشن مکان X (قبل از والدین یا محدودیتها)، یا ["prop_name"] برای یک ویژگی سفارشی.
Fallback : در صورت فعال بودن، به جای ایجاد خطا در ارزیابی درایور، امکان تعیین یک مقدار بازگشتی را برای استفاده به عنوان مقدار متغیر در صورتی که مسیر RNA قابل حل نباشد، می دهد.
در مورد ویژگی های تبدیل، این مقدار دقیق ویژگی UI را برمی گرداند، در حالی که Transform Channel در صورت نیاز، والد و/یا محدودیت ها را در نظر می گیرد.
ID Type : نوع بلوک ID. به عنوان مثال: کلید، تصویر، شی، ماده.
ID : شناسه از نوع ID-block. به عنوان مثال: "Material.001"
RNA Path : نام RNA ویژگی، بر اساس زیرمجموعه ای از نحو دسترسی ویژگی پایتون. به عنوان مثال: location.x یا location[0] برای مقدار کانال انیمیشن مکان X (قبل از والدین یا محدودیتها)، یا ["prop_name"] برای یک ویژگی سفارشی.
Fallback : در صورت فعال بودن، به جای ایجاد خطا در ارزیابی درایور، امکان تعیین یک مقدار بازگشتی را برای استفاده به عنوان مقدار متغیر در صورتی که مسیر RNA قابل حل نباشد، می دهد.
Transform Channel
مقدار یک کانال Transform را از یک جسم یا استخوان بازیابی می کند.
ID : شناسه شی به عنوان مثال: مکعب، آرماتور، دوربین.
Bone : برای آرماتورها، نام استخوان آرماتور. به عنوان مثال: "Bone"، "Bone.002"، "Arm.r".
Type : به عنوان مثال، X Location، X Rotation، X Scale.
Mode (Rotation) : برای کانالهای چرخش، نوع دادههای چرخشی مورد استفاده، از جمله دستورات مختلف اویلر صریح را مشخص میکند. استفاده از دستور اویلر هدف به طور پیش فرض. حالتهای کانال چرخش را ببینید.
Space : فضای جهانی، فضای تبدیل، فضای محلی.
مقدار یک کانال Transform را از یک جسم یا استخوان بازیابی می کند.
ID : شناسه شی به عنوان مثال: مکعب، آرماتور، دوربین.
Bone : برای آرماتورها، نام استخوان آرماتور. به عنوان مثال: "Bone"، "Bone.002"، "Arm.r".
Type : به عنوان مثال، X Location، X Rotation، X Scale.
Mode (Rotation) : برای کانالهای چرخش، نوع دادههای چرخشی مورد استفاده، از جمله دستورات مختلف اویلر صریح را مشخص میکند. استفاده از دستور اویلر هدف به طور پیش فرض. حالتهای کانال چرخش را ببینید.
Space : فضای جهانی، فضای تبدیل، فضای محلی.
ویژگی زمینه
مقدار خاصیتی را ارائه می دهد که به طور ضمنی به یک صحنه یا یک لایه دید از سیستم انیمیشن ارزیابی فعلی اشاره دارد. این یک مرجع ضعیف است که منجر به پیوند صحنه یا لایه نمایشی که از درایور ارجاع داده شده است، هنگام پیوند داده های انیمیشن نمی شود.
مثال زمانی که چنین ویژگی هایی وارد بازی می شوند، اشاره به تغییر شکل دوربین فعال است. این امکان وجود دارد که یک درایور را در یک فایل کاراکتر تنظیم کنید، و زمانی که کاراکتر به یک مجموعه مرتبط است، راننده را مجبور به استفاده از دوربین تنظیم کنید.
Context : Active Scene, Active View Layer.
RNA Path : نام RNA ویژگی، بر اساس زیرمجموعه ای از نحو دسترسی ویژگی پایتون. به عنوان مثال: camera.location.x یا camera.location[0] برای مقدار کانال انیمیشن مکان دوربین X (قبل از والدین یا محدودیت ها)، یا ["prop_name"] برای یک ویژگی سفارشی
Fallback : اگر فعال باشد، به جای ایجاد خطا در ارزیابی درایور، امکان تعیین یک مقدار بازگشتی را برای استفاده به عنوان مقدار متغیر در صورتی که مسیر RNA قابل حل نباشد، می دهد.
مقدار خاصیتی را ارائه می دهد که به طور ضمنی به یک صحنه یا یک لایه دید از سیستم انیمیشن ارزیابی فعلی اشاره دارد. این یک مرجع ضعیف است که منجر به پیوند صحنه یا لایه نمایشی که از درایور ارجاع داده شده است، هنگام پیوند داده های انیمیشن نمی شود.
مثال زمانی که چنین ویژگی هایی وارد بازی می شوند، اشاره به تغییر شکل دوربین فعال است. این امکان وجود دارد که یک درایور را در یک فایل کاراکتر تنظیم کنید، و زمانی که کاراکتر به یک مجموعه مرتبط است، راننده را مجبور به استفاده از دوربین تنظیم کنید.
Context : Active Scene, Active View Layer.
RNA Path : نام RNA ویژگی، بر اساس زیرمجموعه ای از نحو دسترسی ویژگی پایتون. به عنوان مثال: camera.location.x یا camera.location[0] برای مقدار کانال انیمیشن مکان دوربین X (قبل از والدین یا محدودیت ها)، یا ["prop_name"] برای یک ویژگی سفارشی
Fallback : اگر فعال باشد، به جای ایجاد خطا در ارزیابی درایور، امکان تعیین یک مقدار بازگشتی را برای استفاده به عنوان مقدار متغیر در صورتی که مسیر RNA قابل حل نباشد، می دهد.
اسکریپت بیان - مدار یک نقطه
با یک عبارت 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