Birlikte öğreniyoruz...

Oyunlarınızda ses ve müzik dosyalarını efektlere, oynanış sırasında fon olarak, seslendirmelerde ya da menü işlemlerinde sık sık kullanmamız gerekmektedir. Eklediğimiz ses ve müzik dosyaları oyunumuza gerçekçilik kattığı gibi oynanabilirliğini de arttırdığı için önemli bir yere sahiptir.

Tıpkı efektler ve animasyonlarda olduğu gibi Unity ses ve müzik işlemlerinin de ayrı bir dünya olduğunu söyleyebilirim. Eğer bir enstrüman çalabiliyorsanız kendi müziğinizi yapabilir ya da örneğin yürüme sesi gibi bir efekti kendiniz kayıt alarak oyununuza ekleyebilirsiniz. Tabi bunların ne kadar zor olduğunu tahmin ediyor olmanız lazım. Bu sebeple ücretsiz olarak ses ve müzik indirebileceğiniz siteleri tercih etmemiz gerekiyor.

Bu yüzden sizlerle oyununuz için ücretsiz olarak ses ve müzik dosyalarını indirebileceğiniz siteleri paylaşacağım. Burada dikkat etmeniz gereken bu sitelerde indireceğiniz bazı dosyalar her ne kadar ücretsiz olarak gözükse de telif durumları olabiliyor. Bu sebeple ticari olmayan olarak lisanslanmış türleri seçmemiz gerekiyor. Diğer türlü indireceğiniz dosyalar için telif yiyebilir ya da oyununuzun içinde ses dosyasını aldığınız kaynak hakkında bilgi vermeniz gerekecektir.

  • https://freesound.org – En yaygın olarak kullanılan sitelerden biridir. Bizde çalışmalarımızda bu siteyi kullanacağız. Bu sitede dikkat etmeniz gereken “Public Domain” olarak belirtilen ve simge olarak “0” gözüken müzikleri indirerek hiçbir kaynak belirtmeden oyununuzda kullanabilirsiniz. Freesound sitesine aşağıdaki adresten girerseniz sorunsuz olarak indirip, kullanabileceğiniz sesleri ve müziklerin filtrelenmiş haline ulaşabilirsiniz.
https://freesound.org/search/?g=1&q=&f=%20license:"Creative+Commons+0"
  • https://soundbible.com – “Royalty Free Sounds” bölümünde yer alan ve sadece “Creative Commons” ya da “Public Domain” lisansları olarak belirtilen ses ve müzik dosyalarını kaynak göstermeden kullanabilirsiniz.
  • https://assetstore.unity.com – Tabi ki Asset Store kaynağımız üzerinde yer alan ve ücretsiz olanları kullanabilirsiniz. “Free Assets” olarak seçtiğiniz ses paketlerinin açıklama kısmında “CC Zero (CC0)” yazdığına dikkat edin.

Ses ve müzik indirebileceğimiz kaynak sitelere göz attıktan sonra şimdi “Freesound” sitesinden 3 adet ücretsiz ses dosyası seçtim. Bu dosyalar üzerinden ayarları inceleyerek, denemeler yapacağız.

Kaynak Ses 1
https://freesound.org/people/piermic/sounds/324085
Kaynak Ses 2
https://freesound.org/people/13GPanska_Gorbusinova_Anna/sounds/377991/
Kaynak Ses 3
https://freesound.org/people/kimp10/sounds/341578/

Yukarıdaki dosyaları ya da istediğiniz dosyaları indirdikten sonra dosyalarımızı düzene sokmak ve yazılı olmayan kuralları uygulamak için “Project” bölümünde yer alan “Assets” klasörü içine “Audio” isminde bir klasör oluşturarak, içerisine atıyoruz.

Kapsamlı projelerinizde “Audio” klasörü içerisinde yer alan dosyaları da müzik ve efekt olarak ayrı klasörlerde kullanmanız faydalı olacaktır.

Ek olarak ses kliplerinin ayarlara geçmeden önce ekleyebileceğiniz ses dosyaları formatlarına aşağıdan göz atabilirsiniz.

.mp3MPEG layer 3
.wavMicrosoft Wave
.oggOgg Vorbis
.aiff / .aifAudio Interchange File Format
.modUltimate Soundtracker module
.itImpulse Tracker module
.s3mScream Tracker module
.xmFastTracker 2 module
İzin verilen formatlar

Unity Ses Dosyası Inspector Ayarları

Inspector Ayarları
Unity Ses Inspector Ayarları

Unity oyun motoruna eklemiş olduğumuz ses dosyalarımızın yani kliplerimizin “Inspector” penceresinde yer alan ayarlarını inceleyelim.

Force to Mono: Ses dosyasını tek kanallı olarak kullanmaya zorlayan ayardır. Bu ayarı anlamak için Pubg benzeri oyunları düşünebilirsiniz. Eğer düşman size sağ taraftan yaklaşıyorsa kulaklığınızın sağ tarafından ya da sol taraftan yaklaşıyorsa sol tarafından gelmektedir. Bu yapıya çok kanallı yani “Stereo” denmektedir “Mono” ise bunun tam tersi şekilde düşman hangi taraftan geliyor olsa da kulaklığın her iki tarafında da aynı anda sesi duyarsınız. Evde ya da sinema salonlarında kullanılan ses sitemlerini de düşünebilirsiniz. Eğer evinizdeki 5+1 ses sistemiz varsa ama dosyanız “Mono” yani tek kanallı ise tüm hoparlörleriniz aynı anda sesi verecektir.

Normalize: Eğer ses klibinizde “Force to Mono” ayarını seçerseniz aktif olmaktadır. “Stereo” olan bir ses klibini “Mono” olarak seçerseniz seslerde bozulmalar olabilmektedir. “Normalize” ayarını aktif ederek bu geçişteki bozulmaları düzeltebilirsiniz.

Load in Background: Ses dosyasının hesaplanmasını değiştirmek için kullanılır. Eğer bu ayar seçilirse ses klibinin hesaplamasını diğer hesaplamalardan(Fizik, ışık, animasyon vb ) sonra yaparak performansı arttırmaya çalışır. Fakat bu şekilde hesaplaması ertelendiğinde sesin gerinden gelme durumu oluşabilmektedir.

Ambisonic: Genellikle VR sistemlerde kullanılan bir ayardır. 360 derecelik videolarda sesi, dinleyicinin yönüne göre ayarlaması için etkinleştirilir.

Platform bazlı olarak ses dosyalarında sıkıştırma işlemi yapabileceğimiz ayarları düzenlediğimiz kısmı inceleyeceğiz. Yapılan işlemlerden sonra en aşağıda yer alan bölümden toplam boyutu ve sıkıştırma işleminden sonraki boyutu görebilirsiniz.

Load Type: Ses dosyalarının yüklenme yönteminin belirlenmesi için kullanılan ayardır. “Decompress On Load“, “Compressed In Memory” ve “Streaming” olarak üç farklı yöntem bulunmaktadır.

  • Decompress On Load: Sıkıştırılmış ses kliplerini yüklenir yüklenmez açması için kullanılan ayardır. Sıkıştırılmış seslerin performans etkisini azaltmak için kullanılan ayardır fakat dosya boyutu büyük ses klipler için tercih edilmelidir. Çünkü önce büyük boyuta sahip olan ses dosyasının sıkıştırma yapısını açmaya ve sonrasında oynatmaya çalışacaktır.
  • Compressed In Memory: Ses kliplerini hafızada tutarak sadece ihtiyaç halinde açması için kullanılan ayardır. Dosya boyutu fazla olan ses kliplerinde kullanılabilir.
  • Streaming: “Compressed In Memory” özelliğinde olduğu gibi ses kliplerini hafızaya alır fakat ön bellek modu oluşturarak kademeli kademeli aktarmaktadır.

Preload Audio Data: Ses kliplerinin önce yüklenmesi için kullanılan ayardır. Böylece sesler sahne başlamadan önce yüklenecektir.

Compression Format: Ses klipleri için uygulanacak olan sıkıştırma yönteminin seçildiği kısımdır. “PCM”, “ADPCM” ve “Vorbis/MP3” isminde üç farklı sıkıştırma yöntemi bulunmaktadır.

  • PCM: En kaliteli sesi elde etmek için kullanılır ama dosya boyutunu çok çok fazla düşürememektedir. Kısa süreli efekt seslerinde kullanılabilir.
  • Vorbis/MP3: Kaliteyi “PCM” seçeneğinden daha fazla düşürerek dosya boyutunu etkili bir şekilde küçültür. Orta uzunluktaki ses klipleri için tercih edilebilir.
  • ADPCM: “PCM” sıkıştırma oranından 3.5 kat daha iyidir. Genellikle oyunda sürekliliği olan ayak sesi, nefes alma sesi gibi seslerde kullanılır.

Sample Rate Setting: “PCM” ve “ADPCM” sıkıştırma yöntemlerini nasıl optimize edeceğinin belirlendiği alandır.

  • Preserve Sample Rate: Frekans hızını değiştirmeden kullanır.
  • Optimize Sample Rate: En yüksek frekansa göre optimize eder.
  • Override Sample Rate: Ses frekansının manuel ayarlanması için kullanılır. Bu seçenek seçildiği zaman açılan “Sample Rate” kısmından frekans ayarı değiştirilebilir.

Unity oyun motoruna eklediğimiz ses kliplerini oyunumuzda oynatabilmemiz için sahnemize bir obje ekleyerek “Audio” bileşenlerinden eklememiz gerekmektedir.

Audio Source Bileşeni Ayarları

Audio Source Bileşen Ayarları
Audio Source Bileşen Ayarları

Ses kliplerini oynatabilmek için objemize eklenen ana bileşen “Audio Source” bileşenidir.

Bileşenlerin ayarlarına bir göz atalım.

Audio Clip: Oynatılacak olan ses klibinin seçildiği kısımdır.

Output: Birden fazla sesi harmanlamak için kullanılan bölüdür. Yazının ilerleyen kısımlarında bu ayara değineceğiz.

Mute: Ses klibinin sesini tamemen kısmak için kullanılır.

Bypass Effects: Ses klibine eklenen efektleri açıp-kapamak için kullanılır. Açmak için aktif edilmesi gerekmektedir.

Bypass Listener Effects: Tüm dinleyici efektlerini açıp-kapamak için kullanılır.

Bypass Reverb Zones: Ses yankılarını açıp-kapamak için kullanılır. Açmak için aktif edilmesi gerekmektedir.

Play On Awake: Otomatik olarak seçili gelir ve sahne başladığında otomatik olarak ses klibi oynamaya başlar. Eğer sadece script üzerinden komut verildiğinde ses klibinin çalışması isteniyorsa seçim kaldırılır.

Loop: Ses klibinin süresi bittikten sonra durmanda başa dönerek tekrar etmesi için kullanılır.

Priority: Sahnede yer alan ses klipleri arasında öncelik belirlemek için yani hangi sesin önce çalacağının belirlenmesi kullanılır. Sayı düştükçe önem azalır ve tersi şekilde yükseldikçe ses klibinin önceliği artar.

Volume: Ses seviyesinin ayarlandığı kısımdır.

Pitch: Sesin çalma hızını, hızlandırmak ya da yavaşlatmak için kullanılır.

Stereo Pan: 2D seslerin hangi taraftan çıkacağının belirlendiği kısımdır. Yani bir kulaklıkta sesin sağ ve sol taraftan ne kadar geleceğinin belirlendiği kısımdır.

Spatial Blend: Sesin 2D olarak mı yoksa 3D olarak belirlendiği kısımdır. 3D’ye yaklaştırdıkça sesin azaldığını gözlemleyebilirsiniz.

Reverb Zone Mix: Seste dönen yankı sesinin miktarının ayarlandığı kısımdır.

3D Sound Settings: 3D ses ayarlarının yapıldığı alandır.

  • Doppler Level: Ses kaynağına uygulanacak olan doppler efekt seviyesinin belirlendiği alandır.
  • Spread: 3D seslerde yayılma açısının belirlendiği kısımdır.
  • Rolloff Mode: Sesin dağılma şeklinin belirlendiği kısımdır. Örneğin sesin ne kadar hızlı azalacağı gibi.
    • Logarithmic Rolloff: Dinleyiciden(kamera) uzaklaştıkça ses azalacaktır.
    • Linear Rolloff: Ses kaynağından ne kadar uzak olundukça ses o adar azalır.
    • Custom Rolloff: Ses kaynağından gelen sesi grafik aracılığıyla aramak için kullanılır. Diğer iki seçenek seçilerek grafik penceresinde düzenleme yapılırsa otomatik olarak “Custom Rolloff” seçeneğine geçiş yapar.
  • Min Distance: Belirtilen değer içinde yer alan ses seviyesi etkilenmeyecek olup belirtilen değeri geçmesi durumunda ses seviyesi zayıflamaya başlayacaktır.
  • Max Distance: Sesin azaltmayı bırakacağı seviyenin ayarlandığı kısımdır.

Audio Mixer Kullanımı

Sahnemizde yer alan ve aynı anda çalışan sesleri birleştirerek tek bir ses haline getirmek için ya da kendi ses kombinasyonlarınızı yaparak bir mix oluşturmak için “Audio Mixer” yapısını kullanabiliriz.

“Audio Mixer” ekranını açmak için “Window / Audio / Audio Mixer” yolunu ya da “CTRL + 8” kısa yolunu kullanabilirsiniz.

“Audio Mixer” penceresini açtıktan sonra “Mixers” yazısının hemen yanında “+” simgesine tıklayarak isim verirseniz oyununuz için özel bir karıştırıcı eklemiş olacağız. Oluşturma işleminden sonra aşağıdaki gibi bir ekranla karşılaşacaksınız.

Audio Mixer Ekleme
Audio Mixer Ekleme

Şimdi sahnemizi hazırlamak için 3 adet küp objesi ekliyoruz ve yazının başında indirdiğimiz ses dosyalarını ve oluşturduğumuz mix yapısını objelerimize tanımlıyoruz. Tanımlama işlemleri için objelerimize “Audio Source” bileşenini ekleyerek “Audio Clip” bölümünden ses dosyalarını ve “Output” bölümünden oluşturduğumuz mix yapısını seçebilirsiniz.

Audio Mixer Sahne Tasarımı
Audio Mixer Sahne Tasarımı

Böylece sahnede yer alan tüm ses dosyalarını bir mix yapısına bağlamış olduk. Oyunumuzu başlattıktan sonra “Audio Mixer” penceresinde yer alan “Edit in Play Mode” butonuna tıklayarak tüm sesleri aynı anda düzenleyebileceğinizi göreceksiniz.

Ses dosyalarının “Loop” ayarını aktif ederseniz daha iyi takip edebilirsiniz.

Audio Mixer Grup Yapısı
Audio Mixer Grup Yapısı

Audio Mixer” penceresinde yer alan “Groups” kısmından yeni gruplar oluşturarak objelerinize tanımlarsanız her ses klibini ayrı ayrı yönetebilirsiniz.

Örneğin ben burada Ses1 dosyasını “Master” olarak belirledim ve Ses2 ile Ses3 dosyalarını grup olarak oluşturarak objelere tanımladım ve alt sesler haline getirdim. Böylece her ses klibinin ses seviyelerini ayarlayarak aynı anda çalmasını sağlayacak bir mix oluşturdum.

Biraz karışık gelmiş olabilir ama şöyle düşünün sahnede karakteriniz yürürken ortamda bir şelale, kuş ve rüzgar sesi var siz bu sesler için ayrı kanallar oluşturarak istediğiniz gibi mix yapabilirsiniz.

Ayrıca mixer gruplarımızı ayrı ayrı efektler uygulayabilirsiniz. Her mixer grubu altında yer alan “Add…” butonuna basarak istediğiniz efekti eklemenizi sağlamaktadır.

Audio Mixer Ekran Öğeleri
Audio Mixer Ekran Öğeleri

S Butonu: Sadece tıklanan mixer grubundaki sesi çalarak diğerlerini susturacaktır.

M butonu: Tıklanan mixer sesini kapatacaktır.

B Butonu: Tıklanan mixer grubunun altına eklenen efektleri kapatmaya yarar.

Pitch: Sesin çalışma hızını yavaşlatmaya ya da hızlandırmaya yarar.

Volume: Ses seviyesine müdahale etmemizi sağlar.

Audio Reverb Zone Bileşeni Ayarları

Audio Reverb Zone Bileşeni Ayarları
Audio Reverb Zone Bileşeni Ayarları

Yankı ortamı oluşturmak için kullanabileceğiniz bileşendir. Örneğin normal bir ortamdan mağara gibi bir ortama girildiğinde oluşan ses farklılığını düşünebilirsiniz. Diğer bir örnek olarak banyoda sesin yankılanmasını düşünebilirsiniz.

Objemize “Audio Reverb Zone” bileşenini eklediğimizde, objenin etrafında iki adet çember göreceksiniz. Bu çemberler “Min Distance” ve “Max Distance” alanlarının belirtmektedir.

Distance Bölgeleri
Distance Bölgeleri

Min Distance: İç çemberi yarıçapının belirlendiği kısımdır. Efektin olduğu ve tam yankının olacağı bölgenin belirlenmesi için kullanılır

Max Distance: Dış çemberin yarıçapını belirlendiği kısımdır. Efektin olmadığı ve yankının kademeli olarak uygulanmaya başladığı bölgenin belirlenmesi için kullanılır

Reverb Preset: Hazır tanılanmış yankı tanımlamalarının seçildiği kısımdır. Örneğin açık alanda ateş eden bir silah sesi ile bir odada ateşlenen silah sesi farklı olacağı için oda, mağara, açık alan gibi birçok hazır tanımlamadan seçim yapma fırsatı bulunmaktadır.

Ayrıca “User” seçeneğini seçerek istediğiniz yankı tanımlamasını da oluşturabilirsiniz.

Ses klibi üzerinde yankının etkili olması için “Audio Source” bileşeninin “Bypass Reverb Zones” ayarı işaretlenmelidir.

Audio Low Pass Filter ve High Pass Filter Bileşenlerinin Ayarları

audio low high pass filter ayarlari

Audio Low Pass Filter” düşük geçiş filtresi olarak adlandırılmaktadır. Eğer objemize bu bileşeni eklerseniz ses klibi düşük bir frekanstan gerçekleşecektir.

Örneğin oyundaki karakteriniz konuşurken bir odaya girmeye çalışırsa düşük filtreye girmesi gerekir. Tam tersi şekilde sessiz bir ortamdan sesli bir ortama girme işlemi sırasında yüksek geçiş filtresi yani “High Pass Filter” bileşeninin uygulanması gerekmektedir.

Cutoff Frequency: Hertz türünde düşük ya da yüksek geçiş filtre frekansının belirlendiği kısımdır.

Lowpass-Highpass  Resonance Q: Düşük ve yüksek geçiş kalite değerinin belirlendiği kısımdır.

Audio Echo Filter Bileşeni Ayarları

Audio Echo Filter Bileşeni Ayarları
Audio Echo Filter Bileşeni Ayarları

“Echo Filter” ses yankı filtresidir. Örneğin bir kanyon ya da ekolu olan bir ortamda bağırdığınızda sesimizin yankılanması ve azalarak kaybolmasını duyarız. “Echo Filter” bileşeni bu ayarı yapabileceğimiz kısımdır.

Delay: Yankının milisaniye cinsinden gecikmesinin belirlendiği ayardır.

Decay Ratio: Süre başına yankının kaybolma oranının belirlendiği kısımdır.

Wet Mix: Objenin etrafında yer alan materyallerin sıvı olması durumunda kullanılan ayardır. “Dry Mix” ayarıyla orantılanarak değer verilir.

Dry Mix: Objenin etrafında yer alan materyallerin katı olması durumunda kullanılan ayardır. “Wet Mix” ayarıyla orantılanarak değer verilir.

Audio Distortion Filter Bileşeni Ayarları

Audio Distortion Filter
Audio Distortion Filter

“Audio Distortion Filter” bileşeni eklenen obje kendisine gelen sesi simüle ederek iletmek için kullanılır.

Örneğin evlerde kullanılan kablosuz bağlantıyı çoğaltmaya yarayan Repeater olarak düşünebilirsiniz. Fakat gelen sesi tekrarlarken yükseltmeyeceğini unutmayın.

Distortion: Simüle derecesinin ayarlandığı kısımdır.

Audio Chorus Filter Bileşeni Ayarları

Audio Chorus Filter
Audio Chorus Filter

Audio Chorus Filter bileşenini koro efekti olarak düşünebilirsiniz. Eklenen sesi daha küçük farklı varyasyonlarını oluşturarak koro ile söyleniyor gibi düzenler.

Dry Mix: Orijinal sinyalin hacminin ayarlandığı kısımdır.

Wet Mix 1-2-3: Koro seslerinin hacimlerinin ayarlandığı kısımdır.

Delay: Gecikme oranının belirlendiği ayardır. 1-100 arasında bir değer alabilir.

Rate: Hızının belirlendiği kısımdır. 0-20 arasında bir değer alabilir.

Depth: Derinliğin belirlendiği kısımdır. 0-1 arasında bir değer alabilir.

Unity oyun motorunda ses klipleriyle ilgili ayarları ve bileşenleri incelemeye çalıştık. Bir sonraki dersimiz Raycast kullanımı…