2011-09-18 6 views
5

.Genel Düşünceler/dokunmatik arayüz ben yazılım müzik synthesizer çeşitli bir Kinect tabanlı çoklu dokunmatik arayüz geliştirme içine bakarak oldum son birkaç aydır

ben ile geldim genel strateji ya programlama veya (mümkünse) algoritmik yumuşak synth çeşitli kontroller temsil etmek, nesneleri yaratmaktır. Bunlar olmalıdır;

  • X konumu
  • Y konumu
  • Yükseklik
  • genişliği
  • MIDI çıkış kanalı
  • MIDI veri skaleri

2 stratejileri (midi değerlere XY Coords) dönüştürmek I agoritmik yaratım için düşünülenler XML betimlemesidir ve her nasılsa E ekranı (yani çalışan bir program verildi, tüm kontrollerin xycoords'ını bul). Bu ikincisini nasıl kullanacağım konusunda hiçbir fikrim yok, bu yüzden bunu belirli bir teknik dilde ifade ediyorum;). Bir xml dosyası oluşturmak için kontrollerin köşelerinde fare tıklamaları kullanmak gibi bir ara çözüm yapabilirim. Yapabileceğim başka bir şey de, flash uygulamalarında sıkça karşılaştığım şey, ekran boyutunu bir değişkene koymak ve tüm arayüz nesnelerini ekran boyutu olarak oluşturmak için matematiği kullanmaktır. o

Diğer hususlar (bazıları sadece göstergeler değil, interaktif kontroller) ekran kontrolleri ile aynı boyutta nesneleri yapmak veya tüm ekran nesnesini temsil etmek kesinlikle gerekli olmadığını unutmayın;

, bunları kullanarak benim en iyi seçenek nedir X/Y coords iki takım girdi olarak (sol ve sağ elinde) (şimdilik) Verilen? Benim ilk içgüdüsü/x/y coords, aktif hale gelir nesne arayüzü nesnenin sınırları içinde düşerse odak testi, bir tür oluşturmak için ve onlar belli bir süre için diğer bazı küçük sınırlarının dışına düşerse o zaman inaktif hale gelir. Bulduğum ucuz çözüm, işaretçi/seçici ve kontrolör olarak sağ el kullanmaktı, ama daha fazlasını yapabileceğimi düşünüyorum. Elimde vidalayabileceğim birkaç jest çözümüm var (gizli markov zincirleri). Tam olarak işe koyulmaları kolay değil, ama kendimi yeterli bir teşvikle yaptığımı görebildiğim bir şey değil.

Özetlemek gerekirse, sorun
  • x/y nWe
  • manipüle bir kontrol seçmek (varsayılan arayüzü her zaman fare girişi beklediği için gerekli)

    • arayüzü temsil olduğunu Koordinatlar (döner/sürekli kontrolör) veya anahtarlar söz konusu olduğunda, odaklama yapmadan/almadan geçiş yapmak için tercihen bir jest kullanın.

    Özellikle multitouch io/NUI'de çalışmış/çalışmakta olan kişilerden herhangi bir yorum büyük beğeni topluyor. Mevcut projelere ve/veya bazı iyi okuma materyallerine (kitaplar, siteler, vb.) Bağlantılar büyük bir yardım olacaktır. Burada şeyler

  • +0

    Bu soru hakkında meta-tartışma gerçekleşiyor/oldu: http://meta.stackexchange.com/q/106720/146495 –

    cevap

    2

    Whoahh çok. Microsoft'umda çok sayıda NUI malzeme üzerinde çalıştım, böylece neler yapabileceğimizi görelim ...

    Ama önce, bu hayvan çişini şu yoldan çekmem gerekiyor: "Kinect tabanlı multitouch" deyin. Bu açıkça yanlış. Kinect'in doğal olarak dokunuşla hiçbir ilgisi yoktur (bu yüzden "bir kontrol seç" seçeneğine sahip olursunuz).Dokunma, vücut takibi ve fare için gereken UI değerlendirmesi türleri tamamen farklıdır. Örneğin, dokunmatik kullanıcı arayüzünde, ekran boyutuna/çözünürlüğüne/DPI'ye bağlı olarak şeyleri yeniden boyutlandırma konusunda çok dikkatli olmalısınız ... ekrandan bağımsız olarak, parmaklar her zaman aynı fiziksel boyuttadır ve insanlar aynı derecede fiziksel doğruluğa sahiptir. düğmeleriniz ve benzer kontrolleriniz her zaman kabaca aynı fiziksel boyuttadır. Araştırma, dokunmatik ekran düğmelerinin tatlı bir nokta olması için bir inç'in 3/4'ünü bulmuştur. Bu, doğrudan bir şeye dokunmadığınızdan Kinect ile ilgili bir endişe değil - doğruluk, parmak büyüklüğüne değil, hassas hassasiyete ve kullanıcılara, hassas imleci & sanal imleçleri tam olarak kontrol etme özelliğine göre belirlenir.

    Kinect oyunlarıyla vakit harcıyorsanız, 4 etkileşim paradigması olduğu açıkça anlaşılır. 1) Poz tabanlı komutlar. Kullanıcı, bazı uygulama genelindeki veya komutlarını çağırmak için bir poz verir (genellikle bir menüye dönüşür) 2) Vurgulu düğmeler. Kullanıcı bir düğmenin üzerinde sanal bir imleci hareket ettirir ve düğmesini seçmek için belirli bir süre hareketsiz kalır. 3) Kaydırma tabanlı gezinme ve seçim. Kullanıcı, bir yöne ilerlemek için ellerini tek bir yönde hareket ettirir ve listeden seçmek için başka bir yöne doğru hareket eder 4) Ses komutları. Kullanıcı sadece bir komut konuşuyor.

    Hobiler tarafından denenen başka fare benzeri fikirler de vardır (bunları gerçek bir oyunda görmemişlerdir) ama açıkçası onlar emerler: 1) imlecin olduğu yerde bir el ve imlecin olduğu yerde "tıklamak" için başka bir el kullanarak 2) "tıklama" yı belirlemek için elin z koordinatını kullanıp kullanmadığınızı belirlemek için

    Mevcut bazı fare widget'larının Kinect ile nasıl çalışacağını sormak bana açık değildir. Öyleyse, web üzerinde Kinect girişi ile fareyi nasıl kontrol edeceğinizi gösteren bazı projeler var ama bu topal. Çok havalı gelebilir, ancak cihazın en iyi yaptığı şeyden faydalanmıyorsunuz.

    Müzikal bir sentezleyici oluşturuyorsam, # 3 yaklaşımına odaklanmak istiyorum - hızlıca kaydırma. Dance Central gibi bir şey. Ekranın sol tarafında, MIDI denetleyicilerinizin durumlarını küçük görsel bir şekilde gösteren bir listesi görüntülenir. Kullanıcıya ilerlemek için sol elini kaydırın ve bu listeden bir denetleyici seçin. Ekranın sağ tarafında, kullanıcıların sağ elini vücudunun önündeki bir düzlemde nasıl izlediğini gösterir. Şimdi her iki elin aynı anda kullanılmasına izin veriyorsunuz, her bir elin nasıl yorumlandığına dair anında görsel geri bildirim veriyorsunuz ve bunların süper hassas olmasını gerektirmiyorsunuz.

    ps ... Aynı zamanda Josh Blake'in NUI kitabını haykırmak istiyorum. Güzel şeyler. Bu alana hakim olmak istiyorsanız, bir kopya sipariş edin :) http://www.manning.com/blake/

    +0

    Robert - teşekkürler cevabın için bir grup, gemide bir ex-microsoft adam görmek güzel. İlk olarak, multitouch vs karşı kinect. Arkasından çeşitli blob izleme çözümleriyle uğraşmaya başladım ve vazgeçtim çünkü aydınlatma koşulları akla gelebilecek en küçük sınırla değiştiğinde, sistem tepkisi bir taramayı yavaşlattı. Kinect'e girdim çünkü blob takibini dahili olarak hallediyor ve bir veya daha fazla x/y imleç koordi çıkarıyor. Ekran çözünürlükleri ve arabirim boyutları farklılık gösterdiğinden bahsettiğiniz çözünürlük sorununun (aynı şeyden bahsediyorsak) hala kinect için olduğunu öğrendim. – jamesson

    +0

    Re mouse, kullandığım ara katman (primesense nite) temelde el kipinde 2 imleç çıkarır, ayrıca el hareketine dayalı bir tıklama (elinizi ekrana doğru iter). Tüm eklemleri kullanabilirim (10 veya daha fazla çıktı, dizler, kalçalar vb.) Eğer tercih edersem, henüz böyle hissetmedim. Parmağınızı yeniden yapın, aslında kendi başıma ortaya çıkabilecek en iyi şey budur. Başkalarının daha iyi fikirleri olduğunu umuyorum. – jamesson

    +0

    İşte "daha iyi" olarak düşündüğüm bir örnek - http://anythinghonest.com/amos/. Derin kontrol sağlarken, yeni teknolojinin tüm mevcut özelliklerini (bu durumda ipad) sezgisel bir şekilde kullanır. Benim için parçalarımı çalabilirim.Yardımın için tekrar teşekkürler. Joe – jamesson