Изготовление 3D-модели кабины для MS TrainSimulator - Часть 2

1. Сигнальные лампы

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

В этом месте я приготовил маленькую хитрость - мы не будем моделировать стекло для колпачков разного цвета. В качестве цвета лампы будет использован участок текстуры пульта. Переключаем окно проекции в режим просмотра "Smooth+Highlight" (быстро эту операцию можно выполнить нажав F3) и прямо над пультом создаем "Sphere Object" с панели "Objects". Размещаем эту сферу так, чтобы она наполовину "утонула" в поверхности пульта.

Остальное за материалом стекла. Открыв редактор материалов, создаем новый материал. На этот раз мы загрузим его из стандартной библиотеки. В стандартной поставке 3ds max есть библиотека материалов под именем "RayTraced_01", а в ней материал с названием "GlassClear". Это именно то, что нам потребуется. Присвоим материал нашей сфере и раскопируем её на все сигнальные лампы.

Чтобы получить свечение лампы внутри сферы, посредине между плоскостью пульта и вершиной сферы помещаем точечный источник света с начальным и конечным радиусами зоны затухания 0.007 и 0.015 соответственно. Далее следует регулируя множитель источника и его оттенок добиться максимально реалистичного результата. Вот примерно как получается - в верхнем ряду крайние лампы "включены"

 +

Аналогичным способом можно делать и сигнальные огни на блоке индикации БИЛ2М или на локомотивном светофоре АЛСН с той лишь разницей, что в последних используются плоские стекла, за которыми располагаются источники освещения.

Если на текстуре сигнальная лампа изображена достаточно реалистично и четко, то можно обойтись и без моделирования стеклянного колпачка. Кстати именно таким образом мною сделаны лампы ПСС и боксования в модели кабины тепловоза 2ТЭ10Л.

2. Панель кнопочных переключателей

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

Панель представляет собой почти прямоугольную коробку в которой установлено 12 однотипных переключателя. Для её изготовления берем всё тот же "ChamferBox Object". Правда его придется малость модифицировать. У меня получились такие размеры (при создании на виде спереди): длина - 0.136 м, ширина - 0.731 м, высота - 0.074 м, закругление - 0.005 м. Сегментов ширины - 3, длины и высоты - по одному.

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

 +

Теперь перейдем на уровень редактирования полигонов и выделим средний блок полигонов примерно так:

 +

Теперь если просмотреть все параметры используемого нами модификатора "Edit Mesh" в разделе "Edit Geometry" найдется кнопка "Extrude". Смело нажимаем её и оттаскиваем выделенные полигоны вниз от коробки.

 +

Для окончания операции потребуется вернуть нижнюю группу точек на своё первоначальное место (показана проекция слева)

 +

Получилось почти то, что нужно.

 +

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

Сам переключатель - это объединенные в один объект "ChamferBox" (он белый) и "Chamfer Cylinder" (он голубой). Для того, чтобы из этих двух деталей сделать одну - нужно выделить их обе, выбрать закладку "Utilities" на вертикальной панели справа (она помечена молоточком) и последовательно нажать кнопки "Collapse", затем "Collapse selected".

 +

Для материала переключателя можно взять "GlossBrown" из стандартной библиотеки "RayTraced_01". Чтобы при анимации переключатель вращался вокруг оси своей цилиндрической части нужно перенести туда так называемый "Pivot Point", своеобразную точку привязки любого объекта. Это делается с панели "Hierarchy". В блоке "Adjust Pivot" в секции "Move/Rotate/Scale" давим на кнопку "Affect Pivot Only" и на проекции сбоку перемещаем его точно в центр цилиндрической части переключателя. Теперь при операции вращения переключатель будет вращаться как нам необходимо.

 +

Осталось из одного сделать дюжину переключателей. На панели кнопок "Axis Constraints" есть кнопка "Array". Нажимаем её, выставляем "1D Count" = 12, экспериментально подбирая значение "Incremental X" и нажимая ОК добиваемся того, чтобы переключатели были придвинуты друг к другу вплотную.

 +

3. Скоростемер, тормозные краны, АЛСН

Я не буду в мельчайших подробностях описывать моделирование остальных устройств - это достаточно обширная тема. В своих разработках я использовал модели кранов №254 и №394 любезно предоставленные мне Сергеем Ермоленко. Они изготавливались им по заводским чертежам, поэтому достаточно сложны и максимально приближены к реальным. Вы можете попробовать самостоятельно потренироваться над их изготовлением. Это же отностится и к АЛСН, КЛУБ, САУТ и прочим приборам, применяемым в кабинах наших локомотивов. Для текстурирования кранов можно применять как фотографии, так и стандартные материалы, например "GlossRed" из стандартной библиотеки 3ds max.

Абсолютно все детали в моделях я делаю одним из вышеперечисленных способов. На данном этапе нужно набраться усидчивости и отмодлить всё необходимое в кабине самостоятельно. В следующих разделах я буду предполагать, что модель уже в целом готова. Заодно с написанием урока и кабину к ВЛ11-185 сделаем. :)

4. Освещение и камеры

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

Начнем с камеры. С панели "Lights & Cameras" выбираем "Target Camera" и на виде сбоку располагаем её как показано ниже. Чтобы включить переключить обзор на эту камеру также в окне просмотра перспективы перейдем на вновь созданную камеру.

 +

По продольной оси камеру и точку её прицела сдвигаем вправо так, чтобы ось камеры проходила чуть правее середины панели приборов. Положение камеры нужно отрегулировать так, чтобы в поле её обзора попадали: справа - переднее боковое окно, слева - центральная стойка целиком и немного левое лобовое стекло, вверху - резиновое уплотнение по верхнему краю лобового стекла, внизу - панель кнопочных переключателей целиком. Для вида вперед я использую камеру с фокусным расстоянием 50 мм (угол обзора - 39.598 град). Получается достаточно реалистичная картинка без излишних угловых искажений. Конечно можно использовать камеру и с большим углом обзора, но тогда вид из кабины будет больше напоминать панорамный снимок и выглядеть неестественно. Фокусное расстояние меняется в разделе "Parameters" в режиме редактирования камеры. Достаточно просто нажать кнопку "50мм" в группе "Stock Lenses". Так как в игре используется три статических вида из кабины (вперед, направо и налево) - я рекомендую создать три отдельные камеры для каждого из них.

Освещение также немаловажно правильно настроить. Мне не понравилось первоначальное положение, поэтому я сместил оба источника немного ниже и отодвинул назад (на рисунке выше это уже заметно), изменил границы зоны затухания на 0.5 и 3.5 метра, а также сделал более плавным переход на тень. Это регулируется параметром "Size" блока настроек "Shadow Map Parameters". Чем выше его значение - тем более четкими будут границы теней. Нам пока достаточно значения 128.

Освещение, а особенно искусственное никогда не бывает абсолютно белым, поэтому необходимо сменить цвет источника света с белого на чуть желтоватое. Нажмите на белый прямоугольник справа от поля "Multiplier" и выставьте значение 255-245-220 (RGB).

5. Начинаем анимировать

Игровой движок MS TrainSimulator-a достаточно примитивен, поэтому для анимации кабин применяется кадровый метод. Все что нам потребуется - это получить серию последовательных кадров движения определенного органа управления, расположить их в одной текстуре и прописать последовательность отображения в скрипте.

Сделаем для примера "свояк". Переключаемся на виж сверху, выделяем ручку крана и разворачиваем её в первое положение (отпуск и зарядка). Для пущей точности я ориентируюсь по выступам в корпусе крана.

 +

Нажимаем F10 (настройки рендеринга), выбираем любимый режим 640х480 и делаем первый рендер нажатием F9 (алтернативный вариант Shift+Q работает немного быстрее, но его качество нужно настраивать). Полученную картинку записываем в файлик типа 254_1.BMP. Здесь и в дальнейшем мне потребуется вывод именно в формате .ВМР. Поворачиваем ручку крана до следующего выступа и снова рендерим. И так 5 раз. В результате на выходе у нас получилось 5 ВМР-шников. Можно сразу повторить подобную операцию и для реверса и для крана машиниста.

Закрываем 3dmax, открываем Photoshop. Из диалога "Open" враз окрываем все пять файлов и размещаем их разными слоями в первом. Получиться должно примерно так:

 +

Теперь необходимо определить область, в которой собственно и поворачивается ручка крана, точнее область в которой происходят изменения. Делается это путем включения/выключения отображения слоев при просмотре картинки в большом увеличении. Необходимо прямоугольным выделением ограничить эту область. Вот так:

 +

Прежде чем сделать снимок экрана я поставил указатель мышки точно в верхний левый угол выделения. Поясню зачем. На панели "Navigator/Info" Photoshop выводит информацию, которая пригодится нам при размещении анимации в кабине, а именно это положение кадра по горизонтали и вертикали и его размер. Взгляните, у нас уже в руках четыре цифры 490 190 121 73!!! Запишем их.

Теперь нужно обрезать многослойную картинку по выделению. Меню "Image" пнкт "Crop". Затем приготовить место для размещения всех слоев в одной плоскости. На заголовке окна нжимаем правую кнопку мыши и выбираем "Canvas size" в параметрах которого вводим тройную ширину и двойную высоту имеющегося фрагмента.

 +

Осталось растащить слои так, чтобы кадры располагались последовательно справа налево снизу вверх.

 +

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

 +

Его мы сохраним в формате .TGA (чтобы сохранилась прозрачность) и преобразуем в формат .АСЕ либо конвертером из командной строки, либо программой AceIt или TGATool2. Я не останавлюваюсь на подробностях конвертации, об этом вы сами найдете много советов на нашем сайте или на форуме.

Подобным способом я анимирую ВСЕ движущиеся детали кабины, включая АЛСН или КЛУБ, контроллер, реверс и оба тормозных крана. Разница только в количестве необходимых кадров.

6. Наложение фототекстур

Покажу на примере всё того же "свояка", как сделать его фотореалистичным. Берем фотку из кабины любой машины и необтекстуренную модель крана усл.№254. Если не удалось найти в интернете или сфотографировать самим - напишите, пришлю парочку.

 +

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

Выделим кран и присвоим ему этот материал. Из набора модификаторов выберем последовательно "Edit Mesh", затем "UVW map". В последнем поставим метод наложения "Planar" и укажем размеры габаритного контейнера (Gizmo) немного больше самого крана. Плоскость наложения должна быть параллельна корпусу крана.

 +

Теперь выбираем модификатор "Unwrap UVW" и давим в нем кнопку "Edit...", Откроется окно, в котором будет видна наша фотография и "каркас" модели крана с точками коорднат маппинга.

 +

Необходимо тщательно подогнать положение этих точек по фотографии:

 +

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

 +

Совсем несложным способом у нас получился вполне реалистично выглядящий тормозной кран.

С уважением, Цельмер Евгений aka Joden

Используются технологии uCoz