آموزش یونیتی- قسمت سیزدهم

تا به حال ، طراحی بازی ما تکمیل شده است ، محیط بازیمان ایجاد شده و کاراکترهای بازی و منابع دیگر را به بازیمان داخل کرده ایم . کاراکترهای بازی که اضافه کرده ایم شامل گراز ، بچه گراز ، جوجه ، مرغ ، کشاورز مسن و Colt ) کشاورز جوان) است . اگر کاراکترهای بازی مثل یک سنگ ، ثابت و بی تحرک بایستند ، بازی خیلی خسته کننده می شود . ما با اضافه کردن انیمیشن به هریک از این کاراکترها ، زندگی را به آنها هدیه می کنیم ! ما به هر حیوان ، ۲ انیمیشن می دهیم تا در هنگامی که در حالت بیکاری و در حالت غذاخوردن هستند ، تحرک داشته باشند . کشاورز مسن ، انیمیشن های صحبت کردن و بیکار بودن را خواهد داشت . کشاورز جوان ، کاراکتری است که توسط بازیکن کنترل می شود ، بنابراین قادر به راه رفتن ، صحبت کردن ، دویدن ، برداشتن و حالت بیکاربودن خواهد بود .

در ادامه آموزش‌ها  با انیمیشن های یونیتی و کنترل کننده بازیکن آشنا می شوید ، قادر به پیش نمایش انیمیشن ها خواهید بودشد و  می توانید کاراکترهای بازی را متحرک سازی کنید و همچنین کلیپ انیمیشن ایجاد کنید.

 اصول انیمیشن


انیمیشن به صورت حرکت شبیه سازی شده تعریف می شود که به وسیله نمایش یک سری از تصاویر یا فریم ها ، ایجاد می شود . در یونیتی ، انیمیشن ها به شیوه ای که در فیلم ها به کارگیری می شوند ، نمایش داده می شوند به این صورت که در هر ثانیه ، یک تعداد مشخص از فریم ها به تدریج و پشت سرهم ، نمایش داده می شوند . ما از انیمیشن ها برای جان دادن به کاراکترها استفاده می کنیم . هنگامی که بازیکن از کلیدهای جهتی یا دستگاه های ورودی دیگری برای حرکت دادن کاراکتر اصلی در اطراف صفحه ، استفاده می کند ؛ بازی به ورودی کاربر واکنش نشان داده و انیمیشن مناسب را پخش می کند . مثلا هنگامی که بازیکن ، کلید جهتی سمت چپ را فشار می دهد ، کاراکتر اصلی بازی به سمت چپ حرکت می کند که در یونیتی به آن انیمیشن راه رفتن می گویند.

انیمیشن ها معمولا با استفاده از ابزارهای مدل سازی سه بعدی مثل Blender ،Max Studio 3D  یا Maya ایجاد می شوند . همانطور که بعدا خواهید دید ، از داخل یونیتی هم می توانیم انیمیشن ها را ایجاد کنیم.

در بازی ما ، درخصوص انیمیشن ، دو نکته حائز اهمیت است . اول اینکه باید کاراکتر کشاورز جوان را طوری متحرک سازی و انیمیت کنیم که کاربر بتواند جائی که می رود و کاری که انجام می دهد را کنترل کند . اولین چیزی که نیاز است ، ایجاد یک کنترل کننده کاراکتر است .

کنترل کننده های کاراکتر


در بــازی هــا ، دو نــوع کنتــرل کننــده بــازیکن وجــود دارد :

  • آنهــائی کــه توســط انســان کنتــرل مــی شــوند.
  • آنهــائی کــه توســط کــامپیوتر کنتــرل مــی شــوند .

اولــی را کــاراکتر بــازیکن مــی گوینــد و دومــی بــه کــاراکتر غیربـــازیکن (player-non) معـــروف اســـت . کاراکترهـــای بـــازیکن مـــی تواننـــد هرآنچـــه کـــه شـــما مـــی توانیـــد تصـــور کنیـــد ، باشـــند . در بـــازی هـــای مـــدرن ؛ کاراکترهـــای بـــازیکن معمـــولا انســـان یـــا شـــبه انســان هســتند . البتــه نمــی تــوان گفــت امکــان ایجــاد بــازی کــه در آن ، کــاراکتر بــازیکن یــک درخــت از ریشـه کنـده شـده یـا یـک سـنگ بـا هفـت پـا باشـد ، وجـود نـدارد ! در بـازی مـا ، کـاراکتر بـازیکن ، یـک پسربچه به نام Colt است . یونیتی از یک شئ بازی به نام کنترل کننده کاراکتر ( character controller )استفاده می کند تا کاربر را قادر به کنترل کردن کند .

در یونیتی دو نوع از این کنترل کننده کاراکتر وجود دارد :

  • کنترل کننده اول شخص
  • کنترل کننده سوم شخص

اینها اشاره به نوع دید کاربر در طول بازی دارند . تصویر زیر دید بازیکن را نشان می دهد :

آموزش یونیتی- قسمت سیزدهم


با کنترل کننده اول شخص ، فقط بخشی از کاراکتر بازیکن روی صفحه ، قابل دیدن خواهد بود . اغلب بازی ها ؛ دست ها ، بازوها ، اسلحه یا ترکیبی از اینها را نشان می دهند . منظره بازی درواقع از طریق چشمان کاراکتر ، دیده می شود . کنترل کننده سوم شخص اجازه می دهد همه کاراکتر در طول گیم پلی دیده شود .

  کنترل کننده اول شخص

 
ما در بازی Colt Farmer Little ، نیازی به کنترل کننده اول شخص نداریم اما برای بازی های دیگری که در یونیتی می سازید ، باید با نحوه ایجاد آن آشنا باشید . برای ایجاد یک کنترل کننده اول شخص:

  1. یونیتی را اجرا کنید.
  2. یک پروژه ۳D ایجاد کنید.
  3. بسته های منبع Characters و Environment به پروژه وارد کنید.
  4. یک زمین جدید ایجاد کرده و بافتی را به آن اعمال کنید . این کار به شما کمک می کند ، شئ کنترل کننده اول شخص را در نمای Scene ببینید.
  5. در نمای Project ، به این مسیر بروید :

Assets | Sample Assets | Characters | FirstPersonCharacter | Prefabs

۶٫ در ستون دوم نمای Project ، شئ FPSController را انتخاب کرده و به داخل نمای Scene درگ کنید.

با رها کردن ماوس ، یک کنترل کننده اول شخص در صحنه خواهید داشت.

آموزش یونیتی- قسمت سیزدهم


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

ایجاد یک کنترل کننده سوم شخص


یونیتی همراه با یک کنترل کننده سوم شخص به عنوان بخشی از بسته character می آید . آواتار متصل به این کنترل کننده ، Ethan  نام دارد:

آموزش یونیتی- قسمت سیزدهم

آموزش یونیتی- قسمت سیزدهم


امــا جــائی بــرای Ethan در بــازی مــا نیســت . بــرای اینکــه بــه بــازیکن اجــازه کنتــرل کــاراکتر کشــاورز کوچــک را بــدهیم ، بــرای او بــه جــای Ethan بایــد یــک کنتــرل کننــده ســوم شــخص ، پیــاده ســازی کنــیم . برای انجام این کار:

۱- یونیتی را اجرا کنید.

۲- پروژه بازی را باز کنید.

۳- صحنه را بارگذاری کنید.

۴- در نمای Scene و با استفاده از ابزارهای تغییر شکل ، نمای زمین را طوری تنظیم کنید که از سطح زمین ، به پل نگاه کنیم . این به ما کمک می کند تا ببینیم که کاراکتر در کجا قرار می گیرد:

آموزش یونیتی- قسمت سیزدهم


۵- در نمای Project ، پوشه SampleAssets را انتخاب کنید.

۶- منو Assets >> Package Import >> Characters  را انتخاب کنید . بسته منبع باز شده و پنجره package Importing نمایش داده می شود . دکمه Import را کلیک کنید.

۷- در نمای Project ، پوشه ها را باز کنید تا گزینه زیر را ببینید:

  SampleAssets | Characters | ThirdPersonCharacter | Prefabs

پوشه Prefabs را کلیک کنید . در ستون دوم نمای Project ، شئ ای با نام ThirdPersonController خواهید دید:

آموزش یونیتی- قسمت سیزدهم

آموزش یونیتی- قسمت سیزدهم


۸- شئ ThirdPersonCharacter را کلیک کرده و به داخل نمای Scene درگ کنید . شئ را روی پل رها کنید.

۹- اگر روی این شئ جدید زوم کنید مشاهدهخواهید کرد که Ethan در کنترل کننده کاراکتر ، جای گرفته است :

آموزش یونیتی- قسمت سیزدهم


در این مرحله ، می توانید بازی را اجرا کرده و با استفاده از Ethan ، در محیط بازی گشت بزنید . حال ما Colt را با Ethan  جابه جا می کنیم . برای این کار:

۱- در نمای Hierarchy ، شئ ThirdPersonController را باز کنید . سه یتم می بینید که با اسم Ethan شروع شده اند:

آموزش یونیتی- قسمت سیزدهم


۲- سه آیتمی که با اسم Ethan شروع شده اند را حذف کنید . با این کار ، کنترل کننده سوم شخص هنوز وجود دارد اما فاقد آواتار است.

۳- در نمای Project ، گزینه Assets >> Boy Farmer  را انتخاب کرده و سپس در ستون دوم ، شئ FarmerBoy را انتخاب کنید :

آموزش یونیتی- قسمت سیزدهم

آموزش یونیتی- قسمت سیزدهم


۴- شئ FarmerBoy را از نمای Project به نمای Hierarchy درگ کنید و روی شئ ThirdPersonController رها کنید :

آموزش یونیتی- قسمت سیزدهم


۵- حالا می بینید که به جای Ethan ، کاراکتر Colt روی پل ایستاده است:

آموزش یونیتی- قسمت سیزدهم


۶- صحنه و پروژه را ذخیره کنید.

۷- کــار بعــدی کــه بایــد انجــام دهــیم ایــن اســت کــه بــه یــونیتی بگــوئیم از کــدام کنتــرل کننــده بایــد بــرای متحـــــــــــــرک کننـــــــــــــده (Animator (اســـــــــــــتفاده کنـــــــــــــد . در نمـــــــــــــای Hierarchy ، گزینـــــــــــــه FarmerBoy | ThirdPersonController را انتخاب کنید.

۸- در نمای Inspector ، آیکون دایره ای شکل کوچکی که در سمت راست قسمت Controller وجود دارد را انتخاب کنید . این آیکون در بخش Animator نمای Inspector وجود دارد :

آموزش یونیتی- قسمت سیزدهم

آموزش یونیتی- قسمت سیزدهم


۹- پنجره Select RuntimeAnimatorController باز می شود . روی قسمت Assets کلیک کرده و سپس آیتم Boy_Farmer را دوبارکلیک کنید:

آموزش یونیتی- قسمت سیزدهم


۱۰- کنترل کننده سوم شخصی که در نمای Hierarchy انتخاب شده بود را  انتخاب کنید.

۱۱- در نمای Inspector ، می بینید که Ethan به عنوان آواتار انتخاب شده است :

آموزش یونیتی- قسمت سیزدهم


۱۲- پس اگر در بخش Animator نمای Inspector ، Ethan به عنوان آواتار انتخاب شده است ، روی دایره کوچک سمت راست این فیلد کلیک کنید و از پنجره Select Avatar ، گزینه FarmerBoyAvatar را انتخاب کنید.

آموزش یونیتی- قسمت سیزدهم


۱۳- در نمـــای Scene ، روی کـــاراکتر زوم کنیـــد تـــا بتوانیـــد کنتـــرل کننـــده بـــازیکن را ببینیـــد . یـــادآوری مـی کـنم ، یـک شـکل اسـتوانه ای سـبز رنـگ ، کنتـرل کننـده بـازیکن را نشـان مـی دهـد . ایــن اســتوانه ، کــوچکتر از کــاراکتر Colt اســت . بایــد کــاری کنــیم کــه کــاراکتر مــا بــه صــورت کامــل در داخل کنترل کننده کاراکتر جا بگیرد.

۱۴- در نمای Hierarchy ، گزینه ThirdPersonController را انتخاب کنید . با این انتخاب ، ما تغییرات را در بخش Collider Capsule  نمای Inspector انجام می دهیم.

۱۵- در نمای Inspector و در بخش Capsule Collider ، مقدار Center Y را ۳ قرار دهید ، مقدار Radius  را ۱ و مقدار Height  نیز ۶ شود:


۱۶- Capsule Collider حالا باید به صورت کامل کاراکتر Colt را دربرگرفته باشد . در نمای Scene ، روی Colt زوم کنید تا مطمئن شوید کپسول به اندازه کافی بزرگ و مناسب است.


باید آخرین تغییر را نیز انجام دهیم . مختصات y کاراکتر را طوری تنظیم می کنیم که کمی بالاتر از زمین قرار گیرد . در نمای Inspector ، مقدار Position Y Transform را به ۰٫۲ تغییر دهید . این کار از رفتن Colt  به داخل زمین ، جلوگیری می کند :

آموزش یونیتی- قسمت سیزدهم

آموزش یونیتی- قسمت سیزدهم


حالا می توانید بازی را اجرا کرده و ببینید که کاراکتر Colt جان گرفته است . می توانید با استفاده از کلیدهای جهتی او را بچرخانید و در دنیای بازی گشت و گذار داشته باشید . توجه Colt نمی تواند شنا کند و روی آب راه برود . بنابراین فعلا پیشنهاد می کنم او را به داخل آب نبرید ! در بخش های بعدی ، انیمیشن ها و عملکردهای بیشتری را به Colt اضافه می کنیم.

منبع:
javad.arbabi e-book
ir.dev-bazi