[SceneKit] Déplacer un personnage 3D

jeremyjoronjeremyjoron Membre
janvier 2023 modifié dans API communes #1

Bonjour

J'aimerais déplacer un personnage en swift avec SceneKit. J'utilise une gamePad pour déplacer le personnage. Ca fonctionne bien au début mais quand la caméra change d'orientation, le personnage ne va plus du tout dans le bon sens...

Mots clés:

Réponses

  • CéroceCéroce Membre, Modérateur
    janvier 2023 modifié #2

    Salut,

    C'est parce que le mouvement n'est pas dans le bon référentiel. Si tu convertis le vecteur de déplacement avec la matrice de projection (caméra), forcément, il va dans la direction de la caméra.
    Au départ, tu as un vecteur exprimé dans le référentiel du personnage (j'avance d'1 m devant moi), pour déplacer le perso, je dirais qu'il faut:
    Vecteur dans le référentiel du perso -> [Inverse de la matrice du perso] -> [Matrice de la scène] -> Vecteur dans le référentiel de la scène.

    À mon avis, il doit exister des méthodes pour appliquer le vecteur perso directement sur lui, SceneKit se débrouillant pour les conversions.
    Désolé mais mon SceneKit est assez rouillé!

    P.S.: Quoi qu'en dise Apple, SceneKit n'est pas très adapté aux jeux.

  • DrakenDraken Membre
    janvier 2023 modifié #3

    Pourquoi ce topic affiche systématiquement le label "Nouveau", même si on l'a déjà lu ?

Connectez-vous ou Inscrivez-vous pour répondre.