Lors de mon stage à Atelier Daruma, on m’a demandé de réaliser un plug-in Unreal pour faire la passerelle entre un logiciel de montage video et les Level Sequences du moteur en deux clics.
L’utilisateur réalise son montage sur un logiciel permettant d’exporter des fichiers XML, il nomme ses pistes selon des conventions afin que celles-ci soient bien parsées. Il export ensuite son montage en fichier XML.
Cet outil m’a été demandé afin de réduire au minimum la charge de travail du producteur dans Unreal pour obtenir un rendu écran rapidement. Ce travail a donc demandé beaucoup de discussions avec lui afin que l’ergonomie de l’outil lui plaise. L’outil pouvant intégrer des sons, des animations, des Niagara particules et des events gameplay, j’ai également discuté avec chaque personne impliquée dans la réalisation de notre projet afin d’adapter l’outil à leurs besoins, leurs possibilités et leurs pipelines respectives. Afin de créer cet outil, j’ai dû récréer une grande partie des systèmes appelés lors du drag&drop d’un .Uasset dans un sequencer. Pour cela, j’ai décortiqué le code du module UMovieScenes et tous ceux qui lui sont liés. J’ai également dû recréer une partie de leur helpers et libraries afin que mon plug-in soit indépendant de ces derniers et soit utilisable sur tous les projets n’utilisant que le module de base sans ses extensions. J’ai aussi dû palier à des problèmes du séquencer comme son actualisation visuelle et sa sauvegarde, pour cela j’ai eu la chance de pouvoir utiliser l’Unreal Development Network et de discuter avec des développeurs d’Unreal pour trouver des solutions à des problèmes qu’ils n’avaient pas encore résolus. Finalement, en plus du C++ j’ai dû utiliser du Python pour utiliser le parseur XML : Beautiful Soup, car le parseur proposé sur Unreal ne me permet pas de réaliser tout ce dont j’avais besoin.
Afin de pouvoir debugger et voir plus facilement certains éléments, j’ai réalisé un player de sequence: la timeline. Ce dernier fonctionne comme un player vidéo classique, on peut se déplacer via un slider au temps que l’on veut, mettre en pause et se déplacer entre différents chapitres. Comme l’outil de séquence permet de créer beaucoup d’event répéter et trigger d’actor, j’ai dû adapter la timeline pour que tous les événements gameplay, sonores et cinématographiques possible apparaissent à l’état qu’ils devraient apparaitre si l’on avait joué sans la timeline, et cela, à n’importe quel temps (chose aisée pour les events trigger, mais moins pour les répétiteurs ou les events Niagara). Le retour dans le temps et bien entendu possible.
- J’ai approfondi ma connaissance en C++ Unreal et en Python. - J’ai appris à utiliser énormément de réflexion pour créer un outil le plus généraliste possible. - J’ai appris à utiliser créer des modules, plug-ins et librairies sur Unreal. - J’ai approfondi ma relation avec tous les pôles de production d’un projet vidéo ludique. - J’ai approfondi ma connaissance en UX design pour créer un outil ergonomique.