一.前言:
高光时刻这个功能,对于常玩游戏的应该都不陌生,比如王者荣耀的高光分享功能。以前很多人为了分享自己的游戏高光,还需要全程录制,然后自己截取,非常的麻烦,现在王者荣耀已经可以云端生成视频了,大大节省了玩家的游戏成本,也是一个不错的推广方式。
其实在王者荣耀之前就已经有很多游戏实现过这个功能,比如守望先锋的死亡回放,英雄联盟的死亡回放等,其实都是一个原理,只不过一个是死亡,一个是击杀。那么如何实现一个高光时刻呢?
最开始我认为是游戏中开启一个摄像机全程录制游戏,最后再剪辑。但是仔细想想,根本行不通。且不说剪辑的复杂度和对性能的消耗,就是全程开启录制也是一个不小的消耗啊。
我还专门测试了一下这个方法,虽然我们的游戏复杂度并不高(比王者荣耀差很多),在开启录制的情况下,60帧的游戏,会降低到55帧左右,这已经严重影响了游戏的体验,那做这个高光还有什么意义呢?
所以真正的高光时刻根本不是这个思路
二.实现思路:
1.高光数据:首先帧同步游戏,游戏的操作帧都存储在服务端,只需要服务端根据击杀情况,查找出高光时刻的帧数据片段集合返回给客户端即可。
2.如何回放;请求到游戏的高光数据集合,可以在客户端,或者服务端 再重新模拟一遍,帧同步的游戏,可以保证和原始的画面一模一样。然后使用摄像机录下整个过程即可。
3.如何录制:加载高光视频需要一个loading,
|