Aracılığıyla paylaş


Örnek olay incelemesi - RoboRaid'de uzamsal ses kullanma

Bu makalede RoboRaid karma gerçeklik birinci şahıs nişancısı için ses oluştururken karşılaştığı Microsoft HoloLens Deneyimi Ekibi'nin karşılaştığı zorluklar açıklanır.

Teknoloji

Uzamsal ses, Microsoft HoloLens'nin en heyecan verici özelliklerinden biridir ve nesneler görüş alanınızda olmadığında kullanıcıların etraflarında neler olduğunu fark etmelerini sağlar.

RoboRaid'de uzamsal sesin en belirgin ve etkili kullanımı, oyuncuyu çevre görüş alanı dışında gerçekleşen bir durumla ilgili uyarmaktır. Örneğin, İhlalçi odadaki taranan duvarlardan herhangi birinden girebilir. Girdiğiniz konumla karşı karşıya değilseniz, bu konumu kaçırabilirsiniz. Bu istila konusunda sizi uyarmak için, Breacher'ın girdiği yerden gelen ve bunu durdurmak için hızlı bir şekilde hareket etmeniz gerektiğini belirten ayrı bir ses duyarsınız.

Arka planda

HoloLens uygulamaları için uzamsal ses oluşturmak o kadar yeni ve benzersizdir ki, başvurulacak geçmiş proje olmadığından sorunları çözmek zor olabilir. Umalım ki RoboRaid'i yaparken karşılaştığımız bu ses zorluklarının örnekleri, kendi uygulamalarınız için ses oluştururken size yardımcı olacaktır.

CPU'nun vergisini alma konusunda dikkatli olun

Uzamsal ses, CPU üzerinde zorlu olabilir. RoboRaid gibi yoğun bir deneyim için, uzamsal ses örneklerinin sayısını herhangi bir zamanda sekizin altında tutmak çok önemliydi. Genellikle, farklı ses olayları için örnek sınırını ayarlamak kadar kolaydı. Sınıra ulaşıldıktan sonra gerçekleşen tüm örnekler öldürülür. Örneğin, insansız hava araçları ortaya çıktığında, çığlıkları herhangi bir zamanda üç örnekle sınırlıdır. Aynı anda yalnızca dört insansız hava aracının ortaya çıkarabileceğini düşünürsek, beyninizin benzer seslere sahip ses olaylarını takip edebilmesinin hiçbir yolu olmadığından üç çığlık çok fazladır. Bu, düşman patlamaları veya ateş etmeye hazırlanan düşmanlar gibi diğer uzamsal ses olayları için kaynakları serbest bırakmıştı.

Başarılı bir atlatmak ödüllendirme

Dodging mekanik RoboRaid en önemli oyun mekaniklerinden biridir ve aynı zamanda HoloLens deneyimi için gerçekten benzersiz olduğunu hissettim bir şey. Bu nedenle, oyuncuyu çok ödüllendiren başarılı dodgelar yapmak istedik. Doppler'ın geliştirme sürecinde oldukça etkileyici bir ses çıkararak "tuhaf" olduğunu söyledik. Başlangıçta planım bir döngü kullanmak ve ses düzeyini, perdeyi ve filtreyi kullanarak bunu gerçek zamanlı olarak işlemekti. Bunun uygulanması çok ayrıntılı olacak. Bunu oluşturmak için kaynakları işlemeden önce, nasıl hissettirdiğini öğrenmek için içinde Doppler etkisi olan bir varlık kullanarak ucuz bir prototip oluşturduk. Yetenekli geliştiricimiz bunu yaptı, böylece bu büyüleyici varlık, mermi oyuncunun kulağı tarafından geçilmeden tam olarak 0.7 saniye önce oynatılacak ve sonuçlar harika hissettirdi! Söylemeye gerek yok, daha karmaşık çözümü atıp prototipi uyguladık.

(Yerleşik Doppler efektiyle bir ses varlığı oluşturma hakkında daha fazla bilgi için bkz . 2 Dakikada 100 Whooshes.)
Bir düşmanın mermisinin başarılı bir şekilde kaçılması, oyuncuyu tatmin edici bir ses ile ödüllendiriyor.

Etkisiz seslerin atılması

Başlangıçta, düşman mermisini başarılı bir şekilde atlattıktan sonra oyuncunun arkasında bir patlama sesi çalmak istedik, ancak bunu çeşitli nedenlerden dolayı terk etmeye karar verdik. İlk olarak, dodge için kullandığımız SFX'in kaprisleri kadar etkili hissetmedi. Mermi arkanızdaki bir duvara çarptığında, oyunda bu sesi maskeleyen başka bir şey olurdu. İkincisi, yerde çarpışma olmadı, bu yüzden mermi duvarlar yerine yere çarptığında patlamayı çaldıramadık. Ve son olarak, uzamsal sesin CPU maliyeti vardı. Elite Akrep düşmanı (duvarın içinde sürünebilen bir düşman) yaklaşık sekiz mermi ateşleyen özel bir saldırıya sahiptir. Bu sadece karışımı büyük bir karışıklık yaptı, aynı zamanda çok zor CPU isabet çünkü korkunç çatlama ortaya.

Bir hitin iletişim kurması

HoloLens'te karşılaştığımız ilginç bir sorun, bir oyuncunun vurulduğunu etkili bir şekilde iletmenin ne kadar zor olduğuydu. Karma gerçeklik deneyiminin başarılı olmasını sağlayan şey, hikayenin size olduğunu hissettirmektir. Bu, kendi oturma odanızda uzaylı robot istilası ile savaştığınıza inanmak zorunda olduğunuz anlamına gelir.

Oyuncular vurulduklarında hiçbir şey hissetmeyecekleri açıktır, bu yüzden oyuncuyu kendilerine kötü bir şey olduğuna ikna etmenin bir yolunu bulmak zorunda kaldık. Geleneksel oyunlarda, karakterinizin isabet aldığını belirten bir animasyon görebilirsiniz veya ekran kırmızı yanıp sönebilir ve karakteriniz biraz sızlayabilir. Bu tür ipuçları karma gerçeklik deneyiminde çalışmadığından, görsel ipucuyla hasar aldığınızı gösteren abartılı bir ses birleştirmeye karar verdik. Büyük bir ses oluşturdum ve karışımı o kadar belirgin hale getirdim ki her şeyi örterek indirdi. Daha da dikkat çekmesi için nükleer bir denizaltı batıyormuş gibi kısa bir uyarı sesi ekledik.
RoboRaid'de bir oyuncuya vurulduğunda görsel bir ipucu görür, ancak hasar aldığını söyleyen abartılı bir sesli ipucu alır.

Küçük hoparlörlerden büyük ses alma

HoloLens hoparlörler, cihazın gereksinimlerine uyacak şekilde küçük ve hafiftir, bu nedenle çok fazla düşük uç duymayı beklemeniz mümkün değildir. Akıllı telefonlar veya el oyun cihazları için geliştirmeye benzer şekilde, ses tasarımcılarının ve bestecilerin seslerinin frekans içeriğine dikkat etmeleri gerekir. Kulaklık takmak kullanıcılar için bir seçenek olduğundan her zaman sesleri tasarliyorum veya tam frekans aralığıyla müzik yazıyorum. Ancak HoloLens hoparlörleriyle uyumluluğu sağlamak için, üzerinde çalıştığım herhangi bir DAW'un ana şablonuna bir EQ koyarak ara sıra bir test çalıştırıyorum. EQ ayarı 600 Hz ile 700 Hz (çok dik değil) civarında yüksek geçişli filtre ve 10K (dik) seviyesinde düşük geçişli filtreden oluşur. Bu size seslerinizin cihazda nasıl oynatılacağı hakkında yaklaşık bir fikir verir.

Müziğinizde değişen akor duygusunu vermek için basa güveniyorsanız, bu EQ ayarını uyguladığınızda müziğinizin kök duygusunu tamamen kaybettiğini fark edebilirsiniz. Bunu düzeltmek için basa bir oktav daha yüksek olan başka bir katman ekledim (bazı zengin harmoniklerle) ve kök duygusunu geri almak için karıştırdım. Bazen harmonikleri yükseltmek için distorsiyon kullanmak beynimizin altında bir şey olduğunu düşünmesini sağlamak için üst aralıkta yeterli frekans içeriği verir. Bu, SFX'in darbeler, patlamalar veya patron süper saldırıları gibi özel anların sesleri için geçerlidir. Oyuncuya etki veya ağırlık hissi vermek için alt uca gerçekten güvenemezsiniz. Müzikte olduğu gibi, bozulmayı kullanarak biraz çıtırtı vermek kesinlikle yardımcı oldu.

Sesli ipuçlarını öne çıkarma

Doğal olarak, ekipte herkes bombastik müzik, yüksek sesli silahlar ve çılgın patlamalar istedi; ancak seslendirmeyi veya diğer oyun açısından kritik ses ipuçlarını duyabilmek de istediler.

Tam frekans aralığına sahip bir konsol oyununda, sesin önemine bağlı olarak frekansları bölmek için daha fazla seçeneğiniz vardır. RoboRaid için seslerden çıkabildiğim frekans aralıkları sınırlıydı. Düşük geçişli filtre kullanır ve spektrumun üst ucundan çok fazla eğrilerseniz, düşük uçta çok fazla olmadığından seste hiçbir şey kalmaz.

RoboRaid'in cihazda olabildiğince büyük ses çıkarabilmesi için tüm deneyimin dinamik aralığını düşürmemiz gerekiyordu ve farklı ses türleri için net bir önem hiyerarşisi oluşturarak ördek avcılığından kapsamlı bir şekilde yararlandık. -2 dB olan ördek yavrularını önem derecesine bağlı olarak -6 dB olarak ayarladım. Kişisel olarak oyunlarda bariz ördeklenmeyi sevmiyorum, bu yüzden solma zamanlamasını ve ses düzeyi azaltma miktarını ayarlamak için çok zaman harcadım. Müziğe ters çevirmeden uzamsal ses, uzamsal olmayan ses, VO ve kuru otobüs için ayrı otobüsler kuruyoruz. Daha sonra yüksek öncelikli, kritik ve kritik olmayan veri kümeleri oluşturduk, böylece varlıklar uygun veri yollarına gidecek şekilde ayarlandı.

Umarım oradaki ses profesyonelleri, RoboRaid üzerinde çalıştığım kadar kendi uygulamaları üzerinde çalışırken de çok eğlenecek ve heyecanlanacaktır. Microsoft'un dışındaki yetenekli insanların HoloLens için neler uyduracağını görmek (ve duymak!) için sabırsızlanıyorum.

Kendiniz yapın

Odayı doldurur gibi bazı olayların (patlamalar gibi) "daha büyük" görünmesini sağlamak için keşfettiğim bir numara, uzamsal ses için bir mono varlık oluşturmak ve 3B olarak oynatılacak 2B stereo varlıkla karıştırmaktı. Stereo içerikte çok fazla bilgiye sahip olmak mono varlıkların yönünü düşürür. Ancak, dengeyi doğru yapmak, oyuncuların kafalarını doğru yöne çevirmelerini sağlayacak büyük sesler doğuracaktır.

Aşağıdaki ses varlıklarını kullanarak büyük sesleri kendiniz deneyebilirsiniz:

1\. Senaryo

  1. roboraid_enemy_explo_mono.wav dosyasını indirin ve uzamsal ses üzerinden oynatılıp bir etkinliğe atanacak şekilde ayarlayın.
  2. roboraid_enemy_explo_stereo.wav dosyasını indirin ve 2B stereo ile kayıtta oynatacak şekilde ayarlayın ve yukarıdakiyle aynı olaya atayın. Bu varlıklar Unity'de normalleştirildiğinden, kırpılmaması için her iki varlığın hacmini de azaltın.
  3. İki sesi de birlikte çal. Ne kadar uzamsal olduğunu hissetmek için başınızı hareket ettirin.

2\. Senaryo

  1. roboraid_enemy_explo_summed.wav dosyasını indirin ve uzamsal ses üzerinden tekrar çalacak ve bir etkinliğe atayacak şekilde ayarlayın.
  2. Bu varlığı tek başına yürüterek Senaryo 1'den olayla karşılaştırın.
  3. Mono ve stereo dosyaların farklı dengesini deneyin.

Ayrıca bkz.