1. 虚幻3引擎的专业测评
◎ 64位色高精度动态渲染管道。
Gamma校正和线性颜色空间渲染器提供了完美的颜色精度,同时支持了各种后期特效例如光晕,镜头光环和景深等效果。
在最新的一代显示芯片发布的过程中,我们注意到了一个非常明显的特点,就是新一代的显示芯片已经不再满足于传统的32位色深,转而需要更加高精度的颜色范围,这一点在NV40和R420身上都能非常明显的看出来。在NV40上,这种技术被称为HPDR技术,而在R420身上,这种技术也有所体现。
◎ 支持当前所有的基于像素的光照和渲染技术,包括使用法线贴图技术的参数化的Phong光照;虚拟位移贴图;光线衰减函数;采用预计算的阴影遮罩技术以及使用球形harmonic贴图的预计算的凹凸自阴影
◎ 高级的动态阴影。
虚幻引擎3提供对下列3种阴影技术的完全支持:
· 采用动态模板缓冲的阴影体积技术,能够完整支持动态光源,这样就能在场景中所有物体上精确地投射阴影。
· 能够让动态的角色在场景中投射出动态的、柔和的模糊阴影,这个过程是通过使用16X超级取样的阴影缓冲实现的。
· 采用了拥有极高质量和极高性能的预先计算出的阴影遮罩,从而可以将静态光源的交互现象离线处理,同时保留了完整的动态高光和反射效果。
◎ 所有支持的阴影技术都是可视化的,并且可以按照美工的意愿自由混合。另外,同时可以与有颜色的衰减函数结合,从而实现具有合适阴影的平行光、聚光灯效果,以及投射光效果。角色能够在虚幻引擎3中使用阴影技术产生动态的软阴影
◎ 强大的材质系统,使得美工可以在实时图形化界面中建立任意复杂的实时Shader,而这个界面的友好度可与Maya的非实时Shader图形编辑界面媲美
◎ 材质框架是模块化的,所以程序员不仅可以加入新的Shader程序,还可以加入能够让美工随意与其他组件连接的Shader组件,从而可以实现Shader代码的动态合成。
◎ 完全支持室内和室外环境的无缝连接,在任何地方都支持的动态每象素光照和阴影。
◎ 美工可以通过一个可动态变形的基本高度图来建立地形,并使用多层混合材质,这其中包括位移贴图,法线贴图和任意复杂的材质,动态的基于LOD的细分,以及植被。
另外,地形系统还支持美工控制的自然效果,如平地上的植被,陡坡上的岩石和山顶上的雪。
◎ 体积环境效果,包括高度雾和物理上精确的距离雾。
◎ 刚体物理系统,支持游戏者和游戏中的物体,布娃娃角色动画以及复杂碰撞等物体交互方式。
布娃娃(Ragdoll)系统,是目前最为流行的一种非常高级的物理引擎,能够付给物体以一定的质量,形状等特性,从而获得非常逼真的力学动态效果。
◎ 所有可渲染的材质都含有物理特性,例如摩擦系数等参数。
在虚幻引擎3提供的编辑工具UnrealEd中,能够对物体的属性进行实时修改
◎ 符合物理原理的声音效果。
◎ 完全整合的基于物理原理的交通工具支持,包括游戏者控制,人工智能和网络。
◎ UnrealEd内建的可视化物理建模工具,支持对于模型和骨骼动画网格的用于优化碰撞检测的图元的建立;约束编辑;在编辑器内可交互的物理模拟和调整。
◎ 在地图编辑方面,使用了利用高度图直接生成地表高度的地图编辑器。(周诗超:这种游戏地图也称为“高度图”,是在较为流行的地图编辑方式。优点是地形变化丰富,美术的制作效率高。象前一段时间的《farcry》——“孤岛惊魂”就在这个功能上非常的强大)。
在编辑器里可以对不同的地面层进行柔和的材质融合,包括位移贴图,法线贴图或是更为复杂的材质类型,动态的LOD方格,及由程序自动在地表上生成大面积的植被等等强大的功能。引擎中还可以进行体积雾的设置,包括对雾的高度,雾的消失距离进行准确的设定。 ◎ 骨骼动画系统;支持每顶点可达4骨骼同时影响的效果以及复杂的骨骼结构。
◎ 动画由一棵动画物体树驱动,包括:
· 混合控制器,进行对嵌套的动画物体之间的多路混合。
· 数据驱动的控制器,封装动作捕捉或手动制作的动画数据。
· 物理控制器,连接到刚体动态引擎,用来实现布娃娃系统的游戏者和NPC动画和对力的物理响应。
· 过程动画控制器,以C++或UnrealScript实现,为了实现一些如使一个NPC的头部和眼睛跟踪一个在关卡中行走的游戏者,或使一个角色根据健康情况和疲劳度作出不同动作等特性。
◎ 为3D Studio Max和Maya制作的导出工具,用于向引擎中导出赋予蒙皮权重的网格,骨骼和动画序列。 ◎ 提供了一个支持普通游戏对象(如游戏者,NPC,物品,武器和触发器)的面向对象的游戏框架。
◎ 丰富的多级别AI系统,支持寻路、复杂关卡游历、单独决策和组队AI
· 对如触发器,门和升降机等普通游戏对象敏感的寻路框架,允许复杂的游历设定,使得NPC可以按下开关,打开门,并绕过障碍物。
· 游历框架带有短期战术战斗、掩护和撤退的路线网。
· 基于小队的AI框架,适合第一人称射击、第三人称射击和战术战斗游戏。
◎ AI路径在UnrealEd中可见并可由关卡编辑者编辑,允许自定义和提示
◎ 可见的AI脚本工具,使设计者可以创建复杂的交互性游戏设定,例如游戏者目标,通用的游戏事件触发器和交互式过场动画
◎ UnrealMatinee,一个基于时间线的可视化序列、动画和曲线路径工具。设计者可以使用此工具建立游戏中的过场动画,可以是交互的或非交互的,通过动画序列化、移动包括摄像机在内的对象,控制声音和视觉特效,并触发游戏和AI事件。
UnrealEd中的“Matinee”工具,能够编辑基于时间轴的事件序列
◎ 支持各种平台的输出格式,包含5.1环绕立体声和高品质杜比数码音效。
◎ 3维声源位置设置,多普勒效应。
多普勒效应:是指当发声物体在运动时,声音的音调会随着物体移动速度而改变其高低——声音频率的变化,这个原理也被运用在声卡3D发声原理之中。
◎ 在UnrealEd中的可视化音效工具可以为声音设计者提供对音效的全面的控制,声音强度,顺序,循环,过滤,调制,变调和随机化。声音参数被从代码中分离开,使设计者可以控制所有的与游戏、过场动画和动画序列相关的声音。
◎ 支持所有平台的主要声音格式,包括PCM,ADPCM,游戏机对应的声音压缩格式和Ogg Vorbis。
◎ 支持游戏机上的声音流。
◎ Internet和局域网游戏已经成为Epic的竞赛游戏如Unreal Tournament 2004的一大特征。虚幻引擎长时间以来一直提供灵活的高级网络架构,适合于各种类型的游戏。
◎ Internet和局域网游戏在PC和所有游戏机平台上都被完全支持
Unreal Tournament 2004的游戏中带的服务器浏览器
◎ 虚幻引擎的网络游戏部分编程是高层的和数据驱动的,允许由Unreal脚本代码指定在客户端和服务器之间联系的变量和函数,来保留一个同步的对游戏状态的近似。底层游戏网络传输是基于UDP的并能够将可靠和不可靠传输方式结合,来对游戏感进行优化,即使在低带宽和高延迟的环境下。
◎ 客户端-服务器模式下最多支持64个游戏者同时游戏。同时支持非服务器模式(点对点模式)下的16游戏者同时游戏。
◎ 支持不同平台间的网络互连(例如PC服务器和游戏机客户端;Windows,MacOS和Linux客户端共同进行游戏)。
◎ 所有游戏特性在网络游戏模式下都被支持,包括基于交通工具的多人游戏,带有NPC和机器人的组队竞技,单人模式下的协同游戏等等。支持自动下载,包括跨平台的一致的Unreal脚本代码。这项特性使得从用户自己创建的地图到奖励包,到完整的游戏mod都可以随意获得
全局光照技术“Unreal Lightmass”,可生成高质量的静态照明和带精确半影的软阴影、相互漫射与反射、色彩释放(color bleeding)等下一代技术,同时还有新的分布式计算框架“Swarm”,生成光照的速度可提高最多十倍。
◎ “Unreal Content Browser”(虚幻内容浏览器)基于后端数据库,支持缩略图预览、内容标签、内容收集管理,能让开发人员在海量内容里迅速找到所需资源,不必再逐个手动打开文件查看。
◎ 可扩展统计和数据管理后端“Unreal Master Control Program”(虚幻主控程序),作为一种高可靠性在线服务架构,支持新闻宣布、设定管理、在线玩家追踪,以及硬件、配置、游戏状态数据搜集,并且包含一系列视觉化游戏状态工具,比如玩家活跃性区域热图 引擎的互联网架构和局域网架构可以很好地支持PC机及各种操作平台。
虚幻引擎的网络架构拥有高级别的安全性能和数据传输能力。通过提供的脚本游戏代码可以在客户端和服务器端进行快速稳定的复制,传输,并且十分精确。另外还有了一个低级别的网络传输系统,它基于UDP协议,适用于那些速率较低的窄带和特殊场景的游戏。
在网络架构中,如果是“专业服务器”的话可以支持的联机上限为64个玩家。如果是“非专业服务器”的话则可以支持到16个玩家。
支持不同操作平台之间的联机对战(例如:拿一台PC机作为服务器端,可以让Windows用户,MacOS用户和Linux用户一起进行联机游戏)
引擎中的大部分功能可以支持网络联机功能,包括玩家间的多人游戏队战,和电脑提供的NPC或是机器人进行对战,或是单人模式下的协作任务对战等等。还支持自动的游戏内容下载和更新功能,包括跨平台的通用性虚幻脚本代码。玩家可以在自己制作的游戏地图中进行游戏,并放到互联网上供其他玩家下载。在游戏服务器登陆界面里还可以服务器的快速检索和查找,服务器收藏夹功能,及聊天功能等等。
可以通过设置一台“总控制服务器”对全球范围内的其他游戏服务器进行追踪,将某些玩家进行过滤和封IP,称之为“全球游戏状态跟踪系统”。(主要针对的是那些作弊的玩家) 虚幻的编辑器(简称为“UnrealEd”)是一个以“所见即所得”为设计理念的操作工具,它可以很好地弥补一些在3DStudioMax和Maya中无法实现的不足,并很好地运用到游戏开发里去。
在可视化的编辑窗口中游戏开发人员可以直接对游戏中角色,NPC,物品道具,AI的路点及光源进行自由的摆放和属性的控制,并且全部是实时渲染的。(并且这种实时渲染还有动态的光影效果。)
并且还有完整的数据属性编辑功能,可以让关卡设计人员自由地对游戏中的物件进行设置或是由程序人员通过脚本编写的形式直接进行优化设置。
实时的地图编辑工具可以让游戏的美术开发人员自由地对地形进行升降的高度调节,或是通过带有alpha通过的笔刷直接对地图层进行融合和修饰。并可以在地图编辑中直接生成碰撞数据和位移贴图。
图形化的材质编辑工具。开发人员可以对材质中的色彩,alpha通道及贴图坐标进行自由的调解并由程序人员来定义所需要的材质内容。(周诗超:我看了虚幻的材质编辑器,采用的是和Maya,Darktree一样的“材质节点编辑”方式,操作的时候,无论是脱拽或是关联线的操作都十分的方便,至少比我经常在用的Max中的“材质层级编辑”方式好用多了)而美术制作人员则可以在材质编辑工具中利用多个简单的材质类型融合出一个复杂漂亮的高级材质类型,并可以实时地参照场景中的灯光影响。
编辑器的资源管理器功能也非常的强大,可以进行快速准确的查找,观看并对游戏开发中的各种资源进行整理组织。
虚幻编辑器中还为美术制作人员提供了完整的模型,骨骼和动画数据导出工具,并将它们连同编辑游戏事件所需要的声音文件,剧情脚本进行统一的编辑。
在编辑器中还为开发人员提供了一个“游戏测试”的按钮,只要用鼠标点击后就可以对编辑好的游戏内容进行测试。这样的话,可以一边在“测试窗口”中观看游戏画面,一边在另一个窗口中进行实时的调整和修改,十分方便。
为那些使用3ds Max和Maya进行制作的美术人员,提供了完善的导入导出插件。可以把模型导入虚幻引擎当中,包括模型的拓铺,贴图坐标,光滑组,材质名称,骨骼结构和相关的骨骼动画数据。 由于引擎开发较早,对多核CPU支持不佳,往往出现其中一个核心利用率100%,其他核心却利用率很低的情况,导致游戏运行不流畅。
2. 虚幻4怎么延迟改变材质
首先在看这个系列之前,你需要具备以下:
(1)至少要敲过简单的渲染器,不管是拿dx敲还是拿gl敲或者vk之类的。
(2)对虚幻引擎有一定了解,对虚幻的渲染有一定了解。可以看我前几篇文章,或许可以有所帮助。
(3)C++基础。其实本人c++水平也是一般般(常常受到公司程序大牛的鄙视,不过我是美术)。
(4)至少一块RTX显卡可以用来做实时光线追踪(2019年)
随着引擎版本的更新,后续会逐步加入新版本。那么下面就正式开始吧!
【概览虚幻4渲染管线】
首先,虚幻有很多个管线的。Mobile管线和Deferred管线。首先找到
在这个函数里你将会看到很多熟悉的函数名称
虚幻就是通过调用这些函数来一步步绘制的。是不是很眼熟?这个就是各大论坛啦,博客啦讲的虚幻渲染流程的真面目。
下面就是官方的DrawOrder了。那么这个顺序是怎么来的呢。就是上面那个函数的调用顺序。
再打开这个Render函数,你就将看到延迟渲染一帧所调用的各个函数。(反正我看了半天就看到个大概的渲染顺序之外,还是啥也不知道)
那么当我们把一个模型托到场景里,这个模型被渲染出来的整个流程到底是什么样的呢?这个流程其实是非常庞大的。下面我就来一个一个拆分。
(1)第一步:资源准备阶段。这个阶段包括顶点缓冲区的准备,索引缓冲区的准备。这一步由场景代理管理完成。当然从磁盘里读取模型资源这些就涉及到StaticMesh这些了。想了解这一步可以去看我以前的博客,或者直接去看UPrimitiveComponent,UMeshComponent,UStaticMeshComponent,UCableComponent,UCustomMeshComponent。当你把这些源码全部研究一遍后,这个阶段算是了解了。这个阶段我不打算再描述了,因为已经有了很多现成的代码了。
(2)第二步就是shader资源的准备了,这个又是一个非常大的话题了。可以去看我以前关于给改材质编辑器和加shadingmode的文章便可以有个大概的了解。这一步我还会进一步阐述。
(3)第三步就是绘制了。
我们先不看Render函数那些复杂的调用,我们把精力先集中到shader层面来。一张画面是怎么开始绘制的呢?
通过这个我们便能知道一个大概的绘制流程(千万别以为虚幻只有这几步,不过主要的大概的流程是这样)。先绘制那些深度啊,初始化视口啦我们先不管。我们来看下这个BasePass。这个BasePass干的事情就是把GBuffer画出来。
这里就是像素着色器的入口。绘制完这一步后,我们就有了GBuffer然后再绘制剩下的。环境遮罩骤就先不说了。来看看最重要的光照部分。
光照部分的入口在这里:
虚幻的TiledDeferredLighting的渲染方式。不知道这个的去看毛星云的RTR3的博客的光照那节,讲得特别好。这里给个传送门:
https://blog.csdn.net/poem_qianmo/article/details/77142101
这里会调用
GetDynamicLighting这个函数会调用
这里会接着调用
看到这里就很熟悉了,看过前面我修改shadingmode的博客应该会对这里很熟悉。
lighting绘制完了之后就会绘制一些反射啊之类的东西了,然后就是透明物体啊后期啊。这些后面会慢慢分析他们。我们先把两个最重量级的研究了。
接下来我们研究一下fog渲染阶段。找到FogRendering.cpp你就会发现,其实绘制fog的是一个globalshader。前面绘制各个物体的是materialshader。
你会发现绘制fog的是一个globalshader。虚幻一共有这么几种shader:Globalshader materialshader和meshshader。
这篇博客只是一个概述性和引导性的。只是说明一下虚幻绘制的一个大概情况。下一卷我将演示一下怎么自己写个shader,引擎识别它,编译它,然后如何cpu和gpu进行信息交流的
4.20的Unreal渲染模块有了较大改动。
主要是为了配合引擎新增特性和性能优化。不过大体上的流程还是和上个版本的保持一致。
为了给LTC让道,所以shader做了大面积重构。
ShadingModel改为了IntergrateBxDF
下面会对绘制流水线详细写一遍,由于量巨大所以我会慢慢更新。
(1)【InitView】
引擎代码注释写得非常简单:Initialize scene's views.Check visibility, build visible mesh commands, etc.
这是渲染管线的开始,这步是为渲染管线准备绘制当前帧所需要各种资源。后面的管线就是判断一下画不画,绑定一下状态和RT然后就画画画就好了。这一阶段做的事情非常多也非常杂。首先来看看一些主要的
ComputeVisibility
可见性剔除有很多种技术,引擎会使用多种方法进行组合剔除,把没必要渲染的东西剔除干净,最大限度在渲染之前就做到最省。
虚幻提供了几种剔除方法
他们各有优劣,可以根据不同平台和情况进行选择。
VisibilityMap
在后面会把视口中可见性属性是非可见的物体剔除掉。
PrecomputedVisibilit
在场景中可以使用预烘焙的可见性数据。
如果当前视口场景中有可见性烘焙数据就会启用可见性烘焙的剔除方式
ViewFrustomCulled
做完前面的步骤后,还会进行视锥体剔除,并且大部分情况下,视口会使用视锥体剔除
进行视锥体剔除后可以减少大部分没必要绘制的图元
这时再配合各种其它的剔除方法就可以进一步剔除
而这里的“其它的剔除方法”包括但不限于PrecomputedVisibility,Distance,DynamicOcclusion
DistanceOcclusion
不在距离范围内就不绘制,非常简单有效的绘制方式。这种剔除方式挺适合地面上摆的小物件,摆的一些decal或者小道具,对大型建筑不适合。
Hardware Occlusion Queries
硬件的可见性剔除。这种方法将每帧的可见性检查作为每个Actor的查询发出。 Actor的可见度在一帧之后被回读 - 如果相机移动得非常快,有时会产生不利影响,导致它们“弹出”。 硬件遮挡的成本随着在GPU上执行的查询的数量而变化。 使用距离和预计算可见性方法可以减少GPU每帧执行的查询次数。
在各种剔除后,在InitView的最后会根据这些数据建立MeshPass
(2)【EarlyZ-PrePass】
EarlyZ由硬件实现,我们的渲染管线只需要按照硬件要求渲染就可以使用earlyz优化了,具体步骤如下:
(1)首先UE4会把场景中所有的Opaque和Mask的材质做一遍Pre-Pass,只写深度不写颜色,这样可以做到快速写入,先渲染Opaque再渲染Mask的物体,渲染Mask的时候开启Clip。
(2)做完Pre-pass之后,这个时候把深度测试改为Equal,关闭写深度渲染Opaque物体。然后再渲染Mask物体,同样是关闭深度写,深度测试改为Equal,但是这个时候是不开启clip的,因为pre-pass已经把深度写入,这个时候只需要把Equal的像素写入就可以了。
关于EarlyZ的具体详解可以去看参考文章【1】
首先渲染prepass的第一步肯定是渲染资源的准备啦。primitive资源会在InitView的时候准备好。
然后会再BeginRenderingPrePass函数中设置各种绘制管线的绑定,包括关闭颜色写入,绑定Render target
然后再调用draw之前会把各种UniformBuffer和渲染状态设置好
然后调用draw
最后完成PrePass的绘制
(3)【ShadowDepthPass】
根据不同的灯光类型会绘制不同种类的shadowmap。总的来说绘制shadowmap的时候不会使用遮挡剔除。
Unreal渲染shadowmap目前我就找到个视锥剔除
shadowdepthpass可能是在basepass之前,也可以是之后,具体看EarlyZ的方式
我们的灯光种类繁多大致可以分为两类,一类使用2Dshadowmap的,一类使用Cubemapshadowmap的
上图的1部分就是渲染2DshadowMap,2部分渲染的就是Cubemapshadowmap,这一步只是渲染出shadowmap供后面的Lightingpass使用。
(4)【BasePass】
BasePass使用了MRT技术一次性渲染出GBuffer。
再上一次GBuffer的数据分布
BasePass把GBuffer渲染出来之后就可以供后面的LightingPass使用了。我们的材质编辑器再Surface模式下也是在生成MaterialShader为BasePass服务
这部分可以去看看我的材质编辑器篇有详细介绍。
也是通过一系列设置绑定渲染状态资源等,最后调用dispatchdraw
可以注意到,MRT0是SceneColor而不是BaseColor
Scene在BasePass中做了简单的漫反射计算
这一步用到了,这个测试场景我是烘焙过的,我把烘焙数据去掉,SceneColor其实是这样的:
啥也没有黑的
BasePass会在这个阶段把预烘焙的IndirectLiting计算到SceneColor这张RT上供后面的pass使用
(5)【CustomDepthPass】
上面的图渲染了一个球的customdepth(在红圈处可以看到一个球,可能不是很明显哈)。CustomDepth没啥特别的,就是把需要绘制CustomDepth的物体的深度再绘制一遍到CustomDepthBuffer上。
(6)PreLightingPass
虚幻封装了一套方便画PostPass的机制,后面的绘制SSAO,Lighting,SSR,Bloom等各种pass都是用的这逃Context的机制。
PreLighting这步主要是在用前面的GBuffer算decals和SSAO为后面的Lighting做准备。
SSAO使用的是FPostProcessBasePassAOPS这个C++shader类。
对应的USF是PostProcessAmbientOcclusion
并且使用Computeshader来加速计算。
(7)【DirectLightPass】
LightPass也非常复杂,整个pass的代码有几千行,shader代码也有几千行非常恐怖的系统。我们先找到入口函数:
(1)方向光
根据不同的情况,使用不同的渲染策略
渲染不同情况下的灯光大体分类如下。还会根据不同的渲染方式分类。
比如一般的方向光:
在渲染方向光的时候因为不需要考虑分块,所以直接把每盏灯挨个画出来就可以了
下面我只放了一盏方向光
下面我放三盏方向光:
(2)TileDeferredLighting
如果灯光不渲染阴影,并且灯光没用IES并且灯光数目达到80盏以上(4.22)并且启用了TileDeferred管线,那么虚幻4就会使用TileDeferredLight来计算光照,虚幻实现TileDeferrdLight使用的是一个Computeshader
有很多灯光使用的潜规则。
(8)【ScreenSpaceReflectionPass】
(9)【TranslucencyPass】
透明物体会放在最后渲染,但是在后期的前面。需要看是否在DOF(景深)后合并。
对于这个上图的那个场景来说,透明物体渲染的buffer是长下面这样的:
最后在后期中组合
如果没有启用r.ParallelTranslucency透明物体只能挨个渲染。
如果启用了就可以走上面的并行渲染分支。
透明物体的渲染在实时渲染中一直比较迷,会有各种问题。比如排序等等。在默认情况下是走AllowTranslucentDOF的。AllowTranslucentDOF是什么意思呢,代码的注释里有解释。
Translucent物体的渲染有几种模式:
这里的代码我们在BasePassPixelShader.usf里能找到
对于非透明物体来说basepass是渲染GBuffer的,但是对于透明物体来说,BasePass是渲染基础的+Lighting的,会在这里一次性渲染完,如果我们想改透明物体的shading方式,就需要用在这里改了。
3. 虚幻5编译着色器很慢
网络延迟。虚幻5编译是指虚幻引擎5是EPIC于2020年公布的第五代游戏引擎,该软件的着色器慢是由于网络延迟使数据传输慢导致的数据传输缓慢,可以通过重启路由器或是重启游戏来解决。
4. 虚幻编辑器的默认界面有哪些
虚幻编辑器的默认界面有:打开材质编辑器,点击 模式精简材质编辑器。
在使用VBA编辑器时,如果无意间弄乱了窗口布局,使各窗口不在其默认位置,使用起来有些不便。要恢复默认的VBA编辑器窗口布局。
可以用下面的两种方法:手工调整在VBA编辑器中,单击菜单“工具→选项”,在弹出的“选项”对话框中选择“可连接的”选项卡,勾选不在默认位置的窗口选项,如“工程资源管理器”。
游戏框架以及人工智能:
提供了一个支持普通游戏对象(如游戏者,NPC,物品,武器和触发器)的面向对象的游戏框架。
丰富的多级别AI系统,支持寻路、复杂关卡游历、单独决策和组队AI对如触发器,门和升降机等普通游戏对象敏感的寻路框架,允许复杂的游历设定,使得NPC可以按下开关,打开门,并绕过障碍物。
寻路是游戏AI的一个基础组成部分。基本目标是给定一个起始点和目标点,生成一条个体可以到达的路径。通常有这么几类常用的寻路方法:基于路点(PathNode),基于导航网格(Navigation Mesh,简称NavMesh),基于势力场(Potential Field)。游戏使用NavMesh寻路居多。
5. 为什么有些ue4项目不用编译父项材质,有些又要
因为ue4的父项材质有些在系统内是由备份的,所以就不用。
需要的就是本身系统内不带的。
虚幻引擎4是由游戏公司EPIC开发的虚幻引擎的最新版本。是一个面向下一代游戏机和DirectX9个人电脑的完整的游戏开发平台,提供了游戏开发者需要的大量的核心技术、数据生成工具和基础支持。
6. 想要做3D游戏,可是虚幻3打开慢,至少得有1个小时那么慢
最后到底是打开了么?
没打开可能安装有问题
低配置电脑开虚幻3是很缓慢
要编译材质脚本一堆东西
请按照官方要求检查自己的配置,如果没有达到最低配置,使用虚幻编辑器只能浪费你的时间。
打开虚幻3都这么慢,做起关卡来你会受不了的。。。
7. unireal tournament editor是啥
EpicGames日前公布了以“UnrealEngine4”所制成的《虚幻竞技场4(UnrealTournament4)》消息,此则新闻在国外引起了一阵轩然大波。早在2005年8月时,EpicGames副总裁MarkRein曾透露,他们已经开始开发“UnrealEngine4”。继前代引擎“UnrealEngine3”后,EpicGames公司总裁表示,他们期望他们所开发出来的游戏引擎能被运用来制作更多更特别的游戏,如今也已有数不清的游戏运用“UT”引擎成功开发出不少知名的游戏大作,例如《天堂2》甚至是未来的《天堂3》等等,连日本大厂SQUAREENIX也曾用此引擎来进行游戏的研发过。“UnrealEngine4”未来首度将于次世代主机第三代XBOXone、PS4上率先进行游戏开发,最后将会全面进攻至PC市场,玩家们约在2010~2012年间时,就会真正享受到超逼真的《虚幻竞技场(UnrealTournament4)》。但是Epic同时对虚幻引擎4引擎是否支持WiiU的问题上做出了基本否定的回答,在之前的访问中,Epic的创始人之一MarkRein就说过Epic并不打算把虚幻4带到WiiU上,不过当时他也说:“如果消费者们想要在WiiU上获得一个虚幻引擎4游戏的移植版,他们还是有可能玩到。”于是这次专门有人再度问及了这个问题,于是我们得到了更明确的答案。“NO!”“没有,我的意思是那句话并不是正确的答案,我们没打算,WiiU上有虚幻3引擎,不是吗?它已经创造了非常多优秀的游戏。而虚幻4出现后虚幻3并不会消失。但是我们要把虚幻4带给下一代主机。这就是我们所要关注的焦点。如果你想制作WiiU的游戏,可以用虚幻3,它已经支持WiiU了。”这很明确的表示了WiiU没有虚幻引擎4,而且也不会出现支持虚幻引擎4制作的游戏。早先时候,EA也宣布寒霜3引擎不支持WiiU,也就意味着更多的第三方会因此而不考虑WiiU的移植大作,虽然任天堂可以继续凭借自己的阵营来保持竞争力,但考虑到WiiU存在游戏数量不如预期的问题,我们不得不说WiiU的前景会在这件事后更加蒙上阴影。◎骨骼动画系统;支持每顶点可达4骨骼同时影响的效果以及复杂的骨骼结构。◎动画由一棵动画物体树驱动,包括:·混合控制器,进行对嵌套的动画物体之间的多路混合。·数据驱动的控制器,封装动作捕捉或手动制作的动画数据。·物理控制器,连接到刚体动态引擎,用来实现布娃娃系统的游戏者和NPC动画和对力的物理响应。·过程动画控制器,以C++或UnrealScript实现,为了实现一些如使一个NPC的头部和眼睛跟踪一个在关卡中行走的游戏者,或使一个角色根据健康情况和疲劳度作出不同动作等特性。◎为3DStudioMax和Maya制作的导出工具,用于向引擎中导出赋予蒙皮权重的网格,骨骼和动画序列。游戏性系统◎提供了一个支持普通游戏对象(如游戏者,NPC,物品,武器和触发器)的面向对象的游戏框架。◎丰富的多级别AI系统,支持寻路、复杂关卡游历、单独决策和组队AI·对如触发器,门和升降机等普通游戏对象敏感的寻路框架,允许复杂的游历设定,使得NPC可以按下开关,打开门,并绕过障碍物。·游历框架带有短期战术战斗、掩护和撤退的路线网。·基于小队的AI框架,适合第一人称射击、第三人称射击和战术战斗游戏。◎AI路径在UnrealEd中可见并可由关卡编辑者编辑,允许自定义和提示◎可见的AI脚本工具,使设计者可以创建复杂的交互性游戏设定,例如游戏者目标,通用的游戏事件触发器和交互式过场动画◎UnrealMatinee,一个基于时间线的可视化序列、动画和曲线路径工具。设计者可以使用此工具建立游戏中的过场动画,可以是交互的或非交互的,通过动画序列化、移动包括摄像机在内的对象,控制声音和视觉特效,并触发游戏和AI事件。UnrealEd中的“Matinee”工具,能够编辑基于时间轴的事件序列◎支持各种平台的输出格式,包含5.1环绕立体声和高品质杜比数码音效。◎3维声源位置设置,多普勒效应。多普勒效应:是指当发声物体在运动时,声音的音调会随着物体移动速度而改变其高低——声音频率的变化,这个原理也被运用在声卡3D发声原理之中。◎在UnrealEd中的可视化音效工具可以为声音设计者提供对音效的全面的控制,声音强度,顺序,循环,过滤,调制,变调和随机化。声音参数被从代码中分离开,使设计者可以控制所有的与游戏、过场动画和动画序列相关的声音。◎支持所有平台的主要声音格式,包括PCM,ADPCM,游戏机对应的声音压缩格式和OggVorbis。◎支持游戏机上的声音流。◎Internet和局域网游戏已经成为Epic的竞赛游戏如UnrealTournament2004的一大特征。虚幻引擎长时间以来一直提供灵活的高级网络架构,适合于各种类型的游戏。◎Internet和局域网游戏在PC和所有游戏机平台上都被完全支持UnrealTournament2004的游戏中带的服务器浏览器◎虚幻引擎的网络游戏部分编程是高层的和数据驱动的,允许由Unreal脚本代码指定在客户端和服务器之间联系的变量和函数,来保留一个同步的对游戏状态的近似。底层游戏网络传输是基于UDP的并能够将可靠和不可靠传输方式结合,来对游戏感进行优化,即使在低带宽和高延迟的环境下。◎客户端-服务器模式下最多支持64个游戏者同时游戏。同时支持非服务器模式(点对点模式)下的16游戏者同时游戏。◎支持不同平台间的网络互连(例如PC服务器和游戏机客户端;Windows,MacOS和Linux客户端共同进行游戏)。◎所有游戏特性在网络游戏模式下都被支持,包括基于交通工具的多人游戏,带有NPC和机器人的组队竞技,单人模式下的协同游戏等等。支持自动下载,包括跨平台的一致的Unreal脚本代码。这项特性使得从用户自己创建的地图到奖励包,到完整的游戏mod都可以随意获得全局光照技术“UnrealLightmass”,可生成高质量的静态照明和带精确半影的软阴影、相互漫射与反射、色彩释放(colorbleeding)等下一代技术,同时还有新的分布式计算框架“Swarm”,生成光照的速度可提高最多十倍。◎“UnrealContentBrowser”(虚幻内容浏览器)基于后端数据库,支持缩略图预览、内容标签、内容收集管理,能让开发人员在海量内容里迅速找到所需资源,不必再逐个手动打开文件查看。◎可扩展统计和数据管理后端“UnrealMasterControlProgram”(虚幻主控程序),作为一种高可靠性在线服务架构,支持新闻宣布、设定管理、在线玩家追踪,以及硬件、配置、游戏状态数据搜集,并且包含一系列视觉化游戏状态工具,比如玩家活跃性区域热图刚性物体碰撞系统可以让操作的玩家充分利用游戏里的物体碰撞,角色动画碰撞,复杂真实的交通工具和物体爆炸进行娱乐。所有的渲染物体和模型都可以进行动力学属性的设置,包括摩擦力。物理碰撞音效提供了许多和动力学有关的功能和设置,包括玩家的操作,人工智能及网络功能。在虚幻的编辑器中可以直接进行物体,模型的动力学设置,并支持简单的碰撞优化及调整;运动约束编辑;交互式的物理仿真及编辑器中的tweak快速调节。虚幻的编辑器(简称为“UnrealEd”)是一个以“所见即所得”为设计理念的操作工具,它可以很好地弥补一些在3DStudioMax和Maya中无法实现的不足,并很好地运用到游戏开发里去。在可视化的编辑窗口中游戏开发人员可以直接对游戏中角色,NPC,物品道具,AI的路点及光源进行自由的摆放和属性的控制,并且全部是实时渲染的。(并且这种实时渲染还有动态的光影效果。)并且还有完整的数据属性编辑功能,可以让关卡设计人员自由地对游戏中的物件进行设置或是由程序人员通过脚本编写的形式直接进行优化设置。实时的地图编辑工具可以让游戏的美术开发人员自由地对地形进行升降的高度调节,或是通过带有alpha通过的笔刷直接对地图层进行融合和修饰。并可以在地图编辑中直接生成碰撞数据和位移贴图。图形化的材质编辑工具。开发人员可以对材质中的色彩,alpha通道及贴图坐标进行自由的调解并由程序人员来定义所需要的材质内容。虚幻的材质编辑器,采用的是和Maya,Darktree一样的“材质节点编辑”方式,操作的时候,无论是脱拽或是关联线的操作都十分的方便,至少比我经常在用的Max中的“材质层级编辑”方式好用多了)而美术制作人员则可以在材质编辑工具中利用多个简单的材质类型融合出一个复杂漂亮的高级材质类型,并可以实时地参照场景中的灯光影响。编辑器的资源管理器功能也非常的强大,可以进行快速准确的查找,观看并对游戏开发中的各种资源进行整理组织。虚幻编辑器中还为美术制作人员提供了完整的模型,骨骼和动画数据导出工具,并将它们连同编辑游戏事件所需要的声音文件,剧情脚本进行统一的编辑。在编辑器中还为开发人员提供了一个“游戏测试”的按钮,只要用鼠标点击后就可以对编辑好的游戏内容进行测试。这样的话,可以一边在“测试窗口”中观看游戏画面,一边在另一个窗口中进行实时的调整和修改,十分方便。为那些使用3dsMax和Maya进行制作的美术人员,提供了完善的导入导出插件。可以把模型导入虚幻引擎当中,包括模型的拓铺,贴图坐标,光滑。在虚幻的引擎中为了游戏开发的程序员们能够更好地进行编写,提供了3个非常具体的编写实例和百分之百开放的源代码,编辑器,Max/Maya的输出插件,以及一些公司内部开发游戏所使用到的游戏代码。虚幻的游戏播放脚本语言还提供了许多自动化的原数据供游戏开发人员参考和使用。引擎不仅可以兼容多种文件格式,还允许游戏的关卡,任务编辑人员在编辑器中直接察看游戏脚本的内容,属性并直接进行修改
8. ue4材质节点platform switch没有
PackagingResults:Error: 错误 Launch failed! 缺失UE4Game二进制文件。 您必须使用您的集成开发环境编译该虚幻引擎4项目。或者,通过虚幻编译工具使用命令行命令进行编译: UE4Game 红字
9. 这个配置玩虚幻引擎4编译着色器很慢,怎么办
这个过程主要是跑CPU. 你cpu并行能力不足原因,实时渲染才是跑显卡