UE4
FLYINGSNOWGO
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《UE4游戏开发》之 《CheatManager的使用》
介绍了基本使用及扩展方法以及功能职责https://www.yuque.com/flyingsnowgo/guouoi/pwz67p原创 2021-06-22 14:00:52 · 1936 阅读 · 0 评论 -
《UE4游戏开发》之 《TArray常用接口分析及例证》
https://www.yuque.com/flyingsnowgo/guouoi/wtdkb1原创 2021-06-17 17:15:13 · 501 阅读 · 0 评论 -
《UE4游戏开发》之 《UFUNCTION(exec)执行的全流程分析》
UFUNCTION(exec)执行的全流程分析原创 2021-06-16 18:39:25 · 857 阅读 · 0 评论 -
《UE4游戏开发》之 《UE4 GC编程》
TWeakObjectPtr1.1 声明:TWeakObjectPtr Owner;class TESTENGINE_API FTestGC : public FGCObject{public: TWeakObjectPtr<UObject> Owner; USkeletalMeshComponent* SkeletalMeshComponent; FTestGC();public: void InitComponent(); void PrintInfo();prot.原创 2021-05-19 16:39:53 · 636 阅读 · 0 评论 -
《UE4游戏开发》之 《如何获取启动时,设置的启动参数》
以PS设置启动参数为例:在这里插入图片描述2. 要在游戏中获取启动参数值,需要知道启动参数,保存的位置:2.1 需要了解【Engine\Source\Runtime\Core\Public\Misc\CommandLine.h】/** * Returns an edited version of the executable's command line * with the game name and certain other parameters removed * 获取.原创 2021-04-13 15:51:27 · 3359 阅读 · 3 评论 -
《UE4游戏开发》之 《UE4源码分析技巧总结》
如何快速查找类/结构体成员变量的赋值:直接搜索变量引用1.1 注意赋值变现:变量名 =1.2 ,变量名()、:变量名(),总结表现形式为: 变量名(PS:好处:注意特征,可以从茫茫查找信息中,快速注意到赋值地方如何快速查找类实例化的地方:2.1 先搜索【类名(】,如果没搜到,可能是模板实例化2.2 如果没搜到,则搜索【<类名】...原创 2021-04-13 15:26:21 · 584 阅读 · 0 评论 -
《UE4游戏开发》之 《线上崩溃定位之常用汇编指令》
**mov rbx,qword ptr [r13+150h]**说明:mov:传送指令MOV(Move)表示把一个字节、字或双字的操作数从源位置传送到目的位置,源操作数的内容不变rbx:是一个可用的寄存器,存放的数据是合法的,不涉及系统隐私。r13:寄存器R13常用作堆栈指针SP[r13+150h]:是把r13和150h相加,把这个相加后的数值,转化为一个地址,ptr:指针的缩写qword:2个字节就是1个Word(1个字,16位),q就是英文quad-这个词根(意思是4)的首字母,所以它自然.原创 2021-04-12 10:32:50 · 813 阅读 · 0 评论 -
《UE4游戏开发》之 《如何使用通过一句宏:定义声明变量,事件绑定和触发》
如何判断是否符合通过一句宏:定义变量、事件绑定和触发方法的情况:找不到变量定义:OnGameActivityActivationRequesguitedDelegates找不到触发方法的定义:TriggerOnGameActivityActivationRequestedDelegates()如何找到真正定义的位置通过找变量和触发方法的公共部分【OnGameActivityActivationRequested】,然后在引擎源码中搜索,发现DECLARE【声明关键词】,DEFINE【定义关键词】跳.原创 2021-02-27 11:05:42 · 526 阅读 · 0 评论 -
《UE4游戏开发》之 《加快编译速度的一些设置》
资料1:https://zhuanlan.zhihu.com/p/91623446资料2:https://zhuanlan.zhihu.com/p/83190575原创 2020-12-09 11:23:28 · 1740 阅读 · 0 评论 -
《UE4游戏开发》之 《环境音效和程序化设计学习》
音频文件需要16位,采样率可以任意选Ue4支持的音频格式:WAV【游戏中常用格式】,AIFF,FLAC,Ogg Vorbis格式,环绕声格式【Ambisonic文件】命名规范通过SizeMap功能可以查看资源在磁盘和内存的大小电子机械声音:20s或60秒大自然的声音:要长一些,具体跟游戏平台和内存预算相关如何限制音效在一个区域内能听见:添加衰减效果禁用声源空间化:可以是玩家走到哪里都能听到声音,而不是从特定的声源播放该设置消耗性能大,注意合理使用,其效果..原创 2020-12-04 19:59:02 · 962 阅读 · 0 评论 -
《UE4游戏开发》之 《实现在阶段性播特效,下个阶段结束》
明确服务器的心跳检测是一个定值;意味着服务器同步数据的间隔也是一个定值;因此,通过服务器数据同步来控制特效的播放时机是错误的。由1分析可知,需要自己在客户端通过tick去更新时间值。具体做法:在触发阶段开始,通过创建一个成员变量CacheRemainTime记录当前阶段的总时间;通过创建一个变量StartPlayParticleTime记录开始播放特效的时间,并根据特效时间进行估值;在接收服务器数据的对象tick中去算CacheRemainTime -= DeltaTime;当CacheRemainT.原创 2020-06-06 20:01:38 · 388 阅读 · 0 评论 -
《UE4游戏开发》之 《音频和语音切换不成功原因》
首先考虑GameUserSettings.ini的读写是否正确,即有没有把切换写进GameUserSettings.ini;还有就是在读取的时候,是否读正确;验证是否读正确的方式:在FConfigCacheIni::InitializeConfigSystem中打断点,查看GConfig的值对比ini验证是否与GameUserSettings.ini一致可能导致GameUserSettings.ini读取不正确的原因:看源码读取优先是从pak包读取,如果pak包没有,会从非pak包读取,所以如果把Ga.原创 2020-11-18 13:41:24 · 649 阅读 · 0 评论 -
UE4 有用链接整理
ue4 游戏开发者笔记:https://bebylon.dev/ue4guide/原创 2020-10-21 17:54:05 · 390 阅读 · 0 评论 -
《UE4游戏开发》之 《查cook资源失败,问题记录》
当项目打包时,cook出错,但是从原始引擎提供的信息中,没有提示具体的那个资源出错,要查到出错资源,还是非常麻烦。下面就材质cook出错,增加一些日志,方便查找问题做简单记录材质cook的一个阶段,是收集MaterialShaderMap,如果在这个阶段收集的信息出错,将会在FShaderMapContent::GetOutdatedTypes函数中,因为Shaders指针指向的内存有问题而出错,通过断点发现,FShaderMapContent这个类对象指针为null,而这个类对象的来源于AllMat.原创 2020-10-19 16:06:31 · 2462 阅读 · 0 评论 -
ue4 源码 ini设置保存位置
改变配置,ue4优先存储的位置E:\UnrealEngine-release\Engine\Saved\Config\Windows【平台名字】\源码访问的偏好设置存于EditorSettings.ini section名字[/Script/SourceCodeAccess.SourceCodeAccessSettings]键值对:PreferredAccessor=VisualStudio2019【举个例子】如果想多平台设置同一个PreferredAccessor,可以在Config/BaseEdi.原创 2020-10-14 18:44:35 · 1082 阅读 · 0 评论 -
《UE4游戏开发》之 《BuildGraph添加ModifyDirectoryConfig Task》
1.Engine\Build\Graph\Schema.xsd,里面定义了复杂类型【complexType】,每种复杂类型【类型中定义了if、foreach和do等逻辑必要类型,意味着可以在xml中添加一些逻辑处理】,可以进行相互嵌套【在嵌套中xs:element/标签标识,指定名字和类型】,而基础类型的实现是在Engine\Source\Programs\AutomationTool\BuildGraph\Tasks中,Schema.xsd定义的类型是在xml中使用,Engine\Build\Instal原创 2020-10-10 18:00:50 · 769 阅读 · 0 评论 -
《UE4游戏开发》之 《声音资产本地化》
1.声音资源本地化如何设置:1.1选择导入的默认声音资源,鼠标右键,弹出右键界面1.2在右键界面中,鼠标移到【AssetLocalizations】打开二级菜单1.3二级菜单,提供了创建、查找、编辑本地资源,每种资源都对应一种语言1.4本截图是创建法语声音资源2.当创建法语声音资源后,ue4会自动跳转至资源目录3.注意默认打开ue4 editor后,本地化资源文件是不显示的,即【L10N】文件默认是不显示的,打开方式:3.1 鼠标单击【View Options】,打开菜单3.2 勾选【S原创 2020-09-23 17:32:24 · 798 阅读 · 0 评论 -
UE4性能分析工具Unreal Insight之优化UI
如何在非独立窗口模式下使用Unreal Insight分析工具:在New Connection输入需要调试电脑的IP,LIVE表示那条数据是你连接上的调试数据,双击标有LIVE的数据,打开数据分析界面如何筛选Unreal Insight日志:通过Menu,打开筛选跟踪数据面板勾上对应的checkbox,表示要跟踪的模块,不勾选,表示不跟踪对应模块,可以利用这个特性先勾选Cpu,然后一段时间后,去掉Cpu勾选,这段时间产生的数据由于更上一次分析的有时间差,中间有没有跟踪的一段时间,这块数据会..原创 2020-09-15 18:47:58 · 5918 阅读 · 1 评论 -
Unreal Engine 4 中的 UI 优化技巧 汇总
来源于腾讯学院:https://gameinstitute.qq.com/community/detail/113852来源于搜狐:https://www.sohu.com/a/137852384_204824来源与知乎【心之所向】:https://zhuanlan.zhihu.com/p/148776920UE4基于栈状态机的UI管理(框架设计)【罗传月武】:https://zhuanlan.zhihu.com/p/143882791性能分析工具:https://docs.unrealengin.原创 2020-09-14 10:53:49 · 1142 阅读 · 0 评论 -
解析ue4的TFunction模板类
// UE4TFunction.cpp : This file contains the 'main' function. Program execution begins and ends there.//#include <iostream>/** 声明类模板名:TEnableIf,Result具有默认值void [9/12/2020 ZC] */template <bool Predicate, typename Result = void>class TEnab原创 2020-09-12 18:38:31 · 2118 阅读 · 0 评论 -
在ue4中,探索正则表达式的好处
发起http get请求:void ServersAddressHelper::HttpGetReq(const FString url, const TFunction<void(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)>& Complate){ auto Http = &FHttpModule::Get(); TSharedRef<IHttpRequest.原创 2020-09-12 11:21:21 · 659 阅读 · 1 评论 -
《UE4游戏开发》之 《材质系列学习杂记》
1.拿到原画或者实际物体【如:水、树、花、键盘、人等】后,如何制作贴图?2.有贴图后,如何正确采样应用到模型中?3.模型贴图的展开和贴图的合并,存在这种说法吗?4.如何对模型进行着色:顶点着色、贴图着色、混合使用5.高模烘焙法线贴图?6.UV坐标系7.贴图坐标系【TextureCoordinate】与UV的关系:可以理解为贴图坐标系为画布,某个模型的UV为画布中的内容;贴图坐标系与对应,快捷键:u+鼠标左键。8.UV展开的方式:(1)完全展开:全部放到0-1空间,很少对此类模型的材质的UV进原创 2020-09-12 09:56:24 · 688 阅读 · 0 评论 -
《UE4游戏开发》之 《音效系统的实现》
音效系统需要负责管理什么事情:1.1 确定声音控制的分类:如背景音乐、技能音效、界面音效、角色配音等,不同游戏对声音有不同的分类1.2 控制每个分类的声音的开启与关闭,以及调节每个分类声音的大小解决如何分类:2.1 首先需要知道ue4为声音分类提供了什么:SoundClass通常需要一个根分类【SC_RPG_Master】,便于总体控制音效,以及指定引擎默认启动的音效打开SoundClass资产【SC_RPG_Master】,对根控制的设置,将逐级传递并按比例进行设置,以此达到控制一类声音的目的.原创 2020-09-09 16:24:10 · 2041 阅读 · 0 评论 -
UE4中对c/c++宏用法分析
/** * 行继续操作符【\】:表示用符号\,连接的内容,都是定义同一个宏的内容 * #:表示将参数字符串化 * ##:表示连接内容 * inline:c++的关键字 * __inline: c和c++都可以用,功能与inline一致 * __forceinline:c和c++都可以用,不基于编译器的性能和优化分析而依赖于程序员的判断进行内联, 但它也不保证 一定内敛,有些情况函数是肯定不能内敛的 * 使用宏的好处:可以精简写法,易于复用;如:本例的方法可以快速定义类属性的set和get原创 2020-09-03 18:19:07 · 1248 阅读 · 0 评论 -
《UE4游戏开发》之 《TSoftObjectPtr引用资源并使用的陷阱》
错误使用例子://该if条件永远为falseif (anim_info->PreviewBorn && anim_info->PreviewBorn.IsValid()){ AnimSeq.PreviewBorn = Cast<UAnimSequenceBase>(anim_info->PreviewBorn.LoadSynchronous());}else{ AnimSeq.PreviewBorn = AnimSeq.Born;}//该.原创 2020-08-21 18:47:42 · 3958 阅读 · 2 评论 -
《UE4游戏开发》之 《日志系统打印类名函数和行号》
理解c/c++提供宏的的含义:__FUNCTION__表示当前类名和函数名;__LINE__调用它的代码中的当前行号参考链接:https://www.ue4community.wiki/Logs,_Printing_Class_Name,_Function_Name,_Line_Number关键宏拼接//Current Class Name + Function Name where this is called!#define CUR_CLASS_FUNC (FString(__FUNCTIO.翻译 2020-08-05 11:33:11 · 580 阅读 · 0 评论 -
《UE4游戏开发》之 《资源异步加载进度条处理》
以TArray数组作为容器,搜集所有需要异步加载的资源【assetList】加载进度的总体思路:把数组里的数据,按每次步长分成若干份,每完成一次步长,就更新一次UI,并开始下一步长,依次类推,进度条即可实现;如何把数组按步长分若干份:这个ue4给TArray提供了一个方法:Append,可以这样写://assetList搜集需要动态加载的资源//loadingIndex新一步长开始的索引//Count:计算从Ptr中插入的元素的数量TArray<FSoftObjectPath> .原创 2020-08-04 16:26:30 · 2445 阅读 · 0 评论 -
《UE4游戏开发》之 《快捷键设置系统》
1.UE4提供了UInputKeySelector控件,可以通过鼠标点击激活快捷键输入,然后点击键盘上按键,可以通过将设置的快捷键,显示出来2.设置快捷键的根本思路,通过移除在InputSettings上一个AxisMap或者ActionMap,然后把新的AxisMap或者ActionMap添加进InputSettings3. 关键性代码:void UI_Option::RebindActionMapping(const FName KeyName, const FKey Key){ if (Ke原创 2020-08-03 13:56:08 · 1702 阅读 · 0 评论 -
《UE4游戏开发》之 《画质控制》
画质控制1.画质设置,在ue4中有一个全局实例对象UGameUserSettings,通过UGameUserSettings::GetGameUserSettings()获得该对象。2.该对象可以控制:2.1抗锯齿【AntiAliasing】【UGameUserSettings::SetAntiAliasingQuality】2.2视野距离【ViewDistance】【UGameUserSettings::SetViewDistanceQuality】2.3后处理质量【PostProcessQua原创 2020-08-01 15:02:12 · 3857 阅读 · 0 评论 -
《UE4游戏开发》之 《代理》
//FComsumedItemEvent可以被UPROPERTY(BlueprintAssignable)标识DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FComsumedItemEvent, int, ItemId);//FOnAutoEquipEvent不可以被UPROPERTY(BlueprintAssignable)标识DECLARE_DELEGATE_TwoParams(FOnAutoEquipEvent, int, float);...原创 2020-07-22 13:54:44 · 251 阅读 · 0 评论 -
《UE4游戏开发》之 《MoveTemp函数的理解》
源码/** * MoveTemp will cast a reference to an rvalue reference. * This is UE's equivalent of std::move except that it will not compile when passed an rvalue or * const object, because we would prefer to be informed when MoveTemp will have no effect. .原创 2020-07-22 12:05:26 · 3041 阅读 · 0 评论 -
《UE4游戏开发》之 《Json解析》
ue4 json解析参考: https://blog.youkuaiyun.com/or_7r_ccl/article/details/53483810转载 2020-07-20 14:28:53 · 923 阅读 · 0 评论 -
《UE4游戏开发》之 《UMG容器添加子控件,数据初始化顺序》
应该先把控件放入容器中,然后再初始化控件的数据;否则,顺序反后,表现将是一个不确定的结果例子在项目中,原来子控件的初始化InitData节点在如下图位置添加的子控件如下在设置子控件的字体材质时,动态改变材质参数不起作用当顺序调整为控件变现正常PS:花了很多时间查到问题,有一处使用该控件的地方是直接拼在一个蓝图里面的,表现正常;当动态创建时出现异常,最后排查到是初始化顺序问题,需要先将子控件加入父容器控件,然后再初始化子控件的数据及表现...原创 2020-07-10 23:35:12 · 1961 阅读 · 0 评论 -
《UE4游戏开发》之 《通过命令调用本地化相关功能》
set engine=引擎目录set projectpath=工程目录set projectname=工程名字Call %engine%\Engine\Build\BatchFiles\RunUAT.bat Localize -UEProjectRoot="" -UEProjectDirectory=%projectpath% -UEProjectName=%projectname% -LocalizationSteps=“Gather” -LocalizationProjectNames=“Game原创 2020-07-06 10:09:41 · 524 阅读 · 0 评论 -
《UE4游戏开发》之 《动画与特效、声音配合的方式》
直接通过ue4的动画编辑器中,添加通知骨骼通知,可以在动画蓝图中实现,添加通知时,ue4会自动创建对应的通知事件声音通知,可以直接指定声音资源通过逻辑控制,在代码里手动控制动画与声音...原创 2020-06-29 11:21:31 · 1226 阅读 · 0 评论 -
《UE4游戏开发》之 《常用的函数接口》
一 、AActor1. 获取Actor的速度/** Returns velocity (in cm/s (Unreal Units/second) of the rootcomponent if it is either using physics or has an associated MovementComponent */ UFUNCTION(BlueprintCallable, Category="Utilities|Transformation") virtual FVector Get原创 2020-06-24 16:30:29 · 378 阅读 · 0 评论 -
《UE4游戏开发》之 《BlueprintMacroLibrary和BlueprintFunctionLibrary的区别》
宏库里面可以返回执行结点而函数库是不可以的宏库里面支持泛型但函数库不支持原创 2020-06-24 11:15:46 · 537 阅读 · 0 评论 -
《UE4游戏开发》之 《蓝图接口类的实现》
首先创建一个蓝图类,本例继承与Actor【TestInterface】打开TestInterface,点击【Class Setting】点击【Add】选择你要实现的接口类实现接口BPISetOverlayState,首先选中该接口,然后右键点击【Implement Function】可以在后面写实现逻辑,这样就可以在不同的类里面对接口进行实现不同的逻辑...原创 2020-06-23 19:17:56 · 607 阅读 · 0 评论 -
《UE4游戏开发》之 《蓝图逻辑整理归类》
增加多个Graph,进行逻辑分类;防止默认EventGraph里面有大量逻辑,不便于bug复查而且严重不整洁;效果见图原创 2020-06-23 18:10:40 · 898 阅读 · 0 评论 -
《UE4游戏开发》之 《创建粒子特效的时机,错误的时机特效将无法播放》
创建特效的方法:【明确:要想特效创建后,就显示正常;必须保证UParticleSystemComponent组件的数组EmitterInstances中的值是有效的】UFUNCTION(BlueprintCallable, Category="Effects|Components|ParticleSystem", meta=(Keywords = "particle system", UnsafeDuringActorConstruction = "true")) static UParticleS.原创 2020-06-18 21:46:33 · 812 阅读 · 0 评论
分享