【不负责翻译】在MMD内的骨骼变形的大致解说 by BourbonHouse
※本文经@L-Seika seika桑委托所作,不保证百分之百的翻译准确,仅供参考,具体内容依然以日文原版为准。
原作者BourbonHouse的博客原地址:https://sp.ch.nicovideo.jp/babooon/blomaga/ar687396
关于对本文翻译内容玩文字游戏、钻空子,从而违反原文使用规约的行为,本人概不负责。
※非原文部分会使用灰色字色。加粗/变色与字号大小会忠实于原文。
PMXe相关名词以Emil制作的“多功能信息处理与汉化插件”中的文本为准。
对个别词的理解有一定的主观成分,欢迎评论区理性讨论。
※文章内部分知识涉及到反正大概不算高中范围的数学知识。译者还没上大学也不能一昧照搬解释稀释文章知识密度,请善用搜索引擎。
※本篇翻译文章并未获得原作者授权/知悉,仅做交流用途。如有不妥,请评论区留言告知,我会立刻进行删除。
※请勿使用本文章内任何文本/图片做个人参考以外的其他用途,包括但不限于用于汉化文本,二次上传至公共网络等。
正文
是我的模型学讲座(骨骼篇·同补充篇)的补充之类的东西。
(骨骼篇:sm20406454 补充篇:sm20439024)
骨骼篇与补充篇b站搬运:

(我可能会视情况去那边施工施工字幕 后话)
基础
关于骨骼变形,各自独立进行影响的参数,即为下图上半部分的5种8个数值。

(写给懂的人:蓝色是四元数(复数的延伸。相对于复数为二元空间,四元数为四维空间。iº=jº=kº=1, i²=j²=k²=-1.),紫色是矩阵,绿色是3D坐标)
变形顺序在更改排列顺序后,每一阶层都会由3相位来决定骨骼的状态。(v.910时点)

1、骨骼自身的位置·旋转状态的决定相位
2、由IK骨导致的Link系骨骼操作相位
3、付与骨的付与親参照·变形相位 →下一变形阶层

1、骨骼自身的位置·旋转状态的决定相位
此相位会对于同一阶层的所有骨骼,按照变形顺序进行位置与旋转的计算。

此时,该骨骼它如果有亲骨,则会先将亲骨计算完毕的参数放入自己的亲骨栏内,再计算自己的状态。
(注:原作者此处强调助词,个人认为是在强调是“该骨骼有亲骨”,而非“有骨骼将该骨骼设为亲骨”)
所有骨骼计算完毕后进入下一相位
2、由IK骨导致的Link系骨骼操作相位
在此,则会以前一相位中决定的IK骨的位置作为目标,计算IK的变形量。
接着向IK的Link & Target 骨的IK参数栏内带入计算结果,并再次计算同骨骼的状态。
全部的IK计算·Link的再次计算结束后进入下一相位
3、付与骨的付与親参照·变形相位
在第3相位,会基于付与设定,为设定了付与親的骨骼更新自己的付与参数栏。会再次计算状态。
(注:原作者此处强调助词,个人认为是在强调是“设定了付与親的骨骼”,而非“被设定为了付与親的骨骼”)

此时,如果有以自己为亲骨的骨骼系列存在,则对于从属的全部骨骼,会进行亲骨参数的更新和自身状态的再次计算。
接着迈向下一个阶层……
关于开启“物理后”按钮的处理
关于变形阶层为物理后的骨骼,会在自己与亲骨之前,将物理的结果当做插(防屏蔽)入进(进行Local换算后的)骨骼的亲子关系,并进行计算。
在MMD外的变形
在PMXEditor等内,似乎计算方法会有若干差异。
具体来说,似乎IK和付与不会作为独立的相位,而是在位置决定环节内被调出时进行处理。(按照PMX规格)
以及,关于付与,也有时会追加Local付与处理。

开启Local付与按钮(测试指付与親右侧的“L”按钮)后,付与親会把从其亲骨受到的影响,也给与付与参照元。