实验笔记:从fbx到vmd的动作提取/转换导论 您所在的位置:网站首页 什么游戏动画 实验笔记:从fbx到vmd的动作提取/转换导论

实验笔记:从fbx到vmd的动作提取/转换导论

2024-06-03 10:23| 来源: 网络整理| 查看: 265

动作提取,校对时轴,格式转换,骨骼映射,模型套用——

总结下去年折磨自己的最大课题:导出游戏动作,也就是所谓的Motion Rip。

前言

-本专栏随时可能会因为众所周知的理由而消失。

-是“思路”而非“教学”,因此写的相对比较简明扼要。但如果看懂的话,可以让具有一定改模基础的人也能试着从游戏里拆动作玩。

-整个提取流程依然有大量遗留问题以及需要改善的地方,并且实践过程会相当痛苦。

-不管什么游戏,提取=非正规途径,无论最终进的是MMD、CM3D、恋活还是其他游戏的workshop,本质还是版权物。轻则被夹被封号,重则吃DMCA,如有意外,后果自负。

鸣谢

@LC_ilmlp:一起高强度摸索开荒的重炮同担。除了提取动作以外,之前视频里的表情/口型时间轴解析也是通过他的脚本才得以实现。

另外推荐各位看看这位的研究成果:

以及其对应教程,里面提到了一些关于unity资源分析&修改的技巧:

@Crabbed(Hozuki):最先进行MLTD动作提取的,在视频里多次致谢过的星月佬,在他的启发以及github上的militore工具页面的参考下,自己也摸出了CY两个游戏的提取流程。

@红白de黑白:很早就进行过各类手游动作的提取,并提供了最初fbx→bvh的思路指导,为后续的研究找到了突破口。

以及,在屑站/QQ/discord/deviantArt上交流过经验的其他研究Unity的大佬们。

在阅读之前,请先确保自己对以下内容有一定了解:

-会解包,清楚Unity游戏的Animator&AnimationClip存储方式

-会通过AssetStudio导出带动画的fbx

-改过游戏模型,熟悉MMD标准骨骼的基本结构&命名法

-能在Blender中进行骨骼动画的预览与导出,并且装好了mmd_tools插件(重要!)

-会用Blender或其他工具对动作涉及到的Armature骨骼进行批量重命名(非常重要!)

源文件的准备

首先,准备好通过AssetStudio的“Animator+Selected Animation Clips”按钮导出的带骨骼动画的模型fbx文件。

原则上适用于大部分unity游戏,不知道怎么导出的话请回去重新研究解包。

本次的范例是耳熟能详的,DD头子的胜利动作。

pfb_bdy1019_91(Animator)+ anm_res_chr1019_001(AnimationClip)

上面那个带动画,下面那个不带动画,有做过马娘改模的应该明白是什么意思。

整个流程其实很简单:

带动画的fbx文件→记录动作的bvh文件→骨骼映射改名→导出vmd(或是其他软件的格式)

第一步:fbx→bvh

导入fbx,并确保能在blender里正常预览动画:

(附注:这一步建议使用Better FBX Importer插件,导进来的Armature结构会更加清楚一点,以便后续进行参照。)

然后点开右下角①处的“规格尺寸”栏,注意到②处默认帧率是25fps(这点每个游戏不一样,比如MLTD就是60fps的动作)

众所周知,MMD的编辑帧率是30fps,计算得30/25=1.2,帧率和时间轴均放慢为1.2倍,因此在③处的“时间重映射”栏里应填上“新建/原始”为1:1.2的平方,也就是1:1.44的数值(比如100:144),也可以自行调节比例以改变速度。

改完之后,拖动关键帧栏会看到映射后的时间轴效果:

映射前映射后

时间重映射完毕后,左上角-文件-导出-Motion Capture(bvh),不建议在此时直接通过mmd_tools导出vmd文件。

动画的起始帧和结束点按照时间重映射后的帧数来定,保险起见可以稍微多一点。本来动作大概是127帧,127*1.44=182.88,那就填190帧。这个数值并不会影响最后导出的vmd的总帧数,原先映射好的动画有多少帧最后导出来的就会是多少帧。

第二步:bvh→vmd测试

新开一个blender窗口,导入刚才的bvh文件并确认能对动作正常进行预览:

接下来,在开始骨骼重命名前,最好先把模型和动作在mmd里测试下能不能套的上。

先导出bvh:左上角-文件-导出-vmd

同样,将不含动作的fbx模型导出成pmx,然后在mmd里载入模型套上动作:

(当然,会改模的就可以把动作套到改过的同游戏的模型上进行测试)

确认没问题就可以回blender给动作的骨骼批量重命名了。

如果发现mmd里没有位移或者位移幅度不对,就需要在blender里调节导出时的倍率:

调节到动作在mmd里适配模型为止,由于3D软件之间的坐标轴差异,缩放倍率一般在10的指数倍左右浮动(x1,x10,x100,x1000等),请自行进行测试&调节。

第三步:骨骼重映射

关于“如何批量重命名”,会脚本的话可以非常简便的的完成这一步:

快速提示:

如果不会脚本,可以使用带着字典式改名功能的“mmd_tools_helper”插件:

https://github.com/Hogarth-MMD/mmd_tools_helper

(安装后如果无法在blender插件界面显示的话,请确认插件&blender版本是否正确)

熟悉一遍github上的tutorial,然后对插件文件夹里的默认字典(bones_dictionary.csv和bones_fingers_dictionary.csv)进行修改以适配目标模型的改名。

建议在写字典之前,先对同游戏进行改模以熟悉该游戏各骨骼的对应位置关系,毕竟针对某个游戏写完一次之后,接下来就能一直用下去了。

以下内容为自己使用过程中的范例,仅供参考:

bones_dictionary.csv的内容,被修改过以适配马娘模型的骨骼结构

写完字典后,在blender里只要点一下即可:

另外,这个插件很贴心的提供了“在重命名完后显示骨骼名称”的功能:

确认骨骼改名无误,准备导出。

第四步:导出vmd与校正

和第二步一样,直接左上角导出vmd然后塞进mmd。

如果发现位移不对,就回blender修改导出倍率。

最后,拿去年为了修马娘和草菇动作改的重宝做下测试:

“ごちそうさまでした!!!”

——by 爱丽数码摩耶重炮

以上。

本期专栏头图:

【超特急!フルカラー特殊PP】爱丽数码 &

【すくらんぶる☆ゾーン】摩耶重炮

背景 - 特雷森学园 rip by @欧阳慕オフィシャル

使用素材版权:

ウマ娘プリティーダービー

Copyright©Cygames

本专栏里涉及到的fbx、bvh,以及导出的vmd文件:

s/1Gxbvkbzz5ijfrntvMvZw0w 

提取码:maya

最后

从改模到提动作,需要的东西到此基本写完了,想做类似尝试的也许能以这几篇专栏作为参考,自己动手,丰衣足食。

还好自己没推什么奇怪的东西,不然重炮就会被拉去跳OTAHEN而不是Orange Sapphire了。

虽然不知道未来会有什么新的想法,也不知道是否能将其实现。

但是,多做点研究总没错。

...and in that light, I find deliverance.

岸田夏海2022/1/10



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有