- 博客(47)
- 收藏
- 关注
原创 C++14~17新特性
C++17之前if/switch语句中不能声明一个临时的变量//C++17// 将临时变量放到 if 语句内itr!*itr = 4;
2024-06-12 17:15:00 805
原创 UE4网络基础
UE4 NetWorkingActor’s Role 参与网络复制的actor在replicates过程中主要扮演两种重要的角色,Role和RemoteRole。RemoteRole代表了该actor的对应端(即Server对应Client,Client对应Server)。这两个属性可以告诉你:谁有这个actor的主控权(Authority)这个actor是否参与replicated复制模式同时Role的属性还可以分化为:ROLE_AuthorityROLE_SimulatedPr
2022-04-15 23:31:18 1535 1
原创 C++实现常用数据结构
这是自己学习数据结构中使用纯C++实现的一个版本,实现了一些常用的数据结构,现在只有纯代码,以及少许注释,在后面会添加每个数据结构的原理详解、时间复杂度和空间复杂度分析的md文件。这里附上github地址https://github.com/WLSTLA/DataStructureLearning 实现部分仅供参考,写得不好的地方忘大佬海涵,同时觉得作者写的不错的话,可以star鼓励一下~目前已经实现:...
2021-12-31 16:09:26 932
原创 C++侯捷STL标准库与泛型编程笔记
C++STL本篇博文参考与侯捷老师的STL泛型编程课程,将其中比较重要的部分记录来下,方便今后的复习。十分推荐侯捷老师的C++系列,真的是圣经一样的存在!1.STL六大部件Component容器(Containers)分配器(Allocators)算法(Alogorithms)迭代器(Iterators)适配器(Adapters)仿函数(Functors)2.分配器allocator以::operator new 和::operator delete完成al
2021-11-29 20:39:47 1277
原创 UE4C++基础(二)
基础回顾 UE4C++基础(一)_WLSTLA-CSDN博客1. C++与UMG交互 首先我们需要设置玩家的输入模式,可以在PlayerController中的BeginPlay进行设置:void AUIController::BeginPlay(){ Super::BeginPlay(); FInputModeGameAndUI InputMode; InputMode.SetLockMouseToViewportBehavior(EMouseLockMode::LockAlways);
2021-11-28 22:19:35 2771
原创 UE4同异步加载
UE4 同异步加载1. 资源引用 资源引用分为资源软引用和资源硬引用。软引用通常是仅储存资源对象的资源路径没有与资源产生耦合关系的引用(软引用加载到内存中,引用对象不会被加载到内存中,只有在需要的时候才会被加载进内存中)。硬引用则是拥有资源对象实际成员变量,直接与资源对象产生耦合(硬引用被加载到内存中,则被引用的对象资源也会被加载到内存中)。 在蓝图中软引用和硬引用的表现:// 硬引用:已经被加载到内存UPROPERTY(EditAnywhere,BlueprintReadWrite,Cate
2021-11-28 15:10:21 3214
原创 UE4多线程
UE4 多线程 UE4虽然沿用了C++11的标准,但多线程并没有使用std::thread,而是自己封装了Runnable、AsyncTask以及TaskGraph这三个可以供我们使用的线程。他们的本质相同但用法不同,使用Runnable可以自己创建复写线程函数的接口,AsyncTask是基于Runnable的一层封装,使用会更加方便。而TaskGraph则是基于任务的多线程(Task-Based),可以有效控制任务的顺序性。接下来将简单介绍这三种线程的使用。1. Runnable Runnabl
2021-11-19 13:07:40 4399
原创 C++智能指针
智能指针1. 前言与智能指针的引出 为了方便程序员因为在申请了一块堆内存,之后忘记释放该内存导致的内存泄露的问题,引入智能指针的概念。智能指针的行为类似常规指针,重要的区别是它负责自动释放所指向的对象,这其中的理念便是C++之父提出的RAII(Resources Acquisition Is Initialization),资源获取即初始化,对象在初始化时获取资源,销毁时释放资源。智能指针在C++11版本之后提供,包含在头文件<memory>中,shared_ptr、weak_ptr、u
2021-11-08 16:02:57 1117
原创 UE4委托
UE4 委托 委托是一种可在C++对象上调用成员函数,并可以动态绑定到任意对象的成员函数,之后在该对象上调用函数。可以降低类之间的耦合度,在UE4中共支持三种类型的委托。单播委托多播委托动态委托1. 声明委托单播声明方式描述DECLARE_DELEGATE(DelegateName)绑定void Function() 类型的函数DECLARE_DELEGATE_OneParam(DelegateName,Param1Type)绑定void Functio
2021-11-08 12:24:01 1527
原创 UE4C++基础(一)
UE4 C++ 基础1. 反射与垃圾回收 反射是指程序在运行时可以访问、检测和修改它本身状态或行为的一种能力(应用在UE4中的话,就是根据类命获取类中的信息),但原生C++并没有提供反射系统,在UE4中则有专门的反射系统负责采集数据。该系统同时也负责垃圾回收。垃圾回收GC(GarbageCollector)简单地说,只要被垃圾回收系统追踪到的变量,该变量就无需我们人为的进行Delete,由垃圾回收系统进行删除。 类参与垃圾回收系统,需要指针特定的宏。UCLASS([specifier,speci
2021-11-02 20:16:51 2118
原创 C++委托
C++ Delegate 使用Delegate(委托)可以起到类之间的解耦操作,具有对象闭包的特性。同时也是UE4C++中经常用到的特性之一,这里为了自己更好的理解写下该篇博文帮助之后复习。一.单播代理template<class retType,class ...paramTypes>class DelegateBase{public: virtual retType Execute(paramTypes ...params)=0;};//绑定成员函数template&l
2021-11-01 14:42:12 1455
原创 C++多线程编程
C++多线程1. 概念1.1 概念进程:一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。线程:进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。与进程不同的是同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程
2021-09-27 22:44:47 747 2
原创 C++ 11 常用特性(三)
12. Lambda表达式 Lambda表达式是C++11最重要也是最常用的特性之一,这是现在现代编程语言的一个特点,Lambda表达式具有1.声明式的编程风格。2.简洁,避免了代码的膨胀和功能分散。3.在需要的时间和地点实现功能闭包等优点。//语法格式:[capture](params)opt -> ret{body;};//captrue 是捕获列表 捕获一定范围的变量//params 是参数列表 和函数参数列表一样,没有参数可以省略不写auto f1 = [](){return
2021-09-27 00:17:28 204
原创 C++ 11 常用特性(二)
7. using的使用 在C++中using用于声明命名空间,在C++11中赋予using新的功能。可以同typedef一样定义别名。定义别名//typedef 定义别名typedef 旧的类型名 新的类型名typedef unsigned int uint_t;//using 定义别名using 新的类型 = 旧的类型using uint_t = int; 通过上述语法格式可以看出两者没有太大区别,假设我们定义一个函数指针,using的优势就能凸显出来了://使用typed
2021-08-25 00:29:07 229
原创 C++ 11 常用特性(一)
C++ 11 常用特性(一)1. 原始字面量在C++11中添加了定义原始字符串的字面量,定义方式为:R"xxx(原始字符串)xxx"其中()两边的字符串可以省略。原始字面量R可以直接表示字符串的实际含义,而不需要额外对字符串做转译或链接等操作。void rawliteral(){ string s1 = "D:\hello\world\test.Text" ; cout<<s1<<endl; string str = R"(D:\hello\world\test.T
2021-08-23 22:00:53 232
原创 UE4AI感知声音
AI感知音效有两种方式:Pawn Sensing和Pawn Perception这里介绍Pawn Sensing的方法,关于Pawn Perception的方式推荐看这篇博文UE4 AI 使用AIPerceptionComponent来编写视觉和听觉效果步骤分为两步:第一步 AI添加PawnSensing 添加 OnHearNoise 事件传入的Location便是发出Noise的位置,这里你便可以自定义AI的听觉距离。第二步 玩家添加PawnNoiseEmitter,并添加Make N
2021-04-11 09:58:05 1089 1
转载 UE4打包错误 UnKonw Structure
在“播放”模式下一切正常,但是打包时得到了所有用到结构体的都报错,无法打包成功。错误代码如下,UATHelper:打包(Windows(64位)):UE4Editor-Cmd:[2017.03.31-21.53.55:888] [0] LogInit:Display:警告/错误摘要(仅唯一)UATHelper:打包(Windows(64位)):UE4Editor-Cmd:[2017.03.31-21.53.55:888] [0] LogInit:Display:---------------- ----
2021-03-31 16:01:56 1908 1
原创 记录UE4 Play Montage 中的一些坑
先说说发现这个坑的由来,本人最近在做一款ACT战斗框架,需要用到人物的状态模式,在动画合适的时候插入动画通知依次来改变人物的状态。播放动画采用的是Montage Play这个节点。于是在某次测试中发现人物当前并没有到达重置状态(需要动作播放完成才会重置)的时候就重置了。最后查找了近半天的时间,最后把问题锁定在Montage Play 这个节点上!就是这货!!!会发现他有一个Stop All Montages的属性,默认是勾上的。从字面意思看是停止播放的蒙太奇以外的蒙太奇。难道紧紧是这样么?这里我再来
2021-03-19 22:25:05 7089
原创 记录下UE4解决EQS Bug的过程
今天在做EQS测试的时候,出现了无法working的bug,逻辑很简单就是查询到一个点然后Move to过去。行为树在执行EQS这个节点来回闪烁无法Move to。能想到出错的地方全部重新写了一下,Nav bound也重新换了一下,无果。后来又怀疑是不是EQS本身的问题,于是将原先的Ai换成新的只有运行行为树节点这个功能,行为树也换了一个新的,简化得不能再简化,查官方Hub也没有类似的问题,至此均无法解决。又猜想版本问题,于是创建了4.26的新项目(先前是4.24)。在第三人称模板地图中成了。马不停蹄把
2021-02-27 00:57:38 810 3
原创 UE4使用MixAmo中的角色与动画
本篇记录一下如何将MixAmo中的角色与动画导入UE4中运用。MixAmo网站链接ClickHere注册Adobe账号登陆后我们便可以开始选择心仪的角色和动画了。一.角色篇点击左上角Character分类,这里我们选择Malcolm进行举例。点击Download下载后得到一个fbx文件,导入到3D建模软件中,这里用Maya进行演示。在进行所有操作前你需要确保,3D软件中的默认朝上是哪个轴,虚幻默认是Z轴朝上,Maya是Y轴,所以你需要默认朝上修改为虚幻的Z轴朝上。Maya设置的方式:
2021-01-30 23:38:07 3294 1
原创 UE4材质—UV和贴图坐标系
1.模型的着色方式模型通常是怎样着色的,分为以下三种。1.1 顶点着色顾名思义通过顶点着色,假定顶点A着色绿色,B着色蓝色,于是两点之间便是由一种颜色过渡到另一种颜色的渐变色。好处就是效率高,但是不能给模型更多的细节。比如下列汽车模型的着色就不能采用顶点着色,得采用贴图着色。1.2 贴图着色贴图着色是将2维的纹理数据通过UV(贴图坐标映射)映射到3d模型的一种规则1.3 混合使用混合以上两种方法2.贴图坐标和贴图坐标系2.1 UV的展开方式完全展开也就是把所有的UV坐标
2021-01-15 22:10:04 5986 2
原创 UE4环境音效与程序化音效(2)
紧接UE4环境音效与程序化音效(1),进行第二部分的学习记录。往期音效笔记1.UE4环境音效与程序化音效(1)2.UE4环境音效与程序化音效(2)2.UE4动态音频3.UE4音效与空间程序化设计音效1.简单模拟音效遮挡效果在官方给的案例中,只是的用蓝图实现了音频的遮挡效果,但这个效果并不好,关于更具体的实现可以查看UE4音效与空间这篇博文,里面有更加详细的描述故这里不做深究。这里我们需要实现的是:在洞口外有瀑布的声音,树上有鸟叫声。进入洞口后就会听不见。这里我们可以在洞口处添加一
2020-12-23 23:54:03 838
原创 UE4音效与空间
学习记录官网教程UE4音效与空间,推荐大家学习一遍教程后再查看本博文,温故知新。这里附上教程地址ClickHere往期音效笔记1.UE4环境音效与程序化音效2.UE4动态音频一.混响与空间1.1.音频体积与混响使用音频体积为你的关卡添加混响效果(可理解为在矿洞中的回声),从而让游戏中的空间更加具有真实感。以及如何调整关卡音效的混响干湿度,从而获得更加真实的空间感和距离感。添加音频体积的方法:在左侧模式面板输入Audio Volume。将你想要应用混响的区域覆盖住:图中应用的场景是矿洞
2020-12-14 23:53:09 2963 1
原创 UE4动态音频
学习官网教程动态音频,记录一下重点,方便以后进行查阅,故本博文不会全部更近教程中所有提及到的知识,推荐大家学习一遍教程后,有了自己的理解后再查阅本博文,温故而知新。这里附上官网教程地址ClickHere1.通过布尔切换音频同时可以在音效播放完成之后绑定Audio Finished函数,并设定对应的自定义函数,在音效播放的时候添加判断,防止音效多次播放2.通过整数切换音频3.使用时间轴控制音频体积使用时间轴来控制,你可以实现一些从无到有,通过控制音频的音量来实现一些特定的效果。点开时间轴
2020-12-14 00:43:01 2108 1
原创 UE4环境音效与程序化音效(1)
这几天学习了官网的环境音效与程序化音效,本篇博文方便自己日后复习差缺补漏,故不会记下所有操作,感兴趣的同学可以去官网学习,这里附上链接一.基本环境音效的生成1.2 音频文件命名规范文件规范化命名不仅是为了方便自己与同事之间的工作交接方便,更是为了日后自己的扩展方便。1.2...
2020-12-04 23:13:06 2842
原创 UE4 layered blend per bone 节点详解
最近学习虚幻动画过程中遇到一个节点layered blend per bone节点里面的变量设定让我很头大摸不清楚,于是去查阅了一番之后,有了大概的了解,下面是我整理的一些资料帮助大家理解该节点。官方案例链接Click here...
2020-11-25 19:47:51 5813 6
原创 基于python3计算机视觉编程(八)BOW图像检索
图像检索一.图像检索简介一.图像检索简介在检索原理上,无论是基于文本的图像检索还是基于内容的图像检索,主要包括三方面:一方面对用户需求的分析和转化,形成可以1检索索引数据库的提问;另一方面,收集和加工图像资源,提取特征,分析并进行标引,2建立图像的索引数据库;最后一方面是根据相似度算法,计算用户提问与索引数据库中记录的相似度大小,3提取出满足阈值的记录作为结果,按照相似度降序的方式输出。为了进一步提高检索的准确性,许多系统结合相关反馈技术来收集用户对检索结果的反馈信息,这在CBIR中显得更为突出,因
2020-05-24 20:11:50 1218 1
原创 趋势外推法python实现
import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontPropertiesdef count_parameters(x_arry, y_arry, sum_n,n, n_arry): Par_t = sum_n Par_y = np.mean...
2020-05-08 09:07:13 2022
原创 移动平均指数平滑python实现
移动平均import numpy as npdef Move_average(list, n): list = np.convolve(lis, np.ones(n) / n, mode='valid') print("移动平均: ", list) return listdef Std(list): std = np.std(list) pri...
2020-05-07 11:04:10 2188 5
原创 基于python3计算机视觉编程(七)NCC实现视差图匹配
NCC实现视差图匹配一. 立体视觉的研究背景二. 双目立体匹配NCC2.1 NCC算法简介2.1 NCC基本原理2.2 匹配流程三. 视差算法立体匹配3.1 视差算法简介3.2 算法步骤四. NCC视差图匹配代码实现4.1 探究不同窗口值对结果的影响一. 立体视觉的研究背景立体视觉是计算机视觉领域的一个重要课题,它的目的在于重构场景的三维几何信息。立体视觉的研究具有重要的应用价值,其应用包括...
2020-04-26 16:32:33 3078 2
原创 基于python3计算机视觉编程(六)多视图几何
多视图几何1. 简介2. 对极几何3. 基础矩阵F3.1 基础矩阵性质3.2 基础矩阵原理4. 实验1. 简介多视图几何是描述同一场景不同视角的多幅图像与物体之间投影关系的几何模型。为了描述这种关系首先讨论单个相机只能获得一幅图像。实际意义是三维空间在二维空间上的一个投影。准确的说是变形的投影,因为相机投影关系和三维空间在二维基上最小二乘映射并不完全相同。2. 对极几何对极点(epip...
2020-04-22 00:47:59 781
原创 UE4蓝图基础入门(三)物体空间变换
物体空间变换1. 获取位置信息1.1 GetActor Location1.2 GetActor Rotation1.3 GetActor Scale 3D2.修改位置旋转尺寸信息2.1 SetActor Location2.2 SetActor Transform1. 获取位置信息1.1 GetActor Location在获得Actor的引用后,可以运用该节点获取Actor的位置信息(...
2020-04-06 11:49:57 5021
原创 UE4蓝图基础入门(二)流程控制节点
文章目录流程控制节点1.1 Branch 分支节点1.2 DoOnce1.3 DoN1.4 Do once Multinput1.5 FlipFlop1.6 Gate1.7 MultiGate1.8 Sequence(顺序)流程控制节点1.1 Branch 分支节点即我们代码里面的 if-else 结构。当 Condition 里的条件为真执行True,否则就执行False。1.2 D...
2020-04-02 17:30:50 5102
原创 UE4蓝图基础入门(一)变量与蓝图
文章目录2.蓝图变量基础2.1 Event beginplay2.2 Delay(延迟)2.21 Delay2.22 Retrrigerable Delay2.3 EventTick2.蓝图变量基础2.1 Event beginplay当开始游戏时,此节点自动触发。2.2 Delay(延迟)2.21 Delay此节点顾名思义为延迟机制,节点中Duration中的值为延迟的时间(s)...
2020-04-02 14:41:06 2868 3
转载 UE4常用快捷键汇总
本博文是对虚幻引擎常用快捷键的汇总,并了解到如何借助快捷键和其他提高易用性的诀窍优化工作流程。把所有快捷方式分为基础和高级两类。基础类对任何开始使用UE4的人都很有用,对已经有一些经验的人也很有用。高级类针对的是掌握了UE4使用方法,想要更高效地运用它的人。本博文转自https://mp.weixin.qq.com/s/TLzj-micp7R1eVZAD968vw快捷方式一. 选择、分组和排列...
2020-03-29 20:58:34 23208
原创 基于python3计算机视觉编程(四)图像拼接
在实验三的博客里面稍微简单的介绍了下基于RANSAC方法的图像拼接,接下来的实验将会着重RANSAC方法的不足以及其解决方案进行实验以及探讨,并随之引出APAP算法。目录一. RANSAC简介二. 算法步骤三. 全景拼接3.1 最小割问题(最大流问题)四. 代码及实验一. RANSAC简介RANSAC的全称是“RANdom SAmple Consensus(随机抽样一致)”。它可以从一组包含...
2020-03-24 19:13:35 871
原创 关于计算机视觉编程三图像拼接 ModuleNotFoundError: No module named 'matplotlib.delaunay' 错误
这个错误是博主最近在读计算机视觉编程这本书时导入书中代码时发现的错误,后来在其他博文搜到了解决方法,本篇也是基于那篇博文进行的小的修改。这里附上博文链接https://blog.csdn.net/weixin_42648848/article/details/88667243首先进入Ctrll + B 进入 warp 函数 可以看到导入的错误包将 import matplotli...
2020-03-21 15:58:33 1070
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人