انواع load Type ها و Compression Formatها:
- compression in memory
کلیپ صوتی در ram ذخیره می شود و هنگام پخش فشرده نخواهد شد و برای بازی به حافظه اضافی نیست.
- streaming
کلیپ صوتی در حافظه پایدار دستگاه (هارد دیسک ، مموری و … ) ذخیره میشود و در حالت پخش stream می شود. برای ذخیرهسازی و اجرا شدن نیاز به Ram ندارد ( حداقل این مقدار قابل توجه نیست).
- Decompress On Load
کلیپ صوتی در Ram بصورت فشرده نشده ذخیره میشود، این گزینه به بیشترین مقدار حافظه نیاز دارد، اما اجرای آن به قدرت CPU بیشتری نسبت به حالات قبل نیاز ندارد (یا همان حالت استراحت است).
موسیقی یا صداهای محیط:
مطمئناً ما نمیخواهیم موسیقی پس از پخش در حافظه فشرده شود، پس دو گزینه داریم:
- استفاده از Load Type: Streaming و Compression Format: Vorbis
این ترکیب از کمترین حافظه استفاده می کند اما به قدرت پردازنده و توان ورودی و خروجی دیسک نیاز دارد.
- استفاده از Load Type: Compressed In Memory و Compression Format: Vorbis
تنها تفاوت با روش اول این است که I/O دیسک را برخی نیازهای حافظه مبادله می کند.
نکته: توجه داشته باشید که میتوانید در ازای کیفیت صدا، اسلایدر Quality را تنظبم کنیم تا اندازه کلیپ فشرده شده کاهش یابد. معمولا 100 درصد خیلی زیاد است و 70 درصد توصیه می شود.
نکته: اگر دو تا کلیپ موسیقی محیط در حال اجرا داشته باشید مقدار خیلی زیادی از قدرت CPU را میگیرد.
جلوه های صوتی:
جلوه های صوتی معمولاً کلیپ های صوتی کوتاه یا متوسط هستند. همچنین این موارد اغلب به ندرت قابل پخش هستند و در اینجا چند قانون آورده شده است:
- برای کلیپهای صوتی که اغلب پخش میشوند و کوتاه هستند از قالب Decompress On Load و PCM یا ADPCM برای فشرده سازی استفاده می شود. با انتخاب PCM فشرده سازی نیاز نیست و اگر کلیپ صوتی کوتاه باشد، خیلی سریع بارگیری میشود. همچنین میتوانید از ADPCM استفاده کنید؛ به باز کردن از حالت فشرده نیاز دارد اما از Vorbis خیلی سبکتر است.
- برای کلیپ های صوتی که اغلب پخش میشوند و متوسط هستند از compression in memory و ADPCM برای فشرده سازی استفاده میکنیم. ADPCM حدوداً 3ونیم برابر کوچکتر از PCM خام است و الگوریتم بازکردن فشردهسازی آن اندازه Vorbis مصرف نمیکند.
- برای کلیپ های صوتی که به ندرت پخش میشوند و کوتاه هستند هم مانند (2) عمل میکنیم.
- برای کلیپهای صوتی که به ندرت پخش میشوند و متوسط هستند از compression in memory و Vorbis استفاده میشود. این SFX ممکن است خیلی طولانی باشد تا با استفاده از ADPCM ذخیره و به ندرت پخش شود. بنابراین فشار اضافه ای که به CPU برای باز کردن فشردهسازی میآید اهمیتی ندارد.
گزینه Preload Audio Data:
در صورت فعال بودن هنگام بارگذاری Scene؛ کلیپ صوتی از قبل بارگیری میشود. این بهصورت پیشفرض روشن است. که نشان دهنده رفتار استاندارد Unity است که در هنگام اجرای Scene از قبل تمام Audio Clipها بارگذاری را تمام کردهاند. اگر این متغیر فعال نباشد با اولین Play یا Play On shot بارگذاری میشود. یا میتوانید از AudioSource.LoadAudioData() برای بارگیری و با استفاده از تابع AudioSource.UnloadAudioData() فضا را آزاد کنید.
در انتها تنظیماتی که با تجربه ای که بدست آمده و ازش استفاده میکنم را بصورت خلاصه میذارم:
صدای کارکترها:
صداهای بازی:
موزیک :
منابع :
1- http://blog.theknightsofunity.com/wrong-import-settings-killing-unity-game-part-2/
2- https://docs.unity3d.com/Manual/class-AudioClip.html
نویسنده : سعید علی اکبری