角色姿态层可以表示对基础姿态的偏移,也可以表示朝目标姿态混合。两种层使用不同含义,把它们交换顺序往往会改变结果。
本篇用一组独立输入把规则展开为可重复核对的记录。先确认单位、编号及边界,再自行尝试推演,然后寻找与下面过程第一次不同的位置。所有结果只在这里写明的规则下成立,不能当作所有游戏的统一实现。
规则与输入
只计算一个虚构姿态数值。两个偏移分别乘各自权重后相加;覆盖层按自身权重在当前值与目标值之间混合。比较先加偏移再覆盖,与先覆盖再加相同偏移,两种结果均不做角度回绕或限幅。
[[20, [-3, -12], ['1', '1'], -24, '1'], [-7, [4, 1], ['1', '0'], 29, '1/2'], [17, [7, -2], ['1/2', '1/4'], 8, '1'], [14, [-14, -12], ['1/4', '1/2'], 6, '3/4'], [-15, [10, 11], ['0', '0'], 0, '0'], [26, [-8, 6], ['1/2', '1/4'], 6, '0'], [8, [5, -10], ['1/4', '1'], 29, '1/4'], [-10, [-9, 15], ['0', '1/2'], -2, '1'], [1, [12, -2], ['0', '1/2'], -6, '0'], [14, [2, -10], ['1/4', '1'], -1, '1/4'], [0, [-6, -4], ['1/2', '1/4'], 11, '1/2'], [-17, [10, -2], ['1/4', '0'], 25, '0']]
逐步推演
基础20,偏移[-3, -12]及权重['1', '1'],合计偏移-15;目标-24、覆盖权重1,先偏移得-24,后偏移得-39,后者减前者-15。
基础-7,偏移[4, 1]及权重['1', '0'],合计偏移4;目标29、覆盖权重1/2,先偏移得13,后偏移得15,后者减前者2。
基础17,偏移[7, -2]及权重['1/2', '1/4'],合计偏移3;目标8、覆盖权重1,先偏移得8,后偏移得11,后者减前者3。
基础14,偏移[-14, -12]及权重['1/4', '1/2'],合计偏移-19/2;目标6、覆盖权重3/4,先偏移得45/8,后偏移得-3/2,后者减前者-57/8。
基础-15,偏移[10, 11]及权重['0', '0'],合计偏移0;目标0、覆盖权重0,先偏移得-15,后偏移得-15,后者减前者0。
基础26,偏移[-8, 6]及权重['1/2', '1/4'],合计偏移-5/2;目标6、覆盖权重0,先偏移得47/2,后偏移得47/2,后者减前者0。
基础8,偏移[5, -10]及权重['1/4', '1'],合计偏移-35/4;目标29、覆盖权重1/4,先偏移得107/16,后偏移得9/2,后者减前者-35/16。
基础-10,偏移[-9, 15]及权重['0', '1/2'],合计偏移15/2;目标-2、覆盖权重1,先偏移得-2,后偏移得11/2,后者减前者15/2。
基础1,偏移[12, -2]及权重['0', '1/2'],合计偏移-1;目标-6、覆盖权重0,先偏移得0,后偏移得0,后者减前者0。
基础14,偏移[2, -10]及权重['1/4', '1'],合计偏移-19/2;目标-1、覆盖权重1/4,先偏移得25/8,后偏移得3/4,后者减前者-19/8。
基础0,偏移[-6, -4]及权重['1/2', '1/4'],合计偏移-4;目标11、覆盖权重1/2,先偏移得7/2,后偏移得3/2,后者减前者-2。
基础-17,偏移[10, -2]及权重['1/4', '0'],合计偏移5/2;目标25、覆盖权重0,先偏移得-29/2,后偏移得-29/2,后者减前者0。
十二组分别说明偏移含义和覆盖含义;差异由覆盖层对先前偏移的缩减产生。
怎样独立检查
展开两个顺序的表达式,先覆盖再加偏移的结果减去另一结果,应等于覆盖权重乘总偏移。覆盖权重为零或总偏移为零时两者相同,可作为边界检查。
这里的数值只是教学用姿态通道,不直接模拟三维骨骼旋转。多轴旋转可能还涉及表示方法和旋转顺序,不能把本例的一维结论照搬成完整动画系统。先弄清某层存的是绝对目标还是相对偏移。
练习时先保存原始输入及中间结果,再只改变一个条件观察差异。重点检查空状态、相同数值、恰好到达边界和最后一步。不要为了凑出相同的最终结果而忽略较早出现的偏差,过程和结论都应能由同一套规则解释。
