首页
社区
课程
招聘
[分享]Unreal Engine 学习(ShooterGame)
发表于: 6天前 621

[分享]Unreal Engine 学习(ShooterGame)

6天前
621

前言

Unreal Engine(简称 UE)是由 Epic Games 开发的一款大型 实时3D游戏引擎。它主要用于开发 游戏、电影、虚拟现实(VR)、建筑可视化、仿真系统 等。
代表性游戏有:

  • PUBG: Battlegrounds(绝地求生)
  • Delta Force: Hawk Ops(三角洲行动)
    使用的引擎版本都是UE4

但UE4框架十分庞大(代码大概1500万行),如选择浏览完整个项目不现实,所以笔者选择通过 ShooterGame (一款官方经典示例demo)来入门学习UE4
图片描述
图片描述

1. 确定结构核心

UE4 通常结构如下:

1
2
3
4
5
6
7
8
UnrealEngine/
 ├─ Engine
 ├─ Samples
 ├─ Templates
 ├─ FeaturePacks
 ├─ Setup.bat
 ├─ GenerateProjectFiles.bat
 └─ UE4.sln

其中 UE4 所有引擎代码都在 Engine 目录下,真正的源码主要在 Engine/Source
而在 Source 中,Runtime 又是最核心的部分

1
2
3
4
5
6
7
8
9
10
11
Runtime/
 ├─ Core
 ├─ CoreUObject
 ├─ Engine
 ├─ RenderCore
 ├─ RHI
 ├─ InputCore
 ├─ Slate
 ├─ SlateCore
 ├─ Networking
 └─ PhysicsCore

本文将会重点围绕此处展开

逻辑核心类

在 UE4 中几乎所有游戏逻辑都围绕几个核心类:

1
2
3
4
5
6
7
8
9
UGameInstance
    
UWorld
    
AActor
    
APawn
    
ACharacter

例如: 要获取人物坐标:看看ShooterGame是怎么做的:
图片描述
这里为要获取AI的位置,由AShooterBot调用了GetActorLocation(),而GetActorLocation()的结果结构为在FVector中:一进来就可以看到x、y、z坐标,结构十分清晰
图片描述
继续跟着AShooterBot,发现其继承了AShooterCharacter,继续跟踪
图片描述
继续继承ACharacter,继续跟踪
图片描述
ACharacter继承了APawn
图片描述
APawn又继承了AActor和INavAgentInterface
图片描述
AActor继承了UObject
图片描述
UObject继承了UObjectBaseUtility
图片描述
UObjectBaseUtility继承了UObjectBase
图片描述
而UObjectBase为UE对象系统最底层的基类之一
图片描述
另外INavAgentInterface也为导航系统接口(给AI寻路用)
图片描述

大致层级关系为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
UObjectBase(最底层对象)
    
UObjectBaseUtility
    
UObject
    
AActor
    
APawn
    
ACharacter
    
AShooterCharacter
    
AShooterBot

解析

1 UObjectBase(最底层对象)

UObjectBase 是 UE 对象系统的最底层类。它只做最基础的事情:

  • 对象ID
  • 对象类型
  • 对象标志
  • 对象注册

2 UObjectBaseUtility

作用为:提供对象操作工具函数
例如:判断对象是不是某个类

3 UObject(UE对象系统核心)

这是UE反射系统的核心类
提供:反射系统、GC垃圾回收、自动管理对象、序列化、存档加载、对象查找、对象创建等底层核心功能

4 AActor(世界中的对象)

Actor 是世界中的实体。
例如:、类型、角色、物体、子弹、灯光、位置坐标等等
图片描述

5 APawn(可被控制的Actor)

Pawn = 可被控制的Actor
例如:玩家角色、AI角色、载具、飞机等等
图片描述
可以看到设置获取玩家状态等方法,还有非常多功能
图片描述

6 ACharacter(带骨骼的Pawn)

Character专门用于人形角色
提供:碰撞、移动系统、骨骼模型等功能
其中UCharacterMovementComponent提供:走、跑、跳、下蹲、游泳、飞行等操作
图片描述
在UCharacterMovementComponent中能看到相应的移动控制项(非常多)
图片描述

7 AShooterCharacter(ShooterGame玩家)

这是ShooterGame自定义拓展的功能 不属于ue4
作用实现:FPS玩家角色
提供功能:、武器系统、射击、换弹、血量、死亡等等
图片描述
图片描述

8 AShooterBot

这是ShooterGame自定义拓展的功能 不属于ue4
例如:AI敌人、敌人NPC、机器人等

总结

本篇博客为笔者学习记录,如有错漏请留言,欢迎讨论


[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回