ue4

UE4 C++读取文件整理

匿名 (未验证) 提交于 2019-12-03 00:19:01
在学习UE4的漫漫长河中整理如下资料,以便日后查看使用。 void UAnalysisData::GetTxtData(FString path) { TArray<FString> StringArray; if (!FPlatformFileManager::Get().GetPlatformFile().FileExists(*path)) { FString str = path+"文件不存在!"; UE_LOG(LogTemp,Warning,TEXT("%s,文件不存在!"),*str); return; } FFileHelper::LoadANSITextFileToStrings(*(path), NULL, StringArray); } ―――――――――――――――――――――――――――――――――――――――――――――― 持续更新中…. 文章来源: UE4 C++读取文件整理

UE4 集成 Wwise 插件知识积累

匿名 (未验证) 提交于 2019-12-02 23:43:01
本博文默认认为读者已经有一定的Wwise、Unreal知识基础,重点是总结一些原理及代理流程,并没有过多介绍基本使用,如果需要了解相关基础知识可以查看博文最后的“相关文档链接” 个人不建议这么做,这样每次都会扫描扫一次所有组件,可以增加一个自定义通知,在自定义通知上再做事件处理。 相关文档链接 Wwise官方提供了一个Unreal样例:https://www.audiokinetic.com/library/edge/?source=UE4&id=usingwwisespatialaudio.html UE4 集成 Wwise 插件知识积累 标签: 过滤 eal html control 基本使用 返回 root 读者 bsp 原文地址:https://www.cnblogs.com/KisonDu/p/9589098.html 文章来源: https://blog.csdn.net/ccccce/article/details/92000725

UE4学习(一)C++编程官方文档解读

匿名 (未验证) 提交于 2019-12-02 23:39:01
文档地址: https://docs.unrealengine.com/zh-CN/Programming/Introduction/index.html 文档详细介绍了C++编程的基础,一些宏和常用变量,做下总结 (一)文档一开始介绍了Actor继承类编程的一些相关知识,以及一些有关UPROPERTY和UFUNCTION相关的简单介绍,之后简单介绍了蓝图。 (二)之后就是深入介绍 主要的类是四种,UObject,AActor,UActorComponnnet,UStruct。 (1)UObject是最基本的构建块,结合UClass可以提供反射、序列化、垃圾回收、联网。每个UObject都会创建一个UClass。我的理解是,UClass对UObject的梳理进行管理,并且提供序列化和联网等功能。 (2)AActor是非常重要的一种类型,可以直接放在舞台上的所有对象都是从其扩展而来,AActor继承自UObject,同时AActor有一些特殊的函数,BeginPlay()在对象首次存在是调用,Tick()每帧调用一次,EndPlay()在对象离开Gameplay空间时调用。 UWorld::SpawnActor() BeginPlay() Tick() 。 使用时使用GetWorld()->SpawnActor<T>(),使用这个函数偶尔会出现编辑器崩溃,以后需要关注类似问题。 (3

UE4初学笔记

匿名 (未验证) 提交于 2019-12-02 23:32:01
文章目录 开放参数至蓝图 暴露类 暴露属性 暴露函数 暴露结构体 代理 单播代理和多播代理区别 动态代理和非动态代理的区别 使用代理多播TArray 参考资料 开放参数至蓝图 C++中常常使用UE4中的一些宏来设置想要暴露于蓝图的类、属性、方法等。 暴露类 使用 UCLASS([specifiers]) 暴露类至蓝图,其中的specifiers在暴露类的时候并不常用,并在第一行使用 GENERATED_BODY() ,添加头文件 #include "XXX.generated.h" ,如: # include "GameFramework/Actor.h" # include "MyActor.generated.h" UCLASS ( ) class AMyActor : public AActor { GENERATED_BODY ( ) public : // 设置该Actor属性的默认值 AMyActor ( ) ; // 每一帧都调用 virtual void Tick ( float DeltaSeconds ) override ; protected : // 游戏开始或产生时调用 virtual void BeginPlay ( ) override ; } ; 往往通过在编辑器中“文件 -> 添加C++类 -> 使用类引导选择父类创建类”的方式直接生成对应的模板

UE4渲染概述

匿名 (未验证) 提交于 2019-12-02 23:05:13
渲染 & 图像 虚幻引擎4拥有全新的、DirectX 11通道的渲染系统,包括延迟着色,全局光照,半透明光照,后处理以及使用矢量场的GPU粒子 模拟 。 虚幻引擎4中所有光照均为延迟光照,这点与虚幻引擎3的直向光照完全不同。不透明表面的阴影通常为全景阴影。 半透明物体的光照和着色都是单次的,这样可以确保将其正确地与其他半透明物体混合,而如果采用多遍光照技术是无法完成的。 半透明物体可以将阴影投射于不透明的世界,其本身和其他带光照的半透明物体。 阅读 带光照的半透明物体 以获得更多信息。 MLM_Subsurface 翡翠 等不透明材质打造,但光照在内部会散射。 比起皮肤渲染,这样做质量会略低,消耗的性能也会更低。 翡翠材质 冰材质 虚幻4支持在GPU上的粒子模拟。 传统CPU系统允许同一框架内数以千计的粒子。 GPU模拟则可以让 成百上千 的粒子被高效模拟和渲染。 生成速率500 生成速率20000 GPU粒子最有趣之处,除了高效外,就是矢量场。 矢量场就是对粒子运动产生影响的统一的矢量网格。 矢量场被作为actor放置在世界中,而且可以像其它actor一样被平移,旋转和缩放。 它们是动态的,而且可以在任何时候都可被移动。 矢量场也可以在Cascade内进行放置,这样它的作用被限制在其相关的发射器中。 当粒子进入矢量场的边界时,粒子的运动会受矢量场影响。当粒子离开该边界时

ue4 播放程序化生成的声音

别等时光非礼了梦想. 提交于 2019-12-02 15:34:14
首先了解音频有几个重要的概念: 采样频率 : 每秒钟采样次数, 采样率越高,数字波形的形状越接近原始模拟波形,通常的采用频率有22050,44100,48000,96000 采样位数 : 采样声波时,为每个采样指定最接近原始声波振幅的振幅值。 采样位数提高可提供更多可能的振幅值,产生更大的动态范围、更低的噪声基准和更高的保真度。通常的采样位数有8bit,16bit,24bit,32bit。 通道数 : 即 声音的通道 的数目 。常有单声道和立体声之分,单声道的声音只能使用一个喇叭发声(有的也处理成两个喇叭输出同一个声道的声音),立体声可以使两个喇叭都发声(一般左右声道有分工) ,更能感受到空间效果,当然还有更多的通道数。 PCM : PCM(Pulse Code Modulation----脉码调制录音)。所谓PCM录音就是将声音等模拟信号变成符号化的脉冲列,再予以记录。PCM信号是由[1]、[0]等符号构成的数字信号,而未经过任何编码和压缩处理。与模拟信号比,它不易受传送系统的杂波及失真的影响。动态范围宽,可得到音质相当好的影响效果。 WAV: wav是一种无损的音频文件格式,WAV符合 PIFF(Resource Interchange File Format)规范。所有的WAV都有一个文件头,这个文件头音频流的编码参数。WAV对音频流的编码没有硬性规定,除了PCM之外

北京UE4外包团队:UE4版本的V-Ray来了

笑着哭i 提交于 2019-12-01 22:09:24
使用你以往对V-Ray非常熟悉的工作流程 导入的过程很简单。正常的使用你的3DS max,Maya或者SketchUp创建场景。当然了,建模布线以及面数要正规和优化。然后,把场景导出后,导入UE4里。这一步没什么特殊的。 智能化的转换材质和灯光 导入后,UE4版本的V-Ray会自动将材质和灯光转换为UE4工作流程的实时等效物体。同时来自原制作程序的原有材质仍然保持与UE4里实时版本的相连接,并随时准备为你的渲染调用。 这回你就可以直接用UE4玩出真实照片级的渲染了 嗯,UE4版本V-Ray渲染效果与你在Max以及Maya等其他软件里渲染出来的效果一样写实。 V-Ray会将GPU和CPU的组合功能融为一体,为你光线追踪加油。速度嗖嗖的。 通往虚拟现实的大门 一旦导入了V-Ray场景,就可以充分利用UE4编辑器中的VR功能了。 UE4的V-Ray可以让你创建高质量,身临其境的VR变得快速而简单。 实时的优势,写实的渲染 使用UE4版本的V-Ray在单个共享工作流程中可构建出色的实时体验和光线追踪渲染。 大家发现没?现在很多厂商的产品都在往UE4身上贴。UE4这是要称霸武林的节奏。现在看只差建模,绑定和动画这几个模块了。如果这些模块都加上,再配上NVIDIA的RTX实时光线追踪技术···实时电影级画面渲染估计就普及了。 来源: https://www.cnblogs.com/ihtml5

UE4-蓝图基础:TimeLine

假如想象 提交于 2019-11-30 16:01:23
一:概念: 1-:TimeLine:在一定时间内不断执行的一个蓝图节点: 2-:添加一个空白节点: 函数讲解: Play:事件驱动,执行此事件时调用; Play from Start:从头开始执行事件<事件在执行过程中未执行完毕,某一条件改变,事件相当于重新一次开始执行>; Stop:停止执行事件<事件在执行过程中未执行完毕,某一条件改变,事件停止执行>; Reverse:反向执行<事件在执行过程中未执行完毕,某一条件改变,事件反向执行<中间某一位置立刻反向执行>>; Reverse from End:事件从末尾反向执行<事件在执行过程中未执行完毕,某一条件改变,事件从尾部开始反向执行>; Set New Time:更改事件的开始执行时间<原函数的总执行时间不是从0开始,而是新设置的时间点开始>; New Time:设置函数执行起始点; Updata:事件在执行过程中,不管执行更新的部分<在总执行时间内,不断驱动执行>; Finished:事件在总时间内执行结束调用<事件在总执行时间结束后执行此方法>; Direction:执行的方向<是一个枚举函数,正向OR反向>; 3-:双击,添加一个方法,创建时间线函数;自定名字为TimeLineDemo; 4-:添加一个函数,设置执行时间Length为4秒; 设置键盘A为事件触发,Update为打印字符串: 5-:圆滑处理事件执行轨迹:

UE4根据真实地图来生成行走道路(二)

风格不统一 提交于 2019-11-30 07:54:07
上一节我们完成了数据的基础获取,现在我们需要在UE4中新建一个空白插件类,然后把上一节python文件和txt文件放在该插件类里的Content文件夹里面(作用是让UE4只需要读取相对位置就行,便于打包和其他项目使用)。 创建好C++插件工程后,我们需要创建一个函数用于读取txt里面的数据,我们可以看到txt生成的数据是 double 型,UE4的 FVector2D 位置坐标结构体是 float 型,所以我们需要创建一个结构体储存数据里面的 double 型数据,而且我们在每个拐弯处都分了段,所以创建了一个简单的结构体,用于储存每段结构的数据: struct FVector2D_Double { double X; double Y; FVector2D_Double operator-(const FVector2D_Double& Other) const { return FVector2D_Double(X - Other.X, Y - Other.Y); } FVector2D_Double operator+(const FVector2D_Double& Other) const { return FVector2D_Double(X + Other.X, Y + Other.Y); } FVector2D_Double operator/(const

UE4根据真实地图来生成行走道路(一)

拜拜、爱过 提交于 2019-11-30 04:05:33
起因:前不久看美术在UE4地图里面拉Spline线来作为演示的步行道路,每两个不同地点就要按照地图道路来拉出演示线,所以我突发奇想,能不能用现有的一些地图API输入经纬度,来给我生成行走道路(百度地图,高德地图),后面我去看了一下,发现这个方法可行,现在我们开始行动吧。 API选择:现在很多地图APP都提供了API(谷歌,百度,高德),支持的语言也多,但都需要注册,注册这些API的Key我就不演示了,网上有很多这方面的教程,我选用的是 百度API ,调用API数据使用的是 Python ,当然你也可以使用其他方法,使用编写Python的IDE是 Jupyter Notebook ,用这个编写好处我就不说了,你也可以用其他IDE,现在开始我们的入坑之路吧。 首先我们打开百度地图API中德WebApi服务中的 轻量级路线规划 ,最开始编译的时候可以选取一个API开始,后面再进行增添 你点击一个,你会发现必须输入哪些参数,和可选哪些参数,首先必须输入的是开发者AK(就是你自己申请的Key),还有起点经纬度和终点经纬度,其他可以不用填,我们在Python中的写法: url = 'http://api.map.baidu.com/direction/v2/transit?' #步行 params = { 'ak':'ZWiWngbeBeGe6ncQz6eFdEp2jGCeGjqH',