我有一个带有长动画的.dae模型.动画包括步行,跑步,击球,死亡等部分.我知道每个部分的开始和结束的帧数.我也知道每秒帧速率.因此,获取每个细分的开始和结束时间非常简单.
我可以将完整的动画作为SCNAnimationPlayer对象.我一直在尝试的是制作完整动画的副本,然后设置动画的timeOffset和持续时间.
let walkPlayer = fullPlayer.copy() as! SCNAnimationPlayer
walkPlayer.stop()
walkPlayer.animation.timeOffset = walk.offset
walkPlayer.animation.duration = walk.duration
Run Code Online (Sandbox Code Playgroud)
然后我将walkPlayer添加回Bip01节点(我从中获得了完整的动画).
我可以通过调用animationPlayer(forKey:"walk")来轻松地完成游戏.?play()
我可以很容易地改变动画的持续时间和其他方面.但是动画总是从第0帧开始.无论我放入什么值.timeOffset,它都会被忽略.
如何从SCNAnimationPlayer中的SCNAnimation的起始帧到结束帧进行播放?