我的一段角色大招包含:起手——飞天——飞至敌人身后被刺——返回原地站位;动画序列帧全部在一段flipbook中,如何控制每一段的位置,包括角色和敌人的相对位置如何判定?
建议不要让一个 flipbook 自己“带位移”,而是把位移和节奏交给逻辑层控制,flipbook 只负责画面:
1. 把大招 flipbook 按段拆开(起手 / 飞天 / 背刺 / 返回),在 PaperZD 的 AnimSequence 里分别做成 Sequence,或者至少在每段的关键帧加 AnimNotify(如 Notify_TakeOff、Notify_Strike、Notify_Return)。
2. 位移用 Timeline 或 Level Sequence 驱动:收到 Notify 后,用 Timeline + Lerp 把角色从当前位置移到目标点。目标点不要写死,用“敌人位置 + 敌人朝向的反方向 * 偏移距离”算出背后的站位(GetActorLocation - GetActorForwardVector * 100),返回时用技能开始前缓存的原站位。
3. 节奏控制:Timeline 的时长和 flipbook 段的帧数/帧率对齐;需要停顿时用 PaperZD 的 PlayRate 或 Notify 里暂停,配合 Global Time Dilation 做顿帧。
4. 敌人的受击反应同样由 Notify_Strike 触发,这样双方时序天然同步。
如果演出比较固定,也可以直接用 Sequencer 做过场:角色和敌人都绑定进去,Transform 轨道控制位置,PaperZD 动画用 Flipbook 轨道播,最容易调节奏。