Данный гайд базируется на другом, англоязычном гайде от Deliverator'a, но это не чистый перевод, я дополнил его собственным опытом и комментариями. Можно считать этот гайд расширенной версией исходного переведенного гайда.

Итак, поехали!

СОЗДАНИЕ НОВОГО ЮНИТА ПУТЕМ РЕСКИНИНГА.

Самый простой способ сделать новый юнит, это создать его в XML и присвоить ему графику от другого юнита. Получится два разных по свойствам юнита, но выглядеть они будут одинакого.

Тогда нам приходит в голову идея, что было бы неплохо один их них перекрасить, тогда, вроде бы это уже два разных юнита. Перекраска - это и есть рескининг.



Как видите, юниты одинаковые, но "раскрашены" по разному.


ВСТУПЛЕНИЕ: как это работает.

Графика в игре работает так: есть описание юнита, в котором стоит ссылка на описание его графику. В "описании его графики" написано какие графические файлы (модельки и текстуры в том числе) используются этим юнитом. Нам необходимо создать свое собственное "описание его графики", указать там свои собственные, перекрашенные, графические файлы и поставить в своем юните ссылку на это описание.

Перекрашивать мы будем текстуру, а модельку просто скопируем.

В целом, весь процесс делится на две части:
1. Работа с графикой.
2. Работа с XML.

Нам понадобиться следующий софт:
1. Графический редактор (ваш любимый)
2. GrannyMaterialHacker - чудо утилитка от двух волшебников lemmy101 and CaptainBinky.
3. Классический набор Civ5 SDK, что поставляется через Steam.

Так же, думаю, будет не лишним тут же сказать что все Civ5 SDK требует кучу девелопмент-софта от макрософта и если у вас чего то не хватает, это придется скачивать. Вам будет писать чего не хватает.


ЧАСТЬ ПЕРВАЯ: работа с графикой.

Подготовка:

1) Сiv5 SDK берется из Steam. Как это сделать - писать не буду, процесс примерно такой же как вы брали саму Civ, только платить второй раз не надо . SDK есть в разделе Tools. Ставим SDK

2) GrannyMaterialHacker надо скачать и распаковать в директорию с Нексусом (конкретно вот сюда %папка_со_стимом%\steamapps\common\sid meier's civilization v sdk\Nexus\x86). Если вы распакуете ее еще куда то работать эта утилитка не будет, она жестко привязана к Нексусу.

Что конкретно делает эта утилитка я так и не понял , я не график, но для наших задач это и не важно, главное что она работает. Возможно, она "перепрошивает" текстуру на модельку.


3) У вас должны быть распакованны fpk файлы Civ5.

Что бы сделать это, нужно:
- запустить из SDK Nexus.
- перейти в нем на одноименную закладку Nexus.
- выбрать там Script Browser и найти скрипт под названием Extract PAK (*.fpk).
- кнопочкой Run Script запустить его на выполнение.

В папке с игрой, в ...\Steam\steamapps\common\sid meier's civilization v\Resource будет три папки, забитыми файлами до отказу. Это оно и есть.

Мы готовы.


Отсюда пойдет "перевод" гайда Деливератора и будут использоваться его картинки. Деливератор использовал Minuteman'a для образца.

Рескининг:

1) Какие файлы понадобятся.

Понадобятся файлы тех типов, что будут указаны ниже на картинке. Их нужно сложить в одну папку. Если они будут раскиданы по разным папкам, ничего работать не будет. Создаем такую папку, например MyNewUnit, и копируем.

Картинка:


Хотя sref файл, по моему, в данном случае все же лишний. Дело в том что игра распаковывает и загружает в память ВСЕ графические файлы и многие использует в разных модельках. Поэтому, если такой файл УЖЕ где то используется, например в другом юните, то можно просто ссылаться на него.

- fxsxml файл - описание, какие файлы графики использует юнит.
- gr2 файл - моделька юнита.
- dds файл - текстура юнита.

Где они лежат?

В кратце:
- fxsxml файл в ...sid meier's civilization v\Resource\Common
- остальное в ...sid meier's civilization v\Resource\DX9

Если вы знаете как называются файлы юнита, который вы будете использовать как исходный, то просто копируете их. Если же нет, то нужно будет их найти.

Ищем:

Нам нужно проследить по описаниям, какие файлы использует юнит.
- Идем в ...Steam\steamapps\common\sid meier's civilization v\assets\Gameplay\XML\Units
- открываем в текстовом редакторе файл CIV5Units.xml Это файл с описаниями юнитов.
- Находим там тот юнит, моделька которого будет использоваться.
- В его описании есть тег <UnitArtInfo>, его значение - ссылка на описание графики юнита.
- Запоминаем эту ссылку..

- Далее, идем в ...Steam\steamapps\common\sid meier's civilization v\Resource\Common
- Ищем там файл civ5artdefines_unitmembers.xml, открываем его в текстовом редакторе.
- Находим там описание юнита по ссылке, запомненной выше.
- Ищем в этом описании тег <Granny>. Там будет ссылка на *.fxsxml файл.

Например:
Код:
  <UnitMemberArtInfo>
    <Type>ART_DEF_UNIT_MEMBER_U_AMERICAN_MINUTEMAN</Type>
    <fScale>0.14</fScale>
    <Granny>Assets/Units/U_American_Minuteman/U_American_Minuteman.fxsxml</Granny>

...

   </UnitMemberArtInfo>
- Запоминаем название файла.
- В папке ...Steam\steamapps\common\sid meier's civilization v\Resource\Common ищем этот fxsxml файл.
- Находим и копируем его в нашу папку MyNewUnit.

Важно: Что бы два раза не вставать, туда же и отсюда же копируем и эти два файла:
civ5artdefines_unitmembers.xml
civ5artdefines_units.xml
Они нам пригодятся позже.

- Открываем этот наш скопированный *.fxsxml файл. Внутри описание графики юнита.

Вам нужно две вещи: название основной текстуры (dds файл) и название меш (модельки) юнита (gr2 файл).

- Файлы текстур описаны в теге <Texture file>. Их может быть несколько, основная текстура, как правило, содержит в себе буквы _DIFF.dds (например: u_american_minuteman_diff.dds). Если ничего такого нет, то придется думать и перебирать файлы в графическом редакторе, что бы понять какой основной.
- Файлы модельки описаны в теге <Mesh>.
- Идем в \Steam\steamapps\common\sid meier's civilization v\Resource\DX9 и ищем там файлы меша и текстуры из тегов выше.
- Кoпируем их в нашу папку MyNewUnit.

- fxsxml файл переименовываем в название нашего нового юнита. Например redcoat.fxsxml

Итого у нас должны быть файлы всех типов, что на картинке выше (кроме sref файла).

2) Перекраска текстуры.

Перекраска текстуры производиться в любом графическом редакторе, который умеет работать с dds файлами. Некоторым, возможно, понадобиться доставить dds плагин.

Работу с графикой я описывать не буду. В кратце: открываем dds файл, берем кисточку, и красим .

В своем примере Деливератор перекрашивает синий камзол Минутмена в красный. Он использует Paint.Net. Обратите внимание, на картинке (слева) показаны параметры при сохранении перекрашенного файла обратно в dds. Их и надо использовать.


Деливератор сохраняет файл как redcoat_diff.dds

Перекрасили и сохранили в ту же папку откуда взяли. Название даете сразу новое! Это все тоже важно.

3) Утилита GrannyMaterialHacker.

Здесь мы и создадим те самые "свои" графические файлы для нашего юнита.

- Идем в папку с Нексусом (через Проводник) куда вы распаковывали GrannyMaterialHacker и запускаем его.
- В строках Source GR2 и My GR2 указываем наш исходный gr2 файл из папки MyNewUnit. В обоих строках один и тот же файл.
- Кликаем по окошкам под Souce GR2 находим там файл с основной текстурой. На пути внимание обращать не надо, только на название.



- Как нашли, кликаем на нем два раза, откроется еще одно окошко.
- Указываем там наш перекрашенный dds файл.



- Жмем кнопку "HACKIFY!".

- В папке MyNewUnit будет создан файл, подписанный как _new (например, исходный файл вашей модельки u_american_minuteman.gr2, а будет создан u_american_minuteman_new.gr2). Впрочем, программа об этом вам сообщит.
- Этот новый _new файл переименовываем (через Проводник) в название вашего юнита (в redcoat.gr2).

Теперь это файл вашей модельки.

Осталось прописать его и файл текстуры в fxsxml файле, что бы это все заработало.

- Открываем ваш redcoat.fxsxml файл из папки MyNewUnit
- В тегах <Mesh> и <Texture> производим необходимые изменения. Сохраняем.

Например:

Код:
<Asset>
    <Mesh file="redcoat.gr2"/>
...
    <Texture file="redcoat_diff.dds"/>
...
</Asset>
Все, все файлы готовы!

4) Проверка в Нексусе.

Должен тут сказать, что у меня тут Нексус дал сбой и я проверить я не смог. Однако в исходном гайде эта часть описывается.

- Запускаем Нексус.
- Переходим на вкладку Assest View.
- Открываем там наш redcoat.fxsxml файл и смотрим на модельку.
- Если не нравиться как получилась текстура, пункты 2 и 3 повторяем по новой.


У Деливератора получилось не плохо



Конец графической части.