Continuum
"noun (plural continua /-jʊə/) A continuous sequence in which adjacent elements are not perceptibly different from each other, but the extremes are quite distinct."
- Oxford Dictionary of English
À ce stade, l'histoire est terminée. Les détails sont expliquées dans des storyboards que l'on utilisera comme référence pour la mise en scène. En voici un aperçu:
Nous essayons de finir la pré-production au plus vite. Bien qu'essentielle, cette partie du cycle de développement doit être limité en temps parce-qu'à faute de s’arrêter à un moment et de passer à l'action, on se perd facilement dans des détails cauchemardesques.
Pour expliquer notre projet, nous avons écrit un "elevator pitch" qui résume bien ce à quoi on peut s'attendre.
"Notre projet est un jeu d'aventure à la 3ème personne où l’on doit se déplacer à travers l’environnement et interagir avec les divers objets dans la scène afin de faire avancer l’intrigue.
Ce jeu raconte l’histoire d’un secouriste ayant reçu un appel à l’aide, l’entrainant aux sommets de montagnes enneigées. Il embarque alors dans une aventure afin de sauver cet inconnu. Cette expédition le mènera dans un temple mystérieux possédant son propre cycle de temps.
En chemin, le joueur devra résoudre des défis mentaux afin de progresser dans l’histoire. Une série de déjà-vus suivront chacun de ces défis et dévoileront petit à petit son sort.
Notre mandat est de créer une expérience interactive qui poussera le visuel et la présentation cinématographique pour ainsi augmenter l’immersion du joueur dans cet univers rempli d’action, d’émotion et de mystère."
Voici donc cette sixième et dernière session au NAD!
Pour finir ce Bac en beauté, nous devons concocter un projet synthèse qui non-seulement regroupera tout ce dont on a appris durant notre voyage épique de 3 ans (2 ans et demi, mais bon), mais aussi en faire notre voix dans cette industrie florissante du jeu vidéo. C'est avec ce projet que nous tenterons de nous faire une place dans ce (relativement) nouveau medium.
Mais c'est aussi une occasion en or de quitter le NAD avec un bang!
Voici mes travaux en Level Design, particulièrement ceux fait durant mon stage chez Ubisoft Montreal. Ainsi que creer 2 niveaux pour le jeu Pixel Trouble, j'ai aussi contribué à la majorité des cinématiques qui se trouvent un peu partout durant le jeu. Ces travaux incluent aussi l'introduction et la conclusion du jeu.
Level Design
Pour le design de niveau, je me suis occupé du premier niveau, tout de suite après le tutoriel. Le niveau devait donc être simple et linéaire, guidant le jouer subtilement pour que celui-ci ne puisse se perdre.
Ma stratégie est de dessiner à la main le niveau avant même de le concrétiser dans le moteur de jeu. Je commence par étudier le Gameflow, c'est à dire l'enchaînement des expériences que l'on présente au joueur du début à la fin d'un niveau.
C'est important de connaitre l’évolution de l'apprentissage du joueur et utiliser la formule T-L-P-M (Tease, Learn, Practice, Master).
Dans la photo précédente, on voit la progression que j'ai décidé d'utiliser pour le premier niveau du jeu:
Début > Platforming > Items > Combat > Platforming > Exploration > Combat > Cutscene > Fin
Ensuite, je dessine une vue de haut du niveau, et je trace le Golden Path. Celui ci représente le trajet critique à suivre pour compléter un niveau.
La flèche au bas représente le joueur. Les cercle numérotes représente les différentes dénivellations du niveau, pour m'aider à me retrouver sur l’échelle verticale. Comme l'image le montre, j'inclue ensuite le terrain à envisager lors de la construction du niveau. D'autres icônes indiquent l'emplacement des ennemies, items et tout autre objet d’intérêt.
Pour comparer, voici une vue de haut du niveau fini:
C'est aussi le parfait moment pour penser aux façons avec lesquelles on entend guider le joueur. Que ce soit par la lumière, un code de couleur, de collectibles, signes explicites, cut de cameras, cinématiques, sons, etc, on peut déjà les noter sur le schéma pour voir si le tout est cohérent avec notre Gameflow.
Il est important de faire des schémas avant de sauter au moteur de jeu. On évite des problèmes a l'avance, et ceux-ci sont beaucoup moins coûteux sur papier!
Voici d'autre images du niveau fini:
Pour le premier niveau "Boss", j'ai utilisé la même stratégie. Cependant, la nature de ce niveau permettait de passer plus rapidement vers le moteur de jeu. En effet, ce niveau est construit à partir de blocs uniformes. Il est donc très faciles de faire des changements quand à l'emplacement du terrain. J'ai donc eu la chance de travailler directement sur le moteur. C'est un avantage que l'on ne rencontre pas souvent!
Il a quand même fallu avoir un Gameflow pensé:
Encore une fois, voici le produit fini:
La partie la plus importante de ce niveau se trouve à sa fin. Le joeur doit vaincre un monstre pour pouvoir avancer vers le niveau suivant. Pour ce faire, il doit utiliser l'attaque lance-missile de l'ennemi pour détruire des blocs spéciaux, et ainsi faire écraser une plateforme sur le monstre.
Voici une vidéo démontrant ce combat:
Pour terminer, voici mon travail en cinématique pour le jeu Pixel Trouble. Mes contributions incluent les cameras, ainsi que les animations spécifiques à ces cinématiques.
Voici les références qui seront utilisées pour les animations des danseur dans le projet Street Dance.
Pour le premier danseur, il va y avoir des windmills suivis d'un 360 cork. On peut les voir dans les deux vidéos suivants. Le flip se retrouve dans la deuxième vidéo à 1:22.
Ensuite, pour le deuxième danseur (ou plutôt danseuse), il y aura du popping au menu. Voici donc la vidéo référence La séquence en question commence à 0:32.
Il reste une semaine, et je travail en ce moment sur le blocking des danseurs. Je vais poster mon progrès bientôt!
Pour cette dernière contrainte, on doit animer deux bboys et les spectateurs qui les encouragent.
Pour commencer, j'ai fait 3 rigs differents: Row 1, 2 et 3, pour chacune des trois emplacements des spectateurs par rapport aux danseurs.
Le premier rig, Row 1, se compose d'un system biped simplifié à 22 bones. Les deux autres, Row 2 et Row 3, possèdent des custom rigs. Ceux-ci contiennent 7 et 3 bones respectivement.
Voici une image des 3 rigs:
J'ai exagéré les animations pour un coté un peu loufoque, propre aux personnage stylisés qu'Agustin et Neptune vont créer.
Notre projet de Contrainte 2 est maintenant terminé!
Apres un travail énorme de la part de toute l’équipe, nous somme très fiers de ce que l'on a fait. Chacun de nous a donné son maximum pour atteindre un niveau de qualité le plus haut possible.
Voici donc mes contributions au projet.
Rig Facial
Comme mentionnées plus tôt dans le blog, j'ai crée un rig facial pour pouvoir animer le visage de Joanna. C’était la première fois que l'on a utilisé un tel rig pour des animations en temps réel. Le UI est très simple et n'utilise que des modifiers d'origine à 3ds Max.
Voici un aperçu de ce que cela donne...
AnimTree pour Joanna
Un AnimTree a été créer pour hiérarchiser les animations de Joanna et en faire des blends. L'utilisation nouvelle de la fonction Phys_Ladder dans le AnimNodeBlendByPhisics, ainsi qu'un Ladder Volume, ont rendu possible le système d'escalade (climbing system).
Animations de Joanna
J'ai crée plusieurs animations pour Joanna, tant pour le gameplay que pour les séquences cinématiques.
Pour le gameplay, j'ai animé le climb (haut, bas, gauche, droite), le corrupted runcycle (course corrompue a la deuxième partie du jeu), ainsi que le take dammage (lorsque Joanna prends du dommage).
Pour les cinématiques, je suis responsable des animations de Joanna lorsque celle-ci assemble la clé magique, ainsi que lorsqu'elle descends les escaliers pour reprendre la clé.
Animations du Bird
Pour le Bird, les animations que j'ai crée sont le take off (décollage) et le glide (vol plané).
(Une video des animations sera postée prochainement)
Interactivité du Bird
Dans le niveau complété, le Bird a comme mission d'aider Joanna en la guidant tout au long de son aventure. Ceci représente la partie tutoriel du jeu, indiquant au jouer les points d’intérêts avec lesquelles il faut interagir. Pour ce faire, le Bird doit donc être prêt à agir lorsque celle-ci ce rapproche de lui, pour pouvoir continuer son chemin vers le prochain point d’intérêt, et ce, d'une façon naturelle.
Pour ce faire, j'ai eu recours aux animations du Bird que l'on a d'abord importé dans UDK, pour ensuite les intégrer dans des séquences Matinee. Plusieurs copies du SkeletalMeshes du Bird ont été placés par Fanny dans des points stratégiques, et les animations correspondantes au contextes de chacun de ces Mesh ont été intégrées dans Matinee de façon séquentielles pour avoir des transitions fluides et naturelles.
Pour l'interactivité entre Joanna et le Bird, l'utilisation de triggers en mode touch, ainsi que des event notifications dans Matinee font appel aux animations nécessaires, et contrôlent la visibilité (hide/unhide) des différentes copie Mesh du Bird.
Dans chaque séquence Matinee, on retrouve 3 layers d'animations: Movement Track (pour les translation et rotations du Mesh), et 2 Anim Control Tracks (pour y insérer les animations). Le blending se fait entre les deux layers d'animations.
Lumières (Bird)
Pour donner de l'importance visuelle au Bird, des groupes de lumières ont été crées pour chaque copie du Bird. Celle-ci ont des niveaux d'intensité et des couleurs différentes, déterminés par l’ambiance de l'environnement qui les entour. Chacun de ces groupes de lumières sont attachés à leur copie du Bird respectif, et ce à l'aide de nodes de type attach to actor.
Camera des Cinématiques
Avec l'aide de Fanny, j'ai placé et animé les caméras des séquences cinématiques que l'on retrouve au milieu du jeu.
Autres
J'ai aussi fait des recherches pour des fonctionnalités que l'on a finalement pas utilisé dans Vulturine. Entre autres, j'ai effectués des tests de Morph Targets pour l'animation faciale de Joanna. Aussi, J'ai fait plusieurs recherches pour des systèmes de cameras dites on-rail. Pour des raison technique et, surtout, de manque de temps, nous avons décidé de faire autrement. Par contre, l’expérience que j'ai acquise suite à ces recherches restera utile pour le future!
Remerciements
Je voudrais remercier les personnes qui nous ont entouré pendants la production de Vulturine. Nos professeurs Pierre Tousignant et Alexandre Sabourin, nous ont encadrés tout au long de la démarche et ont su nous diriger vers un résultat dont nous somme très fiers.
Surtout, un méga high-five aux autres membres de notre équipe extra-ordinaire : Agustin Trechi, Fanny Campagnie, Viro Nhek et Michael Meltchenko.
Résultat Final
(Une vidéo du gameplay sera postée prochainement)