mardi 19 juin 2018

Bataille pour la carotte

Ma nouvelle animation, enfin !

C'est que ça n'a pas été sans mal. Il m'a fallu apprendre à modéliser et animer des personnages, utiliser la physique des tissus pour faire des vêtements, et tenter par dessus tout ça d'avoir à la fois une histoire qui se tient à peu près, un travail de composition, et une ambiance sonore, le tout dans un budget images limité histoire que le rendu puisse compléter avant les calendes grecques...

Parmi les principales difficultés rencontrées, l'animation et les vêtements, qui m'ont pris beaucoup de temps. La simulation des tissus, pour les vêtements, est particulièrement ardue, témoin ce manteau que Nounours perd dans la bataille lors de son saut : n'ayant jamais réussi à le lui faire garder, j'en ai été réduit à faire comme si c'était prévu par le scénario.

Ensuite, la musique, évidemment. Contrairement à mon animation précédente, j'ai tout fait en acoustique, avec un piano jouet, un ocarina, une flûte chinoise. et un verre heurté avec une cuillère (on fait ce qu'on peut). L'enregistrement et le montage de la musique avec Ardour était rudement intéressant, et je suis globalement satisfait de la musique, même si je pense cependant qu'elle ne colle pas assez bien avec le style de vidéo. Je pense que j'aurais fait mieux si j'avais eu sous la main un banjo et une flûte de pan (non que je sache en jouer, mais il y a toujours moyen de moyenner).

Pour les effets sonores, je me suis principalement servi chez FreeSound. Les sons sont très bons, mais c'est là que l'on se rend compte que le mixage, c'est aussi un métier. Donner l'impression que les sons appartiennent à la scène plutôt que d'être simplement rajoutés au dessus, voilà qui n'est pas évident.

Enfin, une fois qu'on a tous ces éléments, le montage est la partie facile. Je me suis même laissé aller à faire un générique de fin, qui présente les 3 personnages de l'animation en chair et en os, si l'on peut s'exprimer ainsi pour des jouets, modélisés dans Blender, et dans le film lui-même.

Et maintenant ? Peut-être un peu plus de C++, histoire de ne pas perdre la main sur l'architecture système à entités.

mercredi 13 juin 2018

Encore plus de magie ffmpeg

Je me suis plongé dans les tréfonds du Web pour comprendre s'il était possible d'enregistrer 2 sources audio dans le même fichier avec ffmpeg. Et la réponse est oui ! Alors, accrochez-vous.

D'une part, il faut enregistrer. Pour cela, il faut ajouter autant de sources que voulu avec des séries de -f pulse -i [votre source]. Pour la source, l'on peut utiliser les index que l'on retrouve avec la commande "pacmd list-sources", ou plus simplement mettre n'importe quel index et bidouiller ensuite dans pavuctrl pour sélectionner l'audio désiré. Voici donc comment j'ai pu capturer à la fois l'audio des applications (chez moi, index 16, correspondant au moniteur de mon casque) et le micro (chez moi, index 19, correspondant au micro).

Ensuite, il faut s'assurer que tous les flux, et pas seulement le premier, se retrouvent dans le fichier de sortie. Pour cela, il faut utiliser la commande "map", pour mapper les flux d'entrée (commodément décrits dans la sortie ffmpeg lorsque vous démarrez l'enregistrement). On laisse le défaut se débrouiller pour l'encodage, et l'on pousse tout ceci dans un conteneur qui sait faire du multi flux (c'est à dire, pas un bête .wav, mais du mkv par exemple).

Au final, cela donne cette commande:

ffmpeg -f pulse -i 16 -f pulse -i 19 -map 0:0 -map 1:0 output.mkv

En creusant un petit peu plus, il sera possible d'également capturer la vidéo, et d'avoir un encodage sans pertes, ce qui permettrait par exemple d'enregistrer un tutorial en étant capable par la suite de travailler le son des applications et du commentaire séparément, ce qui permet d'ajuster les niveaux, ou de faire des coupes. Je posterai la commande complète quand je l'aurai.

Blender VSE n'a pas l'air trop d'accord pour charger les différents canaux, mais Audacity semble en revanche parfaitement heureux, et devrait donc pouvoir être utilisé pour séparer les canaux dans des fichiers différents avant mixage.