状态权重

一个状态机总体的对外输出是一个pose 状态机内部的每个状态也输出一个pose 状态机的pose是由内部状态的pose加权决定的

任何时刻,状态机内所有状态的权重和为 1

state weight 节点可以得到当前时刻相应状态的权重

状态变化引起的权重变化

状态机内部的状态会根据过渡条件,进行转移

任何时刻下,状态机内只存在一个 active 状态 所有过渡都相对于active状态而言

当过渡条件满足,active 状态立即切换到新状态

默认状态下,active的状态权重为 1 当状态发生过渡,权重从旧active状态向新active状态转移

如果过渡时间为0,立即进行权重的切换 如果过渡时间不为0,则权重进行曲线切换,引发pose的混合,使过渡更为平和

多于 2 个状态的过渡

假如状态1切换到2,过渡还没有结束,此时触发2到3的过渡,如何计算权重?

根据一些观察,可能是这样的

以 2 到 3 的过渡为准

假如 2 到 3 是时长 1s 的线性过渡,则 3 的权重在 1s 的变化是 0 0.5 1 线性变化,不受到 1 的影响

任意时刻剩余的权重,在 1 和 2 之间分配

使用

transition 连接 from 和 to 两个状态,当在 transition 中使用 state weight,只可以得到from状态的权重

state weight != 1 表示状态还没有完全混入

在 state 中使用,可以搜索到当前 abp 所有状态的权重 一般不推荐这么做,状态机也是有层次结构的,状态之间最好只关注同层次,不要越界,破坏层次性

在 conduit 中

conduit内部,无法使用 state weight

指向 conduit 的 transition, 同正常 transition,可以得到 from state 的 weight

从conduit中指出的 transition, 无法使用 state weight,因为出发的源不是一个状态,是一个 conduit