Aller au menu - Aller au contenu

Icône Importer du contenu

Mise à jour : 27/03/2012
Difficulté : Intermédiaire Intermédiaire Durée d'étude : 2 heures Creative Commons BY-NC-SA
14 109 visites depuis 7 jours, dont 314 sur ce chapitre classé 23/786
Maintenant que vous savez comment créer votre contenu, voyons comment l'importer dans UDK !
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Un mot sur les packages

Vous vous souvenez des Packages ? Vous allez bientôt créer votre premier objet, il est temps d'en parler.
Quand vous aurez beaucoup de contenu, il sera indispensable de le répartir en différents packages, chacun avec un thème précis : un par arme ou véhicule, un par type de décor ("Murs en pierre", "Murs métalliques", "Gameplay", "Fosses à piques" :-° , etc).

Vous devez également créer un dossier à vous dans UDK\UDKGame. C'est dans ce dossier que je vous conseille de sauvegarder vos packages ! Voici comment je m'organise personnellement : un dossier par package, et des sous-dossiers pour les différents types de ressources.

Fichiers
Dans Mesh, je place les fichiers Blender et dans Texture les textures et leurs sources Photoshop. Stone est le nom du package, et j'ajoute le préfixe CA à tous mes packages.


Cette organisation vous permettra de vous y retrouver facilement. Rien ne vous empêche de tout faire sur le bureau de votre PC, mais ça sera aussi plus compliqué pour vous. :-°

Importer un model

Importer votre objet dans UDK est la chose la plus simple du monde. Nous allons reprendre l'exemple précédent et importer ce bloc de pierre. A vous de jouer : vous devez avant tout créer un objet 3D et lui associer une UV Map, ainsi qu'une texture et une normal map si vous êtes motivés.

Je ne vous donne pas d'exemple tout fait. SI vous voulez créer votre jeu, vous aurez un certain nombre d'objets à créer, il va bien falloir commencer un jour !


Importer un mesh


Importer un Static Mesh dans UDK est très simple, il vous suffit d'exporter votre mesh au format ASE (ASCII Scene), FBX ou T3D depuis votre éditeur favori. Ensuite, lancez UDK Editor et restez dans le Content Browser.

Image utilisateur
Cliquez sur le bouton Import en bas à gauche de l'écran pour ouvrir un navigateur


Le menu d'importation est accessible via le bouton Import du Content Browser. Naviguez jusqu'à votre objet et double-cliquez dessus ! Si vous ne le trouvez pas, c'est que vous n'avez pas exporté le fichier dans un des formats supportés.

Image utilisateur
A vous de choisir le nom du package et de votre objet.


L'option Groupingest très utile. Elle vous permet de définir des groupes dans un package, et je vous le conseille: Mesh pour les models, Texture pour les textures, Sound, Material, etc. Vous pouvez mettre ce que vous voulez, mais organisez-vous. Une dernière chose : si vous choisissez comme nom de package un package qui n'existe pas, comme c'est probablement le cas, vous allez le créer. Enfin, cliquez sur OK pour importer le mesh.

Mon Static Mesh est tout gris et bleu !

C'est normal : aucun matériau ne lui est associé, UDK n'importe ici que la géométrie de votre objet et pas du tout ses couleurs, textures... Nous allons y remédier. Mais avant tout, sauvegardons notre travail !

Sauvegarder


Faisons un point sur la gestion des packages et des fichiers, avant de créer un Material pour décorer votre objet.
Sauvegarder est très simple : il suffit de sélectionner le nom du package dans l'arborescence et d'utiliser le raccourci CTRL + S pour sauvegarder et donc enregistrer le package au format UPK, comme Unreal Package. Rappelez-vous de votre organisation pour enregistrer au bon endroit !

Image utilisateur

L'état normal du Content Browser avant sauvegarde. Notez l'étoile à côté du nom de votre package dans l'arborescence ! Elle indique qu'il faut sauvegarder ce fichier car il a été modifié (ou créé, ici)

Importer des textures et créer un matériau

Importer les textures


Maintenant que vous avez compris le principe, tout va aller très vite. Pour importer vos textures, c'est le même procédé. Je vous conseille d'utiliser le format TGA (Targa) comme intermédiaire entre vos fichiers Photoshop, GIMP, ... et UDK.
Autre règle: vous devez absolument avoir des dimensions d'image parmi celles-ci : 128, 256, 512, 1024 (le standard) et 2048 (pour de gros objets très détaillés seulement !).
Pour les noms, la pratique courante chez Epic Games est la suivante :
  • Un préfixe pour indiquer le type de ressource : T_ pour une Texture, M_ pour un Material, A_ pour de l'Audio, SK_ pour un Skeletal Mesh, SM_ pour un Static Mesh... ;
  • Un suffixe pour les textures :
    • _D pour Diffuse ;
    • _N pour Normal ;
    • _E pour Emissive ;
    • _S pour Specular


Pour importer une texture, c'est exactement la même chose, sauf que vous devriez utiliser le mot-clef texture pour le Grouping. Une nouveauté cependant : les options de compression !

Image utilisateur


Dans la pratique, seulement trois sont utiles :
  • TC_Normal, par défaut ;
  • TC_NormalMap que vous devez utiliser pour vos normal maps ;
  • et TC_Grayscale pour les tetxures en niveaux de gris, comme Specular ou Emissive.


UDK se fige quand je clique sur OK !

Eh oui. UDK réalise des optimisations et compressions à tous les niveaux de la chaîne : importation, sauvegarde, Cooking... Le résultat : des taux de compression hallucinants. Pour exemple, une de mes maps pèse plusieurs centaines de Mo en fichiers avant importation, et seulement 30Mo une fois terminée et publiée !
En revanche, ça a un prix : importer une texture peut prendre une bonne minute et plus la résolution est élevée, plus c'est long. Pas de panique, UDK n'a pas planté, il ne répond plus c'est tout.

UDK a vraiment planté : "Le programme a cessé de fonctionner" !

Si c'est le cas, c'est sa façon de dire qu'il n'aime pas votre texture. Assurez-vous d'avoir respecté les bonnes dimensions, de ne pas avoir activé la compression RLE sur le Targa, et d'être en mode 24 bits et tout ira bien.

Créer un Material


Cliquez sur le nom de votre package dans l'arborescence, et dans la liste du contenu (votre mesh et vos deux textures) cliquez droit et choisissez New Material. Vous devez commencer à connaître cette fenêtre par cœur. Indiquez Material dans Grouping, et un nom explicite, avec un préfixe M_ pour Material par exemple. Cliquez sur OK : l'éditeur Material s'ouvre.

Image utilisateur
Unreal Material Editor


Rassure-vous : cet outil est bien plus simple qu'il n'en a l'air. Cette zone noire à gauche est la zone de prévisualisation, à droite, vous avez un éditeur exactement comme celui de Kismet ! Ce gros bloc avec plein de connexions, c'est le rendu final avec plusieurs canaux : Diffuse, Emissive, Specular, SpecularPower et Normal sont amplement suffisants pour l'instant.

Il faut commencer simple : ajouter vos textures ! Pour ceci, la manipulation exige d'ajouter un node TextureSample. Ajoutez-le avec clic droit - Texture - New TextureSample. Ensuite, vous pouvez le déplacer comme dans Kismet, avec CTRL + clic gauche maintenu. Et maintenant, vous devez taper le nom de la texture dans les propriétés en bas. Puis appuyez sur ENTREE.

Image utilisateur
Tapez le nom de la texture : UDK devrait trouver tout seul le résultat.


Vous devriez avoir la texture affichée à la place du carré noir. Si c'est le cas, reliez-la sortie en haut à gauche à la connexion Diffuse du matériau, comme dans Kismet, et recommencez avec votre Normal Map si vous en avez une. Vous devriez avoir votre matériau complet affiché à gauche.

Image utilisateur
Un matériau basique terminé. Vous pouvez le visualiser sur d'autres objets basiques avec les boutons turquoise dans la barre d'outils, qui représentent les formes basiques à essayer.


Fermez la fenêtre, et acceptez de sauvegarder les modifications, bien sûr !

Gérer les models : collisions, matériaux

Un material pour votre mesh


Il est maintenant temps d'appliquer enfin notre matériau à notre model 3D ! Sauvegardez le package (cela peut prendre du temps maintenant que vous avez ajouté des textures) et double-cliquez sur le model.

Image utilisateur
La fenêtre d'édition de Static Mesh


Ce qui vous intéresse est dans la partie droite de l'image : les options du model. En particulier, l'arborescence des différents éléments, nommée LODInfo.

LOD signifie Level of Detail. Vous pouvez dans UDK modifier dynamiquement votre model 3D à l'aide des options en bas à droite, pour créer des niveaux de détail : très détaillé, peu détaillé, forme basique... Cela vous sera utile si vous réalisez un jeu extrêmement détaillé puisque vous pourrez baisser le niveau de détail des objets très éloignés qu'on distingue à peine.


Naviguons dans l'arborescence LODInfo :
  • 0 : c'est le LOD 0, le niveau de détail de base en quelque sorte. C'est votre model, il n'y a pas de LOD moins détaillé de toute façon.
  • Elements : la liste des meshs qui constituent le model. Là encore, il n'y en a qu'un, mais vous pouvez créer des models en plusieurs parties, notamment si vous voulez leur assigner plusieurs matériaux.
  • 0 : il n'y a qu'un seul élément ici, c'est bien lui. Il a une mention Material=None, on va changer ça ! Cliquez sur la flèche triangulaire à gauche de la ligne pour développer le menu.

Apparaît une ligne Material. Si vous cliquez dessus, la zone concernée sur le model va s'illuminer en violet. Entrez le nom de votre Material et appuyez sur ENTREE, ou utilisez l'icône en forme de loupe pour naviguer dans le Content Browser puis la flèche verte pour sélectionner le Material. C'est fini ! Réduisez l'arborescence pour enlever le halo violet sur le model.

Image utilisateur
Votre model et son matériau


Les collisions


Les collisions, dans le jeu vidéo, désignent la capacité d'un objet à ne pas être pénétrable par un autre. C'est un mécanisme qui n'est ni automatique ni évident : par défaut, vos models importés ne disposent pas de collisions. Il faut créer une sorte de boîte invisible autour de votre objet qui empêche d'autres objets, eux aussi pourvus de collisions, de pénétrer dans le model.
Pour résumer simplement, les collisions vous permettent de marcher sur votre objet ou de vous en servir comme mur !

Pour l'instant, votre mesh est complètement dépourvu de collisions. UDK vous le signale dans le Content browser pour vous en avertir ! La bonne nouvelle c'est qu'UDK est capable de les générer automatiquement.
Cliquez sur View - Collision pour activer leur affichage, puis dans le menu Collision, choisissez une méthode de génération. En voici une brève présentation :
  • 6DOP : un pavé droit aux dimensions de l'objet ;
  • 10DOP-_ Simplified Collision : plus fidèle et adapté aux objets circulaires, par exemple pour une colonne ou un pot de fleurs, utilisez 10DOP-Z, pour un canon, 10DOP-X ou Y suivant l'axe ;
  • 18DOP et 20DOP : un peu plus de détail ;
  • Sphere simplified : inutile ;
  • Auto Convex Collision : un des plus intéressants, il permet de régler complètement les options de génération. Attention, n'en abusez pas, c'est un dernier recours, il n'est pas très fiable.


Image utilisateur
Le mesh et ses collisions avec DOP6


Vous pouvez sauvegarder. Votre mesh est prêt à être placé dans le jeu !

Que faire si aucune collision automatique ne donne de résultats corrects?

Vous avez probablement mal conçu votre mesh, il est trop compliqué par exemple, ou bien c'est une pièce concave, comme une voûte de tunnel. Auquel cas, si vraiment vous ne pouvez pas le séparer en plusieurs blocs (ce qui est vraiment la meilleure solution), il vous reste deux choix :
  • Créer un volume BlockingVolume dans la map autour de ce mesh ;
  • Désactiver la collision simplifiée et passer à de la collision "par polys", qui est bien plus gourmande en ressources et donc uniquement faisable avec des models peu détaillés. Pour ce faire, dans l'éditeur de Static Mesh, désactivez UseSimpleBoxCollision, UseSimpleLineCollision et UseSimpleRigidBodyCollision.


Pour aller plus loin


Comme d'habitude, vous n'êtes pas obligés de lire ces pages, mais c'est la documentation de référence d'UDK. Si vous avez une question à poser sur ce que nous venons de voir, il y a fort à parier que la réponse est ici. Bonne lecture !

Le Lightmapping

Une fois ces bases comprises, voyons un dernier point sur ce sujet : le Lightmapping.

Qu'est-ce que c'est que cette technique ?

Vous ne le savez pas encore mais dans vos niveaux UDK, pour chaque objet, une texture correspondant à l'éclairage de l'objet est réalisée quand vous calculez l'éclairage. Vous l'avez probablement compris dans les étapes précédentes : c'est par l'UV-Mapping que les coordonnées sur la texture sont associées à l'objet 3D... C'est exactement comme ça que fonctionne le Lightmapping : vous allez réaliser une UVMap spéciale pour l'éclairage, ou lightmap !

Comment réaliser une lightmap ?


Il y a deux façons de s'y prendre : la méthode manuelle, ainsi que la méthode automatique. Par simplicité, nous allons nous attarder sur la seconde ! Elle donne de très bons résultats et elle nous suffira. Pour ce faire, il suffit d'ouvrir votre StaticMesh avec l'éditeur dédié. Concentrez-vous sur les options du mesh, en haut à droite.
  • LightMapCoordinateIndex : ce champ indique quel est le numéro de l'UVMap affectée à l'éclairage. Par défaut, 0 puisqu'il y a une seule UVMap !
  • LightMapResolution : la résolution de la texture utilisée pour la lumière. 256 est une valeur importante, 32 ou 64 suffisent aux petits objets dont l'éclairage n'est pas détaillé. ;)

N'hésitez pas à choisir une valeur faible comme 64 ou 128 pour la résolution. Vous pouvez fouiller les options du mesh dans la map pour forcer une autre résolution sur un exemplaire précis dans un niveau. Cette technique est gourmande en temps de compilation !


Actuellement votre mesh a une seule UVMap, celle que vous avez réalisée dans votre modeleur 3D. La mention UV Channels : 1 en haut à gauche de la fenêtre devrait vous en convaincre.

Pour générer une seconde UVMap, cliquez simplement sur File - Generate Unique UVs. Un nouveau menu apparaît : cliquez simplement sur Apply ! Rien de spécial ne va se passer, sauf cette mention qui va apparaître... UV Channels : 2. Vous avez réussi ! Il suffit de manipuler le mesh exactement comme avant, et vous allez constater de bien meilleures ombres.

J'ai un message d'erreur : GenerateUVs failed, couldn't convert to a D3DXMesh !

A l'heure d'écriture de ces lignes, vous devez utiliser le rendu DirectX 9. Dans la fenêtre principale, cliquez sur File - Switch Renderer - DX9 et recommencez.

Et ça ressemble à quoi ?


Dans l'exemple ci-dessous, le sol de la pièce est lightmappé, en particulier sous le puits d'éclairage. Si on utilise un mesh classique sans ce travail supplémentaire, l'ombre est très diffuse et les détails en sont absents.

Image utilisateur
Le sol sur la droite comporte maintenant des ombres très élaborées !


Pour aller plus loin...


Vous devriez en avoir l'habitude, voici la documentation sur le sujet !
En avant pour la prochaine partie : vous allez tout savoir sur les matériaux.
Chapitre précédent Sommaire Chapitre suivant

Partager

1 commentaire pour "Importer du contenu"
Note moyenne : 3.74 / 4 (197 votes)
Pseudo Commentaire
Hors ligne phini # Posté le 15/04/2012 à 20:12:00
Avatar

Avis : Bon

info: pour créer un package: new puis tu fait ctrl+s pour l'enregistrer où tu veut.

Voir tous les commentaires