+ Ответить в теме
Показано с 1 по 11 из 11

Тема: [GUIDE] - Как сделать/изменить иконку юнита.

Комбинированный просмотр

  1. #1
    ЧАСТЬ ПЕРВАЯ: делаем файл с иконками.

    Важно: при создании иконки, она должна быть белого цвета, игра сама раскрасит ее в нужный цвет.

    Я делаю это все в фотошопе, но и в ГИМП'е это так же можно сделать без проблем. Фотошопу придется поставить плагин для работы с dds файлами (ссылка для NVidia), ГИМПу ставить ничего не нужно.

    Можно пойти двумя путями.
    1. Создаем прозрачный 32х32 (или кратный 32, если иконок несколько) файл, рисуем там иконку и сохраняем как dds файл с альфа.
    2. Можно воспользоваться готовыми шаблонами, которые предоставляет нам Firaxis.

    Шаблоны файлов под иконки всех размеров храняться в директории %папка с программами%\Steam\steamapps\common\sid meier's civilization v sdk\Art\Icon Templates

    Я опишу второй способ применительно к фотошопу.

    Как это сделать в фотошопе.

    Нам понадобяться шаблоны. Идем в директорию (ПАПКУ), где установлен ваш Steam (скорей всего это C:\Program Files\Steam\steamapps\common\sid meier's civilization v sdk\Art\Icon Templates). Для иконок нам понадобиться файл IconAtlas32.psd

    Открываем его в фотошопе.



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

    Так вот, любой белый кружочек, это и есть наша будущая иконка. Теперь его надо в нее превратить.

    Вне зависимости от того как это можно сделать, я предпочитаю такой способ.

    1. Создаем новый прозрачный слой. (Layer - New - Layer)
    2. Загружаем выделение альфа канала (Select - Load Selection - в меню Channel выбираем Alpha 1 - жмем Ok)
    3. Отключаем слой с белыми кружками. (Нажать "глазик" рядом со слоем).

    В итоге должно получиться вот так:



    У нас есть прозрачный слой + выделены кружки + черная подложка (которая позволит нам видеть что же мы там рисуем).

    4. Берем кисточку/карандаш (лучше карандаш) белого цвета и начинаем внутри кружка рисовать свою иконку. Если с чувством графики у вас плохо, то что бы придать иконке "иконочный" вид - придется повозиться.

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

    Результат может выглядеть вот так:



    Тут я написал буквы для примера, но у вас должны быть иконки.

    5. Отключаем черный слой (жмем "глазик"). Если вы вставляли готовую иконку, проверьте что бы за выделением не было никаких пикселей, иначе они будут видны в игре.

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



    Буквы белые и тонкие, поэтому их тут плохо видно. Но так же плохо будут видны и ваши иконки. Это нормально.

    6. Теперь сохраняем это все в файл. "File" - "Save" - "Save as", выбираем расширение dds и даем имя файлу (на английском и без пробелов). Папка сохранения - любая, главное не забудьте куда вы сохраняли и как называется файл. Снимаем галочку напротив опции "alpha channels". Жмем "Ок"



    7. Нам покажут диалоговое меню настроек dds. Выбираем в нем в выпадающем меню слева вверху "DXT1 ARGB 4bpp | 1 bit alpha", а в правой части ставим точечку на "no Mip maps"

    А вот тут скриншот сделать не получилось.

    8. Жмем "Save".

    Все. Файл готов.
    продвинь это сообщение в соцсеть:  

  2. #2
    ЧАСТЬ ВТОРАЯ: делаем XML теги.

    Вся работа с xml делиться на три части:
    1. Добавление файла с иконками в Modbuddy.
    2
    . Описание атласа.
    3. Создание ссылки на атлас в описании юнита.

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

    Запускаем ModBuddy!

    1. Сначала надо добавить файл с иконками в проект.

    В Solution Explorer наводим мышку на ваш проект или папку где будет лежать ваш файл (но папка должна быть частью проекта), жмем правую кнопку и выбираем из меню "Add" - "Existing Item".



    В открывшемся окне находим ваш файл с иконками. Жмем кнопку "Add". Файл добавился в проект.

    Далее, необходимо выделить его в Solution Explorer'e и в окошке Properties (снизу от Solution Explorer'a) в переменной "Import into VFS" выставить значение "True".



    Забудете выставить True - иконки в игре не будет видно!


    Файл добавили.

    2. Теперь мы должны создать описание самого атласа.

    В игре описания атласов храняться в файле %папка с игрой%\assets\Gameplay\XML\GameInfo\CIV5IconTextureAtlases.xml Нам же, в xml файл своего мода нужно добавить вот такой код.

    Код:
        <IconTextureAtlases> <!-- название таблицы-->
            <Row>
                <Atlas>MY_UNIT_FLAG_ATLAS</Atlas> <!-- название атласа -->
                <IconSize>32</IconSize> <!-- размер иконки в пикселях. НЕ изменять-->
                <Filename>MyIcon32.dds</Filename> <!-- название файла с иконками -->
                <IconsPerRow>4</IconsPerRow> <!-- иконок в строке -->
                <IconsPerColumn>4</IconsPerColumn> <!-- иконок в столбце -->
            </Row>
        </IconTextureAtlases>
    - Название своему атласу вы вольны придумать любое.
    - Размер иконок изменять не нужно.
    - Путь к файлу с иконками указывать не нужно, достаточно просто имени, расширение должно быть указано.
    - По моим экспериментам, цифры "количество иконок" могут отличаться от истинного количества строк и столбцов в файле без какого либо ущерба, но все же лучше придерживаться правильности во избежание.

    Описание атласа готово.

    3. Наконец, мы должны сказать юниту, что это его атлас.

    Переходим к xml коду своего юнита. Ключевыми тегами для нас являются:

    Код:
                <UnitFlagIconOffset>0</UnitFlagIconOffset>
                <UnitFlagAtlas>MY_UNIT_FLAG_ATLAS</UnitFlagAtlas>
    - Отсчет иконок ведется с нуля. Первая иконка в вашем графическом файле - это нулевая иконка.
    - Я говорил уже что все иконки у юнитов "тянутся" с одного атласа. Это атлас с именем "UNIT_FLAG_ATLAS", он задается для всех юнитов по умолчанию при их создании (см. описание таблицы Units в файле %папка с игрой%\assets\Gameplay\XML\Units\CIV5Units.xml). Если вы создаете свой юнит по образцу, скопировав описание другого юнита, то этого тега в его описании не будет и вам нужно будет создать его.

    Пример кода создания юнита:
    Код:
        <Units>
            <Row>
                <Class>UNITCLASS_SLAVE</Class>
                <Type>UNIT_SLAVE</Type>
                <Cost>-1</Cost>
                <Moves>2</Moves>
                <Capture>UNITCLASS_SLAVE</Capture>
                <Domain>DOMAIN_LAND</Domain>
                <DefaultUnitAI>UNITAI_WORKER</DefaultUnitAI>
                <Description>TXT_KEY_UNIT_SLAVE</Description>
                <Civilopedia>TXT_KEY_CIV5_ANTIQUITY_WORKER_TEXT</Civilopedia>
                <Strategy>TXT_KEY_UNIT_WORKER_STRATEGY</Strategy>
                <Help>TXT_KEY_UNIT_SLAVE_HELP</Help>
                <AdvancedStartCost>20</AdvancedStartCost>
                <WorkRate>100</WorkRate>
                <CombatLimit>0</CombatLimit>
                <UnitArtInfo>ART_DEF_UNIT__WORKER</UnitArtInfo>
                <UnitArtInfoEraVariation>true</UnitArtInfoEraVariation>
                <UnitFlagIconOffset>0</UnitFlagIconOffset> <!-- тут изменяем значение тега -->
                <PortraitIndex>1</PortraitIndex>
                <IconAtlas>UNIT_ATLAS_1</IconAtlas>
                <UnitFlagAtlas>MY_UNIT_FLAG_ATLAS</UnitFlagAtlas> <!-- тут добавляем тег -->
            </Row>
        </Units>
    - Жирным шрифтом выделены части которые необходимо изменить, что бы "линкануть" описание атласа юниту.

    Важно: если вы хотите изменить иконку уже существующему юниту, то создавать ему тег "UnitFlagAtlas" не нужно, он уже есть, необходимо его "проапдетить", т.е. обновить. "Апдейтим" сразу оба параметра.

    Пример кода:
    Код:
       <Units>
            <Update>
                <Where Type="название_юнита"/>
                <Set>
                     <UnitFlagAtlas>MY_UNIT_FLAG_ATLAS</UnitFlagAtlas> <!-- название вашего атласа -->
                     <UnitFlagIconOffset>0</UnitFlagIconOffset> <!-- порядковый номер иконки -->
                </Set>
            </Update>
        </Units>
    КОНЕЦ: ну вот и все готово!

    Собираем проект, запускаем игру, запускаем мод. Иконка должна быть.
    продвинь это сообщение в соцсеть:  

  3. #3
    ПОСЛЕСЛОВИЕ.

    Важно. Дело в том, что время от времени, создатели Цивилизации меняют то часть игры, то часть инструментов для моддинга, поэтому если с момента опубликования этого руководства (а это январь 2011 г., версия игры 1.0.1.141) прошло достаточно времени, то вполне возможно в игру внесены уже такие изменения, что каких то пунктов в может не хватать, а какие то могут быть неверными. Если на вашем календаре 2012 год и далее, то вполне возможно что вам придеться почитать еще форумов

    Автор по мере сил постарается поддерживать актуальность, но если честно, особо надеяться на это не стоит . Тут стоит больше верить в моддерское ру комьюнити.

    Удачи!
    продвинь это сообщение в соцсеть:  

+ Ответить в теме

Похожие темы

  1. Guide: ladder CTON
    от OT4E в разделе Civ4 - Стратегия игры
    Ответов: 41
    Новое: 18.07.2011, 18:11
  2. Guide: От древности и до наших дней.
    от OT4E в разделе Civ4 - Стратегия игры
    Ответов: 139
    Новое: 29.07.2010, 14:33
  3. Guide: пособие коттеджиста
    от OT4E в разделе Civ4 - Стратегия игры
    Ответов: 14
    Новое: 20.04.2009, 17:27
  4. Как изменить мой статус?
    от DART NEHILUS в разделе Разговоры обо всём, кроме Цивилизации
    Ответов: 15
    Новое: 25.01.2006, 10:42

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru

free counters