一、概述
在虚幻引擎的更新中,版本为5的虚幻引擎和版本为4的虚幻引擎所使用的虚幻引擎不一样,导致AirSim无法再UE5中使用,另外的原因是微软没有持续对AirSim进行更新,在github上面目前的项目不支持UE5。后续依旧有人对AirSim项目进行维护,其链接如下。
https://github.com/CodexLabsLLC/Colosseum/tree/mainhttps://github.com/CodexLabsLLC/Colosseum/tree/main 这个版本的项目更新了原本的引擎,因而可以UE5中使用。因为我使用的是UE5.3,所以接下来将会说明其在UE5.3下面如何进行配置。
二、具体过程
(一)版本
虚幻引擎版本为UE5.3,visual studio版本为2022,Windows版本为11。
下面将进行过程的详细过程,过程稍微有些繁琐。
(二)操作过程
1.编译main版本的
(1)概述
如上图所示,这个版本是进入链接之后的默认版本,但是更多是针对UE5.4版本的,对UE5.3版本不太友好,但改改还是可以运行的,但是会出现这样的问题,其运行结果效果如下面所示。
导致上面这幅图出现的原因是因为下面这些都是UE5.4下面的,无法在UE5.3中加载。
但是这个版本依旧是可以编译通过的。
(2)编译过程
首先需要用管理员权限进入如图所示的这个。通过终端进入我们刚才下载的文件夹内部,注意要是管理员权限。
进入下载完成的文件夹,在终端中输入下面的命令,即可开始进行编译。
build.cmd
这个过程可能会报错,如图所示。
其问题出现在某个需要参与编译的文件夹无法通过网络进行下载,如图所示,是这个文件夹出现了问题,进入之后会发现,里面都是空的。
问题不大,我们可以直接在网络上下载,链接如下。
GitHub - Panics/Colosseum_EigenContribute to Panics/Colosseum_Eigen development by creating an account on GitHub.https://github.com/Panics/Colosseum_Eigen
将下载的文件夹内容放进去即可,重新运行build.cmd之后,会发现编译正常通过。
(3)与UE5联合
如图所示,在上面一步编译完成之后,进入这个文件夹内部。
启动BlockV2.sln文件,进入visual studio 2022中,重新进行编译即可。因为这个版本是UE5.4,生成项目会报错,解决方法是将Source下面两个.cs文件进行修改即可,如图所示。
其中BlockV2.Target.cs文件修改后如下。
// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.Collections.Generic;
public class BlocksV2Target : TargetRules
{
public BlocksV2Target(TargetInfo Target) : base(Target)
{
Type = TargetType.Game;
DefaultBuildSettings = BuildSettingsVersion.V4;
IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_3;
ExtraModuleNames.Add("BlocksV2");
}
}
BlockV2Editor.Target.cs文件修改后如下。
// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.Collections.Generic;
public class BlocksV2EditorTarget : TargetRules
{
public BlocksV2EditorTarget( TargetInfo Target) : base(Target)
{
Type = TargetType.Editor;
DefaultBuildSettings = BuildSettingsVersion.V4;
IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_3;
ExtraModuleNames.Add("BlocksV2");
}
}
有点将其强制降低版本的意思。这样后,出现编译则不会出现报错。
(4)问题1
因为这个项目的针对UE5.4的,即使强制修改文件使其可以通过UE5.3的编译,当运行UE5.3时候,如图所示,提示我们地图的版本太新了,无法加载。
之后如图所示, UE5.3会崩溃。
这个问题比较好解决,可以参考如下的方式解决,只需要找到默认的地图设置地方,将地图更改为可以使用的地图即可。
找到Config文件夹。
在Config文件夹中找到DefaultEngine.ini文件夹,打开它。
将最开始两行关于默认地图的设置和游戏模型的设置进行更改即可。
更改为下面这样,即可正常显示地图。
GameDefaultMap=/Engine/Maps/Templates/OpenWorld
GlobalDefaultGameMode=/Script/AirSim.AirSimGameMode
(5)问题2
问题1仅仅是第一个问题,第二个问题是因为,其原本的相机由于版本太高导入不进UE5.3里面去,会导致这样的问题出现。
这个是由于相机模型没有被创建导致的, 注意问题在如图所示红线划出的这个文件当中。
出现问题的地方有两处,原因都是因为空指针的问题,第一处如下所示。
ASimModeBase::initializeCameraDirector
如图所示,由于这里CameraDirector是个空指针,所以会因为给空指针幅值导致报错发生。
另外还有一处跟这个一样的错误。
在函数中
ASimModeBase::setupVehiclesAndCamera
解决方法比较简单,加上对指针是否为空的判断即可,即添加下这句代码,问题即可解决。
if (CameraDirector)
这里可以需要注意,以后需要特别注意对空指针的处理。
(6)效果
但运行出来的效果如下所示。
试过将低版本的蓝图放进去,但是没啥作用。因而放弃。
2.编译ue5.3
(1)概述
后来在网站上面发现,人家原本就有关于UE5.3的版本,如图所示。
链接如下,当初没有发现这个。
(2)编译过程
跟main版本的编译过程一样,也是运行build.cmd这个文件,没有什么特别的,这里不再过多描述了。
(3)与UE5联合
与上面类似,如图所示。在visual studio 2022里面编译Block.sln这个项目。
假如发生报错,其原因出在插件下面的AirLib文件夹下面,如图所示。
解决方法是,因为main版本的没有问题,将其复制过来放到这里即可,也不需要额外的功夫。再次编译即可通过,也可以正常运行,问题解决。
(4)效果展示
如图所示,一切正常。