0
加速度計データを使用してボディの向きをシミュレートしようとしていますが、滑らかなアニメーションを得るのが難しいです。OS XでSceneKitを使用したスムーズアニメーション
私は、加速度計データの大きなファイルを持っており、加速度計データから計算されたピッチとロールの値を使って向きをアニメートしたいと考えています。データは一定の時間間隔でサンプリングされ、80msと640msの間で変化する可能性のあるサンプル時間にduration =を設定することで、それを近似できるとわかりました。
以下のコードは機能していないように見えますが、再生時間を変更すると、新しい方向へのトランジションをアニメーション化するのに時間がかかりません。
身体の向きの変化をアニメーション化し、シミュレーション速度を実際の時間またはその倍数に近似するように調整することは正しいでしょうか? SceneKit暗黙的なアニメーションのため
func animate(scan: ScanData) {
if let accel = scan.next() {
let orientation = accel.orientation
let start = scan.startTimeString
let time = StringFromDate(scan.dateFromTime(orientation.ms)!)
let pitch = Double(DegreesToRadians(0.0))
let yaw = Double(DegreesToRadians(CGFloat(orientation.roll)))
let roll = Double(DegreesToRadians(CGFloat(orientation.pitch)))
CATransaction.begin()
CATransaction.setCompletionBlock({
animate(scan)
})
bodyNode.eulerAngles = SCNVector3(pitch, yaw, roll)
CATransaction.setAnimationDuration(0.16)
CATransaction.commit()
} else {
print("No more data")
return
}
}