Перегонка карт из ВТВ-1 в БпО. Своими руками.

Тема в разделе "Вопросы по редактору и скриптам", создана пользователем Sky)mood, 23 янв 2008.

  1. Sky)mood
    Оффлайн

    Sky)mood Зарегистрированный

    Ниже приводится поэтапный список работ.


    1. Создать мод

    В моде в папку resource слить ресурсы из оригинальной ВТВ-1 и мультиплеерного дополнения:
    /resource/entity
    /resource/map/multi
    /resource/texture

    Потом переименовать папки из директории "entity":
    -fauna_old
    construction_old
    flora_old
    landscape_old
    service_old

    Таким образом мы отделяем ресурсы из ВТВ-1 и ВТВ-2 внутри редактора.


    2. Подключить карту

    2.1 Перенести файлы map.net, map.ply
    В ВТВ-1 файлы с информацией о высотах и модели карты
    хранились отдельно. В ВТВ-2 эти файлы хранятся в папке с
    картой.
    Чтобы найти эти файлы, сначала открываем файл "map" и
    находим строчку (на примере карты Radar)
    Код:
         {Entity "120_3m:radar" 0x0
              {Position 1181.1 1181.1 -260}
         } 
    Идем в папку "/resource/entity/landscape_old/map", находим там
    папку "120_3m", а в ней еще одну "radar.mod". Внутри папки
    лежат два файла 120_3m.net, plane01.ply, копируем их в папку с
    картой и переименовываем в map.net и map.ply.

    2.2 Подготовить карту
    При попытке подключить карту редактор выдаст примерно
    следующую ошибку:
    Код:
    2:       {«WorldBound -1250 -1290 9020 13140}
    3:       {CameraBound 941.797 926.026 6827.34 10893.7}
    4:       {PatherBound 286.209 593.026 7142.59 11315.4}
    5:       {MapRegistry
    6:            {season "autumn"}
    7:       }
    Перед тем как начать работу с картой, необходимо ее подготовить:
    1) откройте файл "map"
    2) замените конструкцию
    Код:
        {«WorldBound -1250 -1290 9020 13140}
         {CameraBound 941.797 926.026 6827.34 10893.7}
         {PatherBound 286.209 593.026 7142.59 11315.4}
         {MapRegistry
                {season "autumn"}
         }
         {Camera
              {Position 6323.56 3401.6}
              {Distance 1650 750 1200}
              {ViewAngle 0.593442 30 42}
         }
         {Entity "land400x600:village" 0x0
              {Position 3999.9 6047.03 0}
         }
    на такую
    Код:
         {Land
              {Position 3999.9 6047.03}
         }    
         {Clips
              {"[auto]"
                   {world -128 -128 128 128}
                   {camera -128 -128 128 128}
                   {pather -128 -128 128 128}
                   {distance 100 550}
                   {viewAngle 20 50}
              }    
         }
    В блоки Position, world, camera, pather перенесите координаты из
    блоков Position, WorldBound, CameraBound, PatherBound
    соответственно.
    3) Удалить в файле "map" все блоки {OffsetZ ...}
    4) Удалить в файле "map" все блоки {meshgroup ...}

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

    Первый этап.
    1) Делаем копию папки с картой,
    2) открываем карту, удаляем на ней все объекты,
    3) расставляем объекты-маркеры, регулярным порядком,
    4) расставляем дополнительные маркеры для территорий со
    сложной поверхностью, дорог, водоемов.
    [​IMG]

    Регулярные маркеры выставляются на расстоянии 10-20 метров
    друг от друга. Дополнительные выставляются вручную.
    Желательно не скупится, но и не переусердствуйте. Мне кажется,
    достаточно 5-8 тысяч маркеров, чтобы точно передать
    поверхность большой карты.

    Второй этап.
    1) Выделяем все маркеры на карте
    2) в панели свойств находим строчку constrain, задаем параметр
    none,
    3) копируем выделение в буфер обмена,
    4) можно создать текстовый документ, и скопировать в него
    содержимое буфера обмена (на всякий случай),
    5) создаем новую карту,
    6) вставляем из буфера обмена маркеры. Если буфер обмена
    очистился, восстанавливаем его из содержимого текстового
    документа (который мы создали на всякий случай).
    7) доращиваем полигоны, чтобы они попали под все маркеры,
    8) далее монотонно подгоняем полигоны под маркеры.
    [​IMG]


    4. Совместить объекты с новой поверхностью

    После того как поверхность восстановлена,
    1) удаляем все маркеры, сохраняемся.
    2) открываем в редакторе оригинальную карту,
    3) выделяем и копируем все объекты с оригинальной карты в
    буфер обмена,
    3) вставляем буфер обмена в текстовый файл (перестрахуемся)
    4) открываем в редакторе карту с ВТВ-2 совместимой
    поверхностью, откуда мы удалили все маркеры,
    5) вставляем из буфера обмена объекты из оригинальной карты,
    6) подгоняем положение объектов к поверхности,
    7) сохраняемся.
    [​IMG]


    5. Заменить объекты на ВТВ-2 совместимые

    Теперь займемся очередной рутиной. Необходимо заменить
    все объекты из ВТВ-1 аналогами из ВТВ-2.

    Т.к. мы подключили ресурсы ВТВ-1 в моде, операция замены
    становится относительно несложной.
    Объекты, которые в моде имеют имена одинаковые с
    оригиналом можно найти в логе:
    [00:00:38] Entity redefinition: chicken...

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

    Заменяем старое на новое:
    1) Выделяем объект,
    2) копируем имя,
    3) смотрим по-поиску в какой папке он находится,
    4) находим аналог в папке с похожим названием из ресурсов
    БпО,
    5) с помощью любой find & replace программы проходимся в файле "map" и заменяем ...
    [​IMG]

    ...и так продолжается пока мы не заменим все объекты.

    Проверить, какие ресурсы остались незамеченными очень
    легко:
    1) отключаем мод (удобно комментировать ";" соотв. строку в
    файле options.set в папке профиля пользователя),
    2) загружаем карту,
    3) смотрим логи, в них можно обнаружить записи об
    отсутствующих ресурсах - это наши клиенты,
    4) если клиенты несерьезные, просто сохраняем карту - она
    запишется без этих объектов.


    6. Осталось

    6.1 Затекстурировать поверхность.
    6.2 Проставить типы территорий.
    6.3 Добавить травку.

    7. Рекомендации

    7.1 Использовать Color
    Подсвечивайте высоты и слегка затемняйте склоны с помощью
    инструмента Color. Это облегчит игроку восприятие ландшафта.

    7.2 Environment
    Даже если карта глубоко оптимизирована не совершайте ошибок
    карты "Порт". Ставте крайнюю границу области обзора от 3000 до
    4000.

    7.3 Смотреть терминаторы
    Некоторые ресурсы ВТВ-1 могут использовать устаревшие
    настройки. Поэтому не удивляйтесь, что некоторые объекты могут
    вызвать критическую ошибку. Напротив, внимательно
    ознакомтесь в каком файле находится причина ошибки и удалите
    его, либо те строки, которые вызывают терминатор.

    7.4 Резервное копирование
    Постоянно сохраняйте свою работу. Лучше всего использовать
    одну папку backup и сохранять в нее папки с картой, присваивая
    им порядковый номер.

    7.5 Включайте тени
    Тень от объекта-маркера помогает определить его положение в пространстве.

    7.6 Alt+W
    Переключайте режимы отображения полигональной сетки для обнаружения маркеров, которые скрыты поверхностью.

    Последнее редактирование модератором: 24 янв 2008
  2. VIN
    Оффлайн

    VIN Зарегистрированный

    Мдэ-э, жесть...

    Уточни это как "3) расставляем объекты-маркеры, регулярным порядком" ? Ну т.е. можно как-то автоматически расставить объекты с заданным интервалом, грубо говоря?

    И о чем это:
  3. Sky)mood
    Оффлайн

    Sky)mood Зарегистрированный

    Включаешь сетку Ctrl+W, по ней выставляешь несколько маркеров, потом клонируешь и так далее, до тех пор когда всю карту покроешь.

    Карта Порт могла бы летать, но из-за настроек тумана 3000-6000 она притормаживает на средних компах.
    На 2000-3800 она летает шустрей.

    [​IMG]
    Последнее редактирование: 24 янв 2008
  4. Донской
    Оффлайн

    Донской Зарегистрированный

    У меня вопрос, а как еще можно оптимизировать карту, для того чтобы даже карта больших размеров летала на средних компах?
  5. трудяга
    Оффлайн

    трудяга Best Way Команда форума Администратор

    • при создании карты выбирайте сетку с наибольшим размером полигона
    • меньше объектов, особенно состоящих из большого числа полигонов или структурных объектов (дома)
    • меньше текстурного разнообразия на земле
    • меньше разновидностей растительности (лучше использовать кусты, чем деревья)
    • меньше разнообразных штампов
    • используйте объекты, на которых преимущественно общие текстуры, меньше пользуйтесь тексмодами
    и самое главное: не увлекайтесь :)
    в погоне за хорошей производительностью можно очень сильно потерять в визуальном качестве картинки.
  6. VIN
    Оффлайн

    VIN Зарегистрированный

    О хоспади, тоже мне ошибка...

    трудяга а что вы сами не пользуетесь бОльшими полигонами при создании карт? Я к тому что моглибы юзать скажем 4.4 метровые(в два раза больше чем дефоултные) ведь вы все равно "мелким дроблением" особо не пользуетесь, а огромные "равнинные" пространства на тойже карте "лес" моглибы обойтись и меньшей полигональностью, т.е. как итог рост производительности без потери визуального качества?
    Последнее редактирование: 24 янв 2008
  7. трудяга
    Оффлайн

    трудяга Best Way Команда форума Администратор

    Хороший вопрос...
    Тут дело в соотношении цена/качество
    3м - на мой взгляд, самая оптимальная длина стороны полигона.
    Дело все в ширине переходов между текстурами. Если сетку сделать еще крупнее, то прийдется на местах стыка текстур ее дробить, иначе будет замыленное месиво.
  8. VIN
    Оффлайн

    VIN Зарегистрированный

    Ага, т.е. вместо того чтобы дробить там где нужен переход текстур, вы предпочитаете чтобы уже всё было раздроблено?
    Вы хотябы когда будите делать "охоту" об этом еще раз подумайте, ведь на сколько я помню там достаточно большую часть поверхности занимает пашня, т.е. там нету переходов текстур особо, да и вообще очень ровная карта была.
    Кароче, нафик тогда вы придумывали это дробление полигонов "многоуровневое", если пользуетесь лишь парочкой первых "уровней" дробления из скольки там...шести или даже семи. :D
    Т.е. качества сейчас производимых вами карт можно добиться используя бОльшие полигоны, благодаря тому "резервному" количеству "уровней" дробления, которые с мелкими полигонами использовать практически бессмысленно, что вы собственно и делаете, т.е. не используете.
  9. трудяга
    Оффлайн

    трудяга Best Way Команда форума Администратор

    Я проводила эксперименты с дроблением. Делала две карты (максимальный размер полигонов+дробление и сетка в 1м без дробления), сравнивала количество полигонов, попадающих в камеру и производительность. 3 м - оптимальная сетка )))
    Основная проблема слишком крупной сетки: получаются контрастные по количеству полигонов области. На пустом поле мало полигонов, но и мало объектов, в то время как в местах переходов обычно находятся "населенные пункты", где большое скопление высокополигональных объектов + еще и дробление сетки. В итоге работа по_дроблению_сетки_в_нужных_местах нужного эффекта не приносит.
  10. Sky)mood
    Оффлайн

    Sky)mood Зарегистрированный

    трудяга
    Ситуация с дроблением немного прояснилась.
    Теперь сплю спокойней.
  11. VIN
    Оффлайн

    VIN Зарегистрированный

    трудяга
    Т.е. сейчас карты делаются на 3м сетке? А раньше, к ВТВ2? Да и к ВТВ1, кстати, какова размера полигоны были интересно?

    Гм, я вот только не понял, а в чем заключается проблема? В том что карта будет тупить независимо от того места где мы находимся, вместо того чтобы тупить только в тех местах где встречается высокополигонность? Да, конечно, количество фпс в первую очередь зависит от количества отображаемого на экране в данный момент, но ведь то что не отображается тоже далеко немаловажно, на сколько я заметил, естественно я говорю о картах больших чем 500х500. Кстати какова размера были ваши идентичные карты с разной полигональностью? И потом давайте возьмем ситуацию что мы всё-таки разблокируем или увеличим потолок камеры и будем летать на разумной высоте, т.е. на которой удобно для определенного рода действий, у нас на экран попдут помимо "населенных" частей еще и "промежуточные" и в этом случае их излишне высокая полигональность имхо даст о себе знать. Я не прав?

    И, по-твоему разницы в производительности между двумя большими моделями ландшавта различающихся по количеству полигонов допустим в два раза не будет? Хотя при этом выгляеть они будут практически идентично, т.е. не вооруженным глазом, не включив полигональную сетку, визуальных различий мы не заметим.
    Последнее редактирование: 24 янв 2008
  12. Sky)mood
    Оффлайн

    Sky)mood Зарегистрированный

    Делаем заготовки (бесплатно)

    Предлагаем помощь тем, кто ужаснулся от идеи восстановления поверхности по
    маркерам.


    У нас появилась радостная утилита, которая проделывает экспорт/импорт карты высот
    в виде изображения (.tga).
    В широкие массы это чудо вместе с обновленным редактором дойдет не скоро.

    Поэтому, отпишитесь в этой теме, если вам нужна ВТВ-2 совместимая копия
    поверхности карты из ВТВ-1.
    Сделаем быстро и качественно.

    От вас требуется:
    - название карты,
    если она неофициальная, то предоставьте архив с файлами (map, map.net, map.ply)
    - размер стороны полигона поверхности карты.
    Последнее редактирование: 6 фев 2008
  13. Кирилл Борисов
    Оффлайн

    Кирилл Борисов Гость

    Да, уж все это как-то сложно,долго и натянуто - перегонка карт.Почему бы разработчикам не выпустить конвертер карт ВТВ -> ВТВ2.Или им создать дополнение для ВТВ2 на диске с ВТВ на движке ВТВ2,а?!


    P.S. Сколько миссий в ВТВ?Как долго делать перегонку?
  14. HIMZA
    Оффлайн

    HIMZA Зарегистрированный

    Последнее редактирование: 12 июн 2008
  15. Sky)mood
    Оффлайн

    Sky)mood Зарегистрированный

    Востановление с помощью утилиты в редакторе - 4 минуты.
    Восстановление по маркерам - 1 день.
  16. HIMZA
    Оффлайн

    HIMZA Зарегистрированный

    Да.Проверено.Долго.Но зато результат на 5 с плюсом.
    Последнее редактирование: 12 июн 2008
  17. IR()KEZ
    Оффлайн

    IR()KEZ Зарегистрированный

    Выдает терминатор при загрузке высот карты.
  18. HIMZA
    Оффлайн

    HIMZA Зарегистрированный

    Да да.В том-то и дело,что не все карты так легко делаются.Я пока смог 4 карты:"3_2-edge","3_4-kitchengardens","defend" и "depo"(правда в Депо высот нет).Но тут дело не только в высотах:хочется сделать копию карты из ВТВ-1.Так что если нужна карта,то к Sky)moodу в личку.
  19. Sky)mood
    Оффлайн

    Sky)mood Зарегистрированный

    Посмотрю
  20. Sky)mood
    Оффлайн

    Sky)mood Зарегистрированный

    Чепель

    Уф-ф. вместо 5 минут минут сорок пропарился.

    chepel_new.rar

    Там оказалась нестандартная карта. В результате получилось немного кривовато:
    - объекты +-1 метр. (уже сам подвигаешь).
    - поверхность в районе полей (дорисуешь полигоны)

    В архиве есть миссия. загрузи — там штамп, он поможет выровнять объекты и нарисовать текстуру.

    Сетку сделал на 5 метров. В местах где ландшафт - разбил до 2.5.

Поделиться этой страницей