Разработка кабины

Обзор
Разработка кабины - наверное, самый долгий процесс. Не вызывает сомнения, что именно по этой причине существует так мало самодельных кабин.

Абсолютно обычное дело потратить на разработку всего одной кабины 2 недели полных восьмичасовых рабочих дней. И это не считая времени на изучение, подгонку и тестирование. Фирма "Ауран" применяет для моделирования и создания текстур 3D Studio Max и Photoshop. Одно из главных преимуществ 3D Studio Max над более простым Gmax - возможность рендерить изображения. Как вы узнаете ниже, рендеринг изображений - составная часть создания рабочих текстур для выпущенных "Аураном" кабин.
Поскольку каждая кабина совершенно уникальна, у каждой есть свои собственные сложности и требования. Например, у паровоза должно быть пламя и анимированные рычаги. Электровозу нужны рычаги управления токосъемником (которого нет ни у паровоза, ни у тепловоза), а у тепловоза может быть динамический тормоз и другие специфические детали.

Этапы моделирования и разработки тестур
Мы хотим рассказать в общих чертах, как мы создаем сетку, текстуры и объединяем их вместе. Надеемся, что вы лучше поймете принципы создания кабины.

Этап 1 - Изучение 
Этап 2 - Моделирование 
Этап 3 - Текстуры с высоким разрешением и их размещение 
Этап 4 - Размещение источников света 
Этап 5 - Рендеринг рабочей модели 
Этап 6 - Рабочие текстуры и их размещение 
Этап 7 - Разделение рабочей модели и привязки 
Этап 8 - Настройки экспорта и конфигурации

Этап 1 - Изучение
Большинство информации мы находим прямо в Интернете. Мне кажется, "Ауран" может позволить себе роскошь сделать "универсальные" кабины, механизмы управления из которых можно использовать в других кабинах.

Главная сложность универсальной кабины - правильно разместить окна и боковые двери. Остальные элементы кабины - несущие конструкции, электрические устройства, звукопоглощающая обивка и решетки - дело рук художника, желающего сделать кабину более убедительной. Это как раз те вещи, информации о которых немного.

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

Вы должны иметь в виду, что совершенную копию прототипа создавать необязательно. Как художник вы имеете право на капельку творческого воображения и гибкость в размещении и расположении вещей, вносящих свою долю в атмосферу кабины. Посмотрите для примера анимированный вентилятор в кабине DD40 cab.

Этап 2 - Моделирование
Мы начинаем разработку модели, помня, что она будет использоваться внутри игры. Мы ставим достаточно мало полигонов. Иногда при необходимости мы можем добавить некоторые специфические детали, например, трубы, которые будут удалены после рендеринга.

Заметка на полях: Многие разработчики игр используют модели с очень большим количеством полигонов для рендеринга рабочих текстур, а затем натягивают их на модели с малым количеством полигонов .

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

Поскольку в TRS2004 более серьезные требования к машине, ограничения количества полигонов в кабине чуть менее жесткими. Но не увлекайтесь!

Ориентируйтесь на следующее количество полигонов, использованное "Аураном" в рабочих кабинах:

Кабина паровоза QR PB15

Кабина электровоза SBB Krokodil (доступна для загрузки)

Кабина электровоза SNCF TGV

Кабина тепловоза UP DD40

Этап 3 - Текстуры с высоким разрешением и их размещение
ЭТо первый из трех этапов работы над рабочими текстурами.

Мы натягиваем текстуры с высоким разрешением на каждую поверхность модели, используя команды с панели ‘Modify’ в 3d Studio Max - ‘UVW map’ и ‘Unwrap UVW’.

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

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

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

Вы можете выбрать свойства материала, изменяя настройки ‘specular’ и ‘glossiness’ до следующего этапа рендеринга текстуры.

Этап 4 - Размещение источников света
Когда первый этап работы над текстурой завершен, пришло время координировано добавить источники света. В 3D Studio Max встроено множество разнообразных источников света.

Мы обычно используем следующие:
Направленный свет
Главный источник света для сцены. Действует в качестве "солнца".
Ненаправленный свет
Рассеянный свет и дополнительные подсветки - если присвоить отрицательный "множитель", свет удаляется, что подчеркивает тени. Напр, под сиденьями.
Вам придется поэкспериментировать с освещением и попробовать несколько вариантов, если вы хотите, чтобы кабина хорошо смотрелась.

Этап 5 - Рендеринг рабочей модели
Следующий шаг - второй этап разработки текстуры. В него входит рендеринг всех деталей и поверхностей (передней, задней, боковых, пола, потолка, дверных проемов и т.д.)

Здесь оказывается очень удобным плагин материалов от 3D Studio Max, называющийся “Cast Shadows Only” фирмы "Blur Studios". Этот материал делает объект невидимым, но позволяет ему отбрасывать тени. Очень удобно, когда задается, что нужно и что не нужно рендерить в конкретной сцене.

Мы создаем еще один корпус кабины с проемами вместо окон, целиком окружающий текстурированный корпус. Он создает в модели тени от окон.

Загрузите плагин ‘Cast Shadows Only’ с адреса http://www.3dmaxer.dk/plugsdown4.asp?id=45

Плагину требуетс утилита под названием ‘blurlib', доступная для скачивания с http://www.3dmaxer.dk/plugsdown4.asp?id=43

Этап 6 - Рабочие текстуры и их размещение
На этом этапе используются все отрендеренные (на этапе 5) текстуры. Они преобразуются в формат, который может прочитать TRS2004.

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

Передняя дверь повернута на 90 градусов, а на ее месте стоит отрендеренное изображение пола. Так сделано, чтобы экономно использовать площадь текстуры.

Once the render manipulation is complete, you will probably have to re-assign much of the new textures back onto the model. In many cases this should just consist of re-doing the Unwrap UVW command.

Этап 7 - Разделение рабочей модели и привязки
После отображения всех рабочих текстур пришо время разделить модель на логические части и добавить точки привязки.

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

Не забудьте на всякий случай сохранить исходную версию

Любой объект, который должен перемещаться (например, рычаги и циферблаты) или быть анимированным должен быть "отсоединен" от главной модели. Чтобы это сделать, выберите полигоны или элементы, которые вы хотите отсоединить, на панели "modify" нажмите кнопку "detach" и дайте имя новому объекту

Чтобы порядочно облегчить себе дальнейшую работу, переместите точку оси всех новых объектов в ее логическое положение. Например, для стрелок и рычагов ось должна быть в центре вращения (а вращение должно проходить вокруг оси Z). Направьте сам рычаг в положительном направлении оси Y.

Чтобы это сделать, откройте панель "Hierarchy" и нажмите кнопку "Affect Pivot Only". С этой вкладки вы сможете отцентрировать и переориентировать ось объекта, а также переместить ее в выбранное положение.

Когда оси всех новых объектов установлены, можно начинать добавлять точки привязки. Для их добавления используйте панель "create" panel (см. рисунок внизу). Не забывайте о том, что имена должны начинаться с "a.". Точки привязки - это просто точки в трехмерном пространстве, в которые может быть вставлена другая сетка (она указывается в файле config.TXT).

Поскольку вы уже правильно установили оси всех своих объектов, все, что вам остается сделать - выровнять точки привязки по осям объектов. Нажмите изображенную рядом иконку и выберите объект, по которому вы будете выравнивать....Align position: X, Y & Z - Current and Target: Pivot Point - Align orientation: X, Y & Z

Примечание для пользователей GMax...
Конечно, можно пропустить этапы с 3-го по 6-й и создать рабочие текстуры самостоятельно с помощью программы редактирования двухмерной графики, например Photoshop или Paint Shop Pro, а потом натянуть их на модель.

Изучите кабины, добавленные "Аураном" в TRS2004, поскольку правильное распределение света добавляет кабине настоящую

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

3D Studio Max позволяет резко уменьшить число мест, в которых понадобятся догадки. Он может создавать плавно освещенные, почти натуральные сцены. Это займет больше времени, но результаты того стоят!

Дополнительные точки привязки экспортируются как части главной сетки. Привязываемые объекты не должны включаться в список экспорта, поскольку они экспортируются из своих собственных файлов *.max и привязываются к главной сетке отдельно (через ссылку в файле config.TXT).

Сохраните копию файла *.max!

Выберите по очереди каждый объект и сохрание его в собственно файл (панель команд, file - save selected). После сохранения вы можете удалить объект из главной сетки.

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

Теперь можно экспортировать объект в файл сетки Trainz (.IM).

Примечание: Когда рычаг вставляется в главную сетку, он вставляется так, что его начало координат независимо от формы рычага оказывается в точке привязки. Уже установленная ось Установка оси и разворот объекта по его началу координат уменьшают вероятность ошибки.

Вращение всегда происходит вокруг оси Z точки привязки, а засечки, показываемые игрой, по умолчанию идут в положительном направлении оси Y (по часовой стрелке) вокруг оси Z. Изменение тега angle в config влияет на положение засечек

Посмотрите ранее приведенный пример файла config.TXT

Этап 8 - Установки экспорта и конфигурации

Например

fan
{

mesh Fan/fan.IM
anim Fan/fan.KIN
auto-create 1
att a.fan
att-parent default
}

Экспортировать объекты очень просто. Вам понадобится плагин экспорта от Trainz для 3D Studio Max (или GMax Asset Creation Studio). Оба можно скачать со страницы Руководства по созданию ресурсов Trainz http://www.auran.com/trainz/contentcreation.htm

Выберите объекты, которые вы хотите экспортировать, затем с панели команд нажмите File, Export Selected, выберите формат Trainz и обязательно наберите расширение фалй в диалоге выбора имени файла.

Все файлы сеток должны находиться в том же каталоге, что и файл config.TXT (или в подкаталоге). config.TXT может ссылаться на подкаталог с сеткой.

При экспорте главной сетки вы должны добавить все точки привязки. TRS2004 может зависнуть, если в файле config.TXT будут стоять ссылки на отсутствующие дополнительные модели.

Настройка файла Config.TXT

Не забывайте несколько главных моментов:

1) Mesh-table (таблица сеток):
Кабина использует те же самые теги, что и любая таблица сеток в TRS2004, вам надо добавить auto-create 1, иначе сетка не будет показана.

Могут быть случаи, когда вы не хотите, чтобы сетка была по умолчанию видна. Возьмите, например, лампочки на панели. Для них выставляется auto-create 0, поскольку их появлением управляет сценарий, реагирующий на ъ изменение положения переключателя.

2) Анимация:
ОБратите внимание, что для анимированных вентилятора и стеклоочистителей не установлен тег animation-loop-speed tag added, потому что эти анимации управляются сценарием. По умолчанию сами объъекты показываются, но их анимация не проигрывается.

Если бы мы добавили animation-loop-speed 1, анимация включалась бы сама независимо от сценария

3) Рычаги:
Жалюзи, вращающееся кресло и открывающиеся окна - все это настроено как рычаги

Для этих трех объектов notchheights установлено в 0, чтобы не показывались засечки.

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

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

Анимированные рычаги

Давайте возьмем ддля примера анимированные заслонки на топке:
fire_plates
{
mesh Fireplates/fireplates.IM
anim Fireplates/fireplates.KIN
auto-create 1
kind animated-lever
test-collisions 0
notches 0, 1.0
notchheight 1,1
limits 0, 1.0
}
fire_plates-collision-box
{
mesh Fireplates/Selection_Box/selection_box.IM
att-parent fire_plates
att a.selection_box
auto-create 1
kind collision-proxy
opacity 0
collision-parent fire_plates
}

Анимированные рычаги в общем настраиваются также, как и другие анимации в TRS/Trainz. Каркас (или dummies ???) должны соответствовать соглашению об именах b.r.name.

Поскольку новые анимированные рычаги управляются мышью, возникает необходимость сделать так, чтобы можно было "хватать" только ручку рычага, а не все анимированные его части. Поэтому анимированным рычагам требуется специальная сетка (тип: collision-proxy)

fire_plates (Заслонки) относятся к типу animated-lever. Мышью эту сетку выбрать нельзя, поскольку установлен тег test-collisions 0.

Обратите внимание, что для fire_plates-collision-box определено auto-create 1 но сама сетка прозрачная (opacity 0). Ее родительская сетка по умолчанию - fire_plates. То есть, вы должны поставить курсор мыши над fire_plates-collision-box, если хотите подвинуть fire_plates.

firebox
{
mesh firebox.IM
auto-create 1
kind firebox
light 0
test-collisions 0
}
fire
{
mesh fire.IM
auto-create 1
light 0
test-collisions 0
}
coal
{
  mesh coal.IM
auto-create 1
light 0
test-collisions 0
}
fireglow
{
  mesh fireglow.IM
auto-create 1
light 0
test-collisions 0
}  

Дополнительный объект a.selection_box называется в 3DS MAX a.r.handlearm/a.selection_box , поскольку он "привязан" к анимированному каркасу, называющемуся b.r.handlearm

Эффекты огня и свечения в кабине паровоза
Эффекты генерируются TRS2004 автоматически, когда она обнаруживает топку, огонь, уголь и отсвет пламени (firebox, fire, coal, fireglow) в config.TXT

firebox
Это просто коробка с текстурой. TRS2004 управляет световыми эффектами при повышении температуры

fire
Просто несколько полигонов с простым отображением plannar UVW mapping текстцры, называющейся ‘flametest2.TGA’. UVW mapping изменяется автоматически игрой при проигрывании каждого кадра анимированного огня.

coal
Простая сетка с простым отображением plannar UVW mapping текстуры, называющейся ‘coalfire.TGA’. UVW mapping изменяется автоматически игрой при повышении температуры.

fireglow
Простой полигон, изображающий свечение вокруг дверей топки. Появление управляется игрой.

Примечание: Тег: light 0, потому что освещенность этой сетки управляетс отдельным кодом для имитации эффекта раскаляющегося угля и пламени.

 

 

Content Creation Guide Table of Content

Paint Shed Guide
Hosted by uCoz