การเคลื่อนไหวของเมาส์ผิดพลาดในเกม 3D ผ่าน RDP ด้วย RemoteFX


11

ดูเหมือนว่าไดรเวอร์เมาส์เริ่มต้นเมื่อเชื่อมต่อกับ RDP ทำงานได้ไม่ดีกับบางแอปพลิเคชันเช่นเกม 3D

การตั้งค่าของฉัน:

  • Windows 2012 R2 พร้อม Hyper-V และการ์ดกราฟิกที่แข็งแกร่ง
  • กำหนดค่า VM ด้วย Windows 8.1 Enterprise, RemoteFX และ vGPU
  • การเชื่อมต่อกับ RDP ผ่านลิงค์ด่วน

ประสิทธิภาพวิดีโอ 3D ดีเยี่ยมด้วย RemoteFX / vGPU มันช่วยให้เกมเล่นได้เหนือ RDP อย่างแน่นอน (หากไม่ใช่สำหรับเมาส์)

ปัญหาคือว่าเมาส์ตอบสนองค่อนข้างบ้าคลั่งเมื่ออยู่ในเกม - แต่ปกติอย่างสมบูรณ์นอกสภาพแวดล้อม 3 มิติ (เช่นในเมนูเกมเมาส์ก็ใช้ได้)

ใกล้เคียงที่สุดที่ฉันสามารถบอกได้ว่าจากการทดลองและการค้นหาออนไลน์มากมาย (คนอื่น ๆ มีปัญหาเดียวกัน แต่ไม่พบวิธีแก้ปัญหา) - ดูเหมือนว่าไดรเวอร์เมาส์จะส่งผ่านตำแหน่งที่สัมพันธ์กันแทนที่จะเคลื่อนที่
"ทฤษฎี" นี้มีความสัมพันธ์ที่ดีกับคำอธิบายว่าตัวชี้เมาส์กระโดดเข้าและออกจากหน้าต่าง RDP ได้อย่างไร (เช่นเลื่อนออกจากหน้าต่างทางด้านซ้ายกลับเข้ามาทางด้านขวา - และทำงานได้อย่างสมบูรณ์เช่นเมาส์ตามตำแหน่งและ ไม่ใช่แบบอิงการเคลื่อนไหว) และยังมีพฤติกรรมในเกมเช่นถ้าฉันเลื่อนเมาส์ไปทางซ้ายมุมมองจะเพิ่มขึ้นอย่างบ้าคลั่งไปทางซ้าย ถ้าฉันขยับมันไปทางขวาเล็กน้อย แต่ก็ยังไม่กลับไปที่จุดศูนย์กลาง (เช่นเมาส์ยังคงอยู่ทางซ้ายของกึ่งกลาง แต่เลื่อนไปทางขวา) มันจะกระโดดต่อไปทางซ้าย (เช่นดูเหมือนว่ายังคงรายงานตำแหน่งของ "ด้านซ้ายของศูนย์" แทน "ย้ายไปทางขวา")

ฉันหวังว่าจะได้คำตอบในเรื่องนี้ คิดทุกคน?


ฮึ่ม การทดลองกับแพลตฟอร์มการเข้าถึงระยะไกลที่เป็นศูนย์กลางของเกมจะเป็นตัวเลือกหรือไม่? การสตรีม nvidia และการสตรีมบน Steam ใช้งานได้ดีสำหรับฉัน (มากกว่ากิกะบิต) นอกจากนี้ตำแหน่งสัมพัทธ์ทำให้ฉันนึกถึงการเตือนสไตล์แท็บเล็ต
Geek

บ้าว่าปีต่อมาก็ยังคงไม่ได้รับการแก้ไข :(
Apache

คำตอบ:


8

ว้าวหลังจากการวิจัยมากมายและความพยายามที่ล้มเหลวฉันแก้ไขปัญหานี้ได้จริง!
ดีส่วนใหญ่จะแก้ไขมัน - มันคือการทำงาน แต่ไม่ได้โดยไม่มีข้อบกพร่อง

ต้องขอบคุณคำตอบของ @ JourneymanGeek และโดยเฉพาะอย่างยิ่งการโพสต์ที่เขาเชื่อมโยงกับฉันทำให้ฉันสามารถติดตามลูกค้าเป้าหมายและในที่สุดก็พบว่าในบรรดาอินเทอร์เฟซมากมายที่ใช้งานโดย Remote Desktop Client ActiveX หนึ่งในนั้นสนับสนุนคุณสมบัติRelativeMouseMode ! ฟังดูเหมือนสิ่งที่ฉันต้องการมันจะบังคับให้ RDP รองรับการเคลื่อนไหวของเมาส์แบบสัมพัทธ์

อย่างไรก็ตามฉันได้ทราบเกี่ยวกับการโพสต์ฟอรั่ม MSDN นี้ว่า "RelativeMouseMode ไม่ได้รับการสนับสนุนในสถานการณ์ RDP RDSH / RDVH และไม่ควรใช้" แต่ฉันคิดว่าจะเฮคกับมันไม่ใช่สภาพแวดล้อมการผลิตจริงและฉันก็ใช้งานได้ดี คุณสมบัติที่ไม่รองรับ มันก็มีเอกสารไม่ดี แต่ดูเหมือนว่าฉันมีสิ่งที่ฉันต้องการ - คำถามนี้ใน StackOverflowทำให้ฉันหวังว่ามันจะเป็นไปได้

ดังนั้นฉันจึงตั้งค่าให้ใช้งานแอป WinForms ง่ายๆเพื่อโฮสต์ตัวควบคุม ActiveX ด้วยชุดคุณสมบัติอินเทอร์เฟซ "... ไม่ปลอดภัย"


ยกเว้นว่าตามที่ปรากฏโดย "ไม่สนับสนุน" ในครั้งนี้ Microsoft หมายถึง "ไม่ทำงาน"
ถ้าเป็นเช่นนั้นนี่อาจเป็นคำถาม SO ได้ขออภัยที่พาคุณไป (แต่ฉันคิดว่ามันเป็นเรื่องดีที่มีเอกสารไว้ที่อื่น ... )


อย่างไรก็ตามไม่ใช่ทุกอย่างที่ไม่เป็นไปได้ในระหว่างที่ขุดเข้าไปในโปรโตคอล RDP ฉันมองไปที่การเปลี่ยนเส้นทาง USB ของ RemoteFX - และดูเหมือนว่าจะเป็นจุดจบเนื่องจากอุปกรณ์อินพุตขั้นพื้นฐาน (เช่นเมาส์แป้นพิมพ์เครื่องพิมพ์) ถูกบล็อกอย่างชัดเจน จากกลไกการเปลี่ยนเส้นทาง USB:

โดยค่าเริ่มต้นอุปกรณ์ในหมวดหมู่ดังกล่าวสามารถเข้าถึงได้ในเซสชันระยะไกลโดยใช้วิธีการเปลี่ยนเส้นทางอุปกรณ์ระดับสูง วิธีการเปลี่ยนเส้นทางเหล่านี้เปิดใช้งานประสิทธิภาพสูงสุดและความเข้ากันได้ย้อนหลังของอุปกรณ์ในสถานการณ์ส่วนใหญ่ของผู้ใช้ ดังนั้นอุปกรณ์เหล่านี้จึงไม่ได้รับการเปลี่ยนเส้นทางผ่าน RemoteFX USB

คำตอบสุดท้ายตามที่ปรากฎก็คือมันมีกลไกแทนที่สำหรับบล็อกนี้


ขั้นตอนที่ 1: เปิดใช้งาน RemoteFX เปลี่ยนเส้นทาง USB
มีรายละเอียดที่ดีอยู่ที่นี่: http://windowsitpro.com/virtualization/q-how-do-i-enable-remotefx-usb-redirection โดยทั่วไปบนเครื่องไคลเอนต์คุณใช้ทั้งนโยบายท้องถิ่นหรือนโยบายกลุ่มชุดRemoteFX USB Device RedirectionไปEnableและช่วยให้ผู้ใช้ (หรือเพียงแค่ผู้ดูแลระบบ) สิทธิ จากนั้นgpupdate /forceเริ่มต้นใหม่

ขั้นตอนที่ 2: เปิดใช้งานการแทนที่การเปลี่ยนเส้นทางสำหรับเมาส์
ตามที่อธิบายไว้ในบทความ MS KB นี้คุณสามารถตั้งค่ารีจิสตรีคีย์เพื่อเปิดใช้งานอุปกรณ์เฉพาะ (หรือคลาสอุปกรณ์) สำหรับการเปลี่ยนเส้นทาง USB

อีกครั้งกับลูกค้าภายใต้

Services \ Client \ UsbSelectDeviceByInterfaces HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows

คุณสามารถเพิ่มค่าสตริงด้วยตัวระบุอุปกรณ์
ตัวอย่างเช่นภายใต้คีย์นี้ฉันเพิ่มค่าสตริงต่อไปนี้:

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

คุณอาจต้องใช้ตัวระบุอื่นทั้งนี้ขึ้นอยู่กับเมาส์ของคุณดังนั้น YMMV แต่เริ่มจากตรงนั้น

ขั้นตอนที่ 3: ตั้งค่าไคลเอนต์ RDP เพื่อเปลี่ยนเส้นทางเมาส์
ตามบทความจากขั้นตอนที่ 1 ระบุไว้:

เมื่อเปิดใช้งานแล้วให้เข้าถึงแท็บ Local Resources คลิกเพิ่มเติมภายใต้ Local devices and resources และคุณจะเห็นการตั้งค่าอื่น ๆ รองรับอุปกรณ์ USB ของ RemoteFX คุณสามารถใช้การตั้งค่านี้เพื่อแมปผ่านฮาร์ดแวร์ USB หลายประเภทที่คุณทำไม่ได้กับการเปลี่ยนเส้นทาง Vanilla RDP USB ดังที่แสดงด้านล่าง

ภายใต้ที่คุณควรเห็นรายการสำหรับเมาส์ของคุณ มันอาจจะคลุมเครือเล็กน้อยเช่น:

การเปลี่ยนเส้นทางอุปกรณ์อื่น ๆ

เลือกเมาส์ของคุณ (หรือรายการอื่นที่เหมาะสม)

แค่นั้นแหละ! ตอนนี้คุณมีเม้าส์ฮาร์ดแวร์ที่เชื่อมต่อ "โดยตรง" กับ VM ของคุณซึ่งทำให้เกมสามมิติสามารถดึงการเคลื่อนไหวของเมาส์แบบสัมพัทธ์ได้โดยตรงจากไดรเวอร์เมาส์ (-ish .. )


อย่างไรก็ตามตามที่ระบุไว้มีข้อบกพร่องบางอย่าง

  1. เมาส์ถูกเปลี่ยนเส้นทางไปยัง RemoteFX'd VM - อีกนัยหนึ่งเครื่องไคลเอนต์ไม่มีเมาส์อีกต่อไปอย่างน้อยในขณะที่เซสชันเดสก์ท็อประยะไกลเปิดอยู่
    ทางออกที่เป็นไปได้คือการแนบเมาส์ตัวที่สองและเปลี่ยนเส้นทางเพียงหนึ่งเมาส์ (ฉันยังไม่ได้ลองสิ่งนี้ แต่มันก็ใช้ได้ดี)

  2. ด้วยเหตุผลบางอย่างเมื่อเปลี่ยนเส้นทางเมาส์จะไม่แสดงเคอร์เซอร์โดยตรงในเซสชันระยะไกล ในขณะที่ยังใช้งานได้มันทำให้สับสนเล็กน้อยในการเล็งเมาส์ของคุณชี้ไปที่
    วิธีแก้ปัญหาอย่างง่ายคือการเปิดใช้ Mouse Trails โดยความยาวจะลดลงจนสุด เส้นทางเมาส์
    นี่จะมีตำแหน่งเมาส์ปรากฏขึ้น แต่มันก็ค่อนข้างเชื่องช้า

  3. โดยรวมแล้วในขณะที่วิธีนี้ใช้งานได้ดี แต่เมาส์ก็ยังช้าและช้า
    คุณสามารถเปิดขึ้นความเร็วของเมาส์เล่นที่มีความแม่นยำชี้ (บางครั้งปิดจริงจะช่วยเหลือด้วยนี้) และแม้กระทั่งกระดิกนิ้วเล่นกับการตั้งค่ารีจิสทรีเร่งเมาส์ใต้HKEY_CURRENT_USER\Control Panel\Mouse( Mouse Speed, MouseThreshold1และMouseThreshold2ตามลำดับ)
    สิ่งนี้จะช่วยลดปัญหา แต่ไม่ได้ทำให้หายไปจริงๆ

โดยรวมแล้วสิ่งนี้สามารถทำให้เกม 3 มิติเล่นได้มาก - สำหรับการเล่นเกมทั่วไป แต่ไม่เหมาะสำหรับการเล่นเกมกระตุก (แม้ว่าคุณต้องการให้คุณสามารถบูตโลหะตรงไปที่ VHD นั้นและมีทั้งสองตัวเลือก .... )


ทำได้ดีมาก ... หวังว่าบางคนสามารถใช้ข้อมูลนี้เพื่อทำงานที่อื่นได้เช่นกัน
ฉันพูดว่า Reinstate Monica

ฉันใช้Microsoft Remote Desktopกับ MacBook Pro มีกลไกการแทนที่สำหรับ Mac หรือไม่?
Brian

@Brian ฉันไม่ได้เป็น Foggiest :-) แอปไคลเอ็นต์ทำงานในลักษณะเดียวกันหรือไม่ ลองมองหาการตั้งค่าเดียวกันนั้น ...
Avid

3

AppRently remotefx ใช้โหมดอินพุตแบบ 'แน่นอน' ของแท็บเล็ตเท่านั้นซึ่งเป็นแหล่งที่มาของปัญหาของคุณ ฉันไม่พบเอกสารเกี่ยวกับการเปลี่ยนแปลง

คุณอาจต้องพิจารณาโหมดการเข้าถึงระยะไกลทางเลือก - ไอน้ำทำงานได้ดีสำหรับฉัน (ใช้ nvidia GPU ที่ 'โฮสต์' และกล่องทางเล็ก ๆ ที่อยู่อีกด้านหนึ่ง) Nvidia มีตัวเลือกสำหรับการ์ดของพวกเขา แต่ฉันไม่ได้ลองเลย

ในระยะสั้นไม่มีวิธีที่ชัดเจนในการแก้ไขปัญหานี้ด้วย remotefx เว้นแต่ว่าเกมจะถูกตั้งค่าให้ใช้โหมดอินพุต remotefx กำลังใช้งานอยู่


2

เดสก์ท็อประยะไกลส่งการเคลื่อนไหวของเมาส์อย่างสมบูรณ์เพื่อลดจำนวนแพ็คเก็ตการเคลื่อนไหวของเมาส์ที่ต้องส่งจากไคลเอนต์ไปยังเซิร์ฟเวอร์ การจัดเรียงนี้ทำงานได้ดีสำหรับแอปพลิเคชัน windows ส่วนใหญ่ (อีเมลการท่องเว็บเป็นต้น) เกม 2D หลาย ๆ เกมก็ดีเช่นกัน อย่างไรก็ตามโดยทั่วไปเกม FPS ต้องการการเคลื่อนไหวของเมาส์แบบสัมพัทธ์เพื่อควบคุม mouselook ซึ่งเดสก์ท็อประยะไกลจะไม่ส่งสัญญาณ การสูญเสียข้อมูลการเคลื่อนไหวของเมาส์สัมพัทธ์เป็นสาเหตุที่ทำให้เกมหมุนวิวพอร์ตโดยไม่คาดคิด Microsoft จะต้องแก้ไข Remote Desktop เพื่อให้สถานการณ์เกมนี้ทำงานได้ อย่างไรก็ตามการใช้ตัวควบคุม XBOX สำหรับพีซีที่มีการเปลี่ยนเส้นทาง USB อาจเป็นสิ่งที่เหมาะสมสำหรับคุณ


ขอบคุณชนิดของฉันรู้ว่าและยังเป็นส่วนใหญ่การทำซ้ำ @ คำตอบของคนงาน ... แต่การควบคุมเป็นทางออกที่ดี (แม้ว่าจะไม่ได้รับการช่วยฉัน ... )
Avid
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.