ساخت انیمیشن کاراکتر دو بعدی در یونیتی همراه با کد نویسی سی شارپ

ساخت انیمیشن کاراکتر دو بعدی در یونیتی همراه با کد نویسی سی شارپ

به نام خدا

در این آموزش متنی یونیتی می خواهیم ساخت یک کاراکتر دو بعدی را از ابتدا آموزش دهیم ، این کاراکتر برای ساخت بازی های ماجراجویی دو بعدی مناسب می باشد.

در ادامه با این آموزش فارسی یونیتی همراه باشید.

در ابتدا عکس اسپرایت مورد نظر را به پروژه اضافه کنید در پنجره Inspector قسمت Texture Type را به روی Sprite 2D and Ui و Sprite Mode را به روی Multiple قرار دهید.

روی Multiple قرار دادن باعث میشه در اسپرایت هایی که در یک شیت مشترک هستند امکان برش دادن آن ها فراهم گردد و توسط یونیتی شناسایی شوند.

 

 

سپس به روی اسپرایت ادیتور کلیک کنید تا پنجره ادیتور اسپرایت ها باز شود.

به روی Slice کلیک کنید و از قسمت Type --> Gird By Cell Size را انتخاب کنید.

در مقیاس 64 در 64 پیکسل برش ها ایجاد می شوند که میزان مناسبی برای این اسپرایت هست شما می توانید این میزان را در قسمت Pixel Size تغییر دهید.

به روی Apply کلیک کنید.

 

 

 حالا مشاهده می کنید که اسپرایت ها برش خورده اند اسپرایت Walk_17 را بکشید بندازید درون هایرارکی از این اسپرایت یک پرفب درست کنید ، در واقع این اسپرایت نقش انیمیشن آیدل (بیکار) را برای ما ایفا می کند ؛ می توانید اسم آن را به Player تغییر دهید.

 

آموزش ساخت بازی دو بعدی با یونیتی

 

در ادامه انیمیشن های کاراکتر را ایجاد می کنیم برای نظم محیط پروژه در یونیتی بهتر است در پنجره Project پوشه بندی های مرتبط را انجام دهیم برای این منظور پوشه جدیدی ایجاد کرده و اسم آن را Animations گذارید.

در تصویر نحوه پوشه بندی در پروژه را مشاهده می کنید.

 

آموزش ساخت بازی دو بعدی در یونیتی

 

سپس انیمیشن ها را ایجاد می کنیم برای این کار نیاز به پنجره انیمیشن داریم از منوی Windows --> Animations را وارد می کنیم.

در تصویر زیر مشاهده می کنید که انیمیشن راه رفتن به سمت چپ را چطور ایجاد می کنیم Samples را به روی 15 قرار می دهیم تا با سرعت کم تری انیمیشن اجرا شود و طبیعی تر به نظر برسد.

 

آموزش ساخت کاراکتر دو بعدی در یونیتی 

 

در ادامه تمام انیمیشن ها را ایجاد می کنیم.

 

آموزش ساخت بازی دو بعدی در یونیتی

 

یک انیماتور کنترلر ایجاد می کنیم و کامپوننت انیماتور را به کاراکتر خود نسبت می دهیم.

 

ساخت بازی دو بعدی در unity

 

سپس انیمیشن ها را به درون پنجره انیماتور کشیده و روابط زیر را برای آن تعریف می کنیم.

 

سی شارپ در یونیتی

 

از قسمت Parameters یک پارامتر از نوع int ایجاد کردیم و اسم آن را Direction گذاشتیم.

یک State خالی به نام Idle ، برای انیمیشن بیکار ایجاد کردیم.

از هر State  دو ترنزیشن رفت و برگشت به State دیگر می زنیم ، یعنی هر State چهار ترنزیشن از آن خارج  و چهار ترنزیشن به آن وارد شده است. (در تصویر بالا مشخص است)

به روی ترنزیشن ها کلیک کنید و به هر State موارد زیر را اختصاص دهید.

ترنزیشن هایی که به State --> WalkUp ختم می شوند ، پارامتر Direction را برابر 2 قرار دهید. 

 

ترنزیشن هایی که به State --> WalkDown ختم می شوند ، پارامتر Direction را برابر 0 قرار دهید. 

 

ترنزیشن هایی که به State --> WalkRight ختم می شوند ، پارامتر Direction را برابر 1 قرار دهید. 

 

ترنزیشن هایی که به State --> WalkLeft ختم می شوند ، پارامتر Direction را برابر 3 قرار دهید. 

 

ترنزیشن هایی که به State --> Idle ختم می شوند ، پارامتر Direction را برابر 4 قرار دهید. 

 

در ادامه یک نمونه عکس Condition گذاشته شده است.

آموزش ساخت بازی دو بعدی در یونیتی

 

بعد از این مراحل نوبت به کد نویسی سی شارپ در یونیتی می رسد.

یک اسکریپت سی شارپ در یونیتی ایجاد کنید.

در این جا اسم اسکریپت را Walk گذاشتیم.

ابتدا اسکریپت را مشاهده کنید سپس به توضیح خطوط آن می پردازیم.

 

آموزش برنامه نویسی سی شارپ در یونیتی

 

در عکس پائین خط های ابتدایی اسکریپت را مشاهده می کنید.

 

کد نویسی سی شارپ در یونیتی

 

در خط 6 متغیر Speed را برای سرعت حرکت کاراکتر تعریف کردیم.

در خط 7 متغیر از نوع انیماتور برای دسترسی دادن به کامپوننت انیماتور کاراکتر ، تعریف کردیم ؛ سپس در تابع استارت این کامپوننت را درون این متغیر نگهداری کردیم.

 

در خط 19 و 20 در تابع آپدیت 2 متغیر اعشاری تعریف کردیم و با استفاده از کلاس Input و متد GetAxisRaw مقداری که از Vertical  و Horizontal بر می گردد را درون متغیر های خود نگهداری می کنیم.

("Vertical" = عمودی = کلیدهای بالا ، پائین ، W و S)

("Horizontal" = افقی = کلیدهای چپ ، راست ، A و D)

متد GetAxisRaw مقدارهای 1 ، 0 و -1 را بر می گرداند. 

در خط 23 مختصات کاراکتر را با مقدارهای مورد نظر جمع کردیم تا کاراکتر ما حرکت کند.

پارامتر z را صفر کردیم چون کاراکتر ما در این محور حرکتی نمی کند. در تایم دلتا تایم ضرب کردیم تا سرعت حرکت کاراکتر ما در تمام سیستم ها به یک میزان باشد.

 

در عکس پائین ادامه خطوط کد را مشاهده می کنید.

 

آموزش برنامه نویسی سی شارپ در یونیتی

 

در خط 27 شرط گذاشتیم اگر y بزرگتر از 0 بود انیمیشن WalkUp اجرا شود.

و در ادامه گفتیم اگر y کوچکتر از 0 بود انیمیشن WalkDown اجرا شود.

اگر x بزرگتر از 0 بود انیمیشن WalkRight و اگر کوچک تر بود انیمیشن WalkLeft اجرا شود.

و در نهایت اگر x و y هر دو برابر با 0 شدند انیمیشن Idle اجرا شود.

 

امیدوارم از این آموزش فارسی unity لذت برده باشید.

از این کاراکتر می توانید برای ساخت بازی های دو بعدی در یونیتی استفاده کنید.

می توانید فایل های پروژه را از لینک زیر دانلود کنید ، دقت داشته باشید این آموزش در یونیتی 5.3.4 اجرا شده است.

فایل اسکریپت سی شارپ یونیتی ، استفاده شده در آموزش هم از این لینک قابل دانلود هست.

 

 

۲ ۰ ۱۵ دیدگاه

دیدگاه‌ها (۱۵)

با سلام 

آموزش های شما در کد نویسی , خیلی عالیه و قابل فهم 

ممنون 

پاسخ:

۲۱ تیر ۹۵، ۲۱:۰۶
سلام دوست عزیز
خواهش می کنم

ممنون از نظر شما



عالییییییییییییی

پاسخ:

۱۷ مرداد ۹۵، ۱۱:۰۲
ممنون از نظر شما 


سلام داداش این پکیج رو داری؟
Mobile Strategy Terrain
اگه داری لطفا بهم بده
دو هفتس دنبالش میگردم

پاسخ:

۱۸ مرداد ۹۵، ۰۹:۰۹
سلام دوست خوب
نه ندارم
برای دریافت پکیج های وبلاگ باید ایمیلتون فعال شه
ایمیل تایید رو که بهتون فرستاده شده
روی لینک درون ایمیل کلیک کنید
موفق باشی


سلام تائید کردم لطفا اگه امکانش هست پکیج 2d toolkit رو یا تو وبلاگتون بزارین یا برام ایمیل کنین

پاسخ:

۱۸ مرداد ۹۵، ۲۱:۴۴
سلام دوست خوب 
فعلا فقط پکیج هایی که در وبلاگ قرار گرفتند ارسال میشن
موفق باشی


ای بابا ما هرچی خواستیم شما یه جوری رد کردین :(

پاسخ:

۲۰ مرداد ۹۵، ۱۲:۱۰
سلام
پکیج های دو بعدی وبلاگ رو واستون می فرستم
ببخشید مشغول ضبط آموزشام


سلام خسته نباشید. برای ساخت یه بازیه استراتژیک با یونیتی با چه برنامه هایی میشه کاراکترشو طراحی کرد؟ ( به صورت کلی برای بازی های استراتژیک با چی میشه کاراکترشو ساخت)

پاسخ:

۱۲ آبان ۹۵، ۱۰:۲۶
سلام ممنون
اگر از آبجکت های سه بعدی استفاده کنید ، بلندر ، تردی مکس ، مایا
اگر دو بعدی باشه می تونید بسته به دیزاین بازیتون از فوتوشاپ یا ایلاستریتور استفاده کنید
در بعضی بازی های به صورت ایزومتریک اسپرایت ها رو در نرم افزار های فوتوشاپ یا ایلاستریتور طراحی می کنن
موفق باشید

فرهاد حسن‌پور

۰۹ بهمن ۹۵ ، ۱۴:۴۹
من تو بخش ساخت انمیشن گیر کردم 

پتجره انمیشن رو باز میکنم ولی نمیتونم چیزی بهش اضافه کنم.

پاسخ:

۹ بهمن ۹۵، ۱۶:۴۲
سلام دوست عزیز
دوره جامع دو بعدی منتشر شد
اگر این دوره رو تهیه کنید همه سوالاتون مرتفع میشه
ضمن این که پیشنهاد میدم روند آموزش رو مجدد بررسی کنید کاملا گویاست ولی برای عزیزانی که تازه شروع کردند ممکن هست این اشتباهات پیش بیاد
موفق باشید

فرهاد حسن‌پور

۱۰ بهمن ۹۵ ، ۱۱:۴۹
اون دوره دوبعدی که میگید رو لینک + تخفیف برام بفرستید.

پاسخ:

۱۰ بهمن ۹۵، ۱۲:۳۶
سلام به این لینک برید ، کلیک کنید

در انتهای پست لینک دانلود و تهیه قرار گرفته برای خرید اول 20 درصد تخفیف در نظر گرفته شده از این تخفیف می تونید استفاده کنید
موفق باشید


سلام
چرا برای تغییر انیمیشن با این روش تأخیر و جود داره؟

پاسخ:

۲ تیر ۹۶، ۲۱:۱۱
سلام امید عزیز
باید تیک HasExitTime رو بردارید
وگرنه ابتدا کامل انیمیشن اجرا میشه و سپس انیمیشن بعدی اجرا می شود
موفق باشید

خدا خیرتون بده موفق باشید مرسی ...

پاسخ:

۲۸ مهر ۹۶، ۱۸:۳۰
ممنون از نظرتون
موفق باشید

گرافیست ارشد

۲۰ خرداد ۹۷ ، ۱۹:۰۲
بسیار عالی ممنون استاد 🌹🌹🌹
http://goo.gl/jTaiAd
این لینک رو هم ببینید دوستان ، کاراکتر های خوب و جدید برای بازی سازی دو بعدی 👍👍❤

سلام خیلی عالیه.

لطفا از همین موضوع یه آموزش ویدیویی هم بزارید.

پاسخ:

۱۱ آذر ۹۸، ۲۰:۲۶
سلام امیر عزیز
خواهش می کنم، در کانال آموزش های زیادی منتشر شده است
@GameDevUnity
موفق باشید

سلام ببخشید یک مشکلی داشتم،برای انتخاب نقطه سلخ(مرکزیت چرخش)در یونیتی ابتدا گزینهsprite editor رو میزنم بعد از اینکه نقطه سلخ رو انتخاب میکنم و گزینه Apply رو میزنم نقطه روی محلی که من انتخاب کردم قرار نمیگیره و روی مرکز تصویر قرار میگره، باید چیکار کنم درست بشه؟؟؟؟


سلام

برای من Input کار نمیکنه و انگار اصلا یه همچین کلاسی وجود نداره.

اگه میشه راهنماییم کنید.

ممنون


این عکس های مرحله به مرحله راه رفتن رو از کجا باید دانلود کنیم؟


ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی

GameDeveloper

تمام آموزش های جدید در تلگرام آپلود شده اند https://t.me/GameDevUnity

آخرین مطلب
آخرین نظرات