unreal engine

UE4 try catch 打包报错

青春壹個敷衍的年華 提交于 2021-02-08 13:01:24
UE4 C++源码 在Visual studio 2015中使用过程发现添加 try catch 之后打包通不过。追溯错误提示是C++的 try catch 代码。网上查找之后发现 https://blog.csdn.net/SC32024826/article/details/78710672 在项目文件.build.cs 添加一行代码: UEBuildConfiguration.bForceEnableExceptions = true; 在代码尝试添加。发现UEBuildConfiguration 不识别。 中间 Ctrl + F 查找到跟代码相关语句 。在查找的xml文件中添加 bForceEnableExceptions 同时在唯一查找的cs 文件 仿照添加 bForceEnableExceptions 。结果生成失败。还原该部分修改继续追查 https://answers.unrealengine.com/questions/657485/uebuildconfigurationbforceenableexceptions-in-416.html 在该网站看到 4.16之后似乎改为 UEBuildConfiguration.bEnableExceptions = true; 但是还是不能解决 build.cs文件添加 代码后提示UEBuildConfiguration

游戏引擎UE4详解!

柔情痞子 提交于 2021-01-11 02:55:13
UE4 的全名是 Unreal Engine 4,中文译为“虚幻引擎4”。UE4 是一款由 Epic Games 公司开发的开源、商业收费、学习免费的游戏引擎。那你了解UE4吗?如果还不清楚,就一起来看下这篇 UE4 详解吧! 一、虚幻4术语 1.Actor:可放入关卡中的对象都是 Actor。Actor是支持三维转换(如平移、旋转和缩放)的泛型类。可通过游戏进程代码(C++或蓝图)创建(生成)及销毁Actor。在C++中,AActor是所有Actor的基本类。 2.Component 组件:组件(Component) 是可添加到Actor的一项功能。组件不可独立存在,但在将其添加到Actor后,该Actor便可以访问并使用该组件所提供的功能。例如,音频组件(Audio Component)将使您的Actor能够播放声音。 3.Pawn 人形体:Pawn 是Actor的一个子类,充当游戏中的化身或假面,例如游戏中的角色。 4.Brush 画刷:笔刷(Brush) 是一种Actor,几何体画刷是虚幻编辑器中最基本的关卡构建工具,它可以快速原型化关卡和对象。另外,根据附加在它们上的效果,体积具有多种用途,例如:阻塞体积(Blocking Volume)(它们是不可见的,用于阻止Actor穿过它们)、伤害产生体积(Pain Causing Volume)(随着时间的推移

UE4的多线程

不打扰是莪最后的温柔 提交于 2020-12-06 04:57:08
1. 源代码   AsyncWork.h 2. 多线程的使用   参考文档: https://wiki.unrealengine.com/Using_AsyncTasks   当我们需要执行一个需要很长时间的任务时,放在主线程里会导致很卡,把此任务放到其他线程里则会好很多,此时多线程就可以起到关键的作用了。   在UE4里,我们可以使用FAsyncTask 或者FAutoDeleteAsyncTask。   使用FAsyncTask 时,我们需要手动停止或删除任务;使用FAutoDeleteAsyncTask时,系统则会自动在任务结束后,删除任务。   需要先建个继承FNonAbandonableTask的类,如源码中的例子: class ExampleAutoDeleteAsyncTask : public FNonAbandonableTask { friend class FAutoDeleteAsyncTask<ExampleAutoDeleteAsyncTask> ; int32 ExampleData; ExampleAutoDeleteAsyncTask(int32 InExampleData) : ExampleData(InExampleData) { } void DoWork() { ... do the work here } FORCEINLINE

Rendering in UE4(Gnomon School UE4 大师课笔记)

一曲冷凌霜 提交于 2020-12-05 22:07:34
Rendering in UE4 Presented at the Gnomon School of VFX in January 2018, part two of the class offers an in-depth look at the rendering pipeline in Unreal Engine, its terminology and best practices for rendering scenes in real-time. This course also presents guidelines and profiling techniques that improve the debugging process for both CPU and GPU performance. 分7个部分介绍UE4中的渲染管线。 Index 1.Intro 2.Before Rendering 3.Geometry Rendering 4.Rasterizing and Gbuffer 5.Dynamic Lighting/Shadows 6.Static Lighting/Shadows 7.Post Processing 1.INTRO Everything needs to be as efficient as possible Adjust

UE4 性能及分析

依然范特西╮ 提交于 2020-11-13 11:13:29
Unreal Engine 4.9 引擎特性 SHARE: 本页面的内容: 通用提示 定位到性能局限的原因 Show Flags 视图模式 如何处理大范围的不同硬件 基于一段时间来生成图表 更多关于性能和分析的话题 在做游戏的过程中, 性能 是个 无所不在 的话题。为了创建梦幻般的画面,我们需要至少游戏帧数至少达到每秒 15 帧。根据不同的平台和游戏类型,这个帧数可能是 30 或者 60,甚至在某些情况下要求更高。 虚幻 引擎 提供了很多功能,它们也有不同的性能特性。为了达到性能的要求会需要对游戏素材和代码进行优化。因此需要能够知道性能花费在何处。这一点可以通过使用引擎的性能分析工具。 每个性能问题都可能是不同的,需要对当前的硬件、软件都有一定的了解。这里我们整理了一些细节应该能在这方面有所帮助。 这篇指南主要涵盖的是渲染的话题,因为通常渲染是性能花费最多的地方。更多的物件,更高的分辨率,更多的灯光,漂亮的材质,所有这些都会在性能上有所影响。 还好是在渲染上,这里要重新获取性能也相对容易,很多渲染的特性都可以直接在控制台中调整。 编辑器的输出日志,或者游戏的控制台中内,可以: 设置控制台变量( cvarname value ) 获取当前的状态( cvarname ) 查看某个变量的帮助( cvarname ? ) 如果需要的话,可以将设置保存到 ConsoleVariables

Unreal Engine 虚幻引擎 接入第三方SDK

守給你的承諾、 提交于 2020-10-02 09:41:47
前言 虚幻引擎对SDK接入有着一套专门的方式,本文主要描述了如何给使用虚幻引擎开发的项目接入第三方SDK,并分享了接入微信SDK的分享等基础功能的实践过程,还涉及到调试和提高整合SDK效率的一些方法。 SDK 意义 SDK 广义是指Software Development Kit 即 应用软件开发包,我们这里主要指能够扩展软件产品(APP)功能的开发软件包。比如有Google, Face Book,微信,BUGLY等。 这些SDK可以帮助软件产品(APP)与用户,运营,社区,研发等多方建立“链接”。如,帮助用户登陆和支付,进入社区,方便运营团队收集用户数据,研发也可以获得APP运行的日志和终端Crash信息等等。 虚幻引擎接接SDK 特点 涉及两套开发语言 虚幻引擎开发的APP, 产品的业务逻辑大多以Blueprint 蓝图书写,而C++语言 主要用于代码量大的,对效率有高要求,跟硬件打交道的场合。 接SDK大多使用C++ 语言,这个是第三方开发SDK的封装主要语言,也是一些底层设备,比如VR设备通信和控制的基础语言。 UE两套语言要整合到发布的目标平台(IOS,ANDROID,VR,XBOX),目标平台可能又有几套开发语言,比如OBJECT C, JAVA 等。对研发人员有一定的要求。 Plugin 插件体系 虚幻引擎为了可以向各个目标平台整合他们的第三方SDK,它定义了插件体系

《黑神话:悟空》实机演示爆红!基于虚幻引擎4开发,他还能再当一次国产超级英雄吗?

佐手、 提交于 2020-09-26 01:46:27
   “那群最想做西游的人,回来了。”   在《黑神话:悟空》的官网上,这几个字是 “游戏科学” 对该款游戏的第一句介绍。   8 月 20 日上午,这部国产西游题材新作放出了首个实机演示视频,并在一天之内全网刷屏。   不管是微博热搜、B 站首页,还是知乎热榜,这个 13 分钟的游戏视频热度居高不下。截至 21 日上午,该视频在 B 站的播放量已经超过 1000 万,弹幕数量超过 15 万条。   游戏科学相关负责人对 DeepTech 透露,本次宣传的热度远超他们的预期。昨晚在公司内部会议上,“老板和大家对齐了一下目前的工作重心,我们近期还是会将精力重新集中在当前游戏版本的开发上。”   《黑神话:悟空》本次表现出的超强破圈影响力, 让众多非游戏玩家也关注到了这款不确定何时上市的游戏 。 中国太需要一款国产单机游戏大作了!    13 分钟游戏视频透露什么   《黑神话:悟空》是一款大型单机游戏,官方表示视频的内容全部基于实际操作录制而成。   国内游戏媒体游研社也在当日的文章中表示, 通过 4K 投影演示的 PC 试玩版,其实际表现与大家看到的演示视频没有出入,运行流畅,战斗顺滑,内容与画质基本一致,演示中的操作都可以一一复现。   该游戏基于虚幻 4(Unreal Engine)开发,这是一款 Epic Games 推出的优秀游戏引擎,得到了广大游戏开发者的认可,包括

Unreal Engine 4 蓝图完全学习教程(七)—— 循环(1)ForLoop

99封情书 提交于 2020-08-08 19:46:57
循环 是用于多次重复执行特定处理的一种流程控制,有多种不同的循环结构。 Ⅰ、“ForLoop”循环 “ForLoop”是利用“计数器”所具备的计算循环次数功能来进行处理的。 首先右击图表,输入“loop”,选择“工具”中的“流程控制”中的“ForLoop”选项: Ⅱ、“ForLoop”节点 ForLoop节点需要对计数器的初始值、结束值、循环处理、下一步进行的处理等进行设置。 ForLoop节点: ForLoop节点的输入项: exec输入项:左上方的五角形。用于连接执行处理的顺序。 First Index:为计数器设置的初始值。进入该节点后,计数器被设置为该First Index的值。 Last Index:计数器的结束值。计数器每循环一次就加1,当达到该Last Index值后,执行完循环处理后直接进入之后的处理中。 ForLoop节点的输出项: Loop Body:用于连接循环所执行的处理。 Index:取出当前计数器的值。 Completed:连接循环完成后的处理。 接着对ForLoop中的值进行设置。将First Index设置为1,Last Index设置为3: Ⅲ、连接文本 将“ForLoop”的循环处理连接“Print String”后就可以显示循环文本了,此处对循环次数进行检查并显示。 首先,需要创建一个“连接文本”节点——Append节点。右击图表,输入

Unreal Engine 4 蓝图完全学习教程(八)—— 循环(2)ForEachLoop

荒凉一梦 提交于 2020-08-08 05:07:56
Ⅰ、数组于ForEachLoop 数组是一种特别的值,可对多个值进行集中管理。处理保管于数组中的所有数据时会用到循环,如利用敌人角色的数组使他们同时动作。 而处理数组中的所有元素,可以使用“ForEachLoop”循环,它是专门处理数组的ForLoop循环。传递数组后,可按顺序从数组中取出值并进行处理。 首先准备一个数组,点击左侧“我的蓝图”中的“变量”处的“+”号,新建一个名为“data”的变量: 接着在右侧“细节”栏中修改参数信息(将变量数据类型修改成整数,并将变量变更为数组): 然后点击编译,编译完成后继续在细节面板中“默认值”处单击“+”号为数组创建初始值: Ⅱ、ForEachLoop节点 右击图表,输入“foreach”,选择“工具”内的“数组”项目中的“ForEachLoop”选项 创建“ForEachLoop”节点: ForEachLoop节点: ForEachLoop节点是用于处理数组的专用节点,其输入输出项也是结合数组由ForLoop演变而来的: ForEachLoop节点的输入项: Exec:连接执行处理的顺序。 Array:连接要处理的数组。 ForEachLoop节点的输出项: Loop Body:将循环处理的内容连接至此以创建处理。 Array Element:在ForEachLoop中将以顺序从数组中取出值,所取出的值从此处获得。 Array Index

UE4 Water 水

放肆的年华 提交于 2020-08-06 20:41:03
UE4水的制作分析,涉及利用normal在屏幕空间的投影来计算折射,各种深度采样的计算,BoxProjection方法等等: 视频效果: https://www. bilibili.com/video/BV1A h411Z75j 创建一个材质函数OverWater来计算所有需要的采样 Function OverWater: 每个采样的作用逐步说明: 1,UvMaping : 创建材质函数WaterUV,UV选择是使用worldPosition.xy还是uv采样贴图(可以选择用uv通道0或者1). Function WaterUV: 使用这个材质函数以不同的scale创建2套不同的UV,以上都是放在vertexshader里头计算的,再通过 customUV传到pixelshader比较省性能. 2,NormalSampling 创建材质函数UDNNormalBlend,SampleWave用来混合以之前算好的uv1,uv2对两张normal贴图的采样(使用UDN方法来混合),计算方法很简单把输入的normal还原到[-1,1]的范围,然后xy分别相加,再归一化得出合并后的结果,即:n = nomral*2 - 1, N=normalize(n1.rg+n2.rg,n1.b);当然也可以把两个材质函数写成一个