halo~我是bay_Tong桐小白
本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言、指点
Unreal的初步探索
【更新日志】
最近更新:
- 新增内容——UE4基本术语简述(2020.7.11)
- 新增内容——虚幻工作室(Ureal Studio)(2020.7.18)
- 持续更新中……
Unreal的初步认识
初步认识
Unreal
- Unreal是UNREAL ENGINE(虚幻引擎)的简写,由Epic开发,是世界知名授权最广的游戏引擎之一,占有全球商用游戏引擎80%的市场份额。
- 虚幻技术研究中心在上海成立,该中心由GA国际游戏教育与虚幻引擎开发商EPIC的中国子公司EPIC GAMES CHINA联合设立。
(引用来自百度百科)
- 虚幻引擎是一套完整的开发工具,面向任何使用实时技术工作的用户。从设计可视化和电影式体验,到制作PC、主机、移动设备、VR和AR平台上的高品质游戏,虚幻引擎能提供起步、交付、成长和脱颖而出所需的一切
(引用来自UNREAL ENGINE官方网站“关于”模块)
Unreal Engine 4
【目前虚幻引擎已发展至4系列版本,关于Unreal Engine 5(简称UE5)的探索开发正在进行中,详情可在UNREAL ENGINE官方网站“新闻”模块进行了解】
- 虚幻4(简称UE4)是一套为游戏开发者设计和构建游戏、模拟和可视化的集成工具
发展前景
【根据SiKi学院Unreal入门第一季(19版)与其它资料搜索调查实践而得】
- 投入其中的开发者、开发商越来越多(如现今国内网易、腾讯一些产品都希望逐渐迁移至虚幻4引擎上)
- 使用虚幻4开发的作品越来越多
- 虚幻4对开发者的使用完全免费(商业性质的游戏或产品开发在产品成功发行后会收取%5的分成费)
- 虚幻4所有源代码开源
(Unreal官方提供有在线学习的视频课程与预定的学习路径,以及一些文档、源代码等资料,均可在UNREAL ENGINE官方网站进行免费查看学习)
UE4行业应用
- 游戏
- 建筑
- 汽车与运输
- 广播与实况活动
- 影视
- 训练与模拟
- ……
(引用来自UNREAL ENGINE官方网站,详细可前往官网查看)
即虚幻不仅仅局限于游戏开发,在涉及可视化与人机交互的领域均可以使用进行设计开发,只不过在游戏领域它可以最大程序发挥和利用引擎的优势与资源。
UE4功能特性
【根据SiKi学院Unreal入门第一季(19版)与UNREAL ENGINE官方网站信息汇总而得】
- 管道集成
- 世界场景搭建(地形与植被系统)
- 动画(专业动画与过场)
- 渲染、光照和材质(实时逼真渲染、灵活的材质编辑器)
- 模拟和效果(电影级后期处理)
- 游戏性和交互性编写(可视化脚本编辑、包含完整C++开源代码、健壮的游戏框架、先进的人工智能)
- 集成的媒体支持
- 多平台支持和便捷工具
Unreal引擎的安装问题
硬件和软件规格简要列举
推荐软硬件
推荐软硬件 | 详细 |
---|---|
操作系统 | Windows 10 64位 |
处理器 | Intel四核处理器或AMD,2.5 |
存储器 | 8 GB RAM |
显卡/DirectX版本 | DirectX 11或12兼容显卡 |
Epic采用的典型配置
详细 |
---|
64位Windows 10系统 |
64 GB RAM |
256 GB SSD(系统盘) |
2 TB SSD(数据驱动) |
NVIDIA GeForce GTX 970 |
Xoreax Incredibuild(开发工具包) |
Xecon六核E5-2643@3.4GHz |
运行最低软件要求
软件 | 详细 |
---|---|
操作系统 | Windows 7 |
DirectX Runtime | DirectX End-User Runtimes(2010年6月) |
用引擎开发软件要求
用引擎开发 | 详细 |
---|---|
Visual Studio版本 | Visual Studio 2017 v15.6或以上(推荐)(当前UE4版本不再支持Visual Studio 2015) |
iTunes版本(针对iOS应用程序开发) | iTunes 11或以上 |
更多详细要求见UNREAL ENGINE官方网站文档软件和硬件规格部分
安装步骤简述
——>前往UNREAL ENGINE官方网站点击下载
——>选择对应需求版本Epic Games launcher进行下载
——>注册Epic账号——>安装Epic Games launcher
——>打开Epic Games launcher点击虚幻引擎——>点击插件——>选择对应版本与选项进行下载安装
【对于其它安装需求可详见UNREAL ENGINE官方网站文档安装虚幻引擎部分】
虚幻商城
虚幻商城中包含大量的案例资源,每个月Epic官方会推出一系列免费资源可供开发者进行下载,案例资源下载完成后导入自己的工程即可进行使用
虚幻工作室(Unreal Studio)
Unreal Studio是旨在将高模且无优化的CAD几何体导入UE4的工具,它是一个可选插件,自虚幻引擎4.24开始虚幻工作室的功能都被整合到了虚幻引擎中供所有用户免费使用
第一个项目工程的建立和Unreal编辑器的熟悉
【由于初次接触Unreal,我选择了官方文档推荐初学者的4.22.3版本,当前Unreal最新已推出4.25.1版本。本内容以4.22.3版本创建C++项目为例】
-
打开Unreal Engine项目浏览器,选择新建C++基础代码项目,选择主机、最高质量、具有初学者内容,进行创建
注意Unreal的安装根目录以及项目目录均不能含有中文,否则会无法编译而导致项目无法正常创建。(编译失败图例如下)
-
项目创建中会启动Visual Studio,在启动后VS编译器会进行一个初始化操作,对项目要使用到的include文件进行查找和分析,因此勿过早关闭和使用VS编译器
-
如图为创建好的Unreal项目在虚幻关卡编辑器中的显示
-
编辑器可分三级设置,即编辑器偏好设置(针对编辑器)、项目设置(针对某一项目)与世界设置(针对项目中的某一世界)。用户可根据自己习惯喜好进行设置修改
【UE4中有着多种不同类型的编辑器窗口,如关卡编辑器、材质编辑器、蓝图编辑器、行为树编辑器、Persona编辑器、级联粒子编辑器等等,详细介绍可见UREAL ENGINE官方网站文档工具和编辑器部分】
Unreal C++与蓝图脚本的初步认识
Unreal C++
- 通常会认为虚幻C++是“辅助C++”,即可以通过库函数更容易使用C++语言实现功能
- 使用虚幻C++需要已经对C++或另一种面向对象的编程语言有所认知
- 若完全没有编程经验可以先行选择学习蓝图视觉脚本语言,仅使用蓝图脚本也可以创建和完成整个项目
虚幻C++项目在Visual Studio编译器中的展示
蓝图可视化脚本
- 虚幻引擎中的蓝图可视化脚本系统是一个完整的游戏脚本系统,其理念是在虚幻编辑器中,使用基于节点的界面创建游戏可玩性元素。和其他一些常见的脚本语言一样,蓝图的用法也是通过定义在引擎中的面向对象的类或者对象。
- 在循环引擎的C++实现上也为程序员提供用于蓝图功能的语法标记,通过这些标记程序员能够很方便的创建一个基础系统,并交给策划进一步在蓝图中对这样的系统进行扩展。
- 蓝图实质是建立在C++代码之上,在蓝图虚拟机里进行运行,编译速度较快快,但运行性能会有下降
蓝图脚本在蓝图编辑器中的展示
C++与蓝图脚本的关系
二者可以各自完全独立工作进行项目设计实现,也可以相互协作完成项目,官方给出的二者理论平衡如下:
C++由游戏逻辑程序员使用
- 完成虚幻尚未封装的功能
- 完成根据项目需求需要自定义的功能
蓝图由游戏设计人员使用
- 设计其他游戏资源
- 功能测试时使用
- 项目快速迭代时使用
- 调用编写好的C++代码
(非游戏行业对于两种语言的选择类似,对于设计师方面的开发人员更推荐使用蓝图脚本)
概念区分:
- 蓝图可视化脚本:简称“蓝图”、“蓝图脚本”,是一种可视化编程,蓝图完全集成在UE4中,通过节点与连线工作
- 蓝图系统:俗称“蓝图”、“蓝图类”,可将蓝图类想象成包装游戏内容的容器,其中可以包含组件,可以包含脚本,也可以仅包含数据
即蓝图系统可以包装游戏组件、数据、游戏逻辑等,游戏逻辑的实现可以由C++脚本或蓝图脚本实现
UE4基本术语简述
project 项目
- 项目保存着所有组成单独游戏的所有内容和代码
- 一个项目会经常被与其关联的.uproject文件所引用。.uproject文件是一个用于创建、打开或保存文件的参考文件,而项目则包含与其关联的所有文件和文件夹
.uproject文件简单解读
Object 对象
- 是虚幻引擎中最基础的构建单元,包含很多游戏资源必需的幕后功能(数据)
- UE4中几乎所有的东西都继承自Object(或从中获取部分功能)
Actors
- 可放入关卡(场景)中的对象都是Actor。Actor是支持三维转换(如平移、旋转和缩放)的泛型类
- 可通过代码(C++或蓝图)创建或销毁Actor
Class 类
- 用于定义在创建中使用的特点Actor或对象的行为和属性
- 类可用C++或蓝图创建
Level 关卡
- level是用户定义的游戏区域,也称场景。我们主要通过放置、变换及编辑Actor的属性来创建、查看、修改关卡
- 在虚幻编辑器中,每个关卡都被保存为单独的.umap文件,所有它们有时也被称为“地图”
World 世界
- 世界场景中包含载入的关卡列表,它可处理关卡流送和动态Actor的生成创建
Component 组件
- 组件是可添加到Actor的一项功能。组件不可独立存在,但在将其添加到Actor后,该Actor便可以访问并可以使用该组件所提供的功能
PlayerController 玩家控制器
- 玩家控制器类用于在游戏中获取玩家输入并将其转换为交互,每个游戏中至少有一个玩家控制器
AIController 人工智能控制器
- 就像玩家控制器拥有一个兵卒作为游戏中玩家的代表一样,AI控制器也拥有一个兵卒来代表游戏中的非玩家角色(NPC)
GameMode 游戏模式
- 游戏模式类负责设置正在执行的游戏的规则。规则可包括玩家如何加入游戏、是否可暂停游戏、关卡过渡等任何特定的游戏行为
GameState 游戏状态
- 游戏状态包含要赋值到游戏中的每个客户端的信息,即它表示每个联网玩家的“游戏状态”
- 通常包含有关游戏分数、比赛是否已开始、基于世界场景玩家人数要生成的AI数量的信息等特定于游戏的信息
PlayerState 玩家状态
- 玩家状态中适当的示例数据包括玩家姓名、得分、当前等级、生命值、抢旗游戏中是否携带旗帜等
持续更新中……
我是桐小白,一个摸爬滚打的计算机小白