Unregelmäßige Mausbewegung in 3D-Spielen über RDP mit RemoteFX


11

Es scheint, dass der Standard-Maustreiber bei der Verbindung mit RDP mit bestimmten Anwendungen, wie z. B. 3D-Spielen, nicht gut funktioniert.

Mein Setup:

  • Windows 2012 R2 mit Hyper-V und starker Grafikkarte
  • VM mit Windows 8.1 Enterprise, RemoteFX und vGPU konfiguriert
  • Verbindung mit RDP über schnelle Verbindung.

Die 3D-Videoleistung ist dank RemoteFX / vGPU großartig. Es erlaubt definitiv, dass Spiele über RDP sehr gut spielbar sind (ohne die Maus).

Das Problem ist, dass die Maus im Spiel ziemlich verrückt reagiert - aber außerhalb der 3D-Umgebung völlig normal. (ZB in den Spielmenüs ist die Maus in Ordnung).

Am nächsten konnte ich erkennen, sowohl durch Experimentieren als auch durch viel Online-Suche (viele andere Leute hatten das gleiche Problem, aber keine Lösung gefunden) - es scheint, dass der Maustreiber seinen relativen Standort überträgt, anstatt sich zu bewegen.
Diese "Theorie" korreliert gut mit einigen Erklärungen, wie der Mauszeiger in das RDP-Fenster hinein- und herausspringt (z. B. ihn links aus dem Fenster heraus und rechts wieder hinein bewegen - und er verhält sich perfekt, dh ortsbezogene Maus und nicht bewegungsbasiert) und auch mit dem Verhalten im Spiel - z. B. wenn ich die Maus ein paar nach links bewege, springt die Ansicht verrückt nach links; Wenn ich es dann etwas nach rechts bewege, aber immer noch nicht ganz zurück in die Mitte (dh die Maus befindet sich immer noch links von der Mitte, aber nach rechts), springt es weiter nach links. (Dh es scheint, dass es immer noch meldet, dass es sich "links von der Mitte" befindet, anstatt sich "nach rechts zu bewegen").

Ich hoffe, irgendeine Lösung dafür zu finden. Ideen jemand?


Hm. Wäre es eine Option, mit einer spielerischeren RAS-Plattform zu experimentieren? NVIDIA-Streaming und Steam-Streaming funktionieren gut für mich (über Gigabit). Auch die relative Position erinnert mich an Mauszeiger im Tablet-Stil.
Geselle Geek

Verrückt, dass Jahre später, es ist immer noch nicht behoben. :(
Apache

Antworten:


8

Wow, nach einer Menge Nachforschungen und fehlgeschlagenen Versuchen habe ich das tatsächlich gelöst!
Nun, meistens gelöst - es ist funktional, aber nicht ohne Nachteile.

Dank der Antwort von @ JourneymanGeek und insbesondere des Beitrags, auf den er verlinkt hat, konnte ich dem Beispiel folgen und stellte schließlich fest, dass eine der vielen vom Remotedesktop-Client ActiveX implementierten Schnittstellen eine RelativeMouseMode- Eigenschaft unterstützt! Das klingt genau so, wie ich es brauche, es wird das RDP zwingen, relative Mausbewegungen zu unterstützen!

In diesem Beitrag in den MSDN-Foren habe ich jedoch festgestellt, dass "RelativeMouseMode in RDP-RDSH / RDVH-Szenarien nicht unterstützt wird und nicht verwendet werden sollte", aber ich dachte mir, es ist keine echte Produktionsumgebung, und ich konnte eine verwenden Funktion, die nicht unterstützt wird. Es war auch schlecht dokumentiert, aber es schien, als hätte ich das, was ich brauchte - diese Frage zu StackOverflow gab mir auch Hoffnung, dass es machbar war.

Also machte ich mich an die Arbeit, um eine einfache WinForms-App zum Hosten des ActiveX-Steuerelements zu implementieren, wobei die Eigenschaften der Schnittstelle "... Unsafe" festgelegt waren.


Wie sich herausstellte, meinte Microsoft diesmal mit "nicht unterstützt" "es funktioniert nicht".
Wenn ja, wäre dies eine SO-Frage, tut mir leid, Sie weiterzuleiten (aber ich denke, es ist gut, sie irgendwo dokumentieren zu lassen ...)


Allerdings war nicht alles umsonst, während ich mich mit dem RDP-Protokoll befasste, habe ich mir die RemoteFX-USB-Umleitung angesehen - und das sah nach einer Sackgasse aus, da grundlegende Eingabegeräte (wie Maus, Tastatur, Drucker) explizit blockiert sind vom USB-Umleitungsmechanismus:

Standardmäßig kann auf Geräte in den oben genannten Kategorien in der Remotesitzung mithilfe von Geräteumleitungsmethoden auf hoher Ebene zugegriffen werden. Diese Umleitungsmethoden ermöglichen in den meisten Benutzerszenarien eine optimale Leistung und Abwärtskompatibilität des Geräts. Folglich werden diese Geräte nicht über die RemoteFX-USB-Umleitung angeboten.

Nun, die endgültige Antwort ist, wie sich herausstellt, dass es einen Überschreibungsmechanismus für diesen Block gibt.


Schritt 1: RemoteFX-USB-Umleitung aktivieren
Hier finden Sie eine schöne Ausarbeitung: http://windowsitpro.com/virtualization/q-how-do-i-enable-remotefx-usb-redirection . Grundsätzlich auf dem Clientcomputer, verwenden Sie entweder lokale Richtlinie oder Gruppenrichtlinie festlegen RemoteFX USB Device Redirectionzu Enable, und ermöglichen Benutzer (oder nur Administratoren) die Rechte. Dann gpupdate /forceund neu starten.

Schritt 2: Aktivieren Sie die Umleitungsüberschreibung für die Maus.
Wie in diesem MS KB-Artikel erläutert , können Sie einen Registrierungsschlüssel festlegen, um ein bestimmtes Gerät (oder eine bestimmte Geräteklasse) für die USB-Umleitung zu aktivieren.

Wieder auf dem Client unter

HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows NT \ Terminaldienste \ Client \ UsbSelectDeviceByInterfaces

Sie können einen Zeichenfolgenwert mit der Gerätekennung hinzufügen.
Unter diesem Schlüssel habe ich beispielsweise den folgenden Zeichenfolgenwert hinzugefügt:

"GUID_DEVINTERFACE_MOUSE" = "{378DE44C-56EF-11D1-BC8C-00A0C91405DD}"

Abhängig von Ihrer Maus benötigen Sie möglicherweise eine andere Kennung, also YMMV. Aber fang damit an.

Schritt 3: Stellen Sie den RDP-Client so ein, dass die Maus umgeleitet wird.
In dem Artikel aus Schritt 1 heißt es:

Sobald es aktiviert ist, greifen Sie auf die Registerkarte Lokale Ressourcen zu, klicken Sie unter Lokale Geräte und Ressourcen auf Mehr. Daraufhin wird eine neue Einstellung für Andere unterstützt RemoteFX-USB-Geräte angezeigt. Mit dieser Einstellung können Sie viele Arten von USB-Hardware zuordnen, die mit der Vanilla RDP USB-Umleitung nicht möglich waren (siehe unten).

Darunter sollte ein Eintrag für Ihre Maus angezeigt werden. es könnte ein bisschen mehrdeutig sein wie:

Umleitung anderer Geräte

Wählen Sie Ihre Maus (oder einen anderen geeigneten Eintrag).

Das ist es! Sie haben jetzt eine Hardware-Maus "direkt" an Ihre VM angeschlossen, mit der die 3D-Spiele die relativen Mausbewegungen direkt aus dem Maustreiber herausziehen können (-ish ..).


Wie bereits erwähnt, gibt es jedoch einige Nachteile.

  1. Die Maus wird auf die RemoteFX-VM umgeleitet. Mit anderen Worten, der Clientcomputer verfügt nicht mehr über eine Maus , zumindest während die Remotedesktopsitzung geöffnet ist.
    Eine mögliche Lösung wäre, eine zweite Maus anzubringen und nur eine davon umzuleiten. (Ich habe das noch nicht ausprobiert, aber es sollte gut funktionieren).

  2. Aus irgendeinem Grund zeigt die Maus bei Umleitung keinen Cursor direkt in der Remote-Sitzung an. Während es immer noch funktioniert, ist es etwas verwirrend zu zielen, auf was Ihre Maus zeigt.
    Eine einfache Lösung besteht darin, Mouse Trails einzuschalten, wobei die Länge vollständig verringert wird. Mausspuren
    Dadurch wird die Position der Maus angezeigt, sie ist jedoch etwas träge.

  3. Obwohl diese Lösung gut funktioniert, ist die Maus insgesamt immer noch etwas langsam und träge.
    Sie können die Mausgeschwindigkeit, spielt mit Zeiger - Präzision aufdrehen (manchmal ist es das Ausschalten tatsächlich Hilfe bei dieser) und sogar mit den Mausbeschleunigung Registrierungseinstellungen unter twiddle HKEY_CURRENT_USER\Control Panel\Mouse( Mouse Speed, MouseThreshold1, und MouseThreshold2jeweils).
    Dies wird dazu beitragen, das Problem zu mindern, aber es nicht wirklich verschwinden zu lassen.

Insgesamt kann dies sogar 3D-Spiele sehr spielbar machen - für Gelegenheitsspiele, leider nicht besonders für zuckende Spiele. (Wenn Sie das brauchen, können Sie einfach Metall direkt in diese VHD booten und haben beide Optionen ....)


Gut gemacht ... hoffentlich kann jemand diese Informationen auch anderswo einsetzen.
Ich sage Reinstate Monica

Ich verwende Microsoft Remote Desktopauf einem MacBook Pro. Gibt es einen Override-Mechanismus für Mac?
Brian

@Brian Ich habe nicht den nebligsten :-) Funktioniert die Client-App dort genauso? Versuchen Sie, nach denselben Einstellungen zu suchen ...
AviD

3

Anscheinend verwendet remotefx nur "absolute" Eingabemodi im Tablet-Stil , was die Ursache für Ihr Problem ist. Ich kann keine Dokumentation zum Ändern finden.

Möglicherweise müssen Sie einen alternativen Fernzugriffsmodus in Betracht ziehen - Steam funktioniert gut für mich (mit einer NVIDIA-GPU auf dem 'Host' und einer versauten kleinen Bay-Trail-Box am anderen Ende). Nvidia hat eine Option für ihre Karten, aber das habe ich nicht wirklich versucht.

Kurz gesagt, es gibt keine offensichtliche Möglichkeit, dies mit remotefx zu beheben, es sei denn, das Spiel könnte so eingestellt werden, dass es den Eingabemodus verwendet, den remotefx verwendet.


2

Remotedesktop überträgt absolute Mausbewegungen, um die Anzahl der Mausbewegungspakete zu verringern, die vom Client zum Server gesendet werden müssen. Diese Anordnung funktioniert gut für die meisten Windows-Anwendungen (E-Mail, Surfen im Internet usw.). Viele 2D-Spiele sind auch damit einverstanden. FPS-Spiele benötigen jedoch im Allgemeinen relative Mausbewegungen, um den Mausblick zu steuern, den Remotedesktop leider nicht überträgt. Der Verlust relativer Mausbewegungsdaten führt dazu, dass das Spiel das Ansichtsfenster unerwartet dreht. Microsoft müsste Remotedesktop ändern, damit dieses Spieleszenario funktioniert. Die Verwendung des XBOX-Controllers für einen PC mit USB-Umleitung kann jedoch eine Alternative für Sie sein.


Danke, ich wusste das irgendwie und wiederholte auch meistens die Antwort von @ Journeyman ... aber der Controller ist eine gute Lösung (obwohl er mir nicht helfen wird ...)
AviD
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.