ساختن کل نماهای دیداری و گرافیکهای جذاب و گیمپلی قدرتمند تنها نیمی از کار ساخت بازی است. بازی شما به یک صدای متناسب و جذاب نیاز دارد تا روح تازهای به آن دمیده شود. وقتی صدا را به بازی خود اضافه میکنید از میزان عمقی که به بازی شما میبخشند شوکه زده میشوید و وقتی تمام صداها را به آن اضافه میکنید انگار بازی دیگری ساختهاید و با نسخهی بدون صدا زمین تا آسمان فرق دارد.
اگر دولوپر یونیتی هستید احتمالا با ورود به تنظیمات صدا با گزینههای مختلفی روبهرو میشوید و باید بدانید مکانیزم هر کدام چیست و چه کارکردی دارد. یونیتی تقریبا از تمام فرمتهای صوتی پشتیبانی میکند و این کار را آسانتر کرده است. در این جا آموزش صدا در یونیتی به طور کامل به شما ارائه میشود تا بدون هرگونه مشکلی صدایی باکیفیت و قدرتمند روی بازی خود پیادهسازی کنید. قدم به قدم یاد بگیرید و جلو بروید.
موارد لازم
- ما در اینجا با یک پروژهی از قبل آماده شده که صداها روی آن پیادهسازی شدهاند تمام تنظیمات را به ترتیب انجام میدهیم و تغییرات آن را بررسی میکنیم. بهتر است همین الان دانلود کنید. (لینک دانلود در انتهای همین نوشته قرار داده شده است)
- ورژن یونیتی بالاتر از سال ۲۰۱۸
- محیط کدنویسی برای مشاهده نتایج دستوری صداهای بازی (به طور مثال Visual Studio)
شروع کار تنظیمات صدا در یونیتی
پروژهای که در انتهای این متن قرار داده شده است را دانلود کنید و پروژه را در یونیتی باز کنید.
برای اینکه شروع به کار کنید از مسیر Assets > RW > Scenes روی Main کلیک کنید و سپس روی دکمهی Play از نوار ابزار کلیک کنید.
تعدادی تراکتور و حیوانات مختلف را میبینید که از قبل طراحی شدهاند و جلو یک انبار قرار داده شدهاند. اگر Spacebar را فشار دهید حیوانات را نیز خواهید دید. ایدهی بازی این است که گاوها را صحیح و سالم به انبار برسانید و اجازه ندهید تراکتورها به گاوها بخورند. اگر تراکتور به گاو برخورد کند گاو میمیرد و نباید اجازه دهید این اتفاق بیفتد.
این گیمپلی در حال حاضر بیصدا است. نه صدای گاو میشنوید و نه حتی صدای تراکتور. حالا ما قصد داریم قدم به قدم صداهای لازم را اضافه کنیم و تست کنیم و تغییرات زیادی روی آن اعمال کنیم.
خوکها، گاوها و گوسفندان هر کدام صدای خاص خودشان را دارند و قرار است برای هر کدام صدای مربوط به آن قرار داده شود. اولین کار شما اضافه کردن صدای حیوانات به بازی است. در داخل پروژه Prefab های هر حیوان قرار داده شده است و از طریق مسیر Assets > RW > Prefabs میتوانید به آن دسترسی داشته باشید. حالا پریفب Cow را انتخاب کنید.
اولین چیزی که این پریفب نیاز دارد یک AudioSource به المانهاست تا بتوان صدا را روی آن پیادهسازی کرد. در بخش Inspector روی Add Component کلیک کنید و نام آن را Audio Source قرار دهید. بعد از آن روی منبع صدای ایجاد شده کلیک کنید.
الان پریفب گاو میتواند صداها را پخش کند. اما شما به یک Audioclip هم احتیاج دارید تا صدای آن روی گاو قرار بگیرد. اگر دقت کنید بخش AudioClip خالی است و باید چیزی را به آن اضافه کنید.
شاید برای شما سوال هم سوال باشد چه منبع صدا با کلیپ صدا چه تفاوتی دارد و چه مکانیزمی برای هر کدام میتوان در نظر گرفت. قبل از اینکه به توضیح کامل جزئیات تنظیمات بپردازیم یک نکته برای بازیسازان مستقل بسیار اهمیت دارد. احتمالا شما هم برای بازی خود از صداهای آماده موجود در اینترنت استفاده میکنید و یا یک صداساز در تیم خود دارید که این صداها را برای شما بسازد. شما میتوانید با دانلود صدای بازی در نرمافزار های طراحی صدای بازی تغییراتی را روی آن اعمال کنید و با بالا یا پایین بردن فرکانس صدا را کاملا شخصی سازی کنید. ما در وبسایت تیم بازیسازی اکسیو پکیجهای صدای رایگان برای شما قرار میدهیم تا به راحتی از آنها در بازی خود استفاده کنید.
لینک ورود به فروشگاه صدا: دانلود صدای بازی
افکت های صوتی در یونیتی و ادامه تنظیمات
برای ایجاد و پخش صدا شما از AudioSource و AudioClip استفاده میکنید. AudioSource در حقیقت موتور پخش صدا در فضای دوبعدی و یا سهبعدی است. در ۳D Space میزان شدت صدا بسته به نزدیک یا دور بودن جسم متغیر است. یعنی اگر کامپاننت شما ۱۰۰ متر از منبع صدا فاصله داشته باشد صدای آن کمتر از وقتی است که ۱۰ متر فاصله داشته باشد. به این مکانیزم AudioListener میگویند. (در بازیها AudioListener همیشه روی دوربین قرار میگیرد).
میتوانید یک AudioSource برای پخش صدا در محیط دو بعدی هم ایجاد کنید. اما برای محیط دو بعدی نمیتوان فاصلهای برای AudioListener تعیین کرد و هر صدا بسته به میزان حجم صدایی که به آن دادهاید بستگی دارد.
AudioClip اما همان فایلی است که روی یونیتی آپلود میکنید تا از طریق منبع صدا پخش شود.
یک مسئلهی مهم که باید حتما ذکر شود این است که AudioSource خودش یک کامپوننت است و به این معناست که از کلاس <MonoBehaviour> یونیتی استفاده میکند و میتواند مستقیما به <GameObject> متصل شود.
به فرم تخصصی میتوان اینگونه بیان کرد که AudioClip متغیری است که به AudioSource داده میشود. (هر AudioSource باید یک AudioClip بگیرد. شما هر از طریق ویرایشگر یونیتی و هم از طریق کدنویسی میتوانید این المانها را به هم وصل کنید.
نکتهی اساسی اینجاست که شما باید تعیین کنید این صداها چه زمانی پخش شوند که به آنها Triggers گفته میشود. Trigger ها دقیقا شرایطی هستند که تحت آنها AudioSource شروع به پخش صدای AudioClip میکند.
در اینجا از طریق ویرایشگر یونیتی و همچنین تغییرات جزئی در کدها به شما یاد خواهیم داد چگونه این صداها را در منبع صدا قرار دهید و شرایط لازم را برای آن لحاظ کنید. همانطور که میدانید Unity کاملا متنباز است و میتوانید از طریق کدنویسی برای آن شرایط مختلفی ایجاد کنید که از قبل در داخل آن قرار داده نشدهاند که به سطح مهارت برنامهنویسی شما بستگی دارد.
اضافه کردن صدا در یونیتی
حالا دوباره به سراغ فایل یونیتی پروژه میرویم و از مسیر Assets > RW > Sounds صدای moo را پیدا کنید. این صدا قرار است صدای گاو باشد. اگر دقت کنید هنوز هم در قسمت Inspector پریفب گاو هایلایت شده است. شما میتوانید صدای moo را به قسمت AudioClip درگ کنید.
مطمئن باشید که تیک Play On Awake را زده باشید.
این به این معناست که فایل صوتی شما به محض ایجاد شدن آبجکت پخش میشود و دقیقا چیزی است که به آن نیاز دارید. به طور مثال وقتی گاو به انبار میرسد صدای moo پخش میشود.
حالا همین کار را برای Sheep و Pig یعنی گوسفند و خوک هم انجام دهید.
هر بار برای تست به حالت Play بروید و آن را تست کنید. بهتر است در حین تست از هدفون استفاده کنید تا تمام جزئیات صدا را به دقت بشنوید.
بخش اول در همینجا به اتمام رسید. برای خواندن بخشهای بعدی روی ادامه مطلب تنطیمات صدا در یونیتی کلیک کنید: تنظیم صدا در یونیتی – بخش دوم
اگر میخواهید مراحل گفته شده را روی پکیج یونیتی تست کنید این پکیج را دانلود کنید:
تنها صداست که میماند. به صدا ایمان بیاور.