Aperçu de la création d'un modèle

From Valve Developer Community
Jump to: navigation, search
English Русский
Ce terrible article est en cours de partitionnement pour obtenir des parties plus petites.
Résultat obtenus jusqu'ici: Studiomdl, Exporting a model, Compiling a model

Cet article est une introduction au modeling de personnages, d'armes, de véhicules et objets pour le moteur Source. D'autres articles dans Category:Modeling couvrent le processus de création, le rigging, l'animation, la compilation, et la définition d'interaction physique plus en profondeur.

Fichiers et outils de base

Softimage Mod Tool pour Half-life 2 et autres jeux/mods basés sur le moteur Source

Tout les modèles de Half-Life 2 ont été créé avec Softimage|XSI. Une version gratuite de Softimage|XSI, appelé Softimage Mod Tool est particulièrement adapté à la création de personnage et d'objet par des modders et est disponible sur le site d'Autodesk. La Version 6 inclus le plugin Valve Source (essentiel lorsque vous créez du contenus pour le moteur Source), des tutoriels, des forums, et d'autres ressources pour bien démarrer avec Softimage Mod Tool. Malheureusement les nouveaux propriétaire de Softimage n'y intègrent plus le plug-in Valve Source! Cependant les Dieux nous ont souris et nous ont fournis un lien, ressuscitant le plugin Valve Source du 99eme niveau des abysse! Réjouissez-vous!

Les fichiers .SMD

Les fichiers .SMD sont exportés a partir de Mod Tool par le menu file/export. Ils existent en trois variations:

  • Le fichier SMD reference est une reproduction complète du modèle, incluant sa géométrie, sa structure de squelette, ses textures, et les liens entre les vertices du mesh et son squelette. Les .SMD de référence ne contiennent aucune donnée d'animation -- ils ne produisent qu'une image statique du modèle dans son intégralité à un moment donné dans le temps.
  • Le fichier .SMD physbox représente le volume utilisé par le moteur physique pour calculé les collisions et tout type de liens entre les vertices et le squelette.
  • Le fichier .SMD animation contenant seulement les données d'animation et suffisamment d'information sur le squelette pour que le programme StudioMdl s'assure que les données d'animation correspondent au squelette du modèle de reference.

Comme vous pouvez le constater un modèle animé nécessitera au moins deux .SMD – et un coup d'oeil aux fichiers sources de Half-Life dans le SDK suffit a se rendre compte que beaucoup de modèles inclus un grand nombre de fichiers d'animation. La majorités des modèles cependant utilisent seulement le .SMD de référence.

Fichier .QC

Il peut être plus simple de visualiser les fichiers .QC comme une sorte de table des matières pour les projets de modèles: le .QC fournis une liste complète de tout les composants inclus dans le modèle terminer. La fonction première du .QC est de dire au programme de compilation StudioMdl ou trouver les textures et les fichiers SMD.

Le .QC est aussi l'endroit ou les données du moteur de jeu sont spécifiées. Par exemple, le fichier .QC dit au moteur ou placer des effets tel que des sprites lumineux ou de la fumer, quelle animation correspond aux différentes activités de l'IA, et quand certain sons doivent être jouer.

StudioMDL

Studiomdl.exe et un programme en ligne de commande qui crée les fichiers de modèles pour Half-Life. Il prend pour parametre de commande le fichier .QC et utilise celui ci pour trouver le fichier .SMD (modèle) concerner. Le programme fournis aussi un retour sur le nombre de mémoire utilisé par la géométrie, les textures et les données d'animation du modèle, qui peuvent être utiles pour débugger et optimiser vos modèles. Voir Compiling Models Basics pour savoir comment compiler un modèle avec studiomdl.exe.

Si vous n'êtes pas à l'aise dans l'utilisation des lignes de commande, vous pourriez vouloir essayer un outils tiers comme GUIStudioMDL ou Studiocompiler.

Fichiers .MDL

La sortie finale de Studiomdl pour chaque modèle Half-Life consiste en un groupe de fichiers dans le dossier gamedirectory/models prêt à être utilisé par le moteur de jeu:

  • un fichier .MDL définissant la structure du modèle ainsi que ses animations, sa bounding box, sa hit box, son materiel, son mesh et ses informations de LOD,
  • un fichier .VVD qui stocke les données de position indépendante pour l'influence des os (bone weights), les normales, les vertex, les tangentes et les coordonnée de texture utilisé par le MDL,
  • actuellement trois types de fichiers VTX séparés: .sw.vtx (Logiciel), .dx80.vtx (DirectX 8.0) et .dx90.vtx (DirectX 9.0) qui stocke les materiaux optimisé pour le hardware, le skinning et les informations de triangulation pour chaque LOD de chacun des mesh dans le MDL,
  • souvent un fichier .PHY contenant un modèle de collision rigide ou articulé (ragdoll),
  • et parfois un fichier .ANI pour le chargement a la demande de séquences d'animation créé en utilisant la commande QC $animblocksize. Ceci est idéale pour les "cinématiques physique".
  • Plusieurs PNJ peuvent aussi utilisés des fichiers .MDL additionnels pour stocker des données d'animation. Habituellement les nom de classe des PNJ sont ajoutées avec une étiquette de description, tel que:
  • _animations.mdl, _gestures.mdl, _postures.mdl
  • _ss.mdl
  • _shared.mdl

Fichiers .VTF & .VMT

Avant de pouvoir fonctionner dans le jeu, tout les modèles du monde doivent avoir un 'matériau' et au moins un 'skin' ainsi que la géométrie du mesh.

  • Le skin est un fichier targa (TGA) devant être mapper sur la géométrie du mesh dans le mode Render de XSI avant l'exportation en SMD.
  • Avant même de compiler le MDL, vous devez compiler le TGA en un fichier VTF (donnée de skin) (en utilisant Vtex ou studiocompiler) et créé le fichier VMT (donné du matériau) (en utilisant Notepad ou studiocompiler). Les fichiers VMT et VTF doivent êtres placés dans le répertoire gamedirectory/materials/models de sorte que le fichier MDL sache ou trouver le bon matériau et les textures a appliqué au modèle.
  • Vous pouvez inclure des skins additionnels, comme des normalmaps, en les réferencant dans le fichier .VMT. Comme le fichier VMT est externe au MDL, vous pouvez en modifier son contenus (mais pas son nom ni son emplacement) sans avoir a recompiler le MDL. De plus, le VTF est externe au VMT, et vous pouvez donc modifier (et recompilé) le skin sans changer le VMT ou le MDL.

Processus de modélisation

Avant de commencer la modélisation, vous devriez avoir un dessin clair, un peu comme un plan, de votre personnage, véhicule ou objet. Une fois votre personnage réalisé, vous pouvez créé votre géométrie, modifier les lignes pour correspondre à ce que vous voulez, ajouté les coordonnées UV pour la texture, créer le squelette de votre mesh, ajouté des expressions facial.

Consideration pour la modélisation d'un personnage

Avant de commencer la création de votre modèle, vous devriez considerez certaines chose comme, la performance, l'utilisation en jeu, le budget, les animations le concernant, et les conventions de nommage. Le plus gros points que vous devriez considérer avant de planifier votre modèle est le rôle de celui ci dans votre Mod

Comment ce personnage va t'il être utilisé?

Est-ce un personnage qui sera toujours attaquer a distance ou combattre au corps à corps? Ce personnage va t'il apparaître dans des espaces sombres, en plein jour ou les deux? Quel est la couleurs de fond sur laquelle ce personnage va apparaître? Quel est l'importance de ce personnage dans votre mod, est-ce un personnage principale ou secondaire? La meilleur chose que vous puissiez faire lors de votre conception est de décider de la meilleur distance, pose et environnement dans lesquels votre personnage va apparaître durant le jeu, ensuite assurez vous que votre personnage fonctionne du mieux qu'il peut dans cette situation.

Concept art

La plupart du temps, vous devriez démarrer votre modèle avec un bout de concept art résolvant la plupart des problèmes de design, c'est a ce moment que vous décider ce qu'est votre personnage, quel forme il a, quel matériaux utilise t'il et même quels sont ses positions de base pouvant servir a la conception d'animation. C'est aussi un moyen relativement rapide de vérifier vos idée avec votre équipe sans dépenser tout le temps nécessaire à la construction, le texturing et l'animation de votre personnage. Avant d'aller plus loin vous devriez tenter d'obtenir le plus de retour possible sur votre design. Tout les personnages de Half-Life 2 sont passés par de multiple versions et modifications avant d'être finalisés.

Le Model Sheet

Ce model sheet montre les vus de face et de coter d'un combattant de la résistance mâle et femelle de Half-Life 2.

Le Concept art montre généralement le personnage dans une position et un angle qui le rend difficile a utiliser comme référence pour la modélisation, donc pour votre prochaine étape, vous devez concevoir un model sheet. Le model sheet est une vue du personnage de face et de coter, tracé de manière rectiligne sans aucune perspective, et dans une position neutre. Le model sheet est un croquis de la géométrie, ou vous prenez des décision concernant les proportions, la silhouette, et la forme. Habituellement, vous voudrez utiliser le model sheet en image d’arrière plan dans votre fenêtre d'XSI lorsque vous modéliserez, (parfois référer a la rotoscopie, voir la documentation XSI)

Ce model sheet montre les vus de face et de coter d'un combattant de la résistance mâle et femelle de Half-Life 2.

Performance et Budget

Compte des polygones pour certains des personnages de Half-Life 2:

  • Soldats: 4,682
  • Policier: 3,852
  • Résistant: 4,976
  • Zombie: 4,290
  • Hélicoptère: 6,415
  • Strider: 6,444
  • Alyx: 8,323

Véhicules:

  • Buggy: 5,824
  • Tacot: 16,536
  • Mil Mi-8: 25,024

Il n'y a pas de règles fixes pour déterminer combien de polygone vous pouvez utiliser dans vos modèles, ou quel résolution les textures de vos matériaux peuvent avoir. Il y a un plafond quand à la capacité du moteur, (10,000 polygones/modèle, 17,433 vertex et des texture de taille 2048) mais celle ci ne sont généralement pas celle dont vous devriez avoir besoin. Vous devez prendre en considération combien de personnages, véhicules, ou objets doivent être affiché a l'écran. Si vous devez avoir une dizaine d'entre eux a l’écran a un moment donné, vous aurez alors un budget différent de celui ou vous ne voudriez avoir que l'un d'entre eux a l’écran. Avec des personnages humanoïdes, spécialement pour une utilisation en multijoueur, vous ne devriez pas dépasser les 4000 polygones pour obtenir un personnage avec suffisamment de détail pour en décrire la forme, pliant convenablement au niveau des articulations, et disposant de suffisamment d'arrête pour recevoir convenablement la lumière. Bien entendus vous pouvez avoir plus que ça, mais avec du normal mapping, et des textures haute résolution, vous ne devriez pas en avoir besoin.

Un bon point en travaillant avec XSI est que vous pouvez conserver votre modèle en quads et avoir des arrêtes bien organisées (edge loops) définissant votre forme, avec cette sorte de modèle, il est facile d'ajouter ou supprimer des arrêtes, d'autant plus que les coordonnées UV sont préserver et vous pouvez facilement re-enveloppé votre mesh avec des vertex weights enregistrés. Les niveaux de détail sont supportés par le moteur Source et permettent d’améliorer grandement la vitesse de rendu.

Créé la géométrie

Vous avez maintenant une idée précise de ce à quoi votre personnage va servir, quel sorte de design vous souhaitez créer, les spécificités de la géométrie de face et de coter, et a quoi votre budgets de polygones ressemble. Il est maintenant temps de créé votre géométrie. La façon de créer un modèle n'est pas spécifique au moteur Source, nous ne couvrirons donc pas ceci en profondeur, nous nous contenterons de parler de quelques techniques de base permettant d'en faciliter le processus.

Approche de la modélisation

Il y a beaucoup de manière de démarrer la création d'un modèle, mais l'approche standard de l'industrie et de fait la subdivision de surfaces. Lorsque vous créer du contenus pour le moteur Source, vous préférerez sans doute utiliser un ou deux niveaux de subdivision, ce qui est un bon moyen d'obtenir une forme organique avec une cage de contrôle de peu de polygones. En utilisant cette méthode, vous effectuerez la plupart du travail en réalisant de l'extrusion de géométrie, et en déplaçant les vertex et arrêtes résultantes jusqu’à correspondre à votre model sheet que vous aurez dans l’arrière plan de votre fenêtre. Une erreur fréquente commise par les modeleurs débutant et de ne pas tirer avantage de l'influence des vertex weight résultant d'une subdivision, veuillez vous référer a la documentation d'XSI pour plus d'information sur le fonctionnement de la subdivision des surfaces. A un certain point du processus, vous devrez prendre le contrôle direct du mesh résultant pour réaliser les finition, a une plus petite échelle de détail.

Modélisation symétrique

Apprendre a identifier les zones symétriques de votre modèle peut aider a sauver du temps durant la modélisation, la création d'UV et le processus de texturing. En outre, les éléments répétitif de votre design ne doivent être créé qu'une seul fois, puis cloner la ou le modèle le nécessite. Il y a plusieurs outils pour la modélisation symétrique, mais utiliser Symmetrize Polygons est de loin le plus efficace. Avec cet outil d'XSI (Model>Modify>Poly. Mesh>Symmetrize Polygons) vous pouvez dupliquer des zones de votre mesh avec de transformation spécifique qui préserve les coordonnées UV et tout autre propriété que vous avez définis.

Edgeloops et Animation

Une chose requise lors de la création de votre modèle et un bon arrangement des arrêtes autour des articulation pour que celle ci se déforment avec précision, avec de bon edge loop et un bon enveloping, vous pourrez même avoir les épaules fonctionnant dans la plupart des positions. La position et l'envelope weight des Edgeloops a presque toujours besoin de réglage une fois l'enveloppe de votre mesh réaliser sur le squelette et tester dans différentes poses.

Editer les Hard/Soft Edges

Après avoir soigneusement construit la géométrie de votre modèle, vous devrez définir quels arrêtes sur votre modèle devrons être des plis. Vous pouvez utiliser l'option de lissage automatique, mais cela donne généralement des résultat peu idéale. Choisir ou se trouvent les hard edges n'est pas une tâche facile. Les Hard edges sont généralement utilisés pour définir les plis, craques, frontière entre matériaux, zones ou la géométrie a de larges angles entre les faces, (plus que 75 dégrées). En générale, toutes les arrêtes ayant un angle supérieur à 90 dégrées entre les polygones devraient êtres des hard edges, vous voudrez peut être commencer par une configuration des hard edge automatique. Pour éditer les hard edges, entrer dans le mode de sélection des arrêtes (touche raccourcis "i" par exemple) sélectionner quelques arrêtes, puis cliquez droit sur la sélection et choisissez Mark hard edge/vertex. Sélectionner de nouveau ces arrêtes, et choisissez la même commande pour activer / désactiver la propriété des hard edge. Vous pouvez aussi supprimer la propriété hard edge en supprimant le noeud edge dans la fenêtre d'exploreur.

Définir l'espace de coordonnées UV

XSI avec plusieurs UV configurés.

La prochaine étape du processus de modélisation et l'édition des coordonnées de texture. Pour des informations de base sur l’édition de coordonnée UV, veuillez vous référer à la documentation d'XSI, (section Shaders, Lights and Cameras. Section: Texturing Basics). Un piège courant lorsque vous commencer a utiliser l’éditeur de texture d'XSI et de se retrouver avec plusieurs configuration d'UV, vous souhaitez cependant n'avoir qu'une configuration UV par modèle. Dans cette image, on peut voir comment se retrouver avec plusieurs configurations d'UV dans un seul noeud de coordonnée de texture.

Pour le débutant, ceci est généralement a éviter. Si vous avez de bonnes informations dans les deux configurations, utilisez la fonctionnalité copier / coller des UV dans le Texture Editor pour consolider vos configurations d'UV.

Comme point de départ, essayez d'utiliser le type de mapping Get>Property>Texture Projection>Cubic, ceci vous donnera une séries de bonne UV Islands. Vous pouvez ensuite utiliser l'outil Island Heal du texture editor pour rapidement fusionner ces parties et corriger la transformation et l'échelle. De nouveau, referez vous a la documentation d'XSI à la section The Texture Editor, Healing Polygon Islands.

Après plusieurs réparation et arrangement, vous devriez avoir une configuration d'UVs avec peu de distorsion et de stries. L'utilisation de cette texture de départ en damier (clique droit enregistrer sous...) comme matériau de départ peu vous aider a évaluer vos UV. Si vous constater une zone disposant d'une distorsion inacceptable, l'utilisation de l'outil Relax UV peut résoudre la plupart des problèmes. Dans le cas ou ceci ne fonctionne pas, utiliser simplement Subprojection du Texture Editor pour ré-appliqué les UVs dans cet espace.

Enveloppé votre mesh à votre squelette

Lorsque vous disposer d'un bon premier jet de votre géométrie, des UV configurer, et que vous avez un squelette acceptable, il est temps d'envelopper votre mesh a ses os. Vous accédez a cela a travers le panneau de commande animation, appuyez sur 2 pour changer la barre d'outil en mode animate. Avec votre mesh sélectionner, choisissez Deform>Envelope>Set envelope, puis sélectionner les os que vous souhaitez y inclure. Pour éditer le résultat de l'enveloppe, utilisez le panneau weight, accessible par l'icone de pinceau en bas a gauche de l'interface utilisateur. Dans ce panneau, vous pouvez accéder au weight editor, ou vous pouvez charger et enregistrer votre envelope weights. Pour des explications en profondeur sur le processus d'enveloppement, referez vous a la documentation d'XSI section: Envelopes.

Réglages des enveloppes et géométrie pour l'animation

Habituellement, la première passe d'une enveloppe est réaliser sur un squelette en position de référence, mais cela ne veux pas dire nécessairement que l'enveloppe fonctionne convenablement, pour voir l'enveloppe en action, vous devez passer par un processus de va et viens en éditant l'enveloppe, déplaçant le squelette, puis en corrigeant les déformation en réglant votre enveloppe. A ce point, il peut être nécessaire d'ajouter des edgeloops aux articulations, si vous n'arrivez pas a obtenir une déformation correct avec une édition de l'enveloppe seule. XSI est idéalement conçus pour ce processus, car non linéaire, vous pouvez donc ajuster votre géométrie sans avoir à ré-appliquer l’opérateur d'enveloppe de nouveau.

Répertoires et configuration de l'espace de travail

Structure des répertoires

Voir Source SDK Files and Directory Structure pour de l'information sur l'emplacement des modèles compilés et des fichiers source. Voir Compiling Models pour de l'information sur la manière de compiler un modèle utilisant cette structure.

Astuces pour Windows

Dans l’explorer Windows, ouvrir le menu Outils > Options des dossiers > Types des fichiers. Associer les fichiers .MDL avec HLMV.exe, double cliquez sur un fichier .mdl pour obtenir automatiquement un aperçus de celui ci dans le modelviewer. Associer les fichiers .QC à studiomdl.exe, ainsi vous pourrez compiler en double cliquant simplement sur le fichier .QC. Vous pouvez toujours utilisez la commande Ouvrir avec... pour l’éditer dans un éditeur de texte comme notepad, ou vous pouvez ajouter une entrer dans le menu clique droit nommer Editer, qui ouvrira ;e fichier .QC dans l’éditeur de texte. Vous pouvez aussi créé une entrée dans le menu clique droit pour compiler les fichiers .TGA avec Vtex.

Alternativement (ou en supplément a la technique ci dessus), créez des raccourcis bureau à studiomdl.exe et vtex.exe. Vous pouvez ensuite glisser et déposer les fichiers .QC dans le raccourcis StudioMdl et les fichiers .TGA dans le raccourcis Vtex pour compiler ceux ci.

Voir aussi