前言
最早接触Moonlight
是在2018年那会儿,到现在也有差不多5年了。不得不说串流真的香,让我能在任何地点任何时间利用碎片化时间愉快地玩耍各种3A大作。最近在研究Moonlight
的体感设置,刚好成功,特此一记。
何为Moonlight
放上一段官网的介绍:
Moonlight allows you to play your PC games on almost any device, whether you’re in another room or miles away from your gaming rig.
简而言之就是可以在任何地点任何时间通过任意设备游玩各类3A大作,摆脱了一定要在电脑前正襟危坐的尴尬。床上客厅,公交地铁,甚至厕所也将成为我们的游乐园。接下来就是设置部分
配置Moonlight
官网的教程其实已经很详细了,我这边是总结下自己实际操作中遇到的一些问题及补足。
内网配置
PC服务端
Moonlight
有个限制条件就是PC必须得是N卡
。在安装NVIDA Geforce Experience
后,在设置中启用SHELD
选项- 添加桌面程序 //路径为”C:\Windows\System32\mstsc.exe”
手机平板客户端
- 从谷歌商店下载安装
Moonlight
后打开会自动搜寻局域网的PC服务端 //如未出现则手动输入电脑ip地址 - 点击小电脑图标并在PC服务端完成首次配对
- 点击mstsc即可访问PC服务端
PC客户端
- 从
Moonlight
官网下载安装包,绿色版或安装版都行,看个人需求 - 配对过程同手机平板客户端
至此内网配置已经完成,大家已经可以在局域网内通过各自的手机平板或PC进行愉快的串流游玩啦
外网配置
内网配置完成后外网配置其实也就非常简单了,主要是在路由上的设置。
方案一:端口转发
首先确保自身有公网环境,如无公网可致电运营商请求或通过内网穿透方案
1、通过转发路由的以下端口:
- TCP 47984, 47989, 48010
- UDP 47998, 47999, 48000, 48002, 48010
2、在客户端中输入PC服务端的域名或ip地址,配对过程同内网
方案二:远程局域网
如果懒得在路由上暴露端口的小伙伴也可以使用远程局域网的方案。即通过搭建一条回家的隧道来进行串流。我这里使用的是WireGuard
方案,得益于其轻量化高性能的特性,实测轻松跑满我家上行带宽。
至此我们已经可以彻底摆脱了地域限制,可以在户外进行愉快玩耍啦
增加体感(射击类玩家刚需)
射击类游戏的瞄准这块一直是手柄玩家的痛点,相比起鼠标的灵活,右摇杆一直瞄不准。所以为Moonlight
添加体感瞄准支持非常有必要,当然手柄射击大神自动忽略该段
手机平板客户端
- 手机或平板客户端安装
Motion Source
后,打开并设置如下 - 把客户端的ip地址记录下来
PC服务端
- PC服务端下载
Motion Assistant
//目前版本为1173 - 分别安装以下两个驱动:
–HidHideMSI.msi
–ViGEmBusSetup_x64.msi - 重启PC服务端并打开
Motion Assistant
进项如下设置
打开游戏就可以发现已经开启游戏体感了,丝滑且精准2333
使用Sunshine
前文提到的是通过N卡
自带的Geforce Experience
来作为服务端串流,但该方法有较多限制,比如只能限定N卡
;同时只支持1个客户端串流(这样将导致无法多人本地联机串流);Geforce Experience
的更新较慢,且英伟达官方将来砍掉对该串流方法的支持以推广其新的GeForceNow
。综上所述我开始尝试开源的Sunshine
来作为串流服务端,体验完只能说真香
配置Sunshine
初始配置
1、在这里下载Sunshine
最新版完成安装后并运行,他会自动配置开机自启等操作。
2、然后点击右下角应用图标打开Sunshine
主界面,第一次会要求配置一个账户和密码,后续每次登录都会用到
3、进入主界面后,去Config
菜单把语言设置成简体中文后,退出后台再进界面就会变为简体中文。
4、如果本机同时运行着Geforce Experience
会提示端口冲突报错,去配置
下Network
选项卡中修改成其他端口保存并重启Sunshine
5、再次登陆后报错消失。
进阶配置
多客户端串流同一服务端
在配置
下General
选项卡中把最多同时连接客户端数
改为需要的数量,保存并重启服务端
客户端全屏串流,即消除大黑边
1、下载QRes并解压到任意路径
2、在客户端分辨率选择原生分辨率,这里以2500*1800为例
3、在显卡控制面板中添加自定义分辨率为2500*1800
4、在Sunshine
应用程序选项卡中打开执行命令中输入如下指令,r表示分辨率–开启串流后自动修改自定义分辨率
D:\ScreenResolutionChanger-master/qres.exe /x 2500 /y 1800 /r:120
5、在Sunshine
应用程序选项卡中退出应用时执行命令中输入如下指令,r表示分辨率–退出串流后恢复1080p标准分辨率
D:\ScreenResolutionChanger-master/qres.exe /x 1920 /y 1080 /r:60
客户端自动调整屏幕比例,避免高分屏显示过小
1、下载SetDPI并解压到任意路径
2、假设我们串流高分屏需要设置175%比例,退出高分屏需要设置125%比例
3、在Sunshine
应用程序选项卡中打开执行命令中输入如下指令,数字代表屏幕比例–开启串流后自动修改自定义屏幕比例175%
D:\ScreenResolutionChanger-master/SetDpi.exe 175
4、在Sunshine
应用程序选项卡中退出应用时执行命令中输入如下指令,数字代表屏幕比例–开启串流后自动修改自定义屏幕比例125%
D:\ScreenResolutionChanger-master/SetDpi.exe 125
键盘映射
这一部分主要是为了远程串流办公,而非串流游戏。
一般用安卓+键盘串流的时候会有两个痛点,第一个是一些快捷键无法使用,比如按下alt+tab
会激发安卓自身的多任务而非串流机的多任务,又比如按下语音助理键会导致唤醒安卓的语音助理而非串流机的win
键。这类问题按以下两个步骤就可解决。
1、屏蔽物理按键
安装阿西西大佬定制的Moonlight
客户端,勾选屏蔽物理按键并开启无障碍权限后即可正常使用alt+tab
以及正常的快捷键
2、按键映射
这一步是给一些安卓平板自带的键盘,即非标键盘使用的。比如我这里使用的是联想pad pro 12.7
配合原厂键盘来进行串流。其键盘顶部不是fn
键,而是安卓的音量加减等功能键,并且win
键是语音助手。这时我们就需要使用key Mapper
这款软件来对这些功能键进行映射。
1、下载安装后打开,授予无障碍权限后点击➕开始进入配置
2、Trigger
是录入自定义按键,Actions
是自定义按键对应的处罚动作
3、一般按键都没什么问题,值得一提的是win
键,Actions
里要选的是117号
至此,已经可以愉快地用任意键盘来串流办公啦
最后
最后重点感谢下Moonlight
的开发者,为Moonlight
添加体感控制的开发者以及为Moonlight
定制各种功能的开发者。我们能够这么愉快的玩耍离不开他们的付出。是他们的努力使得在移动端游玩3A大作成为可能,愿未来可期,越来越好
发表回复