مراحل طراحی بازی در یونیتی- قسمت سوم

نکته مراحلی که در ادامه گفته شده است ممکن است به تناسب روند توسعه بارها تکرار شوند. چرا که طراحی بازی یک روند صفر تا صد نیست و برای مثال ممکن است اضافه کردن یک قابلیت به بازی در نسخه‌ی جدیدترش نیازمند انجام تعدادی از این مراحل باشد. همچنین لزومی بر رعایت ترتیب مراحل مطابق شماره‌گذاری نیست و این شماره‌گذاری تنها برای درک بهتر روند توسعه و طراحی بازی انجام شده است.

مرحله‌ی اول: وارد کردن assetهای بازی به پروژه

[عکس: AssetWorkflowImportingFiles.png]

به هر فایلی که به پروژه‌ی خود وارد می‌کنیم asset گفته می‌شود. این فایل می‌تواند اسپرایت، صوت، ویدیو، فونت، اسکریپت و یا هر فایل دیگری که ممکن است در توسعه‌ی یک بازی استفاده شود باشد. یک asset لزوماً در خروجی کاربر استفاده نمی‌شود؛ بلکه ممکن است افزونه‌ای برای ایجاد یک پنجره‌ی اختصاصی در ادیتور و یا ایجاد ابزاری جدید در آن باشد.
وارد کردن asset به پروژه به دو طریق ممکن است؛ راه اول drag and drop مستقیم فایل‌ها به پنجره‌ی Project بوده و راه دوم استفاده از پکیج‌های یونیتی است.

پکیج یونیتی

فایلی با فرمت unitypackage بوده که در آن فایل‌های مختلف asset قرار داده شده است. این فایل‌ها حتی می‌توانند سلسله‌مراتب داشته و در فولدرهای مختلف قرار گرفته باشند که پس از وارد شدن به پروژه با همان ساختار فولدر در پروژه قرار خواهند گرفت. فایل پکیج یونیتی شباهت بسیار زیادی به فایل‌های زیپ دارد.
در صورت باز کردن پکیج یونیتی در ویندوز و یا انتخاب آن از طریق منوی Assets > Import Package > Custom Package پنجره‌ای در ادیتور باز شده که به کاربر امکان این را می‌دهد که تنها فایل‌هایی را که نیاز دارد از پکیج انتخاب کرده و به پروژه اضافه کند:

[عکس: NewInstallImportPackageDialog.png]

در این پنجره assetهای موردنیاز خود از پکیج را با تیک‌دار کردنشان انتخاب کرده و بر روی Import کلیک می‌کنیم.


Asset Store

یونیتی دارای فروشگاهی تحت عنوان Asset Store بوده که در آن پکیج‌های یونیتی (رایگان و غیررایگان) در دسته‌بندی‌های مختلف قابل دریافت است. برای دسترسی به این فروشگاه پنجره‌ی Asset Store را از طریق منوی Window و گزینه‌ی General فراخوانی کنید. بعد از این کار تنها با وارد شدن به اکانت یونیتی در ادیتور می‌توان پکیج‌های رایگان Asset Store را دانلود کرد. البته برای دریافت asset از استور یونیتی در ایران به ابزارهای عبور از تحریم احتیاج است.
نکته پکیج‌های دانلود شده از Asset Store در این مسیر قرار می‌گیرند:
ویندوز:
کد:C:\Users\accountName\AppData\Roaming\Unity\Asset Store
مک:
کد:~/Library/Unity/Asset Store

Standard Assets

یونیتی در هر نسخه تعدادی asset کاربردی و مفید در روند توسعه را به صورت پکیج و تحت عنوان Standard Assets توسعه می‌دهد. البته این assetها در فایل نصب یونیتی قرار ندارند و باید به صورت جداگانه از آرشیو دانلود یونیتی دریافت شوند. در صورتی که Standard Assets بر روی یونیتی نصب باشد می‌توان آن‌ها را هنگام ایجاد پروژه در پنجره‌ی ساخت پروژه‌ی جدید و یا پس از ایجاد پروژه از طریق منوی Assets و گزینه‌ی Import Package به پروژه اضافه کرد.

[عکس: ImportPackageMenu.png]

مرحله‌ی دوم: تنظیم کردن assetها

بعد از وارد کردن assetها باید آن‌ها را متناسب با وظیفه‌ای که در بازی دارند تنظیم کرد. این تنظیمات از طریق کلیک بر روی asset در پنجره‌ی Project و تغییر مقادیر فیلدهای مختلف ظاهر شده در پنجره‌ی Inspector صورت می‌پذیرد. این تغییرات در فایل متای هم‌نام asset که در کنار آن قرار دارد ذخیره می‌شوند.
نکته در صورت انتخاب چند asset هم‌نوع و تغییر مقدار فیلدهای Inspector تغییرات فوق بر روی تمام assetهای انتخاب شده اعمال می‌شود.
فیلدهای Inspector بسته به فرمت فایل asset انتخاب شده تعیین می‌شوند. در ادامه به بررسی دو حالت مختلف Inspector در مواجهه با فرمت‌های مختلف asset می‌پردازیم:

فایل‌های تصویری

بعد از انتخاب هرنوع فایل تصویری (مثل png یا jpg) در پنجره‌ی Project، پنجره‌ی Inspector مشابه زیر تغییر خواهد کرد:

[عکس: AssetWorkflowImportSettings.png]

اولین فیلد Texture Type است که وظیفه‌ی تصویر در پروژه را تعیین می‌کند. در صورتی که قصد دارید از تصویر به صورت مستقیم در صحنه استفاده کنید (که در بازی‌های دوبعدی در اکثر مواقع همینطور است) این گزینه باید بر روی Sprite قرار داده شده باشد. در صورتی که پروژه دوبعدی باشد هنگام وارد کردن فایل‌های تصویری به آن این گزینه به طور خودکار انتخاب خواهد شد.
اغلب فیلدهای دیگر بسته به گزینه‌ای که در قسمت Texture Type انتخاب شده است تغییر خواهند کرد. ما در ادامه تعدادی از فیلدهایی را بررسی می‌کنیم که پس از انتخاب گزینه‌ی Sprite نمایش داده می‌شوند:

مراحل طراحی بازی در یونیتی- قسمت سوم

Sprite Mode: با استفاده از گزینه می‌توان تعیین کرد که این فایل تنها شامل یک اسپرایت است (Single) و یا چندین اسپرایت را در خود جای داده است (Multiple و Polygon).

قرار دادن چندین اسپرایت بازی در یک فایل تصویری امری متداول است. این کار برای کاهش حجم بازی و کاهش تعداد فراخوانی‌های مرتبط با رندر (drawcall) صورت می‌پذیرد. به تصاویری که چندین اسپرایت در آن قرار دارند texture atlas گفته می‌شود.

مراحل طراحی بازی در یونیتی- قسمت سوم

یکی از texture atlasهای بازی Angry Birds Rio

تفکیک کردن spriteهای یک texture atlas از طریق ابزاری به نام Sprite Editor صورت می‌پذیرد که آن را در بخش قابلیت‌های یونیتی بررسی می‌کنیم.

Packing Tag: یونیتی ابزاری تحت عنوان Sprite Packer دارد که اسپرایت‌های تفکیک شده را به جهت بهینه‌سازی مصرف منابع در یک texture atlas ادغام می‌کند. در این ابزار فایل‌های تصویری که Packing Tag یکسان داشته باشند در یک گروه برای ادغام قرار می‌گیرند.

Pixels Per Unit: این فیلد اندازه‌ی اسپرایت در صحنه را بر حسب واحد «پیکسل بر واحد یونیتی» تعیین می‌کند. نسبت این عدد با اندازه‌ی اسپرایت به صورت عکس می‌باشد.

Pivot: این فیلد مرکز ثقل اسپرایت را تعیین می‌کند. این گزینه از پنجره‌ی Sprite Editor نیز قابل دسترسی است.

Filter Mode: این فیلد تعیین می‌کند که اگر اسپرایت بیش از اندازه بزرگ شود پیکسل‌های تشکیل‌دهنده‌ی آن تغییری نکرده و به صورت مربع‌های دندانه‌دندانه نمایش داده شده (Point) یا کمی مات شوند (Bilinear). در صورتی که اسپرایت‌ها از کیفیت مطلوب برخوردار باشند نیازی به استفاده از گزینه‌ی Bilinear نیست.

نکته تعدادی از فیلدهای inspector در یک جعبه قرار دارند که در بالای آن سربرگی با نام Default و تعدادی سربرگ دیگر با آیکون پلتفرم‌هایی قرار گرفته که کامپوننت آن‌ها بر روی ادیتور نصب شده است.

مراحل طراحی بازی در یونیتی- قسمت سوم

با استفاده از این سربرگ‌ها می‌توان در صورت لزوم مقادیر این فیلدها را براساس پلتفرم هدف تنظیم کرد. برای این کار کافی است که در سربرگ پلتفرم موردنظر گزینه‌ی Override را فعال کرده و مقادیر دلخواه را وارد کنیم تا در هنگام خروجی گرفتن برای آن پلتفرم خاص مقادیر فوق به مقادیر پیش‌فرض (موجود در سربرگ Default) ارجحیت داده شوند.

فایل‌های صوتی

بعد از انتخاب هرنوع فایل صوتی در پنجره‌ی Project، پنجره‌ی Inspector مشابه زیر تغییر خواهد کرد:

مراحل طراحی بازی در یونیتی- قسمت سوم

پنجره‌ی Inspector فایل‌های صوتی دارای فیلدی با عنوان Force To Mono بوده که تک کاناله (مونو) کردن صداهای چندکاناله (استریو) را فراهم می‌کند. این امر باعث می‌شود که صدا در هر نقطه از جهان بازی به یک صورت شنیده شود و بیشتر در بازی‌های دوبعدی استفاده می‌شود.
این پنجره دارای فیلدهایی برای فشرده‌سازی فایل و تعیین میزان کیفیت بسته به پلتفرم خروجی نیز می‌باشد.

نکته پس از تنظیم کردن assetها برای اعمال تغییرات داده شده به فایل متای asset بر روی دکمه‌ی Apply واقع در انتهای Inspector کلیک کنید (در صورتی که توسعه‌دهنده بر روی Apply کلیک نکرده باشد ادیتور هنگام آغاز عملیاتی دیگر توسط توسعه‌دهنده در یک مسیج باکس به وی یادآوری می‌کند که تغییرات ذخیره نشده‌اند).


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