PDA

نسخه کامل مشاهده نسخه کامل : واکنش های فیزیکی (RB_HingeActor)



silsin
20-07-2012, 15:50
سلام
منبع : گیم ایمگ
نویسنده : خودم فقط فرقش اینه که اول اونجا گذاشتم و به اسم اونجا

::
مقدمه :

یکی از اصول جدانشدنی از ساخت یک بازی رایانه ای واقعیت پذیری هرچه بیشتر آن است . هنگامی که ما ساخت یک بازی رایانه ای را شروع می کنیم علاوه بر جنبه های رایانه ای آن باید به هرچه واقعی تر بودن ان نیز توجه کافی را داشته باشیم . در مقاله آموزشی زیر ما فرا خواهیم گرفت که چگونه یکی از کاربردی ترین واکنش پذیری های فیزیکی را در انریل انجین 3 به وجود بیاوریم .


Kactor :
یکی از کاربردی ترین انواع اکتور ها در این انجین Kactor ها می باشند که به آنها اصطلاحا Real-Time RigedBody نیز گفته می شود. این گونه از اکتور ها دارای خاصیت های فیزکی پویا می باشند یعنی در هر لحظه واکنش های فیزکی آن ها قابل تغییر می باشند . تغییراتی از جمله : افتادن - پرواز - غرق شدن - ضربه و غیره ..... .
توجه داشته باشید در انریل انجین چند راه برای دسترسی و به وجود آوردن این گونه اکتور ها وجود دارد :
1- در ادیتور بر روی مدل StaticMesh خودتان راست کلیک کرده

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

و سپس در سکانس و در مکان خالی راست کلیک کرده و بر روی گزینه Add RigidBody کلیک کرده تا ابجکت Kactor شما بر روی سکانس وارد شود.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

2-همچنین می توانید جهت تبدیل مدل های StaticMesh دیگر نیز می توانید بر روی ابجکت راست کلیک کرده و طبق تصویر زیر Conver , و سپس convert Statcmesh to Kactor را انتخاب کنید تا ابجکت شما تبدیل به این نوع از اکتور شود .
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

در دو روش بالا ما فقط به ابجکت های استاتیک در محیط ادیتور اشاره کردیم جالب است که این را بدانید می توانید از طریق انریل اسکریپت یا همان زبان برنامه نویسی این انجین نیز این گونه اکتور ها را به وجود بیاورد و البته در انریل اسکریپت نیز می توانید ابجکت های SkeletalMesh را نیز از این نوع تعریف کنید که کاربرد های خاص خود را دارد که توضیح آن در مقاله اموزشی فوق جای ندارد.
در محیط برنامه نویسی می توانید از قالب زیر جهت ساخت این نوع از اکتور ها استفاده کنید :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدشما می توانید با استفاده از این قالب برنامه نویسی این گونه ابجکت ها را نیز در محیط برنامه نویسی برای بازی خود به وجود بیاورید و از ان استفاده کنید . در قسمت Object Class نوع شیئ خود که شامل StaticMeshComponent یا SkeletalMeshComponent میشود را انتخاب کرده و آن را به وجود میاوریم .
تا اینجا با کارایی این گروه از اکتور ها اشنا شدیم اکنون به خاصیتی جالب از استفاده از این خانواده اکتور ها توجه کنید :
فرض کنید چراغ لامپی را دارید که می خواید با ضربه خودن به آن خاصیت فیزیکی تکان خوردن را از آن مشاهده کنید یا می خواهید ابجکت هایی از این قبیل واکنش های این چنینی را از خود نشان دهند . در حالت عادی شما توانایی این کار را به جز با تعریف و ساخت انیمیشن ندارید اما با استفاده از خاصیت فیزکی جالب انجین فوق شما می توانید به راحتی به این گونه دسترسی داشته باشید .
جهت این کار ابتدا باید ابجکت خود را طبق تعاریف بالا به Kactor تبدیل کنید .
سپس از Actor Class در ادیتور بر روی RB_HingeActor کلیک کنید سپس بر روی سکانس و در مکان Kactor که به وجود اورده اید راست کلیک کرده
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


Add_RbHingerActor Here را بزنید تا خاصیت جدید را در مکانی که شما تعیین کرده اید به وجود بیاورد . توجه کنید که شیئ جدیدی که از Actor Class بر روی سکانس وارد کرده اید حتما باید در مختصات شیئ Kactor شما باشد فرض کنید این اکتور جدید نقش گیره شیئ شما را در سکانس بازی می کند که باید از بالا به پایین آن را نگه دارد .
با زدن کلید f4 وارد تنظیمات ان شوید
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
پنچره تنظیمات را قفل کرده سپس ابجکت Kactor خودتان را انتخا و در این پنجره با کلیک بر روی دکمه سبز در قسمت Constraint Actor 1 آن را وارد تنظیمات این بخش کنید
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

پس از انجام این کار همانطور که در تصویر بالا مشاهده می کنید باید محدوده ای قزمز به دور این ابجکت ما تشکیل بشود .
همچنین می توانید از طریق تنظیمات آن میزان چرخش را نیز مشخص کنید . توجه کنید این گونه شیئ ها نیازمند دوران هستند یعنی هنگام ضربه باید واکنش فیزکی مناسب را از خود ارائه دهند همانطور که در شکل زیر می بینید ما با استفاده از Twist Limite Angle توانستیم میدان دوران آن را 90 در جه ای کنیم
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

اگر سکانس را اجرا کنید و به اکتور ضربه بزنید می توانید نتیجه کار را مشاهده کنید
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


با تشکر

HellKiller
18-08-2012, 16:59
آقا دمت گرم تو این آموزش مطلبی هست که بعد از برخورد با چیزی اون حرکت کنه؟