本以为这个需求只是上一个需求的不重要的顺便,结果发现有重大设计失误。还是有的搞的。
方案1:用离线生成来合并(Obsoleted)
描述:
将待合并的动作的动作曲线直接放入一个动作文件中。
问题:
两个动作的时长并不一样,或者事实上玩家需要的动作播放顺序也不一样。
解决:
不能用离线的方法来解决动作合并的问题,两个部位之间的动作,很有可能并不是同时运行,也可能会有其他scale之类的变换操作。所以动作的合并,应当在实时播放时做。
方案2:在实时播放时合并
描述:
不改变动作文件本身,但是在播放时,将二者同时播放。
Unity的Animator有个看上去很美的功能叫做动画分层,然而用不了,因为唯一能修改Animator内容的类AnimatorController是在Editor空间的。所以还是得自己控制动画播放。
尝试了一下实际上倒是并不难,因为Unity的话只需要给Transform对应参数赋值就可以了。
出现的问题的记录
- 动画文件中曲线所代表的含义。这个在另一篇中记了。
- 两个动画重合部分的融合方案还没做。
运行结果
据肉眼观察,和原来的动作没有啥差别。就不截图了。