UE4 Skeleton Socket Rocord Tool

以下是骨骼插槽记录和还原工具的说明。

1、需求和解决的问题:

游戏开发过程中,我们需要在游戏骨骼资源上挂载自定义的插槽,便于播放特效、事件等。但由于骨骼可能随时会进行修改和重新导入,导致自定义的插槽丢失。因此为解决该问题我们做了这个工具,便于开发和项目推进。

2、解决方案:

2.1、我们开始时直接将该功能作为一个插件放入到游戏工程中,这看起来可以正常使用该功能,但由于我们游戏目前是采用发布版本的引擎,并修改了部分源码。导致必须使用源码进行编译,考虑到其他人员切换引擎的时间和效率,我们后面将该功能直接放到源码中作为引擎插件。需要使用该插件功能的美术人员使用修改后的引擎源码重新编译项目,他人员无需修改即可。

2.2、源码中修改SkeletonTreeManager的标记,使该管理器在外部可用,核心代码如下:

FSkeletonTreeManager::Get().CreateEditableSkeleton(skeleton)→AddSocket(BoneName);

3、环境搭建:

vs2017/2019、UE4源码

3.1、

(2017/2019安装器)vs_community__2000374239.1533901788.exe

(2017/2019安装选项)vs安装选项.png

UE4 Skeleton Socket Rocord Tool_第1张图片

获取vs安装工具,根据图文要求安装vs2017。

3.2、(源码自己用UE启动器自行下载)UnrealEngineCode_.zip

获取修改好的ue4源码(劝退警告:注意保留磁盘空间足够)

UE4 Skeleton Socket Rocord Tool_第2张图片

3.3、编译ue4源码,步骤如下(参考:https://blog.csdn.net/mohuak/article/details/81665967):

首先点击Setup.bat,这个需要代理才能把资源下载下来。如何设置全局代理KM有人提供了较好的解决方案。大概需要下载5g左右的文件,然后点击GenerateProjectFiles.bat,等待一两分钟后,文件内会生成UE4.sln。用vs2017/2019打开,选择DEVELOPMENT EDITOR ,然后选择UE4,并且生成解决方案。由于是第一次生成,所以耗时非常大,大概花了半个小时才部署好,接着编译,生成了UE4。

UE4 Skeleton Socket Rocord Tool_第3张图片

3.4、切换游戏工程链接到源码(这个操作第一次切换为源码模式做一次即可):

打开游戏工程目录,右键Project.uproject,选择SwitchUnrealEngineVersion...。在弹出的窗口中选择到刚才编译好的源码目录,点击OK,如下。

3.5、重新生成一次vs工程(这个操作第一次切换为源码模式做一次即可):

右键Project.uproject,选择Generate Visual Studio project files。等待一会窗口自动关闭。

3.6、重新编译游戏工程(这个操作每次使用SVN更新,有代码变更的情况下需要重新做一次,不确定是否需要重新编译的,做一次也没错)

双击Project.sln使用vs2017打开工程,等待一会加载完毕。按下图选着好,点击LocalWindowsDebugger,等待5-15分钟(视机器性能而定),如编译无问题即可正常打开游戏,有编译问题请自行百度,这里不做赘述。

备注:vs编译过程中cpu会满载、内存、磁盘使用率增高,如无其他需要请不要进行其他操作(ps、3dmax等)。

4、工具使用操作:

4.1、打开工具插件,点击RestartNow后自动重新启动引擎。步骤如下图:

UE4 Skeleton Socket Rocord Tool_第4张图片

4.2、编辑需要保存的骨骼数据表:

UE4 Skeleton Socket Rocord Tool_第5张图片

打开数据表:

UE4 Skeleton Socket Rocord Tool_第6张图片

编辑数据表:

4.3、打开插件工具:

UE4 Skeleton Socket Rocord Tool_第7张图片

4.4、选择操作的数据。例如我们要操作上面新增的骨骼数据xxx,如下图:

UE4 Skeleton Socket Rocord Tool_第8张图片

4.5、保存和读取:

保存:从编辑好的骨骼中录入数据到数据表,进行记录。

读取:从表中读取数据并生成插槽到骨骼。

UE4 Skeleton Socket Rocord Tool_第9张图片

4.6、保存和读取后,需要回到数据表和骨骼检查下是否生效了(效果参见4.2-图2,就是我测试的骨骼记录了)。


后记:这个插件记录了解决问题的思路,1、2是重要的;后面的3、4则是具体的实现了,没有参考意义。

你可能感兴趣的:(UE4 Skeleton Socket Rocord Tool)