- 博客(58)
- 资源 (1)
- 收藏
- 关注
原创 UE4 Gif图插件
因为项目中用到了Gif格式的图片作为loading界面的资源,但UE本身不支持该格式,所以只能找找看是否有大佬写过相应的插件,果然被我找到了,是一个叫AnimatedTexture的插件。虚幻4动画贴图插件 | 游戏程序员的自我修养不过原插件Gift图的tick是在游戏线程中进行的。因为我们项目里面的loading是阻塞游戏线程加载,所以想要在加载界面中使用这个插件,就需要对原插件进行一部分修改,让Gif图资源在游戏线程阻塞时,也能够更新texture。这里将原有的AnimatedTexture
2021-11-30 17:35:42
4114
原创 开启skincache的骨架网格体gpu计算顶点信息过程
对于开启skincache的骨架网格体,几乎所有顶点数据计算都是在计算着色器中完成的。游戏线程:FRendererModule::BeginRenderingViewFamilyWorld->SendAllEndOfFrameUpdates();UActorComponent::DoDeferredRenderUpdates_ConcurrentUSkinnedMeshComponent::SendRenderDynamicData_ConcurrentFDynamicSk
2021-11-29 11:38:38
1488
原创 ue4 重新计算法线导致接缝问题bug解决办法
4.24 到 4.26 版本中,选中骨架网格体section 重新计算切线时,可能导致出现接缝问题。解决方法如下:修改GPUSkinCache.cpp 的FGPUSkinCache:: DispatchUpdateSkinTangents中的代码:Code:if (bFullPrecisionUV){if (GAllowDupedVertsForRecomputeTangents) Shader = ComputeShader11;else Shader = ComputeSha
2020-12-21 17:07:05
2943
原创 UE4 mesh DrawCall计算
DrawCall计算:PrePass阶段(深度缓冲区计算阶段): 移动性为Static的 静态网格体 整个mesh执行一次drawcall,并尽可能将所有相同mesh整合在一个drawcall内(drawinstnace) 移动性为stationary或 可移动的 静态网格体 每个非透明的材质插槽一次drawcall, 并尽可能将所有相同mesh整合在一个drawcall内(drawinstnace) ...
2020-11-11 19:16:59
1670
原创 ue4 播放程序化生成的声音
首先了解音频有几个重要的概念:采样频率:每秒钟采样次数,采样率越高,数字波形的形状越接近原始模拟波形,通常的采用频率有22050,44100,48000,96000采样位数:采样声波时,为每个采样指定最接近原始声波振幅的振幅值。 采样位数提高可提供更多可能的振幅值,产生更大的动态范围、更低的噪声基准和更高的保真度。通常的采样位数有8bit,16bit,24bit,32bit。通道数:即...
2019-10-28 13:43:10
3433
7
原创 ue4 动态修改GameMode
动态修改GameMode:通过openLevel打开关卡时,设置参数?game=GameMode的路径例如:mapName?game=/Script/Engine.GameModeBase
2019-10-19 15:12:04
4758
2
原创 ue4 修改父类组件创建类型或让父类不创建组件
修改父类组件创建类型或让父类不创建组件:通过AMyCharacter::AMyCharacter(const FObjectInitializer& ObjectInitializer)格式的构造函数,后面采用以下形式: AMyCharacter::AMyCharacter(const FObjectInitializer& ObjectInitializer)...
2019-10-19 15:11:16
2707
原创 ue4 文件操作
1.IFileManager(用于操作更底层的文件,通过文件系统来操作文件,比如本地文件与文件夹的读,写,查询等操作。)IFileManager::Get() //获得FFileManagerGeneric。FFileManagerGeneric是方便管理文件的基础类,含有很多方便文件操作的方法,其内部通过文件系统管理文件获取文件系统:IFileManager::Get().Get...
2019-10-19 15:05:38
4048
原创 ue中 模型闪烁问题
有可能是因为两个面考得太近,ue4的zbuffer精度达不到,比如渲染的两个面只相差0.001的距离当相机靠近时,两个z值可以区分,当相机远时,z值可能无法区分。导致Z-Fight,从而闪烁,通常会出现在人物的头发,睫毛等细微地方,可以采用面片方式,而不是多面型构建头发和睫毛...
2019-10-19 14:58:56
9855
原创 ue4 阴影与包围盒
ue中阴影缺失有可能是因为包围盒的原因,物体的一部分在视野内,但物体消失,也有可能是包围盒的问题,可设置缩放boundsScale,静态网格体的包围盒通常是自动根据模型生成的。骨架网格体,如果没有设置过物理资源(注意,不是阴影物理资源),则包围盒将根据形体,自动生成,如果设置过物理资源,则包围盒将根据物理资源的所有形体进行构建,这可以加快包围盒构建速度,但也可能造成包围盒构建的大小出现问题。如果...
2019-10-19 14:57:16
1844
原创 ue 使用中注意的问题(持续更新)
1.ue4中使用try catch时,应该在在模块的build.cs中,加入bEnableExceptions = true;不然打包会出错2.包含第三方库时,有可能出现预处理器没有定义的情况,在库的头文件中使用预处理器进行某些判断时,会报错,解决方法:这时,在模块的build.cs中,加入bEnableUndefinedIdentifierWarnings = false;3...
2019-10-19 14:48:59
3863
原创 ue4 创建自定义资源,导入与重新导入自定义资源
首先定义我们自己的资源类型:UCLASS()class TESTSLATE_API UMyObject : public UObject{GENERATED_BODY()public:UPROPERTY(EditAnywhere)int A;};之后,我们需要最重要的一个类:UFactory, 该类决定指定类型的资源的创建, 是否支持通...
2019-08-19 15:12:43
5074
1
原创 UE4 多线程 创建与使用
UE4 多线程使用分为以下几种:1.创建标准线程2.使用线程池3.使用TaskGraph系统使用线程时需要注意,不要在非GameThread线程内执行下面几个操作: 不要 创建/ 修改/ 删除 任何 派生自UObject的对象。 不要使用定时器 TimerManager 不要使用任何绘制接口,例如 DrawDebugLine 1...
2019-08-15 14:45:58
6935
原创 UE4 创建自定义动画节点
创建自定义动画节点需要两个类:一个是您在编辑器中看到的图表节点一个是真正在运行时工作的行为节点动画图表节点,派生自:UAnimGraphNode_Base例如:class UAnimGraphNode_SequencePlayer : public UAnimGraphNode_Base动画行为节点,派生自:FAnimNode_Base例如:struct ENG...
2019-08-15 14:19:12
4231
4
原创 UE4 使用第三方lib,dll,.so,.a
以下是在4.22.3版本中使用结果,版本不同可能会有所差异。首先对于所有第三方库都应该先加入对头文件目录的包含:在模块的Build.cs文件中,加入对应的第三方库的头文件包含路径,这样就可以在包含头文件时,找到对应的文件;PublicIncludePaths.Add(path);//包含目录中的头文件并公开到外部模块或PrivateIncludePaths.Add(...
2019-07-30 16:55:19
5705
3
原创 ue4 打包IOS(测试包)
首先,在打包IOS时,不管是否需要远程mac打包。我们都需要证书文件(cer 或者 p12)和描述文件。cer证书带有公钥,在生成时,需要csr(证书签名请求) ,安装cer需要私钥。开发证书可以创建p12副本证书,用在其他电脑上。p12是带有私钥的证书。下面的步骤包括:1.证书与描述文件获取2.项目打包基础设置3.远程打包设置关于证书与描述文件请看下面...
2019-07-04 06:36:08
4503
1
转载 ue4 清除 ios的证书与描述文件
[UE4]删除旧的mobileprovision文件(clean ios mobileprovision history)转载https://dawnarc.com/2018/03/ue4%E5%88%A0%E9%99%A4%E6%97%A7%E7%9A%84mobileprovision%E6%96%87%E4%BB%B6clean-ios-mobileprovision-histor...
2019-07-04 06:36:05
2114
原创 UE4 导航网格的使用
在使用导航网格前,应先设置项目导航系统支持的导航代理者(Agents)在项目设置中,找到导航系统页面DirtyAreasUpdateFreq 表示导航网格变化时,检测变化并更新的频率。这里可以设置导航系统的一些参数,包括是否允许客户端导航, 支持的导航代理者(Agents)根据支持的导航代理者类型,导航网格会生成不同的RecastNavMash,以支持不同代理者。代理...
2019-07-04 06:36:01
11501
2
原创 UE4 中几个基础的类
UObject是所有对象类的基础类(不是所有类的基础类),包括AActor, UActorComponent虚幻引擎中的对象基础类为UObject。UCLASS 宏可用于标记从UObject派生的类 ,使 UObject 处理系统识别到它们UCLASS 宏UCLASS宏为 UObject 提供一个对 UCLASS 的引用,描述其基于虚幻引擎的类型。每个 UCLASS 保留...
2019-07-04 06:35:57
1110
原创 UE4 Actor移动性以及光源移动性类型
Actor移动性Mobility(移动性)设置控制是否允许在游戏过程中以某种方式移动或改变Actor。 该设置主要应用于静态网格物体Actor及光源Actor。当Mobility(移动性)属性可用时,它有三种状态 移动性状态 描述 Static(静态) Static(静态) 设置是为在游戏过程中不能...
2019-07-03 10:05:18
3699
原创 ue4 自定义行为树的Service, Task,Decorator节点
一.基本说明行为树中的节点,有一些Service, Task,Decorator节点是引擎内部的C++类,还有一些,是用户自定义的节点,一般是根据需要,派生自引擎内部c++类的本地C++类,或是派生的蓝图类通常自定义行为树中节点,需要先打开行为树,然后在工具栏中找到如下的选项点击旁边下拉选项,可以选择基类,默认基类分别为BTTask_BlueprintBase、 BTDe...
2019-07-03 10:05:04
5193
原创 ue4 本地化要点详解
UE4中的本地化系统以“文本”的本地化为中心,还包含资源的本地化,诸如声音,图像等。要查看本地化是否生效,请使用编辑器的standalone 模式运行游戏进行查看。在编辑器运行时,会有一些本地化未生效。关于文化(cultures)文化名称(IETF语言标记)由三个连字符分隔的部分组成 两个字母的ISO 639-1语言代码(例如“zh”)。 可选的四字母ISO 15924...
2019-07-03 10:04:54
6686
2
原创 ue4 命令行编译 烘焙 打包 存档
首先是官方wiki的说明How to package your game with commandsJump to: navigation, searchTemplate:Rating This aims to be a quick guide on how to package and distribute your game.Some points: If you use...
2019-07-03 10:04:47
6265
原创 ue4 版本资源更新
写的有点乱。。。。。这里有一些可供参考的文档:UE4 Pak 相关知识总结https://arcecho.github.io/2017/07/02/UE4-Pak-%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86%E6%80%BB%E7%BB%93/UnrealPak的使用笔记 https://blog.ch-wind.com/unrealpak-note/...
2019-07-03 10:04:40
6513
2
原创 ue4 创建简单的声音系统
通常我们的音效系统中包含有 :总音量音乐音量音效音量人声音量首先我们创建声音类(soundclass)命名为MainSoundClass,这个是我们来控制所有的声音文件的。通常我们把它作为项目的DefalutSoundClass。设置在项目设置的Audio页签中。这样当我们导入音效文件时,会自动把文件的SoundClass设置为MainSoundCl...
2019-07-03 10:04:34
5220
原创 ue4 GameUserSetting的使用(设置分辨率,全屏模式,帧率,垂直同步等)
当游戏开始时,游戏会自动从下面的目录中读取用户设置。后一个文件的配置将覆盖前一个的配置当保存设置时,将是在[ProjectDirectory]/Saved/Config/[Platform]/GameUserSettings.ini中保存设置。 Engine/Config/Base.ini Base.ini通常是空的。 Engine/Config/BaseGameUse...
2019-07-03 10:04:29
24303
1
原创 ue4 设置关卡加载loading界面,全屏影片播放,游戏开头影片播放
游戏开头影片播放游戏开头可以添加开始的视频,用以等待游戏的第一个关卡的加载。在项目的Movies中设置waitforMoviestoComplete勾选时,是指即便关卡加载完成。影片仍然播放直到结束。MoiesAreSkippable勾选室,是指当关卡加载完成后,如果影片还在播放。那么可以点击屏幕结束影片播放。StartupMovies 是所...
2019-07-03 10:04:20
8518
原创 ue4 关卡切换
下面的图是无缝与非无缝切换的流程图使用注意:0.无缝和非无缝,是单机和多人游戏都存在的关卡切换形式。并不仅仅是指多人游戏。1.无缝过程整体是异步的, url中只有map部分有效,加入viewport的UUserWidget将保留,如果联网,不会断开连接,过程中将调用UWorld::SeamlessTravel,LoadPackageAsync。2.非无缝过程是整体或部分阻塞的,...
2019-07-03 10:04:16
8667
原创 ue4 流送关卡使用注意
流送关卡:流送关卡 可与固定关卡重叠,或偏移创建更大的世界场景。 使用流送关卡的流送类型可设为Always Loaded或Blueprint。流送关卡被设为Always Loaded,它将与固定关卡一同加载, 它将无视指定的流送体积域,以及来自蓝图或 C++ 的所有加载/卸载请求,设为Always Loaded的关卡分段不会流出,除非游戏变更固定关卡。常用于固定关卡的 通过关卡...
2019-07-03 10:04:09
4829
原创 UE4 List View 在蓝图中的使用
在使用中遇到的问题:蓝图中调用userListEntry 接口的IsListItemSelected,IsListItemExpanded,GetOwningListView 函数 ,均会崩溃。一、创建用作item显示的控件蓝图,命名为listviewItemWidgetBP类,添加接口IUserObjectListEntry,然后添加我们需要显示的控件,这里我们就简单的显示一个文本。...
2019-07-01 16:36:08
3820
1
原创 ue4 在ui中显示3d物体 主要是用到sceneCapture2d
搬运一下:https://www.youtube.com/watch?v=mSDgMmaddJw再给一个chrome 的 vpn 插件,暂时是免费。速度还是可以的https://www.windmillvpn.com/
2019-07-01 16:36:03
1397
原创 ue4 visual studio 好用的插件Visual AssistX 10.9.2301.0 破解版
https://pan.baidu.com/s/1ho5CK4YQZ-lsYTrTXhGkmg提取码:nf9x在crack文件中 是破解用的dll和dll使用说明,替换原有的dll就可以了支持ue4的属性说明符,函数说明符,类说明符,元数据等特性。常用的快捷键:shift+Alt+S 查找符号定义shift+Alt+O 查找文件以我的VS2017...
2019-07-01 16:35:59
2589
原创 ue4 渲染等优化参考点。
图片使用支持的压缩纹理格式如ETC1,PVRTC,S3TC等格式而不是常见的jpg,png格式加快图片解析,这个UE4已经帮你做了。下面是关于渲染效率提升的知识点:影响OpenGL绘制的效率直接和OpenGL API相关的一部分来自于其在CPU上执行的开销,一部分来自于渲染本身在GPU上执行的开销。CPU上执行的开销主要是由于调用API导致的OpenGL驱动的开销,这类开销一般可以分成三大...
2019-07-01 16:35:54
1149
原创 Character 自定义移动方式
一些比较复杂的运动方式,适合使用自定义移动方式+根动画来完成根动画只能用在character中。且只能是character的自带skeletal mesh component动画蓝图中,状态机可能会在出现两个状态无限切换。有可能是因为某一个状态没有重置。需要勾选状态的Always Reset on Entry。在多人游戏中,根运动模式,应设置为仅来自蒙太奇的根运动,不然会出...
2019-07-01 16:35:50
826
原创 ue4 创建简单的可跳跃寻路AI
用到了:NavLinkProxy也就是这个:NavLinkProxy有两种连接: SmartLink和SimpleLink。simpleLink用于简单的跳下高台。SmartLink我们用来写我们跳跃代码。我们创建NavLinkProxy的子类蓝图,然后在其中的Receive Smart Link Reached 事件中,设置我们的跳跃代码...
2019-07-01 16:35:44
5510
9
转载 UE4在图像渲染中会遇到的难点以及解决方法
转载:http://wemedia.ifeng.com/7884171/wemedia.shtml对玩家而言,UE4带来的作品都是不折不扣的视觉盛宴。在手游品质越发上扬的如今,已经有不少厂商开始使用一些性能更好的引擎,去尝试游戏制作了。而虚幻4引擎(以下简称UE4)就是其中之一,在这款引擎中已经诞生了诸如《铁拳7》《地狱之刃》《帕拉贡》等一系列大作。对玩家而言,这些作品都是不折不扣的视觉盛...
2019-07-01 16:35:35
13023
转载 UE4 自定义深度 绘制轮廓线
UE4里的自定义深度功能转载:https://www.tomlooman.com/the-many-uses-of-custom-depth-in-unreal-4/ 随着物理渲染系统的发布,虚幻引擎4同时引进了一个新的深度缓存功能,它叫作“自定义深度”,可以用于诸如编辑器里的选择区域高亮、自发光网格的渲染、自定义的透明切片。我将会聊一聊在材质编辑器中使用这种缓存的基础知识...
2019-07-01 16:35:29
4817
转载 学一学,VBO
VBO,全称Vertex Buffer Object,与FBO,PBO并称,但它实际上老不少。就某种意义来说,它就是VA(Vertex Array)的升级版。——ZwqXin.com事实上,对VBO的接触可以追溯到当初接触FBO之后[学一学,FBO] 。那时候还在做Shadow Volume吧,见识到FBO的强大之后,就想把VBO也学了——于是不觉得有什么难理解和难应用的地方,就把构造Vol...
2019-07-01 16:35:22
242
转载 AB是一家?VAO与VBO
AB是一家?VAO与VBO我想大家都已经熟悉VBO了吧。在GL3.0时代的VBO大体还是处于最重要的地位,但是与此同时也出现了不少新的用法和辅助役,其中一个就是VAO。本文大致小记一下这两者的联系,帮助大家理解一下这个角色。——ZwqXin.comVBO?See[学一学,VBO]本文来源于ZwqXin(http://www.zwqxin.com/), 转载请注明原文...
2019-07-01 16:35:13
211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人