Видео от : www.youtube.com
Итак , поскольку я сам загружен работой (для тех , кто не знает еще , - я делаю трамвай ктм-5 (71-605) ; настройка звуков , скрипт по ТЭ10 (он хоть и выпущен , но процессы над ним не закончены ) ; скорее всего будет то же самое по ЭР1 (новая модель от olegich (странно , что он до сих пор не зеленый на этом сайте ) ), то если найдется желающий доработать КС АС4 (я так понял переменка много кому нужна здесь ) , то ниже все по полочкам расписано . Возможны ошибки в тексте , во временем буду исправлять .
1. Наличие Trainz 2012 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Первое , что нужно сделать - это иметь у себя на компе установленный трс 2012 (только английская версия )билд 61388 с контент менеджером V 3.7
Либо покупаете эту игру , либо ищите на торентах . В свободном виде ТРС с таким билдом не существует .Поэтому берете трс 2012 английской версии предыдущего билда (коробочная версия ) с контент менеджером 3.6 .
Ставите на нее патч от их же разработчиков (ауран) до версии 61388 . Патч ставится долго ,несколько часов . Процесс прерывать нельзя .
Подведем итог : у вас стоит английский трс 2012 версия 61388 , он запускается сам , и все в нем работает . Конташка в трс сейчас делается именно под этот билд .Если так , то переходим на пункт ниже.
2. Установка КС в Trainz 2012 и отбор объектов--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Качаете конташку с сайта Треинз -Ап , качаете к примеру по переменке все что есть . Устанавливаете это все в свой трс 2012 (процесс длительный и после установки КС ввиду большого количества объектов КМ какое то время будет переваривать все это и нужно подождать пару часиков . В противном случае запустится еще более длительное по времени восстановление базы данных )
Запускаете игру , создаете свой маршрут , слева вверху есть типа фильтр - выбираете режим по дате установки - то число , когда эта вся кс ставилась . Справа в разделе объектов будет у вас вся эта КС .
Берете и ставите на карту выбранные объекты КС . Очень удобно похожие одного типа ставить в один ряд , чтобы по группам все расположить. Например одного вида опоры с консолями , но с разным расположением фиксаторов , в том числе различия по наклону изоляторов и др отличия .
Сплайновые объекты для РВ не подходят . Конвертить будем только опорные точки для контактной сеты . Не опорная оттяжка кс в сторону (иногда на стрелках или крутых поворотах , чтобы меньше ставить столбов) не годится для РВ поскольку верхний тросс будет не правильно висеть .
Пример оттяжки , только она не натянута чего то .
Ниже рисунок как есть на самом деле и как будет в игре если попробовать сделать . Сама оттяжка вместо того чтобы висеть на тросе , будет подпирать его , словно это и не отяжка а опора контактной сети с консолью . В рв для оттяжки не создано инструмента . (Видимо у нагличан такого и нет в природе . ДБь)
По этой же причине нет и всяких изолирующих вставок , висящих на проводе .
Советую не отбирать все подряд из КС , очень много похожих объектов . Например опора для кривой с черным изолятором , может попасться куча таких опор , но с другими изоляторами (чуть длиннее , другой цвет и тд). Или чуть на пару см по другому наклонена одна проволочка . Поэтому выберете часто встречающиеся . Нечего плодить 100500 объектов в рв как в трс .
Подведем итог : У вас стоят на карте желаемые объекты для кс в рв . Карта сохранена и переходим к следующему пункту.
3. Формирование списка с названиями нужных объектов-------------------------------------------------------------------------------------------------------------------------------------------------------------
Теперь нужно создать в текстовый файл список объектов по партиям . Например партия опор такого то вида . В нее удобно включить одинаковые опоры с консолями как для прямой так и для кривой .
Создаем в блокноте текстовый файл .Открываем его .Запускаем трс в оконном режиме . Заходим на нашу карту и используя инструмент "гаечный ключ" тыкаем в первый объект в выбранном ряду . Список объектов тут же устанавливается на выбранном объекте . Копируем его название в текстовый файл . Потом снова гаечный ключ и тд по всем объектам . Формируем списки очередей на конвертацию .
Итак , списки готовы .идем к следующему пункту . В целом можно списки создавать одновременно с установкой нужных объектов на карту . Объекты , уже имеющиеся в РВ в список и на карту добавлять не следует .
4. Наличие программы для перегонки---------------------------------------------------------------------------------------------------------------------------------------------------
В дальнейшем нам потребуется программа 3D Object Converter 4.40 (я такой пользуюсь) . Можете и другую версию . Но она должна быть рабочая , то есть покупаете ее или ищите ломанную .Открывать будем файлы трс "IM" формата.
5. Подготовка рабочего места-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Открываете контент менеджер трс через лаунчер или в папке ,bin игры . Копируете из текстового файла название первого объекта в поле поиска и находите его. Открываете на редактирования ПКМ - edit in explorer .
Откроется папка скорее всего с конфигом объекта , но без меши и текстур . Открываем этот конфиг и смотрим строчку mesh-table
За ней идет цепочка ссылок на мэши объекта и в каком куиде их искать . Напротив слова mesh будет имя объекта в библиотеке объектов .
Напротив mesh-asset будет куид этой самой библиотеки .
Смотрим конфиг до конца на предмет всех мешей и библиотек . В данный момент опоры и консоли лежат в разных библиотеках . Поэтому все заявленные библиотеки через поиск по куиду открываем так же на редактирование .
Эти папки с мешами и текстурами копируем куда нибудь , чтобы не испортить игру трс .
Теперь создаем в желаемом месте папку , в которой будут все наши дальнейшие действия . Пусть это будет папка KS AC4 на диске D
В эту папку копируем папки библиотек . Создаем папку для группы (партии ) объектов , например папка "кс с серыми столбами " , или " объекты для жесткой поперечины типа А " . Создаем первую папку для выбранного объекта из списка , называем ее так же , но все пробелы заменить нижним подчеркиванием . Копируем файлы мешей из библиотек , относящиеся к нашему первому объекту в эту папку , за одно и текстуры .
6. Перегонка из IM в OBJ---------------------------------------------------------------------------------------------------------------------------------------------------------------
Запускаем 3D Object Converter , перетаскиваем в него первый лод меши к примеру консоли .
сверяемся по настройкам .
И сохраняем его как wavefront obj с таким же названием в этой же папке . Повторяем операцию со всеми лодами объекта консоли и столба .
Итак , у вас есть папка с названием первого объекта для конвертации и обж файлы в этой папке . Переходим к следующему этаму
7. Операции в 3д максе----------------------------------------------------------------------------------------------------------------------------------------------------------------
Можете приступать сразу к этому пункту , если вы гордый человек и сами смоделили КС с нуля (если модоль стоит в максе правильно и лоды уже сделаны , то вам нужно только создать точки )
3д макс должен быть в работоспособном по отношению к РВ состоянии, вы должны уметь в нем работать и иметь опыт конвертации в игру "уровень домик"
Открываем 3д макс . Жмем файл - импорт - выбираем тип файла - обж , идем в ту папку где они у нас лежат и по настройкам в случае с трс особой разницы нет , так как все равно будет разбито на треугольники . Импортируем файл в сцену . Если объект повален на 90 градусов , то удаляем объект и повторяем импорт , но делаем наоборот (снимаем или ставим галочку ,если не было) в поле Flip ZY axis
Если на объекте всего одна текстура , наносим ее из текстурной ячейки на объект . Модель в максе должна выглядеть нормально .
Если это консоль от кс , даем название 1_0100_konsol , где 1 - номер лода , 0100 - всегда 4-значное число , означающее дистанцию видимости .
Для второго лода будет 1_0200_konsol и тд . Важно , что лоды должны создаваться в максе (импортироваться) в порядке возрастания и имя в нашем случае konsol - всегда должно совпадать на этой пачке лодов.
если текстур несколько , то наносим каждую текстуру на свой объект (обычно объекты имеющие разные текстуры , в максе раздельны ) и аттачим все в кучу
---------------------------------------------------
Итак первый лод . Название создано . Объект в 3д максе должен стоять (обычно он так и стоит) так , словно по оси Y проходит наш жд путь .
Берем наш объект и переводим в эдит поли . Выделяем все вершины и свариваем из через расстояние 0,001 . то есть 1 мм.
Затем делаем сглаживание (используем автосглаживание) всему объекту . Иногда для разных частей объекта требуется подборка угла автосглаживания индивидуальная . Для изоляторов один угол , для остального другой .
В общем создаете товарный вид для первого лода . Затем в режиме объекта опускаете его вниз на 25 см (0,25 м) .Дело в том что в трс уровень головки рельса находится на 25 см выше земли , а кс привязана к земле и поднята на это же расстояние вверх , чтобы совпадало с рогами поезда. Итак объект опущен. Но опущен и пивот объекта ниже уровня 0 в 3д максе. Ставим пивот на место в 0 ,0, 0 .
Если это столб , то делаем то же самое .
---------------------------------------------------
Создаем точки для подключения провода.
Итак , наша первая точка - нижняя точка , где провод должен цепляться к фиксатору .Выделяем в эдит поли этот прямоугольник (к которому по задумке крепится провод) и от аттачиваем .Даем ему название 1_0100_fix1
В случае , если у нас постоянка и внизу два провода ,то объект для второго провода называем 1_0100_fix2
Пивоты объектов ставим в центре объекта . Но высоту придется подогнать вручную на 6,506m
Это требуется для оого , чтобы потом используемый лофтовый провод в игре точно совпадал по нижней кромке с высотой 6.5 м , как было выбрано как стандарт .
Для точки присоединения троса делаем аналогично с подходящим для этого объектом в верхней части . Даем название 1_0100_tross1 и ограничимся пивотом в центре объекта .
Для сложных консолей (сопряжения ) все то же самое . например 1_0100_fix1 , 1_0100_fix2 - первый фиксатор и к нему трос - 1_0100_tross1 , и 1_0100_fix3 , 1_0100_fix4 и к нему 1_0100_tross2 . Важно запомнить эти названия (без номера лода и дальности , то есть fix1- fix3 и tross1 и тд)
Если это точка для подключения троса как растяжка между опорами , или лэп - то аналогично создаются точки для подключения этих проводов .пивоты являются ориентирами потом в игре для направления лофтового провода.
Названия для точек я использовал просто t1 t2 и тд
Для ЛЭП - l1 , l2 ,l3 и тд по количеству проводов (имеется ввиду в максе 1_0100_l1)
все эти названия надо запомнить
---------------------------------------------------------
Для столбов ничего создавать не надо .... Их только обработать (нанести текстуру , сварить вершины , сделать сглаживание , опустить , поставить пивот в 0 )
Опыт подсказывает , что столбы лучше делать в отдельной сцене , поскольку один и тот же столб незачем каждый раз обрабатывать
---------------------------------------------------------
Скрываем полученные объекты (первый лод консоли и точки для подключения)
Импортируем второй лод (в конташке трс всего четыре) и делаем с ним те же операции , кроме создания точек (наносим текстуру , свариваем вершины , делаем сглаживание , опускаем , ставим пивот на место)
скрываем 2 лод и повторяем операции с 3 и 4 лодом
Рекомендуемая дальность для консоли
1 лод - 100 м
2 лод -150 м (он очень детальный и надо избавлятся от веса пораньше)
3 лод - 200 м
4 лод 400 м (дополнительно удалить все лишние мелкие детали)
Ниже наглядный вид слева направо лоды 1-4
Для столба
1 лод 100 м
2 лод 200 м (удалить верхушку (торец на столбе)
3 лод 400 м (удалить верхушку (торец на столбе)
4 лод 600 м (удалить верхушку (торец на столбе)
-------------------------------------------------------------------
Далее если вы работали с консолью , то восстанавливаете отображение скрытых объектов
и у вас должны быть 4 лода друг в друге и точки для подключения проводов имеющие 1 лод
итого для простой консоли переменки 6 объектов.
Выделяете все эти объекты в сцене , переходите на вкладку с пивотами , и внизу есть кнопка Трансформ , ее жмете , потом переходите на вкладку с молотком . Там есть кнопка коллапс , жмете ее, потом Ресет Х форм , потом коллапс . после этого объект можно экспортировать в игровой файл igs .Для удобства название такое же как и сам объект (то есть как имя папки с нижними подчеркиваниями вместо пробелов) , столб можно назвать по своему (логичное имя) при экспорте .А в максе просто stolb
На этом работа в 3д максе заканчивается. Что касается текстур , то их можно поместить в папку текстурес в папке объекта и оттуда назначать в макс и экспортировать рядом .
8. Конвертация в РВ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Создаем структуру папок в Source (тот кто будет продолжать мое дело - придется работать в моей папке , чтобы по порядку было все, если он будет делать то что я не начинал - может и в своей)
первая папка в Source это папка разработчика . То есть любое логичное имя на английском языке .
вторая папка находится внутри первой и означает обычно типа проэкта . Если вы дохрена чего уже сделали в игру , то эти две папки у вас созданы .
По всем правилам следующая папка для кс должна называться scenery
а следующая в ней - уже как отношение к кс , например ac4_trainz как у меня .
Для продолжения моего дела нужно меня об этом известить . Папки для этого следующие
Source\radiomaster\objekt\scenery\ac4_trainz\konsol для консолей
Source\radiomaster\objekt\scenery\ac4_trainz\stolb для столбов
Source\radiomaster\objekt\scenery\ac4_trainz\anch для оттяжек с грузом
Перспективная папка для объектов для жесткой поперечины типа А для переменки
Source\radiomaster\objekt\scenery\ac4_trainz\ac4_rigel_a
Для теста и тренировки можете делать где хотите.
Итак , у вас имеется папка , где лежат ваш игс файл и папка текстурес с текстурами либо текстуры рядом с файлом (так удобнее в случае с кс -несколько текстур и куча объектов , в максе при экспорте соответствующая опция )
----------------------------
Запускаем блюпринт эдитор
открываем папку , где лежит консоль геометрия и столб геометрия (для столбов можно отдельную папку вообще)
1 . для столба ПКМ по геометрии столба - создать сценери блюпринт
создастся сценери блюпринт с таким же именем как и геометрия столба . Ставим категорию ExcludeFromBrowserList и отключаем блоби тени
Конвертим в игру
2. Для консоли ПКМ по папке где она лежит - НЭВ ИТЭМ - блюпринт -выбираемв списке GantryBlueprint , в поле для названия пишем имя как у геометрии консоли , жмем ОК.
Название заполняем по английски как в трс называется так же .Ставим категорию ExcludeFromBrowserList и отключаем блоби тени,
прописываем геометрию в соответствующее поле .
3 . Открываем раздел GantryComponent
Создаем нужное количество НОД дескрипторов . Например для переменки простая консоль их всего два (по количеству точек крепления)
Первой создается точка крепления для троса , в ноде нейм указывается имя этой точки из 3д макса (вот почему надо было запомнить)
Второй создается точка для фиксатора нижнего провода
Названия берем из 3д макса , а типы подвески как на рисунке
Если как в примере постоянка - то чередуются точки примерно так:
трос -фиксатор1
трос -фиксатор2
(трос общий для двух проводов, только так можно в игре сделать типа постоянку , просто троса от двух пролетов находятся друг в друге .Английские пидо_ы видимо и такого не видели )
Лофтовый провод прописывается в консолях для кривой , чтобы при установке одной и той же консоли сразу натягивались провода . Для всех остальных случаев не требуется , так как чередуются объекты и вообще ручная установка
Для сопряжения консоли ( например переменка )
трос1-фиксатор1
трос2-фиксатор2
Для сопряжения постоянка (если изолированное с раздельными изоляторами для тросса)
трос1-фикс1
трос1-фикс2
трос2-фикс3
трос2-фикс4
И т д
---------------------------------
Для одиночных прямонатянутых проводов создается только ноды по типу как фикс , только нет тросовых нодов
Для провисающих проводов ЛЭП тип подвески выбирается Return Wire Through Point
-----------------------------------
Открываем ContainerComponent / Children
Прописываем столб как дочерний объект , матрицу не трогаем , название любое по английски .
----------------------------------------------------------------------------------------------------------------------------------------------------
Создаем конфиг для списка объектов одного назначания
ПКМ по папке с консолью - нев итем - блюпринт - Track GantrySet Blueprint 2 - вписываем тут же название этого хмл (любое логичное имя , например ac4_rigel_A_straight_object , то есть объекты ригеля А для прямой)
Даем названия на английском и русском полях (желательно приставку RU использовать)
В блоке TrackGantries (разворачиваем) создаем пока что одну ячейку Track Gantry Blueprint 2 и вписываем туда нашу консоль (провайдер/продукт, путь к хмл консоли .Или просто ПКМ по конфигу консоли (тот самый GantryBlueprint)- copy , а на площадке Blueprint id - Paste , или клавой ктрл в)
Должен стат активным значек папки .
TrackSpan - количество путей , для которых рассчитан вписываемый объект ( 1 нам подходит)
TrackSpanRange расстояние захвата (5 м нам тоже подходит)
Остальные параметры нас не волнуют .
Экспортируем в игру нажатием F7 . Если все верно , то конвертнется и сам "конфиг со списком объектов" и сам объект .
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Второй, последующие объекты создаются аналогично , и дописываются в общий Track GantrySet Blueprint 2 с именем файла ac4_rigel_A_straight_object . По мере добавления в список в игре при нажатии в редакторе будет справа пополнение объектов .
Похожие объекты могут иметь один и тот же столб в качестве дочернего объекта . При необходимости создается копия консольного конфига переименовывается , конвертится без столба и прописывается в другой уже конфиг списка. и там могут быть только консоли для прилепления к другим столбам , опорам жесткой поперечины , или на стены зданий .Классический пример - опора на 2 консоли (т-образная) Но тут хрен угадаешь по расстоянию между путями .