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

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

  1. #1

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

    Давече, на поприще мододелания, я сразился с великим демоном незнания и сумел одержать над ним великую победу! Хочу же поделиться с вами добытыми у него артефактами и сокровищами.

    Научимся делать мы вот так:



    Кто не догадался - иконки у юнитов не от официального производителя (ака великого и ужастного Firaxis'a), а изготовленные в подпольях неизвестного мододела. Когда делаешь свой собственный юнит, то хочется что бы и иконка была у него своя собственная.

    Итак, внемлите мне, отроки и не очень! Достаньте ваши модопилы и баддитопоры, приступаем!


    ПРЕДИСЛОВИЕ: как это работает.

    Все юниты "тянут" свои иконки из одного общего файла, так называемого атласа. Программа (т.е. Цивилизация) считывает этот файл, в соответствии с определенным правилом, "разрезает" его на части и, в зависимости от того какую часть файла "заказал" себе юнит, передает ему эту часть. Ее мы видим на экране в кружочке, или ином геометрическом объекте. Эта штука и называется иконка.

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

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

    О том как все это сделать и поведуется далее.
    продвинь это сообщение в соцсеть:  

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

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

    Я делаю это все в фотошопе, но и в ГИМП'е это так же можно сделать без проблем. Фотошопу придется поставить плагин для работы с 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".

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

  3. #3
    ЧАСТЬ ВТОРАЯ: делаем 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>
    КОНЕЦ: ну вот и все готово!

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

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

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

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

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

  5. #5
    Давече, на поприще мододелания, я сразился с великим демоном незнания и сумел одержать над ним великую победу! Хочу же поделиться с вами добытыми у него артефактами и сокровищами.
    Поздравляю с победой! И спасибо за полезную инструкцию!

    Надеюсь со временем ты добавишь в нее часть, посвященную иконкам интерфейса для юнитов
    продвинь это сообщение в соцсеть:  

  6. #6
    Цитата Сообщение от NeverMind Посмотреть сообщение
    Надеюсь со временем ты добавишь в нее часть, посвященную иконкам интерфейса для юнитов
    Comming soon!
    продвинь это сообщение в соцсеть:  

  7. #7

    Итак, обещанное продолжение.

    Маленькие иконки мы сделали, неплохо было бы и большие сделать.

    ПОРТРЕТЫ ЮНИТОВ.

    Будем делать так:



    В Цив5 эта штука называется портретом. Портрет - это несколько иконок различного размера, которые показываются в информационных окошках, в качестве графического описания юнита.

    Т.к., по большому счету, процесс создания иконки аналогичен описанному ранее, я буду излагать все в краткой форме, освещая только основные моменты.

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


    ПРЕДИСЛОВИЕ: Как это работает:

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

    Наша задача создать этот атлас, описать его и указать юниту какую иконку и откуда ему брать.


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

    Для больших иконок ака портретов используются следующие размеры (в пикселях):

    - 256, 128, 80, 64, 45.

    Под эти размеры Firaxis предоставляет нам соответствующие шаблоны атласов. Лежат они по пути %папка с программами%\Steam\steamapps\common\sid meier's civilization v sdk\Art\Icon Templates.

    Нужно взять нашу картинку-портрет и используя шаблон, поместить ее на нужное место, после чего сохранить файл в dds.

    Как это сделать.

    У вас должна быть картинка-портрет. Делаете/ищите ее вы сами. Никакого ограничения по цветам, как в прошлый раз - нет.

    Далее, запускаем свой любимый графический редактор, идем по указанному выше пути, открываем все шаблоны (кроме того, где цифра 32, его мы уже сделали). Перед нам снова белые кружочки на черном фоне. То что кружочек - это портрет. Ничего рисовать на нем не надо. Нужно просто (а если с графикой у вас не очень, то и не просто) взять ту картинку, которую вы хотите использовать в качестве портрета юнита и поместить ее на этот кружок. И нужно проделать это для каждого размера.

    Что бы не делать лишнюю работу, сначала сделайте самый большой шаблон, а потом просто уменьшайте его (resize), одновременно экспортируя в dss. Т.е.: сделал 256 -> сохранил в dss -> ресайз до 128 -> сохранил в dds -> и т.д.

    А если размеры атласов вас пугают и вы хотите отрезать половину, то напоминаю что ширина и высота атласа должна быть кратка 4.

    Более подробно работа с графикой расписана выше, в как это сделать в фотошопе, все аналогично.

    Следует только сказать еще, что белый кружочек при работе с портретами это в значительной мере условность. Его размер 175 пикселей, а размер портрета 256. Много пикселей остается по бокам без дела. Они и используются для создания такого интересного художественного эффекта который вы можете наблюдать на всех иконках.

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


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

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

    Поехали! Запускаем ModBuddy.

    1. Открываем проект и добавляем в него все пять атласов (dds файлы). Каждому из них в окошке Properties выставляем в переменной "Import into VFS" значение "True". Не забудьте, это важно, иначе не будет работать!

    2. Делаем описание атласа.

    Атласов два типа:
    UNIT_ATLAS_1 для эпох с ancient по medieval.
    UNIT_ATLAS_2 для всех остальных эпох.

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

    Существует несколько (а точнее по пять) описаний UNIT_ATLAS_1 и UNIT_ATLAS_2, различаются они размерами и ссылками на графические файлы.

    Пример.
    Код:
        <IconTextureAtlases>
            <Row>
                <Atlas>UNIT_ATLAS_1</Atlas> <!-- название атласа -->
                <IconSize>128</IconSize> <!-- размер иконки ака портрета-->
                <Filename>UnitPortraitsAncientMedieval1024.dds</Filename>  <!-- название файла с графикой -->
                <IconsPerRow>8</IconsPerRow> <!-- иконок в ряду-->
                <IconsPerColumn>8</IconsPerColumn>  <!-- иконок в столбце -->
            </Row>
        </IconTextureAtlases>
    - Название вашему атласу вы можете дать любое.
    - Должен быть указан соотвествующий размер.
    - В <Filename> вписываете название вашего файла с графикой. Путь указывать не нужно.

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

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

    Стандартные описания атласов хранятся в файле %папка с игрой%\assets\Gameplay\XML\GameInfo\CIV5IconTextureAtlases.xml

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


    Все, атласы готовы.

    3. Редактируем описание юнита.

    Идем к описанию <Units> нашего юнита, которому мы хотим улучшить графику. Там нас интересуют вот такие два тега:

    Код:
         <Units>
              ...
                <IconAtlas>UNIT_ATLAS_1</IconAtlas> <!-- название атласа -->
                <PortraitIndex>33</PortraitIndex> <!-- номер иконки -->
              ...
         </units>
    - Вместо UNIT_ATLAS_1 вписываем название нашего атласа.
    - Указываем порядковый номер портрета. Помните, что порядковый номер иконок идет c нуля. Т.е. первая иконка в вашем графическом файле - это нулевая иконка.


    КОНЕЦ: ну вот и все готово!

    Собираем проект, запускаем игру, запускаем мод. Портрет должен быть.


    ПОСЛЕСЛОВИЕ: см. предыдущее послесловие
    продвинь это сообщение в соцсеть:  

  8. #8
    oooo4, спасибо за подробную инструкцию! Ты - молодец!
    продвинь это сообщение в соцсеть:  

  9. #9
    Цитата Сообщение от NeverMind Посмотреть сообщение
    oooo4, спасибо за подробную инструкцию! Ты - молодец!
    NeverMind, я столько времени потратил на эти штуки и допустил столько ошибок, что не поделиться опытом просто грех )
    продвинь это сообщение в соцсеть:  

  10. #10
    Вождь краснокожих Аватар для Tomahawk


    Регистрация
    28.10.2015
    Адрес
    Новосибирск
    Сообщений
    243

    Post

    Рисовал графику для юнита и решил поделиться своими заготовками 256, 128, 80, 64, 45, с ними будет проще разобраться.

    1) Установить Photoshop, у меня CS6.
    2) Установить dds плагин для photoshop от nvidia.
    3) В файлах "Заготовка ХХ.psd" лежат изображения вместе с альфа-каналом. Этот канал по сути является "выделением", которое накладывается на оригинальное изображение, белая часть канала будет показываться в игре, а чёрная нет.
    4) Далее нужно немного знать фотошоп, чтобы редактировать.
    5) Когда всё готово, файлы DDS сохранять с настройками: DX3 explicit alpha, Generate MIP maps. (если сохраните в DX1, пострадает качество рамки)
    6) Просматривать результат можно с программкой DXTBmp.

    Вложение:
    ART.rar
    продвинь это сообщение в соцсеть:  

    Tomahawk's Collection for Civilization V - сборник модификаций. Качественный перевод и совместимость между собой.
    R.E.D. World War II - масштабный сценарий Второй мировой войны.
    Война Судного дня - сценарий войны на Ближнем Востоке, произошедшей в 1973 году.

  11. #11


    Можно ссылку на ModBuddy (только не с стима, там не качает)
    продвинь это сообщение в соцсеть:  
    Хоккейная Лига ВВХЛ

    Моя система: Windows 7 64bit
    Процессор: Core i7-3770 (4,2 Ггц)
    ОЗУ: 16Гб DDR3 1600
    Видео: Zotac GeForce GTX 760 AMP 2Гб
    Винты: SSD 512 Гб + HDD 5,5 Тб
    Монитор: SAMSUNG 2443BW
    (1920*1200)

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

Похожие темы

  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