[UE4]组件】的更多相关文章

用来组成Actor的子对象,Actor是由组件组成的. 几个关键的Component类型: 一.UActorComponent 这个Component的基类,可以被放到Actor里面, 可以接受Tick事件(每隔一帧调用一次). UActorComponent本身是没有3D变化(位置.缩放.朝向)数据的,也就是对位置.缩放.朝向不关心. 二.UsceneComponent 带有3D变化(位置.缩放.朝向)的ActorComponent. UsceneComponent能够形成一定的成绩结构.Ac…
一个月前,想开始看下UE4的源码,刚开始以为有Ogre1.9与Ogre2.1源码的基础 ,应该还容易理解,把源码下起后,发现我还是想的太简单了,UE4的代码量对比Ogre应该多了一个量级,毕竟Ogre只是一个渲染引擎,而UE4包含渲染,AI,网络,编辑器等等,所以要理解UE4的源码,应该带着目地去看,这样容易理解. 在看UE4提供的ContentExamples例子中,一个树生长的例子感觉不错,与之有关的Spline与SplineMesh组件代码比较独立也很容易理解,刚好拿来移植到Unity5中…
http://www.v5xy.com/?p=858 UE4的组件分为两种:USceneComponent, UActorComponent UActorComponent (NewObject(this)一定要带Outer参数) 可以在编辑器里面查看到这个两个组件已经挂载在Actor下.…
概述 描述 在单一实体跨越了多个领域时,为了保持领域之间相互解耦,可以将每部分代码放入各自的组件类中,将实体简化为组件的容器. 套路 参考 UE4中的 Componet 组件使用方式 使用场景 有一个涉及了多个领域的类,而你想保持这些领域互相隔离. 一个类正在变大而且越来越难以使用. 想要能定义一系列分享不同能力的类,但是使用接口不足以得到足够的重用部分. 示例 UE4中的各种 Componet:碰撞组件.移动组件.网格组件.自定义组件等 参考 游戏设计模式--组件模式…
逻辑状态机 为了实现对目标状态的控制,以及广播改变状态后的事件,可在蓝图中继续处理不同状态下的行为. 实现过程: 1.继承ActorComponent实现LogicStateMachine: 2.被击中时触发设置状态: 3.状态进入/退出时触发事件. 主要代码 LogicStateMachine.h /* *author : Jia Zhipeng *class : LogicStateMachine */ //use enum metadata to save priority UENUM(B…
自定义Movement组件 目的:实现自定义轨迹如抛物线,线性,定点等运动方式,作为组件控制绑定对象的运动. 基类:UMovementComponent 过程: 1.创建UCustomMovementComponenet继承UMovementComponent类,作为各种具体轨迹的父类,完成主要流程的实现.并提供接口给子类override实现具体计算过程. 2.实现子类轨迹计算过程.这里仅提供线性移动轨迹作为示例. 一.UCustomMovementComponent类 /** * class…
一.创建一个Arrow组件来标记要移动的位置(Arrow的用法之一就是用来标注坐标). 二.使用TimeLine时间轴结合插值Lerp来移动相机…
最近公司项目需要,把这两个东东好好看了下.不得不说,这两个组件还是非常方便的,但是相关的介绍.教程却非常的少.它们概念模糊,用法奇特,我就总结下吧. 首先,先要明白spline component.spline,中文翻译样条曲线,所以虚幻里的spline组件就是一条曲线,支持增加减少点.曲线点自动光滑连接等功能.通过spline组件可以获得spline曲线上所有点的坐标信息.切线信息.因此,可以通过spline制作特殊的路线,通过其坐标信息来促使某个actor.特效等沿着该路线移动.如下是官方的…
ChildActor组件可以让一个actor成为另外actor的组成部分,并在视图中展示出来.…
转自:http://aigo.iteye.com/blog/2279860 UMG - Mouse screen position problem https://forums.unrealengine.com/showthread.php?51577-UMG-Mouse-screen-position-problem UMG Drag & Drop  https://answers.unrealengine.com/questions/144414/umg-drag-drop-ue-46.ht…
马三在开发过程中一直用的都是UE4.9版本(很久没有更新了.),因为功能都够用,所以也懒得去更新.这不最近UE4 发布了最新的4.14版本,本来想尝个鲜,试试新版的UE引擎怎么样,结果这一安装上就一直在报SU-PQR1603的错误,去UE4官网找了解决方案,按照上面的步骤操作也没有奏效.后来终于在UE4论坛一个不起眼的帖子的一层发现了解决方案,因此特地记录一下,以备不时之需. 先上一下帖子的原始地址:https://answers.unrealengine.com/questions/34464…
Blueprint 编译概述   一.术语 Blueprint,像C++语言一下的,在游戏中使用前需要编译.当你在BP编辑器中,点击编译按钮时候,BP资源开始把属性和图例过程转换为一个类对象处理. 1. FKismetCompilerContext 此类用来做编译工作.每次编译就会产生一个新的实例.保存将编译的类和BP等. 2. FKismetFunctionContext 为一个函数保存信息,例如关系图引用,属性和产生UFunction. 3. FNodeHandlingFunctor 一个帮…
声明:本文是自己做的项目,可能不是最好的方法,或有错误使用方式.各位不喜勿喷! HP进度 HP背景 将上面的资源拖到UE4中(使用UE4自带的颜色也可实现效果,具体参考官方教程 https://docs.unrealengine.com/latest/CHN/Engine/UMG/QuickStart/2/index.html) 网上相关教程:https://answers.unrealengine.com/questions/79728/how-to-make-a-progress-bar-i…
UE4 基础,但是不经常用总是忘记,做个笔记加深记忆: 图方便就随便贴一个项目中的STRUCT和 Enum 的.h 文件 Note:虽然USTRUCT可以定义函数,但是不能加UFUNCTION 标签喔 USTRUCT(BlueprintType) struct FData_PageInfo { GENERATED_USTRUCT_BODY() FData_PageInfo(); FData_PageInfo(UChildActorComponent *parent_Com); void reIn…
最近项目需求制作一个场景的远景部分.正好可以尝试使用一下UE4的 Landscape.不过直接在 Editor 里刷地形工作量太大,刷出的地形也不真实,最关键的是 Landscape 的工具并不是那么好用. 所以我们决定使用 WorldMachine 作为地形的生成工具,将地形的高度图导入 Editor,再在 Editor 中对细节进行修改.WorldMachine 生成的高度图相对人工算出来的要真实,最重要的是快,用它找坡度,沟壑更加准确. 在 UE4 中使用 WorldMachine 还要解…
<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游戏世界.根据基本的图形学知识,我们知道,为了展示这个世界,…
H UFUNCTION(BlueprintNativeEvent) void EventName(); virtual void EventName_Implementation(); EventName事件发生时会调用这个函数 CPP void ClassName::EventName_Implementation() 这个宏是UE4的强制内联函数,用于优化,返回Mesh的指针给Pickup FORCEINLINE class UStaticMeshComponent *GetMesh() c…
本文依据官方文档 Reducing APK Package Size整理而来,不过我会陆续添加自己减少包大小的心得. ETC1 纹理 当使用ETC1打Android包时,注意ETC1是不会压缩带Alpha通道的纹理的.当你的纹理需要Alpha通道而又不得不使用ETC1压缩时,可以使用两张分开的纹理,一张颜色一张存放Alpha值. 创建一个空的项目 创建新的工程时,不要带初学者内容,如果要使用的话使用UE4的迁移工具来导入想要的资源. 压缩Cook过的内容 最容易且最快的方法就是告诉UE4要压缩打…
最近在Unity上要写一个东东,功能差不多就是在Unity编辑器上的旋转,移动这些,在手机上也能比较容易操作最好,原来用Axiom3D写过一个类似的,有许多位置并不好用,刚好在研究UE4的源码,在模型操作上,很多位置都解决了,其实大家可以对比下,在UE4与Unity中,UE4的如移动和旋转都要正确和好用. 如下是根据UE4中简单移植过来的效果图,差不多已经够用,UE4相关源码主要在EditorViewportClient与UnrealWidget. 介绍一下这个组件主要功能. 1. 模型本地空间…
首先做个小小的声明把,由于俺之前也没接触过AI ,所以有一些专业的词汇可能翻译存在各种问题,如果你发现的话,还是希望能够提出来哦,我们一起进步. 记住配合视频食用更佳哦~ 视频连接:http://www.unrealedu.org/course/15/learn#lesson/79 此外,我也在翻译官方那本C++的教程,已经读完,想着还是用视频的方式来准备,大家如果有什么意见希望可以提出来.好了废话不多说,开译! 第一篇:简单了解AI并创建NavMesh   嗨,大家好,我是PeterNew,谢…
转自:http://blog.csdn.net/u011707076/article/details/44243103 紧接上回,本篇文章将和大家一同整理总结UE4关于角色网格.动画.子弹类和HUD的简单实现. (五)角色添加网格 Character类为我们默认创建了一个SkeletaMeshComponent组件,所以我们仅仅需要做的就是使用哪一个静态网格模型.接下来我们为我们的FPSCharacter类创建一个蓝图,这样我们可以简单的把资源指定给静态网格模型这里,并且方便以后操作添加的组件.…
转自:http://blog.csdn.net/u011707076/article/details/44180951 从今天开始,我们一起来学习一下,如何使用C++将一个不带有任何初学者内容的空模板,从无到有的创建一个简答却完整的FPS项目,通过这几篇文章的学习,我们大致了解到UE4 C++编程的流程,能够成功创建一个新的游戏模式,创建出第一人称的角色,他能够在场景中漫游并且向周围射击,完成一个整个工程. 第一部分:   (一)创建项目,新建游戏模式   1.新建一个C++的空项目,没有初学者…
转自:http://blog.csdn.net/u011707076/article/details/44903223 LevelStream 实现超大无缝地图--官方文档学习 The Level Streaming feature makes it possible to load and unload map files into memory as well as toggle their visibility all during play. This makes it possible…
立即归还,本文将总结所有这些整理UE4有关角色的网络格.动画.子弹类HUD一个简单的实现. (五)角色加入网格 Character类为我们默认创建了一个SkeletaMeshComponent组件,所以我们只须要做的就是使用哪一个静态网格模型.接下来我们为我们的FPSCharacter类创建一个蓝图,这样我们能够简单的把资源指定给静态网格模型这里,而且方便以后操作加入的组件. 作为開始,我们首先要导入一个第三人称的静态网格模型.最后我们设置成两个网格,一个是我们自己看的,另外一个是其它人看到的.…
接着上次继续学习,现在我们已经有了一个场景并且运行了,我们需要添加一个角色到场景中.要这样做,我们必须从UE4的GameFramework类继承它. 一. 创建一个从Character类继承的类 从基本框架类继承是很简单的: 1) 在项目中打开你的UE4编辑器. 2) 在文件,选择"新建C++类". 3) 这里你可以选择从Pawn类(Pawn类从控制器接收输入)继承或从Actor类继承.不过我们可以这里选择从Character类(角色)继承. 4) 点击继续,然后你可以命名这个类.这里…
接着上节我们继续学习,现在我们来创建一些NPC(non-playable characters,非玩家角色).在这个游戏中,当我们靠近NPC时,它们会做出相应的反应. 一 创建C++类 1) 在UE编辑器中,打开文件-新建C++类,选择从Character(角色)类继承,然后命名子类为NPC. 2) 编写代码.打开NPC.h文件: 添加头文件:(注意包含头文件必须在#include "NPC.generated.h"这一行前面加) #include "UObjectGloba…
由于项目需要一个将场景慢慢淡入以及淡出的效果,所以就想了想实现思路.因为PBR光照模型是不支持透明物体的渲染的,所以UE4中的PBR材质在为Opaque时是无法改变透明度的,想来想去想不出解决方法,然后就找啊找找啊找,发现一种偷鸡摸狗的方法,为每个Mesh准备两种材质,一种透明,一种不透明,在需要的时候切换材质并调整透明度即可,不知还有木有更炫酷的解决方法,先记录一哈. 在这个项目中,我选择将这个功能做成一个Actor Component,这样需要这种效果的Mesh只需添加这个组件就能实现Fad…
本文系笔者的实习生分享会内容预备兼GameplayAbilities的初学者教程. 本文适合已有四十天UE4开发经验的初学者. 参考资料:https://wiki.unrealengine.com/GameplayAbilities_and_You#Introduction 简介(用有道词典机器翻译得到的简介,原文是上面的连接): 那么,什么是GameplayAbility ? 基本上,他们就像你在Dota或等价游戏中所拥有的能力.你可以投一个火球,这个火球击中一个玩家,爆炸(造成一定数量的伤害…