UE4 框架

发表于2016-06-21
评论0 4.2k浏览
  有很多人是从UE3 接触到Unreal,如果你也对UE3非常了解,便能很快的上手UE4。但是,UE4的开发模式还是有所不同的。

1、谈谈过往,UE1和UE2。
  我知道在那个时候咱们一样挥霍美好的童年在玩游戏而不是做游戏,当然做游戏更挥霍你的青春XD
  UE1和UE2是为FPS设计的,使用UnrealScript来进行编程。说实话UnrealScript是最好的学习面向对象编程的语言。

2、UE3
  添加了kismet。更多的模块类。但是仍旧以FPS为核心设计的

3、UE4
  UnrealScript被下岗了,恭喜你咱们下岗了~。变成了Blueprint,这时候关卡设计师们大声叫好:”不再需要求着愚蠢的程序员帮我们实现系统了,哈哈“。
  游戏类型随意,Paper2D让你轻松制作2维游戏。
  还有许多工程实例供你学习。
  好了咱们向前看~

5、UnrealScript vs.C++ vs.Blueprint
  这是许多人的疑问,看好戏吧

6、UnrealScript
  ①面向对象编程,和C,C++,Java比较像。但是还是有区别的
  ②虚拟机编译,这和java一样,方便移植,缺点是速度慢效率低
  ③添加了许多有用的特性,State(说实话状态写AI简直是最完美的方案,我的游戏AI便是强依赖State).Timers(非常方便延迟执行),Delegates(容易引起崩溃,注意使用哦)

7、Blueprint
  ①对艺术家和设计师来说就是逃离恶心程序员”这不可能实现“的最有力武器,你可以做到”你行你上啊~“。Kismet的伙计应该很容易上手
  ②还是虚拟机,和UnrealScript是一样的。因此,如果你很重视一个环节的执行效率,那么就是用C++
  ③和UnrealScript一样,但一些方面比UnrealScript强。例如你在添加Component中时可以不用关闭编辑器直接修改模型。实在是工农大解放啊...

8、C++
  ①UE编程始终可以基于C++,除非你用UDK,你这个穷鬼XD
  ②紧密结合虚拟机,因为Blueprint变量和方法有时是需要和C++交互的
  ③为了替换UnrealScript为开发者已经大幅提升了?

9、UE4基础元素
  ①Actor 
  我们又见面了Actor,Actor是在一个关卡中持续存在的,通常他包含几个Actor组件。支持网络复制和多人游戏。
  Actor不包含位置,方向。这些东西在Root Component中存储。对于UE3 中的Pawn也由PlayerCharacter继承了,因为他有MovementComponent包含跳跃,速度等属性
  由SpawnActor() 生成
  必须由Destroy来销毁
  在游戏中不能被垃圾回收
  ②什么是ActorComponent?
  能被复用的功能可以添加进入Actor
  包含一些最有趣的函数和事件
  能被Blueprint访问~
  ③组件例子
  Scene Component 添加形状和连接
  Primitive Component 添加碰撞和渲染UAudioComponent,UArrowComponent,UInputComponent,ULightComponent,UMeshComponent,UParticleSystemComponent等等...
  写过UnrealScript会对组件深有体会
  ④PrimitiveComponent组件事件举例
  Hit- 再碰到强的时候调用
  Begin/EndOverlap -进出一个Trigger
  Begin/EndCursorOver 没用过
  Clicked/Released 不解释
  InputTouchBegin/End
  Begin/EndTouchOver
 
10、你就只认得个Pawn
  Pawn就是你的阿凡达
  这个傀儡被Controller操纵着
  通常处理运动和输入控制
  实现HP的好位置
  通常没有运动或是输入反馈的代码,你可以在Controller中写
  
11、来见见老朋友Controller
  控制Pawn的傀儡师
  可以理解做就是玩家
  AIController就是控制AI的
  一次只能Possess一个Pawn
  当Pawn死的时候可以继续存在,在我的游戏中让pawn死亡,游戏假重置,就是controller直接Possess一个新Pawn的 PlayerControlelr
  玩家阿凡达的接口
  处理点击,手柄,键盘
  显示和隐藏鼠标指针
  不需要Pawn表示的好地方
  菜单,语音聊天...
  一些别的有用选项  

12、Character
  这是使用过UE3的人学习UE4最困惑的地方,有了Pawn为什么还要扩展PlayerCharacter?
  这是一种能走的Pawn,因为包含了MovementComponent
  和上边一样,添加了一些有用的组件
  处理碰撞
  处理客户端角色运动
  比UE3有更大的升级
  
13、HUD
  还有一些绘制API
  没有构建HUD的工具
  UMG直接提供所有的东西,我讨厌老旧UI系统。UMG让人解放了
  
14、GameMode
  还记得GameInfo吗,实现游戏规则用的
  配置Pawn,Controller和HUD是谁
  能在任何地方被访问,我来告诉你API GetGameMode()
  只在服务器和单机实例中存在
  GameState是被用来在客户端复制状态用的
  默认游戏类型可以在Project Settings中被设置
  每个地图都有自己的GameMode,需要你亲手设置
  
15、Input
  这是我对UE4最赞赏的改进之一,你直接在编辑器中添加Bind而不是让你眼花的配置文件中
  在Project Settings中设置去吧
  获取指令  
  PlayerController
Level Blueprint
Possessed Pawn
  
16、碰撞
  有多种碰撞处理的方法
  线性检测 Line Trace
  体积扫过 Geometry Sweeps
  重叠测试 Overlap tests
  简单的碰撞
  Box,胶囊,球,多边形
  在运动和物理模拟的时候都需要
  复杂碰撞
  实际用于多边形
  武器和反向动力

  腾讯GAD游戏程序交流群:484290331Gad游戏开发核心用户群

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引