Alex

Как подготовить модель к Transport Fever

7 сообщений в этой теме

Итак, до релиза игры осталась всего пара дней. Подробные инструкции начнут появляться уже после релиза, а здесь же я кратко опишу, чем модели в Transport Fever отличаются от таковых в предыдущей игре и к чему нужно быть готовым, чтобы подготовить свою модельку из Train Fever для работы в новой игре.

 

Итак, в целом структура моделей в игре абсолютно та же самая. Главные же отличия моделей в Transport Fever от предыдущей игры таковы:

1. Наличие салона и пассажиров (кабины);

Это касается, в первую очередь, моделей пассажирского транспорта.

Рассмотрим обычный пассажирский вагон.
Чтобы подготовить его к Transport Fever, необходимо в первую очередь смоделить ему простенький салон.
Здесь есть всего два обязательных правила:
1) Салон должен быть отдельным мешем;
2) У салона должна быть отдельная текстура.

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

Строка, отвечающая за расположение пассажира, выглядит таким образом:

-- Сидячий пассажир
{ group =1 , transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-9.257, -1.10, 1.271)) },

-- Стоячий пассажир
{ group =1 , transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.664, -0.894, 1.245)), standing = true },

Соответственно ваш файл должен состоять из двух-трёх (можно и больше) десятков таких строк.

В них поворот пассажира задаётся в первом блоке координат. 0 здесь - направление вперёд, 180 - назад. Если поиграть с остальными координатами, то можно, наверное, и разложить пассажиров по полкам. :D
Во втором блоке координат определяется положение пассажира в транспортном средстве. Первая координата - продольная (плюс - вперёд, минус - назад), вторая - поперечная (лево-право; инвертированно относительно Макса: что в Максе с плюсом, в скрипте должно быть с минусом), третяя координата - высота пола или высота, на которой располагаются ступни пассажира.

Подробнее о том, куда это пишется в скрипте, я расскажу позже. :D Хотя после релиза вы и сами сможете это увидеть.

 

2. Изменённый набор текстур;

В Transport Fever каждая модель использует 9 текстур, которые упрятаны в 4 файла. Кроме того, теперь расширение текстур - .dds, и текстуры сохраняются с разными настройками. 

1) Текстура model_albedo_opacity.dds.
Сохраняется с настройками: "DXT5 Interpolated alplha", Flip vertically. 
Cодержит:

  • Альбедо (основная текстура модели)
  • Прозрачность (альфа-канал, градиенты серого; чем темнее тем выше прозрачность)

2) Текстура model_cblend_dirt_rust.dds
Сохраняется с настройками: No Alpha, Flip vertically;
Содержит:

  • Красный канал: текстура перекраски модели: чёрное перекрашивается в игре, белое - нет;
  • Зелёный канал: текстура грязи;
  • Синий канал: текстура ржавчины.

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

3) Текстура model_metalness_gloss_ao.dds
Сохраняется с настройками: No Alpha, Flip vertically;
Содержит:

  • Красная канал: Metalness-текстура
  • Зелёный канал: Gloss-текстура
  • Синий канал: Ambient Occlusion

Здесь остановимся чуть подробнее. Описанные выше текстуры (в т.ч. Альбедо) являются так называемыми PBR-текстурами. Они создаются в специальных программах, например - Substance Painter или Quixel Suite. Поэтому если вы хотите, чтобы ваши модели в будущем выглядели реалистично, я очень рекомендую изучить какую-либо из этих программ.

Однако если говорить о подготовке уже существующих моделей (или просто моделей без PBR-текстур), здесь можно схитрить:

Metalness-текстура передаёт, как можно понять, "металличность" материала. Т.е. если в вашей модели есть открытые металлические участки, которые должны соответствующим образом отражать, на этой текстуре данные участки должны быть серые или белые. Всё остальное просто закрашиваем чёрным.

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

Ambient Occlusion - наверное, самое сложное из всего. Это карта затенений, которая запекается в 3Ds MAX. В принципе, использование её не обязательно и можно просто всё здесь закрасить белым. Но если хотите, чтобы модель выглядела хорошо - стоит поучиться её делать (гайдов по запеканию AO в Максе, благо, в интернете много). 

 

4) Normal-текстура.
Сохраняется с настройками: Normal map, Flip vertically.

Содержит она только знакомую нам Normal-текстуру. Тут особо нечего рассказывать.

 

Обратите внимание, что вместе с этим и в моделировании для Transport Fever появляются некоторые рамки. Например, чтобы сделать качественную текстуру AO (а также грязи и ржавчины), необходимо как можно меньше баловаться наложением текстур друг на друга, то есть развёртка большинства деталей должна быть уникальной.

 

Вот, для начала тут всё. Будет дополняться.

6

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Alex сказал:

Сохраняется с настройками: "DTX5 Interpolated alplha", Flip vertically. 
Cодержит:

  • Альбедо (основная текстура модели)
  • Прозрачность (альфа-канал, градиенты серого; чем темнее тем выше прозрачность)

А если альфы нет, можно ли dxt1 без альфы, или с 1 битной альфой применять?

4 часа назад, Alex сказал:
  • Зелёный канал: текстура грязи;
  • Синий канал: текстура ржавчины.

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

Спасибо за разъяснение.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Malaxit сказал:

А если альфы нет, можно ли dxt1 без альфы, или с 1 битной альфой применять?

Текстура _albedo_opacity всегда сохраняется с Interpolated alpha, даже если текстуры прозрачности нет (альфа-канал чисто белый).

1 час назад, Malaxit сказал:

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

Ага, скажи это украинским железным дорогам :D

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Надо будет поэкспериментировать.

12 минуты назад, Alex сказал:

Ага, скажи это украинским железным дорогам :D

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

 

-1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все моделируется в реальном масштабе? Единицы измерения?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@SKY_SHY да, в реальном, сцена в метрах.

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу