PDA

Просмотр полной версии : Пара утилит для перемещения текстуры фронта



AnKor
16.11.2012, 11:36
Поскольку есть интерес, то переведу на русский.
Оригинал на англ. и сами утилиты можно взять здесь: http://riseofflight.com/Forum/viewtopic.php?f=348&t=33789

Так же понадобится UnGTP.exe, которую можно взять здесь: http://www.sukhoi.ru/forum/showthread.php?t=69424
При помощи этой утилиты надо распаковать graphics3.gtp, имена файлов в этой инструкции даются относительно распакованного архива. Чтобы отредактированные файлы появились в игре, их нужно с сохранением пути скопировать в папку "data" игры.
Например graphics\landscape\global_forest.bmp из архива отправляется в C:\Games\Rise of Flight\data\graphics\landscape\global_forest.bmp и так далее.

В моём архиве две программы - MaskProcessor и WoodProcessor.

Рассмотрим первую.
То, какие места на карте будут покрыты "лунной поверхностью" задаётся в так называемой маске. Эта маска разбита на bmp файлы размером 256x256 пикселей, где один пиксель это 50 метров, поэтому для главной карты их аж 616 штук. Редактировать каждый по отдельности неудобно.
И вот тут на помощь приходит моя утилита. Находим распакованную папку graphics\landscape\mask и просто перетягиваем мышкой на мою утилиту. Она чуть-чуть подумает, а на выходе родит файл mask.bmp, который будет содержать все 616 "плиток" маски, объединённых в одну большую картинку. Теперь с ними гораздо удобней работать.

Чёрный цвет в маске означает, что используется обычная текстура полей.
Красный - песок для рек.
Зелёный - тёмно зелёная текстура для леса.
Синий - те самые грязь и кратеры.
Можно использовать не 100% интенсивность цвета, а промежуточные значения, тогда кратеры будут полупрозрачными -- чем ближе к чёрному, тем прозрачней. Можно смешивать цвета, например часть красного + часть синего даст смесь кратеров и песка.

После редактирования надо файл mask.bmp перетащить на мою утилиту, и она сама разобъёт его на плитки, сохранив их в папку "mask.updated". Дальше эту папку подсовываем в игру (не забыв переименовать в mask, конечно). Включаем режим модов и наслаждаемся результатом.

Вторая утилита более интересная.
Как я недавно выяснил наличие или отсутствие спецэффектов (дым, взрывы на земле и в воздухе) над определённой территорией задаётся в файле, определяющем типы деревьев над той территорией. Неожиданно.
В игре есть несколько типов деревьев, большую часть площадей занимают лиственные, но около Вердена можно видеть сосны (или что это там такое). Есть ещё специальный тип -- сгоревшие деревья, где видны одни остатки стволов, и этот тип встречается над линией фронта. Вот как использование этого типа и приводит к появлению остальных эффектов.

Нужный нам файл называется graphics\landscape\trees\woods.wds
Перетаскивание для второй утилиты не используется, вместо этого её нужно положить в ту же папку, где находится этот файл и запустить. В результате она создаст файл woods.bmp.
Чёрным в нём показана линия фронта (точнее та площадь, где находятся сгоревшие деревья), разными оттенками зелёного -- разные типы деревьев. Разрешение 200 м/пиксель.
Важно: при редактировании нельзя добавлять никаких новых цветов или оттенков или использовать сглаживание для кисти. Надёжней всего просто скопировать участок с существующим зелёным цветом и расположить его поверх стираемой линии фронта. А новый фронт закрасить строго чёрным.

После окончания редактирования надо снова запустить WoodProcessor и он на основе woods.bmp и старого woods.wds создаст новый woods.updated.wds. Этот файл, переименовав обратно в woods.wds, и надо добавить в игру.

Наконец, ещё один полезный файл: graphics\landscape\global_forest.bmp
Это расположение лесов на карте. Он уже в виде картинки, поэтому никакие утилиты не нужны.
Разрешение 175 метров/пиксель (мы не ищем лёгких путей? у всего разное разрешение) и похоже он строго чёрно-белый: лес либо есть, либо нет, без промежуточных вариантов на самом деле там есть промежуточные оттенки серого, но я не знаю как именно они влияют на лес. В любом случае в игре его границы выглядит достаточно гладко, а не как огромные квадраты -- значит как-то он всё-таки сглаживается.

Вероятно есть ещё пара вещей, которые могли бы пригодиться для редактирования, но пока я до них не добрался.
Во-первых в игре есть возможность начисто вырезать весь лес в определённых местах. Если просто убрать его из global_forest, то отдельные деревья всё равно останутся, т.к. они привязаны к текстуре полей. Для убирания леса используется forest_cut.wtr, но я с ним ещё не разбирался.
Во-вторых, может пригодиться возможность ставить сгоревшие деревья без сопутствующих спецэффектов, например чтобы показать, что здесь недавно шли бои, а сейчас закончились, но деревья сильно пострадали. Я думаю это возможно, но нужно детальней разобраться с содержимым файла woods.wds.

Вроде всё :)

PS: klementovich, я думаю, что этого для начала достаточно, чтобы ты мог поработать над новым фронтов для твоих кампаний. Линии окопов передвинем позже.

ROSS_DiFiS
16.11.2012, 13:53
да. есть еще одна маска, про которую надо не забыть.
landtexturesquality\forest_color.dds - задание цвета плашки глобального леса на дальних дистанциях. Линия фронта на ней по умолчанию вырезана альфаканалом.

AnKor
16.11.2012, 14:04
Спасибо. Я что-то совсем забыл про этот файл.
Видимо если не поправить, то издалека над новой линией фронта будут виднеться зелёные леса :)

klementovich
16.11.2012, 21:29
Будем пробовать обязательно!