Pour cette petite news, j’ai choisi de vous partager le WIP d’un modèle de voiture que j’ai commencé il y’ bien longtemps, et que j’avais mis de coté faute de temps de production et d’utilité à la terminer.
Bien souvent je commence a travailler sur des objets après mes heures de bouleau, juste par passion, quand une idée vous trotte dans la tête, il faut s’en débarrasser :). J’ai donc sur un de mes disque dur, un dossier contenant pas mal de choses à faire, et qui a tendance à ne pas diminuer rapidement, voir même à grandir plus vite que je n’ai de temps pour les réaliser…
(HEY ! Dieu ! tu crois pas que tu pourrais rallonger un peu ma vie ? ou me faire travailler un peu plus vite ?? nan parce que là…24 Heures dans une journée, t’es un peu radin je trouve…)
Alors chez Aston Martin, ils ont sortie la Vantange V8 en 2005 (l’année de naissance de ma grande fille), et en 2008 ils ont sortie la version Vantange V8 GT12,
En 2009 ils ont sortie la Vantange V12, un monstre de puissance, et la V12 GT12 et c’est ce petit bijou que j’ai choisi de réalisé quand je suis tombé sur cette photo:
La claaaasssse hein ??
Alors voilà pour la technique de travail, dans un premier temps il faut réunir un max de photo de références, et les blueprints disponible sur le site the-blueprints.com.
Une fois cette étape faite, mettre en place les gabarits qui seront utilisés dans les vues de face profil et dessus, et si possible vue de derrière également.
Cette étape va vous demander un maximum de précision, et vous allez péter les plombs quand vous allez vous rendre compte que vos gabarits ne sont pas positionnés de la même manière de profil et de dessus, ou de dessus et devant, ou quand les dimensions ne correspondent pas alors que vous n’avez encore rien touché, bref, une vraie partie de plaisir !! et sur ce point, vous allez devoir être indulgent envers vous même et envers la précision de votre modèle, vous ne serez jamais à 100% exact avec les concept de départ…
si à cela j’ajoute en plus la pitoyable résolution d’affichage des viewports de Max, vous allez comprendre pourquoi il est important d’avoir un maximum de photos de références à côté.
Une fois vos gabarits en place, il n’y a plus qu’a se mettre au travail. Alors je n’ai pas photo initiale mais pour commencer j’attaque généralement la vue de profil avec un plan, et je découpe la forme globale de la carrosserie.
Il suffit de bosser sur la moitié du modèle, c’est le principe sur 99% des voitures et motos.
Avec ce volume mis en place, je peux maintenant découper avec précision les différentes parties du modèle et les travailler séparément (portières, ailes, coffre, capot, toit et roue(s)..)
Ici vous voyez un modèle déjà bien avancé
en observant bien les références on peut s’apercevoir que toutes les parties de la carrosserie ne sont pas lissées de la même manière, je pense notamment aux parties au dessus des roues, que j’ai due paramétrées avec un smoothgroup différent afin de garder cette forme dure lors de la subdivision. Oui, subdivision car pour réaliser ce type modèle il est très pratique de travailler sur un modèle low poly, mais d’avoir le rendu visuel final. J’ai donc activé le mode NURMS Subdivision de mon Edit Poly, et par dessus une symétrie:
Si visuellement vous avez l’impression d’avoir trop d’information à l’écran, avec l’habitude, on sait que seules les lignes oranges peuvent être modifiées, et l’intérêt d’avoir séparé les parties c’est justement de pouvoir en afficher qu’une seule à la fois.
Donc régulièrement je check mon modèle sans aucune autre information que le mesh final pour voir si la forme convient ou sil il y’a des problèmes à retoucher.
Après une demi semaine de travail sur le modèle, la plus part des éléments sont bien avancés a l’avant du véhicule et sur les cotés.
Pour les phares, il me fallait éviter la production a l’ancienne avec juste une texture déguaulasse affichée sur un plan, invisible sur les images ci-dessus, le modèle du phare est pourtant bien existant en dessous de ce qui sera la vitre:
L’intérêt ici encore est de pousser le réalisme un peu plus loin, et on pourrait également pousser le vice encore plus loin en modélisant tous les micros détails (vis, rainures, systèmes de fixations diverses,etc…)et baker tous ces détails vers une normal map, mais qui va regarder dans le contexte de production actuel de ce véhicule ? personne puisque la caméra ne le permettra pas ! (Allez Hop ! un truc de moins à faire, merci les lunettes VR)
Deuxième partie de la semaine, où cette fois il faut fermer tous les trous et y ajouter les vitres, mais également s’occuper de l’arrière du véhicule, beaucoup plus difficile a réaliser par manque de références, je me contenterais donc d’une approximation entre les différents modèles V8 / V12 / GT12 ou pas… Je ne pense pas que cette partie soit vraiment primordiale au final puisque encore une fois, l’utilisation du véhicule se fait dans certaines conditions du jeu, impossible donc pour les joueurs d’aller fouiner et chercher le détail qu’il manque. Ce n’est pas non plus un modèle réalisé dans l’optique de faire un jeu de course présentant l’aston martin Vantange GT12 , juste une belle caisse à son effigie 🙂
Il me faut encore finaliser le modèle avec les essuies glace, et l’intérieur.
Les pneus auront la chance d’avoir une belle normal map pour donner l’effet de volume, et j’ai hâte de pouvoir mettre les shaders sur unity, mais patience, chaque chose en son temps.
Pour faire les essuie glace, je commence par faire une box que je nomme « essuie glace » (rien de très original je sais ) puis je sauvegarde cette box dans un autre fichier (via save as > save selected) ce qui me permet de travailler dans un nouvel espace, et en cas de plantage du fichier l’aston martin sera au moins en sécurité, de plus ce fichier essuie glace sera une référence que je pourrais retrouver facilement pour chaque voiture, je n’aurait qu’à l’intégrer dans le modèle en cours de production.
Après cela, le même procédé est à faire (trouver des références, faire un gabarit etc..)
Sur un plan s’affiche ma ref, et je positionne ma box sur le balai d’essuie glace.
Je duplique la face centrale et je commence a modeliser la forme du bras? comme vous le voyez ci-dessous, la référence n’est pas parfaitement en vue de profile, il y’a probablement même une déformation due a la perspective et l’angle de prise de vue.
Une fois tous ces éléments en place, il y’ une possibilité de symétrie a faire:
Le problème avec cette symétrie c’est qu’elle ne colle pas a la référence… je m’en doutais comme je l’ai dis plus haut, cela n’est pas trop gênant, je vais pouvoir modifier la forme grâce a un FFD.
Pour cette manipulation, par dessus la symétrie j’ajoute un edit poly afin de pouvoir sélectionner mes polygones fraîchement créés et les affecter au modificateur FFD.
La méthode fonctionne plutôt bien comme le montre cette image:
Il me faut maintenant donner du volume et finaliser le bras et lui faire ses petites extrusions qui lui donne ce design.
J’en profite pour lui changer sa couleur afin d’avoir une meilleure visibilité, un gris foncé sera parfait.
Il faut maintenant inspecter le modèle sous différents angles afin de repérer les éventuelles erreurs et problèmes a retoucher. Ici, la position des différents éléments n’est pas bonne. pour rectifier cela, je les positionne tous à 0 en Z, et j’en profite pour faire de même avec son point de pivot.
L’essuie glace est terminé, il ne pèse que 252 polys, ce n’est pas énorme mais ce chiffre sera multiplié par 4 avec une subdivision, je pourrais éventuellement l’alléger quelque peux par la suite.
Je sauvegarde et je retourne sur l’ Aston martin.
Je sélectionne mon essuie glace en forme de box et je clic sur import > replace, afin de mettre la version finale de ce modèle réalisé dans l’autre fichier.
L’essuie glace prend donc la position, la couleur de cet ancien modèle.
Plus qu’a modéliser le reste du bras assez simplement, en gardant les objets séparés pour les ajuster sur la vitre de la voiture:
Pour parfaire la réalisation de l’essuie glace, j’attache le bras au balais, et j’active le mode NURMS afin de définir les Smoothgroups de manière à ce que l’objet ressemble plus a ma référence, quand j’attacherais cet élément a ma voiture, il sera déjà prêt.
Dernière étape, la mise en place et l’adaptation des essuie glace a la courbe de la vitre.
Je les mets en position et je leur applique une déformation FFD4, afin de modifier principalement le centre des essuie glaces qui seront courbés pour suivre l’arrondi.
Bien sûre je ne pourrais pas utiliser la symétrie pour cet élément il sera donc assemblé une fois la carrosserie terminée.
Il faudra penser a désactiver le NURMS avant d’attacher le tout 😉
Passons maintenant a l’intérieur, je commence par faire les portières:
Vue de l’intérieur, la portière donne déjà une meilleur impression de volume. Inutile de rentrer dans les détails, ils seront réalisés séparément sur une texture.
Pour le châssis, je n’ai pas vraiment de référence, alors on peut utiliser plusieurs techniques différentes, notamment utiliser un modificateur Shell qui dupliquera fidèlement la forme de base, mais ce n’est pas cette méthode que j’ai utilisé pour ce modèle. J’ai préféré extruder les edges par petits groupes afin de garder le contrôle du maillage progressivement, et surtout mettre en place le volume du coffre.
Autre petit détail à gérer, ce sont les espaces vides entre les différentes parties de la carrosserie, si au début c’était pratique de les avoir séparés, il va falloir maintenant les attacher pour ne pas avoir de jours entre les morceaux, et des espaces vides, ce qui casserais la crédibilité du modèle final.
Il faut passer un peu de temps gérer les smoothgroups afin de garder les hard edges aux bons endroits. Si l’auto smooth peut vous donner un bon point de départ, il est parfois préférable de les gérer 1 à 1 dans les zones complexes ou l’auto smooth n’est pas capable d’imaginer ce que vous êtes en train de faire.
Pour les coupures entre les parties, ici, j’ai d’abord bouché les trous et ensuite fait une extrusion des polygones en mode normal, Ambiant Occlusion viendra ajouter du volume sur l’ensemble, mais je repasserai un coup d’optimisation sur le modèle avant cela car il va y avoir beaucoup de points inutiles dans ces parties là. Je vous conseille donc de faire cette étape en dernier pour vous éviter un travail supplémentaire.
Pour la suite et la fin de la carrosserie, en affichant le modèle sans les vitres, on peut mieux voir les parties manquantes, principalement a l’avant du véhicule.
Concrètement, que l’on voit le sol dans cet angle de vue n’est pas important, il sera caché par l’habitacle, en revanche je vais devoir fermer le modèle par en dessous.
Cacher la partie avant n’aura pas été la chose la plus compliquée.
Par contre mettre en place l’habitacle aura été un peu plus embattant a cause du manque de référence, et du fait que travailler un modèle intérieur est toujours plus compliqué que le reste. Bon par chance, tous les détails n’aura pas besoin d’apparaître dans cette version, dans une simulation de course en revanche il aurait fallut reproduire tous les boutons avec un max de précision.
Ici je vais juste rajouter le volant si jamais il est vu de l’extérieur et le volume des compteurs de vitesse au dessus, le reste sera fait en texture (éventuellement mais pas indispensable).
Et pour finir l’intérieur il me reste à faire les fauteuils, qui seront en symétrie à l’avant et à l’arrière, ainsi que la plage arrière un plan en vue de dessus suffira pour le coup.
Pour le siège arrière, j’ai simplement dupliqué le siège avant, et tiré les vertices sur le coté pour que la symétrie m’en débarrasse.
Et voici mon modèle low poly complet, prêt a passer à la texture. Moins de 20k polys, c’est plutôt une bonne chose, on est dans les normes des jeux AAA actuels :).
Première normal map à réaliser, celle de la roue. ça va assez vite, il suffit de dupliquer le model low poly, de séparer la partie du pneu qui sera redessinée façon high polys. La technique diffère selon les motifs a faire sur le pneu, j’aurais pu également me contenter de ne faire qu’un quart de la roue vue que l’ensemble est similaire de partout, en revanche sur la tranche j’ai besoin d’avoir un pneu complet, a cause des écritures qui seront affichées par dessus. la aussi plusieurs méthodes peuvent être employées, mais je vais dessiner les textes directement dans 3Dcoat car je sais déjà que le résultat me conviendra.
je rattache ma roue complète et j’exporte en OBJ vers 3Dcoat pour le baking (pas en FBX, j’ai déjà eu de mauvaise expériences de triangulations, l’OBJ est plus confortable).
Le baking fait, j’ajoute les textes comme prévue, et l’avantage c’est que je peux écrire tout ce qui me passe par la tête, personne n’aura l’occasion d’aller voir précisément ce qui est inscrit sauf si je décide de vous le montrer… comme ceci:
Et la mise en couleur avec une ambiant occlusion pour renforcer le contraste du volume
Pour le reste de la voiture, j’ai séparé les différents éléments qui seront traités sur différentes textures, et différents matériaux. cela permet notamment de pouvoir gérer la transparence des vitres avec un shader unique et la carrosserie avec un autre tandis que les lumières seront elles aussi gérées par un autre shader, et pourquoi pas séparer les clignotants avec un shader programmé pour clignoter (pas ce coup là, mais je l’ai fais sur un camion, et c’est la classe:) ). J’aime aussi pouvoir séparer les miroirs des rétroviseurs, cela permet aussi de pourquoi pas y afficher un render to texture si jamais on veut aller vers un rendu hyper réaliste de l’environnement.
Lors du dépliage des UV, on peut en profiter pour observer le maillage de plus prés, c’est a se moment la qu’on va pouvoir établir plus aisément les points stratégiques et les Edges en trop qui devront disparaître de la version finale. J’ai pu noter également quelques erreurs de maillages ou des points ne sont pas attachés correctement.
Après quelques heures d’ajustements supplémentaire, mon maillage est descendu en dessous des 15k polys, ce qui n’est pas négligeable tout de même.
Je peux maintenant séparer mes éléments afin d’éviter d’avoir une ambiant occlusion trop sombre à l’intérieur de la voiture. Pour cela, on peut soit retirer les vitres uniquement mais si vous souhaitez animer les portières, le coffre et le capot, alors il faut éclater chaque pièce a une distance suffisante pour éviter de gêner ses voisins.
C’est a ce moment là que j’ai eu le plus de problèmes. en effet en ré-important l’OBJ, max a tendance a fusionner certains points situés au même endroit un peu comme bon lui semble ce qui fait que le coffre c’est retrouvé soudé avec l’habitacle, les faces ont été triangulées, fusionnées avec des faces flippées… un gros bordel a dénoué sur lequel j’ai du passé tout mon après midi. J’ai aussi due refaire pas mal d’assignation des ID des matériaux.
cette partie est assez éprouvante du fait du grand nombre de polygones a gérer et de l’absence de symétrie, quoi que, plusieurs fois, j’ai due séparer certains éléments défectueux et refaire une symétrie pour gagner du temps. je devrais refaire les uv de toutes façons.
c’est aussi a ce moment la que je me suis aperçu quand soulevant le capot, il n’y avait pas de moteur !
Dans la plus part des jeux, cela n’a effectivement aucune importance, sauf que pour Tornado Sharks VR, les véhicules pourront être détruit physiquement ce qui m’oblige à préparer ma journée de demain a consacrer à cette tâche.
Voici donc la place qu’occupera le moteur:
Et pour le moteur en question, j’aurais pu faire simple et perdre un peu plus de crédibilité dans le modèle, mais j’ai plutôt choisi d’aller fouiller sur turbosquid pour voir ce que je pouvais dénicher d’intéressant…
Coup de chance, j’ai trouvé ce superbe modèle de moteur V12, qui ira parfaitement avec ma GT12 !
Le seul petit problème, c’est que le bestiaux pèse quand même plus de 150K polys, il bouffe à lui seul le budget de la voiture, je vais donc devoir passer un peu de temps à l’alléger, mais, je pourrais toujours réutiliser le modèle high polys pour baker la normal map et ça, ce n’est pas négligeable !
Après plusieurs heures de taff intensif (2 jours coupés de plantages et de redémarrages, sans compter les problèmes de fusion de points faisant des trucs chelou à l’écran) un peu plus de 2 jours, en séparant les éléments asymétriques et en retirant les parties invisibles et les petits boulons, j’ai finalement réussi a faire chuter le nombre de points en dessous des 30K, ce qui met un total tout de même assez élevé comme vous pouvez le constater sur ce screen:
Ceci fait, je vais pouvoir travailler sur les textures définitives de chaque objets.
Le dépliage des UV du moteur m’aura pris en moyenne 3 jours, étalés sur une semaine entrecoupée de plusieurs autres tâches a réaliser a droite à gauche. J’y ai découvert de nombreux problèmes comme les faces flippées, les faces non Quad qui sont triangulées aléatoirement lors de l’import de l’OBJ, que du bonheur et donc encore un peu de retouches a faire dans 3dsmax.
Après avoir déplié tout le model, et noté les imperfections du maillage, je fais un baking de l’ambiant occlusion, histoire de pouvoir visualiser les derniers problèmes à retirer et les positionner rapidement dans max.
Si il y’a bien une chose que je déteste quand je travaille avec la 3D c’est bien ceci :
Allez savoir pourquoi, après avoir déplié plusieurs fois le moteur afin que tout soit parfait, il a tout de même décidé de laisser quelques points en Coordonnées 0,0, ce qui mais fait de vielle traces sur le baking et va donc m’obliger a revoir un peu le model dans 3dsmax.
Je sais par expérience que ce genre de bugs surviennent généralement lorsqu’on télécharge un fichier 3d réalisé par une personne inconnue qui travaillait avec un logiciel lui aussi inconnue, et que forcément, si déjà son but n’était pas de faire du low poly, il n’était pas censé deviner que quelqu’un voudrait le reprendre pour le refaire et le terminer pour un autre projet…
De plus les modèles réalisés pour le High polys sont bien souvent fait a l’arrache quand ils sont distribués gratuitement (ceci explique cela…).
Qu’à cela ne tienne, je suffisamment mal dormi pour me remettre dessus encore un peu et je vais en profiter pour alléger ce qui est en trop en supprimant certaines parties qui ne sont as jolies au déplié des UVs.
Maintenant que les UVS sont dépliés correctement, cela va aller très vite !
Un coup de peinture blanche sur la carrosserie, un coup de noire plastique sur les différents éléments, un coup de metal a droite a gauche et une petite peinture custom sur les portière et la voiture prend déjà la classe qu’elle mérite !
Donc après pas mal de coups de pinceaux, de coups de brosses et pots de peintures, j’ai une texture pas trop mal qui permet de bien voir un max de détails sans pour autant rentrer dans le détails, je fais pas un simulateur sinon j’aurais pris la peine et le temps pour faire chaque bouton du tableau de bord avec précision.
Il me reste encore un peu de travail de retouches a faire dans 3ds max Pour remettre en places les différentes parties du model qui avait causé des problèmes, et refaire les smoothgroups une dernière fois pour que cette fois le baking de l’ambiant occlusion ne me fasse pas ces ombres étalés a chaque coin du model. J’en profiterais pour rajouter une petite extrusion sur les feux arrière qui pixelisent trop comparé au reste.
Et voici donc le model final dans 3dsmax, avec ces 4 roues, ces vitres, bref la totale !
Le model est resté en dessous des 50K polys ce qui est une très bonne chose. Un model comme celui la pourrait bien entendu avoir moins de polys sur pas mal d’endroit si dans l’optique j’avais voulu faire un model low poly, static, mais, le fait est que ce model devra pouvoir subir des chocs, et les parties amovibles tel que les portières, le capot et le coffre, ainsi que le moteur sont prévue pour pouvoir se détacher durant le jeu !
j’utiliserais le même workflow que celui que j’ai utilisé sur le modèle du camion américain, pour ceux qui n’ont pas vue, je remet la petite vidéo de démo juste ici.
Passons maintenant a l’intégration dans unity et le setup des shaders, ce qui devrait aller vite maintenant que tout est préparé avec 3dcoat.
Et une présentation de la bête sur sketchfab pour les petits curieux que vous êtes ! ^^
Je kiff trop !
Et vous, vous en pensez quoi ?
Les ailes avant ne sont pas celles de la GT12 mais celle d’une Vantage normale (extraction d’air derrière les roues avant).
Il manque les entrées d’air pour refroidir les freins en bout des bas de caisse juste avant les roues arrière.
Ces 2 détails sont ce qui caractérise la GT12.
merci cet information, il est difficile de trouver de bonnes sources sur internet lorsque l’on n’y connait rien.