Jump to: navigation, search

Difference between revisions of "Dossier:Bilan aide à la production - 2016"

(B2J)
(B2J)
Line 87: Line 87:
 
L'intégration des squelettes<ref name="kinect-skeletons">Skeletal Tracking via kKinect camera - https://msdn.microsoft.com/en-us/library/hh973074.aspx</ref> captés grâce à la Kinect<ref name="kinect"/> dans le moteur d'animation a posé plusieurs problèmes:
 
L'intégration des squelettes<ref name="kinect-skeletons">Skeletal Tracking via kKinect camera - https://msdn.microsoft.com/en-us/library/hh973074.aspx</ref> captés grâce à la Kinect<ref name="kinect"/> dans le moteur d'animation a posé plusieurs problèmes:
  
* '''différence de format''': tout comme pour le bvh, les squelettes kinect utilisent une hiérachie et un format propre et n'ayant pas nécessairement de rapport avec l'avatar à animer;
+
# '''différence de format''': tout comme pour le bvh, les squelettes kinect utilisent une hiérachie et un format propre et n'ayant pas nécessairement de rapport avec l'avatar à animer;
* '''mise en réseau''': ce ne sont pas une mes 4 à 6 kinects qui sont utilisées dans le projet; il était donc imperatif de permettre l'arrivée des information via le réseau;
+
# '''mise en réseau''': ce ne sont pas une mes 4 à 6 kinects qui sont utilisées dans le projet (voir [[#Skeletons|Skeletons]]); il était donc imperatif de permettre l'arrivée des information via le réseau;
* ''identification''':
+
# ''identification''': chaque squelette a un identifiant propre qu'il fallait mettre en relation avec un avatar dans le monde 3d.
 +
 
 +
 
 +
Le point 1 & 2 ont été partiellement résolu par l'utilisation d'une librairie développée par Fishing Cactus. L'injection des données dans le moetru d'animation a demandé un certain effort mais c'est soldé par un succès.
 +
 
 +
 
 +
=== Skeletons ===
  
 
== Calendrier ==
 
== Calendrier ==

Revision as of 15:53, 27 September 2016

Ce document reprends le travail et les dépenses liées à la demande d'aide à la production de Tanukis déposée auprès de la Commission des arts numériques de la Fédération Wallonie-Bruxelles en avril 2014.

Collaborations

Fishing Cactus

Le projet a été soutenu par une bourse Expérience Interactive déposée en septembre 2013. Les partenaires de cette demande étaient Fishing Cactus[1], une société montoise de jeu vidéo, et l'institut numédiart[2] de l'université de mons. Le travail a démarré le deuxième semestre 2014 et s'est arrêté début 2015.

L'ensemble du budget alloué par ce fond ayant été capté par la société montoise, aucune rétribution de François Zajéga n'ayant été prevue dans l'accord.

Fishing Cactus a alloué 2 graphistes et un programmeur à ce projet pour un total de 100 jours de travail, sur une base de 300 euros par jour (prix coûtant).

François Zajéga a bénéficié d'un espace de travail sur place, ce qui lui a permis de suivre le travail de l'équipe journnalièrement et de participer activement au développement informatique et aux recherchjes artistiques.

Au démarrage du projet, il a été décider de travailler non pas avec Mojito[3], le moteur de jeu développé en interne de la société, mais avec Unity3D[4]. Mojito était en développement intensif à cette période, et le programmeur disponible n'avait pas les compétences pour le prendre en main.

Fishing Cactus a mis a disposition du projet une librairie "maison" qui a permis de réinterpréter facilement les informations fournies par la caméra Kinect[5].

Cette collaboration a été difficile a plusieurs points de vue:

  • Timing: les heures mises à disposition par Fishing Cactus n'ont pas permis d'aboutir à une solution finalisée. Les ambitions du projet dépassaient en effet largement le tmps disponible.
  • Attentes artistiques: la communication avec les graphistes a pris beaucoup de temps à être efficace. Un problème de compréhension fondamental a en effet beaucoup ralentit la mise au point d'un nouvel avatar.
  • Attentes techniques: lié au problème de timing et au fait que le programmeur alloué au projet devait travailler sur d'autres projets en parallèle, une partie conséquente du développement a dû être assumée par François Zajéga.


Le bilan de cette collaboration est mitigé, principalement à cause de la différence de conception d'un projet artistique et des impératifs de qualité et de rentabilité.

Résidences

Espace Pasolini

Durant la phase de protoypage, l'espace Pasolini de Valenciennes[6] avait accueilli le projet pour deux résidences.

Le théâtre a accueilli le projet pour deux autres résidences, qui permis d'aboutir à une première presentation officielle dans le cadre des Instants Magnétiques[7].

  • résidence #1: janvier 2015 - deux présentations publiques non payantes.
  • résidence #2: avril 2015 - deux présentations publiques payantes, suivies d'une rencontre avec les artistes.


Le temps passé à Valenciennes ainsi que les conseils et avis de l'équipe du lieu a permis de développer la relation entre le son et l'image et d'afirmer l'identité du projet.

Imal

Imal[8] a hébergé une résidence de recherche de fin décembre 2015 au 15 janvier 2016. Cette résidence[9] a permis de travailler sur le système de captation multi-kinect avec la danseuse Mitsiko Shimura[10]. Cette session de travail s'est terminée par la présentation publique d'une courte performance.

Développements

Cette section liste les différents développements informatiques réalisés dans le cadre de ce projet.

Durant la phase de protoypage, le projet s'appuyait sur blender[11]. Cet outil ayant des limitations handicapantes pour la réalisation du projet, l'utilisation d'un moteur de jeu professionnel a été nécessaire pour le mener à bien.

Bien que la demande de subside[12] mentionnait l'utilisation de Mojito[3], le choix s'est porté sur Unity3D[4]. Voir Fishing Cactus pour les raisons de ce choix.

Bien que ce moteur soit très complet, l'idéologie avec laquelle il a été conçu ne permettait pas de satisfaire aux exigences du projet. La gestion des animations des avatars a été un des points principaux sur lequel le développement dans Unity s'est concentré. D'autres ajouts ont aussi été approtés.

B2J

L'acrnoyme B2J signifie blender to json.

Cet addon a été entièrement développé par François Zajéga avec le soutient de Fishing Cactus.

Les fichiers de mouvements enregistrés durant les séances de captures réalisées chez numédiart en novembre et décembre 2013[13] n'était pas utilisable directement dans Unity. La durée des enregistrement, le format bvh[14] sortaient en effet complètement du cadre standard rencontré dans les jeux vidéos. Il a donc été nécessiare de créer un lecteur spécifique pour ces fichiers.

Dans une première phase, un script python[15] transcode les fichiers de capation de mouvements du format bvh[14] au format json[16]. Ce format est en effet beaucoup plus courant. L'importation de ces fichiers dans le moteur de jeu a été possible grâce à MiniJSON[17]

Un second problème important c'est alors posé. Les structure des données des fichiers de captation ne correspondait pas aux articulations de l'avatar, tant au niveau de leur nom que de leur nombre. La position des articulations de la colonne vertébrale notamment était assez dissemblable.

Pour créer la relation entre le bvh et l'avatar, un format de fichier de mapping[18] a été mis au point. Il permet de définir la relation entre les points du bvh et les articulations de l'avatar, ainsi que le pondérateur à appliquer à chaque relation. Il est possibe d'inluencer plusieurs articulations à partir d'un seul point bvh ou l'inverse.

A cette étape, il était possible de lire un seul fichier à la fois. Que ce soit en performance ou en installation, cette contrainte était bloquante. Il fallait pouvoir passer d'une animation à l'autre sans qu'il y ait de sautes brutales.

Un moteur d'animation a permis de rencontrer cette attente. Il permet de

  • charger plusieurs fichiers de mouvements en parallèle;
  • de passer de l'un à l'autre sans acoup;
  • de faire varier la vitesse de lecture des fichiers séparément.


En plus de gérer le chargement, la lecture et mapping des fichiers d'animation, un autre concept a été ajouter. Il s'agit de masques permettant de désactiver l'influence de l'animation sur certaines articulations. Il est donc devenu possible d'animer un avatar avec plusieurs sources différentes, en choisissant l'influence de chaque source sur chaque articulation. Pour donner un exemple: la jambe droite de l'avatar peut courir, la gauche être en position assise et que le haut du corps en train de faire un mouvement de danse.

A cette étape, les développement permettaient d'imaginer une performance mais pas encore de capattion temps réelle puisque seuls les fichiers de captations étaient reconnus. La structure du moteur, avec ces lecteurs parallélisés, a été pensée pour permettre d'autres type de sources que les fichiers bvh.

Deux autres types de sources ont pu être ajoutées. Toutes deux sont temps réel, c'est-à-dire qu'elles ne s'appuient pas sur des enregistrement préalable.

Le premier type s'appuye sur l'addon dynamic bone[19]. Il simule un comportement physique des articulations de l'avatar, en réaction à la gravité et au mouvements du corps entier. Le résultat de cet addon n'est pas utilisé directement sur l'avatar mais anvoyé dans le moteur d'animation, ce qui permet de gérer son influence et de le mélangé aux autres sources. Ce développement été assez rapide et a préparer le terrain pour le deuxième type, crucial à l'installation interactive celui-là.

L'intégration des squelettes[20] captés grâce à la Kinect[5] dans le moteur d'animation a posé plusieurs problèmes:

  1. différence de format: tout comme pour le bvh, les squelettes kinect utilisent une hiérachie et un format propre et n'ayant pas nécessairement de rapport avec l'avatar à animer;
  2. mise en réseau: ce ne sont pas une mes 4 à 6 kinects qui sont utilisées dans le projet (voir Skeletons); il était donc imperatif de permettre l'arrivée des information via le réseau;
  3. identification': chaque squelette a un identifiant propre qu'il fallait mettre en relation avec un avatar dans le monde 3d.


Le point 1 & 2 ont été partiellement résolu par l'utilisation d'une librairie développée par Fishing Cactus. L'injection des données dans le moetru d'animation a demandé un certain effort mais c'est soldé par un succès.


Skeletons

Calendrier

Présentations

Dépenses

Évolution de la pièce

Galerie d'images

Liens

  1. Fishing Cactus, Game & Serious Games Development Studios - http://fishingcactus.com
  2. numediart, Institute for Creative Technologies - http://www.numediart.org
  3. 3.0 3.1 Mojito - http://seriousgaming.fishingcactus.com/en/Technologie.html
  4. 4.0 4.1 Unity3D - http://unity3d.com/
  5. 5.0 5.1 Kinect, caméra RGB et infrarouge permettant le compréhension de l'espace tri-dimensionnel - http://www.xbox.com/en-US/kinect/
  6. Espace Pasolini, laboratoire artistique - http://www.espacepasolini.fr
  7. http://www.espacepasolini.fr/?p=873
  8. Imal, centre for digital cultures and technologies - http://imal.org
  9. Page de présentation de la résidence à imal - http://imal.org/en/activity/tanukis
  10. Mitsiko Shimura, danseuse-interprète - https://www.linkedin.com/in/miko-shimura-02460049
  11. Blender, éditeur 3d inclumant un moteur de jeu vidéo - https://www.blender.org
  12. Voir le File:Tanukis-production-complet.pdf
  13. Bilan de l'aide à la conception, voir File:Tanukis-francoiszajega-conception bilan.pdf
  14. 14.0 14.1 BVH, motion capture file format developped by BioVision - http://research.cs.wisc.edu/graphics/Courses/cs-838-1999/Jeff/BVH.html
  15. Python, programming language - https://www.python.org
  16. JSON, JavaScript Object Notation - wikipedia:JSON
  17. MiniJSON Decodes and encodes simple JSON strings - https://gist.github.com/darktable/1411710
  18. Data mapping - wikipedia:Data_mapping
  19. Dynamic Bone, developped by Will Hong - https://www.assetstore.unity3d.com/en/#!/content/16743
  20. Skeletal Tracking via kKinect camera - https://msdn.microsoft.com/en-us/library/hh973074.aspx