Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   MSTS - Подвижной состав (http://www.trainsim.ru/forum/forumdisplay.php?f=18)
-   -   Описание структуры eng-файла (http://www.trainsim.ru/forum/showthread.php?t=7521)

2ТЭ116-1103 10.06.2009 15:25

Описание структуры eng-файла
 
Ребята, расшифровать внутренности Engа не поможете?

RC_Vinchenzo 10.06.2009 23:53

Поможем конечно!
Как раз собирался писать статью на эту тему.

В качестве примера беру файл от [I]ТЭП80-0001[/I] как одного из наиболее качественно настроенных (хотя и не без ошибок) и свежих локомотивов.

Поехали:
[CODE]Wagon ( tsrloco_tep80-0001
Type ( Engine )
Comment ( A.Grebnev. 2009 (c) )
WagonShape ( "tsrloco_tep80-0001.s" )
Size ( 2.9m 4.6m 24.775m )
CentreOfGravity ( 0m 0.6m 0.12m )
Mass ( 180t )
WheelRadius ( 62cm )
InertiaTensor ( Box ( 2.9m 4.6m 24.775m )
)[/CODE]
Название локомотива в первой строке должно совпадать с именем eng-файла, иначе игра просто не опознает локомотив. Следом указан тип ([B]Type[/B]) подвижного состава. В данном случае мы имеем дело с локомотивом (другие возможные значения: Carriage, Freight, Tender, но это относится уже к wag-файлам). В строке комментария ([B]Comment[/B]) может содержаться абсолютно любая информация для тех, кто возьмется этот файл редактировать. Эту строку игра не читает. [B]WagonShape[/B] ссылается на модель локомотива в виде s-файла. Интересная особенность: если шейп-файл с заданным именем не будет найден в папке с локомотивом, игра будет искать его в папке Shapes того маршрута, на котором вы собрались прокатиться. Возможно, игра также будет искать его в общей папке Shapes, но у меня нет точных сведений насчет этого. Параметр [B]Size[/B] задает размеры локомотива, которые будут учитываться игрой. Сюда вписывают габаритную ширину, высоту и длину локомотива по осям автосцепок. [B]CentreOfGravity[/B] отвечает за расположение центра тяжести. как видно, здесь он почему-то смещен на 12 сантиметров вперед относительно центра. Видимо, сказывается влияние массы тел лок.бригады в кабине :D [B]Mass[/B] отвечает за массу локомотива, [B]WheelRadius[/B] - диаметр колес в общем случае. В данном случае этот параметр находится в секции [I]Wagon[/I], он отвечает за диаметр бегунковых колес, если таковые имеются. Очевидно, что этот параметр ни на что не влияет без строки [I]NumWheels[/I], которая здесь, впрочем, отсутствует, поэтому вернемся к ней позже. [B]InertiaTensor[/B] - важный параметр, влияющий на поведение вагонов в составе и их соударение. Рекомендуется делать устанавливать его равным параметру [I]Size[/I], либо меньше его на одну единицу, дабы исключить автосцепки как мало влияющие на поведение вагона ввиду их небольшой массы.
[CODE] Coupling (
Type ( Automatic )
Spring (
Stiffness ( 1e6N/m 5e6N/m )
Damping ( 1e6N/m 1e6N/m )
Break ( 1.1e7N 1.1e7N )
r0 ( 20cm 30cm )
)
comment( CouplingHasRigidConnection () )
Velocity ( 0.1m/s )
)

Buffers (
Spring (
Stiffness ( 1e6N/m 5e6N/m )
Damping ( 1e6N/m/s 1e6N/m/s )
r0 ( 0m 1e9 )
)
Centre ( 0.5 )
Radius ( 1 )
Angle ( 0.5deg )
)[/CODE]
Эти строки описывают поведение сцепок и буферов. Локомотив может иметь два набора параметров Coupling, в этом случае первый отвечаетза переднюю сцепку, а второй - за заднюю. Такую конфигурацию разумно применять, например, на двухсекционных электровозах, где передняя сцепка может быть автоматической, а задняя - жесткой для сцепления со второй секцией. В данном случае тепловоз имеет идентичные сцепки, так что надобность во втором наборе параметров отпадает. [B]Type[/B] оговаривает тип сцепки (автоматическая, винтовая стяжка (Chain) и жесткая (Bar), при этом Bar является неразьемной, ее нельзя расцепить во время игры!). Далее задаются характеристики пружин сцепки, работающих на растяжение ([B]Stiffness[/B]) и сжатие ([B]Damping[/B]). Параметр [B]Break[/B] задает максимально допустимое усилие на разрыв.[B]r0[/B] влияет на возможности поворота сцепки относительно центральной оси локомотива. Не рекомендуется использовать маленькие значения на маршрутах с кривыми малого радиуса. Закомментированный параметр [I]CouplingHasRigidConnection[/I] может принимать значение (1), в этом случае пружины в сцепке не учитываются, это нужно для жесткой сцепки, к примеру, между паровозом и тендером.
Группа параметров [B]Buffers[/B] идентична параметрам сцепок, применяется только при сцепке типа [I]Chain[/I], которая не имеет собственных пружин, а сжимающие усилия воспринимаются через буферы.
Важно заметить, что для специальных типов подвижного состава возможно использование особых типов сцепок. В этом случае присутствует строка [I]CouplingUniqueType ( "любое название" )[/I]. При этом возможна сцепка только тех локомотивов и вагонов, у которых прописан этот особый, уникальный вид сцепки.
[CODE] Adheasion ( 0.7 0.49 6.49 0 )
DerailRailHeight ( 4cm )
DerailRailForce ( 2.5*180t )
DerailBufferForce ( 1604kN )
NumWheels ( 16 )
Friction (
2370.1N/m/s -0.10 1.5mph 10.688N/m/s 1.910
126N/rad/s 0 0.3rad/s 3 1.6
)

BrakeEquipmentType ( "Triple_valve, Auxilary_reservoir " )
BrakeSystemType ( "Air_single_pipe" )
MaxBrakeForce( 170kN )
TripleValveRatio( 2.5 )
MaxReleaseRate( 2 )
MaxApplicationRate( 12 )
MaxAuxilaryChargingRate( 4 )
BrakeCylinderPressureForMaxBrakeBrakeForce( 57 )

IntakePoint ( -0.5m 0.5m FuelDiesel )[/CODE]
[B]Adheasion[/B] - это коэффициент сцепления, первое значение задается для скользких условий, второе - для нормальных, третье - для посыпки песком, четвертое значение не используется. [B]DerailRailHeight[/B] обозначает максимально допустимое несовпадение секций пути по высоте; при превышении этой величины произойдет сход. [B]DerailRailForce[/B] - максимально допустимая действующая центробежная сила, при превышении значения (например прислишком высокой скорости в кривой) произойдет сход. [B]DerailBufferForce[/B] - наибольшая сила, которую может воспринять локомотив при соударении с другой единицей ПС без схода. [B]NumWheels[/B] в секции [I]Wagon[/I] в данном случае не нужен, т.к. он описывает количество [I]бегунковых [B]осей[/B][/I]. [B]Friction[/B] учитывает не только силу трения, но и аэродинамическое сопротивление локомотива, рассчитывается по специальным формулам. [B]BrakeEquipmentType[/B] отвечает за типы тормозного оборудования. [B]BrakeSystemType[/B] отвечает за типы тормозной системы локомотива. Если типы тормозов вагона и локомотива не будут совпадать, поезд, фактически, останется без тормозов. [B]MaxBrakeForce[/B] - максимальное тормозное усилие. [B]TripleValveRatio[/B] задает отношение. В данном случае изменение давления в уравнительном резервуаре на 1 единицу вызовет изменение давления в тормозных цилиндрах на 2.5 единицы. [B]MaxReleaseRate[/B] - наибольшая скорость сброса давление из тормозных цилиндров, фунтов на квадратный дюйм в секунду. [B]MaxApplicationRate[/B] - скорость наполнения тормозных цилиндров. [B]MaxAuxilaryChargingRate[/B] - наибольшая скорость зарядки магистрали. [B]BrakeCylinderPressureForMaxBrakeBrakeForce[/B] - давление в тормозных цилиндрах при наибольшем тормозном усилии. [B]IntakePoint[/B] - координаты примерного расположения заправочной горловины (от и до, относительно центра модели) с указанием типа топлива.

[B]Продолжение следует[/B]

[B]2 модератор:[/B]
Нельзя ли переименовать тему в "Подробное описание структуры eng-файла"? :)
[COLOR="Orange"]Согласен. И заодно перенес в раздел "Подвижной состав"[/COLOR]

2ТЭ116-1103 15.06.2009 20:21

Спасибо, жду продолжения...

E69 15.06.2009 21:18

Хорошее дело начали. Если получится более-менее полная статья, надо будет её в FAQ закопировать.

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

Что в первой строке енга всегда написана одинаковая абракадабра [code]SIMISA@@@@@@@@@@JINX0D0t______[/code]

Что структура всего, что написано в файле далее, очевидно, состоит из набора выражиений типа
[code]ИМЯ_ПАРАМЕТРА (
ЗНАЧЕНИЯ_ПАРАМЕТРА
)[/code]
и допускает множество вложенных уровней. Поэтому надо строго следить за парностью скобок.

Что самый верхний уровень всегда состоит из 2 блоков, включающих следующее:
[code]Wagon ( Имя_Локомотива
...
Type (Engine)
...
)

Engine ( Имя_Локомотива
...
Wagon ( Имя_Локомотива )
...
)[/code], причем имя локомотива в енге во избежание глюков везде должно совпадать с именем файла.

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

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

RC_Vinchenzo 16.06.2009 06:05

Большое спасибо за важное добавление. Я вот закончу болеть на днях, и обязательно допишу статью.
Вот какой интересный факт раскопал: в одном буржуйском мануале говорится что параметры, описанные в [B]Wagon[/B], такие, например, как [I]NumWheels[/I] и [I]WheelRadius[/I] отвечают за неведущие (бегунковые) оси локомотива, а сам параметр [I]NumWheels[/I] обозначает не количество колес, а количество осей. Соответственно, те же самые параметры в секции [B]Engine[/B] описывают ведущие оси.
Насколько я понимаю, прежде при разработке энгов команда Трейнсима это не учитывала и дублировала параметры в обеих частях.

Im-Ho-Tep 16.06.2009 07:04

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

Паштет 16.06.2009 08:53

[QUOTE=RC_Vinchenzo;93609][CODE] Coupling (
Type ( Automatic )
Spring (
Stiffness ( 1e6N/m 5e6N/m )
Damping ( 1e6N/m 1e6N/m )
Break ( 1.1e7N 1.1e7N )
r0 ( 20cm 30cm )
)
comment( CouplingHasRigidConnection () )
Velocity ( 0.1m/s )
)

Buffers (
Spring (
Stiffness ( 1e6N/m 5e6N/m )
Damping ( 1e6N/m/s 1e6N/m/s )
r0 ( 0m 1e9 )
)
Centre ( 0.5 )
Radius ( 1 )
Angle ( 0.5deg )
)[/CODE]
Эти строки описывают поведение сцепок и буферов. Локомотив может иметь два набора параметров Coupling, в этом случае первый отвечаетза переднюю сцепку, а второй - за заднюю. [/QUOTE]А разве не наоборот: первый параметр Coupling отвечает за заднюю сцепку, а второй соответсвенно за переднюю?

RailMax 16.06.2009 09:09

[B]Паштет[/B] - верно: сначала идёт задняя, потом - передняя

ВIGMAN 16.06.2009 09:12

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

если вы хотите по отдельности например так

[CODE] Coupling (
Type ( Bar )
Spring (
Stiffness ( 2e6N/m 2e6N/m )
Damping ( 2e6N/m/s 2e6N/m/s )
Break ( 1.5e7N 1.5e7N )
r0 ( 10cm 10cm )
)
Velocity ( 0.01m/s )
)
Coupling (
Type ( Automatic )
Spring (
Stiffness ( 1e6N/m 1.5e6N/m )
Damping ( 1e6N/m/s 1e6N/m/s )
Break ( 1.5e7N 1.5e7N )
r0 ( 10cm 10cm )
)
Velocity ( 0.01m/s )
)
Buffers (
Spring (
Stiffness ( 1e7N/m 0 )
Damping ( 1e6N/m/s 0 )
r0 ( 0m 1e9 )
)
Centre ( 0.5 )
Radius ( 1 )
Angle ( 0.5deg )
)[/CODE]

то первый блок Type ( Bar ) отвечает за заднею сцепка
второй блок Type ( Automatic ) отвечает за переднею

RC_Vinchenzo 16.06.2009 10:27

Опечатка, чоуш :) спасибо за исправления
Итоговый вариант соберем и в FAQ прицепим

boroda6304 16.06.2009 21:16

Парни,молодцы,очень нужное и полезное дело делаете!

jerry 16.06.2009 21:30

извините может не в эту ветку зашел

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

зараннее спасибо!

Zabor 16.06.2009 21:45

Еще 5 копеек, уже ближе к концу Eng-a
 
Параметр [B]Name[/B] отвечает за отображаемое имя в редакторе составов, может содержать пробелы, в этом случае указанное в параметре имя заключается в кавычки, если пробелов нет, кавычки не обязательны.

Также может применяться у вагонов для отображения нужного имени вагона вместо имени файла в редакторе, например Name ( Boxcar-3580f_psim ).

Позже добавлю про Description и EngineOperatingProcedures

RC_Vinchenzo 03.07.2009 19:27

Продолжим :)
Далее следует раздел, отвечающий за источники света, находящиеся на локомотиве.
[CODE]Lights ( 38
Light (
comment( Sphere of light medium )
Type ( 1 )
Conditions (
Headlight ( 2 )
Unit ( 2 )
)
Cycle ( 0 )
FadeIn ( 1.2 )
FadeOut ( 1.0 )
States ( 1
State (
Duration ( 0.0 )
LightColour ( 50ffffff )
Position ( 0.0 1.5 1.5 )
Transition ( 0 )
Radius ( 80 )
Angle ( 10 )
)
)
)
)[/CODE]
38 указывает на общую сумму всех источников света, это количество подгрупп [I]Light[/I] в данном разделе. Как правило, каждый "фонарь" снабжен комментарием, в примере это за это отвечает строка [I]comment( Sphere of light medium )[/I], это говорит пользователю, что следующие настройки относятся к пучку света в режиме "тусклый свет". [I]Type (1)[/I] означает пучок света, тот же параметр, но с 0 вместо 1 означал бы фонарь. Группа параметров [I]Conditions[/I] отвечает за условия включения/выключения фонарей. [I]Headlight ( 2 )[/I] означает что световой пучок будет задействован в положении 2 переключателя света (0 - независимо от положения переключателя; 1 - выключен; 2 - тусклый; 3 - яркий). [I]Unit (2)[/I] означает что световой пучок будет задействован если данная единица ПС должна находиться первой в составе. Другие значения: 0 - независимо от положения в составе; 1 - не в голове и не в хвосте состава; 2 - в голове состава; 3 - в хвосте состава. [I]Cycle ( 0 )[/I] означает что данный световой пучок работает постоянно. [I]FadeIn ( 1.2 )[/I] и [I]FadeOut ( 1.0 )[/I] - это длительность включения и выключения, насколько быстро нагревается лампа. Далее описаны [I]States[/I] - состояния пучка света. Посколько при включении он работает постоянно, то и состояние у нас одно. [I]Duration ( 0.0 )[/I] говорит о том, что свет идет постоянно. В случае циклический работы этот параметр означал бы продолжительность цикла. [I]LightColour[/I] обозначает цвет светового пучка, [I]Position[/I] - позицию его источника, [I]Radius[/I] - "дальнобойность" света, [I]Angle[/I] - ширина угла светового пучка.
[CODE]Sound ( "../../tsrLoco_TEP80-Alias/Sound/tsrLoco_tep80-eng.sms" )
)[/CODE]
Следует ссылка на "наружный" звуковой файл локомотива. Примечательно, что МСТС предполагает наличие в папке с каждым локомотивом папок [I]Cabview[/I] и [I]Sound[/I], но поскольку разработчики используют алиас-файлы для упрощения работы и уменьшения занимаемого дискового пространства, приходится добавлять к пути ../../ чтобы выйти на уровень папки [I]Trainset[/I], и только затем прописать путь к sms-файлу, уже относительно [I]Trainset[/I].
Далее следует закрывающаяся скобка, на этом заканчивается секция [I]Wagon[/I].

Вазюк 03.07.2009 21:18

А если посмотреть на енг файл паровоза? Там же всё сложнее! Например как прописать, что это танк-паровоз?


Текущее время: 19:40. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim