Salut tout le monde,
Récemment, j’ai voulu travailler sur quelque chose qui n’est absolument pas nécessaire pour le jeu, mais qui peut rajouter énormément en terme d’atmosphère. Dans les quelques jeux auxquels j’ai joué, j’ai toujours particulièrement apprécié les moments où le joueur peut se promener librement et découvrir la faune. Dans mon jeu, j’aimerais arriver à recréer ce sentiment en proposant un monde ouvert recouvert d’un océan et parsemé de quelques îles (pas forcément immense, mais suffisamment pour se balader).
J’ai donc choisi de travailler sur quelque chose qui se verra beaucoup pendant le jeu: le ciel, la mer, les oiseaux et les poissons.
Voilà ce que ça donne:
Une petite vidéo: l’eau, le ciel, la vie!
I – L’Océan
Pour l’océan, je me suis imposé une contrainte technique: je ne veux pas que l’eau soit transparente, et on ne pourra pas aller sous l’eau. Pourquoi?
- Parce que, techniquement, les shaders transparents demandent plus de puissance de calcul et ne sont pas adaptés à toutes les cartes graphiques.
- Parce que ça demande de modéliser tout ce qu’il pourrait y avoir sous l’eau, ce qui peut être énorme pour un monde ouvert.
- Parce que si le joueur peut VOIR ce qu’il y a sous l’eau, il VOUDRA y aller. J’ai déjà prévu d’autoriser le joueur à voler à un certain stade du jeu, et j’imagine que ça devrait être suffisant pour contribuer à la sensation de liberté.
- Parce que je suis un fan de « Beyong Good and Evil » et « Zelda Windwaker » et que dans ces 2 jeux, l’océan n’est pas transparent (bien que dans des styles très différents), ce qui prouve qu’il n’y a pas besoin de créer quelque chose de réaliste pour que la sensation véhiculée soit puissante.
Notez bien que ça ne signifie pas que je ne veux pas un océan réfléchissant. J’ai donc passé pas mal de temps à mettre en place un océan purement réfléchissant avec quelques vagues d’un blanc pur (style cartoon oblige) à partir du shader d’eau proposé par Unity.
II – Le ciel
Pour le ciel, je voulais que le joueur ressente un espace infini. J’ai pensé qu’ajouter du vent pourrait accentuer cette idée. J’ai donc créé des sortes d’ondes blanches zébrant le ciel, accompagné du bruit du vent. J’ai mis en place quelques nuages qui tournent au dessus de la ligne d’horizon. Tout ça est fait de manière dynamique et aléatoire. Peut-être que je rajouterai un gestionnaire de météo par la suite, pour accentuer l’immersion (pluie, soleil, etc…)
Actuellement, le ciel est essentiellement fait d’une seule couleur (cyan), mais cela va changer aussi.
III – La vie
Mais la partie la plus longue fut de créer les premiers oiseaux et poissons « vivants ». Le processus est le même pour les 2. Je commence par créer un modèle 3D dans Blender comme ceci:
Bien sûr, j’utilise BEAUCOUP de références. Ensuite, je crée 3 animations de base pour ma mouette (appelons-là Steven): un simple battement d’aile, un vol plané, et un cri. Chaque animation doit être cyclique, c’est à dire qu’elle doit pouvoir être jouée en boucle sans qu’on remarque de « cassure » entre la dernière et la 1ère image.
Ensuite, dans Unity, je rajoute « l’intelligence » (ou plutôt la bêtise, tout dépend comment on le voit) de Steven: il change d’animation de manière aléatoire, en boucle. Bien sûr, lorsqu’il crie, j’ai rajouté le bruit correspondant. Ensuite, j’ai codé un algorithme basique qui le fait aller vers un but donné (une sorte de correction proportionnelle pour les automaticiens qui liraient ces lignes). Je ne rentrerai pas dans les détails car c’est un peu plus complexe que ça, mais l’idée principale est celle-là.
C’est à peu près la même chose pour les poissons, si ce n’est que j’ai du rajouter une animation de saut. Tout ceci est aléatoire, et chaque poisson et/ou oiseau suit un point particulier (qui peut être changé dynamiquement, ce qui devrait, en théorie, me permettre de les faire suivre un bateau par exemple).
Et tout ce beau monde se déplace en harmonie comme vous pouvez le voir sur la vidéo ci-dessus.
Ce sera tout pour aujourd’hui!
Si vous avez trouvé ça intéressant, n’hésitez pas à partagé, blogger, tweeter, en parler à vos amis, etc…
A+
Laisser un commentaire