← همهٔ نوشته‌هاOGG vs WAV vs FLAC for Game Audio: What to Ship
بخوان به:EnglishفارسیFrançais

OGG یا WAV یا FLAC برای صدای بازی؟ کدام فرمت را عرضه کنیم

· 8 دقیقه مطالعه· 1 بازدیدgame audioogg vs wavflacaudio formatsgodotunity

برای بیشتر بازی‌ها، OGG Vorbis را برای موسیقی و صدای محیطِ بلند و WAV بدون فشرده‌سازی را برای افکت‌های کوتاه و پرتکرار عرضه کنید. FLAC را به‌عنوان آرشیو و مستر بدون اتلاف نگه دارید، نه فرمت زمان اجرا، چون Godot و Unreal به‌صورت بومی ایمپورتش نمی‌کنند. وقتی لوپ باید دقیقاً در حد نمونه (sample) باشد WAV و وقتی حجم دانلود یا حافظه مهم‌تر است OGG را انتخاب کنید.

آخرین بازبینی: مهر ۱۴۰۵

یک بازی کدام فرمت صوتی را باید عرضه کند؟

پاسخ صادقانه «بیشتر از یکی» است. یک بازی معمولی چند ساعت موسیقی، چند ساعت صدای محیط و هزاران افکت کوچک را ترکیب می‌کند. هر کدام نیاز متفاوتی دارند و فرمت متفاوتی می‌ارزند:

همه‌ی مطالب زیر راهنماست. اعداد دقیق با محتوا و تنظیمات انکودر عوض می‌شود، پس با ترک‌های خودتان آزمایش کنید.

OGG در برابر WAV در برابر FLAC: مقایسه

WAV (PCM)FLACOGG Vorbis
فشرده‌سازینداردبدون اتلاف (lossless)با اتلاف (lossy)
حجم معمول نسبت به WAV ۱۶ بیتی100%اغلب حدود نصفاغلب حدود یک‌دهم در کیفیت متوسط
کیفیت شنیداریدقیقدقیقدر تنظیمات کیفیت بالاتر بسیار خوب
نقطه‌ی لوپ داخلیبله، با بخش smplاستاندارد ندارداستاندارد ندارد (تگ‌ها گسترده خوانده نمی‌شوند)
هزینه‌ی دیکدنداردکمکم تا متوسط
Godot 4بومیفرمت ایمپورت بومی نیستبومی
Unityبومیایمپورت می‌شودبومی
Unrealبومیفرمت ایمپورت پیش‌فرض نیستفرمت ایمپورت پیش‌فرض نیست

یک WAV استریو، 16 بیت و 44.1 kHz حدود 10 MB در دقیقه حجم دارد. با 24 بیت و 48 kHz به حدود 17 MB در دقیقه می‌رسد. یک فایل Vorbis با حدود 160 kbps تقریباً 1.2 MB در دقیقه است. ده ترک سه‌دقیقه‌ای در قالب WAV حدود 300 MB و در قالب Vorbis حدود 36 MB می‌شود، که فرق بین یک دانلود راحت موبایل و یک دانلود دردسرساز است.

آیا فشرده‌سازی lossy موسیقی بازی را خراب می‌کند؟

به‌ندرت. Vorbis در کیفیت متوسط تا بالا برای بیشتر بازیکنان روی بیشتر اسپیکرها شفاف است و موسیقی بازی معمولاً زیر افکت‌ها و دیالوگ شنیده می‌شود. مشکل‌ها در دو جا پیدا می‌شوند:

  1. بیت‌ریت خیلی پایین، که سنج‌ها و پدهای کشیده محو می‌شوند و کیفیتی «چرخان» پیدا می‌کنند.
  2. انکود مکرر. اگر یک فایل Vorbis را به فرمت lossy دیگری تبدیل کنید، خطاها روی هم جمع می‌شوند. فقط یک بار و از مستر انکود کنید.

اگر مطمئن نیستید، یک لوپ آزمایشی را با دو سطح کیفیت انکود کنید، یک دقیقه با هدفون لوپش کنید و به گوش‌هایتان اعتماد کنید. پایین‌ترین تنظیمی را انتخاب کنید که از تنظیم بالاتر تشخیص‌ناپذیر باشد.

لوپ و پخش بدون وقفه (gapless) در هر فرمت چه فرقی دارد؟

فرمت‌ها دقیقاً اینجا گاز می‌گیرند، چون موسیقی در بازی لوپ می‌شود و کلیک در محل اتصال شایع‌ترین باگ صوتی پروژه‌های ایندی است.

برای موسیقی لوپی فشرده، لوپ را به تعداد صحیحی میزان رندر کنید تا انتها از نظر موسیقایی هم به ابتدا وصل شود. همین ایده در موسیقی تطبیقی ۱۰۱ هم آمده، جایی که همه‌ی وضعیت‌ها طول لوپ یکسان دارند تا ترنزیشن‌ها هم‌فاز بمانند.

Godot و Unity و Unreal هر فرمت را چطور مدیریت می‌کنند؟

Godot 4 فایل‌های WAV و Ogg Vorbis (و MP3) را ایمپورت می‌کند. ایمپورت WAV حالت لوپ را در پنل Import نشان می‌دهد و در صورت وجود، لوپ smpl خوانده می‌شود. برای Ogg، لوپ را روی استریم ایمپورت‌شده تنظیم می‌کنید. اتصال گام‌به‌گام در آموزش موسیقی تطبیقی Godot آمده است.

Unity فایل‌های WAV، OGG، FLAC و غیره را می‌پذیرد و هنگام ایمپورت طبق تنظیمات هر کلیپ دوباره انکود می‌کند. مهم‌ترین تنظیم نوع بارگذاری (load type) است:

Unity هیچ نقطه‌ی لوپی از Vorbis نمی‌خواند، پس لوپ همان کل کلیپ است. برای کنترلری که این را مدیریت می‌کند، نحوه‌ی افزودن موسیقی تطبیقی در Unity را ببینید.

Unreal Engine مورد دردسرساز است. Unreal پیش‌فرض WAV را ایمپورت می‌کند و در زمان پکیج کردن به فرمت فشرده‌ی خودش می‌پزد، پس فرمت منبعی که در پروژه می‌گذارید عملاً WAV است. Unreal پیش‌فرض نمی‌تواند .ogg را ایمپورت کند، پس اگر ابزارتان OGG خروجی می‌دهد، برای Unreal به WAV تبدیل کنید یا از یک پلاگین ایمپورت Vorbis استفاده کنید. مستندات فعلی نسخه‌ی موتورتان را بررسی کنید، چون پشتیبانی ایمپورت بین نسخه‌ها عوض می‌شود.

استریم یا decompress در بارگذاری؟

تصمیم بیشتر به طول کلیپ و دفعات پخش بستگی دارد:

  1. کمتر از حدود 2 ثانیه و پرتکرار: به PCM دیکامپرس کنید و در حافظه نگه دارید. قدم‌ها، شلیک‌ها، کلیک‌ها.
  2. چند ثانیه تا حدود 20 تا 30 ثانیه: فشرده در حافظه نگه دارید، یا اگر حافظه اجازه می‌دهد دیکامپرس کنید. استینگرها، لوپ‌های کوتاه صدای محیط، خطوط دیالوگ.
  3. بلندتر از آن: از دیسک استریم کنید. موسیقی، صدای محیط بلند، صدای کات‌سین.

این آستانه‌ها قاعده‌ی سرانگشتی هستند. روی ضعیف‌ترین دستگاه هدف پروفایل بگیرید، چون محدودیت واقعی هر کدام از CPU، RAM یا سرعت دیسک است که زودتر تمام شود.

موبایل چطور؟

موبایل وزن‌ها را عوض می‌کند. حجم ذخیره‌سازی و دانلود مهم است، RAM محدود است و دیکد کردن با همه‌ی کارهای دیگر برای باتری رقابت می‌کند. یک پیش‌فرض قابل‌قبول این است: Vorbis برای موسیقی (استریم‌شده) و مجموعه‌ی کوچکی از افکت‌های کوتاه به‌صورت PCM یا کدک کم‌هزینه‌ی بومی موتور. از دیکد هم‌زمان چند ترک بلند فشرده بپرهیزید. اگر استم‌های تطبیقی را لایه می‌کنید، یادتان باشد هر استریم هم‌زمان یعنی یک دیکودر در حال اجرا، پس یک ترک چهارلایه حدود چهار برابر کار دیکد یک ترک را می‌طلبد.

نرخ نمونه‌برداری و عمق بیت کدام؟

44.1 kHz عرضه کنید، مگر اینکه پایپ‌لاین شما روی 48 kHz استاندارد شده باشد. بالاتر از 48 kHz برای پخش بازی فقط حجم اضافه می‌کند و برای موسیقی و افکت فایده‌ی شنیدنی ندارد. درباره‌ی 16 بیت در برابر 24 بیت: در 24 بیت تولید کنید، در 16 بیت عرضه کنید. فضای هدروم اضافه موقع میکس کمک می‌کند، اما بازیکن در فایل نهایی نمی‌شنودش و WAV را 50% بزرگ‌تر می‌کند.

Mowjera چطور این فرمت‌ها را خروجی می‌دهد

Mowjera، یک DAW مرورگرمحور برای موسیقی تطبیقی بازی، WAV را با 16 یا 24 بیت و 44.1 یا 48 kHz و همراه با بخش لوپ smpl خروجی می‌دهد تا موتورها لوپ را ببینند. همچنین FLAC و OGG Vorbis خروجی می‌دهد. کیفیت Vorbis از -1 تا 10 است و پیش‌فرض حدود 160 kbps. رندرر داخلی در 44.1 kHz کار می‌کند، پس خروجی 48 kHz ریسمپل می‌شود و جزئیات فرکانس بالای جدیدی اضافه نمی‌کند. لوپ هر وضعیت به تعداد صحیحی میزان رندر می‌شود. خروجی MP3، Opus یا AAC وجود ندارد. اگر می‌خواهید امتحانش کنید، ادیتور را باز کنید و یک لوپ را در دو فرمت خروجی بگیرید و مقایسه کنید.

سوالات متداول

برای موسیقی بازی OGG بهتر است یا WAV؟

برای بیشتر موسیقی‌های عرضه‌شده OGG Vorbis بهتر است، چون خیلی کوچک‌تر است و استریم خوبی دارد. وقتی لوپ باید دقیق در حد نمونه باشد یا هزینه‌ی دیکد صفر می‌خواهید، WAV بهتر است. مصالحه‌ی رایج این است: WAV برای افکت‌های کوتاه و استینگرهای لوپی فشرده، و OGG برای ترک‌های پس‌زمینه‌ی بلند.

آیا Unreal Engine از فایل‌های OGG پشتیبانی می‌کند؟

Unreal پیش‌فرض فایل‌های .ogg را مستقیم ایمپورت نمی‌کند. به‌جایش WAV ایمپورت کنید و بگذارید Unreal هنگام cook کردن پروژه فشرده‌اش کند، یا یک پلاگین ایمپورت Vorbis اضافه کنید. همیشه با مستندات نسخه‌ی موتورتان تطبیق دهید، چون پشتیبانی ایمپورت بین نسخه‌ها ممکن است عوض شود.

آیا FLAC برای بازی خوب است؟

FLAC برای آرشیو مسترها عالی است، چون بدون اتلاف و حدود نصف WAV است. به‌عنوان فرمت زمان اجرا ضعیف‌تر است: Godot و Unreal پیش‌فرض آن را بومی ایمپورت نمی‌کنند و وقتی موتور دوباره انکودش می‌کند، نسبت به WAV چیزی به دست نمی‌آورید. FLAC را برای ذخیره و تحویل به همکاران نگه دارید.

چرا لوپ OGG من کلیک دارد؟

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

برای موسیقی بازی با OGG از چه بیت‌ریتی استفاده کنیم؟

از حدود 128 تا 192 kbps (کیفیت Vorbis بین 4 و 6) شروع کنید و بعد تست کنید. برای صدای محیط پس‌زمینه پایین‌تر هم مشکلی نیست، در حالی که سازهای تکِ بی‌پوشش و سنج‌ها اول از همه آرتیفکت را لو می‌دهند. پایین‌ترین کیفیتی را انتخاب کنید که با هدفون روی یک قسمت لوپ‌شده فرقش را نمی‌شنوید.

اشتراک‌گذاری

به‌جای خواندن، بشنوش

هر اسکور در بازار مستقیم در مرورگرتان پخش می‌شود — و آهنگساز ✨ هوش مصنوعی از یک جمله یک اسکور تطبیقی پیش‌نویس می‌کند.

مرور بازار

از وبلاگ

اسکورهای مشابه