Bonsoir à tous !
Aujourd'hui je vais vous décrire comment remplacer les textures de sol d'une ligne par d'autres textures. Merci d'ailleurs à @Lahm de me l'avoir expliqué en MP suite à sa modification de la Maurienne-Tarentaise. Le principe de base est très simple :
Les textures d'une ligne dépendent de la map (du modèle) de base que vous avez choisi lorsque vous avez créé votre ligne. Cependant, vous pouvez choisir après-coup un autre modèle de textures via le fichier RouteProperties.xml de votre ligne (qui se trouve dans C:\Program Files (x86)\Steam\steamapps\common\RailWorks\Content\Routes\LE_DOSSIER_DE_VOTRE_LIGNE ). Ouvrez ce fichier .xml avec le bloc-notes Windows (ou avec Notepad++ si vous l'avez). Les textures de base d'une ligne sont paramétrées dans la section : <TerrainBlueprint> <iBlueprintLibrary-cAbsoluteBlueprintID> <BlueprintSetID> <iBlueprintLibrary-cBlueprintSetID> <Provider d:type="cDeltaString">Kuju</Provider> <Product d:type="cDeltaString">RailSimulator</Product> </iBlueprintLibrary-cBlueprintSetID> </BlueprintSetID> <BlueprintID d:type="cDeltaString">Environment\Terrain\Texturing.xml</BlueprintID> </iBlueprintLibrary-cAbsoluteBlueprintID> </TerrainBlueprint> Les textures sont spécifiées par le fichier Texturing.bin qui se trouve dans les Assets de la plupart des lignes paywares, généralement dans un sous-dossier Environnement\Terrain. Ce fichier s'appelle parfois également Terrain.bin selon les lignes (ou même Complete_v1.xml dans le cas des UTKS Freeware Packs). Ce fichier .bin est "lu" par le jeu comme étant un fichier .xml (d'où le chemin d'accès ci-dessus), même s'il n'y a pas de fichier .xml dans le même dossier. Il suffit donc que vous changiez le Provider (ci-dessus Kuju), le Product (ci-dessus RailSimulator) et le chemin d'accès du Texturing.xml. Par exemple, avec les textures de l'UKTS Freeware Pack Terrain Textures, voici ce que ça donne : <TerrainBlueprint> <iBlueprintLibrary-cAbsoluteBlueprintID> <BlueprintSetID> <iBlueprintLibrary-cBlueprintSetID> <Provider d:type="cDeltaString">UKTS_FP</Provider> <Product d:type="cDeltaString">Terrain_Textures</Product> </iBlueprintLibrary-cBlueprintSetID> </BlueprintSetID> <BlueprintID d:type="cDeltaString">TextureSets\Complete_v1.xml</BlueprintID> </iBlueprintLibrary-cAbsoluteBlueprintID> </TerrainBlueprint> Vous pouvez relancer Train Simulator, mais ensuite n'oubliez pas d'activer le Provider via le cube bleu avec la flèche orange dans le menu de l'éditeur, sinon vous aurez une texture blanche sur toute votre ligne ! Vous devrez ensuite relancer la ligne pour que les changements prennent effet (cliquez sur l'image pour l'agrandir) :   Cela peut parfois se compliquer lorsque les textures que vous voulez utiliser ne sont pas ordonnées de la même manière dans leur fichier Texturing.bin que dans le modèle utilisé précédemment. C'est le cas pour la Konstanz-Villingen. Cette ligne possède des très jolies textures, mais si vous modifiez seulement le RouteProperties.xml pour lier le fichier Texturing.xml de la KoVi, alors vous obtiendrez de la neige à la place de l'herbe, des rochers à la place des champs, etc... Il vous faudra alors réordonner les textures dans le fichier Texturing.bin (en le décompilant en .xml avec SerzMaster.exe situé dans le répertoire RailWorks (C:\Program Files (x86)\Steam\steamapps\common\RailWorks), puis en le recompilant en .bin) en comparant avec l'ordre dans lequel étaient classées les textures dans le Texturing.bin que vous utilisiez précédemment. Cependant, je vous épargne ce travail en mettant ci-joint le fichier Texturing.bin de la Kontanz-Villingen réarrangé pour qu'il soit compatible avec les lignes qui utilisaient précédemment des textures Kuju/RSC/DTG. Il est à décompresser dans le répertoire RailWorks. Cela n'écrase pas d'autre fichiers, vous n'aurez donc pas de changements de textures pour la ligne Konstanz-Villingen en elle-même. Pour la Konstanz-Villingen, vous devrez donc modifier le RouteProperties comme suit : <TerrainBlueprint> <iBlueprintLibrary-cAbsoluteBlueprintID> <BlueprintSetID> <iBlueprintLibrary-cBlueprintSetID> <Provider d:type="cDeltaString">virtualRailroads</Provider> <Product d:type="cDeltaString">Konstanz-Villingen</Product> </iBlueprintLibrary-cBlueprintSetID> </BlueprintSetID> <BlueprintID d:type="cDeltaString">Environment\Terrain\EUTexturing.xml</BlueprintID> </iBlueprintLibrary-cAbsoluteBlueprintID> </TerrainBlueprint> Comme indiqué précédemment, il ne vous reste plus qu'à activer le Provider !
  Voilà, maintenant vous savez comment rapidement et simplement changer de textures de sol pour votre ligne !


---------------------------- BONUS : comprendre le Texturing.bin Ce fichier ne sert en fait qu'à dire au jeu où sont les textures, dont les vrai fichiers .TgPcDx se trouvent dans leurs sous-dossiers respectifs. En convertissant le Texturing.bin avec SerzMaster (dans le répertoire RailWorks aux côtés de l'exécutable du jeu), vous pourrez lire le fichier Texturing.xml avec le bloc-notes ou Notepad++. Vous y trouverez donc, pour chaque texture, son nom dans l'éditeur et son chemin d'accès pour chaque saison. Il y est également paramétré la flore procédurale pour toutes les textures qui en utilisent. Mais tout à la fin du fichier, vous trouverez des informations plus intéressantes : Ces lignes, par exemple, déterminent la couleur du terrain distant (quand les textures citées dans le reste du fichier n'ont pas été chargées) en été et en hiver. Il faut multiplier ces valeurs par 255 pour obtenir la teinte en RGB, par exemple R 0.360784 ; G 0.396078 ; B 0.219608 donnent une teinte RGB 92 101 56, ce qui produit une sorte de vert kaki en été. <DistantTerrainColour> <cHcColour> <Red d:type="sFloat32" d:alt_encoding="000000C01517D73F" d:precision="string">0.360784</Red> <Green d:type="sFloat32" d:alt_encoding="000000805759D93F" d:precision="string">0.396078</Green> <Blue d:type="sFloat32" d:alt_encoding="000000601D1CCC3F" d:precision="string">0.219608</Blue> <Alpha d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</Alpha> </cHcColour> </DistantTerrainColour> <WinterDistantTerrainColour> <cHcColour> <Red d:type="sFloat32" d:alt_encoding="000000A05959E93F" d:precision="string">0.792157</Red> <Green d:type="sFloat32" d:alt_encoding="000000A05959E93F" d:precision="string">0.792157</Green> <Blue d:type="sFloat32" d:alt_encoding="000000A05959E93F" d:precision="string">0.792157</Blue> <Alpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Alpha> </cHcColour> </WinterDistantTerrainColour>   Les dernières lignes de code, enfin, déterminent l'auto-texturing de la map. Par exemple, lorsque vous surélevez fortement le terrain, il prendra automatiquement une texture de rocher. Les TextureIndex correspondent au numéro de la texture listée dans le fichier. La texture de roche ici sera la 9e texture en partant depuis le haut, qui correspond effectivement à Rock000 pour la Konstanz-Villingen. La suite détermine sous quelles conditions ces textures "automatiques" apparaîtront : en dessous de 1200m, le jeu applique la texture Low, entre 1200 et 2000m la texture Mid et à partir 2000m la texture High (ces paramètres seront surtout utiles pour l'affichage du terrain distant sur des maps de montagne comme la Maurienne). À partir de 15° (ou 15% de pente, je dois dire que je n'ai pas vérifié), la texture de roche apparaîtra au sol. Le Threshold est la largeur de la transition entre les deux textures, également en mètres. Enfin, le ProceduralFloraTextureID détermine la flore procédurale par défaut. <LowGroundTextureIndex d:type="sUInt32">39</LowGroundTextureIndex> <MidGroundTextureIndex d:type="sUInt32">33</MidGroundTextureIndex> <HighGroundTextureIndex d:type="sUInt32">16</HighGroundTextureIndex> <RockTextureIndex d:type="sUInt32">9</RockTextureIndex> <LowToMidHeightPoint d:type="sFloat32" d:alt_encoding="0000000000C09240" d:precision="string">1200</LowToMidHeightPoint> <LowToMidThreshold d:type="sFloat32" d:alt_encoding="0000000000005940" d:precision="string">100</LowToMidThreshold> <MidToHighHeightPoint d:type="sFloat32" d:alt_encoding="0000000000409F40" d:precision="string">2000</MidToHighHeightPoint> <MidToHighThreshold d:type="sFloat32" d:alt_encoding="0000000000005940" d:precision="string">100</MidToHighThreshold> <RockGradient d:type="sFloat32" d:alt_encoding="0000000000002E40" d:precision="string">15</RockGradient> <RockThreshold d:type="sFloat32" d:alt_encoding="0000006066661A40" d:precision="string">6.6</RockThreshold> <ShadowTextureScaleFactor d:type="sFloat32" d:alt_encoding="000000E04D62403F" d:precision="string">0.0005</ShadowTextureScaleFactor> <ProceduralFloraTextureID d:type="cDeltaString">virtualRailroads\Konstanz-Villingen\Environment\Terrain\[05]grass</ProceduralFloraTextureID>   J'espère que ce tutoriel a été assez clair et bien évidemment qu'il vous a été utile ! Bonne soirée, Clément Texturing Konstanz-Villingen.zip
    • Like
    • Thanks
    11