Vous êtes-vous déjà demandé comment fonctionne un petit studio indépendant de développement de jeux vidéo?
Vous pouvez créer des jeux avec un très petit budget, mais cela nécessite de l'ingéniosité, beaucoup de travail et encore plus d'amour pour votre travail.
Nous sommes une petite équipe de Pologne. Nous ne sommes que trois, mais seulement deux personnes sont engagées dans un projet à temps plein.
Aujourd'hui, nous parlerons du processus de création de personnages pour notre jeu «La fin du soleil». Gardez à l'esprit que les captures d'écran présentées dans l'article proviennent d'un projet qui est encore en cours de développement.
Ce texte est uniquement consacré aux éléments statiques des personnages: nous expliquerons comment nous avons scanné un personnage et des vêtements, comment des éléments supplémentaires ont été créés et aussi comment nous avons configuré le moteur Unity pour obtenir de telles captures d'écran:
Mais commençons par le début. Avant de commencer, nous avons préparé une liste de propriétés dont nos personnages ont besoin:
- 80% des éléments de notre jeu sont scannés par photogrammétrie . De plus, nous voulions donner à nos héros une apparence humaine, nous avons donc décidé de scanner les visages des gens.
- De beaux cheveux compatibles avec le moteur de jeu Unity.
- Dans notre jeu, il sera possible de rencontrer le même personnage à différentes périodes de sa vie . Qu'est-ce que cela signifie? Nous avons dû créer jusqu'à quatre versions des personnages pour chaque période (enfant, adolescent, adulte, personne âgée). Par conséquent, il était important pour nous de trouver un moyen de créer des versions plus anciennes de personnages le plus rapidement possible.
- Pour souligner l'aspect slave des personnages, typique des lieux où nous vivons, des vêtements folkloriques traditionnels ont également été scannés .
- Certains éléments qui n'existent pas dans le monde réel ou qui ne peuvent pas être scannés, nous les avons créés manuellement de manière standard (modélisation 3D).
- Chaque élément de caractère peut être activé ou désactivé . Qu'est-ce que cela signifie? Par exemple, nous pouvons remplacer la jupe du personnage, enlever le chapeau s'il n'est pas nécessaire. Cela donne amplement l'occasion de créer un nouveau look - dans une cinématique, le héros peut être torse nu, dans le second - entièrement habillé.
- Nos personnages ne sont pas interactifs, c'est-à-dire que le joueur ne peut pas les contrôler (au moins directement). Mais c'est un jeu sur leur histoire, il est donc très important pour nous de pouvoir contrôler l'ensemble du personnage avec le mouvement des muscles faciaux (cela sera discuté plus en détail dans un autre post).

Dans l'article, nous ne parlerons que d'un seul personnage dans un état jeune et vieux, car dans notre jeu, l'intrigue est très importante et nous ne voulons pas gâcher le plaisir des joueurs.
Ainsi, en faisant une liste, vous pouvez commencer à travailler sur les graphiques.
1. Photogrammétrie du visage et préparation d'un corps tridimensionnel
Actrice en cours de photogrammétrie.Fotogra ... quoi?
Nous avons commencé par balayer les faces de notre modèle en utilisant
la méthode de photogrammétrie . Il s'agit d'un sujet pour un article séparé, mais vous pouvez en apprendre un peu plus à ce sujet sur notre
chaîne youtube .
Tournez-vous vers Wikipedia:
La photogrammétrie est une discipline scientifique et technique impliquée dans la détermination de la forme, de la taille, de la position et d'autres caractéristiques des objets à partir de leurs images photographiques.
En d'autres termes: la
photogrammétrie est un moyen de restaurer la profondeur 3D à partir de plusieurs photographies (ou plusieurs images) pour créer un modèle virtuel tridimensionnel qui ressemble à un objet dans le monde réel.
Un grand studio AAA avec un gros budget utilise de nombreuses caméras pour numériser un personnage. Ils sont situés autour de l'acteur et prennent un tas de photos à peu près en même temps ...
... Mais que faire si nous n'avons qu'une seule caméra?
Oui, un problème se pose ici, et comment l'avons-nous résolu? Les numérisations créées de cette manière seront pires que lorsque vous travaillez avec de nombreux appareils photo, mais cela nous suffit pour créer une forme de visage de base et une texture de haute qualité cuite. C'est la "manière indépendante" de créer la photogrammétrie.
Nous avons fait de nombreuses tentatives, voici donc quelques conseils pour créer des instantanés avec une seule caméra:
Un acteur ou une actrice ne doit pas bouger jusqu'à ce que vous ayez fini de prendre des photos de votre visage. Ils ne peuvent même pas cligner des yeux et respirer. (La prise de vue prend généralement environ 10 à 20 secondes, mais cela reste difficile à réaliser)
Nous avons dû prendre très rapidement des photos de différents côtés de l'actrice. Pour ce faire, nous avons utilisé le mode rafale. Parfois, il y avait des problèmes de mise au point, mais prendre des photos de la manière la plus rapide pour que l'actrice reste immobile.
Il vaut mieux mettre l'acteur sur une chaise avec accoudoirs, c'est plus facile de rester assis.
Nous avons pris des photos uniquement du devant de l'actrice. Dans les captures d'écran, vous pouvez voir des photos de l'arrière, mais dans le scan final, nous ne les avons pas utilisées. En général, pour créer une numérisation,
vous n'avez besoin que de 8 à 10 bonnes photos devant .
Il est également bon d'utiliser un filtre polarisant avec l'appareil photo, car il réduit la lumière sur la peau, ce qui améliore la forme du modèle et la texture.
Pour un tel schéma,
utilisez au moins quatre softboxes pour améliorer la texture et réduire le post-traitement.
Utilisez la vitesse d'obturation la plus élevée possible pour éviter le flou de mouvement, ainsi que la plus petite ouverture possible (je veux dire f.5 et plus) pour obtenir une large plage de mise au point sur les photos. Pour cela, au moins quatre softboxes très puissantes sont nécessaires. Bien sûr, l'ISO doit être maintenu aussi bas que possible pour éviter le bruit.
Pour analyser les photos et créer un modèle, nous avons utilisé
le logiciel
Photoscan 3D . Voici à quoi ressemble le nuage de points après le traitement des photos:
Nuage de points et visualisation de la disposition des photos.Comme vous pouvez le voir, il y a des photos en haut et en bas du personnage, mais maintenant je peux dire que nous ne recommandons pas de les prendre. Il est préférable de prendre environ 8 à 12 bonnes photos de l'avant du visage (arcades de la gauche à l'oreille droite). Cela donne de bien meilleurs résultats pour la texture et le modèle. Le seul
inconvénient est que le col du modèle doit être créé manuellement, mais c'est un petit problème.
Après avoir créé un nuage de points, nous le transformons en un
modèle haute poly en
trois dimensions :
Semble déjà mieux, non? Mais le modèle 3D montre beaucoup de bruit:
Cela se produit pour les raisons suivantes:- Flou de mouvement avec des instantanés très rapides
- La micromotion de notre actrice (oui, même bouger le visage de 1 millimètre conduit à un bruit similaire)
La plupart d'entre vous pensent probablement que cela a l'air horrible, et vous avez raison. C'est pourquoi nous avons pris quelques mesures supplémentaires.
Vous pouvez maintenant effectuer une opération appelée
«rétopologie» . Il s'agit d'une technique pour créer un modèle 3D d'une forme plus simple et optimale basée sur un modèle poly élevé.
Voici à quoi cela ressemble en pratique:
Caractère de rétopologie.En effet, le modèle illustré ci-dessus
contient plus d'un million de triangles . Un ordinateur ordinaire avec une fréquence d'images de 30 à 60 ips peut gérer 5 à 6 millions.
(Ces informations sont fournies simplement pour une compréhension générale, en fait, de nombreux autres aspects affectent les performances.) Autrement dit, le jeu ne peut afficher que quelques modèles avec autant de triangles.
Un autre aspect important de la rétopologie est la
création d'un modèle de visage lisse , prêt pour l'animation faciale. Pour la rétopologie, nous utilisons le logiciel Topogun 2.
Voici notre modèle de visage après rétopologie (nous le polirons plus tard, après texturation):
Ensuite, nous avons cuit (dans l'argot des graphiques 3D, cela signifie simplement préparation / création) la
texture du visage à l' aide de nos photos.Cette opération est effectuée presque automatiquement. C'est pourquoi nous avons décidé d'utiliser la photogrammétrie - le modèle du visage et la bonne texture rendent notre caractère naturel.
Hmm, il y a encore beaucoup à faire - comme vous pouvez le voir, il y a de petites erreurs dans la texture. Un autre problème mineur est l'absence d'arrière de la tête et des yeux.
Par conséquent, la prochaine étape sera la
création d'éléments non numérisés et d'éléments qui ne peuvent pas être numérisés, tels que les cils, les cheveux, les yeux. Voyons donc comment cela se fait. Nous utilisons un autre logiciel appelé Cinema 4D. Dans ce logiciel, nous pouvons créer le reste du modèle et améliorer sa texture.
Super, ça a l'air beaucoup mieux. Avant de commencer à travailler sur la texture, nous devons
créer un corps avec des os pour l'animation . (Ce sera un article séparé sur notre blog.)
Pour notre premier personnage, nous avons créé le corps entier manuellement, mais c'était une perte de temps absolument inutile, d'autant plus que lorsque nous l'avons habillé, les parties nues du corps n'étaient visibles que dans de rares moments du jeu.
Après un peu de recherche, nous avons trouvé un excellent moyen de créer des corps 3D pour nos visages numérisés. Pour cette tâche, nous utilisons
le logiciel
Make human free pour une utilisation commerciale. Avec ce logiciel, vous pouvez créer un corps entier, même avec un visage et un squelette. Déplacez simplement les curseurs jusqu'à ce que vous obteniez le résultat souhaité, en plus, il aura un squelette compatible avec le moteur Unity 3d.
Par conséquent, en quelques minutes, nous avons obtenu un
corps entier avec une excellente topologie et même des poids, prêt pour l'animation! (Si vous ne comprenez pas de quoi je parle, alors lisez le deuxième post sur l'animation des personnages, qui sortira bientôt!) C'est un logiciel très utile.
Le seul problème est que
nous devons détruire une partie du modèle en coupant la tête du corps (cela semble effrayant). Nous devons le faire pour le remplacer par un modèle numérisé.
La chose la plus importante ici est que grâce au logiciel Make human, nous avons des poids osseux préparés pour l'animation.
Nous avons juste besoin d'
ajouter des os du visage pour pouvoir animer les émotions du visage ou synchroniser les mouvements des lèvres avec les dialogues. Mais plus à ce sujet sera bientôt le prochain article sur notre blog.
Cela peut prendre une journée entière pour créer le bon système d'os du visage (oui, je sais, il n'y a pas d'os sur le visage, mais des muscles, mais c'est comme ça qu'on les appelle en 3D).
Bien sûr, pour créer de belles textures, vous avez également besoin de beaucoup de travail. Nous utilisons la
technique de séparation des fréquences dans Photoshop pour éliminer les reflets et les retouches de peau. Cela crée un flux de travail bien adapté pour éliminer l'éclairage inutile des textures (même s'il s'agit d'un modèle numérisé d'une pierre, pas d'un visage humain). Vous devriez également essayer ce processus. (Il existe de nombreuses informations sur Internet sur la séparation des fréquences.)
La texture finale d'Albedo ressemble à ceci : (désolé, mais avant la sortie du jeu, nous ne voulons pas disposer d'une texture haute résolution)
Texture d'albédoEt voici un modèle avec une texture albédo déjà appliquée.Maintenant, nous ajoutons les
dents, la langue et les yeux:Voici à quoi ressemble un modèle fini à partir d'un visage et d'un corps scannés réunis avec une texture finie (censure imposée pour que vous puissiez partager l'image sur les réseaux sociaux).
L'aspect fini du corps et du visage 3D.2. Création en temps réel des cheveux du cuir chevelu et des cils.
J'ai écrit ce chapitre parce que créer des cheveux qui fonctionnent et qui ont l'air bien dans un jeu vidéo est un sujet assez large. Probablement certains des plus beaux cheveux que vous puissiez voir dans les jeux AAA. Nous sommes indépendants, nous ne pouvons donc pas consacrer autant de temps à un aspect de nos personnages que les grandes entreprises.
Par conséquent, nous avons
créé des cheveux à partir de polygones avec une texture superposée à eux avec transparence.Comment ça marche? Tout d'abord, nous modélisons des polygones en forme de cheveux, puis nous les plaçons sur la tête du personnage et les déplaçons / distribuons à l'aide d'outils de modélisation 3D. (Dans notre cas, Cinema 4D.) Vous pouvez également le faire dans le générateur de splines - créez une spline avec un maillage dynamique, puis la manipulation des cheveux sera simplifiée.
Ainsi, toutes les coiffures ont été créées à partir de telles parties:Les cheveux sans matière ressemblent à ceci:
Voici une coiffure avec une texture finie appliquée:Et voici la coiffure des captures d'écran, qui est montrée au début du post.
Comme vous pouvez le voir, nous pouvons
changer les coiffures, donc il n'y a pas de problème , par exemple, à ajouter un personnage plus ancien à une coiffure.
Bien sûr, lors de la création de cheveux, nous
utilisons Photoshop et BodyPaint 3d pour dessiner des rayures sur les cheveux et des éléments de formes différentes. Vous pouvez utiliser n'importe quel autre logiciel, mais ce serait formidable s'il avait un mode de visualisation alpha-transparence en temps réel. Ensuite, vous verrez certainement ce que vous faites (et pas seulement les rayures grises sur la tête du personnage).
La texture des cheveux est la suivante:Texture de cheveux albédo avec transparencePour donner aux cheveux un comportement naturel, nous avons essayé d'utiliser un composant de tissu Unity 3d sur la maille des cheveux pour ajouter un léger effet de vent ou de gravité, mais plus à ce sujet dans un autre article.
3. Création de versions plus anciennes de personnages
"Fille tu seras bientôt une femme"Comme je l'ai dit plus haut. dans notre jeu, vous pouvez rencontrer des personnages à différentes étapes de leur vie. Cela ajoute de l'intérêt aux joueurs et nous oblige également à effectuer d'autres travaux intéressants.
Je vais montrer comment nous avons fait une belle fille beaucoup plus âgée. Nous avons regardé de nombreuses vidéos, photos et pages Web sur le vieillissement du corps humain.
Il ne s'agit pas seulement de rides; le visage entier d'une personne change de forme. Vous pouvez en savoir plus à ce sujet
ici, par exemple.
Dans l'article, je parlerai du côté technique du problème. Donc, nous avons d'abord terminé le modèle 3D du jeune personnage avec tous les os. Ceci est très important, car il faut beaucoup de temps pour préparer le squelette et ajouter des poids. Après cela, nous l'avons juste copié et avons commencé à travailler avec une copie du modèle. Grâce à ce flux de travail, nous n'avons pas besoin de nous réengager dans le calage de l'ancienne version du personnage, car il utilise le même système squelette. C'est beaucoup plus important dans le moteur. Un tel système accélère le chargement et le déchargement des ressources, car nous ne chargeons / déchargeons que ce dont nous avons besoin.
Ainsi, nous modifions d'abord le maillage de base et abaissons certaines parties du visage au sol, comme le fait la gravité de la mère en vieillissant. Nez, joues, sourcils, oreilles. Mais nous n'y tenons pas trop, car le modèle a les mêmes os du visage que le modèle du jeune personnage. (Autrement dit, une modification excessive du maillage de base peut entraîner des problèmes.)
Déformation du maillage uniquementEnsuite, nous appliquons de grandes rides et détails avec un logiciel de sculpture. Par exemple, vous pouvez utiliser le Scupltris gratuit. Ensuite, nous les faisons cuire dans une texture appelée carte normale. Pourquoi? Parce que cela nous donne le résultat ci-dessous sans ajouter de triangles supplémentaires au modèle. (Pour que votre PC puisse gérer son traitement.) Nous créons également une carte normale de certains détails en fonction de la texture de la peau, puis les mélangons.
Maillage plus carte normaleEnfin,
nous ajoutons des rides à la texture de l'albédo (texture avec une couleur de base). Nous avons pris des photos de plusieurs personnes âgées, puis ajouté des rides au modèle en utilisant le mélange dans Photoshop.
Maille plus carte de normales de grandes pièces et texture albédo de vieux cuirPar conséquent, la peau de notre modèle de personnage âgé utilise une carte de détails normale et une texture d'albédo. Nous préparons également la texture de diffusion du sous-sol (effet de diffusion du sous-sol, l'effet de la lumière qui brille à travers la peau) et la carte spéculaire, mais dans ce que vous voyez à l'écran, seuls l'albédo et la carte normale sont utilisés (mélangés en une carte de partie normale de grandes pièces + carte de partie normale) .
Ici, nous pouvons voir les parties suivantes:1. Albédo-carte.
2. La carte normale de grandes pièces, basée sur les détails moulés du modèle.
3. La carte des normales de grandes parties mélangées avec des détails de peau créés à partir de la texture de l'albédo.
Un personnage plus ancien est beaucoup mieux dans le moteur Unity 3D, où nous utilisons les shaders appropriés:
Mais deux versions du personnage connecté dans Photoshop (placé dans le moteur en un seul endroit)
4. Recherchez des personnages dans de vrais vêtements.
Donc, nous sommes presque arrivés à la fin, mais pour obtenir l'apparence finale du personnage, il reste beaucoup à faire.
Nous avons scanné beaucoup de vêtements différents. La technique de numérisation est similaire à la numérisation d'un visage ou d'autres objets, mais maintenant cela peut être fait lentement,
généralement les vêtements ne bougent pas (le vent ou les chats qui passent peuvent être très ennuyeux, surtout quand même un léger mouvement peut ruiner les heures de travail).
Nous n'avons pas pu trouver de conseils ou de solutions toutes faites pour la numérisation correcte des vêtements, car voici nos conseils sur ce dont vous avez besoin et ce que vous ne pouvez pas faire:
- Le plus important est de fixer la structure pour que les vêtements soient immobiles; Mieux encore, gardez vos vêtements dans une pose en T stable. Qu'est-ce que cela signifie? Il s'agit d'une pose avec les bras écartés, une position standard pour les personnages des jeux auxquels l'animation est appliquée. Dans cette position également, il est préférable de numériser les vêtements.
Pour cela, nous avons acheté un mannequin. Nous n'avons pas pu trouver immédiatement le mannequin dans la pose en T, donc la prise de vue à la main était très difficile, et encore plus de travail était nécessaire pour combiner des modèles 3D de vêtements numérisés avec les mains vers le bas le long du corps des personnages. Au départ, le système ressemblait à ceci:
Notre premier mannequin avec les bras baissés... nous l'avons donc modifié pour lever la main. Nous avons fait de nouvelles mains à partir de tuyaux en PVC. Voici à quoi ressemble notre Tube-Nook en T-pose:
Ce mannequin a des mains en PVC et est placé dans une pose en TOn peut retirer ce tube pour simplifier l'habillage du mannequin.Eh bien, ça va, mais pourquoi sur notre ami en plastique sont ces points noirs?
En effet, la surface est très brillante et les scripts de comparaison de points en photogrammétrie n'aiment pas beaucoup les choses brillantes, mais ils adorent les points et les caractéristiques spéciales, nous avons donc mis tant de points avec un marqueur.
Cela nous a permis de mieux comparer les positions des photographies dans le logiciel afin d'obtenir de meilleures numérisations de vêtements.Voici à quoi ressemblent les vêtements, dans ce cas, la fourrure (dans la pose en T):- Le deuxième aspect le plus important lors de la création de vêtements à l'aide de la photogrammétrie est de ne pas oublier de prendre des photos sous vos bras et sous vos vêtements. Voici combien de photos nous avons dû prendre pour créer une numérisation suffisamment bonne de ces vêtements:Ici vous pouvez voir le nuage de points de scan:- Certains types de vêtements sont très difficiles à numériser, par exemple avec une longue fourrure ou à partir de matériaux très brillants, il est donc parfois plus facile de ne pas les numériser, mais de les créer manuellement.Par exemple, pour améliorer l'apparence de cette fourrure, nous avons créé des éléments de fourrure supplémentaires avec un canal de transparence alpha. C'est similaire à ce que nous avons fait avec les cheveux des personnages.La partie rouge est les éléments de la fourrure, créés manuellement avec le canal alphaVoici à quoi cela ressemble sans texture- Certains types d'objets sont plus faciles à numériser, par exemple, cette jupe mate est très belle car elle est faite de matériau mat. Ici aussi, nous avons utilisé des images HDR pour obtenir plus d'informations sur les ombres et les hautes lumières, mais la photogrammétrie hdr prend beaucoup de temps. Pourquoi?
Parce que chaque photo doit être prise avec un trépied, sinon les photos seront floues. Imaginez maintenant le niveau de contrariété quand, après une heure de travail, l'un de nos chats a simplement sauté sur cette fourrure. Nous avons dû tout recommencer.Ça a l'air bien, non? En général, plus vous passez de temps à numériser, meilleur est le résultat obtenu et moins de post-traitement.- Les courroies constituent un autre élément préférable à effectuer manuellement plutôt que de numériser. Nous les avons créés manuellement. Nous avons fait la boucle des textures de sorte que même avec une faible résolution de textures, la qualité du jeu était élevée.- La couronne a également été faite semblable aux cheveux, en utilisant la transparence. Il n'est pas encore prêt, mais il peut être vu dans les captures d'écran:Eh bien, c'est tout pour les vêtements pour l'instant.5. La connexion de tout dans le moteur de jeu.
J'ai dit plus tôt que nous utilisons le moteur Unity 3D. Je vais vous indiquer les shaders et les paramètres que nous avons utilisés pour que le modèle ressemble aux captures d'écran.Pour tous les éléments du personnage, nous utilisons maintenant le Shader en alliage gratuit. Nous l'avons choisi car il a tout ce dont nous avons besoin, en particulier l'option de dissolution pour chaque variation de shader et de nombreuses autres options dans les segments. Vous pouvez utiliser n'importe quel autre shader, mais nous utilisons Alloy (en plus, c'est gratuit).Différentes positions de la lumière donnent des effets intéressants- Skin: pour cette partie des personnages, nous utilisons un skin shader avec effet de diffusion souterraine et de transmission de la lumière. Quel est l'effet de diffusion souterraine? Il s'agit d'une simulation du passage de la lumière à travers la peau. Regardez les photos que nous avons prises:Voici à quoi ressemble la dispersion souterraine d'une main dans le monde réelComme vous pouvez le voir, la lumière (si elle est suffisamment forte) traverse la peau.
Cela donne un aspect très naturel, surtout en basse lumière. Vous pouvez voir comment cet effet se comporte dans The End of the Sun par l'exemple de ce gif et les captures d'écran illustrées ci-dessus. (Notez que bien que le modèle n'ait même pas de texture spéculaire et de carte de subsurface, il sera un peu meilleur au stade final.)
- Les yeux : comme vous le savez, les yeux sont un miroir de l'âme. Et c'est vrai - il est très difficile de donner à un personnage un aspect naturel sans rendre ses yeux parfaits. L'œil n'est pas qu'une sphère. Il est plat où se trouve l'iris et la pupille est encore plus basse. C'est pourquoi nous utilisons le shader Parallax. C'est une surface qui crée l'illusion qu'il y a autre chose de plus profond et qui donne de très bons résultats!
Yeux avec une sphère transparente extra large pour une réflexion à distanceDes yeux sans cette sphère.De plus, nous pouvons maintenant contrôler l'expansion des pupilles, et dans les cinématiques, cela crée un aspect très naturel (un peu effrayant lorsque la pupille est dilatée au maximum, mais à des fins fantastiques, cet effet est toujours utile).
- Et le dernier: puisque nous utilisons un squelette pour toutes les versions de vêtements et de corps, nous pouvons facilement transformer un jeune personnage en un plus ancien ou changer ses vêtements. Cela crée d'excellentes opportunités pour créer des scènes cinématographiques et optimise également remarquablement le jeu.
C'est ainsi que nous pouvons mélanger les éléments du personnage ainsi créé.
- Pour les vêtements, nous utilisons un shader double face afin que vous puissiez le voir des deux côtés.
- Pour les cheveux, nous utilisons un shader spécial double face avec des bords transparents lisses.
6. Résultats finaux
Sous la coupe se trouve une galerie complète de l'apparence de la version finale du personnage dans le moteur Unity 3D: (mais elle est toujours en cours de développement)