
ue4
文章平均质量分 90
zhangxiaofan666
夫夷以近,则游者众;险以远,则至者少。而世之奇伟、瑰怪,非常之观,常在于险远,而人之所罕至焉,故非有志者不能至也。有志矣,不随以止也,然力不足者,亦不能至也。有志与力,而又不随以怠,至于幽暗昏惑而无物以相之,亦不能至也。
展开
-
ue4和unity对比
ON THIS PAGE编辑器 术语简表 项目文件和文件 从 GameObjects 到 Actors 如何在虚幻 4 中编写代码 在虚幻 4 中编写游戏逻辑代码 常见问题 然后呢?本指南将从 Unity 用户的视角来介绍虚幻4,并帮助你将 Unity 的开发经验应用到虚幻 4 的世界中。编辑器下面分别是 Unity 编辑器和虚幻编辑器的截图,我们用颜色标出了界面中的不同区域,并用相同颜色标出了拥有相同功能的区域。每个区域上还添加了名称,以便你了解它们在虚幻引擎语境中的称呼。..转载 2021-01-27 11:26:40 · 11201 阅读 · 0 评论 -
网络游戏研发,该选帧同步还是状态同步?对比之后你就懂了
近年来,使用帧同步(Lockstep)的游戏越来越多,关于帧同步和状态同步的讨论争论也有不少,那么到底该选哪种同步机制呢?两种机制都使用过,各有优缺点也都踩过不少坑,这里对帧同步和状态同步进行一下总结和讨论。首先需要说明,这里的帧同步其实是指LockStep,是指服务器按帧转发客户端的操作,客户端进行确定性运算和一致性模拟(同步操作两边客户端通过完全一致的操作计算出完全一致的状态)。每帧同步状态这里也认为是状态同步。这两种同步机制都是为了达到即时同步不同客户端的状态的目的,帧同步需要参与..转载 2021-01-26 10:26:01 · 8051 阅读 · 2 评论 -
ue4 网络的最佳实践
关于性能的一般最佳实践通常,通过网络发送的数据越少,性能越好。为了保持较低的网络开销,请考虑以下做法 最大程度地减少Actor和属性的复制次数 如果Actor不用经常更改,请降低它的NetUpdateFrequency 尽可能降低Net剔除距离,以便减少远距离Actor的更新次数 如果Actor的一部分属性需要频繁复制,而其他属性很少更新,可考虑将该Actor分为多个Actor,把频繁更新的属性绑定在一个Actor上,把不需要频繁更新的属性绑在另一个Actor转载 2021-01-24 14:38:12 · 1317 阅读 · 0 评论 -
ue4 Slate常用优化指南
授权用户通常会询问如何才能在项目中降低UI渲染成本。当我们为内部项目优化UI时,我们用到了以下经验法则: 消除所有需要每帧运行的内容(tick/绘制),尤其是在蓝图中(tick/绘制)。将蓝图纯粹用于基于事件的逻辑或短暂的动画。 消除绑定属性的使用。属性虽然有用,但考虑到它们会每一帧轮询,其性能并不兼容。消除绑定到蓝图可调用函数的属性尤为重要。 使用无效(invalidation)。无效面板能防止布局每帧都出现在无效面板中所包含的树中的任何内容上。 4.23版中的无效面板有.转载 2021-01-24 14:36:40 · 1432 阅读 · 0 评论 -
ue4 c++ 模板中的一个小技巧
今天看到一行代码很有意思我们就看115行CreateStatic的参数,先说第二个参数,是一个可变参数的typename,该typename通过函数模板传递过来,再看第一个参数,稍微有点复杂,从外向内看typename 一坨东西 InFunc 表面了将这一坨东西定义为InFunc再看这一坨东西TIdentity<RetValType (*)(ParamTypes..., VarTypes...)>::Type如上图所示,将其拆成TIdentity<另一坨东西>原创 2021-01-24 11:35:22 · 1108 阅读 · 0 评论 -
ue4 关于创建动态结构体的一点思考
前言:这大半年其实没有怎么更新博客,对于自己的博客其实大部分都是一些基础教学性质的文章,真正探索性质和比较深入的内容其实很多都并没有发表出来,我想以后单独出些教学视频或资料和大家交流这篇文章是自己写工具时遇到的一个问题,由此而写。看到这篇文章就不用再看其他文章了,因为都没有这方面的资料介绍下目前ue4的静态Struct和DataTable的关系先看一张excel表导入到ue4的过程:这是一张excel的数据,其中包含了字段名和数据在ue4中我们也要创建一个结构体在结构体.原创 2021-01-20 17:30:32 · 3026 阅读 · 1 评论 -
《战双帕弥什》的动作打击感是怎么做出来的
林晨晨:下面由我来分享一下我们《战双》的两个方面的技术要点。第一个方面是关于游戏安全的,第二个方面是关于我们怎么去做好一个动作类游戏。一、7点防范措施,保证《战双》公平安全在游戏公平方面,《战双》是一个网络游戏,所以我们把玩家的公平和游戏的安全看得非常重要,让《战双》尽可能地为玩家保持公平竞争,我们做了一系列事情来保障这个环境。1.第一件是包体加固。它可以非常好地杜绝一些非法的二次解包的情况,而那这些二次解包出来非法包可能会欺骗一些玩家。比如说我们在某...转载 2021-01-19 14:46:14 · 2334 阅读 · 0 评论 -
Unlua原理剖析
unlua-unreal 是什么UnLua是虚幻引擎4下的特性丰富且高效的脚本解决方案,由腾讯G6团队与Epic Games China团队共同打造。它的特色在于利用引擎的反射机制按需动态导出,无需大量胶水代码;完备的静态导出功能,用于导出非反射系统的类、函数、枚举;可以覆写(override)所有'BlueprintEvent'、Replication Notify、Animation Notify、Input Event,通过Lua来扩展C++、Blueprint;可以替换线上系统原有Bluep.原创 2020-12-21 17:46:17 · 4019 阅读 · 1 评论 -
3D游戏中镜头的运用
1.使用固定距离的相机意味着视野被遮挡2.通过转动相机防止视野被阻挡如图所示,红点代表人,后面的相机可以检测角色和相机之间的遮挡从而转动相机角度达到比较好的效果例子(当障碍物即将打破视线时,抢先躲开)3.将相机拉近到障碍物跟前这种方法也可以防止打破视线用简单球形碰撞体用作相机的碰撞检测4. 让狭窄列的障碍物中断视线5.角色穿过不透明的区域...原创 2020-12-21 17:08:33 · 2898 阅读 · 3 评论 -
UE4数据驱动开发总结
1.BP CDO/Instance可以在c++中定义一个结构体然后遍历结构体数组去获取数据2.c++ ConstructHelpers3.DataTable然后遍历每个RowName获取每一行数据对于数据表也可以导出到csv,json 格式数据将数据表转出json后,直接在文本里面编辑,更加快捷方便使用数据表的优缺点这里值...原创 2020-05-07 00:24:13 · 2557 阅读 · 0 评论 -
[FestEurope2019] 蓝图深入探讨(总结)
1.蓝图效率没有c++高,但本身效率并不低,开发人员放弃使用蓝图主要原因并不是效率而是出于工作流程和协作方面的考量2.总的来说,蓝图是慢了一些,大概慢了十倍,具体取决于你做什么,为什么效率这么低?(1)因为要执行大量节点,效率降下来主要是因为节点的链接数量而不是节点的具体功能,如果节点很多或者逻辑很复杂,效率就低,比如这两个节点数量一样,效率总体上是一样的(2)对于逻辑类的节点,性...原创 2020-01-04 23:00:28 · 481 阅读 · 0 评论 -
获取编辑器选中的资源路径
任务需求:我们经常想在游戏运行时获取在编辑器中选中的文件路径:假如选中了多个资源文件,在游戏运行时,如何拿到这些资源路径呢?代码示例:这些函数封装在ContentBrower中,追下源码可得: TArray<FAssetData> Selection; FContentBrowserModule& ContentBrowserModule = ...原创 2019-10-13 22:01:25 · 1242 阅读 · 0 评论 -
坦克大战项目总结
1,创建坦克类在c++中继承pawn命名为tank,创建c++类TankPlayerController继承PlayerControllerTankPlayerController中#include "Tank_Pawn"会报错,解决办法先编译一下,然后先选择Development Editor再选择Development报错就修复了注意的是,命名一个类,类名为TankrController但是在...原创 2018-03-10 19:32:13 · 3920 阅读 · 3 评论 -
UE4源码中不常见但很有用的API(包含slate常用方法)(持续更新)
1.SNew该函数在Slate层中经常使用,常用于创建一个Slate控件,相当于UObject层中的NewObject<>();具体代码如下所示,后面.HAlign(HAlign_Right)这种都是设置这个Slate控件的样式,比如该Box是水平居中还是居右,比如Padding是什么比例等等SNew(SBox) .HAlign(HAlign_Right) [...原创 2019-07-29 05:38:22 · 5945 阅读 · 1 评论 -
ue4读取灰度图生成三维地形mesh
ATerrainCreateActor类代码如下.h文件#pragma once #include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "ProceduralMeshComponent.h"#include "TerrainCreateActor.generated.h" UCL...转载 2019-07-19 07:26:30 · 3673 阅读 · 1 评论 -
[UE4]优化指南(程序向)
GPUProfile来统计性能消耗的时候,在editor模式下不是很准,因为编辑器的消耗也算进去了,如果要用,最好以Game模式来查看。 UE4不支持640X480的分辨率,如果在这个分辨率下运行程序,会导致程序崩溃(4.4版本,不知最新版本是否仍有此问题)。 如果角色身上有很多Component需要Attach,尽量在使用时Attach,不要一加载就全部attach,否则当场景中角色很多时,...转载 2019-07-18 22:50:25 · 1074 阅读 · 0 评论 -
[UE4]性能优化指南(美术向)
转 [UE4]性能优化指南(美术向) ...转载 2019-07-18 22:48:46 · 1316 阅读 · 0 评论 -
UE4 渲染流程
在手游品质越发上扬的如今,已经有不少厂商开始使用一些性能更好的引擎,去尝试游戏制作了。而虚幻4引擎(以下简称UE4)就是其中之一,在这款...转载 2019-07-03 16:10:56 · 8549 阅读 · 0 评论 -
UE4材质节点大全
一.基础常量1. Constant快捷键:1+鼠标左键2.Constant2Vector快捷键:2+鼠标左键3.Constant3Vector快捷键:3+鼠标左键4.Constant4Vector快捷键:4+鼠标左键5.StaticBool6.TextureSample7.TestureObject8.ParticleSu...原创 2019-06-25 15:00:22 · 82821 阅读 · 21 评论 -
UE4 统计数据命令描述
统计数据命令描述统计数据命令描述 概述 执行命令 在编辑器统计查看统计数据 统计数据类型 Cycle Counter Stat(循环计数器统计数据) Memory Counter Stat(内存计数器统计数据) Accumulator Stat(累加器统计数据) Counter Stat(计数器统计数据) Standalone S...转载 2019-06-11 18:00:20 · 7435 阅读 · 0 评论 -
UE4制作多人大地型游戏的优化
摘自https://gameinstitute.qq.com/course/detail/101318月11日,由腾讯游戏学院举办的第二届腾讯游戏开发者大会(TGDC)在深圳举行。大会技术论坛中,Epic Games 中国资深技术工程师王祢带来了《UE4制作多人大地型游戏的优化》的主题演讲。演讲中,王祢分享了在当前重度手游的市场下,如何从游戏线程、渲染线程、GPU、内存等各方面进行优化,从而提...转载 2019-07-19 12:32:55 · 2937 阅读 · 0 评论 -
获取UE4编辑器中材质和Mesh缩略图并拖拽到指定Mesh替换材质
任务一:获取材质或Mesh的缩略图并渲染成一张Texture2D图片 我们知道在UMG中显示的图片和UE4编辑器中从磁盘Import进的图片最后都转成了Texture2D格式,然而缩略图的信息都是封装在以Thumbnail关键字的类中做法: 先拿到一个ObjectThumbnail,有多种方式获取,下面代码只是其中一种,还可以从ue4内存中拿,那种方式更快捷,...原创 2019-07-29 15:56:25 · 3241 阅读 · 1 评论 -
一些值得去探索的ue4商城插件
如果你们想要看哪个插件的详细解析可以私信给我哈,抽空可以写个详细解析博客1、可交互植被插件该插件包括了多种可交互植被,大概看了一眼,好像是蓝图和材质相结合插件名:Unified Interactive Physical Foliage地址:https://www.youtube.com/watch?v=ESv9BReC2R4&feature=youtu.b...原创 2019-10-11 08:04:31 · 3352 阅读 · 2 评论 -
物体围绕某个点旋转一定角度
2D上的点围绕某另一个点旋转: If you rotate point (px, py) around point (ox, oy) by angle theta you’ll get:p'x = cos(theta) * (px-ox) - sin(theta) * (py-oy) + oxp'y = sin(theta) * (px-ox) + cos(theta) * (py-oy)...转载 2019-08-27 19:55:38 · 2711 阅读 · 0 评论 -
UOD2018 方舟公园VR性能优化方法
对于GPU优化在分析gpu时,看到GPU的报告后具体怎么分析?在对BasePass的性能分析可以先同控制台对每一种进行打开关闭,看帧数的变化对于粒子来说:粒子用EmissiveColor来代替Light组件(也即别加一堆光源)对于植被尽可能少的使用半透明材质优化后的Shader Complexity对于通用的渲染设置1 剪裁距离要设置...原创 2019-08-16 22:03:10 · 590 阅读 · 2 评论 -
UE4在场景中使用预计算可视性(PrecomputedVisibility)
UE4 预计算可视性(PrecomputedVisibility)本文基于UE4 4.14转载请注明文章出处,作者信息,原文链接...转载 2019-08-16 21:39:59 · 2195 阅读 · 0 评论 -
中文技术直播第二期,材质编辑中向量运用(总结)
1 Object Postion的运用如果将该阶段放到base color上那么移动物体发现物体颜色会根据它的位置发生变化来用下SpeedTreeColorVariation节点调整变量的值发现不同位置的叶子的颜色是不一样的来研究下SpeedTreeColorVariation这个材质函数它就是将物体的位置拿出来乘以一个值,这里PerInstanceRand...原创 2019-08-16 16:13:17 · 768 阅读 · 1 评论 -
虚幻引擎技术直播第一期:ue4实时渲染流程(总结)
1.culling(裁剪)裁剪主要负责哪些物体要渲染到屏幕上,哪些不绘制,在CPU阶段,该阶段已经把大量不可见物体排除了有三个因素影响裁剪:(1)距离:(2)视椎体:和相机的角度有关(3)遮挡:如果物体a在物体b前面且a不透明,那么遮挡部分就不渲染在ue4编辑器中选中物体,会有一个黄色的圈叫Bounds,负责运算物体是画还是不画。在StaticmeshActor...原创 2019-08-14 23:32:07 · 3928 阅读 · 1 评论 -
TWeakptr,TWeakObjectPtr和TSoftPtr的概念,为什么要引入这几个概念?
官方解释:Tweakptr是引擎对于智能指针的一个弱引用的实现,就是不记录智能指针的引用计数,这样真正的指针不会因为这个 Tweakptr的指向而不能被释放。对应的是智能指针是TSharedPtr。另外引擎还有一个TWeakObjectPtr,是表示不真正引用UObject,而导致这个UObject不能被GC,因为GC是通过查找引用关系来决定是否要GC。TSoftPtr的作用不实际引用...原创 2019-08-19 16:10:19 · 5693 阅读 · 0 评论 -
UE4 总结十四
1 获得鼠标在世界坐标下的位置和方向,在PlayerController中的ProjectMousePositionToWorld方法,计算猪脚和鼠标的位置差来得到方向向量,让猪脚随着鼠标移动2UPROPERTY(BlueprintAssignable) // 蓝图可以动态地为委托赋予事件 FOnKingDeathSignature OnKingDeath;/...原创 2020-03-11 14:11:57 · 1162 阅读 · 0 评论 -
ue4总结一
1,创建项目在创建项目中如果要创建一个第一人称射击游戏,点击FisrtPerson,即可在改模板上进行设计,Flying是创建飞行游戏的时候可以用该模板,如果选择蓝图下面的选项就是通过连线进行游戏开发,选择c++下的选项就是通过代码进行游戏开发2,创建蓝图会打开蓝图,可以在里面添加节点,连线,里面的节点非常丰富,非常多3,也可以创建类蓝图,在资源文件中的BluePrin原创 2017-12-25 11:19:27 · 2742 阅读 · 0 评论 -
Jenkins发送自定义格式和报错信息到钉钉指定人
一、说下实现的功能:在Jenkins中提供了自动化测试系统,我们要实现svn中实时获取文件,构建任务,谁提交的任务就在钉钉上给谁发送消息,提示它当前项目id号,svn版本号,失败还是成功,输出错误日志。 二、做之前需要看的文档首先要查看钉钉官方文档提供的接口文档:点击打开链接对于发送的自定义的格式参考钉钉官方文档格式,使用那个钉钉给你的token就可以将消息发送到钉钉上,网络的...原创 2018-04-02 17:21:55 · 10502 阅读 · 2 评论 -
使用jenkins自动打包ue4
Jenkins介绍:全球领先的开源自动化服务器,Jenkins 提供了数以百计的插件来支持构建、部署和自动化任何项目Jenkins的特点:持续集成(Continuous integration ,简称CI。) 持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快...原创 2018-03-28 21:17:54 · 3102 阅读 · 0 评论 -
游戏开发的生命周期
对于很多人可能和我一样,都想要做出一款好玩的游戏,可是如何做出一款游戏捏?它经历了什么样的步骤呢?今天来和大家分享。项目的生命周期:项目生命周期指项目从启动到完成所经历的一系列阶段项目管理、生命周期的意义:1、保证团队中每个人知道我们最终要做的是什么,如何去做2、在时间、资金有限的情况下让我们知道当下是否正在按照计划去执行以及当前所处的阶段,下一步做什么3、合理的规划和管理避免将资金耗费在不重要的...原创 2018-04-17 02:33:53 · 7521 阅读 · 0 评论 -
项目管理之敏捷开发总结
瀑布模型:简单说就是先定好需求和相关文档,然后构建框架,然后写代码,然后测试,最后发布个产品一旦文档需求确定,开发人员就按文档开发,直到产品开发完后,才会拿出来给客户。不过这种方式基本不适应现今快速发展的市场现状了。弊端:1.接力棒的协作模式带来信息差:瀑布模式下,业务、产品、研发三方很少共同参与讨论。需求如同接力棒从业务方传递给产品经理,再从产品经理传递给研发团队。信息每经过一次传递都有损失,研...原创 2018-04-11 23:27:05 · 15877 阅读 · 2 评论 -
《游戏人工智能编程》读书总结一
1,矢量的大小代表了车辆的速度,方向代表了车的方向矢量的加法:原创 2018-05-19 21:50:51 · 707 阅读 · 1 评论 -
《游戏人工智能编程》读书总结三
5、体育游戏(简单足球)模拟一、定义球场、足球类游戏规则:红队和蓝队,每队四个球员一个守门员。尽可能多进球,踢进球门线就算进球。 这里很有意思的是:守门员和场上队员每人有一个状态机类,而SocccerTeam也有个状态机类,队员级别有AI,小组级别也实现AI,这就是所谓的分层AI。这类Ai经常用于RTS实施战略游戏中看到分层AI,敌人AI通常在多个层次上实现,比如部队...原创 2018-06-05 09:42:35 · 2091 阅读 · 0 评论 -
《游戏人工智能编程》读书总结二
自治智能体: 一个位于环境内部,能够感知环境对它有效实施的作用,并按此进行,为未来的新感知提供条件。比如兔子正在吃草,看见狐狸,就自治的逃走,狐狸会自治的追捕要讨论操控行为之前,首先要对模型(运动)进行类设计,如下图所示: BaseGameEntity是角色的基类(该基类就有Update方法),它包含了角色id,位置,大小等信息,MovingEntity继承于它代表它是...原创 2018-06-02 17:29:08 · 937 阅读 · 0 评论 -
《游戏人工智能编程》读书总结四
6、图的秘密 导航图的每一个节点通常表示一个区域位置或对象,一个边有一个开销,代表了节点间的距离,这样的图叫做欧几里得图 角色扮演游戏常用基于单元网格设计导航图,每一个单元代表一种不同的地形,如草地、公路,根据不同地形单元格的权重也不同,这样计算出的路径会尽量走公路而不是泥地。 比如一个秘密行动游戏,他的边的权值由角色在其上发出的声音决定,比如沿着地毯的边的权值较小,沿着地板的边...原创 2018-07-11 17:51:12 · 468 阅读 · 0 评论 -
《Inside UE4》读书总结二
摘自知乎《Inside UE4》:https://zhuanlan.zhihu.com/insideue4APlayerController PlayerController中大概归纳出几个模块:Camera的管理,目的都是为了控制玩家的视角,所以有了PlayerCameraManager这一个关联很紧密的摄像机管理类,用来方便的切换摄像机。PlayerContro...原创 2018-07-21 21:53:36 · 1391 阅读 · 0 评论