3d модели кабин

Материал из Warthunder Wiki RU
Перейти к: навигация, поиск

Кабины. Техническое задание

  • Общие требования к сцене
  • Модель
    • Геометрия кабины. Полигонаж
    • UV маппинг. раскладка текстуры
  • Наименования и анимация.
  • Материалы и текстуры
    • Текстуры диффузного (диффуз)
    • нормальных Текстуры (нормаль) и зеркальные (спекуляр)
    • Материалы
    • Советы для пользователей продвинутых графических редакторов
    • Ambient Occlusion (рассеянное затенение)
    • Дополнительные заметки


Общие требования к сцене

  • Сцена должна быть полностью совместима с форматом Autodesk 3ds Max 2011
  • Имя сцены должна содержать полное название самолета с окончанием"_Cockpit", Например: bf_109e_3_cockpit.ma х, В названиях файлов используйте строчные буквы латинского алфавита. Не используйте в имени сцены и текстур больших букв и знака"Pmlk", Можно заменить его на нижнее подчёркивание"_",
  • На всех объектах должны быть схлопнута стек (объекты должны быть Editable Poly)
  • Модель должна иметь реальный Масштаб в метрических единицах (ИЗМЕРЕНИЯ Системные блоки=метры). Размерность Дисплей юнита ВЫБРАТЬ ТАКИЕ Может КОТОРАЯ Вам удобна.
  • Все объекты должны иметь масштаб=100, 100, 100 (используйте Hierarchy/Reset Scale)
  • Кокпит должен располагаться внутри внешней модели и ориентирован так же, как и она (ось Х - вперед, ось Y - влево, ось Z - вверх).

Image cockpit02.png

Все объекты в сцене разложены по следующим слоям:

  • кокпит- кабина
  • LOD0- внешняя неповрежденная модель самолёта. Также в этом слое должны быть плашками повреждений на стекле и металлические части кабины
  • LOD0_DMG2- внешняя разрушенная модель самолёт (с поврежденной текстура, оторванные законцовки крыл и хвост)
  • ''''ПИСТОЛЕТ- пламя из стволов а также вспомогательные объекты для закрепления бомб и ракет (берется из внешней модель)
  • узлы- анимированные ноды пилот прилинкованная к органам управления (ноды доступны в модели пример)

Пивоты все неанимированные объектов относящаяся к кабине должны находиться в центре мировых координат (World 0,0,0), локальные оси должны совпадать с мировыми. Пивоты анимированные объекты (такая как стрелки приборы) должны находиться в плоскости и на оси вращения стрелки. Относительная ориентация оси пивотов не важно поскольку объекты будут анимироваться.


Модель

Геометрия кабины. Полигонаж

Модель должна содержать 35-50 тыс. треугольников для одноместной кабины и 40-60 тыс. треугольники для двухместной/тандемной кабины. При изготовлении геометрии следует учитывать круговой обзор камеры. Также игровая камера может перемещаться в пределах 20-30 см. во все стороны от своего нейтрального положения. Таким образом при оптимизации кабины удалять невидимые полигоны нужно осторожно, чтобы из позиции камеры не было видны дыры в модели. Лучше оставить лишние полигоны, в видимости которых есть сомнения. А те которые собираются удалять можно оставить в слое«Невидимый», Который можно отключить при экспорте модели.

Группы сглаживания (Smoothing группы) должны присутствовать на всех треугольниках))).

UV маппинг. Раскладка текстуры

UV координаты не должны выходить за текстурные рамки ого в любом направлении))).

Всё полигоны должны иметь УФ раскладку))).

Иначе при экспорте и конвертации могут возникнуть ошибки.

Хорошая практика будет укладывать всю геометрию в рамках 0-1 UV.


Наименования и анимация

Диапазон анимации должен быть от 0 до 100 кадра, для любого из анимированных объектов. Также необходимо создатьПримечание TrackвТрек Посмотреть Dope Sheetс ключамиНачнитев 0 и кадреКонецв 100 кадре для одного из объектов. В случае кабины этот объектдроссельная заслонка))).

Image cockpit05.png

Используйте толькоЛинейная позиция, Линейная Вращение и линейная шкалаконтроллеры для анимации объектов:

Image cockpit04.png

Нельзя использоватьограничители движения (Сonstraints)))).

Полный список имёны анимированные объекты в кабине содержится в нижеприведенной таблице. Там же указаны начальное и конечное положение органов управления и стрелок приборов. В зависимости от кабины не все объекты могут быть задействованы.


Анимированные объекты:

Название прибора или устройства

Обозначение

Положение в 0 кадр

Положение в 100 кадре





''''Органы управления




Аэродинамические поверхности




Ручка управления самолетом

stick_elevator *

полностью от себя

полностью на себя


stick_ailerons *

до упора влево

до упора вправо

Педали

Педали (1,2,3, ...) **

левая педаль вперед

правая педаль вперед

Закрылки

закрылки

убраны

выпущены

Триммер

триммер

на пикирование

на кабрирование

Двигатель




Ручка управления двигателем

дроссель

холостой ход

макс. обороты

Смесь

смесь

богатая

обедненная

шаг винта

prop_pitch

большой шаг

малый шаг

Нагнетатель

нагнетатель

выкл.

вкл.

Створки радиатора

радиатор

закрыты

открыты

Вооружение




Вооружение 1

weapon1 ***

нейтр.

нажата

Вооружение 2

weapon2 ***

нейтр.

нажата

Вооружение 3

weapon3 ***

нейтр.

нажата

Прочее




Шасси

шестерни

убраны

выпущены

Тормоза

тормоза

не нажаты

нажаты

Приборы и оборудование




Навигация и управление




Высота (км или тыс.фт.)

altitude_hour

0 градусов

360 градусов по часовой стрелке

Высота (сотни м. Или фт.)

altitude_min

0 градусов

360 градусов по часовой стрелке

Скорость

скорость

0 км/ча (узлы) *****

макс. ***** скорость

Скороподъемность

варио

макс. спуск

макс. подъем

Авиагоризонт. Подъём

aviahorizon_pitch

макс. подъем

макс. спуск

Авиагоризонт. Крен

aviahorizon_roll

макс. правый крен

макс. левый крен

указатель скольжения

банка

шарик в крайнем левом положении

шарик в крайнем правом положении

указатель поворота

очередь

налево

направо

Компас

компас

0 градусов

360 градусов против часовой стрелки

Часы

clock_hour

0 градусов. 24 часа

360 градусов по часовой стрелке


clock_min

0 градусов. 60 минут

360 градусов по часовой стрелке


clock_sec

0 градусов. 60 секунд

360 градусов по часовой стрелке

Индикатор перегрузки

g_meter

макс. отрицательная перегрузка

макс. положительная перегрузка

Индикатор патронов

ammo_counter1..8



Двигатель




Давление нагнетателя

manifold_pressure

0

макс. давление

Обороты (однострелочный прибор)

оборотов в минуту

0 об/мин

макс. об/мин

Обороты (двухстрелочный прибор)

rpm_hour

0 градусов

360 градусов по часовой стрелке

Обороты (двухстрелочный прибор)

rpm_min

0 градусов

360 градусов по часовой стрелке

Давление масла

давление масла

мин. давление

макс. давление

Температура масла

oil_temperature

мин. температура

макс. температура

Температура воды

температура воды

мин. температура

макс. температура

Температура головки цилиндров

head_temperature

мин. температура

макс. температура

Температура впуска

carb_temperature

мин. температура

макс. температура

Указатель уровня топлива

fuel1

пустой бак

полный бак


fuel2

пустой бак

полный бак

Давление топлива

fuel_pressure

0

макс. давление

Прочее




Зеленые лампочки шасси

gear_lamp_down ****



Красные лампочки шасси

gear_lamp_up ****




*) - stick_aileronsдолжен быть прилинкован кstick_elevators, Если РУС состоит из одного объекта (обычно так оно и есть), то необходимо создать фиктивный объект (бокс)stick_elevatorsи расположить его в месте шарнира РУС.

Image cockpit03.png

**) - педаль может представлять собой сложный параллелограммный механизм. В этом случае все объекты, относящиеся к педалям, должны иметь имена pedals1, pedals2, pedals3 и т.д.

***) Гашетки на РУС должны быть прилинкованы к stick_aileronsи иметь именаweapon1(Пулеметы),weapon2(Пушки),weapon3(Бомбы, ракеты).

****) Эти имена присваиваются плашки, на которых лежит текстуру светящейся лампы.

          • ) Обычно спидометр имеет нелинейную шкалу. Необходимо анимировать стрелку так, чтобы показания линейно зависели от скорости. Например, если максимальная скорость по прибору 500 км/ч, то на каждые 2 кадра скорость должна увеличиваться на 10 км/ч по прибору.


Материалы и текстуры

Модель использует несколько комплектов текстур.

  • тела- основной комплект текстур для кабины. Диффуз + + спекуляр нормали
  • стакан- текстура стекла. только диффуз
  • glass_oil- текстура стекли заляпанное масло (для модели повреждения). только диффуз
  • манометры- текстура шкал приборов а также их корпуса. Диффуз + + спекуляр нормали
  • прицел- отдельная текстура для прицела (без прицельной сетки). Диффуз + + спекуляр нормали.
  • этикетки- опциональная текстура для всех плашек с текстовыми надписями в кабине. Диффуз + + спекуляр нормали
  • коробки- опциональная текстура для оборудования которое не поместилось на основной текстуре (радиооборудование и подобные агрегаты). Диффуз + + спекуляр нормали

Текстура диффузный может быть с альфа каналом или без.

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

Используйте опциональные по текстуры своему усмотрению. Например если у вас будет комплект текстуркоробкис оборудованием и на этом оборудовании уже будут нанесены текстовые надписи то, соответственно, надобность в комплектеэтикеткиотпадает. Оставшаяся часть табличек можно перенести на текстуреманометры,

Основное правило - чем меньше текстур тем лучше.


Текстуры диффундируют (диффуз)

Стандартные размеры текстур следующие:

  • тела- 4096x4096x24bit (без альфы). Если кабина простая и небольшая по размеру, то возможно использование текстуры меньшего разрешения
  • стакан- 1024x1024x32bit
  • glass_oil- 1024x1024x32bit
  • манометры- 2048x2048x32bit или 24bit. Для многоместной кабины с большим количеством приборов разрешения может быть поднята до 4096 пикселей
  • прицел- 1024x1024x24bit (без альфы). Только корпус прицела. Текстура стек прицел не нужно. На стекле кладется шейдер без текстуры диффузного.
  • этикетки- 1024x1024x32bit. Или по мере необходимости до 2048
  • коробки- 2048x2048x24bit (без альфа-канала). Может быть меньшего размера.

Текстураglass_oilнужна только если двигатель расположен перед кабиной.

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


Ниже приведён типовой список текстур для кабины:

f3f_1_cockpit_body_c.tg а

f3f_1_cockpit_body_n.tg а

f3f_1_cockpit_glass_a.tg а

f3f_1_cockpit_glass_oil_a.tg а

f3f_1_cockpit_gauges_a.tg а

''f3f_1_cockpit _gauges_n.tg а

f3f_1_cockpit_gunsight_c.tg а

f3f_1_cockpit_gunsight_n.tg а

f3f_1_cockpit_labels_a.tg а(Опционально)

f3f_1_cockpit_labels_n.tg а(Опционально)

f3f_1_cockpit_boxes_c.tg а(Опционально)

f3f_1_cockpit_boxes_n.tg а(Опционально)


Окончания добавляемые к файлам текстур:

"_C"- для текстур без альфа канала

"_A"- для текстур с альфа каналом

"_N"- для текстур нормалей со спекуляром в альфа канале


Важно !

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


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


Совет для пользователей продвинутых графических редакторов поддерживающих слои:

Лучше складировать все составляющие (диффуз, нормали и спекуляр), относящиеся к одному комплекту текстур, в один файл. Таким образом в случае если мы работаем, например, в фотошопе, будем иметь следующие названия файлов исходников:

f3f_1_cockpit_body.ps д

f3f_1_cockpit_gauges.ps ди т.д.


Текстуры нормального (нормаль) и зеркальный (спекуляр)

Текстура нормали и спекуляр должны быть такая же размером как и текстура диффуза на основе которой они делаются. Карта нормалей использует каналы RGB а спекуляр использует альфа канал. В исходниках постарайтесь держать нормали в виде бампа. То есть карты высот перед конвертацией NormalMapFilter. Уже сконвертированный бамп применяйте местно для небольших исправлений. Используйте стандартные настройки для перевода бампа в нормали:Min Z=0, шкала=8.

Зелёный канал нормалей Y не должны быть инвертированы))).

После конвертации вы должны получать примерно следующую картинку.

Image cockpit00.png

На выпуклых частях в зелёном канале всё "подсвечены" снизу.

Нормал-мап должен содержать мелкие детали и рельеф, которые "дорого" делать геометрией:заклепки, головки винтов, шайбы, стыки панелей. Спекуляр должен подчеркивать дефекты, появившиеся в процессе эксплуатации:сколы и царапины на краске, вытершиеся головки винтов, заклепки и ребра металлических частей.

Следующие значения яркости спекуляра рекомендованы к использованию:

Основной окрашенных поверхности:K ~ 80-90% (40-70 RGB)

Металл (сколы, царапины) K ~ 20-40% (170-210 RGB)


Материалы

На все объекты в кабине должен быть присвоен один Multi/Sub-Object материалкабины))).

Названия подматериалов:

  • Идентификатор 1 - стекло
  • Идентификатор 2 - корпус
  • Идентификатор 3 - манометры
  • Идентификатор 4 - gauges_dmg (расколотые стёкла в приборах)
  • Идентификатор 5 - коллиматор или взгляд
  • Идентификатор 6 - collimator_glass или sight_glass (стекло прицела)
  • Идентификатор 7 - bullet_glass * (отверстие повреждений в стекле)
  • Идентификатор 8 - bullet_metal * (отверстие повреждений в металле)
  • Идентификатор 9 - этикетки (опционально)
  • ID 10 - ящики (опционально)
  • ID 11 - flare_red ** (красная лампа)
  • Идентификатор 12 - flare_green ** (зелёная лампа)

*) вы можете создать отдельный Multi/ Sub-Object материал для плашек повреждений

**) вы можете создать отдельный Multi/Sub-Object материал для плашек ламп. Нужные вам цветов.

Для текстурыglass_oil_aотдельный материал не нужен т.к. при возникновении повреждений подменяется неповреждённая текстура в материалестакан,

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


Советы для пользователей продвинутых графических редакторов

Для вашего удобства пожалуйста следите за размером файлов исходников. Например для файлов * .psd лучше оставаться в рамках 1 ГБ для текстуры 4k. С текстурами меньшего объёма удобнее работать. Главные потребители размера это слои с масками. Использование их повсеместно может быстро привести к заметному разрастанию размера файла. Маски для слоя нужно применять только там где это крайне необходимо. Не нужно носить за собой маску в 4k чтобы изменить цвет пары пикселей на слое. Однотонные цветные заливки с масками могут быть использованы. Они не влияют на размер файла. Также мало влияют на размер слои коррекции с масками. Количество слоёв в исходниках должно быть не слишком много но и не слишком мало, чтобы сохранить должный уровень контроля над текстурой.


Несколько примеров возможных названий слоёв для текстур кабины:

уф- слой с раскладкой UV. Самый верхний слой, включаемый по необходимости.

gauge_dial_rpm

color_handle_throttle_fs_37038

overlay_pedal_left

label_warning_landing_gear

color_body_fs_34128и т.д.

Названия слоёв должны нести смысловую нагрузку. В частности кроме логичных названий в примерах выше используются коды цветов FS федеральный стандарт FED-STD-595 для точных обозначений цветов. Использование дефолтных наименований слоёв Слой 1, Слой 2 и т.д. не рекомендуется. В отдалённой перспективе, когда слоёв станет больше, это может привести к неудобствам в работе.


Рекомендованные названия групп слоёв:

с- спекуляр

п- нормали

ао- рассеянное затенение

грязь- грязь, сколы и царапины

линии- заклёпки и панели

текст- текстовые надписи и обозначения

объем- дополнительные слои объёмы (свет и тень), нарисованные вручную

цветилис- основные цвета кабины


Также может дополнительно группировать поагрегатно, используя логичные наименования:

electric_radio_equipment

electric_circuit_breakers

control_throttle_quadrantи т.д.


Для удобства лучше не растеризировать слои с текстом в исходниках. Чтобы их было просто редактировать при необходимости.


Окклюзия (рассеянное затенение)

Слой с рассеянным затенением должно быть сделано по крайней мере для основной текстуры кабины. Чтобы получить мягкую рассеянная тень. Для этих целей лучше подходитлуч Renderer психического))). ВыберитеОкклюзия (МР)при добавлении компонента в секцииВыходв окнеRender To Texture))). ИспользуйтеКрай Перетяжкав 2 пикселя. Поиграйте настройкиОбразцыиFalloffдля получения желаемого резутьтата. Не забудьте переключить рендер наMental Rayв окнеРендер Setup(F10).

Рендерьте АО на белом бэкграунд. В редакторе Фотошоп или подобном используйте наложение«Умножить»для слоя или группы. Помещайте АО поверх слоёв которые нужно затенить. Поиграйте прозрачность для достижения желаемого результата. Перетемнять кабину нежелательно.

Обратите внимание что статичные тени могут нарендериться в местах где они не нужны. Например под педалями. Поскольку педали двигаются то необходимо будет подчистить АО вручную.


Дополнительные заметки

Повреждения (пулевые отверстия) на стекле и в металле выполняется плашки с характерными текстурами (их вы можете найти в модели пример). Не забывай про повреждение приборной панели и приборы. Игрок должен видеть что самолёт повреждён.

Image cockpit01.png


По периметру переплета на стеклах можно добавить немного загрязнённости. Яркость альфы для нее не должна первышать 40%.

Металл (сколы и царапины) на текстуре диффузного лучше Рисовать в диапазоне 90-120 RGB.

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




Успехи в моделировании!