经过国内外大佬的研究,以及插件、程序的开发,现在做物理其实已经非常简单,只需要点点点,然后调整固定那几个参数就行了。熟练了之后,手动做物理甚至比翻找合适的骨骼、然后再移植更快,我现在除了复杂裙子会移植以外,基本上所有的物理都是手搓的。
补充1:虽然标题写了从零开始,但是本篇文章不是面向纯小白的,希望你至少要有能独立做出一个外观mod的能力(不管好坏),并且最好知道如何移植物理。
补充2:如果你还不清楚ctc文件各自定义参数的含义,推荐你先看一下这篇文章。
- blender 3.0+(用于修改mod3文件)及其mod3插件MHW Mod3 Model Importer(如果你能用得来2.79的苟史操作的话,可以不用3.0)
- blender 2.79(用于写ctc&ccl文件)及其mod3插件、ctc&ccl插件MHW CTC & CCL Importer,以及一个便于我们操作的插件MHW Mod3 Tools
2.79的插件找不到可以在本文最后的附件中下载(英文的)。
本篇文章的内容暂时只用到了blender 3.0。
首先,你需要找一段骨骼链,随便从哪个mod3文件都可以,骨骼ID只要在150~200范围内就行,链长度最好为5,方便以后增删改查。选中后右键-分离骨骼-确定,这样我们就获得了一段骨骼链的模板。
之后进行骨骼的添加都是基于这个模板,建议直接(连同基础骨架)和一个空网格一块导出为一个模板mod3文件,以后做新mod直接用这个模板mod3文件就可以,自定义参数都可以直接沿用。
在添加物理骨骼之前,首先要确保已经有基础骨架,并且基础骨骼的位置也对应调整好了,具体怎么讲就不谈了,很多教程都有。
之后我们需要将需要加物理的顶点组重命名,ID从150开始,逐次往下命名即可。如果有的权重分的太碎,可以考虑先合并再命名。
一定要注意,由于尾骨骼的存在(尾骨骼没有物理效果,具体可以看我的补充贴),两组不同的顶点组之间要空置一个ID!比如下图人物的右侧发ID范围150-155,但实际上因为还留有一个无权重的末端骨156,所以左侧发ID应该从157开始,而不能是156。
命名完了记得画一下线,方便后续放骨骼。
先选中这段骨骼链,shift+H把多余骨骼隐藏了。然后把这段骨骼链放到对应权重的蓝绿色部分,接近链首(权重开头)的那一端,从正面和侧面分别定一下位,骨骼就放准了。
如果5个骨骼多了,就把多的右键-删除所选骨骼-确认就行了;如果少了(比如我上面实际上要用6段顶点组,7个骨骼),就选中这段链的一部分,shift+D直接复制,接着这段链排下去,最后一个尾骨骼最好要放在倒数第二个骨骼的正下方不远处。
虚线表示骨骼间的关系,很明显这时候两段链还是独立的,名字也没改好。先在骨骼属性里把骨骼名字按顺序修改,然后找到骨骼属性-关系这一栏,指定一下父级,把这两段链连在一起。
当然,如果你比较熟练,更好的一个方法是先指定子父级,再通过脚本快速命名:
首先,在编辑模式下,先左键单选你想要指定的父级骨骼,然后shift+左键框选想要指定的子级骨骼,然后按ctrl+P后选择保持偏移量,这样就能够比较快的指定父子级了。
其次,找chatGPT要一个blender脚本,功能是选中父级骨骼后,按名称数字序号依次+1命名下去。它给的脚本有时可能不太符合预期,你可以接着提示它让它修改(如果你会python那更好,自己改改就行了)。然后按照它给的使用说明来,就能够一键给骨骼链命名。
连在一起后,这一整段物理链可能依旧是独立的(或者指向了别的基础骨骼),还要把链首骨骼的父级指定到基础骨骼上,比如头发一般绑到头部004、披风绑胸部002、尾巴绑胯部013这样子。当看见虚线按照下面红箭头一样把整个链连起来了,名字也和顶点组对应上了,这段骨骼链我们就做完了。
按照顺序把所有的物理链全部弄完,像下图那样。我这里头发基本把150-200全部用完了,只是我个人比较喜欢用原生权重而已,如果你觉得太多可以把权重先进行合并,然后再加骨骼。
然后再把一些杂七杂八的东西弄完,导出mod3文件,我们就可以快进到写ctc文件了!
在写ctc文件之前,先认识一下ctc & ccl插件。
这里是常用的几个功能的意思,其他的一般用不到,CCL目前我们也不需要。
然后下面是MHW Mod3 Tools插件的样子:
只需要用到自定义属性的复制粘贴(做复杂裙子和头发很有用),不过其他的也非常有用,如果你是全程用的2.79可以自己研究一下。
此外还要讲一下,这个插件的部分自定义属性和CTC Editor的不一样,下面是一些名称的对应:
(Chains)
poseSnapping → Dampening 阻尼/非弹性
tensionDump → Elasiticity 刚度/张力/回正速度
coneOfMotion → ReduceSelfRate 迟滞程度
(Node)
isParent → FixedEnd 是否是链首/是否固定
unknownByteSet[1] → unknownByteSetTwo001 运动范围限制
unknownFloatSet[1] → UnknownFloatSet000 运动角度限制
在这之后,我们就要将重心转到ctc和ccl文件上了,请打开你的blender 2.79,接下来我们基本只需要用这个东西。
下一篇:从零开始做物理·其二——创建CTC文件并修改参数