Animation 2D pour le déconfinement

Posté par Hook le 8/5/2020 18:25:43
Salut le clan !

Petit topic pour vous présenter une série d'animation sur le sujet du déconfinement. C'est une commande de l'IREPS de Corse, le premier clip à été terminé récemment et je suis en train de terminer le second. J'avais déjà fait du motion design avec Blender mais la c'était plus complexe et j'ai du apprendre quelques trucs sur le tas. J'ai également du rester assez succinct sur certains détails car la contrainte était de réaliser ça en 3 jours et demi. (C'est pourquoi je me suis gracieusement servi sur Envato et donc la quasi totalité des dessins ne sont pas de moi).

Lien vers le premier épisode

J'ai pas mal évolué entre la première animation qui est celle ci et celle actuellement en préparation, notamment sur l'animation des personnages, et je me suis dis que ça pourrait être sympa de partager ça ici pour vous faire part des découvertes que j'ai eu pendant ces quelques jours de grosse pression

Pour les personnages dans la première animation, je suis parti sur l'export des différentes parties du personnage en image, je l'ai ensuite recomposé et j'ai crée une armature très simple.

Les mouvements du corps étaient ok, la où j'ai eu quelques limitations, c'était pour les expressions du visage. En effet, j'ai du importer la forme du visage en arrière plan et rajouter un plane par dessus avec une planche d'expressions (contenant sourcils, yeux, et tout le tralala). Pour changer de visage j'ai appliqué un modificateur UV Warp qui m'a permis de modifier les coordonnées UV grâce à un bone. Même principe pour les mains du personnage.

Mais premier problème déjà, c'était pas très précis comme méthode. Ça pouvais arriver (et vous aller surement le remarquer dans la vidéo) que les yeux soient décalés d'une expression à l'autre (normal tout était sur la même image). Et en parlant d'image, il me fallait une très grosse résolution (je suis monté des fois à 7000 * 10000) pour pouvoir faire des gros plans sans voir les pixels...
Aussi, je ne voyais pas du tout comment changer de forme de bras, ou de jambes.

Puis j'ai fait quelques découvertes en cours de route (oh les drivers bordel... ) et la pour le second personnage j'ai pu obtenir un setup carrément plus flexible.

https://pasteall.org/media/6/4/64b1a3afc3c77b38362b831ea890b19f.jpg
Donc la déjà première résolution, c'était importation des svg directement et on vire les bouillies de pixel ! L'armature du corps ne change pas trop en elle-même. Là où je me suis le plus creusé la tête par contre, c'était pour faire les slider avec les armatures pour choisir un modèle de bouche, désactiver des éléments, ce genre de truc...

On peut dire que c'est mon premier projet qui m'a vraiment fait découvrir les drivers, même si au début je voyais pas vraiment comment faire pour afficher un objet et cacher tous les autres en fonction de la position d'un bone. J'ai découvert cette fameuse case dans les propriétés du driver qui se nomme "expression" et la je me suis dis direct oula je vais pouvoir faire des bons trucs avec ça ! Et puis en essayant de coder dedans je me suis rendu compte qu'on pouvais pas faire des trucs très poussé (je réussissais pour écrire des conditions qu'à faire des ternaires...)
Et puis j'ai découvert qu'on pouvais écrire une fonction dans un texte blender en python et l'appeler directement dans cette case expression Donc la je pouvais me lacher sur les conditions (j'avais précisément besoin de vérifier si mon bone avait une position comprise entre deux chiffres).
import bpy

def myfunc(var, number):
    if var >= (number - 0.5) and var < (number + 0.5):
        return 0
    else:
        return 1
    return 1

bpy.app.driver_namespace['mydrvr'] = myfunc


Et dans expression j'avais ça:
mydrvr(var, 0)


A noté que j'ai eu quelques soucis avec les drivers qui ne marchaient plus, j'ai du coché dans Text "Register" et dans les préférence de blender dans Save and Load cocher "Auto run python scripts".

Et pour faire disparaître un modèle de bouche j'ai rien trouvé d'autre que de créer une contrainte sur l'objet en question qui s'intitule "Limit Scale" avec min et max à 0 et du coup à foutre un driver qui active ou non en fonction du résultat (ce qui a pour effet de rendre la taille de l'objet à 0 si l'influence est à 1).

Même principe pour les bras du coup ! Sauf que la c'était un peu plus le foutoir parce que j'ai du créer des bones pour chaque forme de bras différente, et pareil avec le limit scale je pouvais cacher ces bones.

J'ai continué à me servir des drivers pour contrôler des "Simple deform" sur les modèles de bouche, pour les tordre un peu dans tous les sens, ça fonctionne assez bien !

Je vais voir pour poster un blend du setup, faut que je regarde avec la licence envato si j'ai le droit de partager certains graphismes, sinon je remplacerai si ça peut en aider certains

Bon week end ++

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=5&topic_id=49910&post_id=582850