چهارشنبه, ۶ فروردین , ۱۴۰۴
درخواست تبلیغات

آموزش ماد سازی با Matinee UE3

کامپیوتر و موبایل
در مقاله گذشته به توضیحات ابتدایی در مورد کار با Kismet پرداختیم.در این مقاله درباره Matinee یکی از ابزارهای مهم Unreal ED صحبت می کنیم.توجه کنید این سری از مقالات تنها جنبه آشنایی با ابزارها را دارند و در سری مقالات پیشرفته، به جزییات دو ابزار بسیار قدرتمند Kismet و Matinee می پردازیم Matinee.ابزاری برای […]
در مقاله گذشته به توضیحات ابتدایی در مورد کار با Kismet پرداختیم.
در این مقاله درباره Matinee یکی از ابزارهای مهم Unreal ED صحبت می کنیم.
توجه کنید این سری از مقالات تنها جنبه آشنایی با ابزارها را دارند و در سری مقالات پیشرفته، به جزییات
دو ابزار بسیار قدرتمند Kismet و Matinee می پردازیم Matinee.
ابزاری برای متحرک سازی اشیا و کلیه Asset های موجود در یک مرحله است.
هر گونه متحرک سازی در صحنه از ساخت صحنه های سینمایی (Cut – Scene) درون بازی تا نشان دادن یک
افکت می تواند توسط Matinee انجام شود.
هر چیزی که یک متغیری دارد که در طول زمان قابل تغییر است، می تواند توسط این ابزار طراحی شود.
حرکت شخصیت ها در صحنه، متحرک سازی آسانسورهای مرحله، باز و بسته شدن درها، حرکت های دوربین، افکت بین دوربین
ها همه و همه بخشی کوچک از کارهایی هستند که به وسیله این ابزار انجام می شود.
این را بدانید که Matinee قابلبیت کارهایی فراتر از این را هم دارد.
به گفته گریسان اِج (Grayson Edge) یک از طراحان ارشد مراحل بازی Gears of War 2 ، پایان تکان دهنده
این بازی همگی با استفاده از Matinee و Kismet ساخته شده است.
در این مقاله برای شروع ابتدا یک بالابر ساده را با استفاده از Matinee طراحی می کنیم؛ سپس یک درب
را طراحی خواهیم کرد که باز و بسته خواهد شد و در انتها با گذاردن دوربین یک صحنه سینمایی ساده
درون بازی را طراحی می کنیم.
گام ۱ همان طور که در مقالات گذشته توضیح داده شد، یک اتاق ساده طراحی کنید.
سپس در Generic Browser با باز کردن HU – Floor2, Package، برای Mesh بالابر از HU – Floor – SM
-SidewalkA – 128، استفاده کنید.
آن را در Generic Browser برگزینید، در مرحله خود کلیک راست کرده و Add Actor را انتخاب کنید.
دو گزینه برای متحرک سازی بالابر وجود دارد Add InterpActor: و.
Add Mover اگر InterpActor را انتخاب کنید باید کلیه تنظیمات و تعاریبف بالابر را در Kismet انجام دهید تا بالابر
کار کند؛ در مقابل با انتخاب Mover، کلیه تنظیمات موجود برای بالابر در دسترس خواهد بود.
از آن جا که هدف ما تنها راه انداختن یک بالابر ساده است، Mover انتخاب بهتری به شمار می رود.
پس گزینه…
Add Mover Static Mesh را مطابق تصویر ۱ انتخاب کنید تا Mesh بالابر درون مرحله قرار گیرد.
توجه کنید هنگامی که Mesh را به صورت یک شی متحرک وارد مرحله می کنید، تاثیر نورهای Static روی آن
دیده نمی شود و تنها تاثیر نورهایی موجود در Dynamic Channel قابل مشاهده هستند (در ادامه این مقاله درباره چگونگی
فعال سازی Channel Dynamic یک نور صحبت می کنیم). حال روی آیکان Kismet کیلک کنید.
در داخل ابزار Kismet، روی پنجره اصلی کلیک راست کرده و New Event Using InterpActor – x–> Mover را انتخاب
کنید x) یک عدد خواهد بود).
یک Event، به نام InterpActor -x Mover که به یک Sequence Object Matinee متصل است، به صورت خودکار ایجاد می
شود.
توجه کنید Matinee به InterpActor -x (بالابر) نیز متصل است.
حال اگر روی Matinee دوبار کلیک کنید، ابزار Matinee مطابق تصویر ۲ باز می شود.
توضیح اجمالی درباره UI (ابزار Matinee) بسیار است که در مقالات پیشرفته به آن خواهیم پرداخت.
فعلا با کلیک روی آیکان مربوط به Curve Editor آن را ببندید.
می بینید که مانند تمامی نرم افزارهای متحرک سازی، یک خط مربوط به زمان وجود دارد و در هر سطر
می توان هر آن چه را که متحرک سازی می کنیم، قرار دهیم.
گام ۲ همان طور که در تصویر می بینید؛ چون از Mover استفاده کردیم، دو سطر Mover Group و Movement
به صورت خودکار ایجاد شده اند (در ادامه در مورد چگونگی این سطرها به صورت غیر خودکار صحبت می کنیم).
همان طور که مشخص است MoverGroup نشان دهنده بالابر بوده و سطر Movement حرکت آن را مشخص می کند.
سمت راست Timeline را نشان می دهد و با چرخاندان Mouse Wheel می توانید روی زمان زوم کنید.
با نگه داشتن کلید چپ و Dragکردن روی آن می توانید Timeline را جابجا کنید.
توجه کنید که دو مثلث کوچک قرمز مدت زمان متحرک سازی را نشان می دهد.
با کلیک چپ و حرکت دادن این زمان می توانید این مدت را مشخص کنید.
مثلث سمت راست را به سمت چپ حرکت داده و آن را روی ۲ ثانیه بگذارید.
توجه کنید که با تنظیم مقدار و فشردن کلید Toggle Snap می توانید به راحتی مثلث را روی زمان دلخواه
Snap کنید.
حال موقع آن است که متحرک سازی بالابر را انجام دهیم.
روی مستطیل سیاه باریک کلیک کرده و آن را حرکت داده و به ثانیه صفر برسانید.
بالابر را در مرحله انتخاب، روی سطر Movement کلیک کرده و آن را انتخاب می کنیم.
حال می توانیم با زدن کلید Enter یا انتخاب آیکان Add Key، برای بالابر یک انیمیشن در ثانیه صفر ایجاد
کنید.
حال با حرکت مستطیل به زمان ۲ ثانیه و ایجاد Keyframe در آن جا و سپس حرکت بالابر به جایی
که در انتهای حرکت در آن جا می ایستد، یعنی بالابردن آن انیمیشن، حرکت را تکمیل کنید.
اصول انیمیشن Keyframe این است که شما محل شی متحرک را در Keyframe های مختلف در زمان مشخص می کنید
و سپس وقتی انیمیشن در زمان اجرا میشود، شی بین مناطق مشخص شده در Keyframe ها حرکت می کند.
اگر مستطیل سیاه را بین ثانیه صفر و دو حرکت دهیم، می بینیم که بالابر به بالا می رود، هم
چنین یک مسیر زرد مطابق تصویر ۳ مسیر حرکت را نشان می دهد.
گام ۳ برای تست بالابر Matinee را می بندیم تا به طور خودکار اطلاعات آن ذخیره شود.
سپس درون مرحله محل شروع را با کلیک راست و انتخاب Add Actor -> Add PlayerStart قرار داده و مرحله
را با نام DM – Matineel ذخیره کنید.
حال اگر مرحله را اجرا کنید، می بینید که اولا همان طور که قبلا گفته شد، بالابر تنها به صورت
یک صفحه سیاه است (چرا که هیچ یک از نوارهای ما از Channel Dynamic بر آن نمی تابد).
دوم این که اگر روی بالابر بروید و حتی بالا و پایین بپرید، بالابر کاری را انجام نمی دهد! اگر
روی آن شلیک کنید، چون نور شلیک شده Dynamic است، برای لحظه ای بافت بالابر مشخص می شود.
علت این که بالابر کار نمی کند این است که بالابر هیچ اطلاعات Collision ندارد و باید Collision آن فعال
شود.
برای این کار روی بالابر دوبار کلیک کرده تا مشخصات آن فهرست شود.
در این بخش Collision Type روی COLLIDE- NoCollsion تنظیم شده است.
آن را به COLLIDE – BlockAll تغییر دهید.
حال اگر روی بالابر بروید، بالابر به کار می افتد و شما را بالا می برد و پس از کمی
مکث پایین می آید.
برای بررسی رفتار بالابر کافی است مطابق تصویر ۴ Kismet را باز کرده و به مطالعه آن بپردازیم.
همان طور که می بینید برای Trigger بالابر در حالت (Pawn Attached روی آن رفتن)، آن چه در Matinee موجود
است، Play می شود (بالابر به بالا می رود).
هنگامی که بالابر به Open Finished می رود (به انتهای مسیر می رسد (، Matinee به صورت Reverse نمایش داده
می شود، یعنی بالابر به پایین می آید.
حال اگر در Kismet روی Trigger) InterpActor-x Mover بالابر) کلیک کنیم در پنجره پایین سمت چپ می توانیم مقدار) Stay
Open Time مدت زمان بالا ماندن بالابر را تعیین می کند) را تغییر دهیم.
اگر مقدار اولیه ۱،۵ ثانیه را به مثلا ۰.۵ ثانیه تغییر دهیم، بالابر هنگامی که به بالا می رسد ،مکث
بسیار کوتاهی کرده و باز می گردد.
آنچه در این جا گفته شده تنها شروعی برای راه انداختن یک بالابر است و شما می توانید کارهای مختلفی
را با آن انجام دهید.
مثلا برای گذاردن صدا کافی است Matinee را باز کنید.
مطابق تصویر ۵ با کلیک راست روی Mover Group و انتخاب Add New Sound Track یک سطر برای صدا ایجاد
می شود.
حال کافی است در Generic Browser صدای مورد نظر خود را انتخاب کنید و سپس با انتخاب سطر جدیدی که
برای صدا ساخته شده و زدن کلید Enter در حالی که روی ثانیه صفر هستید، KeyFrame مربوط به صدا را
ایجاد کنید.
حال اگر بالابر را تست کنید، صدای مورد نظر شما در شروع حرکت آن پخش خواهد شد.
گام ۴ مثال بعدی باز و بسته کردن یک درب به وسیله یک Volume Trigger است.
اینبار از InterpActor استفاده و سعی می کنیم همه بخش ها را از صفر در Kismet و Matinee ایجاد کنیم.
مطابق تصویر ۶ دو اتاق ایجاد و با یک راهرو آن ها را به هم متصل کنید.
از Generic Browser یک درب از ASC-Door انتخاب کرده و آن را جلو راهرو قرار دهید.
آن را Scale کنید تا در چهار چوب قرار گیرد.
اکنون در حالی که درب را Select کرده اید، Kismet را باز می کنیم (خالی است).
داخل پنجره اصلی آن کلیک راست کرده و گزینه New Matinee را انتخاب می کنیم.
روی Object مربوط به Matinee مانند قبل دوبار کلیک می کنیم تا ابزار Matinee باز شود.
ابتدا مدت زمانی که لازم است تا درب باز شود را مشخص می کنیم.
سپس مانند قبل با حرکت مثلث قرمز سمت راست و کشاندن آن به روی عدد یک ثانیه مدت زمان انجام
عمل باز شدن را مشخص کنید.
این بار متوجه می شوید سطرهای موجود برای ساخت انیمیشن در سمت چپ موجود نیست.
برای این کار ابتدا از Select بودن در، مطمئن شده، در محل ایجاد سطر مطابق تصویر ۷ کلیک راست کرده،
گزینه New Empty Group را انتخاب کنید و آن را Door بنامید.
سطر ایجاد شده به رنگ سبز در می آید که نشان دهنده این است که این گروه برای یک شی
ایجاد شده است (در صورتی که چیزی Select نباشد و New Empty Group را انتخاب کنید، سطربه رنگ خاکستری در
می آید).
این موضوع را می توانید در Kismet نیز ببینید.
حال InterpActor-x به Door در Matinee متصل است.
روی سطر ایجاد شده کلیک راست کرده و با استفاده از گزینه Add New Movement Track برای آن سطر Movement
ایجاد کنید.
Keyframe.
در حالت اولیه به شکل خودکار ایجاد شده، سپس در انتهای حرکت (یعنی باز شدن درب Keyframe (دیگری را ایجاد
کرده و در انتها Timeline درب را به بالا حرکت دهید.
گام ۵ انیمیشن باز شدن درب کامل شده، اکنون نوبت آن است که با طراحی یک Trigger باز و بسته
شدن آن را براساس رفتار بازیباز کنترل کنیم.
برای این کار Builder Brush قرمز را حرکت داده و در شعاعی که می خواهیم وقتی بازیکن به آن رسید،
درب باز شود و خارج شد، درب بسته شود؛ قرار دهید.
برای مشاهده دقیق مرز به صورت 3D روی آیکان Toggle Brush Poleis کلیک کنید، تا حجم به صورت سه بعدی
مشخص شود.
حال روی آیکان Add Volume مطابق تصویر ۸ کلیک راست کرده و Trigger Volume را انتخاب کنید.
اکنون (Builder Brush مکعب سازنده) را از محل خارج کنید.
مشاهده می کنید یک حجم سه بعدی برای Trigger به رنگ سبز ساخته شده است.
آن را Select کرده و Kismet را باز کنید.
در پنجره اصلی کلیک راست کرده و گزینه New Event Using Trigger Volume-o –> Touch را مطابق تصویر ۹ انتخاب
کنید.
از گزینه Trigger Volume ،Touched ایجاد شده به Play، Matine و از Untouched به Reserve متصل کنید.
این بدین معنی است که وقتی وارد این Trigger می شوید، انیمیشن Play, Matinee می شود (درب باز می شود
و وقتی از آن خارج می شویم انیمیشن به صورت برعکس عمل کرده و درب بسته می شود.
توجه داشته باشید همان طور که قبلا اشاره شده یک Trigger بصورت پیش فرض یک بار انجام می شود.
پس با انتخاب Trigger Volume در Kismet در بخش Properties در پنجره پایین سمت چپ، مقدار Max Trigger Count را
از یک به صفر (بی نهایت بار) تغییر دهید.
اگر این کار را انجام ندهید، درب باز شده و همین طور باقی خواهد ماند.
همانند قبل Collision در را BlockAll قرار داده و مرحله را Build کرده و آن را اجراکنید.
برای گذاردن افکت صوتی درب راه های مختلفی وجود دارد.
می توانید این افکت ها را در Kismet هنگام باز و بسته شدن درب طراحی کنید یا مانند مثال قبل
آن را در Matinee انجام دهید؛ اما روش دیگری که می توانید از آن استفاده کنید، انتخاب InterpActor یعنی همان
درب و باز کردن Property آن در Tab مربوط به InterpActor است.
می توانید صدا را با انتخاب از Generic Browser در گزینه های Close Sound, Opened Sound , Open Sound و
Closed Sound جایگزین کنید.
آخرین مشکل سیاه بودن Mesh مربوط به درب است.
برای حل این مشکل کافی است به property نور رفته و مطابق تصویر ۱۰، از Light–>Light Component –> Lighting Channel
گزینه Dynamic را چک بزنید.
همان طور که قبلا گفته شد، تنها نورهایی که در Channel Dynamic قرار دارند، روی InterpActor ها تاثیر می گذارند.
توصیه می شود برای بالا رفتن Performance یک نور جدید با Channel Dynamic برای در، به صورت جداگانه طراحی شود
و Property نور اصلی اتاق تغییر نکند.
گام ۶ در انتها به مثال ساده ای در مورد کار با دوربین در Matinee را به انتها می رسانیم.
هدف ما این است که یک دوربین در داخل مرحله قرار دهیم که با ورود به یک Trigger فعال شده
و یک صحنه سینمایی ساده درون بازی را پخش کند (در این مثال ساده تنها یک حرکت دوربین ساده ساخته
می شود.
در آینده یک صحنه سینمایی با انیمیشن و تمامی مشخصات خواهیم ساخت).
ابتدا از Generic Browser–>Actor Class گزینه CameraActor را انتخاب کرده و سپس با کلیک راست در مرحله و انتخاب Add
CameraActor Here دوربین را درون مرحله قرار دهید.
خوب است دوربین را در مرحله ابتدایی آن تنظیم کنید.
برای این کار ابتدا پنجره Perspective را مطابق تصویر ۱۱ به پنجره اصلی تبدیل، روی آیکان Lock selected Actors to
the Camera کلیک و سپس روی Camera کلیک کنید.
حال با حرکت در Viewport آن چه از دوربین تان دیده می شود را می بینید؛ پس محل دوربین خود
را مشخص کنید (پس از اتمام حرکت گزینه Lock را غیرفعال کنید).
می توانید با استفاده از View های دیگر نیز محل دوربین را تنظیم کنید؛ اما کار با این View دقیق
تر خواهد بود.
حال باید حرکت دوربین موردنظر خود را تامین کنید.
برای این کار Kismet را باز کرده و گزینه New Matinee را انتخاب کنید.
روی Matinee، دوبار کلیک کنید تا ابزار Matinee باز شود.
با کلیک راست روی محل ایجاد سطرها، گزینه Add New Camera Group را انتخاب کرده و آن را Camera بنامید.
می توانید از Empty Group هم استفاده کنید؛ اما Camera Group کار شما را آسان تر می کند.
می بینید که دو تِرَک (Track)، FOV Angle و Movement نیز به صورت خودکار مطابق تصویر ۱۲ ایجاد می شود.
همانند قبل، پس از مشخص کردن مدت زمان حرکت، در حالی که دوربین Selected است و سطر Movement گزیده شده،
Keyframe اولیه را انتخاب و سپس در انتها Keyframe مورد نظر را ایجاد کنید و دوربین را در محل انتهایی
قرار دهید.
می بینید که دوربین بین دو Keyframe حرکت می کند.
برای دیدن آن چه که دوربین به تصویر می کشد، روی آیکان دوربین در سطر Camera Group کلیک کنید.
برای استفاده از زوم دوربین می توانید Keyframe های موردنظر را در سطر FOV Angle ایجاد کرده و با کلیک
راست روی Keyframe ایجاد شده و انتخاب Set Value، میزان زوم را تغییر دهید.
مقدار پیش فرض برای FOV 90 است که تغییر آن به ۴۵میزان زوم را دو برابر می کند.
حال نیاز است که برای Matinee تعریف کنیم که از کدام دوربین استفاده می کنیم (چرا که می توانیم از
چندین دوربین برای ساخت صحنه سینمایی خود استفاده کنیم).
برای این کار مطابق تصویر ۱۳ با کلیک راست و انتخاب Add New Director Group یک سطر در بخش جدید
ایجاد می شود.
روی سطر Director که وظیفه کنترل دوربین های مختلف را دارد، کلیک کرده و در ابتدای آن یک Keyframe ایجاد
کنید.
متوجه می شوید از شما می خواهد دوربین موردنظر خود را انتخاب کنید.
با انتخاب Camera، در Timeline مدت زمان فعال بودن Camera به رنگ دیگر در می آید و روی آن Camera
نوشته می شود.
روی DirGroup، کلیک راست و گزینه Add New Fade Track را انتخاب کنید.
با انتخاب این سطر در ثانیه صفر Timeline با زدن کلید Enter یک Keyframe ایجاد کنید.
روی Keyframe ایجاد شده کلیک راست کرده و مقدار Set Value را از صفر به ۱ تغییر دهید تا در
صورت کلیک روی آیکانِ دوربین، صفحه کاملا سیاه شود.
در ثانیه ۰.۵ Keyframe جدیدی با مقدار صفر قرار دهید.
حال مشاهده می کنید که صحنه سینمایی در ابتدا Fade-In میشود.
حال Matinee را ببندید و در مرحله یک Trigger Volume همانند مثال قبل ایجاد کرده و در Kismet مانند قبل
در پنجره اصلی کلیک راست کرده و گزینه New Event Using Trigger Volume-0->Touch را انتخاب و گزینه Touched را به
Play، Matine متصل کنید (تصویر ۱۴).
حال با تست مرحله و ورود به Trigger تعریف شده، می توانید صحنه سینمایی اخته شده (یک حرکت دوربین ساده
همراه با یک (Fade-In را مشاهده کنید.
منبع:نشریه بازی رایانه
گردآوری:

اخبار مرتبط: