Aller au contenu

Retexturez un MLO ou un prop sans ouvrir OpenIV

Vous avez acheté un MLO et tout est parfait sauf l'enseigne au-dessus de la porte. La réponse habituelle, c'est OpenIV, un dictionnaire de textures qu'il faut d'abord trouver, et un export qui doit retomber dans le même fichier. Ici, tout se fait dans le navigateur : cliquez sur la surface, déposez votre image, téléchargez la resource.

Rien ne change dans le modèle

Un modèle ne stocke pas ses images. Il stocke des noms de textures, et le jeu cherche ces noms dans un dictionnaire de textures : un .ytd livré à côté, ou un dictionnaire intégré au .ydr ou au .yft lui-même. Changez l'image stockée sous un nom et chaque surface qui lit ce nom change avec elle.

C'est toute l'opération ici. La géométrie, la collision, les LODs et tous les metas de la resource restent exactement comme ils étaient ; seule l'image derrière un nom est réécrite. C'est aussi pour ça que le résultat se remet directement sur le même serveur : rien n'a bougé dans la façon dont la resource est enregistrée.

1Importerla resource, telle quelle2Cliquer dessuselle nomme la texture3Déposez l'imageelle remplace ce nom4Téléchargermême arbo, rezippée
Quatre étapes, et le modèle n'est jamais reconstruit.

Cliquer sur un mur vous dit de quelle texture il s’agit

La partie difficile d'un retexture n'a jamais été la peinture. C'est de trouver laquelle des quarante textures du pack est celle de ce mur, une question à laquelle OpenIV répond en vous faisant ouvrir chaque dictionnaire et deviner à partir des miniatures.

À l'import, l'outil dépaquette la resource et construit la carte dont le navigateur a besoin : un GLB pour chaque modèle, un PNG pour chaque texture, et le lien entre les deux, c'est-à-dire quelle géométrie lit quel nom. Quand vous cliquez sur l'enseigne dans la vue 3D, il peut donc vous dire quelle texture cette surface lit, et vous proposer l'emplacement pour la remplacer.

Si une surface ne s'illumine jamais, la texture qu'elle lit n'était pas dans ce que vous avez importé. Les dictionnaires partagés vivent dans leur propre resource ; incluez-la dans l'import et la surface devient cliquable.

Ce que vous récupérez

Le téléchargement, c'est votre propre import, reconstruit. Les fichiers que vous avez remplacés sont réécrits dans le conteneur d'où ils viennent ; chaque fichier que vous n'avez pas touché est recopié sans modification, au même endroit, sous le même nom.

resource.zipstream/modèles tels que vous les avez envoyésstream/*.ytdréécrits là où une texture a changé*.metarecopiés, sans modificationfxmanifest.luarecopiés, sans modification
Un retexture est une réécriture sur place, pas un repack.

Comme rien n'est renommé ni réenregistré, remplacer le dossier sur le serveur et redémarrer la resource constitue toute l'installation.

Gardez la même taille, ou sachez pourquoi

Donnez au remplacement les mêmes dimensions que la texture qu'il remplace dès que possible. Une planche d'enseigne en 1024x1024 veut du 1024x1024 en retour : la disposition UV du modèle n'a pas bougé, donc un autre ratio étire votre visuel sur ce qu'attend le mesh.

Les puissances de deux comptent pour une deuxième raison. Une texture dont les côtés ne sont pas des puissances de deux ne peut pas porter une chaîne de mips complète, donc le jeu lit le niveau le plus haut à toutes les distances : l'enseigne reste nette de près et scintille depuis l'autre côté de la rue, et elle coûte la mémoire pleine en permanence. Si votre visuel fait 1000x1000, exportez-le en 1024x1024.

Une texture avec alpha coûte deux fois plus qu'une texture opaque une fois compressée par le jeu. Si le logo n'a pas besoin de transparence, aplatissez-le sur son fond avant de l'importer.

Essayez gratuitement

Créez un compte gratuit, rejoignez le Discord pour vos crédits et créez votre premier asset en quelques minutes.