管理

由于 blender 底层问题,形态键无法添加自定义属性,同时形态键只能同时选择一个,想要批量的操作形态键顺序就无法做到同步操作,有一些插件也可以做到批量的移动操作(比如mio),但是都不是很实用,本模块设计为延迟的操作,需要首先同步形态键到表格,调整完毕顺序后再应用到 mesh 上

操作前必须刷新形态键列表
可以多选对形态键进行上下移动,字母排序,置顶置底等操作
再修改完毕后,使用最下面的应用,生效到网格上

传递

传递模块为核心功能,使用起来比较复杂,建议看我主页的视频讲解
过程为,使用源物体的形态键,通过顶点匹配,传递到目标物体上
顶点匹配有三种方法,坐标(通过当前的世界坐标),UV(通过活动 UV 层的每个点的位置),点序(每个顶点的序号)
前两种办法每个点都会按照某个半径增量,逐渐扩大搜索范围,如果找到了一个对面的顶点在范围内,就视为这两个顶点匹配上了,如果一次找到了很多个,那就取最近的那个(如果关闭点对点模式则会取平均),如果搜索了很多次还没找到,那就视为没有匹配到顶点,不会进行传递。这就是增量半径、搜索次数的意思。
使用点序搜索会直接无视这两个参数,点序传递需要这两个 mesh 的顶点数量与排序完全一致,适用于仅做了顶点位移操作的 mesh,这种传递方法速度非常快,并且是无损传递,如果能够用这种方式,请优先使用。

Blender 的形态键虽然使用了相对属性来标记,但是本质上,每个形态键依然存储的绝对位置,与基型无关。
并且 blender 现在还有比较诡异的 bug,修改基型会导致某些形态键在某些时候,或改变或不改变,导致修改基型很不安全,这种时候就应该使用一个备份物体,然后修改我们的主物体(删掉全部的键再调整)之后使用传递将备份的形态键数据传递过来(此时使用点序无损传递)

在传递边上还有一个绝对位置模式,默认关闭,因为默认情况下,本插件自动的视所有形态键都是相对于基型的,所以传递也会是计算形态键都是相对偏移。但是如果我就是想要对面形态键里面的位置,该在哪在哪,那么使用这个模式。

比如,我在上文提到的避免改基型 bug 的情况下,备份物体后修改,我的脸想要胖一点,并且这个胖想要应用在所有的形态键备份上,那就关闭绝对位置模式。如果想要就基型胖一点,其他的键都还是原来的,那就开启绝对位置模式。

在物体边上还有一个仅选中 mesh 的选项,一般用不到故按钮做的比较小,如果开启,就只会对选中的顶点进行匹配,无视没选择的顶点。

黑白名单可以对传递的形态键进行过滤,使用复制粘贴可以快速将形态键从列表提取进这个名单中。
如果想要反悔,可以使用按名单删除,他会把你刚刚处理的键全部删掉。

面板额外操作

核心功能
本功能提供了大量实用的形态键操作,给形态键制作提供了极大的发挥空间,可以乱做了
建议开启形态键锁定(开启后编辑模式下只会看见活动形态键的状况,避免误判)

全局多物体同步

最爽的一集
开启后多选物体,进行活动物体的活动键(注意是活动键)的修改,会同步到所选的所有物体,甚至开关锁定,开关编辑模式修改都会同步

注意你在修改非活动键的值时,不会同步到多物体,需要随便切换一下活动键才能刷新!!!
不要一直开着这个功能,性能没有那么好

复制粘贴键

只计算活动物体,建议打开形态键锁定使用
将当前活动形态键的顶点位置信息复制到剪切板(注意是活动形态键不是视图的最终效果)
粘贴时会覆盖活动物体的活动形态键下的位置信息(同样是活动形态键不是最终效果)

复制导出到剪切板可能会由于 windows 长度限制,可能会不全,无法粘贴的时候就可能是这个导致的
同时,虽然一些 mesh 的顶点数量一致,他们的点序不一致,传递虽然能够执行,但是效果很奇怪(比如你把 mesh 的一小部分分离出来以后,又合并回去了)

相对复制粘贴键/叠加

只计算活动物体,建议打开形态键锁定使用
相比于普通的复制粘贴,本功能才是你经常会使用的,他可以吧所有形态键视为相对形态键
叠加功能可以快速吧你复制的键直接叠到活动的状态上,很适合合成两个表情

全键归零-选中基型-删除空键

字面意思,可以快速同时操作

选择位移点

选中当前形态键中,相对于基型有位移的顶点,用来观察形变的范围是否合理
可以配合下面的清除替换来使用

清除替换

最最有用的功能
首先指定一个键(就放在选择位移点左边),这个键作为你的基础,默认是基型
选中你不想要形变的网格,使用清除/替换,这些网格的位置会被替换为你指定的键中的位置
如果是默认的基型,相当于将网格恢复到基型

更加进阶的用法是,把这个功能当做替换使用。
比如我有一个闭眼表情,一个微笑表情,我想把他们合成成一个 wink 微笑表情,这个时候直接新建一个形态键,选中嘴的区域,键指定为微笑表情,替换,然后再选择一半的眼睛,键指定为闭眼表情,他就变成了一个合成表情,并且你能操作哪些区域进行合成。

镜像对称

如果全选 mesh 使用这个功能就是翻转形态键
如果选择一半的 mesh 这个功能就是对称到另一边
可以修改轴向,以及匹配的精度

生成镜像键

这个功能可以将活动形态键自动处理生成一个翻转后的键,会进行改名
可以开关是否覆盖,是否改名(不改名就正常的. 001)

生成拆分键

本功能针对 arkit 表情特制,因为 arkit 有大量后缀 rightleft 的键
用这个功能就可以不填后缀,然后用雕刻做形态键,做完点一下自动拆两半

多物体工作流

面板中可以开启多物体工作流拓展菜单
本工作流类似 max,maya 中的形态键管理,直接将形态键拆分到多个物体上方便操作

使用时首先给物体添加空的键(可以使用 hotools 的添加预设)(如果本身有键了也可以用,复制出来的都是有键的,可以用来调整),支持多物体选中
随后生成链接集合,会直接生成在或动物体的同集合下,集合内使用空物体父级标记键名,空物体父级下是所有物体副本(所有的名称有特殊意义不要改,出问题了可以观察一下是不是有重名的导致名字也出问题了)
生成集合后会自动填入后面的集合参数,如果你有多个这样管理的对象集合,刷新之前需要手动指定这个集合
将会生成 10个一排的物体,所有的物体都会是基型+单独的一个形态键的形式,这个时候可以修改单独的形态键到你满意
调整完毕后点击从集合刷新(还是要选中原本的所有物体)刷新将会从所有集合内的物体按照规则传递到对应物体的对应形态键上,直接覆盖(注意集合内的物体修改基型是没有用的,只会看对应的键的位置)
生成的集合用完了可以直接删掉

为什么要让集合内的新物体保持有原本的基型:
为了能够正常使用 hotools 的选择位移点的功能
这个流程有什么优缺点:
优点是,不会遇到 blender 的修改基型导致的其他键坏掉的 bug,可以同时看到多种形态键的效果,利好展示,并且直观易懂。
缺点是,不是很好利用其他键的信息,并且刷新比较卡顿(100 键的 mesh 刷新需要等待数秒),这个缺点可以用 hotools 的复制粘贴键来补足,因为可以直接在集合物体里面新建其他的键存你要的东西,比较自由,也不会影响刷新的效果


拓展

删除未启用键

形态键列表下拉菜单内
字面意思

批量添加形态键

可以大量添加空的键,支持 vrm、vrc、arkit、mmd
详细的表在 ShapekeyTools\operators.py

应用形态键物体的修改器


代替 skkeeper 的操作,只有在修改器与形态键同时存在的物体的修改器顶部会显示
要注意修改器可能会导致顶点数量改变,进而导致应用失败,此时差价会报错,告诉你哪个形态键下顶点数量变化了(一般都是镜像修改器的合并导致的,把中间的点挪一挪,一定有黏一起的)