Unity’de Nesneye Ses Eklemek
Merhaba, bir önceki yazımızda Unity‘de tank yapmıştık.Bu tanka çeşitli mekanikler oluşturarak, daha gerçekçi bir oynayış kazandırmıştık.Bugünkü yazımızda ise, Unity ile nesnelere ses eklemeyi öğreneceğiz ve Audio Source bileşeninin özelliklerine bakacağız.Şimdi vakit kaybetmeden yeni bir proje oluşturalım ve dersimize başlayalım.
Sahnemizi oluşturmaya başlayalım.
Evet bu projemizde kullanacağımız senaryoya bir bakalım.Sahnemizde hoparlör modellerimiz yer alacak.Oyuncu kontrolümüz için ise, bu sefer Unity‘de bulunan hazır Characters assetını kullanacağız.Yine uzun bir zemin oluşturacağız.Oyuncumuz ile hoparlör nesnelerine yaklaştıkça müzik sesi doğru orantıda artmaya başlayacak.Bu projede herhangi bir kod yazmayacağız.Evet şimdi yeni bir Plane nesnesi oluşturarak sahnemizi yapmaya başlayalım.Nesnemizi ekledikten sonra, Scene penceresinde Plane nesnemizin boyutlarını değiştiriyoruz.
Inspector penceresinde Transform bileşeninde bulunan Scale bölümündeki, z eksenini belirli bir miktar büyütüyoruz.Bu değer hoparlörlere yürüyecek kadar uzun bir mesafe olursa, yapacağımız işlemler daha iyi anlaşılacaktır.Daha sonra zeminimiz için seçtiğimiz bir kaplamayı ekliyoruz.Bu aşama şart değil ancak, sahnemizin güzel görünmesi için ben eklemeyi tercih ediyorum.Bunun yerine kaplamasız material dosyaları da kullanabilirsiniz.Böylece en azından sahnemizde ki nesneler tek renk olmaz ve ayırt etmesi daha kolay olur.Şimdi hoparlörlerimizi oluşturmaya başlayalım.
Eğer herhangi bir model kullanmayı tercih etmezseniz, Unity‘de bulunan Cube nesnesi ile bu işi yapabilirsiniz.Ben bir model kullanmayı tercih ettim.Hoparlör nesnemizi birkaç tane kopya olacak şekilde çoğaltıyoruz.Burada hoparlörler nesnelerimize, (eğer bir model kullanmışsak) Box Collider bileşenini ekliyoruz.Eğer eklemezsek, oyuncumuz ile içinden geçebiliriz.Daha sonra bir boş nesne oluşturuyoruz ve tüm hoparlör nesnelerini, bu boş nesnenin üzerine sürükleyip bırakıyoruz.Yani çocuk nesnesi yapıyoruz.Daha sonra bu boş nesneye Inspector penceresinden, Audio Source bileşenini ekliyoruz.
Şimdi gelelim oyuncu nesnemizi oluşturmaya.Bunun için Unity‘de bulunan Characters assetını kullanacağız. Project penceresinde sağ tıklayarak sırasıyla, Import Package > Characters seçimini yapıyoruz.Daha sonra Standard Assets > Characters > FirstPersonCharacter > Prefabs klasörüne geliyoruz.Burada bulunan FPSController Prefab nesnesini sahnemize sürükleyerek bırakıyoruz.Evet sahnemiz artık hazır duruma geldi.Şimdi biraz geri dönelim ve Audio Source bileşeninin en çok kullanılan özelliklerini inceleyelim.
Audio Source bileşenin özellikleri.
- AudioClip: Oynatmak istediğimiz ses dosyalarının eklendiği yerdir.
- Mute: Ses dosyanızın sesini açıp/kapatmayı kontrol eder.
- Play On Awake: Eğer bu özellik aktif yani true değerine sahipse, projenizi başlattığınız zaman eklemiş olduğunuz ses otomatik olarak oynamaya başlayacaktır.
- Loop: Eğer bu özellik aktif yani true değerine sahipse, eklemiş olduğunuz ses dosyası bir döngüye girecektir.Yani bittiği zaman otomatik olarak tekrar başlayacaktır.
- Volume: Eklemiş olduğunu ses dosyasının, ses seviyesini kontrol eder.
- PanStereo: Eklediğiniz ses dosyasının sağ yada sol hoparlörden çalmasını sağlar.
- SpatialBlend: Eklediğiniz sesi, 2D yada 3D olarak ayarlar.Böylece ses üzerinde çeşitli hesaplamalar yapabilirsiniz.
- Volume Rolloff: Eklediğiniz ses dosyasının, aradaki mesafeye göre nasıl azalacağını kontrol eder.
- MinDistance: Eklediğiniz ses dosyasının maksimum seviyede duyulacağı alanı belirler.
- MaxDistance: Eklediğiniz ses dosyasının sesinin, artık azalmayı bıraktığı ve duyulamayacağı mesafeyi belirler.
Hoparlörlere çalacağı bir ses ekleyelim.
Evet Audio Source bileşeninin bazı özelliklerini gördük.Daha fazla özelliğini öğrenmek için Unity‘in kendi kütüphane sayfasını inceleyebilirsiniz.Şimdi sahnemize eklemiş olduğumuz hoparlör nesnelerimize bir ses dosyası ekleyeceğiz.Ancak önce, ekleyeceğimiz ses dosyasını seçmemiz gerekiyor.Projede daha doğrusu, Audio Source bileşeninde .mp3 yada .wav uzantılı ses dosyalarını kullanabilirsiniz.Ben .mp3 uzantılı bir ses dosyası tercih ettim.Seçtiğimiz ses dosyamızı projemize dahil ettikten sonra ilgili yere eklememiz gerekiyor.
Bunun için hoparlörlerimiz için oluşturduğumuz boş nesnemizin Inspector penceresinde bulunan, Audio Source bileşeninde ki AudioClip bölümüne ses dosyamızı sürükleyerek bırakıyoruz.Şimdi projemizdeki senaryoya bağlı kalarak birkaç ayar yapacağız.Tekrar hatırlayacak olursak, hoparlör yani ses kaynağına doğru yaklaştıkça ses seviyesinde bir artış olacaktı.Evet şimdi bunun için ayarlarımızı yapmaya başlayalım.
Öncelikle ses sesi belirli bir sınırdan duymamamız gerekiyor.Bunun içinde ses kaynağımızın 2D değilde 3D olarak ayarlanması gerekiyor.Bunu ayarı, SpatialBlend özelliğini kullanarak gerçekleştiriyoruz.Artık ses kaynağımıza uzaklık veya yakınlık durumuna göre şiddetini ayarlayabiliriz.Hemen altta yer alan 3D Sound Settings bölümüne tıklıyoruz.Açılan pencerede, Volume Rolloff özeliğini Linear Rolloff moduna getiriyoruz.
Bu mod, eğer bir mesafeye göre ses seviyenizi ayarlamak isterseniz kullanılıyor.Daha sonra hemen altta yer alan, MinDistance ve MaxDistance özelliklerine gelelim.Sesin şiddetini duyabileceğimiz minimum alan ve sesi en yüksek seviyede duyabileceğimiz maksimum alanı belirlemek için bu özellikleri kullanıyoruz.Bu iki alanı kendinize göre ayarlayabilirsiniz.Aşağıda yapmış olduğum ayarları görebilirsiniz.
Evet gerekli ayarları yaptıktan sonra artık projemizi test edebiliriz.Audio Source bileşeninde bulunan 3D Sound Settings bölümüne bakacak olursak, ses dosyamızın mesafeye göre şiddetinin nasıl değiştiğini görebiliriz.Bu projede herhangi bir kod yazmaya ihtiyaç duymadık.Tabi yapmış olduğumuz bu işlemleri kod yazarak da yapabilirdik.
Ses konusundaki ilk yazı olduğu için, giriş aşamasında kodlama kısmına girmeyi uygun bulmadım.Daha sonraki yazılarda ses ile ilgili farklı projelere yer vereceğim.Bu sayede ses üzerinde daha fazla kontrole sahip olacağız.Son olarak aşağıdaki gifte sesi duyamayacağınız için, sosyal medya hesaplarıma girip ilgili projenin videosuna bakabilirsiniz.Evet bir sonraki yazıda görüşmek üzere…