JBeam/ru

JBeam/ru

From BeamNG
Language: English  • русский

Общее представление

JBeam-это формат файла, который определяет физический скелет в BeamNG engine. Это называется JBeam, поскольку это основано на JSON (с некоторыми исключениями) для определения узлов/балочных конструкций.

Почти все чувствительно к регистру, и это совсем не дружелюбно к синтаксическим ошибкам, поэтому будьте осторожны! Создание и редактирование файлов jbeam с помощью программы, например Notepad++.

Отличие от JSON

Мы доработали JSON парсер немного облегчит жизнь авторам автомобиля:

  • Comments: C-style, multi-line, and single-line comments are supported: //... and /* ... */
  • Commas: All commas are optional, but it is advised to only omit the commas at the end of lines.

Общая структура

{
"vehicle": {
	"refNodes":[
		["ref:", "back:", "left:", "up:"]
		["f3r", "f5r", "f4l", "f8r"]
	],
	"cameraExternal":{
		"distance":6.7,
		"distanceMin":9,
		"offset":{"x":0.43, "y":0.11, "z":0.55},
		"fov":77,
	},
}
}

Общая концепция

Существует два типа данных .Jbeam файл-списки и словари. Списки просто содержат значения, разделенные запятыми в скобках, в то время как словари содержат ключевые значения в скобках. Можно иметь списки в списках, списки в словарях или любую комбинацию из них. Словари размещаются в любом месте раздела для задания определенных атрибутов, таких как beamSpring или nodeWeight.

Важно сбросить некоторые атрибуты, когда они больше не нужны, например "breakGroup"или " group". Это можно сделать, установив значение в пустую строку:

//reset breakGroup since we no longer need it
{"breakGroup":""}

Пример Использования

//это список
["value", 1, 123.457, "foobar"],
//это словарь
{"key":"value", "key2":1234.5234, "key3":"blub"},

Вы можете отформатировать это, как вам нравится, я.e.:

[
     "value",
     1,
     123.459,
     "foobar"
],
{
     "key":"value",
     "key2":1234.5234,
     "key3":"blub"
},
// можно также опустить запятую в конце строк:
{
     "key": "value"
     "key2": 1234.5634
     "key3": "blub"
}

Структура Макроса

Разделы в файле фактически являются таблицами, которые разворачиваются при загрузке.

	 "SectionName": [
		 // первая строка: всегда список столбцов
		 ["id", "posX", "posY", "posZ"],
		 // впоследствии: значения строк, если список, если dict, дополнительные параметры
		 {"group":"body"},
		 ["f1rr", -0.90, -0.93, 0.23],
		 ["f1r", -0.33, -0.95, 0.23],
		 ["f1l", 0.33, -0.95, 0.23],
		 ["f1ll", 0.90, -0.93, 0.23],		 
	],

Table Headers

The table headers can have a special linking associated to them depending on the column name:

  • Columns with a ":" in it will link to other sections.
    • "nodeID:" will link the values in this column to the associated node. Notice that, for simplicity reasons, you can leave the "nodes". I.e. "nodeID:nodes" is the same as "nodeID:"
    • "beamID:beams" will link the values in this column to the associated beam.

Глобальные Модификаторы

Есть несколько переменных, которые могут быть установлены в любом месте в главном словаре "транспортное средство", которые влияют на .JBeam во всем мире. Это пример некоторых из них. Наиболее полезными из них являются различные масштабы. Если транспортное средство немного слишком жесткое, тяжелое или недостаточно сминается, необходимо изменить только одно значение на глобальное масштабирование определенных значений и исправить такие проблемы.

{
"vehicle": {
	// [...]
	 "selfCollisionThickness":0.02,
	 "remoteCollisionThickness":0.06,
	 "scalenodeWeight":0.95,
	 "scalebeamSpring":0.75,
	 "scalebeamDamp":0.73,
	 "scalebeamDeform":0.42,
	 "scalebeamStrength":0.65,
	 "zeroOutSelfCollision":false,
	 // [...]
}
}

Разделы

Каждый. Файл JBeam состоит из многих разделов, которые служат разным целям. Некоторые разделы являются обязательными, другие-необязательными.