Closed neo-mashiro closed 2 years ago
hi, 不同模型的骨骼结构是不一样的,骨骼名称也是不一样的。本扩展只能用于Daz和CC3模型。
从你描述的内容看,你需要学习很多的东西,才能自己搞定这个事情。
Blender有个免费扩展,叫:Blender Animation Retargeting https://github.com/Mwni/blender-animation-retargeting
你可以尝试用这个工具转换。
需要注意的是,mmd的动作数据,有很多独特设置,直接映射骨骼名字,并不总是能完美转换。但是,在不写程序的情况下,这个方法算是比较方便的,需要学习的东西也很少。
你好,感谢耐心解答~ 我的FBX模型是niconico上用于VRChat的,骨骼结构会有些不同,不过我想应该差别不大。
好的,我试一下您说的免费插件,只要能转换成标准的FBX/DAE等类型的动画文件就可以了。
另外还想请教一下,您所说的MMD动作数据的独特设置,有什么例子吗?我只要主要骨骼的关键帧数据就好,表情之类的没有也没关系。我的代码里读到的模型骨骼名字,差不多是下面这样的,可能会和VMD的骨骼名字差别很大,您知道有什么工具可以更改动画中的骨骼名吗?我用的是自己的引擎,骨骼名只要能大致转换就可以了,少数实在无法匹配的,我可以hardcode一下字符串。
Channel Bone Name = ACover_RibbonTip_L
Channel Bone Name = ACover_RibbonTip_R
Channel Bone Name = ACover_Ribbon_L
Channel Bone Name = ACover_Ribbon_R
Channel Bone Name = CatEarTip_L
Channel Bone Name = CatEarTip_R
Channel Bone Name = CatEar_L
Channel Bone Name = CatEar_R
Channel Bone Name = Chest
Channel Bone Name = EplonRibbonLoopTip_L
Channel Bone Name = EplonRibbonLoopTip_R
Channel Bone Name = EplonRibbonLoop_L
Channel Bone Name = EplonRibbonLoop_R
Channel Bone Name = EplonRibbon_L01
Channel Bone Name = EplonRibbon_L02
Channel Bone Name = EplonRibbon_L03
Channel Bone Name = EplonRibbon_R01
Channel Bone Name = EplonRibbon_R02
Channel Bone Name = EplonRibbon_R03
Channel Bone Name = EyeTip_L
Channel Bone Name = EyeTip_R
Channel Bone Name = Eye_L
Channel Bone Name = Eye_R
Channel Bone Name = Foot_L
Channel Bone Name = Foot_R
Channel Bone Name = HairTip_FC
Channel Bone Name = HairTip_L
Channel Bone Name = HairTip_R
Channel Bone Name = HairTip_RC
Channel Bone Name = Hair_FC
Channel Bone Name = Hair_L
Channel Bone Name = Hair_R
Channel Bone Name = Hair_RC
Channel Bone Name = Hand_L
Channel Bone Name = Hand_R
Channel Bone Name = Head
Channel Bone Name = HeadTip
Channel Bone Name = Hips
Channel Bone Name = Index1_L
Channel Bone Name = Index1_R
Channel Bone Name = Index2_L
Channel Bone Name = Index2_R
Channel Bone Name = Index3_L
Channel Bone Name = Index3_R
Channel Bone Name = IndexTip_L
Channel Bone Name = IndexTip_R
Channel Bone Name = Little1_L
Channel Bone Name = Little1_R
Channel Bone Name = Little2_L
Channel Bone Name = Little2_R
Channel Bone Name = Little3_L
Channel Bone Name = Little3_R
Channel Bone Name = LittleTip_L
Channel Bone Name = LittleTip_R
Channel Bone Name = LowerArm_L
Channel Bone Name = LowerArm_R
Channel Bone Name = LowerLeg_L
Channel Bone Name = LowerLeg_R
Channel Bone Name = Middle1_L
Channel Bone Name = Middle1_R
Channel Bone Name = Middle2_L
Channel Bone Name = Middle2_R
Channel Bone Name = Middle3_L
Channel Bone Name = Middle3_R
Channel Bone Name = MiddleTip_L
Channel Bone Name = MiddleTip_R
Channel Bone Name = Neck
Channel Bone Name = NecktieTip_L
Channel Bone Name = NecktieTip_R
Channel Bone Name = Necktie_L
Channel Bone Name = Necktie_R
Channel Bone Name = Ring1_L
Channel Bone Name = Ring1_R
Channel Bone Name = Ring2_L
Channel Bone Name = Ring2_R
Channel Bone Name = Ring3_L
Channel Bone Name = Ring3_R
Channel Bone Name = RingTip_L
Channel Bone Name = RingTip_R
Channel Bone Name = Shoulder_L
Channel Bone Name = Shoulder_R
Channel Bone Name = Skirt_CL01
Channel Bone Name = Skirt_CL02
Channel Bone Name = Skirt_CL03
Channel Bone Name = Skirt_CR01
Channel Bone Name = Skirt_CR02
Channel Bone Name = Skirt_CR03
Channel Bone Name = Skirt_FL01
Channel Bone Name = Skirt_FL02
Channel Bone Name = Skirt_FL03
Channel Bone Name = Skirt_FR01
Channel Bone Name = Skirt_FR02
Channel Bone Name = Skirt_FR03
Channel Bone Name = Skirt_RL01
Channel Bone Name = Skirt_RL02
Channel Bone Name = Skirt_RL03
Channel Bone Name = Skirt_RR01
Channel Bone Name = Skirt_RR02
Channel Bone Name = Skirt_RR03
Channel Bone Name = Spine
Channel Bone Name = Tail01
Channel Bone Name = Tail02
Channel Bone Name = Tail03
Channel Bone Name = Tail04
Channel Bone Name = Tail05
Channel Bone Name = TailTip
Channel Bone Name = Thumb1_L
Channel Bone Name = Thumb1_R
Channel Bone Name = Thumb2_L
Channel Bone Name = Thumb2_R
Channel Bone Name = Thumb3_L
Channel Bone Name = Thumb3_R
Channel Bone Name = ThumbTip_L
Channel Bone Name = ThumbTip_R
Channel Bone Name = ToeTip_L
Channel Bone Name = ToeTip_R
Channel Bone Name = Toe_L
Channel Bone Name = Toe_R
Channel Bone Name = Twintail01_L
Channel Bone Name = Twintail01_R
Channel Bone Name = Twintail02_L
Channel Bone Name = Twintail02_R
Channel Bone Name = Twintail03_L
Channel Bone Name = Twintail03_R
Channel Bone Name = TwintailTip_L
Channel Bone Name = TwintailTip_R
Channel Bone Name = UpperArm_L
Channel Bone Name = UpperArm_R
Channel Bone Name = UpperLeg_L
Channel Bone Name = UpperLeg_R
mmd没有分层动画功能,所以,它会在同一个部位,添加很多个功能相同的骨骼,来模拟分层动作。
比如:center和groove骨骼
再然后,它有3个肩膀骨骼:肩,肩P,肩C。
类似这种奇特的现象非常多。因此一对一的骨骼映射,并不总是能得到完美转换。
修改骨骼名称请自行学习Blender。
另外,骨骼映射的方式,是没有表情的。
感谢解答!原来如此,看来是对模型与动画的匹配有特定要求,我再仔细研究一下,many thanks~
Sent from my iPhone
On Mar 22, 2022, at 07:19, butaixianran @.***> wrote:
mmd没有分层动画功能,所以,它会在同一个部位,添加很多个功能相同的骨骼,来模拟分层动作。
比如:center和groove骨骼
再然后,它有3个肩膀骨骼:肩,肩P,肩C。
类似这种奇特的现象非常多。因此一对一的骨骼映射,并不总是能得到完美转换。
修改骨骼名称请自行学习Blender。
— Reply to this email directly, view it on GitHubhttps://github.com/butaixianran/Blender-Vmd-Retargeting/issues/10#issuecomment-1075045873, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHCYB7WRMDKDNMGVXUBIN5TVBGUFBANCNFSM5RKKYA4Q. You are receiving this because you authored the thread.Message ID: @.***>
作者你好,我不知道Daz和CC3是什么,不过想咨询一下,这个插件是否支持将VMD转换为FBX/DAE,或者retarget到普通的FBX模型上呢?我有个FBX模型,想把Natsumi San的几个动画应用到这个模型上去,但是Assimp在C++端无法读取VMD文件,除了MMD以外目前的主流引擎Unity、虚幻和Godot都处理不了VMD,请问Blender配合这个插件可行吗?只要能把VMD动画数据bake到模型里面,再从Blender导出成glTF/DAE/FBX任何一个模式,我都可以处理。