C’est sans doute l’un des plugins pour OBS Studio les plus puissants qui existe. Advanced Scene Switcher permet de presque tout automatiser dans OBS. On peut par exemple : afficher la caméra uniquement quand on parle et la masquer quand le micro est coupé, changer automatiquement de catégorie sur Twitch quand on change de jeu, afficher ou masquer une source au bout d’un certain temps, ou carrément scanner une zone précise dans une scène afin de faire réagir la caméra à la barre de vie en jeu.
Installer le plugin
Sur la page GitHub du plugin, section Releases, on peut prendre la dernière version du plugin et choisir une version correspondant à notre système d’exploitation. Dans mon cas, je vais choisir l’installeur pour Windows. Une fois téléchargé, il faudra simplement l’exécuter et suivre le processus d’installation. Ensuite, au redémarrage d’OBS, dans le menu Outils, on trouvera l’option Advanced Scene Switcher qui permet d’accéder à l’interface du plugin.
Principe général
Le plugin peut paraître compliqué au début, mais il suit une logique vraiment très simple. En gros c’est comme la base de la programmation informatique : si j’ai ça, alors je fais ça. On va donc demander à OBS d’effectuer une action si une condition est remplie, ou si elle n’est pas remplie, ou si plusieurs conditions sont remplies… Les options sont nombreuses.
Sur l’interface du plugin, on peut créer une nouvelle macro en cliquant sur le bouton « + » dans la colonne de gauche, lui donner un nom et commencer à programmer en remplissant la zone de condition (1), puis la zone d’action (2).
Exemple 1
- Si, la Date, est le Lundi, À, 12:06:00
- Et, que le Stream, est en cours
- Alors je vais faire une action sur Twitch, sur ma chaîne TomTom, et Définir le titre du Stream, sur « C’est l’heure de Catherine »
Donc si jamais OBS est lancé et que je suis en stream, si on est lundi et qu’il est 12:06, le titre de mon stream sera modifié automatiquement. Avec au passage une petite blague pour ceux qui ont un peu de culture ou qui ont joué à Civilization 6.
Exemple 2
- Si, une Transition est déclenchée, par le passage, sur la Scène de pause
- Et, que le Stream, est en cours
- Alors, concernant l’Audio, il y aura une mise en sourdine, de l’entrée Mic/Aux.
Autrement dit, dès que je passerai sur la scène de pause, le micro sera mute automatiquement. On est toujours sur la même logique. Si la condition est remplie, alors l’action est effectuée.
Exemple du wiki
Prenons un dernier exemple simple pour bien comprendre les possibilités et la puissance d’Advanced Scene Switcher. Sur le wiki du plugin, on trouve plein de tutos rapides. Par exemple, il y en a un qui montre comment faire pour que la caméra apparaissent automatiquement quand on parle dans le micro et disparaisse automatiquement quand on ne parle pas :
- On a une 1re macro pour afficher la cam avec les réglages suivants :
- Si, le Niveau de sortie, du Micro, est Supérieur à, -70 dB
- Alors, dans la Scène en cours, on va Afficher, le Groupe Cam
- 2. Et on a une 2e macro pour masquer la cam, avec ces réglages :
- Si, le Niveau de sortie, du Micro, est Inférieur à, -70 dB
- Alors, dans la Scène en cours, on va Masquer, le Groupe Cam
Si je ne parle pas, la cam n’est pas affichée dans ma scène, et si je commence à parler, le volume de mon micro est détecté et la cam est affichée. Après on peut simplement ajouter une transition d’affichage et une transition de masquage sur la cam pour obtenir un effet encore plus sympathique. Dès lors qu’on configuré les macros, on peut ensuite passer un peu de temps sur la personnalisation.
Idée de cam réactive
Je me suis creusé la tête pour trouver un effet sympa et original, quelque chose qui sortirait de l’ordinaire, et j’ai finalement pensé à la chose suivante : faire réagir ma webcam en fonction de la barre de vie de mon perso. Ou dans cet exemple précis, en fonction de la barre de bouclier puisque, pour des raisons de simplification, j’ai fait mes tests sur Fortnite. C’est possible aussi qu’il existe d’autres façons de faire, notamment avec des logiciels comme Overwolf, mais j’ai préféré me focaliser sur le plugin Advanced Scene Switcher car il permet de faire énormément d’autres choses et est vraiment très puissant.
Pour réaliser mon effet, j’ai eu besoin de :
- plugin Advanced Scene Switcher (lol)
- plugin Move
- plugin OBS Shaderfilter
- un cadre de webcam
Pour l’exemple, j’ai simplement pris le cadre animé dispo dans le pack de stream Zero Absolu Gaming qu’on peut acheter chez Own3d (lien affilié, 55% de réduction avec le code TOMTOM).
Mise en place
Pour la mise en place de la scène et afin d’obtenir l’effet de cam réactive, voilà comment j’ai procédé :
- J’ai ajouté ma webcam avec une source Périphérique de capture vidéo, sachant qu’on peut utiliser une scène imbriquée à la place, peu importe, l’important c’est d’avoir la cam au final.
- J’ai ajouté mon cadre de webcam via une source Média. Mon cadre est bleu à la base, ça tombe bien c’est pile la couleur de la barre de shield.
- J’ai dupliqué mon cadre et, pour avoir une autre couleur, en l’occurrence le vert de la barre de vie classique, j’ai simplement ajouté un filtre de Correction des couleurs et joué sur le décalage de teinte et la saturation afin d’obtenir un vert proche de celui de la barre de vie.
- J’ai bien placé le cadre bleu au-dessus du vert, c’est important pour l’effet recherché, j’ai ajouté des labels de stream pour la forme, et j’ai mis le tout dans un groupe pour pouvoir déplacer l’ensemble au besoin. Jusque-là, rien de bien méchant.
- Sur le cadre bleu, j’ai ajouté un filtre Rogner/Encadrer, qui sera contrôlé par le plugin Move afin de modifier la taille du cadre bleu, et j’ai simplement renseigné les dimensions de base de la source (information qu’on peut récupérer en appuyant sur Ctrl+E quand la source est sélectionnée et déverrouillée).
- Toujours sur le cadre bleu, j’ai ajouté un filtre Move Value (grâce au plugin Move) que j’ai nommé « Shield 0 » » et réglé pour qu’il agisse sur le filtre de rognage, notamment la Largeur avec une valeur à 0 pixel, une durée d’exécution de 1 seconde et un déclenchement lorsque ce filtre est activé. En gros, si ce filtre est activé, mon cadre sera rogné jusqu’à avoir une largeur de 0 pixel, donc jusqu’à devenir invisible, et la transition durera 1 seconde.
- J’ai répété l’opération avec 4 autre filtres Move Value, pour les valeurs de bouclier égales à 25%, 50% et évidemment 100%, et pour chacun de ces filtres, j’ai simplement modifié la largeur du rognage. Il reste juste à peaufiner un peu en ajoutant une secousse et surtout à automatiser les effets en fonction de la barre de shield dans le jeu.
- Pour les secousses, j’ai ajouté un filtre User-defined shader (grâce au plugin Shaderfilter) sur mon Groupe cam, en utilisant le shader Shake. Il faudra juste activer et désactiver le filtre assez rapidement pour que ça accompagne le rognage du cadre bleu.
Création des macros
Les éléments sont en place, maintenant il va falloir automatiser l’ensemble en fonction de la barre de bouclier visible en jeu, et c’est là qu’intervient Advanced Scene Switcher avec ses macros.
Macro de condition (if)
Direction l’interface du plugin accessible via le menu Outils :
- J’ai créé une première macro nommée « Shield 100% », pour quand le bouclier est au max.
- J’ai ajouté une condition Si et choisi l’option Vidéo dans le menu déroulant, j’ai choisi de prendre en compte une Scène, la scène Jeu Horizontal, puis l’option « correspond à un motif ».
Pour faciliter le travail, j’ai enregistré mon gameplay, ça me permet de mettre la vidéo en pause, et comme je veux récupérer la valeur du bouclier quand il est au max, je cale la vidéo au moment où le bouclier passe à 100%. Dans la macro, après avoir cliqué sur Parcourir, je choisis l’option « Créer une capture d’écran » et je vais chercher la petite zone où j’ai la valeur du bouclier, sur laquelle je vais dessiner un petit rectangle.
Cette petite zone est confirmée par la suite si je laisse le curseur de la souris sur le bouton Parcourir, on voit bien la valeur 100. Là je dis simplement au plugin que je veux qu’il agisse dès qu’il voit le nombre 100 sur l’image. - Pour que ce soit plus précis, je peux affiner le Seuil de tolérance. Plus j’augmente ce seuil, plus l’image devra correspondre à la petite zone que j’ai capturée.
- Pour éviter que toute la scène soit scannée, on peut cocher la case « Effectuer la vérification uniquement dans la zone » et définir une zone spécifique. C’est ce que j’ai fait en délimitant une aire à peine plus grande là où est affichée la valeur du bouclier. Et cette fois, je dis au plugin d’agir uniquement quand il repère le nombre 100 dans la petite zone d’analyse, ce qui est beaucoup plus précis.
Macro d’action (then)
On a défini le déclencheur, reste à définir l’action qui en découlera :
- Dans la zone d’action, j’ai ajouté une action sur un filtre qui se trouve sur la source « Cadre cam Shield ON » (cadre bleu), que je veux activer, ce filtre étant celui nommé « Shield 100% ».
- Reste à ajouter l’effet de tremblement. Dans la macro, j’ai ajouté un délai de 0,35s, puis demandé l’activation du filtre pour les secousses sur le Groupe cam, ajouté un autre délai de 0,60s et demandé la désactivation du filtre pour les secousses.
On en revient toujours au principe de base, aussi complexe que soit la macro : s’il se passe ça, alors je veux ça. Et j’ai donc répété l’opération avec d’autres macros pour les valeurs de bouclier de 50%, 25% et 0 %, avec à chaque fois une capture de la zone montrant la valeur du bouclier et une vérification uniquement dans une petite zone autour de l’affichage de cette valeur, comme je l’ai détaillé précédemment pour la première macro.
J’ai joué sur les seuils au passage, et après activation des macros, j’ai pu tester le résultat final en lançant ma vidéo de gameplay, et à chaque nouvelle évolution du bouclier en jeu, ma webcam a réagi dans la foulée, ce que vous pouvez constater dans la vidéo qui accompagne cet article.
Limites de la méthode
Ça prend un peu de temps pour faire certains réglages, mais on peut faire tellement de choses avec ce plugin… Attention, si jamais vous décidiez de refaire ce que je fais dans la vidéo, toutes les valeurs que je montre ne fonctionneront peut-être pas aussi bien pour vous, il faudra faire des tests notamment sur les valeurs de Seuil si vous voulez vous assurer que tout fonctionne correctement.
Par ailleurs, il a fallu tâtonner pour trouver les bons réglages, car sur mes premiers tests les macros se déclenchaient parfois n’importe quand. Par exemple, quand le bouclier atteignait 58 %, le plugin devait croire que c’était marqué 50 et déclenchait la macro. C’est dû au fait que le 8 et le 0 soient relativement ressemblants, c’est pour ça que j’ai joué avec le Seuil pour au final opter pour une valeur assez élevée, mais c’est le prix à payer pour distinguer le 8 du 0 et déclencher la macro au bon moment.
Aussi, dans ce cas précis, j’ai constaté que l’analyse de l’image était plus efficace quand la zone à surveiller était un peu plus grande que le motif. Donc petite astuce au passage si vous galérez avec ce type de macro, essayez d’agrandir la zone d’analyse.
Enfin, si le bouclier passe d’un coup de 100% à 30%, ce n’est ni 25 ni 50 qui sera affiché, donc la webcam ne réagira pas. C’est le gros point faible de cette méthode. Ça peut se corriger en multipliant les conditions et en faisant autant de macros que de pourcentages, donc en gros si on voulait une cam parfaitement réactive à la barre de shield, il faudra créer 101 macros pour les valeurs allant de 0 à 100%. C’est pas compliqué, mais c’est long et pas forcément indispensable.
Une autre solution pour pallier ce problème serait d’utiliser non pas la valeur numérique du bouclier, mais la barre en elle-même. Avec des macros pour chaque tranche de 10 % de barre de shield, ça ne ferait plus que 11 macros, mais ça implique tout de même de nombreux tests pour trouver les bons seuils de similitude pour le déclenchement afin d’éviter les éventuels conflits et éviter que deux macros se lancent en même temps. Je n’ai pas testé, ce n’est peut-être pas faisable, mais c’est une idée. En tout cas, voilà pour le plugin Advanced Scene Switcher, de mon point de vue l’un des plugins les plus puissants pour OBS Studio.