2015-11-14 13:03:01 xi_niuniu 阅读数 3165
  • 从这里开始虚幻4-Editor介绍 v4.18

    本课程系列取名英译系列,是录制人员参考国外英文原版经典教程,结合中国人的习惯录制而成。希望能够给大家以帮助。从这里开始虚幻4系列教程,是Unreal的官方发布的入门教学,非常经典,是学习Unreal的佳入口。

    2510 人正在学习 去看看 杨石兴

Unreal Engine 4 蓝图脚本学习,根据《Blueprints Visual Scripting for Unreal Engine》学习整理


默认情况下,actor的Transform组件中 移动性属性为“static”,  就是在游戏运行时,actor是不可进行移动和操作的。所以为了实现对象
在游戏中可移动的效果需要把这一属性修改为 "可移动"




为了能够改变脚本以后所附加到的对象同样为可移动的,需要打开蓝图编辑器进行一些修改






为了使物体在游戏世界中能够移动,我们需要知道以下信息

•  Where the cylinder currently is 圆柱体在什么位置
•  What direction it is supposed to move in 想要移动的方向是什么
•  How fast it is supposed to move in that direction 在那个方向上移动的速度是多少

创建速度变量和方向变量

Speed 为float类型变量

Direction为Vector类型变量


速度设置 为200.0f;



移动方向设置为 y = -10.0f;





Normalizing is a common procedure in vector math that ensures that
the vector is converted to a length of one unit, which will make it compatible with
the rest of our calculations

标准化向量(单位化向量)就是将向量值转化到一个单位长度(向量的模为一)。以便在后序程序运算中相兼容



速度值乘以一个时间值,所以选择 float*float    时间值类型也为float


将StaticMeshComponent组件拖拽到事件图表中  以获取圆柱体当前的位置



GetWorldDeltaSeconds: 获取相邻两帧之间的间隔时间。 这个数值受游戏运行所在的机器性能影响的,性能高的机器时间间隔就较小,反之则较大。为了能够
在不同性能的计算机上表现出相同的移动速度,所以会把速度值乘以DeltaSeconds。



Transform属性中包含对象的 位置、  旋转 和 缩放的信息。 能过GetWorldTransform可以获得当前对象的Transform信息

BreakTransform 可以提取Transform中的不同部分
MakeTransform根据Location、Rotation和Scale "合成" 一个新的Transform


事件Tick每一帧都会触发

SetActorTransform 根据传入的Transform值设置Actor的Transform


这时运行游戏,圆柱体只会朝着一个方向移动。
为了实现圆柱体在游戏中来回移动,向事件图表中添加两个新的Direction 变量 ,选择设置并分别设置y值为10.0  和 -10.0


Delay会根据Duration设置的秒数循环执行
FlipFlop会执行 A 和 B所连接的Node 中的一个,默认先执行A。

播放游戏观察事件图表中数据流的走向


圆柱体在游戏中来回移动

现在通过之前创建的蓝图脚本可以创建更多且有相同属性的游戏对象











2017-12-05 14:22:04 WAN_EXE 阅读数 275
  • 从这里开始虚幻4-Editor介绍 v4.18

    本课程系列取名英译系列,是录制人员参考国外英文原版经典教程,结合中国人的习惯录制而成。希望能够给大家以帮助。从这里开始虚幻4系列教程,是Unreal的官方发布的入门教学,非常经典,是学习Unreal的佳入口。

    2510 人正在学习 去看看 杨石兴

1. 新建一个First Person的模板工程,

命名为BlueprintScripting.


2. Viewport

点击play完成之后,可以进入到射击的场景中,

通过按住鼠标左键,前后移动鼠标的话,相机会前后移动。

按住鼠标右键,前后拖动鼠标的话,相机会旋转。

按住鼠标的中间键或者左右键同时按,前后移动,相机则会上下移动。

按住左键或者右键相机会左右旋转,按住中间的键相机会左右移动。

以上就是Level Editor中的viewport操作。


3. 放置物体

最常用的对象是actor.

英文描述

An actor is a basic object with no inherent behavior other than the ability to be rotated, moved and scaled, but it can be expanded to include more complex behavior by attaching components.

这里的actor和components之前都有介绍,说到actor就是一个没有自己的属性,只能够旋转移动和缩放的物体,但是它可以通过添加其它的component来拓展它的功能。

我们的目标是创建一个射中之后会变换颜色的物体。

我们需要改变actor's的材料,材料的解释

A material is an asset that can be added to an actor's mesh (which defines the physical shape of the actor) to create its look.

mesh是指actor的物理形状,material可以理解成皮肤之类的东西。

所以改变物体颜色的一种方式是直接使用不同颜色的材料代替之前的材料。


4. 暂且材料用皮肤代替

这里新建了一个Materials的文件夹,然后命名了一个Material类型的TargetRed的文件,可以双击这个文件打开一个编辑框,如下图所示,这个是Material Editor。


5. 我们新添加了一个Vector Parameter的node,原文是这样的

A vector parameter in the Material Editor allows us to define a color, which we can then attach to the Base Color input on the tall material definition node.

写了一个红色的材料

定义了Metallic和Roughness值。


6.接下来要做的事情就是在确定物体是否被击中,击中的时候变换颜色。

所以需要使用到Blueprint。

这里将之前增加的actor变成蓝图,就是add blueprint按钮完成。

蓝图一般的工作流程用下面的语句描述

When something happens, check whether X, Y, and Z are true, and if so, do this sequence of actions.

有三个默认的事件触发

Event Begin Play

Event Actor Begin Overlap

Event Tick

这三个事件很容易描述。


7. 现在选择一个Event hit框。

可以看到有很多其它的框,五边形的是执行框。

蓝图是下面这个样子的,射中之后就会变化颜色。

完成之后的效果是下面这样的,



8. 这个蓝图有很多不完善的地方,比如玩家和这个圆柱接触的时候也会变成红色,所以需要修改这个东西。记住我们只是在被子弹击中之后才会变化颜色。

完成之后的蓝图长下面这个样子



9. 通常来说我们的我们的目标是移动的,比如敌人都是移动的,下面要做的事情,就是移动这个射击目标。

选择Details --> Transform --> Mobility将Static改成Moveable.

因为已经生成了蓝图,所以我们也需要在蓝图中进行修改。也是同样的地方和位置。


10. 首先在蓝图中增加方向和速度两个变量。

设置相关的参数。

最后的蓝图形式,可以按照这个结构设计出一个左右移动的物体。射击之后会变成红色。

前半部分


后半部分

还是挺好玩的。

:)


2017-11-27 18:10:02 WAN_EXE 阅读数 446
  • 从这里开始虚幻4-Editor介绍 v4.18

    本课程系列取名英译系列,是录制人员参考国外英文原版经典教程,结合中国人的习惯录制而成。希望能够给大家以帮助。从这里开始虚幻4系列教程,是Unreal的官方发布的入门教学,非常经典,是学习Unreal的佳入口。

    2510 人正在学习 去看看 杨石兴

前面的例子中已经基本上介绍了虚幻引擎怎么写代码,怎么画蓝图,并且实现了几个简单的例子,比如移动一个Actor,用户的输入输出时间,通过鼠标按键等操作控制物体。也进行了粒子系统的简介,还有其它的变量之类的其它的东西。

写到现在还有一些名词我们是比较模糊的,那么现在就简要地总结一些这些名词。比如,你会问问题,什么是Actor,什么是Component, 什么是Pawn,现在我也是比较困惑。这篇文章会注明它们,并且提供它们的详细介绍。一旦你知道它们这些名词表达什么意思,那么你就可以通过跟多的文档来让它们工作。

Projects

这个很好理解,现在一般写代码都有一个Project,用于放所有的代码。

Project通常被一个.uproject的文件引用,这个相当于window的程序快捷键。


Objects

字面上翻译过来就是物体,是基础的building blocks.

物体有很多的功能可以供游戏使用,Unreal殷勤中,所有的物体都是继承Object.所以说UObject是所有类的基类,这里类似于java中的Object.它实现了垃圾回收,元数据(UProperty)可以给编辑器提供接口,以及加载和保存的序列化。


Classes

类定义用在Unreal游戏中的Actor或者是Object的方法和属性,就和一般的C++的类类似。类是可以继承的,也就是说一个子类会继承它父类的信息,类可以通过C++代码或者是Blueprints进行创建。


Actor

这个没有办法翻译称汉语,说演员?也就是说一个Actor是首先它是一个Object,是可以被放置到level编辑器的。

Actors是一个泛型类,这个类支持3D变换,比如平移,旋转,和缩放。Actors可以通过代码(C++或者blueprint)创建(created spawned)或者销毁。

在C++中AActor是所有Actor的基类。


Components

组件是一个功能(functionality)可以被添加到一个Actor中,组件不能独自存在,但是当它被放入到Actor中的时候,那么这个Actor就可以获得组件提供的功能。

比如一个, Spot Light(点光源)组件,允许一个Actor可以像spot light那样发光。一个Rotating Movement Component (旋转移动组件)会让你的Actor旋转,一个Audio Component则会让你的Actor进行发声。


Pawns

可以翻译称小卒,小卒是Actor的子类,在游戏中扮演avator 或者persona角色,比如游戏中的characters,类似于游戏中的人物,什么之类的吧。小卒可以通过玩家进行控制,或者以non-player characters形式通过AI进行控制。

当一个小卒通过玩家或者AI进行控制的时候,那么此时它被认为是占有的。相反的,如果一个pawn没有被玩家或者ai控制,那么它被认为是Unpossessed.


Characters

人物是Pawn Actor的子类,它被用于游戏中的玩家人物,Character子类包括碰撞的建立,两足的移动输入绑定,以及其它的被玩家控制的核心移动功能。


PlayerController

PlayerController类用来接收用户的输入,将它转换到游戏中。每个游戏至少有一个PlayerController。一个PlayerConroller通常都是占据着在游戏中表示Pawn或者Character的对象。

而且PlayerController也是网络多人交互的点。在多人游戏中,服务器对于每个玩家都有一个PlayerController的实例,因为它必须调用每个玩家的网络功能。每个用户只有他们自己的GameController,只能通过GameCtroller和服务器交互。


AIController

就像PlayerController拥有一个Pawn实例表示游戏中的人物,一个AIController占据一个Pawn实例表示游戏中的not-player character.默认的,Pawns和Character会变成被AIController控制,如果它们不指定被PlayerController控制的话。


Brushes

刷子,刷子是一个Actor,描述3D体积。


Levels

等级?感觉翻译太不恰当,应该翻译称场景比较好。一个场景是用户定义的玩游戏的一片区域。场景通过放置,变换,和修改它包含的属性进行创建,查看或者修改。

在Unreal编辑器中,每个场景都保存在一个独立的.umap文件中,因此有时候你也可以称它们为Maps.




先翻译这么多,后面的翻译比较好理解,也就不说什么了。





2018-07-19 00:16:38 qq_30919603 阅读数 5509
  • 从这里开始虚幻4-Editor介绍 v4.18

    本课程系列取名英译系列,是录制人员参考国外英文原版经典教程,结合中国人的习惯录制而成。希望能够给大家以帮助。从这里开始虚幻4系列教程,是Unreal的官方发布的入门教学,非常经典,是学习Unreal的佳入口。

    2510 人正在学习 去看看 杨石兴

目录

场景漫游

运用Geometry进行简单的场景

移动物体(W)

旋转物体(E)

缩放(R)

细节面板

Brush Settings--Brush Type

Brush实例

组合(CTRL+G)

解组(SHIFT+G)

世界大纲

记得保存

总结

下一章:材质入门


场景漫游

在虚幻4引擎界面的中间,也就是场景模块

按住右键+移动鼠标,改变镜头朝向

按住右键+WASD:前后左右移动,类似FPS游戏操作

按住右键+QE:升降

一般鼠标右键配合WASDQE就足够了

当然还有很多快捷键,后面再介绍

运用Geometry进行简单的场景

打开引擎后,在左侧模式里的Geometry中拖拽一个box到场景中

物体轴心有一个小的坐标系

移动物体(W)

也可以鼠标点击下面几个图标切换模式

鼠标左键按住并拖动某一个轴,让物体在对应轴上移动,

按住两个轴组成的平面,让物体在某个平面上移动,

尽量不要用坐标轴的小白球上,无法控制物体真实的位置

旋转物体(E)

缩放(R)

细节面板

Brush Settings--Brush Type

是添加一个可以看见的物体,就是刚才上面拖入场景中的物体类型

这是一个挖空类型,这个属性的就是看不见的,

它的作用是与Addtive类型的Geometry进行布尔运算

什么是布尔运算?就是一个物体减去另一个物体,具体看图,自己尝试

效果如上图,但是请注意一点,只能是先拖入的addtive,减去先拖入的subtractive

另外Hollow默认是不勾选的,那这个Geometry就是实心的,勾选后每个面都有厚度WallThickness,

顺便提一下在Geometry中可以预先设置Brush Type的类型

设计阶段,两种BrushType的配合,以及各种几何模型,能构建出一个大致的布局,后面再替换为模型

Brush实例

四周封闭的墙壁

先把不要的东西删掉,拖拽一个box进来,将笔刷的xyz调制一定大小,按住Alt将box往上面拖拽复制出一个新的box,将box的xy调整稍微小一点,Brush Type设置成Subtractive即可,很快很简单对吧

想建造一个简易房屋也是完全没问题的,完全可以当成一个建造游戏玩哦。

当然你还可以做个什么通道啊,山洞之类的,建议你别玩久了,继续学习吧。。。

组合(CTRL+G)

这个功能很实用,快捷键是Ctrl G,这样点击一个物体的同时也自动选择了全组的物体,

解组(SHIFT+G)

解组快捷键是Shift G,这个命令解开后就无法再次关联了,当然你可以撤销,

如果只想暂时更改组中的某个物体,那么就使用解锁命令

右键对应物体,组下面的解锁,编辑好后同样的位置点击锁定,OK。

世界大纲

这里此地图中所有的物品

 

记得保存

不然你会因为编辑器崩溃而崩溃

 

总结

知识点

  1. 位移,旋转,缩放对应的快捷键是W,E,R
  2. Brush Type
  3. Alt直接复制粘贴一个物体
  4. Ctrl G打组,Shift G取消打组,解锁和锁定

可以自己设计一下试试

下一章

2016-07-16 17:52:09 AK724730211 阅读数 6902
  • 从这里开始虚幻4-Editor介绍 v4.18

    本课程系列取名英译系列,是录制人员参考国外英文原版经典教程,结合中国人的习惯录制而成。希望能够给大家以帮助。从这里开始虚幻4系列教程,是Unreal的官方发布的入门教学,非常经典,是学习Unreal的佳入口。

    2510 人正在学习 去看看 杨石兴

最终效果如图


一:创建一个可以破坏的物体


1.使用过滤器获取一个静态网格物体


2.鼠标右键,选择最上面的创建可破坏物体。


3.调整破碎的数量(数值太大会降低游戏破碎瞬间帧率),破碎的深度


4.调整好数量后,点击破裂网格物体,保存,拖动数量查看效果。


5.查看破碎效果后,可根据需要,添加破碎时的特效。


6.选择破碎资源,右键添加一个子类蓝图。

7.在这个蓝图里,添加事件。


二.射线打击静态物体。


1.获得一个破碎的蓝图类,调用蓝图类里创建的事件。

2.可以根据需要,给这个物体一个冲击力的效果Add impulse。


3.在蓝图类里,分配事件,添加伤害方法Apply Point Damage。

UE4 学习笔记

阅读数 1345

没有更多推荐了,返回首页