Dikkat edilmesi gereken noktalar

Unity, OpenXR ve WebXR, etkileyici deneyimlerde çeşitli etkileşimler oluşturmak için çok yönlü bir araç seti sağlar. Amaç, kullanıcıların öğrendikleri mevcut deneyimleri kullanarak etkileşimde bulunabileceği sürükleyici uygulamalar geliştirmektir. Basit hareketlerden karmaşık fizik tabanlı simülasyonlara kadar her şeyi tasarlayabilirsiniz.

Unity, OpenXR ve WebXR uygulamalarının yalnızca Tam Alan'da çalıştığını unutmayın.

Android XR'ın tasarım ilkeleri hakkında bilgi edinin.

Girişler

XR uygulamaları; el, göz ve yüz takibi, hareketler, sesli komutlar ve klavye, fare ve denetleyici gibi geleneksel giriş cihazlarıyla etkileşimler içerebilir. Uygulamanızın doğal ve erişilebilir bir kullanıcı deneyimi sunmak için hangi girişlere ihtiyaç duyacağını düşünün.

  • Uygulamanızın öğrenme eğrisini kısaltmak için bilinen hareketleri destekleyin. 2D kullanıcı arayüzüyle etkileşimde bulunurken yakınlaştırma/uzaklaştırma gibi standart sistem hareketlerini kullanın. Topu kaldırmak ve atmak gibi 3D etkileşimler için gerçek dünyadaki etkileşimi taklit eden hareketlerle tasarım yapmalısınız. Bu sayede kullanıcının mevcut bilgisinden yararlanılır ve eğitime olan ihtiyaç azalır.
  • Ek hareketler gerekiyorsa bunların kolayca öğrenilebileceğinden, hatırlanabileceğinden ve uygulanabileceğinden emin olun. Rahatsızlık ve yorgunluğa yol açabilecek karmaşık, çok adımlı hareketlerden veya doğal olmayan duruşlardan kaçının. Kullanıcılara el hareketlerini nasıl kullanacaklarını öğreten kılavuzlar sunabilirsiniz.
  • Deneyiminizi sol veya sağ elinizle kullanabilmeniz gerekir. Bu mümkün değilse sistemin el tercihini uygulayın.
  • İki elle etkileşimler etkileyici olsa da hareket kabiliyeti sınırlı olan kullanıcılar için zor olabilir. Temel işlemler için tek elle etkileşimlere öncelik verin. İki el hareketi gerekiyorsa aynı sonucu elde etmek için tek elle kullanılabilen alternatif yöntemler sağlayın.
  • Unity, OpenXR ve WebXR uygulamaları Android'in arka yığınından otomatik olarak yararlanmaz. Kullanıcıların Android XR'ın geri hareketine erişerek işlemleri geri almasına veya hareketle gezinme özelliğini kullanarak geri gitmesine izin vermek için geri yığını uygulamayı düşünebilirsiniz.

Hareketle gezinme özelliğini kullanan iki el.

Kullanıcı Arayüzü

Düğmeler, paneller ve metin gibi kullanıcı arayüzü öğeleri, XR uygulamalarında doğal etkileşimler için gereklidir. Tasarımda sorunsuz ve sezgisel bir kullanıcı deneyimine öncelik verilmelidir. Belirli kullanıcı arayüzü tasarımı seçenekleri, uygulamanızın benzersiz gereksinimlerine bağlıdır.

  • Birincil etkileşimli öğeleri ve önemli içerikleri kullanıcının doğal görüş çizgisine ve görüş alanına yerleştirin. Bu, görünürlüğü artırır ve rahat bir deneyim sağlar. Kullanıcıların arayüzle nasıl etkileşime geçeceğini göz önünde bulundurarak arayüzün hangi mesafeye yerleştirilmesi gerektiğini belirleyin. Örneğin, kullanıcı lazer işaretçiyle mi nişan alıyor yoksa düğmelere doğrudan parmaklarıyla mı dokunuyor? Arayüzünüzün boyutunu, kullanıcıdan ne kadar uzakta olması gerektiğine göre yapılandırın. Android XR boyut ve ölçek kılavuzuna bakın.
  • Düğmeler gibi etkileşimli kullanıcı arayüzü öğelerini tasarlarken kullanıcıların bu öğelerle nasıl etkileşimde bulunacağını, her giriş yöntemi için gereken hassasiyet düzeyini (el izleme ve fare) göz önünde bulundurun ve hedef boyutu ve aralığı gibi faktörleri buna göre uyarlayın. Kullanıcı arayüzü konumlarının rahat etkileşimlere olanak tanıdığından emin olun. Kullanıcı işlemleri için görsel geri bildirim sağlayın. Android XR stil kılavuzuna bakın.
  • Paneller gibi 2D kullanıcı arayüzleri, menü tabanlı etkileşimler için idealdir. Fiziksel düğmeler, kolları ve anahtarları gibi 3D kullanıcı arayüzleri, mekansal ortamlarla etkileşimde bulunurken daha etkileyici olabilir. Yüksek okunabilirlik için panel tabanlı etkileşimler ve dünya odaklı etkileşimler için 3D nesneler arasında dikkatli bir denge kurmak, güçlü ve etkileyici bir deneyim oluşturabilir.
  • Uygun yazı tipi boyutları, türleri ve kontrastı kullanarak metnin okunabildiğinden emin olun. Kullanıcı arayüzünü, kullanıcıların metni görüntüleyeceği mesafeye göre konumlandırın. Çeşitli yazı tipi boyutlarında sorunsuz metin oluşturmak için Signed Distance Field yazı tiplerini kullanın. Android XR yazı biçimi kılavuzunu inceleyin.

Çok büyük bir ekrana sahip bir kişi, tamamen mekansal bir ortama dalmış. Kullanıcı arayüzü kontrolleri ellerinin altında olacak şekilde kayaların üzerinde duruyorlar.

Mekansal etkileşimler

XR'deki en zengin etkileşimlerden bazıları, kullanıcının doğrudan 3D nesnelerle etkileşime geçmesini içerir. Bu işlem, bir nesneyi kaldırmak, incelemek ve atmak kadar basit olabilir. Ayrıca, kolları çekme, düğmelere basma ve kullanıcının elinde bulunan öğelerle etkileşim kurma (ör. sprey şişesini püskürtme) gibi daha karmaşık etkileşimleri de içerir. Kullanıcıların dünya hakkındaki önceden edindikleri bilgilere dayalı olarak tasarlanan sezgisel 3D nesne etkileşimleri

  • Gerçekçi hareketler oluşturmak istiyorsanız bir fizik motoru entegre edebilirsiniz. Unity ile geliştirme yapıyorsanız Unity'de yerleşik bir fizik motoru bulunur. Fizik motorlarının ne kadar işlem gücü tükettiğine dikkat edin ve performans için optimizasyon yapın.
  • İnanılırlık, gerçekçilikten daha önemlidir. Örneğin, bir kullanıcı topu sert bir şekilde fırlattığını düşünüyorsa uygulama, topa cihazın sensörlerinin gösterdiğinden daha fazla kuvvet uygulamalıdır.
  • Nesneler, kullanım amaçlarına uygun şekilde tasarlanmalıdır. Bu, kullanıcının bir nesneyle veya nesne üzerinde yapabileceği her işlemin uygulamanızda hesaba katılması gerektiği anlamına gelir. Örneğin, bir donut kaldırılabilir, atılabilir ve yenebilir. Uygulama, donutu yemek yerine "Şu anda aç değilim" diyen bir seslendirme kullanabilir. Bu çözümler, kullanıcının donut ile gerçekleştirmeyi beklediği işlemleri ele alır.
  • Nesneler; ebeveynlik, fizik eklemleri, takip etme ve fizik kuvvetleri gibi çeşitli teknikler kullanılarak tutulabilir. Her tekniğin avantajları ve dezavantajları vardır. Özel bir yakalama yöntemi uygulamadan önce, en uygun yöntemi belirlemek için farklı yaklaşımları araştırmak ve test etmek önemlidir.
  • 3D ortamda tasarım yaparken ergonomi önemlidir. Erişilebilirlik için, kullanıcının rahat bir yüksekliğe ayarlayabilmesi amacıyla düz yüzeylere bir sap ekleyebilirsiniz. Herkesin vücudu farklı olduğundan, alandaki her nesneyi çeşitli kullanıcılarla test ettiğinizden emin olun.

Job Simulator, kullanıcının ofis kabininde eski bir bilgisayarın başında oturduğu, tamamen sürükleyici bir VR oyunu. Oyunda, 3D nesnelerle etkileşime geçebilen sanal eller bulunur.

Sahne tasarımı

Sahneler, tamamen sürükleyici sanal dünyalardan sanal öğeleri kullanıcının gerçek çevresiyle harmanlayan artırılmış gerçeklik deneyimlerine kadar çeşitlilik gösterebilir. Rahat ve işlevsel sahneler tasarlayın ve XR'nin benzersiz özelliklerinden yararlanın.

  • Kullanıcının etrafında hareket eden sahneleri (ör. uçma) sınırlayın. Bu durum, özellikle kullanıcının fiziksel bedeni hareketsizse rahatsızlık verebilir. Tünel görüşü (sonraki bölümde açıklanmaktadır) gibi bazı hareket teknikleri rahatsızlığı azaltmaya yardımcı olur.
  • Karma gerçeklik deneyimleri oluşturmak için Android XR'ın sahne anlama özelliklerini kullanarak sanal nesneleri kullanıcının fiziksel ortamına entegre edebilirsiniz.
  • Sanal gerçeklik uygulamaları için sanal alana gerçek dünyanın sınırlı görünümlerini dahil edebilirsiniz. Bu sayede kullanıcılar, çevrelerinin farkında kalabilir ve etkileyici deneyimden ayrılmadan fiziksel nesnelerle etkileşim kurabilir.

Hareket

Android XR deneyimlerinin, kullanıcıların yapılandırılmış bir sınırla tanımlanan fiziksel alanlarında özgürce hareket etmelerine olanak tanıması önerilir. Örneğin, bazı kullanıcılar, hareketsiz bir yazar tarafından tasarlanmış alanlara dayalı olarak tasarlanan sanal deneyimlerin daha etkileyici olduğunu düşünür. Kullanıcıların, sınırın izin verdiğinden daha büyük bir sanal alanda hareket etmesini bekliyorsanız ışınlanma gibi hareketi artıran hareket tekniklerini kullanabilirsiniz.

Işınlanma özelliğiyle kullanıcı, yeni bir konuma anında gitmek için bir kontrol cihazını kullanır veya işaretleyip seçer. Büyük mesafeleri hızlı bir şekilde kat etmek için idealdir ve genellikle en az hareket hastalığı yaratan ulaşım yöntemidir. Geçiş sırasında ekranı kısa süreliğine karartmak rahatsızlığı daha da azaltabilir.

Diğer hareket yöntemleri

Başka hareket yöntemleri kullanıyorsanız alternatif olarak ışınlanma da sunabilirsiniz.

  • Kolları sallayarak yerinde yürüme: Kollarınızı sallayarak veya kontrol cihazınızı yukarı ve aşağı hareket ettirerek yürümeyi simüle edin. Bazı kullanıcılar bunu yorucu veya sezgisel olmayan bir deneyim olarak görebilir.
  • Sürekli hareket: Sanal varlığınızı ortamda hareket ettirmek için kontrol cihazının kontrol çubuğunu veya baş parmak çubuğunu kullanın. Hareket hastalığına yol açabileceğinden, çoğu durumda bu yöntemden kaçınmanız önerilir.

Deneyiminde hareket özelliğini kullanmaya karar verirseniz bireysel tercihleri karşılamak ve kullanıcı deneyimini iyileştirmek için birden fazla seçenek sunun.

Kullanıcının fiziksel hareketi ile sanal deneyimi arasında bağlantı olmadığında hareket hastalığı oluşabilir. Hareket sırasında kullanıcı konforunu optimize etmek için:

  • Sanal ufkun sabit ve düz olduğundan emin olun.
  • Sürekli hareket gerekiyorsa kademeli hızlanma veya yavaşlamadan kaçının. Hızı sabit tutun.
  • Tünel görüşü, hareket sırasında kullanıcının görüş alanını daraltarak hareket hastalığını azaltmaya yardımcı olabilir. Bu, çevresel alanlarda algılanan hareketi sınırlayan bir kenar karartma efekti ile sağlanır.
  • Döndürme için kullanıcının bakış açısını belirli açılara sabitleyin. Bu durum biraz oryantasyon bozukluğuna neden olabilir ancak hareket hastalığına yol açmaz.
  • Kullanıcıların tolerans düzeyleri farklıdır. Rahatlık ayarlarını kendi tercihlerine göre ayarlamalarına izin verin. Örneğin, hareket yöntemini seçme, tünel görüşünü açma veya kapatma ya da hareket hızını ayarlama.

Üç boyutlu ses

Ses, kullanıcıları başka bir dünyaya götüren ve belirli duyguları uyandıran etkileyici ses manzaraları oluşturmak için güçlü bir araçtır. Üç boyutlu ses, sesleri sanal ortamda doğru şekilde konumlandırır.

  • Ambisoni, ses için bir gökyüzü kutusu gibidir ve kullanıcılarınıza etkileyici bir ses ortamı sunar. Arka planda duyulan çevre sesleri veya dinleyiciyi çevreleyen tam küresel bir ses alanını taklit etmek istediğiniz diğer senaryolar için ambisonikleri kullanın.
  • Üç boyutlu ses ipuçları kullanıcının dikkatini yönlendirebilir.
  • İzleyiciyi içeriğe daha fazla dahil etmek için ses efektlerini uzamsallaştırın.
  • Sesleri hoparlörün konumuna göre konumsallaştırmak, kullanıcılara doğrudan hoparlöre bakmadıkları halde oradaymış hissi verir.
  • Kullanıcıların seslerini ayarlamalarına izin verin. Örneğin, arka plan müziğini, ses efektlerini veya seslendirmeleri devre dışı bırakmak ya da seslerini değiştirmek isteyebilirler.
  • İşitme engelli veya işitme güçlüğü çeken kişiler için altyazı ekleyebilirsiniz.

Rahatlık için dikkat edilmesi gereken diğer noktalar

Erişilebilirliğe öncelik vermek için farklı beceri ve tercihlere hitap eden özelleştirilebilir seçenekler sunun. Bu sayede, geniş bir kullanıcı kitlesi bu sürükleyici deneyimden yararlanabilir.

  • Uygulamanızı saniyede 72 kare hızında çalıştırın: Bu, görsel titremeyi en aza indirmeye ve mide bulantısını önlemeye yardımcı olur.
  • Kullanıcılara kontrol verin: Uygulamanızı XR'ye aşinalığı farklı seviyelerde olan kullanıcılar için kullanıcı dostu hale getirmek istiyorsanız kullanıcıların özelleştirilebilir ayarlarla deneyimlerini özelleştirmelerine izin verin. Kullanıcıların, fiziksel ihtiyaçlarına veya tercihlerine göre kontrol düğmelerini ve hareketleri yeniden eşlemelerine izin verebilirsiniz. Örneğin, el hareketleri sınırlı olan kullanıcılar farklı düğme düzenlerinden veya daha büyük, basit giriş kontrollerinden yararlanabilir.

Belirli platformlarla ilgili yardım için şu kaynaklara bakın:

OpenXR için geliştirme

Unity ile geliştirme

WebXR dokümanları