Recast Navigation是一个开源的游戏导航/寻路引擎,可以为游戏中的AI提供寻路计算。UE和Unity都是集成了RecastNavigation来为游戏提供导航和寻路计算(当然是修改过的版本),UE的模块NavigationSystem以及NavMesh中可以看到相关的代码实现。
最近有个需求是要将客户端的地图信息导出给非UE网络架构的服务端,用于在服务器上对玩家位置的校验,想到可以把客户端的生成的导航数据导出作为客户端世界的地图,所以折腾了一下写了一个UE的插件(开源在Github上:**ue4-export-nav-data)实现了直接**将UE生成的导航数据导出,有兴趣的可以直接去看具体的代码。
根据导出的导航数据可以完整地在非UE网络架构的服务端上实现基于Recast Navigation的寻路计算,而且与UE无缝衔接。

**2019.12.04 Update:**本插件已上架虚幻商城,购买链接ExportNavigation,为了程序员情怀支持开源,所以该项目在Github上的开源仓库不会关闭,但基本不会更新,如果该插件对你有用,欢迎在商城购买支持作者。

阅读全文 »

Oculus Quest是Oculus发布的新一代支持6DoF的VR一体机设备,不需要连接PC以及额外的定位基站,而且支持Guardian,当戴着头显走出定位边界时,头显中会立即显示现实中的画面,防止玩家误碰出现意外情况。
Oculus Quest使用两个Pentile OLED的屏幕,单眼分辨率为1440x1600,刷新率为72Hz,使用的是arm架构的高通骁龙835处理器,与两年前的Android旗舰级的处理器相同(如小米6、三星S8)。
Quest使用的是Oculus Insight(inside-out tracing)定位方案,使用四枚摄像头进行位置追踪,分别位于头显面板的四角。
发布会时对Oculus Insight的介绍:Oculus Insight VR Positional Tracking System (Sep 2018)

以及国外的一个老哥对Quest追踪范围的测试视频:Quest Distance Test.

Oculus Quest64G存储版本的售价为399刀,128G的为499刀,不计税的价格大概是3500;相比较HTC的同类新产品(HTC Vive Focus)是便宜了不少,与PC-Base VR相比那就更具优势了,还不需要一台高性能的主机,我觉得6DoF的VR一体机设备一定是未来的趋势!

国庆前的OC6,Oculus发布了Oculus Link和finger tracking两项技术,十分厉害,十分看好。

整套Quest设备的大小与10.5寸的iPad差不多,提个小包就能带走:

Quest设备的参数细节不再多说,本篇文章的主要内容是使用UE来开发Quest项目时的环境部署、开发文档、调试工具以及额外的注意事项,会持续更新。

阅读全文 »

Module是构成Unreal的基本元素,每一个Module封装和实现了一组功能,并且可以供其他的Module使用,整个Unreal Engine就是靠各个Module组合驱动的,连我们创建的游戏项目本身,都是一个单独的Module。

那么UE又是怎么创建和构建这这些Module的呢?这是写这篇文章的主要目的,研究一下Unreal的构建系统以及它们(Target和Module)支持的各种属性。

建议在看这篇文章之前先看一下我之前的这篇文章:Build flow of the Unreal Engine4 project,主要内容是大致过一遍UE的构建流程,本篇文章只是UE构建系统中的一环。

阅读全文 »

工欲善其事,必先利其器!掌握好的工具会使开发效率上一个层次。
本文是我平时记录在notes中关于UE工具链以及一些组合UE使用的工具配置和使用技巧的笔记整理,后续这方面的内容也会收录到这篇文章中。
下面是我之前写的关于UE工具链或扩展相关的单独的文章:

阅读全文 »

UE的EULA License Grant/(A)中明确说明了,使用UE开发并再分发的内容不得包含未Cook的源格式和基于引擎工具**开发的付费内容,本篇文章研究一下EULA里对内容分发的具体内容和从技术上怎么绕过这个限制。

阅读全文 »

PixelStreaming是UE_4.21开始支持的一项技术,简单来说就是能够将游戏跑在服务器上,你可以通过浏览器来玩,玩家端不需要额外操作,只需要一个浏览器,所有的逻辑处理和渲染都在“云”端执行。它不仅仅只是一个插件(虽然有PixelStreamingPlugin这个插件,但它只是PixelStreaming实现中的一环),其实现具有一套独立与UE游戏的设计和组织方式。
本篇文章主要介绍PixelStreaming中的基本概念和使用PixelStreaming的Demo的实际体验。

阅读全文 »

在Windows上,UE的模块在非IS_MONOLITHIC(打包成一个单独的可执行文件的单片模式(Monolithic))模式下,是通过查找DLL来加载模块的。可以调用FModuleManager下的LoadModuleWithFailureReason/LoadModuleChecked等函数,通过传入Module的字符串名字来加载。
本篇文章算是UE4 Modules:Load and Startup的扩展和补充,与之不同的是,这篇文章的侧重点在于Module的DLL的查找和加载的细节而不是引擎启动和加载Module的时机和顺序。

阅读全文 »

游戏上架Steam必须要接入SteamSDK,本篇文章简单介绍一下在UE4中接入SteamSDK的方法,后续与接入Steam平台服务相关的内容也会放到这篇文章中。

SteamSDK的接入可以使游戏与Steam的社区整合,Steam拥有很好的社区生态,这一点是Epic刚出的Epic Games Store目前比不了的~(当然我是支持市场竞争的。

阅读全文 »

UE4中提供了一套非常成熟的INI文件配置机制,引擎中也使用了ini作为引擎和项目的配置文件。本篇文章来简单分析一下引擎中GConfig的加载。

阅读全文 »