• 注册
  • 角色模型 角色模型 关注:1645 内容:285

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

  • 查看作者
  • 打赏作者
  • 当前位置: 七日杀中文网 > 角色模型 > 正文
  • 角色模型
  • LV.4

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    前言:

    PS:这期教程是关于将.vmd转换到七日杀、生成舞蹈.unity3d的教程,如果你只是想在游戏里跳舞,下载大佬们分享的舞蹈文件.unity3d放到Mods\VRoidMod\Dances文件夹下即可!

    5分钟极速版视频教程:


    主要是关于MMD导入到七日杀里,主要是利用脚本优化了许多繁琐费时的工作

    然后自制的小工具箱插件,应该能减少一些繁琐/容易出错的操作,提高一些转换的效率:

    1. 小工具箱插件

    https://github.com/maoxig/VroidMMDTools/releases/

    更新日志见github

    或者度盘链接: https://pan.baidu.com/s/1PLHAipqHuH4iN7ckq2IEFA?pwd=u231 提取码: u231

    2. MMD4Mecanim: http://stereoarts.jp/

    (或者如果已经有PMX2FBX直接设置下路径就行)

    3. 前置VRoidMod和工程文件:https://www.nexusmods.com/7daystodie/mods/3501

    感谢以上项目,此外感谢七日杀中文网的相关大佬,本人工作基本上是在前人基础上小修小改以及整合

    关于MMD,本视频/工具仅仅是整合了一些已有的工具/思路,在转换、使用时请遵守原MMD的相关规定,尊重相关著作权。如有对二次使用者造成的损害,与本人、本工具无关。

    下面是图文教程,最后面还会有原理,或者可能出现的问题,你可以先跟着图文过一遍,如果有问题优先看原理、存在的问题,然后想办法解决,如果还是有问题可以评论区、私信反馈。

    ——————————————————————————————

    图文教程:

    0. 准备项目

    下载准备好Unity, MMD4Mecanim(可选,但是得有PMX2FBX),以及这个unity工具箱就行,转换MMD是不需要Vroid mod的工程文件的(如果有namespace报错,是因为引用了VRoid mod的工程文件的类,如果你只想转MMD而不转人物,把我工具箱报错的那俩个文件(VRoidSpringBoneAutoCreator.cs和VRoidSpringBoneSaverEditor.cs删掉就行,不过还是建议你去N网下载VRoidMod的工程文件,说不定可以顺便转人物呢)


    也就是你需要下载3个包,前面引言里面都有贴链接。导入unity包只需把.unitypackage拖进project里,如果导入时有提示按yes即可。

    1.确保这个工具箱是正常的

    导入工具箱插件之后,会在窗口上面多几个选项,主要是关注VMD Morph Camera Animator ToolVMD To Anim Converter这两个选项。

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    其中VMD To Anim Convter是单纯的vmd转anim的工具(把MMD4Mecanim重新封装优化了一下),里面也有一些配置,可以检查一下三个路径,可以检查一下配置。

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    然后点击打开VMD Morph Camera Animator Tool,进入插件主窗口。

    这里说明一下,里面提供的配置默认都是设置好的,如果不知道要不要改那就是不要改。

    2.准备MMD文件

    把要处理的MMD 动作.vmd,(镜头.vmd,表情.vmd)和音频(.mp3/.ogg/.wav)文件夹放到项目里(可以创个Workspace整洁一些)。这些资源获取的问题见评论区置顶。

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    3. 从vmd生成动画剪辑,或者使用已有的动画剪辑

    这里有两种情况,一种是只有vmd文件,就把vmd拖进去,然后点击生成动画剪辑。

    还有一种情况是已经有了animClip(比如之前已经执行过生成动画剪辑,此时可以直接用Output里面存的),因此,也提供了直接使用anim的导入选项。

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    点击从vmd生成动画剪辑之后,会在output里面生成一个anim文件,但是此时这里的anim是只包含人物运动数据的anim,因此我们在后面添加上镜头和表情。

    在生成动画剪辑时,如果出错,建议看一下原理,使用MMD4Mecanim提取出animClip,然后使用已有的animClip

    4. (可选但推荐)导入镜头vmd

    有些MMD的镜头和动作放在一个vmd里面,这时候还是拖前一个vmd就行。

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    你现在可以放心导入镜头,因为我已经在下面这个帖子里修复了很多问题,而且镜头是MMD的灵魂所在,我建议你加上。

    【VRoid补丁dll】修复VRoid舞蹈多人联机锁镜头、声音忽大忽小bug、全角色镜头 – 角色模型 – 七日杀中文网

    新版本的工具箱多了一个镜头缩放的选项,我举个例子你就知道这是干嘛的:有一些镜头vmd是针对身高1.8m的角色设计的,那么在贴脸对焦时就会对焦在1.8m,那如果角色模型只有1.6m高,那此时在游戏里,镜头就会对焦在头顶上,所以在导入vmd时要缩放一下镜头(乘上1.6/1.8=0.88)。但是我上面那个补丁支持在游戏内动态调节缩放,更加自由,所以你通常现在不需要管他了,不过我还是强烈建议你可以略微调整,使得调整后他完美适配1.6m视线高度的角色(因为这是默认的VRoidMod视线高度),这样游戏局内里面自动计算的就总是正确的,不再需要局内手动调整

    5.导入表情vmd

    通常MMD的表情和动作放在一个vmd里面,这时候还是拖前一个vmd就行,但是有一些是分开的,所以我在设计面板时拆开来了

    6.合并动画曲线、创建控制器

    预览形态键映射设置,选择你需要添加的曲线,然后点击添加到动画并创建控制器

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    这里如果创建失败,我目前已知的有些问题是如果形态键写入的太多有时候会报错,我也没找出原因,可以试试取消选择一些形态键映射。

    其实到这一步就已经可以添加音频并打包输出了,但是我们稳妥一些检查两步。


    重要:新版本(v0.0.4之后)提供了一个基于Unity Timeline(通常会自带,非常古老的unity2017.1以下可能得装一下)的一键预览按钮,只需要拖一个已有的人物模型到框内,然后点击之后可以一键预览:

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    此外要在unity内部预览镜头的话得在人物节点创建一个一定规范的镜头,我已经提供了一个脚本一键创建符合规范的镜头,允许创建脚本、点击按钮后,再点击Timeline的播放,你可以直接在game窗口直接看到运镜的效果,而不需要播放游戏,因此后面三步可以合并到一步,大大提高检查效率。

    6.5 检查步骤:音频检查(可选):


    这里建议音频不要太大,适当即可。然后我们需要检查音频和动作踩点、同步。

    情况一:动作配布里面提供了音频.mp3/.ogg/.wav通常不需要检查,直接拖进去就行;

    情况二:自己下载的音乐,我们得首先检查音乐踩点没,然后调整下音频(通常音频可能缺失/多几帧)。检查对轴可以用unity的Timeline功能,调整音频可以用其他音频工具、插件。这里说一下我的两种方法,仅供参考,也许有更好的方法:

    1. 比较简单的情况,例如很明显可以观察到音频缺失、多了多久,直接使用ffmpeg修改一下音频

    2. 比较复杂的情况,可以参考:【MMD相关】扒音轨和对轴 – 哔哩哔哩的思路。可以把配布视频扒下来(搜在线提取器),然后在Timeline里面找画面相同的那一帧,然后看音频差了多少,

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    之后简单微调一下音频即可,工具箱里提供了一个简易音频编辑器,其中用到的ffmpeg(可选)可以随便用电脑里有的就行(因为大部分音频、视频软件里面可能都塞了一个)

    7. 检查步骤:人物方向检查(可选)

    找到Output新创建的动画,预览一下,确保人物面对的方向(红色箭头)和蓝色箭头在大部分时候基本上对齐,不对齐的话可以拖动修改第一个offset(Root Transform Rotation那个)。

    如果人物的初始位置很奇怪,可以尝试改第三个Center of Mass改为original

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    8. 检查步骤:最终检查(可选)

    利用一个已有的人物检查一切正常(可以用vrm的人物预览一下),主要是关注骨架、动作、表情、镜头(可选)。要在unity内部预览镜头的话得在人物节点创建一个一定规范的镜头,我已经提供了一个脚本一键创建符合规范的镜头;

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    不过正常导出角色模型到游戏里是不需要带镜头的,我们这里只是为了在unity里面测试

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    我们把刚刚的output里面生成的controller拖到人物模型的这里,这样你点击播放play之后,角色就会动起来,可以检查镜头、表情、动作等等。

    此外,你也可以像之前那样使用Timeline检查,我比较喜欢用Timeline,因为可以同时检查音频、动作、镜头,并且不需要点击play播放就能检查(播放的话unity得等几秒,而且不能编辑修改)

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    一切无误就可以点击打包按钮打包导出了,自动打包会自动检测、重命名控制器、动画、音频,然后输出为unity3d。可以直接把打包输出路径设在VRoidMod的dances路径下,这样打开游戏就能检查是否有问题

    ————————————————————————————————————

    原理

    (个人理解,也许不对欢迎指正)

    让角色在游戏里跳舞,主要是依赖于一个human controller(和其对应的anim,并且包名、assets名都得一样)。

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    作者的指引是这样的

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    所以其实非常简单,只要有anim和controller就行。如果要搞MMD的话,MMD4Mecanim本身就能利用pmx和vmd提取出anim,只需要用这个anim创一个controller,然后把资源命名好然后打包就行了,此时已经就能够在游戏里跳舞了。
    我们后面的工具都主要是为了实现 1. 表情 2. 镜头
    表情功能应该是由勇气佬搞出来的,其原理就是在controller对应的anim添加一段曲线,指定控制模型Body下的Skinned Mesh Renderer组件,控制相关的形态键在某一帧的权重:

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    因此其实这是一个双向的过程,既需要人物模型在Body下的Skinned Mesh Renderer组件有相关的形态键,舞蹈本身又得对此做出控制调用。(因此你也能想到,如果有更多的约定规范,可以据此实现更多操作,例如涩涩)

    镜头功能应该是由-二三佬搞出来的。原理也很简单,就是平时在人物模型下挂一个平时禁用的镜头,然后舞蹈开始激活,结束时关闭,然后在动画里面写入控制镜头的曲线:

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD(开始帧)

    【VRoidMod舞蹈/图文&视频教程 /自制插件】5分钟内教会你在七日杀内跳舞蹈/MMD(结束帧)

    根据前面说的,要能有镜头,需要角色和舞蹈双向符合规范(即Camera_root/Camera_root_1/Camera下的Camera组件,路径是任意的,但这个是前人规范,我们遵守),因此只有同时满足 1. 角色在这个路径带有镜头 2. 舞蹈按照约定调用了镜头,才会激活镜头并运镜。

    (注:使用【VRoid补丁dll】修复VRoid舞蹈多人联机锁镜头、声音忽大忽小bug、全角色镜头 – 角色模型 – 七日杀中文网补丁之后,导出时角色可以不给人物添加相机,这部分我已经在补丁里做了)

    (注:如果多人下锁定队友镜头请还是看这个帖子)

    ——————————————————————————————————————————

    总之大概的方法、思路、原理应该就是这样,然后工具的代码都是开源的(除了PMX2FBX那个工具),而且逻辑还算清晰,有问题的话也可以自己试试改一改,然后有些常量可能写死在文件里没暴露出来,总之可以看看,随便改改都无所谓。在使用工具时有问题可以提,有时间我改改

    可能的问题:

    1. 有些例如GETCHAT好像嘴唇表情好像在解析时报错了,但是似乎是vmd本身或者解析库的问题,因为那个解析库是一个几年的老东西了,即使怀疑是它的问题也无能为力。最终我的解决方案是,利用MikuMikuDance嘴唇数据重新导入,然后再重新导出(相当于刷新一下),这样就能成功解析嘴唇了

    2. 有些舞蹈vmd非常依赖于提供解析的pmx模型骨骼,如果解析时报错、动作抽风、脚部手臂打结、人物飘逸飞天等等,需要更换一个更加适配的pmx模型(有些可能需要用pmxeditor改模修改骨骼适配)

    3. 如果提取出来的animClip里面,动作、表情、镜头都一切正常,但是初始位置、方向等等不正常,这通常是unity抽风,去第7步看那个面板调节那几个选项试试

    "点赞是美意,打赏是鼓励"

    LV.4
    置顶

    1. 关于资源查找,网上有很多可以集中找到资源的地方,例如模之屋、b碗、nico3d等等,只要想找都可以找到,不管是正经的还是不正经的,应该都有

    2. 打包后请勿修改包名,因为Vroid Mod会依据包名来获取包内资源,改包名会导致它找不到

    3. 这些工具总之因为受限于unity和各种各样的原因,也许功能并不全面,可以考虑使用其他工具来拓展、辅助功能实现,比如如果要动作轴对音频轴,可以使用unity的Timeline

    一边给黑心老板打工,一边在写mod

    回复
    Lv.2

    非常感谢大佬分享技术!!! [s-31]

    回复

    这个逼装的我给82分,剩下的用666的方式打给你!

    回复

    板凳!

    回复
    Lv.10



    最近又忙又懒,QQ/B站/N网同名 有问题的话在QQ群反馈

    回复
    Lv.8
    浴火重生
    草,什么大融合术,把MMDUnity和VRChats插件合为一体是吧)

    正式版了嘛?如正!

  • 没有死的勇气VRC插件老要我用Creator Companion装挺麻烦的,还得多留个版本的Unity,该下载然后换源到着色器的工程里去了(
    拉黑 1个月前 电脑端回复
  • Xenoph确实,基本上就是大融合()。因为我一开始是尝试装他那个,然后有报错很烦,他那个又很笨重,有很多感觉不需要的功能,而且好像也不更新了,我就尝试单独提出来融在了一起,只保留了最基础最精华的功能。然后把主要流程润了一下,把一些费时的操作都自动化了,现在应该没啥大问题了。 其实另外还带了几个创建角色的功能(后面发角色教程的时候顺带说),一个是自动创建动骨和碰撞组,另一个是尝试映射MMD4的shader到MToon的,不过应该也还有不少问题,不过先发出来吧,毕竟用了有反馈才能改
    拉黑 1个月前 电脑端回复
  • Xenoph现在最大的问题还是MMD镜头会抢镜头很麻烦。我现在大概有点思路,尝试做了下也许大概可能是可以的,但是还没深入研究到底可不可行,不过反正具体完整搞出来至少几周后了
    拉黑 1个月前 电脑端回复
  • Xenoph还有个小问题是PMX2FBX的转换速度,我也不太确定影响这个处理的因素是什么(但是经过观察把选项里的一些选项例如splitMesh关掉可以大大提速)但是我不知道它是怎么给pmx2fbx.exe传入配置文件.xml参数的,尝试了下几种发现都不太行,最后用了个笨办法,就是把写好的配置文件(关掉了很多选项)覆盖到pmx2fbx.exe路径里的默认文件,然后处理完再恢复配置文件,这个地方要是能知道pmx2fbx是怎么传参的就应该能提点速。但是奇怪的是我在网上没看到任何调用PMX2FBX(包括VRC工具箱,blender里用到pmx2fbx.exe的插件等),使用了.xml给他们传参,就很奇怪了。
    拉黑 1个月前 电脑端回复
  • Xenoph关于转换速度,还有个小问题是,调用pmx2fbx的提供的默认pmx模型我用的是tda的初音,因为考虑到应该能够适配绝大部分MMD,加上骨架什么的肯定是标准到无法挑剔的。不过如果能有个模型材质、mesh什么的更加简单,但是骨架什么的又很标准的pmx模型应该也能加快一点处理速度?其他的速度就基本上是unity本身的问题了(比如加载fbx,竟然要加载十多二十秒)。把这一堆问题解决了,转换一个的速度应该能压缩到2~3分钟以内
    拉黑 1个月前 电脑端回复
  • 回复

    感谢大佬的付出,赞一个!这个逼装的我给82分,剩下的用666的方式打给你!

    回复

    实在不会,能接委托吗?

  • Xenoph不接的哦 你要是有想转的可以说一下 我有时间搓一搓 或者也可以看看其他大佬
    拉黑 1个月前 电脑端回复
  • 回复

    大佬,找不到模型。

    回复
    Lv.8
    浴火重生

    草,B碗随便搞了点货试出来很整蛊的事,如果按照Alter默认工程的高度“女商人”来做角色身高的话,大部分MikuMikuDance中“怼脸特写”镜头都达不到标准高度,然后就变成了怼着脖子拍了

    MikuMikuDance里提前把镜头配布里怼脸的Y轴都至少提高1.0,才能差不多对上脑袋,但感觉最少还是得1.5到2.0

    按模特身高做模型压力最大的一集,4000帧的歌至少得动一百帧左右的镜头高度)

    正式版了嘛?如正!

  • Xenoph这个我也发现了,正在研究导入镜头vmd的时候加一个缩放的参数(类似blender的MMDTools的导入的时候的缩放),或者y轴高度什么的,也许能缓解不怼脸的问题。
    拉黑 1个月前 手机端回复
  • Xenoph不过这个缩放应该也只能缓解,因为如果在游戏里面切换成小个子角色,那这个镜头就又会怼到头顶了
    拉黑 1个月前 手机端回复
  • Xenoph我刚刚修了一版,优化了动画提取的逻辑和速度;然后还添加了导入时的镜头位移缩放。可以添加完之后直接在unity里面把controller挂到人物身上(此外还需要需要有一个MMD镜头结构),然后播放预览效果,不断调整缩放直到差不多就行了(最好微调一下就行,不然镜头位移可能会鬼畜)
    拉黑 1个月前 电脑端回复
  • 没有死的勇气 @Xenoph 身高这个肯定没法管,就算做萝莉角色MMD都得自己改配布的镜头,这种预制菜封包好了的U3D文件,想要自动按模型大小百分比缩放镜头那就是超额工作了,VRC都不带这么干的)
    拉黑 1个月前 电脑端回复
  • Xenoph @没有死的勇气 确实,不过其实也可以搞,我可以在那个dll补丁里面加一个自动缩放,从VRoidMod读取角色的EyeHeight。这样只要所有的舞蹈镜头怼脸时考虑的高度都是1.7m,那我在动态同步镜头的时候乘上一个比例就行了,这样也许能在游戏里实时兼容不同身高。但是感觉很容易出错,毕竟新功能意味着不稳定性,更何况没办法要求每个人导入MMD镜头的时候都调到相同的镜头高度比如1.7m(而且要是角色模型没调eyeheight那也白搭)。总之感觉现在已经挺好了也不用追求那么完美()
    拉黑 1个月前 电脑端回复
  • Xenoph @没有死的勇气 不过想了想,倒也可以试试。也许我可以约束一下最终乘的比例的范围为0.9~1.1,这样既能允许一定的高度微调,也不至于出了啥问题直接全崩了。不过不管怎样那是补丁要考虑的,这边应该还是照样转(只不过只能说在转的时候尽可能按照参考模型高度去调镜头高度了)
    拉黑 1个月前 电脑端回复
  • 没有死的勇气 @Xenoph 反正目前试了试基础身高的1.1倍率缩放就差不多了,虽然有些MMD场景用的从地板里向上看镜头会锁的很抽象,但要用镜头配布舞蹈了那肯定得自己在游戏里搭建场景,有地板的话视野里就不会出现一堆穿模树叶草地啥了,其他的差距就单纯看模型转换者自己设置的了
    拉黑 1个月前 电脑端回复
  • 回复
    LV.4

    @没有死的勇气

    那个地板穿透的问题还真不太好搞,我看ヒアソビ的第3005帧(unity里面是第6010帧100秒),我从mikumikudance和unity里面看,它镜头都是从这么深的地板下面穿上来。我本身是想给镜头加一个碰撞这样可能不会穿到里面,但是这种肯定没法救回来。感觉也不用管这种了,还是让他们自己搭舞台吧(或者跑虚荣之塔顶这种高层建筑跳)

    一边给黑心老板打工,一边在写mod

  • 没有死的勇气毕竟镜头配布大部分都是有对应适配场景配布的,就像vrc的跳舞房都得有个交互固定点,七日杀这样只能自己搭个场景配布,要在野外跳肯定会扫到地板上的草和垃圾模型的
    拉黑 1个月前 手机端回复
  • Xenoph @没有死的勇气 他这个是直接从远处地面下面往上看了,直接就穿模到地底了。不过问题不大,可以自己搭舞台,这点还是我们七日杀更方便。我试了下差不多搭个1~2格高的类似舞台的就差不多了
    拉黑 1个月前 电脑端回复
  • 回复

    请登录之后再进行评论

    登录
    • 大版主
    • 小版主
  • Momoka
    Momoka
    你不搬,我不搬,明天Asa就丸蛋
  • 暂没有数据

    赞助广告位

  • 点击展示图片即可一键加入QQ群
    赞助广告:100R/月 目前空缺广告位:0

    分享网站

  • 繁体中文
  • 任务
  • 动态
  • 到底部
  • 帖子间隔 侧栏位置: