UE4开发PSVR游戏流程

  1. 先与sony的开发者关系部建立联系,展示工作室/公司制作PSVR游戏的构想和计划以及制作实力,如果对方觉得你提供的信息具有说服力,则会提供开发者资格,和你签署NDA,给你租借开发机和测试机(免费)。
  2. 安装PS4 SDK

    从官方提供的Playstation DevNet上下载PS4 SDK。因大陆可能墙了PS的IP,可以租用境外的服务器(该服务器ip必须告知sony的联系人,列入其白名单)进行此操作,下载后安装,有5个选项,Install SDK, Uninstall SDK, Switch SDK or Copy Samples, Download Files for Offline Installation, Configuration,选择Download Files for Offline Installation.制作离线安装包

    进去以后选择第一个选项Standalone Installer,选择所有选项,设置好输出位置,等待下载完成,就会生成一个离线安装包,把这个安装包放置到任何pc上都可以离线安装PS4 SDK了。

  3. 连接硬件

    连接好devkit/testkit,注意devkit有两个网线接口,都要插上网线。

    设置好devkit/testkit的ip地址,注意用于开发的PC和devkit要在同一个局域网
  4. 激活硬件

    根据PS4 Dev net(需要从列入sony白名单的ip地址才能注册和访问)上的帮助文档(Getting Started>Development Kit Setup Guid>Activation),先注册开发机和测试机,Hardware>Active hardware,选择所有的硬件,点下面的激活按钮。获取到一个注册码文件,将其名称改一下(去掉后面的日期),拷贝到u盘根目录,插在开发机/测试机的USB接口上(注意,devkit要插后方的usb接口)。在devkit上选择”*Debug Settings>Activation>Activate from USB”,进行激活

    最后在Neighbourhood(PS4SDK安装时一起安装的工具)里连接开发机,如果无法自动发现,就手动输入ip地址进行添加。

  5. 获取 UE4源码
    先在github获取UE4的最新版源码,过程比较容易,网上也有教程。
  6. 在PS4 Devnet上申请开发资格

    在PS4 Dev net上的Development > Tools & Middleware,点击最下方的Unreal Engine4 后面的Confirm developer status,如果提示没有权限,就提交一个private support申请,让sony的技术人员帮忙解决。

  7. 向Epic申请PS4的Console Source Code

    在虚幻的如下页面:

    http://help.epicgames.com/customer/en/portal/articles/2313998-how-do-i-get-access-to-ue4-console-source-code-?b_id=9727

    如果上述链接失效,先点击该链接:

    https://www.unrealengine.com/blog/playstation-4-and-xbox-one-now-supported

    然后点击Step2中提供的申请链接,打开的页面如果并没有任何表单,就换一个浏览器试试。表单的信息,公司名称要和sony那边注册的信息保持一致,如果顺利,很快epic就会回邮件与你联系,要求通过网络签署一份nda协议,然后就会发一个ftp链接和账户密码,下载与你的UE4源码匹配的UE4PS4源码。注意这些源码是受到nda限制和保护的,不要与其他人分享。

  8. 编译UE4的PS4版本

    下载的UE4 source code 和 UE4 PS4 source code解压在一起,先点击setup.bat 进行设置,可能需要比较漫长的等待,安装必要的环境。

    再点击GenerateProjectFiles.bat,生成一个sln文件,用vs2015打开该文件,Build软件。详细过程如下:

    1. 工具栏中的"解决方案配置"下拉菜单选择"Development Editor","解决方案平台"选择"Win64",然后鼠标右键点击"解决方案资源管理器"中"Engine"下的"UE4",选择"生成",需要一个漫长的编译过程。
    2. 类似第一步,在Development Editor/Win64下生成UnrealFrontend
    3. 类似第一步,在Development/Win64 下生成UE4
    4. 类似第一步,在Development/PS4下生成UE4

    编译好的编辑器的exe文件在Engine\Binaries\Win64\UnrealEditor.exe,这就是以后做ps4开发要用到的特殊版本的ue了。

  9. 创建测试工程,在PS4 devkit上测试

    之后可以打开这个编辑器,创建新的测试工程,后面的步骤可以参考UE4PS4里提供的pdf指导文档,但该指导文档写的比较离谱,很多都和现在的版本不一致,特别是cook 的过程写的很复杂,其实不需要,直接可以在编辑器里点击”Windows”菜单,Project Launcher,找到ps4,点击后面的Launch,经过漫长的等待,游戏就会自动发送到Neighbourhood中默认的开发机上进行运行了。

  10. PSVR的一些设置,直接参考网上的两篇篇帖子

    第一篇是设置头盔的:

    There are a few things to make sure in order to enable PSVR.
    First: You should navigate to your projects Build\PS4 folder. There should be the file sce_sys\param.sfo. If it isn't there, you should copy the Build\PS4 folder from your engine (custom source build with PS4 files) over to your projects directory and remove the read only flags from the files. Open the param.sfo file using Sony's tool (PS4SDK\ORBIS\Tools\Publishing Tools\bin or something like that it is) and go to the "Peripherals etc" section. Make sure that you check one of the "Support / Require PSVR" options there and save the param.sfo file.

    Second: Make sure that you enable the Morpheus plugin which you can find in the plugin list under Build-In \ Virtual Reality. Eventually restart the editor.

    Third: Now that the plugin is activated, navigate to your project settings. Down below, you should see the category "Morpheus" in the left list. Select it, and check the "Enable Morpheus" option in the right list.

    That's it! Launch your project and it should work (that worked for me on a blank project in 4.13).
    第二篇是设置Move的:

    Check the following and Launch your game to PS4 then PS VR and Move Controllers should work.

    1. Project Setting > Plugins > Morpheus > Enable Morpheus = true

    2. Edit > Plugins > Virtual Reality > Morpheus > Enabled = true

    3. Edit > Plugins > Input Devices > Move Controller Plugin > Enabled = true

    4. For Move Controllers check here

    https://docs.unrealengine.com/latest/INT/Platforms/VR/MotionController/index.html

常见问题:

1. Failed to connect to file server at xxx.xxx.xxx.xxx. RETRYING in 5s.

解决办法:Go to PS4  Settings->Debug Settings->Network->Network->Network Interface Selection and select Routing Information