Standart bir yol yok.
Farklı cihazların farklı rumble özellikleri ve sınırlamaları vardır.
Cihazların büyük çoğunluğu gerçek "kuvvet geri beslemesini" desteklemez (örneğin: Bir kaldırıma / çukura isabet ederken programcının belirli bir açıya geri itmesine izin veren bir direksiyon), ancak sadece kontrolsüz / keyfi bir yönde gürler.
Bu nedenle, MSDN / DirectX ve diğer API'larda bahsedilen Force Feedback özelliklerinin çoğu, kullanıcı pazarında pratikte hiçbir zaman gerçekten gerçekleşmemiştir veya "akıllı" kontrollerin (zarf, tekrar vb.) Bu kadar zayıf ve / veya taşınabilir olmayan uygulamalarına sahip değildir. böylece kullanışsız olması pratikte geliştiriciler genellikle sadece kendi etki uygulamasıyla doğrudan ON / OFF kontrolleri kullanmak için zorlanmaktadır.
Servo kontrollü kuvvet geri beslemesine izin veren daha gelişmiş cihazlar, genel giriş API'leri gerekli parametreleri (kesin açılar, kesin kuvvetler, limitler vb.) Desteklemediğinden özel API'lere ihtiyaç duyar.
Karışıma VR duygu eldivenleri gibi yeni teknolojilerin eklenmesi, bu genel API'lerin daha da eksik olmasını sağlar.
En yaygın uygulama, her biri dengesiz yüke sahip, biri diğerinden daha ağır ağırlıklı ve hassas hız kontrolü olmayan iki DC motor ile yapılır.
En azından onlar üzerinde açma / kapama kontrolüne sahipsiniz ve sınırlı bir PWM güç kontrolü yapabilirsiniz, ancak tam hız kontrolü yapamazsınız. Hızın ve ortaya çıkan titreşimin gerçekte ne olacağını bilmiyorsunuz. Farklı denetleyicilerin, aynı ayar için farklı hızlarda çalışacak farklı motorları ve ağırlıkları vardır.
Motorlar önce dönmeli ve bir süre tam güç gerektirmelidir, daha sonra PWM daha düşük bir ayara getirilebilir. Sıkma gecikmesi, tepkiselliği büyük ölçüde sınırlar.
Kontrolörler genellikle her kare için bir kez güncellenir ve size yaklaşık 20Hz ila 100Hz güncelleme frekansı verir. Bu, motorların en düşük ayarda durmasını istemediğiniz için PWM kontrolünüzün çözünürlüğünü sınırlar. Ve son kullanıcı denetleyicisinin motorlarının durmadan (durmadan) önce ne kadar düşük gidebileceğini bilmiyorsunuz, böylece iyi bir güvenlik marjına ihtiyacınız var.
Bazı sistem gereksinimleri, onlarla neler yapabileceğiniz konusunda daha fazla sınırlama getirir.
Mobil cihazlar genellikle sadece 1 titreşim motoruna sahiptir ve ağırlık boyutundan düşük atalet ve yavaş güncelleme hızı nedeniyle PWM mümkün olmayabilir. Sistem, kötüye kullanımı veya hatta hasarı (güç sürücüsü transistör limitleri ve endüksiyon ani yükselmeleri) veya sadece gerçekten yavaş bir GPIO alt sistemini önlemek için daha fazla filtreleyebilir.
Cep telefonunda sınırlı olabilir veya PWM olmadan kendinizi "kabaca X * 50 milisaniye titreşimle" sınırlamak isteyebilirsiniz.
Bazı yeni cihazlar ve kontrolörler, düşük örnekleme hızı ses dalgası ile hoparlör gibi çalışan bir solenoide sahiptir. Bunlar size daha fazla kontrol sağlar, ancak daha yaygın kontrolörlerden tamamen farklıdır.
Çünkü soyut titreşim sistemine isteyebileceğiniz tüm bu farklılıkların bir ateş ve unut moda adıyla üst düzey makro etkilerinin sınırlı sayıda oynamak için: PlayVibration(player, "Got Loot");
, PlayVibration(player, "Heavy Fall");
, StopAllVibrationFor(player);
, ...
Ardından , her bir platforma ayrı ayrı uyarlanmış düşük seviyeli titreşim efektleri ve titreşim kontrol kodu oluşturmanız gerekecektir .
Bir müzik oyunu için bile, PlayVibration
her ritim için tek atış yapmak , oyunu duraklatmak ve akıllı olacak bir periyodik efekt üretecini yeniden senkronize etmek için çarpanlara ayırırken yönetmek ve kontrol etmek daha kolaydır .
Gerçek bir solenoidle çalışan rumble sahip cihazlar bir ses cihazı gibi muamele edilebilir ve pil endişeleri nedeniyle ses API'leri kullanabilirken , solenoid sürekli olarak açılırsa / aktifse sistem düzenlemelerine uyulmalıdır . "Güç Seviyesi 0", "Solenoid Kapalı" ile aynı olmayabilir, bu nedenle özel dikkat gereklidir.