关于unreal:虚幻引擎编译系统总结

【USparkle专栏】如果你深怀绝技,爱“搞点钻研”,乐于分享也博采众长,咱们期待你的退出,让智慧的火花碰撞交错,让常识的传递生生不息! 一、前言始终以来很多人都在说,空幻引擎的学习难度要比Unity大很多,其中一个起因是C++自身很难,另外一点就是因为空幻写了本人的编译系统,并且为了实现反射对C++代码进行封装,因而就算对C++根底把握的不错,也一样很难了解其中代码的意思。本文将介绍空幻引擎对编译和反射做了哪些工作,帮忙刚接触空幻引擎的开发者了解并疾速上手开发,做一篇避坑指南,本文波及到我的项目开发过程中,如何防止头文件、宏等奇怪的报错,解决常见编译问题,了解空幻引擎模块化治理代码形式,了解引擎编译和启动过程,创立插件,援用第三方库,并参考引擎代码设计,获取疾速开发技巧等等。全文大略2万字,心愿能急躁看完。 二、介绍当咱们创立一个一般的C++空我的项目时,个别的步骤是配置平台、版本后,增加代码,创立main函数入口,右键我的项目点击Build(生成)或者从新生成,或者间接点击运行,而后就能够测试本人的代码和性能了。 个别状况下,是不须要点从新生成(Rebuild)的,尤其是在应用UE4时,这项肯定要慎用,因为要等很久很久能力编译完。但除非你遇到了奇怪的编译谬误,曾经确保我之后说的那些配置正确之后还有问题,再点从新生成试一下是否胜利,这里附一张图阐明: UE4运行我的项目也是如此,但不同之处在于点击“Build”的过程。首先先剖析下UE4我的项目文件构造,不然很难了解。 上面展现的是UE4我的项目带C++的样子(不带C++的我的项目这里不再赘述):文件夹数量可能有多有少,和编译指标、插件无关,都无关紧要。 当右键我的项目点击Generate Visual Studio Project选项时(如果没有该选项,查看下Epic Games Launcher是不是须要更新),就会生成Visual Studio我的项目。Visual Studio我的项目生成之后会呈现.vs、Binaries文件夹,下面说对于Rebuild慎用,这里说一个的替换形式:删除Binaries、Intermediate和.vs文件夹,并从新点Generate Visual Studio Project,关上VS生成我的项目。这样就防止Rebuild可能造成从新编译引擎的问题了。 另外,Config文件夹下是引擎和我的项目的配置文件,肯定要小心,不要删除。Content文件夹是游戏内容资源的目录;Plugins是我的项目依赖插件目录;Saved保留我的项目的一些缓存数据,包含性能调试、命令行生成的文件、保留的游戏数据和打包Cook数据等,能够删除;Source是我的项目C++代码目录。 关上VS查看我的项目构造,别离是: Engine文件夹下蕴含引擎源码;Game下蕴含我的项目代码,包含插件;Programs文件夹下有两个重要的我的项目:UnrealBuildTool(编译工具)和UnrealHeaderTool(头文件解析工具)即UBT和UHT。 空幻引擎的代码量十分恐怖,因而须要更业余的形式治理,空幻引擎采纳模块化的形式治理代码,每个模块之前互相援用依赖,通过援用的形式递归加载对应的模块,而治理这些模块的工具就是UBT,UHT用于头文件生成解析。 应用UBT治理模块的另一个起因是为了不便跨平台,这样咱们不须要为每个平台都做对应的配置,不不便且容易出问题,对开发者不敌对。有了UBT,只须要在对应的CS文件里配置一次后就能够利用到多个平台了。跨平台的工作由UBT来替你实现。 接下来具体介绍。 应用工具以下对于代码的剖析等应用的工具环境是: Windows10UE 4.26Visual Studio 2019三、UBT(UnrealBuildTool)到目前为止大略理解了UBT是空幻引擎治理各个模块的工具,但它不会编译代码,只是负责收集模块之间的信息而后依据平台和编译指标并通知编译器进行编译。UBT源码能够在解决方案的Programs\UnrealBuildTool\下找到。 UBT采样NMake Build System,咱们能够在我的项目属性的NMake处看到相干设置,这里显示的就是当咱们右键点击Build和Rebuild,Clear事件会执行的内容,如下图: 咱们顺着它批示的门路找,而后就会找到Build.bat文件,关上后查看内容: @echo offsetlocal enabledelayedexpansionREM The %~dp0 specifier resolves to the path to the directory where this .bat is located in.REM We use this so that regardless of where the .bat file was executed from, we can change toREM directory relative to where we know the .bat is stored.pushd "%~dp0\..\..\Source"REM %1 is the game nameREM %2 is the platform nameREM %3 is the configuration nameIF EXIST ..\..\Engine\Binaries\DotNET\UnrealBuildTool.exe ( ..\..\Engine\Binaries\DotNET\UnrealBuildTool.exe %* popd REM Ignore exit codes of 2 ("ECompilationResult.UpToDate") from UBT; it's not a failure. if "!ERRORLEVEL!"=="2" ( EXIT /B 0 ) EXIT /B !ERRORLEVEL!) ELSE ( ECHO UnrealBuildTool.exe not found in ..\..\Engine\Binaries\DotNET\UnrealBuildTool.exe popd EXIT /B 999)发现实质就是运行UnrealBuildTool.exe,换句话说就是给UnrealBuildTool传递配置参数并运行UnrealBuildTool.exe。 ...

August 31, 2023 · 4 min · jiezi

关于unreal:版本控制-如何使用虚幻引擎的多用户编辑MUE功能

随着古代虚构制作技术的倒退,电影制片厂不再须要齐全依赖理论场景,而是能够在拍摄期间就让虚构制作设计团队将实景与计算机生成的虚构内容交融在一起。空幻多用户编辑(Unreal Multi-User Editing,简称MUE)能够帮忙简化这个过程。本篇文章将解释什么是空幻多用户编辑,它的劣势,以及装置和设置办法。 什么是空幻多用户编辑?空幻多用户编辑是一种开发者工具,能够让多个用户可能实时在同一个资产上进行合作。 空幻多用户编辑的用处是什么?最后,空幻多用户编辑是为大型虚构电影和电视制作团队开发的,用于设计、构建和渲染实时拍摄所需的虚拟世界。 当初,空幻多用户编辑曾经被很多其余行业所采纳,例如像游戏开发这种多个开发人员须要同时解决同一个美术、游戏资产的行业。 空幻多用户编辑的劣势空幻多用户编辑的长处包含: 缩小迭代工夫;即时获取无关更改的反馈意见;增强合作。如何设置和装置空幻多用户编辑以下是设置和装置空幻多用户编辑的步骤。 启用插件在“设置”菜单中找到“插件”按钮,而后搜寻“多用户” 。(留神:启用多用户插件须要重启空幻编辑器。) 可选步骤——设置工具栏 如果您心愿拜访工具栏,您还能够批改我的项目设置以启用“多用户编辑工具栏”按钮。(留神:这也须要你重启空幻编辑器。) 可选步骤——设置头像 一旦您启用了多用户插件,就能够设置头像显示名称和色彩。尽管这是一个可选步骤,但它能够让其余用户更容易在界面中更快地认出您。 设置UDP音讯地址在开发者工具设置中找到UDP音讯地址。对于单播端点(Unicast Endpoint),请增加以后工作站的本地IP地址。 (留神:如果您不晓得您的IP地址,能够在cmd窗口中应用ipconfig命令查找。) 如果要托管多用户服务器,请关上“UDP消息传递”局部的“高级”选项卡,而后在“动态端点表”中输出其余用户的IP地址,后跟冒号和多用户会话用于通信的端口号6666。 须要留神的是,这些是外部IP地址,所有计算机都须要在同一局域网(LAN)网络上。否则,您须要设置一个自定义的公有VPN服务器,以便计算机能够像在LAN上一样发现彼此。 如何应用空幻多用户编辑设置实现后,您将可能通过单击上方栏中的按钮来拜访多用户浏览器,也能够从“工具”菜单中拜访。 一旦您关上多用户浏览器,它会尝试查找其余服务器上正在进行的已凋谢会话。如果有其他人正在主持您打算退出的会话,您能够疾速退出并开始合作。 如果没有可用的会话,空幻编辑器会为你提供一个按钮来启动您本人的服务器,该服务器将在一个独自的终端窗口中关上。 当您启动本人的服务器时,零碎将提醒您创立一个新的会话,或重新加入零碎中可用的旧会话。 然而,建议您不要应用旧会话,因为每个会话代表一个独立的多用户编辑工夫框架。相同,您应该为每个新合作开始一个新的会话。 最佳实际是在实现合作后敞开会话,并将更改提交回您的Perforce Helix Core服务器。 当您创立一个新的会话时,其他人能够退出并开始进行编辑。每次编辑都将被记录下来,并显示: 编辑产生的工夫;进行编辑的用户;编辑内容是什么。此外,还会分享一个简短的主动摘要,介绍事件的状况。 当其余用户退出您的会话时,您将能够拜访“状态”列中的几个按钮。 按钮图标1(地位)——能够间接跳转到用户的地位,使您的相机视图对齐。按钮图标2(暗藏)——能够暗藏视口中的用户图标,以防用户头像扩散注意力。 多用户编辑还在Sequencer窗口的工具栏中增加了三个新按钮,显示为橙色,从左到右别离是: 按钮图标1(多用户播放同步)——同步用户之间的时间轴滚动。按钮图标2(多用户不相干的工夫线同步)——在接管到任何其余用户的工夫同步时,将同步播放和滚动Sequencer窗口的时间轴。按钮图标3(多用户近程关上)——为所有用户关上雷同序列的Sequencer窗口和序列。 在解决某些资源时,您能够锁定资产,以避免其余用户同时编辑同一资源。锁定的资源将显示为一个锁定图标,示意该资产以后正在被编辑。一旦保留编辑,资产将被解锁。 用户可能实时查看大多数的编辑。然而,对于某些资产,例如对单个材质资产的更改,可能须要保留后才对其余用户可见。 当编辑更改保留后,其余用户可能会被提醒保留他们以后的工作。这样做将导致关卡资产从文件中从新加载,以获取最新的更改。 在会话完结时,您须要将您的订正保留到版本控制库。为此,请转到“源代码治理”菜单并抉择“保留会话更改”。这会将更改提交到版本控制系统。 入门:空幻多用户编辑立刻开始应用Perforce Helix Core进行空幻多用户编辑吧!Perforce Helix Core被认为是媒体和娱乐行业中版本控制的行业标准,并受到寰球顶尖虚构制片团队的信赖。 Perforce Helix Core最多可供五个用户收费应用。 文章起源:https://bit.ly/41ND4Yv

May 4, 2023 · 1 min · jiezi