Unreal4引擎开发学习日志

2023-10-29

Unreal4引擎开发学习笔记1

相关说明

游戏引擎学习日志是笔者根据网上相关教学视频所写,是对视频内容的精炼与总结。如果您认为笔者所写不清晰明确,可以访问以下链接:
Unreal入门第一季 - 虚幻C++基础训练

虚幻4引擎介绍

虚幻4是一套为游戏开发者设计和构建游戏、模拟和可视化的集成工具。

关于C++开发和蓝图开发:【蓝图建立在C++代码之上;蓝图与C++可以很好地协作。】C++由游戏逻辑程序员使用(完成虚幻尚未封装的功能;完成根据项目需求自定义的功能)蓝图由游戏设计人员使用(设计其他游戏资源;功能测试时使用;项目快速更迭时使用;调用编写好的C++代码)

虚幻4的功能特性:实时逼真渲染;可视化脚本编辑;包含完整的C++开源代码;健壮的多人游戏框架;电影级后期处理;灵活的材质编辑器;先进的人工智能;专业动画与过场;地形与植被系统;多平台支持

虚幻4支持的平台:PS、XBOX、SWITCH、PC(Mac、Win、Linux)、移动平台(IOS、Android)、HTML5、3R(VR、AR、MR)硬件平台、其他专业软件(Vray、3DSMax、Maya…)

Unreal Engine的下载与安装

首先我们要在浏览器当中输入Unreal进行搜索,然后就会进入到官网页面。
在这里插入图片描述
然后点击页面的右上角的【下载】,就会进入到许可类型选择界面,这里我们可以根据自己不同的需要来选择,这里我选择的是发行者许可。
在这里插入图片描述
然后我们会进入到身份验证界面,如果没有账户可以点击【注册】来新建一个账户;如果已经有了账户,可以立即登录。
在这里插入图片描述
登录之后网页会自动下载一个安装程序。然后我们双击安装程序,就会安装一个Epic Games Launcher的启动器。然后我们一种登录方式进行登录。
在这里插入图片描述
然后我们到达虚幻引擎的下载界面。
在这里插入图片描述
这里为了与Visual studio2017的版本相匹配,所以先下载4.21.2版本的,等后续真正开发时再来使用全新的版本,然后我们点击【安装】。但是在安装时,一定要注意安装路径中不能有中文。点击【安装】。
在这里插入图片描述
安装完毕之后,我们点击【启动】,就会打开我们的虚幻编辑器了。
在这里插入图片描述

Visual Studio的下载与安装

首先我们先在浏览器中搜索【VS】,然后在出现的页面中我们可以选择【社区版和专业版】(供开发者免费使用)或者也可以选择【企业版(可以使用官方钥匙破解使用)。】
在这里插入图片描述
我们点击【下载】,安装完毕会出现一个启动器。
在这里插入图片描述
这里我们已经提前安装好了,如果是初次安装的话,它会让你先选择你要使用的组件,已经安装好的话可以点击【修改】来查看安装。
在这里插入图片描述
对于我们使用C++来进行Unreal的开发,我们必须要勾选【使用C++的桌面开发】和【使用C++的游戏开发】这两项。然后勾选完毕后我们点击【安装】即可。


安装完成后我们可以使用微软账号进行登录,或者也可以选择【继续但无需代码】,在【帮助】下选择【注册产品】。在弹出来的窗口中点击【使用产品密钥解锁】,然后输入产品密钥【BF8Y8GN2QHT84XBQVY3BRC4DF】(仅适用于Visual Studio 2019),点击【应用】即可完成激活。

Epic Games Launcher界面介绍

打开Epic Games Launcher,我们可以在【虚幻商城】的【免费】中每月领取限时免费的资源。
在这里插入图片描述
注意:只要是我们在虚幻引擎中下载了资源,就已经得到了资源的版权,我们就能够使用其来发布游戏。

创建工程与Visual Studio后台任务

首先我们打开【Unreal引擎】,选择【基础代码】,注意存储路径不能有中文和空格等,然后我们点击【创建项目】。在项目加载时,会自动调起Visual Studio。
在这里插入图片描述
加载完毕后,我们进入到编辑器的内部(建议采用全英文显示)。
在这里插入图片描述
然后我们点击左下角的按钮,并调整其界面宽度,如下图红色部分标识。
在这里插入图片描述
点击右上角的小图标可以查看使用教程。
在这里插入图片描述
然后我们再查看Visual Studio,如果左下角的后台任务还在加载的话,先不要开始写代码,等到其智能感知系统加载完毕之后再写。

Unreal项目文件结构

若想要使用Unreal编辑器跳转到工程文件夹的话:可以右键单击【Content】或者【C++ Classes】,选择【Show in Explorer】,然后就会打开其工程所在文件夹。
在这里插入图片描述
【<项目名>.uproject】:它是一个文本文档,我们可以用文本编辑器将其打开。
在这里插入图片描述
一般我们不需要手动编辑该文件,只有当我们的工程因为插件的问题而打不开的情况下我们才会手动编辑。当我们的工程中因为插件打不开时,使用文本编辑器将其文件打开,然后将【插件启动项】设置为【false】;或者我们删除有关插件的部分,然后再用文本编辑器打开。
我们右键工程项目,在弹出的窗口中我们发现有很多的打开方式。
在这里插入图片描述
其中,【Open】是我们可以不通过Epic Games Launcher来打开项目。

【Launch game】是我们在不打包的情况下,通过命令行的形式在引擎当中去运行游戏。运行出来的是一个全屏的窗口,也就是虚幻编辑器中的视口内容。

【Generate Visual Studio project files】是生成Visual Studio的项目文件。一般情况下,点击【Open】之后,其会自动生成文件。如果该项目是纯蓝图的话,点击就会报错。

【Switch Unreal Engine version】是切换Unreal引擎的版本,但是其仅仅是修改文本文档中的编辑器版本,而并未做到素材版本的迁移或者升级。


对于一个纯蓝图的项目来说,是没有【.vs】、【Binaries】、【Source】、【<项目名>.sln】这些文件的。对于剩下的文件:

【Config】:里面的.ini格式的文件记录的是各个配置的情况。

【Content】:它和我们虚幻编辑器中的Content是同一个部分。文件夹里面包含的【Collections】和【Developers】是引擎使用中产生的临时文件和快捷文件。然后我们打开【StarterContent】文件,里面存放的是经Unreal处理过的.uasset资源。注意:Unreal资源是向上兼容的,也就是说高版本能读低版本的资源,但是低版本资源不能读高版本资源。

【Intermediate】:里面存储的是引擎在使用中生成的一些中间件。这个是可以删除的。

【Saved】:这个里面保存的是一些自动保存、备份的文件。


对于C++的部分,这里仅介绍纯蓝图没有的文件。

【.VS】和【<项目名>.sln】是C++使用到的一些资源。【<项目名>.sln】是关于C++的解决方案的文件;【.VS】里面包含了一些智能解读、智能提示的缓存。

【Binaries】:这个一个二进制的文件,它是编辑器热加载C++类所使用的的。

【Source】:里面放着的是C++的源文件。


如果想将自己的项目打包给别人使用的话,最少要将【Config】、【Content】、【<项目名>.uproject】保留下来。

Unreal缓存数据

保管库的位置:点击【设置】,我们能够在下面看到【编辑保管库缓存位置】。我们对不再使用的项目,可以选择到保管库里面删除与之相关的缓存。

在我们电脑的C盘(安装系统的位置盘),点击【用户】,选择使用Unreal引擎的用户名,这里为【lihan123】,然后在该文件中搜索{AppData},然后点击【Local】文件,选择【UnrealEngine】,我们会发现有很多缓存数据。

这些缓存数据就是我们在虚幻编辑器中初次导入材质包所加载的缓存,以后我们无需在对原来用过的材质包进行导入。
在这里插入图片描述
这些派生数据缓存(DDC)中我们可以删除旧的不用的引擎版本,并且其是可以迁移到服务器当中的。

虚幻引擎的三级设置

虚幻引擎大致可分为三级设置:【编辑器偏好设置】、【项目设置】、【世界设置】。
【编辑器偏好设置】:在窗口菜单中点击【Edit】,然后再点击【Editor Preferences】。

在这里插入图片描述
【编辑器偏好设置】里面设置的内容与项目本身是无关的。

{语言设置}:点击【Region & Language】,在【Editor Language】后面我们能更改编辑器的语言。但是因为其汉化不完整且便于学习,还是采用英文。

{颜色设置}:点击【Appearance】下面我们能到【Colors】就能设置鼠标指向时按钮的高亮颜色。
【项目设置】:点击工具栏里面的【Settings】,选择【Project Settings】,或者也可以在窗口菜单中点击【Edit】,然后再点击【Project Settings】。
在这里插入图片描述
在这里面一般会设置项目的启动目录,游戏的启动模式、AI系统等等。


【世界设置】:点击工具栏里面的【Settings】,选择【World Settings】
在这里插入图片描述
在游戏设计中,每一个关卡都被称为一个世界。每一个世界都有其自己的独立的规则。此时,我们就可以在【世界设置】中设计相关内容。
转载请标明文章原址

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unreal4引擎开发学习日志 的相关文章

  • 2023-05-29 Unity 2进制5——Excel配置表工具

    文章目录 一 Excel 读取操作 一 打开 Excel 表 二 获取单元格信息 二 Excel 表配置工具 一 基础知识 二 配置工具 三 演示步骤 1 ExcelTool 2 BinaryMgr 一 Excel 读取操作 一 打开 Ex
  • 在Unity中进行单例的动态脚本加载

    首先调用Unity提供的注释可以在点下Play之后 在游戏真正启动前去执行一些脚本 要注意执行脚本要放在Assets Editor下 RuntimeInitializeOnLoadMethod RuntimeInitializeLoadTy
  • unity和ffmpeg修改局部视频速度

    unity版本2020 3 17 前言 最近有个功能是 在一个展馆里面 有一个摄像头旋转拍照 拍一圈 本来功能很简单 就录屏就可以了上传生成二维码就ok了 但是 需要一个视频中间快两边变慢的效果 查了很多资料 最终决定使用ffmpeg和un
  • unity制作血条

    unity制作血条 在hierarchy中create gt UI gt image 重命名为border 将血条框拖入Source Image Set Native Size 防止变形 在Canvas下create empty 命名为He
  • Unity模型导入相关知识

    文章目录 常见的模型格式 模型导入参数设置 Model页签 Scene设置 Meshes设置 Geometry设置 Rig页签 Animation Type 动画类型 Avatar化身信息设置 Animation页签 基础信息设置 动画剪辑
  • HLSL 偏导数 ddx / ddy

    HLSL ddx ddy 在光栅化的时刻 GPUs会在同一时刻并行运行很多Fragment Shader 但是并不是一个pixel一个pixel去执行的 而是将其组织在2x2的一组pixels分块中 去并行执行 偏导数就正好是计算的这一块像
  • Unity中Shader实现UI去色功能的实现思路

    文章目录 前言 一 在开发过程中 在UI中会涉及一些需要置灰UI的需求 有很多实现的方法 1 做两套纹理 通过程序控制切换 2 使用shader实现对纹理去色 二 这里主要记录用shader实现的思路 1 基础纹理的采样 2 支持组件中的调
  • unity期末作业-插针游戏

    unity期末作业 插针游戏 附下载链接 鼠标控制针的发射 圆盘可以显示接住的针数目 若两根针碰到则界面变红 游戏结束 详细情况如下动态图 点我下载 https download csdn net download weixin 43474
  • 【Unity2d】带你制作一款类似于金山打字的小游戏

    博主大概08年开始接触电脑游戏 当时玩的是我哥的电脑 那时候家里没网 只可以玩电脑上自带的单机游戏 比如扫雷 蜘蛛纸牌等等 当然还有红色警戒 冰封王座 星际争霸 帝国崛起等等 这些大概是我哥当时在大学下载的 也是那个时候对游戏充满了兴趣 记
  • 无监督和有监督算法的区别

    无监督和有监督的理解方法有很多 主要可以从以下几方面来理解 1 无监督与监督学习的区别在于一个无教学值 一个有教学值 但是 个人认为他们的区别在于无监督学习一般是采用聚簇等算法来分类不同样本 而监督学习一般是利用教学值与实际输出值产生的误差
  • 游戏引擎:打造梦幻游戏世界的秘密武器

    介绍 游戏引擎是游戏开发中不可或缺的工具 它为开发者提供了构建游戏世界所需的各种功能和工具 本文将介绍游戏引擎的概念 使用方法以及一个完整的游戏项目示例 游戏引擎的概念 游戏引擎是一种软件框架 它提供了游戏开发所需的各种功能和工具 包括图形
  • UE5学习笔记(一)——界面功能梳理&第一天知识点记录

    学习UE5的第一步 是软件安装 默认是安装好的 由于安装没有太多技术含量 所以就没有专门做记录 这里有个注意点 虚幻引擎是整合在Epic games launcher中的 也就是说开发引擎内嵌在游戏平台上 打个比方 就是如果你要下unity
  • unity制作一个可以自由滑动收缩的历史记录功能。

    公司在做一款模拟经营类的卖车游戏 需要一个简单的历史记录功能 放在左上角 记录最近20条的收入 支出记录 超过2秒不动则收起 收起时展示最近的一个消息记录 用到的组件是ScrollView 使用方法可以参考我写过的一篇博客 ScrollVi
  • 1.17 从0开始学习Unity游戏开发--场景切换

    前面的所有文章我们都在一个固定的游戏场景内进行开发 在最开始介绍场景这个概念的时候就已经提及 这个场景可以是一张地图 或者是一个对战房间等等 所以显然这个场景可以有多个 并且可以从一个场景切换到另外一个场景 那么在Unity中如何进行场景切
  • Unity中按钮检测鼠标状态

    改方法主要是用于按钮检测鼠标的进入 滑出 点击 抬起 长按 长按停止 1 先将下面这个脚本挂载到需要检测鼠标状态的按钮上 using System Collections using System Collections Generic u
  • Unity之获取游戏物体对象或组件的几个方法

    文章目录 前言 通过物体名称获取对象 GameObject Find Transform Find 通过物体标签获取对象 GameObject FindWithTag GameObject FindGameObjectWithTag Gam
  • unity3d大型互动照片墙

    1 本次应客户需求 制作一个大型照片墙互动 输出分辨率为9600 4320 注 unity3d官方推荐最大分辨率为8192 3686 4 经过现场长达24小时暴力测试中途未发生问题 姑且判定可以达到正常标准 废话不多说 先上效果 unity
  • Unity打包WebGL的优化常用操作?

    1 贴图部分优化 如果贴图格式时2048 在不影响画面效果的情况下 改成1024或者5 12 还可以缩小包体 2 压缩和解压缩问题 WebGL打包的时候分三种压缩情况 gzip 比Brotli文件打 但打包快 http和https都支持 B
  • 【转载】【Unity】WebSocket通信

    1 前言 Unity客户端常用的与服务器通信的方式有socket http webSocket 本文主要实现一个简单的WebSocket通信案例 包含客户端 服务器 实现了两端的通信以及客户端向服务器发送关闭连接请求的功能 实现上没有使用U
  • 【Unity】运行时创建曲线(贝塞尔的运用)

    Unity 运行时创建线 贝塞尔的运用 1 实现的目标 在运行状态下创建一条可以使用贝塞尔方法实时编辑的网格曲线 2 原理介绍 2 1 曲线的创建 unity建立网格曲线可以参考 Unity程序化网格体 的实现方法 主要分为顶点 三角面 U

随机推荐

  • thrift源码解析之server

    文章目录 前言 概述 TSimpleServer serve 1 listen 2 accept 3 newlyConnectedClient TNonblockingServer serve 1 registerEvents 1 赋值us
  • Java中Thread类的基本用法

    目录 一 创建线程的方式 1 继承Thread类 2 实现Runnable接口 3 匿名内部类中创建Thread子类对象 4 匿名内部类中创建Runnable子类对象 5 lambda表达式创建Runnabl子类对象 二 Thread的常见
  • netty 系列之:java 中的 base64 编码器

    简介 什么是 Base64 编码呢 在回答这个问题之前 我们需要了解一下计算机中文件的分类 对于计算机来说文件可以分为两类 一类是文本文件 一类是二进制文件 对于二进制文件来说 其内容是用二进制来表示的 对于人类是不可立马理解的 如果你尝试
  • 驱动移植学习心得

    系统移植 把操作系统 Linux 能够在芯片 板子 上运行 目标 在开发板上运行操作系统 嵌入式系统 linux 以应用为中心 把软硬件进行裁剪 适用于应用的专用计算机系统 1 交叉编译环境搭建 开发主机 编译工具 针对开发板的编译工具 a
  • C语言库编译时添加编译时间和svn版本号

    1 功能应用背景和开发思路 1 应用背景 当程序出错时 我们想要知道库的版本信息 这样有助于定位错误是哪个版本引入的 缩小排查的范围 就算程序没有出错 能知道库的版本 也方便知道程序的版本 2 思路 在编译源码时 获取svn版本和编译时间并
  • Python 中的键值(具名)参数:如何使用它们

    键值参数是 Python 的一个特性 对于从其他编程语言转到 Python 的人来说 不免看起来有些奇怪 人们在学习 Python 的时候 经常要花很长时间才能理解键值参数的各种特性 在 Python 教学中 我经常希望我能三言两语就把键值
  • 阿里巴巴达摩院通义千问【附申请链接】阿里版ChatGPT

    Welcome to Aedream同学 s blog 文章目录 报名测试 实际体验效果 阿里云作为数一数二的全球云平台 阿里的大语言模型通义千问还是值得期待的 凭借强大的算力支持还是有机会赶上人工智能发展浪潮 早前阿里巴巴达摩院关于人工智
  • Java Map 所有的值转为String类型

    可以使用 Java 8 中的 Map replaceAll 方法将所有的值转为 String 类型 Map
  • spring 事务异常org.springframework.beans.factory.support.DefaultListableBeanFactory@1b4c1d7: defining be

    事务异常错误信息 org springframework beans factory support DefaultListableBeanFactory 1b4c1d7 defining beans indexController tes
  • 浅谈对Linux中行规程(Line Discipline)的理解

    文章目录 前言 一 Line Discipline是什么 二 在输入子系统中的位置 总结 前言 学完Linux驱动程序中的输入子系统 Input System 后 又接触到行规程 Line Discipline 明明这个行规程也是用来处理输
  • Linux网络编程:Web服务器

    文章目录 一 超文本编辑语言HTML 二 HTTP超文本传输协议 1 请求和响应消息流程 myhttpd c getline函数 用于读取http协议头 2 错误 2 1 处理出错返回disconnect 2 2 错误页面展示send er
  • 【机器学习】:梯度提升决策树(GBDT)

    综述 GBDT Gradient Boosting Decision Tree 又叫 MART Multiple Additive Regression Tree 是一种迭代的决策树算法 该算法由多棵决策树组成 所有树的结论累加起来做最终答
  • 深度解读Q_D指针与Q_Q指针

    首先是Q D指针 先贴上我们的测试用例 class TEST class TESTPrivate public TESTPrivate TEST parent q ptr parent a 666 cout lt lt TESTPrivat
  • 【C++】初阶 --- 引用(超级详细版!!!)

    文章目录 一 引用的概念 二 引用的特性 1 引用在定义时必须初始化 2 一个变量可以有多个引用 3 引用一旦引用一个实体 再不能引用其他实体 三 常引用 被const 修饰的引用 1 权限的放大 2 权限的平移 3 权限的缩小 4 临时变
  • Java 字符串Base64编码和解码

    编码 String message 我是码农 String encode Base64 getEncoder encodeToString message getBytes StandardCharsets UTF 8 方式一 String
  • 线程与进程的区别

    1 一个程序至少有一个进程 一个进程至少有一个线程 2 线程的划分尺度小于进程 使得多线程程序的并发性高 3 进程在执行过程中拥有独立的内存单元 而多个线程共享内存 从而极大地提高了程序的运行效率 4 每个独立的线程有一个程序运行的入口 顺
  • 老油条表示真干不过,部门新来的00后网络安全工程师已把我卷崩溃,想离职了...

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • 在Idea中,如何在SpringBoot中使用jsp页面

    在Idea中 如何在SpringBoot中使用jsp页面 1 首先 创建一个SpringBoot工程 选择Spring Initializr 然后点击next 修改工程路径 jdk根据自己安装的具体的jdk版本进行选择 根据项目所需进行选择
  • 刷脸支付彻底解决顾客的支付安全更方便

    创业能成功 其中一项不为人知的关键就在于你无需热爱自己所做的事情 热情当然必需要有 但它可以是因为这个生意能赚钱 而不是对产品的热情 当然这是纯粹的生活选择 不过鉴于赚钱能给自己和他人带来的好处 我希望你发现光是能赚到钱就足以是一种热情 生
  • Unreal4引擎开发学习日志

    Unreal4引擎开发学习笔记1 相关说明 本游戏引擎学习日志是笔者根据网上相关教学视频所写 是对视频内容的精炼与总结 如果您认为笔者所写不清晰明确 可以访问以下链接 Unreal入门第一季 虚幻C 基础训练 虚幻4引擎介绍 虚幻4是一套为