文档章节

UE4学习

yintao
 yintao
发布于 2016/03/27 21:51
字数 1286
阅读 313
收藏 1

虚幻中的基本的类:UObject,AActor,UActorComponent

UObject:所有类的基类,但是从这个类派生的子类对象,是不能直接放到level中的,必须属于Actor才可以放到level中。

AActor:继承自UObject,是所有可以放到level中的对象的基类。可以理解成一个容器,包含了很多组件,至少包括一个USceneComponent。

UActorComponent:UObject的子类,主要作为Actor的组件,用来控制Actor移动,渲染Actor等等。主要有两种基本的组件USceneComponent和UPrimitiveComponent。

USceneComponent:拥有一个transform,定义了位移,偏转,缩放。

UPrimitiveComponent:具有某种形式的表现,如网格,粒子等可见的东西。

 

实例化对象:

UObject:

NewObject<class>()

NewNamedObject<class>()

ConstructObject<class>()

AActor:

UWorld::SpawnActor()

SpawnActor<class>();

 

同步:包括对象同步,属性同步和函数同步

对象同步:

AActor可以被设置为可同步的,注意只能从服务器同步到所有客户端,SetReplicates()。如果设置为可同步的,当在服务器上生成这个actor时,它会被发送到客户端(客户端会生成一个一模一样的副本);如果actor的属性被标记为可同步的,那么当这些属性在服务器上改变时,会同步更新到客户端。

UActorComponent也可以被设置为可同步的,SetIsReplicated()。当actor创建一个组件后,把它设置为可同步的之后,客户端就会自动创建一个一模一样的组件副本。当组件的属性被标记为可同步的,那么当这些属性在服务器上改变时,会同步到客户端,跟actor别无二致。

函数同步:

可允许服务器与客户端相互发送消息,可同步的函数成为远程调用函数(RPC)。远程调用函数可设置为 Reliable 或 Unreliable,其中 Reliable 调用必定会发生,而 Unreliable 调用可能会在网络繁忙时被丢弃。

远程调用函数主要包括 3 种类型:Multicast 广播、Run on Server 在服务端执行 和 Run on owning Client 在客户端执行。广播函数在服务器上调用和执行,然后自动转发给所有客户端。 在服务端执行的函数由客户端调用,然后仅在服务器上执行。 在客户端执行的函数由服务器调用,然后仅在自有客户端上执行。

服务器和客户端同步函数存在一些限制,其中一条是它们仅可在具有 Net Owner 的 Actor 上使用。如果 Actor 为玩家控制器或归玩家控制器所有,则其具有 Net Owner。

属性同步:

只能从服务器同步到客户端。当服务器上变量改变时,就会同步到客户端。可以为变量添加一个函数,每次同步时,自动调用该函数,该函数必须是UFUNCTION。

注意:只有对象设置为可同步,属于它的被标记为可同步的属性跟函数才能同步。

 

碰撞响应:trace响应和物体响应

每一个物体都有一个ObjectType;每一个trace都有一个TraceType;他们统称为Channel;

一个物体对碰撞的响应类型只有三种:Ignore,Overlap,Block;

每一个物体都要设置对每个Channel的响应类型;比如,worldstatic类型的物体,对visible类型trace的响应,为Ignore。

碰撞规则:

如果两个物体相互设置为block,那么两个物体相互block,如果一个物体的Simulation Generates Hit Events设置为true,它就会执行碰撞事件。

如果两个物体相互设置为overlap,那么两个物体可以相互穿插,如果一个物体的Generate Overlap Events设置为true,他就会执行穿插事件。

如果一个物体设置为overlap,另一个设置为block,那么两个相互穿插,Generate Overlap Events设置为true的物体,则会执行穿插事件。

如果一个物体设置为ignore,另一个不管设置为何,都不会产生效果,更不会执行事件。

 

动画:

local space,bone space,parentbone space,rootsocket space,component space,world space

local space跟bone space是一回事。骨骼的变换相对于自身。

parentbone space,骨骼的变换相对于父骨骼。

rootsocket space,骨骼的变换相对于根骨骼。

component space,骨骼的变换相对于skeletalmeshcomponent(就是模型)。

world space,骨骼的变换相对于世界坐标系。

注意:因为rootsocket space一般与component space重合,所以这两个可以相互通用。

animMontage:

It is an important point to keep in mind that although much of your Montage control will take place in the Animation Blueprint's Event Graph, Slots are actually handled within the Anim Graph. This is done by way of the Slot node, which simply takes in the name for a Slot. By positioning this node at a strategic point along your AnimGraph's execution, you can have multiple Montages that utilize the same Slot name.

一个montage必须属于一个组,一个组内,同一时间只能播放一个montage,如果播放第二个,第一个就会停止。可以同时播放多个组。

当播放montage时,会覆盖掉原始pose,当停止播放时,恢复原始pose。

© 著作权归作者所有

共有 人打赏支持
上一篇: 材质的理解
下一篇: python学习
yintao
粉丝 7
博文 63
码字总数 45783
作品 0
大连
程序员
私信 提问
UE4如何获取/下载虚幻4(Unreal Engine4)源码

背景叨叨叨 之前受同事的影响,对UE4产生了迷之兴趣,想尝试着了解一下,于是在游戏蛮牛社区的UE4专栏找到了一篇新手入门引导教程,其中谈及下载源码,但是其推荐链接已无效便想到Github上找...

代码咖啡
2018/06/18
0
0
VR这么火,你选UE4还是Unity 3D?

在虚拟现实大热的今天,开发者界也出现了“甜豆花”与“咸豆花”之争。在游戏开发者制作游戏时,面对都是免费、都支持各大平台的UE4和Unity 3D,选择何种游戏引擎,似乎有点难以抉择,左手U...

1405048499729402
02/21
0
0
UE4随笔——TMap自定义结构体键值

在UE4中,TMap是一个比较常用的容器,TMap的用法很简单,本文将着重介绍一下TMap如何自定义结构体键值。 UE4随笔 和众多Map容器的实现方法类似,TMap也是通过将Key转换为Hash,来建立对Value...

Jay_Guo
2017/12/02
0
0
(个人)VR实时交互的太极拳学习系统创新实训第一周(1)

这周主要进行了人物模型和示例动画的制作和利用动捕进行舞蹈学习的论文的学习。 使用Neuron和Motion Builder进行了太极拳动作的采集和处理。以下是我使用Motion Buileder导出模型到MAYA,再导...

little_raspberry
2018/04/06
0
0
UE4 行走/飞行切换,上升下降

双击创建的人物 先将默认的 land movement mode 改成 walking, 蓝图切换到 Event Graph 右键添加功能键切换行走/飞行模式 现在添加上升,下降的功能 先创建一个Axis Mappings 来触发上升下降...

5457f2
2016/08/18
110
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot引入第三方jar包或本地jar包的处理方式

在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢 一般有两种方法 - 第一种是将本地jar包安装在本地maven库 - 第二种是将本地j...

独钓渔
今天
2
0
五、MyBatis缓存

一、MyBatis缓存介绍 缓存的使用可以明显的加快访问数据速度,提升程序处理性能,生活和工作中,使用缓存的地方很多。在开发过程中,从前端-->后端-->数据库等都涉及到缓存。MyBatis作为数据...

yangjianzhou
今天
2
0
最近研究如何加速UI界面开发,有点感觉了

最近在开发JFinal学院的JBolt开发平台,后端没啥说的,做各种极简使用的封装,开发者上手直接使用。 JBolt开发平台包含常用的用户、角色、权限、字典、全局配置、缓存、增删改查完整模块、电...

山东-小木
今天
3
0
《月亮与六便士》的读后感作文3000字

《月亮与六便士》的读后感作文3000字: 看完英国作家威廉.萨默塞特.毛姆所著《月亮与六便士》(李继宏译),第一疑问就是全书即没提到“月亮”,也没提到“六便士”。那这书名又与内容有什么...

原创小博客
昨天
2
0
微信网页授权获取用户信息(ThinkPHP5)+ 微信发送客服消息(一)

以thinkphp5为实例,创建控制器 class Kf extends Controller { /** * [protected description]微信公众号appid * @var [type] */ protected $appid = "xxxxxxxxxxxxxxx"; /** * [protected......

半缘修道半缘君丶
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部