[UE5/Spine] 如何在UE5中配置Spine插件

前言:

让我猜猜你为什么要搜索这篇教程,难道官网上没有非常详细的安装过程吗?

也许你是担心官方只提供了UE4的插件而不兼容UE5,又或许你是用的特定版本的 Spine ,比如说某 3.8.75 版本。

如果你是UE5小白(哦,我也是小白啊,那没事了),或者还没确定一定要使用UE5和Spine来开发游戏,我的建议是快跑,快去用Unity+Spine,教程多,Bug也少。

 总之,这是一篇介绍如何在UE5中配置 Spine 3.8.75 版本插件的个人教程。

官方教程(总之我先把官方教程复制一份在这里):

下载并安装虚幻引擎 4, 4.21及以上版本(直接安装UE5,兼容问题之后会解决,笔者注).

根据操作系统选择下载并安装 Visual Studio 2015 / 2017 / 2023 Community 或最新版本的 Xcode(建议安装 VS2023 ,笔者注). 如果不确定Visual Studio应安装哪一版本, 请参考该指南. 当安装和设置Visual Studio时, 请遵循指南中全新安装Visual Studio的选项(Options for a New Visual Studio Installation)一节.

在虚幻引擎编辑器中创建一个新的空的C++代码项目(如果是纯蓝图项目则需要新建一个空白的C++文件并编译,笔者注). 虽然spine-ue4运行时兼容于C++或Blueprints, 但插件需要使用C++代码项目.

克隆 spine-runtimes Git 代码库. 果你不想使用Git, 请下载最新版本ZIP压缩包并解压之(注意是选择 3.8 版本的那一个分支,笔者注).

在你的项目文件夹中, 创建一个名为Plugins的子文件夹.

将spine-runtimes/spine-ue4/Plugins/下的内容复制到项目的Plugins/文件夹中.

将spine-runtimes/spine-cpp/spine-cpp文件夹复制到项目的Plugins/SpinePlugin/Source/SpinePlugin/Public/文件夹中.

在项目的Build.cs文件中的PublicDependencyModuleNames中加入SpinePlugin.

其中的 *你的项目名称*Build.cs 文件 PublicDependencyModuleNames 参考如下:

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "SpinePlugin", "ProceduralMeshComponent" });

编译失败:

如果你按照官方教程走了一遍,那么会发现编译大概率失败(不然我为什么要写这篇教程)

以下是解决方法:

如果你使用的是 JetBrains Rider,那么你需要额外安装对于 UE5 的支持插件,在 File/Settings/Language & Frameworks/Unreal Engine 中选择 Install RiderLink in Game ,格外注意不要选择 Install RiderLink in Engine,因为目前 Rider 并不能很好地支持UE5,选择后者大概率会导致UE5无法编译,只有重装UE5(问就是被坑害过)才能正常运行。(如果安装了RiderLink报啥啥RD错误估计是Visual Studio版本的问题,建议使用VS2023)

查看你的输出窗口(就是那个哗哗跳报错信息的那个窗口),应该能够看到几个明显的报错,告诉你有哪哪几个参数的类型不对(图太糊我也没办法,太长了嘛)

报错信息

根据出错信息跳转到对应代码(双击错误信息),首先是 SSpineWidget.cpp 文件第67行,(分析原因,给我看!不想看就跳到加粗字)报错原因为编译器无法将参数从 T 类型转换到 float & 类型,这是由于在UE5中FVector(就是函数里boundsMin和boundsSize的类型)储存的是三个T泛型的变量,而非UE4中的三个浮点数,因此在 SSpineWidget.h 中修改 boundsMin 和 boundsSize 的变量类型为 FVector3f 。

编译并查看下一个报错信息,SSpineWidget.cpp 文件第199行,(分析原因)同样是类型问题,直接使用格式转换就行,修改此行(háng)为 FVector2D offset = static_cast(AllottedGeometry.AbsolutePosition); 

编译,过!但是还没有结束!虽然说插件编译通过了,但是直接导入文件仍然会存在一些问题,我们接着唠。

导入文件:

从 Spine 中导出文件,选择数据为JSON,输出取消勾选 非必要的数据 和 动画清理,纹理图集勾选 打包/附件(如果你有自己的导出需求,当我没说),选择导出。

打开导出文件夹,打开三个文件中的.json文件,在前几行中寻找"spine"关键字,后面跟着的是版本号,将版本号修改为 3.8.33 ,至于为什么要这么做,小编也很想知道,欢迎在评论区告诉我,是因为据小道消息说法,3.8.75版本被官方制裁了,只有修改成其它版本的才能够导入UE5,至于为什么一定是 3.8.33 版本,这个我是真的不知道了,我是在某一个视频下的评论看到的解决方法。

然后,嗯,就,说完了,导入文件之后跟着官方教程走吧,容我最后叠个甲。


比丘资源网 » [UE5/Spine] 如何在UE5中配置Spine插件

发表回复

提供最优质的资源集合

立即查看 了解详情