UDataAsset 简介 用来存储数据,每一个DataAsset 都是一份数据 可以派生,系统自带派生 UPrimaryDataAsset 方便数据对象的加载和释放 可以引用其他的 UDataAsset 可以存储UObject 实例 可以BulkEdiit 批量编辑多个 UDataAsset 灵活配置数据,但不好管理大量的配置对象 方便配置树状组织数据,全局配置,数据对象集合 UDataAsset 简单使用 如果是单例的全局配置,可配置 static 方法来获取数据 可以配置普通数据.结构体.…
原文链接:   简书小小酥XX https://www.jianshu.com/p/2bcc80f0e789 一开始我用了一段时间UE4,发现如果用蓝图系统真的不太适合我的风格.因为之前一直都是用Unity3D做程序开发的.但是后来接触了UE4的C++之后感觉还是挺良好的.貌似国内没有相关的书籍和教材,那就只能去看官网的参考文档了 https://docs.unrealengine.com/latest/INT/Programming/index.html UE4和Unity3D给我的总体感觉:…
UE4引擎中可以实现简单AI的方式有很多,行为树是其中比较常用也很实用的AI控制方式,在官网的学习文档中也有最简单的目标跟踪AI操作教程,笔者在这里只作简单介绍. AIController->和playcontroller一样,但区别于玩家控制器,AIController负责管理的是AI,也称AI控制器. Blackboard->黑板,作用是用来标记关键值,为AI存储或者提取相关记忆. Behavior Tree->行为树,从黑板里读取关键值,做出决定和执行. Animation Blu…
概念 定义 UE4中的delegate(委托)常用于解耦不同对象之间的关联:委托的触发者不与监听者有直接关联,两者通过委托对象间接地建立联系. 监听者通过将响应函数绑定到委托上,使得委托触发时立即收到通知,并进行相关逻辑处理. 委托,又称代理,本质是一个特殊类的对象,它内部可以储存(一个或多个)函数指针.调用参数和返回值. 蓝图示例 声明委托 委托签名声明可存在于全局范围内.命名空间内.甚至类声明内.此类声明可能不在于函数体内 可以是返回一个值的函数. 最多4个"载荷"变量. 最多8个…
原文地址:http://demo.netfoucs.com/u011707076/article/details/44036839 前言 寒假回家到现在已经有十多天了,这些天回家不是睡就是吃....哎╮(╯▽╰)╭,今天早上一觉醒来,突然得知,UE4免费了,这绝对是个好消息,前不久我还在纠结怎么申请校园账号呢o(╯□╰)o.迫不及待打开电脑下载了UE引擎的一个类似管理的客户端,在里面最醒目的一栏,看到一个令人哭笑不得的导航,如下图: EPIC这是要逆天的节奏吗?不过不管他了,接下来,我们便一同学…
游戏摄像头可以观察到的距离越近,作用和拉远是一个比较普遍的要求,UE4它也实现比较简单. 在这篇文章中TopDown模板案例,解释如何,分步实施能Zoom摄像头. 创建TopDown模板C++项目达产后,我们去叫3一类重要.AXXXCharacter类,实现角色的控制和行为. AXXXGameMode类,项目的默认GameMode.定义默认的角色控制器和默认Pawn.AXXXPlayerController,角色控制器类.接受输入控制,并指导角色进行行动. 我们主要改动AXXXCharacter…
首先做个小小的声明把,由于俺之前也没接触过AI ,所以有一些专业的词汇可能翻译存在各种问题,如果你发现的话,还是希望能够提出来哦,我们一起进步. 记住配合视频食用更佳哦~ 视频连接:http://www.unrealedu.org/course/15/learn#lesson/79 此外,我也在翻译官方那本C++的教程,已经读完,想着还是用视频的方式来准备,大家如果有什么意见希望可以提出来.好了废话不多说,开译! 第一篇:简单了解AI并创建NavMesh   嗨,大家好,我是PeterNew,谢…
距离上一篇博客已经有点久了,中间忙的飞起,忽然发现很久没写了,这样不好,写一篇和工作无关的吧. 一直想搞清UE4距离场的原理,网上有几乎找不到任何有关UE4距离场实现的内容,加上上篇末说要写一个完全的Rendering过程,而UE4下有个距离场的渲染,刚好用来追踪理解UE4距离场,并顺便理下距离场的Rendering相关. 先说下我现在对UE4模型距离场比较浅显的认识,就是我们把场景里的所有不透明模型信息移植到GPU中,不同于我们直接看到的场景,是按照现实中的摆放,在距离场中,声明了一个3D纹理…
概述 描述 又称为静态工厂方法 一般使用静态方法,根据参数的不同创建不同类的实例 套路 创建抽象产品类 : 创建具体产品类,继承抽象产品类: 创建工厂类,通过静态方法根据传入不同参数从而创建不同具体产品类的实例: 使用场景 工厂类负责创建的对象比较少:由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂. 客户端只知道传入工厂类的参数,对于如何创建对象不关心:客户端既不需要关心创建细节,甚至连类名都不需要记住,只需要知道类型所对应的参数. 优缺点 优点 将创建实例的工作与使用实例的工作分开,…
Note:不知道为什么通过Txt读取的JsonString,如果TXT 不是ANSI编码的话,会报JsonArrayStringToUStruct  Unable to parse. bool UWgtCpp_BaseMain::Http_readSortList() { auto temp_request = UNetAPI::createRequst(TEXT("http://localhost:59754/StudentService.svc/GetStudentList"),…
本节内容继续上一节教程的内容(如果没有看过前面的教程,请前往学习),不会讲太难的新东西,而是继续探究技能标签(Abiilty Tags)的内容.先来一道开胃菜. 第1.1步: 将上一次的召唤冰龙中的CancelAbilitiesWithTags清空,表示这个技能不会打断任何其他技能.在"阻塞技能列表"BlockAbilitiesWithTags中配置Magic.Fire. 第1.2步:冰龙的激活逻辑修改为下图所示,表示它也是耗时的技能. 第1.3步:运行,先释放烈焰之鸟后释放冰龙,从打…
Scene Component是蓝图类中一个不怎么常用的分类(特别是对于新手而言),主要是其实现的功能可以在Actor类中用相同的方法实现,使其作用显得有点多余. 笔者在使用过这个类之后发现其作用更相当于一个接口,可以被其他蓝图类调用,且操作方法简单,实现后效果明显,在这里介绍一个简单的应用便于读者理解和使用这个蓝图类. 准备工作 首先是创建一个Scene Component蓝图类,命名为HoverComponent. 接下来是编写蓝图逻辑之前的工作:创建两个Float变量,命名为TraceLe…
s void UChildBaseUserWidget::setTextureFromLoadImg(FHttpRequestPtr _request, FHttpResponsePtr _response, bool bWasSuccessful) { if ( !bWasSuccessful && !_response.IsValid() ) { UE_LOG(LogTemp, Warning, TEXT(" !bWasSuccessful && !_resp…
一.设置游戏窗口合适的大小 二.在新窗口中运行游戏.玩家数量改成大于1.   三.运行游戏就会打开多个窗口 在打包完成的游戏中进行网络游戏: 一.虚幻4打包好的文件是放在WindowsNoEditor目录. 二.创建2个快捷方式,一个命名为Server作为服务器端,一个命名为Client作为客户端. 三.右键快捷方式Server,选择属性,在目标后面输入“{空格}{地图名字}listen{空格}-game”,表示作为服务器方式运行.如下图所示: 四.右键快捷方式Client,选择属性,在目标后面…
材质文件下载地址: 链接:https://pan.baidu.com/s/10HUmXR_YNMOTF-Cg4ybuUg 提取码:m1my 1. 将材质文件放到Content目录中 2. 在项目中添加一个PostProcessVolume 并且放大范围,这个范围是值,玩家在这个范围内能让物体高亮,超出这个范围侧不能 3. 设置PostProcess中的两个属性 在中的Post Process Materials中添加一项,把我们刚刚添加进来的材质添加进去即可, 勾选unbound属性 4. 设置…
1 主角视口:相机与控制器挂载 Chaperone设置,主角bp上加上SteamVRChaperone用于提示用户可用区域边界 MotionController1里面选项设置为Right右手,然后下边建立一个StaticMeshComponent,用于放右手模型 主角pawn的设置 2 主角蓝图: Vivi站立和坐下设置稍微有些不同 3 项目运行到htcvivi 先配置好steamVR(略),然后使用虚拟现实预览 如果发现这个选项是灰色的,处理方法如下 编辑器主窗口编辑->Plugin->Vi…
示例内容中的renderTexture 抓取部分 1 新建一个TextureRenderTarget2D 2 抓图 新建actor,一个camera,下面挂一个SceneCaptureComponent2D组件,并为其指定好刚刚新建的TextureRenderTarget2D 显示部分 3 新建一材质,贴图选刚才的TextureRenderTarget2D 4 新建ui蓝图,蓝图里只放一个image,image中把刚新建的材质设置进去 5 显示这个ui即可…
基于UKismetSystemLibrary 获取各类名称 // Returns the actual object name. UFUNCTION(BlueprintPure, Category = "Utilities") static FString GetObjectName(const UObject* Object); // Returns the full path to the specified object. UFUNCTION(BlueprintPure, Cat…
我由易到难推荐,不过在此之前还是先看看官方对于VS设置的推荐: https://docs.unrealengine.com/latest/INT/Programming/Development/VisualStudioSetup/index.html 不推荐看中文版的,因为有错 1.官方的入门教程 https://docs.unrealengine.com/latest/CHN/Programming/Tutorials/index.html 如果你连这些都看不懂的,这只能证明你的C++基础不行…
原文作者:@玄冬Wong 转载请注明原文出处:http://aigo.iteye.com/blog/2268777 这是论坛上对UE服务端功能的回答,意思是UE4提供了主流MMO网游服务端所具备的特性,包括位移修正.物理碰撞检测.这些特性不是UE4才加入,早期UE版本就有了. https://answers.unrealengine.com/questions/14311/what-online-multiplayer-features-are-available-and.html UE4自带的…
最近会在UE4上实现风格化渲染的需求,所以也借机写一下相关的制作教程.对应日系风格化渲染技法来说,关键还是法线的处理.   法线处理以前翻译的资料很多了,所以也不多做解释了,比如下图是最新的UE4上的卡渲游戏[四女神OL]   UE4开发四女神的示例详细介绍在这里. http://cgworld.jp/feature/201611-ue4fst2016-4gdss.html   用会Max Script或Python的话,可以很方便的在3dsMax或Maya上实现法线替换和烘培的工具,这里时间关…
16.9.10为了做房产项目,这两天开始学习Unreal Engine 4.之前一直用unity,但是视觉效果一直不满意,听说虚幻4的效果更好,就来试一试水. 1.安装UE4 参考资料一: http://v.youku.com/v_show/id_XOTM4Nzk4OTEy.html?beta&f=23742789&from=y1.7-1.4 进入UE4官网,点击右上角的GET UNREAL,下载安装得到登录器Epic Games Launcher,打开登录器,更新后,下载虚幻引擎最新版,…
简单说一下UE4 专用服务器的生成(网上也有其它版本的但是在4.14.1 上不管用) 1.用源代码编译的引擎(如何获取百度上有很多介绍)创建一个C++ UE4 工程. 2. 在vs 中找到红色这个文件夹(根据项目名字与我这里的不一样但是后面都带有一个Editor 在文件夹目录里面复制一份命名成上图中和SunTemplecode14Server一样的名字(把Editor后缀改成Server),打开这个文件夹把里面的"Editor"这个单词替换成 "Server"然后保…
插件Plugin: 本来应该是指一种纯以接口与外界打交道的程序模块,在同一接口背后可以有多种实现,更换实现完全不影响客户端代码(不用重编). 但是在ue4的世界里,插件似乎不是这个意思,仅仅是一种可以在构建时选择是否启用的模块,在客户端代码里充斥着对插件内部函数的调用 只不过这些调用一般要被封装在简单的#if WITH_PLUGINXXX之类的宏里 在构建时,若检测到插件未启用或不存在,就不会定义相应的宏,于是插件本身不被编译,调用它的代码也被清除,各自都相安无事. 插件描述符,在ubt里对应类…
UObject是一套很复杂的体系,之前读ue3代码时曾分析过其类型系统实现,主要是与UClass间的关系 现在转到ue4,发现那一块其实差不多,于是再重点备忘一下UObject本身的创建和初始化过程 1.首先,用NewObject<>来创建一个新对象: template< class T > T* NewObject(UObject* Outer, UClass* Class, FName Name = NAME_None, EObjectFlags Flags = RF_NoFl…
AnimDynamics简介 Author:Jia Zhipeng AnimDynamics是UE4.11 Preview 5测试版本发布的AnimationBlueprint中的新节点.功能是通过简单物理模拟计算,更新骨骼位置.优点是避免了使用纯物理模拟时计算量过大,并且能实现近似物理效果.尤其用于悬垂物(辫子,锁链等自由下垂物体)上可以获得非常好的结果. 原理:在AnimDynamics节点里,能够绑定RigidBody关联到指定Bone上,通过计算RigidBody的动量,在风,重力影响下…
<Inside UE4>-0-开篇 InsideUE4   前言 VR行业发展是越来越火热了,硬件设备上有HTC VIVE,Oculus rift,PS VR,各种魔镜:平台上有Steam VR,Gear VR,Google Daydream.而游戏引擎上则有两大阵营:Unreal Engine和Unity.Unity凭着先期的移动平台优势占领了一大部分移动平台的市场,所以目前上手机上的VR游戏也大部分是由Unity开发的.而PC平台上,Unreal Engine凭借着优异的性能,绚丽的渲染效…
<Inside UE4>-1-基础概念   InsideUE4   创建测试项目 接上文的准备工作,双击生成的UE4Editor.exe,选择创建测试C++空项目Hello(以后的源码分析都会基于该最简单的项目)   项目文件结构 VS项目和文件目录: 可以看到,Config目录里带着3个最主要的配置,Editor,Engine,Game.代码方面自动生成了用于编译系统的3个.cs文件,C++代码方面生成了一个Hello "Game Module",和HelloGameMo…
<Inside UE4>-2-GamePlay架构(一)Actor和Component     <Inside UE4>-2-GamePlay架构(一)Actor和Component InsideUE4   UE4深入学习QQ群: 456247757   引言 如果让你来制作一款3D游戏引擎,你会怎么设计其结构? 尽管游戏的类型有很多种,市面上也有众多的3D游戏引擎,但绝大部分游戏引擎都得解决一个基本问题:抽象模拟一个3D游戏世界.根据基本的图形学知识,我们知道,为了展示这个世界,…