omidanathema
Member
جلوه دمینو
پیاده سازی
در این Tutorial بر روی چند موضوع بحث خواهیم کرد. نحوه پیاده سازی احجام هندسی و نحوه سوئیچ کردن بین حالات Active و Passive .
برای ساخت یک دومینو ما از یک مکعب چند ضلعی ( Polygonal Cube ) استفاده کرده و آن را مقیاس دهی می کنیم تا به اندازه یک دومینو شود. نام آن را به DominoProxy تغییر دهید زیرا ما از آن فقط برای شبیه سازی بدنه سخت استفاده می کنیم نه به عنوان شکل هندسی نهایی.
مهمترین چیزی که با DominoProxy انجام میشود، تغییر نقطه اتکاء ( Pivot Point ) به لبه پایینی شکل هندسی است.
همچنین ما باید که میز ( یک Polygonal Plane ساده ) و بر روی آن میز ما یک منحنی ( Curve ) رسم میکنیم تا به عنوان منحنی مسیر مورد استفاده قرار گرفته و تمام DominoProxy ها را بر روی آن قرار دهیم.
برای ایجاد یک سری از DominoProxy ها در صحنه، ما از مسیر حرکت برای طرح بندی تمام اشیاء استفاده می کنیم و به صورت اتوماتیک تمام آنها را جهت دهی مجدد می کنیم تا به صورت ردیفی از DominoProxy ها در آیند.
از آنجا که من میخواهم تعداد 30 عدد DominoProxy را در طول مسیر منحنی قرار دهم، به هنگامی ساخت مسیر حرکت تنظیمات زیر را انجام میدهم :
گزینه Start Time را بر روی 0 و گزینه End Time را بر روی 30 قرار دهید، گزینه های Lenght و Follow را علامت بزنید. گزینه Front Axis را بر روی X و گزینه Up Axis را بر روی Y قرار دهید. از آنجا که منحنی بر روی سطح میز قرار دارد، و تمام Domino ها بر روی سطح میز قرار دارند، مطمئن شوید که گزینه Bank علامتدار نباشد ( آن را غیر فعال کنید ).
زمانی که Timeline را بین 0 و 30 قرار دادید، مشاهده خواهید کرد که DominoProxy در امتداد منحنی مسیر به خوبی جابجا میشود و این به خاطر انتخاب گزینه Parametric Lenght است. همچنین مشاهده خواهید کرد که جهت DominoProxy نیز به صورت اتوماتیک با منحنی مسیر تنظیم خواهد شد و این به خاطر انتخاب گزینه Follow است.
حال مرحله بعدی تکثیر DominoProxy ها در بین هر فریم بین 1 تا 30 است، این کار یک سری از DominoProxy ها در طول مسیر ایجاد خواهد کرد. چندین راه برای انجام این کار وجود دارد.
روش اول استفاده از Animation > Animate > Create Animation Snapshot است.
شما میتوانید End Time را بر روی 30 قرار دهید و Snapshot را بزنید.
اشکال این روش این است که : Animation Snapshot یک گره جدید ایجاد خواهد کرد (Snapshot Node) و تمام اشیاء تکثیر شده ( پس از پاک کردن تاریخچه ساخت ) دارای نقطه اتکاء ( Pivot Point ) در مبدا مختصات خواهند بود، که در اینجا این امر نیز مطلوب است ولی ممکن است در برخی موارد دیگر ایجاد اشکال کند.
روش دوم این است که اشیاء را به صورت دستی از فریم 1 تا 30 تکثیر ( Duplicate ) کنیم. کهایم روش اگر شما 100 فریم داشته باشید مطمئناً خسته کننده و ملال آور خواهد بود.
روش سوم استفاده از یک Script ساده به شکل زیر است:
for ( $i = 1 ; $i < 31 ; $i++)
{
currentTime $i;
duplicate "dominoProxy";
}
من روش سوم را ترجیح می دهم، چراکه سریعتر و ساده تر است و نتیجه همانند زیر است :
پیاده سازی بدنه های سخت
از آنجا که ما تعداد 30 شی تکثیر شده از DominoProxy داریم، شما میتوانید با اطمینان شی اصلی DominoProxy را حذف ( Delete ) کنید و یا اینکه می توانید آن را مخفی کنید تا اشتباهاً به هنگام کار با اشیاء تکثیر شده آن را انتخاب نکنید.
تمام DominiProxy ها را انتخاب کرده و به آنها جاذبه ( Gravity ) را اعمال کنید.
اینکار به تمام DominoProxy ها خصوصیت بدنه سخت را اعمال کرده و Gravity را به تمام آنها اعمال خواهد کرد. مقدار پیش فرض جاذبه برای این پروژه مناسب است، و یااینکه شما میتوانید خصوصیت Magnitude را بر روی مقدار 25 قرار دهید تا این جلوه سریعتر اتفاق بیافتد.
میز را انتخاب کرده و آن ره به عنوان یک بدنه سخت غیر فعال ( Passive Rigid Body ) قرار دهید ئ سپس کلید Play را بزنید تا انیمیشن اجرا شود. خواهید دید که هیچ اتفاقی نخواهد افتاد.
رها کردن Domino ها
برای اینکه جلوه افتادن Domino ها را ایجاد کنیم، باید آنها را حرکت داده و رها کنیم. شما میتوانید این کار را به چند روش انجام دهید. به طور مثال خصوصت Initial Velocity را برای Domino اول تنظیم کنید تا با Domino دوم برخورد کرده و این جلوه ایجاد شود، و یا اینکه به Domino اول یک جلوه دینامیکی (به طور مثال Air) اعمال کنید و یا یک شی Passive RigidBody را با Domino اول برخورد دهید و یا خصوصیت Impulse آن را تنظیم کنید تا این جلوه ایجاد شود. پس مشادهد می کنید که روش های متفاوت و مختلفی برای ایجاد حالت اافتادن Domino ها وجود دارد.
ولی روشی که من در اینجا استفاده می کنم روش سوئیچ کردن بین حالات Passive و Active برای بدنه های سخت است.
در فریم 1، در حالی که Domino اول انتخاب شده است ( DominoProxy1 ) ، گزینه Dynamics > Soft/RigidBodies > Set Passive Key ار انتخاب کنید.
TimeSlider را به فریم 8 جابجا کنید، و DominoProxy1 را حول محور Z بچرخانید بطوریکه دقیقاً بر روی DominoProxy2 تکیه داشته باشد. میتوانید کمی آن را به طرف بالا جابجا کنید تا در میز نفوذ نکند، و گزینه Dynamics > Soft/RigidBodies > Set Active Key را انتخاب کنید.
نگران اینکه در این زمان DominoProxy1 در بدنه DominoProxy2 فرو میرود نباشید، چراکه این موضوع به هنگام شبیه سازی ( Simulation ) برطرف و محاسبه خواهد شد.
از فریم 8 به بعد، اجازه دهید Maya بقیه کارها را انجام دهد، بنابراین به فریم 1 برگشته و End Time را بر روی 300 قرار دهید و دکمه Play را بزنید تا انیمیشن اجرا گردد.
بهتر است از PlayBlast استفاده کرده تا ببینید که این جلوه چگونه کار میکند و اگر لازم باشد مقداری تنظیمات انجام دهید تا به نتیجه دلخواه خود برسید. پس از این کارها میتوانید انیمیشن نهایی را تولید کنید.
می توانید فایل این پروژه را در اینجا دریافت کنید.
فراتر از درس
زمانی که از انیمیشن راضی شدید، یکی از DominoProxy ها را تکثیر کنید و مدل نهایی Domino را در داخل Proxy ( نسخه غیر نهایی ) ایجاد کنید، آن را بافت دهی کرده و آن را به یک مدل خارق العاده تبدیل کنید.
مدل جدید را تکثیر کرده و هر کدام از آنه را فرزند مدلهای DominoProxy ها قرار دهید و گره های DominoProxy ها را مخفی کنید. با این کار مدل جدید و نهایی تمام خصوصیات DominoProxy ها را به ارث برده و همانند آنها حرکت خواهند کرد.
منبع 3dhonar
موفق باشید دوستان
:twisted:
پیاده سازی
در این Tutorial بر روی چند موضوع بحث خواهیم کرد. نحوه پیاده سازی احجام هندسی و نحوه سوئیچ کردن بین حالات Active و Passive .
برای ساخت یک دومینو ما از یک مکعب چند ضلعی ( Polygonal Cube ) استفاده کرده و آن را مقیاس دهی می کنیم تا به اندازه یک دومینو شود. نام آن را به DominoProxy تغییر دهید زیرا ما از آن فقط برای شبیه سازی بدنه سخت استفاده می کنیم نه به عنوان شکل هندسی نهایی.
مهمترین چیزی که با DominoProxy انجام میشود، تغییر نقطه اتکاء ( Pivot Point ) به لبه پایینی شکل هندسی است.

همچنین ما باید که میز ( یک Polygonal Plane ساده ) و بر روی آن میز ما یک منحنی ( Curve ) رسم میکنیم تا به عنوان منحنی مسیر مورد استفاده قرار گرفته و تمام DominoProxy ها را بر روی آن قرار دهیم.
برای ایجاد یک سری از DominoProxy ها در صحنه، ما از مسیر حرکت برای طرح بندی تمام اشیاء استفاده می کنیم و به صورت اتوماتیک تمام آنها را جهت دهی مجدد می کنیم تا به صورت ردیفی از DominoProxy ها در آیند.
از آنجا که من میخواهم تعداد 30 عدد DominoProxy را در طول مسیر منحنی قرار دهم، به هنگامی ساخت مسیر حرکت تنظیمات زیر را انجام میدهم :

گزینه Start Time را بر روی 0 و گزینه End Time را بر روی 30 قرار دهید، گزینه های Lenght و Follow را علامت بزنید. گزینه Front Axis را بر روی X و گزینه Up Axis را بر روی Y قرار دهید. از آنجا که منحنی بر روی سطح میز قرار دارد، و تمام Domino ها بر روی سطح میز قرار دارند، مطمئن شوید که گزینه Bank علامتدار نباشد ( آن را غیر فعال کنید ).
زمانی که Timeline را بین 0 و 30 قرار دادید، مشاهده خواهید کرد که DominoProxy در امتداد منحنی مسیر به خوبی جابجا میشود و این به خاطر انتخاب گزینه Parametric Lenght است. همچنین مشاهده خواهید کرد که جهت DominoProxy نیز به صورت اتوماتیک با منحنی مسیر تنظیم خواهد شد و این به خاطر انتخاب گزینه Follow است.

حال مرحله بعدی تکثیر DominoProxy ها در بین هر فریم بین 1 تا 30 است، این کار یک سری از DominoProxy ها در طول مسیر ایجاد خواهد کرد. چندین راه برای انجام این کار وجود دارد.
روش اول استفاده از Animation > Animate > Create Animation Snapshot است.

شما میتوانید End Time را بر روی 30 قرار دهید و Snapshot را بزنید.
اشکال این روش این است که : Animation Snapshot یک گره جدید ایجاد خواهد کرد (Snapshot Node) و تمام اشیاء تکثیر شده ( پس از پاک کردن تاریخچه ساخت ) دارای نقطه اتکاء ( Pivot Point ) در مبدا مختصات خواهند بود، که در اینجا این امر نیز مطلوب است ولی ممکن است در برخی موارد دیگر ایجاد اشکال کند.
روش دوم این است که اشیاء را به صورت دستی از فریم 1 تا 30 تکثیر ( Duplicate ) کنیم. کهایم روش اگر شما 100 فریم داشته باشید مطمئناً خسته کننده و ملال آور خواهد بود.
روش سوم استفاده از یک Script ساده به شکل زیر است:
for ( $i = 1 ; $i < 31 ; $i++)
{
currentTime $i;
duplicate "dominoProxy";
}
من روش سوم را ترجیح می دهم، چراکه سریعتر و ساده تر است و نتیجه همانند زیر است :

پیاده سازی بدنه های سخت
از آنجا که ما تعداد 30 شی تکثیر شده از DominoProxy داریم، شما میتوانید با اطمینان شی اصلی DominoProxy را حذف ( Delete ) کنید و یا اینکه می توانید آن را مخفی کنید تا اشتباهاً به هنگام کار با اشیاء تکثیر شده آن را انتخاب نکنید.
تمام DominiProxy ها را انتخاب کرده و به آنها جاذبه ( Gravity ) را اعمال کنید.

اینکار به تمام DominoProxy ها خصوصیت بدنه سخت را اعمال کرده و Gravity را به تمام آنها اعمال خواهد کرد. مقدار پیش فرض جاذبه برای این پروژه مناسب است، و یااینکه شما میتوانید خصوصیت Magnitude را بر روی مقدار 25 قرار دهید تا این جلوه سریعتر اتفاق بیافتد.
میز را انتخاب کرده و آن ره به عنوان یک بدنه سخت غیر فعال ( Passive Rigid Body ) قرار دهید ئ سپس کلید Play را بزنید تا انیمیشن اجرا شود. خواهید دید که هیچ اتفاقی نخواهد افتاد.
رها کردن Domino ها
برای اینکه جلوه افتادن Domino ها را ایجاد کنیم، باید آنها را حرکت داده و رها کنیم. شما میتوانید این کار را به چند روش انجام دهید. به طور مثال خصوصت Initial Velocity را برای Domino اول تنظیم کنید تا با Domino دوم برخورد کرده و این جلوه ایجاد شود، و یا اینکه به Domino اول یک جلوه دینامیکی (به طور مثال Air) اعمال کنید و یا یک شی Passive RigidBody را با Domino اول برخورد دهید و یا خصوصیت Impulse آن را تنظیم کنید تا این جلوه ایجاد شود. پس مشادهد می کنید که روش های متفاوت و مختلفی برای ایجاد حالت اافتادن Domino ها وجود دارد.
ولی روشی که من در اینجا استفاده می کنم روش سوئیچ کردن بین حالات Passive و Active برای بدنه های سخت است.
در فریم 1، در حالی که Domino اول انتخاب شده است ( DominoProxy1 ) ، گزینه Dynamics > Soft/RigidBodies > Set Passive Key ار انتخاب کنید.

TimeSlider را به فریم 8 جابجا کنید، و DominoProxy1 را حول محور Z بچرخانید بطوریکه دقیقاً بر روی DominoProxy2 تکیه داشته باشد. میتوانید کمی آن را به طرف بالا جابجا کنید تا در میز نفوذ نکند، و گزینه Dynamics > Soft/RigidBodies > Set Active Key را انتخاب کنید.

نگران اینکه در این زمان DominoProxy1 در بدنه DominoProxy2 فرو میرود نباشید، چراکه این موضوع به هنگام شبیه سازی ( Simulation ) برطرف و محاسبه خواهد شد.
از فریم 8 به بعد، اجازه دهید Maya بقیه کارها را انجام دهد، بنابراین به فریم 1 برگشته و End Time را بر روی 300 قرار دهید و دکمه Play را بزنید تا انیمیشن اجرا گردد.

بهتر است از PlayBlast استفاده کرده تا ببینید که این جلوه چگونه کار میکند و اگر لازم باشد مقداری تنظیمات انجام دهید تا به نتیجه دلخواه خود برسید. پس از این کارها میتوانید انیمیشن نهایی را تولید کنید.
می توانید فایل این پروژه را در اینجا دریافت کنید.
فراتر از درس
زمانی که از انیمیشن راضی شدید، یکی از DominoProxy ها را تکثیر کنید و مدل نهایی Domino را در داخل Proxy ( نسخه غیر نهایی ) ایجاد کنید، آن را بافت دهی کرده و آن را به یک مدل خارق العاده تبدیل کنید.
مدل جدید را تکثیر کرده و هر کدام از آنه را فرزند مدلهای DominoProxy ها قرار دهید و گره های DominoProxy ها را مخفی کنید. با این کار مدل جدید و نهایی تمام خصوصیات DominoProxy ها را به ارث برده و همانند آنها حرکت خواهند کرد.
منبع 3dhonar
موفق باشید دوستان
:twisted: