Добавление текстур в маршрут
Добавление новых текстур земли
Добавление собственных текстур земли в маршрут – важный и интересный вопрос. Прежде всего, нужно знать, какой BIN-файл с текстурами использует мой маршрут. Это можно определить это через файл RouteProperties.xml. НО! Прежде чем это сделать, всегда создавайте его резервную копию, так как любые случайные изменения могут привести к ошибке. После этого открываем RouteProperties.xml и ищем там раздел TerrainBlueprint. Вот как он выглядит:
<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\EUTextur ing.xml</BlueprintID> </iBlueprintLibrary-cAbsoluteBlueprintID> </TerrainBlueprint>
Теперь мы знаем, какой BIN использует маршрут, и можем скопировать (и переименовать) его в папку своих assets, после чего отредактировать поля Provider и Product (а так же имя файла) в свойствах своего маршрута, например:
<TerrainBlueprint> <iBlueprintLibrary-cAbsoluteBlueprintID> <BlueprintSetID> <iBlueprintLibrary-cBlueprintSetID> <Provider d:type="cDeltaString">DMV</Provider> <Product d:type="cDeltaString">CC_Route</Product> </iBlueprintLibrary-cBlueprintSetID> </BlueprintSetID> <BlueprintID d:type="cDeltaString">Environment\Terrain\Texturin g.xml</BlueprintID> </iBlueprintLibrary-cAbsoluteBlueprintID> </TerrainBlueprint>
Причина, по которой создана копия именно того BIN-файла, который ранее использовался маршрутом, в том, что RailWorks запоминает последовательность, в которой там перечисляются текстуры. И если, например, Dry Grass была второй на момент создания маршрута, а потом добавилось что-то перед ней, скажем Corn Fields, то при очередной загрузке маршрута текстура кукурузы подменит текстуру сухой травы. Теперь добавляем текстуры земли в BIN. Итак, создадим в нем копию BIN-файла, переименовав EUTexturing.bin в TestTexturing.bin:
<BlueprintID d:type="cDeltaString">Environment\Terrain\TestText uring.xml</BlueprintID>
Открываем и ищем:
</cMixTexDescriptor> </MixTex>
Чтобы добавить текстуру, вы должны её иметь. Поскольку примерный маршрут уже использует материалы Portland Terminal (PT), текстуру возьмем оттуда же. Собственные текстуры добавляются таким же способом. Так, в bin-файле маршрута PT есть текстура Asphalt000, которой нет в bin-е нового маршрута:
<cMixTexDescriptor d:id="56736104"> <BaseTextureName d:type="cDeltaString">G-TraX\PortlandTerminal\Environment\Terrain\Urban\As phalt000</BaseTextureName> <BaseSpringTextureName d:type="cDeltaString"></BaseSpringTextureName> <BaseSummerTextureName d:type="cDeltaString"></BaseSummerTextureName> <BaseAutumnTextureName d:type="cDeltaString"></BaseAutumnTextureName> <BaseWinterTextureName d:type="cDeltaString">G-TraX\PortlandTerminal\Environment\Terrain\Urban\As phalt000_Wi</BaseWinterTextureName> <DisplayName d:type="cDeltaString">Asphalt 00</DisplayName> <LocalisedDisplayName> <Localisation-cUserLocalisedString> <English d:type="cDeltaString">Asphalt 00</English> <French d:type="cDeltaString"></French> <Italian d:type="cDeltaString"></Italian> <German d:type="cDeltaString"></German> <Spanish d:type="cDeltaString"></Spanish> <Dutch d:type="cDeltaString"></Dutch> <Polish d:type="cDeltaString"></Polish> <Russian d:type="cDeltaString"></Russian> <Other/> <Key d:type="cDeltaString"></Key> </Localisation-cUserLocalisedString> </LocalisedDisplayName> <Wang d:type="cDeltaString">eTrue</Wang> <FloraIndex d:type="sUInt32">0</FloraIndex> <FloraDensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0.0000</FloraDensity> <Category d:type="cDeltaString">eConcrete</Category> </cMixTexDescriptor>
Копируем (не вырезаем!) и вставляем текстуру из bin-а Портленда в свой между двумя строками, указанными выше (</cMixTexDescriptor> и </MixTex>). Наконец, последний шаг делается в редакторе маршрутов. Так как текстура взята из PT, я должен разрешить её использование через фильтр объектов (на скрине [1]).