簡體   English   中英

如何在SceneKit中反轉動畫?

[英]How can I reverse an animation in SceneKit?

我正在使用Fox 2示例來學習如何在SceneKit使用動畫功能(您可以在以下位置找到它https://developer.apple.com/videos/play/wwdc2017/604/和此處https://developer.apple .com / library / content / samplecode / scenekit-2017 / Introduction / Intro.html ),我有一個問題:

如何反轉動畫?

我搜索了官方文檔(非常差)並在線搜索,但似乎沒有內置功能可以反轉動畫。

我發現了三個有趣的參數:

  • .autoreverses :“為true時,對象在向前播放后向后播放。默認為NO”
  • .fillsBackward :“為true時,動畫在其有效持續時間之前處於活動狀態,並評估為其開始值。默認為NO”
  • .fillsForward :“為true時,動畫在其激活持續時間后仍保持激活狀態,並評估為其最終值。默認值為NO”

問題是第一個參數沒有執行我想要的操作,而當我使用其他兩個參數時,什么也沒發生:

這就是我使用這些參數的方式:

  • 我在角色模型中加載動畫的位置

     let spinAnimation = Character.loadAnimation(fromSceneNamed: "Art.scnassets/character/max_spin.scn") spinAnimation.animation.isRemovedOnCompletion = false spinAnimation.speed = 1.5 spinAnimation.stop() model!.addAnimationPlayer(spinAnimation, forKey: "spin") 
  • 我在哪里創建角色並開始動畫

     character2 = Character.init(scene: scnScene!) character2?.model.position = SCNVector3(x: 0.15, y: -0.3, z: 0) scnScene!.rootNode.addChildNode(character2!.node!) character2?.model.animationPlayer(forKey: "spin")?.animation.fillsForward = true //or fillsBackward or autoreverses character2?.model.animationPlayer(forKey: "spin")?.play() 

我是否誤解了.fillsBackward.fillsForward 是否有SceneKit的詳盡且更新的文檔?

由於問題得以解決,因此我不知道如何結束此問題:要反轉SceneKit中的動畫,只需將速度設置為負值(例如:-1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM