J'essaye d'animer des parties spécifiques d'un objet SCNScene dans SceneKit (dans mon cas, je veux animer les doigts d'une main). J'importe le fichier .dae (COLLADA) facilement à partir de Blender avec les os respectifs pour générer l'articulation sur le modèle.Comment créer une animation générée par l'utilisateur dans SceneKit avec le fichier .dae (COLLADA) de Blender
override func viewDidLoad() {
super.viewDidLoad()
var scene = SCNScene(named: "hand.dae")!
sceneView.scene = scene
sceneView.allowsCameraControl = true
sceneView.autoenablesDefaultLighting = true
sceneView.backgroundColor = UIColor.lightGrayColor()
}
Mon but est d'animer les os sur iOS avec des valeurs générées par l'utilisateur entre 0 et 1. Imaginez un UISlider où vous faites défiler en arrière et voir le mouvement de doigt spécifique en fonction de la valeur du curseur.
Ceci est nécessaire capture d'écran d'animation
Image with the animation pretended
J'ai Animer essayé le modèle en appelant un fichier d'animation comme l'exemple Fox Apple:
private var indexFingerAnimation: CAAnimation!
indexFingerAnimation = CAAnimation.animationWithSceneNamed(“move_index_finger.dae”)
indexFingerAnimation = false
indexFingerAnimation = 0.3
indexFingerAnimation = 0.3
indexFingerAnimation = Float.infinity
Le problème est que est une animation globale au lieu de seulement l'index. En outre, il s'agit toujours d'une animation «prédéfinie» au lieu d'une animation contrôlée par l'utilisateur. En fin de compte, je veux mélanger des animations (par exemple déplacer l'index et le pouce en même temps révélant des gestes)
Est-ce possible? Je me bats parce que je n'arrive pas à comprendre comment manipuler des parties spécifiques du maillage. Je commence à étudier MetalKit mais ce n'est pas clair pour moi c'est la solution.
Toute aide serait vraiment appréciée.
Que voulez-vous dire par " Global "animation? Voulez-vous dire qu'il cible tous les doigts au lieu d'un seul? Je ne connais pas Blender mais il devrait être possible d'exporter une animation qui ne cible que les os d'un doigt donné. Sinon, vous pouvez traiter vos animations (en utilisant les API CA) pour filtrer celles que vous souhaitez conserver. Ensuite, si vous voulez "chercher" dans vos animations, essayez de mettre la vitesse à 0 et rajoutez vos animations après avoir changé leur beginTime. – Toyos
Merci Toyos. "Global" signifie que je ne peux animer qu'une "animation exportée" à la fois. Mon défi est de déplacer, en même temps, l'index et le pouce (ou tout autre doigt) et je n'arrive pas à comprendre comment le faire. Puis-je animer un os individuellement? Comment devrais-je faire ça? – Joao