タイトル:コントローラーが時々操作不能になるの対処法
本篇博文附带日语翻译。日本語訳付き(間違えたところがあったら教えてください)。
TL;DR: 用手柄游玩FFXIV的时候,如果发生硬件变动(包括新增和删除设备),将会导致手柄短暂失去响应。这是游戏本身的问题,但我们可以通过避免设备变动的发生来规避它。
まとめ:コントローラーでFFXIV遊んでいるとき、デバイスが検知もしく削除された場合、コントローラーが数秒間操作不能になる。これはゲーム自体の問題ではあるが、デバイスの検知・削除を避けることで、この問題を回避することができる。
症状
在Windows用手柄游玩的时候,偶尔会有几秒钟无法操作,此时会重复之前输入的指令。Windowsにてパッドでプレイしているとき、たまに数秒程度操作が受け付けられなくなり、直前の入力内容が繰り返されます。
- 不管按哪个按钮都没有反应。 どのボタンを押しても反応しなくなる。
- 如果正在移动(左摇杆)的话,就算松开摇杆角色也会继续移动(无法控制)。移動(左レバー操作)をしていると、上記と同じでレバーを離しても移動し続ける(操作不能)。
- 如果正在移动视角(右摇杆)的话,就算松开摇杆视角也会继续移动(无法控制)。視点移動(右レバー操作)しているとレバーを離しても、1~2秒間視点が動き続ける(操作不能)。
解决方案 / 対処法
执行PowerShell脚本以监控是什么硬件发生了变动。PowerShellスクリプトを実行して、検知・削除されたデバイスを特定する。
脚本内容如下。スクリプトの内容は以下通り。
# Device Manager # 0 Other Devices # 1 Error Devices (Yellow Bang) # 2 Camera Number function GetDevStatus { $Device_other = @() $Device_yellowbang = @() $CameraNum=0 $All_List = Get-WmiObject -Class Win32_PNPEntity foreach ($i in $All_List) { if ($Null -ne $i.Name -and $Null -eq $i.PNPClass) { $Device_other += ($i.Name) } if ($i.Status -eq "Error") { $Device_yellowbang += ($i.Name) } if ($i.PNPClass -eq "Camera"){ $CameraNum+=1 } } return $Device_other, $Device_yellowbang,$CameraNum } function CatchChange { Write-Host("************Listening Device Change************") $device=Get-WmiObject -Class Win32_PNPEntity $device_num=$device.Length while ($device_num -eq((Get-WmiObject -Class Win32_PNPEntity).Length)){ } if ($device_num -gt((Get-WmiObject -Class Win32_PNPEntity).Length)){ Write-Host("Remove Device") } else{ Write-Host("Add Device") } $device_Change=Get-WmiObject -Class Win32_PNPEntity $device_Compare=Compare-Object $device $device_Change Write-Host($device_Compare.InputObject.Name) } # CatchChange $a = GetDevStatus if ($Null -eq $a) { Write-Host("No Error") } else { Write-Host("************Other Devices************") $a[0] Write-Host("") Write-Host("************YellowBang Devices************") $a[1] Write-Host("") Write-Host("************Camera Num************") $a[2] } while ($True){ CatchChange }
请把这个脚本保存为 script.ps1 并右键使用PowerShell运行。script.ps1 として保存して、右クリック「PowerShell で実行」してください。
这样一来,应该可以看到如下界面。回到FFXIV接着玩,发生症状之后应该就能看到脚本监控到了设备变动。Add Device和Remove Device的下面就是我们需要注意的设备。そうすると、Windows PowerShellのウィンドウが出てくる。しばらくFFXIVを遊んで、操作不能になったらさっきのウィンドウをチェック。「Add Device」と「Remove Device」の下のデバイスに注目。
我这里造成问题的设备是「HID-compliant vendor-defined device HID-compliant mouse」(蓝牙鼠标)。在这之前也有出现过「surface pen」。因为鼠标放置一段时间的话就会自动关掉电源,所以会产生设备的变动。自分のところは「HID-compliant vendor-defined device HID-compliant mouse」だった(ワイヤレスマウス)。他に「surface pen」もあった。ワイヤレスマウスをしばらく放置したので、電源が自動的に切れただろう。
知道了问题所在,把蓝牙鼠标的电源关掉,把手写笔收起来之后问题就解决了。解決策として、ワイヤレスマウスの電源を切った。それ以降問題がなくなった。
在禁用了「Microsoft Device Association Root Enumerator」之后问题并没有解决,所以写了这篇文章。「Microsoft Device Association Root Enumerator」を無効にすることで治らなかったので、この文章を書いた。
具体的处理方法根据设备不同也会不同,如果是外接设备的话关掉应该就可以了。如果有问题的话可以在评论里告诉我设备名称。具体的な対処法は特定されたデバイスによるが、外部デバイスだと電源を切ったらOKだと思う。何か問題があったらコメントお願いします。
参考
https://jp.finalfantasyxiv.com/lodestone/character/2800076/blog/2761167/