UE4开发PSVR游戏流程
- 先与sony的开发者关系部建立联系,展示工作室/公司制作PSVR游戏的构想和计划以及制作实力,如果对方觉得你提供的信息具有说服力,则会提供开发者资格,和你签署NDA,给你租借开发机和测试机(免费)。
- 安装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了。
- 连接硬件
连接好devkit/testkit,注意devkit有两个网线接口,都要插上网线。
设置好devkit/testkit的ip地址,注意用于开发的PC和devkit要在同一个局域网
- 激活硬件
根据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地址进行添加。
- 获取 UE4源码
先在github获取UE4的最新版源码,过程比较容易,网上也有教程。 - 在PS4 Devnet上申请开发资格
在PS4 Dev net上的Development > Tools & Middleware,点击最下方的Unreal Engine4 后面的Confirm developer status,如果提示没有权限,就提交一个private support申请,让sony的技术人员帮忙解决。
- 向Epic申请PS4的Console Source Code
在虚幻的如下页面:
如果上述链接失效,先点击该链接:
https://www.unrealengine.com/blog/playstation-4-and-xbox-one-now-supported
然后点击Step2中提供的申请链接,打开的页面如果并没有任何表单,就换一个浏览器试试。表单的信息,公司名称要和sony那边注册的信息保持一致,如果顺利,很快epic就会回邮件与你联系,要求通过网络签署一份nda协议,然后就会发一个ftp链接和账户密码,下载与你的UE4源码匹配的UE4PS4源码。注意这些源码是受到nda限制和保护的,不要与其他人分享。
- 编译UE4的PS4版本
下载的UE4 source code 和 UE4 PS4 source code解压在一起,先点击setup.bat 进行设置,可能需要比较漫长的等待,安装必要的环境。关于如何加快这个步骤,参考另外一篇.
[更新] 这里不需要按照PS4.pdf上的指导(上面说的太麻烦了),直接把UE4设置为启动项目,确保Sulotion Configurations是Development Editor, Solution Platforms 是Win64,直接按F5(或者右键UE4>Debug>Start new instance)。等待大约四五十分钟会全部Build完成。
- [踩坑更新] 上一步完成后再右键UnrealLightmass>Build,编译Lightmass,不然后面没法烘焙灯光贴图!
编译好的编辑器的exe文件在Engine\Binaries\Win64\UnrealEditor.exe,这就是以后做ps4开发要用到的特殊版本的ue了。
关于Build的Configuration可以参考官方文档:https://docs.unrealengine.com/latest/INT/Programming/Development/BuildConfigurations/index.html创建测试工程,在PS4 devkit上测试
之后可以打开这个编辑器,创建新的测试工程,后面的步骤可以参考UE4PS4里提供的pdf指导文档,但该指导文档写的比较离谱,很多都和现在的版本不一致,特别是cook 的过程写的很复杂,其实不需要,直接可以在编辑器里点击”Windows”菜单,Project Launcher,找到ps4,点击后面的Launch,经过漫长的等待,游戏就会自动发送到Neighbourhood中默认的开发机上进行运行了。
关于如何在PS4上运行和测试,参考我的另外一篇文章:Best Practices For Running On the PS4- PSVR的一些设置,直接参考Epic 论坛上的两篇篇帖子
第一篇是设置头盔的:
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 = true2. Edit > Plugins > Virtual Reality
> Morpheus > Enabled = true3. Edit > Plugins > Input Devices
> Move Controller Plugin > Enabled = true4. For Move Controllers check here
https://docs.unrealengine.com/latest/INT/Platforms/VR/MotionController/index.html
在工程设置>General Settings里勾选上Start In VR
关于Rendering Path 和 抗锯齿的组合,参考我的另外一篇文章 http://www.cnblogs.com/AnKen/p/6843007.html
在Unreal PS4论坛上也发了一个英文版本(仅有相关权限用户可见),地址:https://forums.unrealengine.com/showthread.php?147275-Development-environment-setup-for-PS4-(and-PSVR)-step-by-step
UE4开发PSVR游戏流程的更多相关文章
- UE4开发PSVR游戏,使用RazorGPU进行调试的方法
打开Project Launcher,如果没有需要的Devkit平台目标,就点下方的Device Manager,右键Claim 相应的目标.如果已经出现在Project Launcher中,点击上方 ...
- UE4开发PSVR游戏的常见问题
Failed to connect to file server at xxx.xxx.xxx.xxx. RETRYING in 5s解决办法:PS4 Devkit 中 Settings->De ...
- cocos2d-x 3.11 游戏开发环境搭建流程
cocos2d-x 3.11.1 游戏开发环境搭建流程 1. 准备下面的软件 1) Windows7 64Bit+ VS2013 (VC++) 这个不用多说. 2) cocos2d-x-3.11.1. ...
- 用canvas开发H5游戏小记
自神经猫风波之后,微信中的各种小游戏如雨后春笋般目不暇接,这种低成本,高效传播的案例很是受开发者青睐.作为一名前端,随手写个这样的小游戏出来应该算是必备技能吧.恰逢中秋节,部门决定上线一个小游戏,在微 ...
- JS开发HTML5游戏《神奇的六边形》(三)
近期出现一款魔性的消除类HTML5游戏<神奇的六边形>,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏. (点击图片可进入游戏体验) 因内容 ...
- C#开发Unity游戏教程之判断语句
C#开发Unity游戏教程之判断语句 游戏执行路径的选择——判断 玩家在游戏时,无时无刻不在通过判断做出选择.例如,正是因为玩家做出的选择不同,才导致游戏朝着不同的剧情发展,因此一个玩家可以对一个游戏 ...
- JAVASCRIPT开发HTML5游戏--斗地主(网络对战PART4)
继之前用游戏引擎(青瓷引擎)做了斗地主单机版游戏之后,这里分享下使用socket.io来实现网络对战,代码可已放到github上,在此谈谈自己整个的开发思路吧. 客户端代码 服务端代码 (点击图片进入 ...
- javascript开发HTML5游戏--斗地主(单机模式part3)
最近学习使用了一款HTML5游戏引擎(青瓷引擎),并用它尝试做了一个斗地主的游戏,简单实现了单机对战和网络对战,代码可已放到github上,在此谈谈自己如何通过引擎来开发这款游戏的. 客户端代码 服务 ...
- javascript开发HTML5游戏--斗地主(单机模式part2)
最近学习使用了一款HTML5游戏引擎(青瓷引擎),并用它尝试做了一个斗地主的游戏,简单实现了单机对战和网络对战,代码可已放到github上,在此谈谈自己如何通过引擎来开发这款游戏的. 客户端代码 服务 ...
随机推荐
- jt获取鼠标指针的位置
屏幕 screenX和screenY属性表示鼠标在整个显示屏的位置,从屏幕(而不是浏览器)的左上角开始计算的. 页面 pageX和pageY属性表示鼠标指针在这个页面的位置.页面的顶部可能在可见区域之 ...
- WordPress 数据库结构及表字段作用解析
对于WordPress的开发可以说子凡已经是如痴如醉了,通过 WordPress 本身的开放性接口可以做到很多的事情,但是有些时候我们可能更喜欢直接查询数据库来实现某些 WordPress 没有提供的 ...
- 【MM系列】SAP ABAP BAPI 和 RFC 的区别
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP BAPI 和 ...
- char数组初始化
初始化 char str[10]="Hello"; char str[10]={'H','e','l','l','o','\0'}; char str[10]={'H'}; cha ...
- ArrayList,linkedList vecator的实现和区别
1.线程安全问题. ArrayList 和 linkedList 线程是不安全的,而vecator是线程安全的. 因为ArrayList 和 linkedList 是线程不同步的,vecator是同步 ...
- 数组的includes方法
Array.prototype.includes方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似.该方法属于 ES7 ,但 Babel 转码器已经支持. [1, 2 ...
- python控制流-导入模块
一.模块 1.含义 Python 程序可以调用一组基本的函数,这称为“内建函数”,包括你见到过的 print().input()和 len()函数.Python 也包括一组模块,称为“标准库”.每个模 ...
- 优化内存_内存泄漏——C
内存泄漏: 动态申请内存,没有正常释放,后续又申请内存,也没释放内存,导致内存池被全部被占用,最终再申请内存的时候失败:严格点则每次申请内存的时候判断申请到的指针是否为空,若为空NULL则表示申请失 ...
- Java8 特性详解(一) Lambda
为什么要使用lambda表达式 从函数式接口说起 理解Functional Interface(函数式接口)是学习Java8 lambda表达式的关键所在. 函数式接口的定义其实很简单:任何接口,如果 ...
- Flask 中请求钩子的理解和应用?
请求钩子是通过装饰器的形式实现的,支持以下四种:1,before_first_request 在处理第一个请求前运行2,before_request:在每次请求前运行3,after_request:如 ...