Bagikan melalui


Audio untuk permainan

Pelajari cara mengembangkan dan menggabungkan musik dan suara ke dalam game DirectX Anda, dan cara memproses sinyal audio untuk membuat suara dinamis dan posisi.

Untuk pemrograman audio, sebaiknya gunakan pustaka XAudio2 di DirectX, atau API grafik Windows Runtime Audio. Kami menggunakan XAudio2 di sini. XAudio2 adalah pustaka audio tingkat rendah yang menyediakan fondasi pemrosesan dan pencampuran sinyal untuk game, dan mendukung berbagai format.

Anda juga dapat menerapkan pemutaran suara dan musik sederhana dengan Microsoft Media Foundation. Microsoft Media Foundation dirancang untuk pemutaran file dan streaming media, baik audio maupun video, tetapi juga dapat digunakan dalam game, dan sangat berguna untuk adegan sinematik atau komponen non-interaktif dari game Anda.

Sekilas konsep

Berikut adalah beberapa konsep pemrograman audio yang kami gunakan di bagian ini.

  • Sinyal adalah unit dasar pemrograman suara, dianalogikan dengan piksel dalam grafik. Prosesor sinyal digital (DSP) yang memprosesnya seperti shader piksel audio game. Mereka dapat mengubah sinyal, atau menggabungkannya, atau memfilternya. Dengan memprogram ke DSP, Anda dapat mengubah efek suara dan musik game Anda dengan kompleksitas sesedikit atau sebanyak yang Anda butuhkan.
  • Suara adalah komposit submix dari dua sinyal atau lebih. Ada 3 jenis objek suara XAudio2: sumber, submix, dan suara penguasaan. Suara sumber beroperasi pada data audio yang disediakan oleh klien. Suara sumber dan submix mengirimkan outputnya ke satu atau beberapa submix atau suara penguasaan. Submix dan suara mastering mencampur audio dari semua suara yang memberinya makan, dan beroperasi pada hasilnya. Menguasai suara menulis data audio ke perangkat audio.
  • Pencampuran adalah proses menggabungkan beberapa suara diskrit, seperti efek suara dan audio latar belakang yang diputar kembali dalam adegan, ke dalam satu aliran. Submixing adalah proses menggabungkan beberapa sinyal diskrit, seperti suara komponen kebisingan mesin, dan membuat suara.
  • Format audio. Efek musik dan suara dapat disimpan dalam berbagai format digital untuk permainan Anda. Ada format yang tidak dikompresi, seperti WAV, dan format terkompresi seperti MP3 dan OGG. Semakin banyak sampel dikompresi -- biasanya ditunjuk oleh laju bitnya, di mana semakin rendah laju bit, semakin kehilangan kompresi -- semakin buruk keakuratan yang dimilikinya. Fidelitas dapat bervariasi di seluruh skema kompresi dan laju bit, jadi bereksperimenlah dengan mereka untuk menemukan apa yang paling sesuai untuk game Anda.
  • Laju dan kualitas sampel. Suara dapat diambil sampelnya pada tingkat yang berbeda, dan suara yang diambil sampelnya pada tingkat yang lebih rendah memiliki keakuratan yang jauh lebih buruk. Tingkat sampel untuk kualitas CD adalah 44,1 Khz (44100 Hz). Jika Anda tidak memerlukan keakuratan tinggi untuk suara, Anda dapat memilih laju sampel yang lebih rendah. Tarif yang lebih tinggi mungkin sesuai untuk aplikasi audio profesional, tetapi Anda mungkin tidak membutuhkannya kecuali game Anda menuntut suara keakuratan profesional.
  • Emiter suara (atau sumber). Di XAudio2, emiter suara adalah lokasi yang memancarkan suara, baik itu hanya kebisingan latar belakang atau trek batu menggeser yang dimainkan oleh jukebox dalam game. Anda menentukan emiter berdasarkan koordinat dunia.
  • Pendengar suara. Pendengar suara seringkali merupakan pemutar, atau mungkin entitas AI dalam game yang lebih canggih, yang memproses suara yang diterima dari pendengar. Anda dapat men-submix suara itu ke aliran audio untuk pemutaran ke pemutar, atau Anda dapat menggunakannya untuk mengambil tindakan dalam game tertentu, seperti membangunkan penjaga AI yang ditandai sebagai pendengar.

Pertimbangan Desain

Audio adalah bagian yang sangat penting dari desain dan pengembangan game. Banyak gamer dapat mengingat game biasa-biasa saja yang ditinggikan ke status legendaris hanya karena soundtrack yang berkesan, atau pekerjaan suara dan pencampuran suara yang hebat, atau produksi audio bintang secara keseluruhan. Musik dan suara mendefinisikan kepribadian permainan, dan membangun motif utama yang mendefinisikan permainan dan membuatnya terpisah dari game serupa lainnya. Upaya yang Anda habiskan untuk merancang dan mengembangkan profil audio game Anda akan sangat sepadan.

Audio 3D posisi dapat menambahkan tingkat perendaman di luar yang disediakan oleh grafik 3D. Jika Anda mengembangkan game kompleks yang mensimulasikan dunia, atau yang menuntut gaya sinematik, pertimbangkan untuk menggunakan teknik audio posisi 3D untuk benar-benar menarik pemain.

Peta strategi pengembangan audio DirectX

Sumber daya konseptual XAudio2

XAudio2 adalah pustaka pencampuran audio untuk DirectX, dan terutama ditujukan untuk mengembangkan mesin audio berkinerja tinggi untuk game. Untuk pengembang game yang ingin menambahkan efek suara dan musik latar belakang ke game modern mereka, XAudio2 menawarkan grafik audio dan mesin pencampuran dengan latensi rendah dan dukungan untuk buffer dinamis, pemutaran sampel-akurat sinkron, dan konversi laju sumber implisit.

Topik Deskripsi

Pengantar XAudio2

Topik ini menyediakan daftar fitur pemrograman audio yang didukung oleh XAudio2.

Memulai XAudio2

Topik ini menyediakan informasi tentang konsep XAudio2 utama, versi XAudio2, dan format audio RIFF.

Konsep Pemrograman Audio Umum

Topik ini memberikan gambaran umum tentang konsep audio umum yang harus dikenal pengembang audio.

XAudio2 Voices

Topik ini berisi gambaran umum suara XAudio2, yang digunakan untuk submix, beroperasi, dan menguasai data audio.

Panggilan Balik XAudio2

Topik ini mencakup panggilan balik XAudio 2, yang digunakan untuk mencegah jeda dalam pemutaran audio.

Grafik Audio XAudio2

Topik ini mencakup grafik pemrosesan audio XAudio2, yang mengambil serangkaian aliran audio dari klien sebagai input, memprosesnya, dan memberikan hasil akhir ke perangkat audio.

Efek Audio XAudio2

Topik ini mencakup efek audio XAudio2, yang mengambil data audio masuk dan melakukan beberapa operasi pada data (seperti efek gaung) sebelum meneruskannya.

Streaming Data Audio dengan XAudio2

Topik ini mencakup streaming audio dengan XAudio2.

X3DAudio

topik ini mencakup X3DAudio, API yang digunakan bersama dengan XAudio2 untuk membuat ilusi suara yang berasal dari titik dalam ruang 3D.

Referensi Pemrograman XAudio2

Bagian ini berisi referensi lengkap untuk API XAudio2.

Sumber daya "cara" XAudio2

Topik Deskripsi

Cara: Menginisialisasi XAudio2

Pelajari cara menginisialisasi XAudio2 untuk pemutaran audio dengan membuat instans mesin XAudio2, dan membuat suara penguasaan.

Cara: Memuat File Data Audio di XAudio2

Pelajari cara mengisi struktur yang diperlukan untuk memutar data audio di XAudio2.

Cara: Memainkan Suara dengan XAudio2

Pelajari cara memutar data audio yang dimuat sebelumnya di XAudio2.

Cara: Menggunakan Submix Voices

Pelajari cara mengatur grup suara untuk mengirim outputnya ke suara submix yang sama.

Cara: Menggunakan Panggilan Balik Suara Sumber

Pelajari cara menggunakan panggilan balik suara sumber XAudio2.

Cara: Menggunakan Panggilan Balik Mesin

Pelajari cara menggunakan panggilan balik mesin XAudio2.

Cara: Membangun Grafik Pemrosesan Audio Dasar

Pelajari cara membuat grafik pemrosesan audio, yang dibangun dari satu suara penguasaan dan satu suara sumber.

Cara: Menambahkan atau Menghapus Suara Secara Dinamis Dari Grafik Audio

Pelajari cara menambahkan atau menghapus suara submix dari grafik yang telah dibuat mengikuti langkah-langkah dalam Cara: Membangun Grafik Pemrosesan Audio Dasar.

Cara: Membuat Rantai Efek

Pelajari cara menerapkan rantai efek ke suara untuk memungkinkan pemrosesan kustom data audio untuk suara tersebut.

Cara: Membuat XAPO

Pelajari cara mengimplementasikan IXAPO untuk membuat objek pemrosesan audio XAudio2 (XAPO).

Cara: Menambahkan Dukungan Parameter Run-time ke XAPO

Pelajari cara menambahkan dukungan parameter run-time ke XAPO dengan mengimplementasikan antarmuka IXAPOParameters .

Cara: Menggunakan XAPO di XAudio2

Pelajari cara menggunakan efek yang diimplementasikan sebagai XAPO dalam rantai efek XAudio2.

Cara: Menggunakan XAPOFX di XAudio2

Pelajari cara menggunakan salah satu efek yang disertakan dalam XAPOFX dalam rantai efek XAudio2.

Cara: Mengalirkan Suara dari Disk

Pelajari cara melakukan streaming data audio di XAudio2 dengan membuat utas terpisah untuk membaca buffer audio, dan menggunakan panggilan balik untuk mengontrol utas tersebut.

Cara: Mengintegrasikan X3DAudio dengan XAudio2

Pelajari cara menggunakan X3DAudio untuk menyediakan nilai volume dan pitch untuk suara XAudio2 serta parameter untuk efek reverb bawaan XAudio2.

Cara: Metode Audio Grup sebagai Set Operasi

Pelajari cara menggunakan kumpulan operasi XAudio2 untuk membuat sekelompok panggilan metode berlaku secara bersamaan.

Debugging Audio Glitches di XAudio2

Pelajari cara mengatur tingkat pengelogan debug untuk XAudio2.

Sumber daya Media Foundation

Media Foundation (MF) adalah platform media untuk streaming pemutaran audio dan video. Anda dapat menggunakan API Media Foundation untuk melakukan streaming audio dan video yang dikodekan dan dikompresi dengan berbagai algoritma. Ini tidak dirancang untuk skenario gameplay real-time; sebaliknya, ia menyediakan alat yang kuat dan dukungan codec yang luas untuk pengambilan dan presentasi komponen audio dan video yang lebih linier.

Topik Deskripsi

Tentang Media Foundation

Bagian ini berisi informasi umum tentang API Media Foundation, dan alat yang tersedia untuk mendukungnya.

Media Foundation: Konsep Penting

Topik ini memperkenalkan beberapa konsep yang perlu Anda pahami sebelum menulis aplikasi Media Foundation.

Arsitektur Media Foundation

Bagian ini menjelaskan desain umum Microsoft Media Foundation, serta primitif media dan alur pemrosesan yang digunakannya.

Pengambilan Audio/Video

Topik ini menjelaskan cara menggunakan Microsoft Media Foundation untuk melakukan pengambilan audio dan video.

Pemutaran Audio/Video

Topik ini menjelaskan cara menerapkan pemutaran audio/video di aplikasi Anda.

Format Media yang Didukung di Media Foundation

Topik ini mencantumkan format media yang didukung Microsoft Media Foundation secara asli. (Pihak ketiga dapat mendukung format tambahan dengan menulis plug-in kustom.)

Pengodean dan Penulisan File

Topik ini menjelaskan cara menggunakan Microsoft Media Foundation untuk melakukan pengodean audio dan video, dan menulis file media.

Windows Media Codecs

Topik ini menjelaskan cara menggunakan fitur codec Windows Media Audio dan Video untuk menghasilkan dan mengonsumsi aliran data terkompresi.

Referensi Pemrograman Media Foundation

Bagian ini berisi informasi referensi untuk API Media Foundation.

Sampel SDK Media Foundation

Bagian ini mencantumkan contoh aplikasi yang menunjukkan cara menggunakan Media Foundation.

Jenis media Windows Runtime XAML

Jika Anda menggunakan interop DirectX-XAML, Anda dapat menggabungkan API media Windows Runtime XAML ke dalam aplikasi UWP Anda menggunakan DirectX dengan C++ untuk skenario game yang lebih sederhana.

Topik Deskripsi

Windows.UI.Xaml.Controls.MediaElement

Elemen XAML yang mewakili objek yang berisi audio, video, atau keduanya.

Audio, video, dan kamera

Pelajari cara menggabungkan audio dan video dasar di aplikasi Platform Windows Universal (UWP) Anda.

MediaElement

Pelajari cara memutar file media yang disimpan secara lokal di aplikasi UWP Anda.

MediaElement

Pelajari cara melakukan streaming file media dengan latensi rendah di aplikasi UWP Anda.

Transmisi media

Pelajari cara menggunakan kontrak Play To untuk mengalirkan media dari aplikasi UWP Anda ke perangkat lain.

Referensi