Difference between revisions of "CFG File Documentation/ru"

From Kerbal Space Program Wiki
Jump to: navigation, search
m (Параметры редактора)
m (Параметры редактора)
Line 486: Line 486:
  
 
;category
 
;category
:There are seven categories:
+
:Всего семь категорий:
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 525: Line 525:
 
<br />
 
<br />
 
;description
 
;description
:Здесь опишите свою деталь. (Do not use linebreaks. KSP breaks lines automatically in the part's tooltip. A linebreak will cause your description to appear truncated)
+
:Здесь опишите свою деталь. (Не используйте разрывы строк. KSP в подсказке детали разрывает строки автоматически. Разрыв строки вызовет отображение Вашего описания в усеченном виде)
  
 
И это все. Обновленный фиктивный cfg-файл теперь выглядит следующим образом:
 
И это все. Обновленный фиктивный cfg-файл теперь выглядит следующим образом:
Line 562: Line 562:
 
category = Propulsion
 
category = Propulsion
 
subcategory = 0
 
subcategory = 0
title = Mark V Rocket Engine
+
title = Ракетный двигатель Mark V
manufacturer = Awesomely Terrible Spaceship Engines Inc.
+
manufacturer = Утрашающе Ужасные Ракетные Двигатели Инкорпорейтед
description = This part will now get you to space with 60% less limb loss than the mark IV engine.
+
description = Эта деталь теперь выведет Вас в космос с потерями меньшими на 60%, чем двигатель Mark IV.
 
</pre>
 
</pre>
  

Revision as of 19:30, 26 October 2013

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



:В этом руководстве будет разобран состав файла конфигурации отдельной детали посредством создания файла фиктивной детали, которая будет вести себя так же, как и настоящая, только для ее полного функционирования не будет хватать моделей, звуков и текстур.

Руководство по созданию деталей. Основы.


Убедитесь, что модель сама по себе не сломает игру при загрузке. Для этого:

  • Для файла детали должен существовать файл «.dae»;
  • Все -- даже пересечения сетка -- сетка - существенны;
  • Детали должны быть проименнованы корректно; например, пересечение сетки всегда должно называться «node_collider».
    == Создание файла детали. ==


Создайте пустой файл в «Блокноте», который станет файлом «.cfg», в каталоге Вашего дополнения -- обычно «../KerbalSpaceProgramDirectory/Parts/ВашеДополнение».

Этот пустой файл станет файлом «.cfg».


=== Последовательность данных, содержащихся в конфигурационном файле. ===


// Title (заголовок)

// Name of your part (название Вашей детали)

//



// --- general parameters --- (основные параметры)



// --- asset parameters --- (устанавливаемые параметры 3D-модели)



// --- node definitions --- (описание узловой точка)



// --- FX definitions --- (описание FX)



// --- Sound FX definition --- (описание звуковых эффектов)



// --- editor parameters --- (параметры редактора)



// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision (правила присоединения)



// --- standard part parameters --- (стандартные параметры детали)



// --- specific part parameters --- (специфические параметры детали)


:Двойной прямой слэш перед каждым названием указывает, что эта строка была закомментирована; программа игнорирует такие строки.

Задание названия для Вашей детали.


Большинство файлов деталей содержит пару строк, наподобие тех, что указаны ниже:

// Kerbal Space Program – Конфигурационный файл

// Мой супер потрясающий двигатель, который может делать каджилион миль в час, lol



Эти строки полезны, когда другие хотят учиться на ваших файлах деталей.
Первая строка показывает, что данный файл является файлом детали для KSP, вторая – содержит ее название.


// Kerbal Space Program - файл CFG детали

// Ракетный двигатель «Mark V»

Продолжаем!



Основные параметры.


// --- general parameters ---
В этом разделе указываются название и описание нескольких свойств всех деталей. Ниже приведен список того, что подходит под основные параметры:
name = solidBooster
module = SolidRocket
author = Il Carnefice


name
Это значение может содержать все, что является уникальным, одним словом,и без подчеркивания. Это нельзя закомментировать, потому что KSP будет внутри ссылаться на деталь посредством этого параметра (пользователь не будет видеть это имя).


module
Что происходит после того, как модуль перемещает каждую деталь в категорию: например, твердотопливный ракетный ускоритель отличается от жидкостного ракетного двигателя. См. Valid Part Modules для получения значений, которые Вы сможете здесь использовать.
author
Имя автора


Ниже приведен пример:

Ниже приведен пример:

<pre>

// Kerbal Space Program - файл CFG детали

// Ракетный двигатель «Mark V»
// --- General Parameters ---
name = LiquidThrusterV
module = LiquidEngine
author = YourName


Детали

Название детали Описание
SolidRocket Напоминает твердотопливный ускоритель - постоянно горящая ракета, которая не имеет управления тягой и не может быть деактивирована, после того как была зажжена.
LiquidEngine Напоминает систему орбитального маневрирования – ракетный двигатель с управляемой тягой.
FuelTank Содержат топливо.
CommandPod Содержит экипаж и системы управления.
SASModule Удерживает курс.
SASModule2 ???
Strut Соединяет модули ракеты. Не имеет специальных способностей.
Decoupler Соединяет модули ракеты и может отбрасывать себя и присоединенные модули.
RadialDecoupler Соединяет модули ракеты и может отбрасывать себя как и «Decoupler», но радиально.
Parachutes Выпускает парашют.
ControlSurface Подвижная крылоподобная поверхность. Может выступать в роли руля, элерона, руля высоты, канарда (небольшое крыло, расположенное впереди основного крыла) или другой аэродинамической поверхности управления - функция зависит от размещения на
WarpEngine Варп-двигатель. Не функционирует с 0.15.2.
Winglet Неподвижная аэродинамическая поверхность, создающая подъемную силу.
Stabilizer Аналог ControlSurface (рекомендуется не использовать)
StrutConnector  ???
RCSFuelTank Бак для однокомпонентного топлива.
RCSModule Двигатель на однокомпонентном топливе.
AtmosphericEngine Атмосферный двигатель с параметрами турбонаддува воздуха.
AdvSASModule Модуль наподобии SAS, который вносит возможность пользовательского управления системой радиолокационного управления(RCS), крутящим моментом аппарата(Pod) и качанием двигателей и рулей.
DecouplerGUI Обычный разделитель, который может отделяться по клику правой клавишей мыши на графическом интерфейсе пользователя(GUI).
DockingPort Незаконченный стыковочный узел?
FuelLine Трубы(шланги) для передачи топлива.
FuelTankGUI Цистерна с топливом со способностью прекратить подачу топлива по клику правой клавишей мыши на графическом интерфейсе пользователя(GUI).
LandingLeg Движущаяся посадочная опора, использующая параметры «.cfg» для движения.
HLandingLeg Движущаяся посадочная опора, использующая анимацию для движения.
HParachutes Анимированный модуль парашюта?
LandingGear Колесное, анимированное посадочное шасси для космических аппаратов.
SatELight Осветительный модуль(прожектор).
LiquidFuelEngine Жидкотопливный двигатель, который работает с созданием импульсов и реактивной струи, с использованием топливных узлов.

Модули деталей

Пожалуйста прочтите: "Обновление 0.15 - PartModule, KSPField, KSPEvent, ConfigNode и PartResource"

Название модуля Описание
ModuleAerodynamicLift Модуль, создающий аэродинамическую подъемную силу?
ModuleAnimateHeat ???
ModuleAnimatorLandingGear Модуль анимированного посадочного шасси?
ModuleCommand Командный отсек?
ModuleEngineRocketLiquid Модуль жидкостного ракетного двигателя?
ModuleGenerator Используется RTG, ресурсами ввода/вывода.
ModuleResource Основной модуль ресурсов?
ModuleResourceIntake Основной модуль "потребляемых" ресурсов, дополнительный илии отделенный от "ModuleResource"?
ModuleTest ???

Параметры 3-D моделей


Этот раздел определяет модуль 3D-моделей - он соединяет модель и файл текстур, а также обеспечивает дополнительные настройки.

// --- asset parameters ---
mesh = modelfile.dae
scale = 0.1
texture = texturemap.png
specPower = 0.5
rimFalloff = 3
alphaCutoff = 0
//rescaleFactor = 1.25


mesh
Название сетки. Напишите свое название в нем и сохраните файл сетки в том же каталоге, что и файл детали.


scale
Масштаб модели - в зависимости от единиц в программе 3D-моделирования. Если Вы использовали единицу = один метр , то используйте значение 1 . Если это 1 единица, равная 0.1 метра , то используйте значение 0.1. Используйте значение коэффициент масштабирования 0.1, потому что потом легче соответствовать другим частям , чем возиться с коэффициентами масштабирования. Этот фактор будет влиять только на размерах составных частей, участвующих в составе детали и не повлияет на реальный размер самой детали.


texture
Наименование файла текстуры, который расположен в каталоге KSPDirectory/Parts/yourAddon/textures. Текстуры могут быть следующих размеров: 256x256, 512x512 или 1024x1024


specPower
Зеркальное отражение Вашей детали. Лучше оставьте его нетронутым.


rimFalloff
Определяет силу эффекта освещения. Более высокое значение увеличивает эффект вблизи краев.


alphaCutoff
Определяет порог прозрачности текстуры детали. Значение 0 означает, что в текстуре ничто не считается прозрачным. Значение 1 означает полностью прозрачную деталь. Текстуры с альфа-каналом (прозрачностью) может быть прозрачной в одних местах и ​​непрозрачной - в других.


rescaleFactor
Необязательный параметр, который, обычно, не истользуется в большинстве деталей, но данный параметр доступен для изменения параметра детали персонально. Для того чтобы сохранить правильное размещение узла, параметр масштаба должен быть пропорционально изменен в соответствии с новым значением rescaleFactor. Значение по умолчанию для rescaleFactor составляет 1.25, но может быть измено на любое значение.


Ниже приведен пример:

// Kerbal Space Program - файл CFG детали
// Ракетный двигатель Mark V

// --- General Parameters ---
name = LiquidThrusterV
module = LiquidEngine
author = YourName

// --- Asset Parameters ---
mesh = myMesh.dae
scale = 0.1
texture = awesometexture.png
specPower = 0.5 
rimFalloff = 3 
alphaCutoff = 0

Описание узловых точек

Defines where parts attach to other parts. Tricouplers have four: three bottom and one at the top, while most parts simply have two, and a few parts have only one.

node_stack_bottom = x, y, z, angx, angy, angz, size
node_stack_top = x, y, z, angx, angy, angz, size
node_attach = x, y, z, angx, angy, angz, size

Above are three example nodes. Two are useful in this tutorial: node_stack and node_attach. Node stack defines where the part vertically stacks with other parts, and node attach defines where on a part's surface other parts attach - in other words, horizontal attachment.

All node attachment values relate to an object's origin, and their values correspond to a model's units and scaling factors. A node_stack_bottom with x, y, and z values of (2.5, 5.0, 3.0) will have an attachment node 2.5 units to the right, 5.0 units up, and 3.0 units forward. The next three values refer to the orientation that a particular node will accept other attachments, on a scale of -1.0 to 1.0. These represent the vector that a part will orient itself on when attaching to the node. For example, a fuel tank with a node_stack_bottom will have angx, angy, and angz values of (0.0, -1.0, 0.0). This represents a vector downward relative to the part model, in the negative y direction. A value of (0.0, -1.0, 1.0) would represent a diagonal vector downward and forward, while a value of (1.0, 1.0, 1.0) would represent a vector to the right, up, and forward.

Generally, most parts will have angx, angy, and angz values of either (0.0, -1.0, 0.0) for a node_stack_bottom and (0.0, 1.0, 0.0) for a node_stack_top.

The last value indication the visual size of an attachment node. Values may be either 0 (small half-meter node), 1 (normal), or 2 (large). This parameter is optional and will default to 1 if nothing is specified. Keep in mind, naming conventions (_stack_bottom, _stack_top) for nodes only apply to node_attach; they are only helpful in identifying a node's position.

// Kerbal Space Program - Part CFG file
// Mark V Rocket Engine

// --- General Parameters ---
name = LiquidThrusterV
module = LiquidEngine
author = YourName

// --- Asset Parameters ---
mesh = myMesh.dae
scale = 0.1 
texture = awesometexture.png
specPower = 0.5 
rimFalloff = 3 
alphaCutoff = 0 

// --- Node Definitions ---
node_stack_bottom = 0.0, -3.5, 0.0, 0.0, 1.0, 0.0, 1.0

Описание FX

More definitions! But this time, you're positioning the flame coming out the back of the rocket.

fx_exhaustFlame_yellow = x, y, z, angx, angy, angz, active
fx_exhaustLight_yellow = x, y, z, angx, angy, angz, active
fx_smokeTrail_medium = x, y, z, angx, angy, angz, active

Okay, looks pretty similar to node_definitions, right?

You'll notice, just like node definitions, there are separate parts to each effect. You have fx_exhaustFlame, fx_exhaustLight, and fx_smokeTrail.

There are exactly what they sound like, the flame, the light, and the smoke trail.

There are variations on flame color, blue is also an option. To get a blue flame, you would use fx_exhaustFlame_blue. You would do the same for the exhaustLight.

The 'active' switch on the end is used to define when this effect will be visible. See the FX Groups listing to know which effect groups are available, and when they are used. It's also possible to assign an effect to more than just one FX Group. If for instance, you want a smoke effect to be visible both when the part activates and also when it deactivates itself, you can do this:

fx_gasBurst_white = x, y ,z, angx, angy, angz, activate, deactivate

This is particularly useful if you're defining a lot of effects, like the gas discharges on an RCS module.

Feel like you're getting the hang of this now? Let's keep building the dummy part file, and add in a blue flame and light, but leave out the smoke trail.

// Kerbal Space Program - Part CFG file
// Mark V Rocket Engine

// --- General Parameters ---
name = LiquidThrusterV
module = LiquidEngine
author = YourName

// --- Asset Parameters ---
mesh = myMesh.dae
scale = 0.1
texture = awesometexture.png
specPower = 0.5 
rimFalloff = 3 
alphaCutoff = 0

// --- Node Definitions ---
node_stack_bottom = 0.0, -3.5, 0.0, 0.0, 1.0, 0.0, 1.0

// --- FX Definitions ---
fx_exhaustFlame_blue = 0.0, -10.0, 0.0, 0.0, 1.0, 0.0, active
fx_exhaustLight_blue = 0.0, -10.0, 0.0, 0.0, 0.0, 1.0, active

Описание звуковых настроек FX

This is pretty easy to use in a basic way, which will suit our needs just fine.

Under this section, comes:

sound_vent_medium = activate
sound_rocket_hard = active
sound_vent_soft = deactivate

Sounds are added to FX Groups, in much the same way smoke and flame effects are. Of course, sounds do not need to be positioned in space, nor do they have rotations, so all you need is to indicate in which FX Group the sound will be executed. As with effects, you can assign multiple groups to a sound.


Since 0.20 GameData structure there are 2 ways to add a sound to a part:

  • KSP has an internal sound library, which contains a few sound effects. By defining a sound as in the example above, KSP will search for that sound in its internal library.
  • The second way is to add new sound files which is ONLY possible if adding the sound file to the GameData/modName/parts/partName/part/sounds/ folder. Note that all the sounds are therefore "private", only accessed by that part. For now, the legacy folder or a shared mod folder method doesn't work, devs are probably going to fix this problem in the future.


REMEMBER: If you add a custom sound, the file name must start with sound_ (e.g., sound_myNewSoundEffect.wav).

To use a sound from the KSP internal library or the part/sounds folder, you must not include the extension in the sound name (e.g., sound_vent_medium = activate), otherwise the sound will not work.

Supported files are 48000Hz .wav files and .ogg

Adding sound FX to our dummy part file:

// Kerbal Space Program - Part CFG file
// Mark V Rocket Engine

// --- General Parameters ---
name = LiquidThrusterV
module = LiquidEngine
author = YourName

// --- Asset Parameters ---
mesh = myMesh.dae
scale = 0.1 
texture = awesometexture.png
specPower = 0.5 
rimFalloff = 3 
alphaCutoff = 0 

// --- Node Definitions ---
node_stack_bottom = 0.0, -3.5, 0.0, 0.0, 1.0, 0.0, 1.0

*'''// --- FX Definitions ---
fx_exhaustFlame_blue = 0.0, -10.0, 0.0, 0.0, 1.0, 0.0, active
fx_exhaustLight_blue = 0.0, -10.0, 0.0, 0.0, 0.0, 1.0, active

// --- Sound FX definition ---
sound_vent_medium = activate
sound_rocket_hard = active
sound_vent_soft = deactivate

Параметры редактора


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

 // --- editor parameters ---
 cost = 450
 category = Propulsion
 subcategory = 0
 title = 
 manufacturer =
 description = 


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


category
Всего семь категорий:
Категория Описание
Pods Командный отсек и кабины пилотов находятся здесь
Propulsion Двигатели, топливные цистерны, монокомпанентные цистерны и тому подобное.
Control модули системы стабилизации (SAS), двишатели на монокомпанентном топливе (RCS) и тому подобное.
Structural Подпорки, разделители, адаптеры и тому подобное.
Aero Крылья, управляющие поверхности (рули) и носовые обтекатели.
Utility Парашюты, стыковочные стрелы, тепловые экраны, осветительное оборудование, посадочные шасси/опоры, лесницы, батареи, солнечные панели, генераторы и тому подобное.
Science Датчики, антенны, спутниковые тарелки и тому подобное.


subcategory
Еще не используется. Установите значение равным 0.


title
Как Вы хотите, чтобы Ваша деталь называлась в редакторе ракет?


manufacturer
Кто производит Вашу деталь?


description
Здесь опишите свою деталь. (Не используйте разрывы строк. KSP в подсказке детали разрывает строки автоматически. Разрыв строки вызовет отображение Вашего описания в усеченном виде)

И это все. Обновленный фиктивный cfg-файл теперь выглядит следующим образом:

// Kerbal Space Program - CFG файл детали
// Ракетный двигатель Mark V

// --- General Parameters ---
name = LiquidThrusterV
module = LiquidEngine
author = YourName

// --- Asset Parameters ---
mesh = myMesh.dae
scale = 0.1 
texture = awesometexture.png
specPower = 0.5 
rimFalloff = 3 
alphaCutoff = 0 

// --- Node Definitions ---
node_stack_bottom = 0.0, -3.5, 0.0, 0.0, 1.0, 0.0, 1.0

*'''// --- FX Definitions ---
fx_exhaustFlame_blue = 0.0, -10.0, 0.0, 0.0, 1.0, 0.0, active
fx_exhaustLight_blue = 0.0, -10.0, 0.0, 0.0, 0.0, 1.0, active

// --- Sound FX definition ---
sound_vent_medium = activate
sound_rocket_hard = active
sound_vent_soft = deactivate

// --- editor parameters ---
cost = 120
category = Propulsion
subcategory = 0
title = Ракетный двигатель Mark V
manufacturer = Утрашающе Ужасные Ракетные Двигатели Инкорпорейтед
description = Эта деталь теперь выведет Вас в космос с потерями меньшими на 60%, чем двигатель Mark IV.

Правила привязки

This defines how your part attaches to other parts.

  • // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
  • attachRules = 1,1,1,1,1

The rules correspond to the numbers below - 1 is allow, 0 is prevent. The tags are:

stack - Can your part be stacked on others?

SrfAttach - Can your part be placed onto a surface?

allowStack - Will you allow other parts to be stacked on your part?

allowSrfAttach Can other parts be placed on the surface of yours?

allowCollision - A special one: Can your part be placed if part of it is intersecting another part?


Note that you can also force parts attached to this part to attach in a specific symmetry.

  • // symmetry rules: 0=1x, 1=2x, 2=3x, 3=4x and so on...
  • stackSymmetry = 3


Easy enough, right? Adding to dummy file and continuing.

// Kerbal Space Program - Part CFG file
// Mark V Rocket Engine
// --- General Parameters ---
name = LiquidThrusterV
module = LiquidEngine
author = YourName
// --- Asset Parameters ---
mesh = myMesh.dae
scale = 0.1
texture = awesometexture.png
specPower = 0.5
rimFalloff = 3
alphaCutoff = 0
// --- Node Definitions ---
node_stack_bottom = 0.0, -3.5, 0.0, 0.0, 1.0, 0.0, 1.0
// --- FX Definitions ---
fx_exhaustFlame_blue = 0.0, -10.0, 0.0, 0.0, 1.0, 0.0, active
fx_exhaustLight_blue = 0.0, -10.0, 0.0, 0.0, 0.0, 1.0, active
// --- Sound FX definition ---
sound_vent_medium = activate
sound_rocket_hard = active
sound_vent_soft = deactivate
// --- editor parameters ---
cost = 120
category = Propulsion
subcategory = 0
title = Mark V Rocket Engine
manufacturer = Awesomely Terrible Spaceship Engines Inc.
description = This part will now get you to space with 60% less limb loss than the mark IV engine.
// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
attachRules = 1,1,1,1,0

Стандартные параметры детали

This defines how your part performs in the air and its limits. Note that not all of these parameters need to be defined. If they're left out of the cfg file, KSP will use a default value for them.

  • mass =
  • dragModelType = default
  • maximum_drag =
  • minimum_drag =
  • angularDrag =
  • crashTolerance =
  • breakingForce =
  • breakingTorque =
  • maxTemp =
  • heatConductivity =
  • heatDissipation =
  • stageOffset =
  • childStageOffset =
  • fuelCrossFeed =
  • NoCrossFeedNodeKey =

mass - How much does your part weigh? (Or, for parts that also specify a dryMass parameter, how much does it weigh when full?)

dragModelType - Leave this as default.

maximum_drag - What's the maximum amount of drag on your part? (Usually under 1.) Generally drag when part's direction of travel is along its y-axis.

minimum_drag - The minimum amount of drag your part will encounter. (Usually under 1 and lower than maximum_drag) (this value is unused if dragModelType is set to default) Generally drag when the part's direction of travel is perpendicular to its y-axis.

angularDrag - how much angular drag is there/resistance to turning? (Also usually under 1.)

crashTolerance - How good is your part at surviving crashes? The higher the number the more durable. Numbers are approximately maximum impact speed in m/s.

breakingForce - How much will the attachment between this part and the part it's connected to resist to linear forces?

breakingTorque - How much will the attachment resist rotational forces?

maxTemp - The maximum temperature your part can experience before exploding.

heatConductivity - How good is your part at conducting heat? Defaults to 0.08, CFG values are used in 0.13.3, but not in 0.15.2.

heatDissipation - How good is your part at dissipating heat from the ship? Defaults to 0.08, CFG values are used in 0.13.3, but not in 0.15.2.

stageOffset and childStageOffset - Can be 0, 1, etc. defines whether this part will create a new stage before or after itself, or both (as do decouplers). This only applies for the automatically generated staging sequence. These replace stageBefore and stageAfter.

fuelCrossFeed - Will the part crossfeed fuel between parts attached to it?

NoCrossFeedNodeKey - if set to bottom will keep fuel from flowing FROM bottom nodes (avoiding some stack imbalances and partially mitigating the 0.15 bug of engines generating fuel). Used with parts with multiple bottom nodes, such as the TVR-1180C Mk1 Stack Tri-Coupler.

There you go, another section down.

Dummy CFG:

// Kerbal Space Program - Part CFG file
// Mark V Rocket Engine
// --- General Parameters ---
name = LiquidThrusterV
module = LiquidEngine
author = YourName
// --- Asset Parameters ---
mesh = myMesh.dae
scale = 0.1 
texture = awesometexture.png
specPower = 0.5 
rimFalloff = 3 
alphaCutoff = 0 
// --- Node Definitions ---
node_stack_bottom = 0.0, -3.5, 0.0, 0.0, 1.0, 0.0, 1.0
// --- FX Definitions ---
fx_exhaustFlame_blue = 0.0, -10.0, 0.0, 0.0, 1.0, 0.0, active
fx_exhaustLight_blue = 0.0, -10.0, 0.0, 0.0, 0.0, 1.0, active
// --- Sound FX definition ---
sound_vent_medium = activate
sound_rocket_hard = active
sound_vent_soft = deactivate
// ---Editor parameters ---
cost = 120
category = Propulsion
subcategory = 0
title = Mark V Rocket Engine
manufacturer = Awesomely Terrible Spaceship Engines Inc.
description = This part will now get you to space with 60% less limb loss than the mark IV engine.
// --- Standard part parameters ---
mass = 1.5
dragModelType = default
maximum_drag = 0.4
minimum_drag = 0.2
angularDrag = 0.2
crashTolerance = 5
maxTemp = 2500

Специфические параметры детали

We're almost finished, a complete part is almost at our hands and you should know almost everything you need to create a part.cfg file. However, remember back when we were setting types? Well each type has an individual set of specific part parameters that change depending on what type of part it is.

You cannot mix and match parameters from different module types - it doesn't work.

These specific parameters are actually public variables defined in the Part classes themselves. The standard parameters are declared in the Part base class, and the specific ones in each Part extension (i.e., Modules)

For example, if your part type (module) was SolidRocket, your specific part parameters would be composed of:

  • thrust = 130
  • dryMass = 0.36
  • heatProduction = 550
  • fuelConsumption = 4
  • internalFuel = 100
  • fullExplosionPotential = 0.8
  • emptyExplosionPotential = 0.1
  • thrustCenter = 0, -0.5, 0
  • thrustVector = 0, 1, 0

Time to go through and see what special parameters each module can have.

Жидкостной двигатель

A liquid engine has the following special parameters:

  • maxThrust =
  • minThrust =
  • heatProduction =
  • fuelConsumption =

Looks pretty easy, and everything is pretty much what you'd expect. By now, you should be able to work out what they all mean, but just in case:

maxThrust - The maximum thrust of the liquid engine.

minThrust - The minimum thrust. Usually 0, unless you want a rocket that can't fully be turned off.

heatProduction - How much heat your rocket puts out.

fuelConsumption - How much fuel your rocket uses.

Твердотопливный ракетный ускоритель

  • thrust =
  • dryMass =
  • heatProduction =
  • fuelConsumption =
  • internalFuel =
  • fullExplosionPotential =
  • emptyExplosionPotential =
  • thrustCenter = x, y, z
  • thrustVector = angx, angy, angz

A lot of those values look pretty similar to the liquid engine parameters, right?

thrust - The thrust of the solid rocket booster. Note how there is no minimum thrust because it can not be turned off once lit.

dryMass - How much the SRB weighs when empty.

heatProduction - Exactly the same as the liquid rocket, how much heat your rocket puts up.

fuelConsumption - How much fuel the rocket uses per second.

internalFuel - How much fuel does the SRB hold inside it?

fullExplosionPotential - The potential for explosion when the rocket is full of fuel

emptyExplosionPotential - And the potential when it's empty.

thrustCenter - Where the thrust comes from.

thrustVector - And which direction it goes.

Топливная цистерна

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


  • fuel =
  • dryMass =
  • fullExplosionPotential =
  • emptyExplosionPotential =

Если Вы прочитали все написанное выше, то должны точно знать - что эти параметры делают, и, поэтому, я не буду снова их Вам объяснять.

Модуль системы стабилизации (SAS)

  • maxTorque =

maxTorque - The maximum amount of torque the module can apply to halt the ship's rotation.

Ki, Kd and Kp - These parameters allow for tuning of the internal workings of the SAS module. If you're not experienced in working with PID controllers, just leave them as they are.

Крылья

  • dragCoeff =
  • deflectionLiftCoeff =

dragCoeff - аэродинамическое сопротивление крыла.

deflectionLiftCoeff - подъемная сила крыла.

Управляющие поверхности (рули)

  • dragCoeff =
  • deflectionLiftCoeff =
  • ctrlSurfaceRange =
  • ctrlSurfaceArea =

ctrlSurfaceRange - How far off centre the control surface (rudder / aileron etc) can move under control

ctrlSurfaceArea - The effective surface area of the control surface - the bigger the surface, the bigger the surface area must be set to

Разделители

  • ejectionForce =

ejectionForce - How hard it separates on stage ejection.

Note, decouplers also add two lines to Standard Part Parameters, "stageAfter = True" and "stageBefore = True"

Парашюты

  • useAGL =
  • autoDeployDelay =
  • minAirPressureToOpen =
  • deployAltitude =
  • closedDrag =
  • semiDeployedDrag =
  • fullyDeployedDrag =

useAGL - Whether or not the parachute opens at the set altitude above ground level, instead of above sea level.

autoDeployDelay - Time before parachutes attached to jettisoned parts are activated.

minAirPressureToOpen - The minimum air pressure required before the chute will activate.

deployAltitude - At what altitude the parachute deploys fully once activated.

closedDrag - The drag when the parachute is closed.

semiDeployedDrag - The drag when it's semi-deployed

fullyDeployedDrag - And finally, the drag when it's entirely deployed.

В заключение

There you go then. By now, you should know the ins and outs of the part.cfg file, and how to create one, edit one, play around with one, etc. All sorts of cool stuff like that. The final dummy part.cfg file will be after this, with the special part parameters added in.

Anyway, that's that, now you know, now go make some cool addons like FTL drives and newton-defying inertial dampeners.

Фиктивный файл part.cfg завершен

// Kerbal Space Program - Part CFG file
// Mark V Rocket Engine
// --- General Parameters ---
name = LiquidThrusterV
module = LiquidEngine
author = YourName
// --- Asset Parameters ---
mesh = myMesh.dae
scale = 0.1 
texture = awesometexture.png
specPower = 0.5 
rimFalloff = 3
alphaCutoff = 0
// --- Node Definitions ---
node_stack_bottom = 0.0, -3.5, 0.0, 0.0, 1.0, 0.0, 1.0
// --- FX Definitions ---
fx_exhaustFlame_blue = 0.0, -10.0, 0.0, 0.0, 1.0, 0.0, active
fx_exhaustLight_blue = 0.0, -10.0, 0.0, 0.0, 0.0, 1.0, active
// --- Sound FX definition ---
sound_vent_medium = activate
sound_rocket_hard = active
sound_vent_soft = deactivate
// ---Editor parameters ---
cost = 120
category = Propulsion
subcategory = 0
title = Mark V Rocket Engine
manufacturer = Awesomely Terrible Spaceship Engines Inc.
description = This part will now get you to space with 60% less limb loss than the mark IV engine.
// --- Standard part parameters ---
mass = 1.5
dragModelType = default
maximum_drag = 0.4
minimum_drag = 0.2
angularDrag = 0.2
crashTolerance = 5
maxTemp = 2500
// --- Special Part Parameters ---
maxThrust = 150
minThrust = 0	
heatProduction = 360
fuelConsumption = 7

More Example?

// KSP - Parts
// Chemi Ion engine , using normal fueltank :D
// Mark I Ion engine
// 

// --- general parameters ---
name = ChemiIonEngine
module = LiquidEngine
author = Chemi | G-min
// --- asset parameters ---
mesh = CIonengMK1.dae

scale = 0.1
texture = hotsurf.png
specPower = 0.5
rimFalloff = 4
alphaCutoff = 0

// --- node definitions ---
node_stack_bottom = 0, 0, 0, 0, -1.0, 0, 1

node_stack_top = 0, 0.2, 0, 0, 1.0, 0, 1

// --- FX definitions ---
fx_exhaustFlame_yellow = 0, -0.05, 0, 0, 1.0, 0, active

fx_exhaustLight_yellow = 0, -0.05, 0, 0, 0, 0, active
fx_smokeTrail_medium = 0, 0, 0, 0, 1.0, 0, active
// --- Sound FX definition ---
sound_chemiionengine.wav = activate

sound_chemiionengine.wav = active
sound_vent_soft = deactivate

// --- editor parameters ---
cost = 1000

category = Propulsion
subcategory = 0
title = Chemi Ion engine MK1
manufacturer = Chemi Jet Propulson Laboratory / G-min Parts design
description = The great Ion engine :D with crash resiston G-JPG Around 999 m/s! (not mean inside ion engine will be resist 999 m/s crash!!! I warned you!) and with SPECIAL STRONGER! shock absorber!    now with viscosion coolant!(really absorbs and conduct :D) (it's GEL!) great for Interplanetary jornal.

// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
attachRules = 1,1,1,1,0
// --- standard part parameters ---
mass = 1.22

dragModelType = default 
maximum_drag = 0.399 
angularDrag = 0.4
crashTolerance = 29.16
breakingForce = 1024
breakingTorque = 567
maxTemp = 3100
heatConductivity = 3.6
heatDissipation = 0.014
// --- specific part parameters ---
maxThrust = 369

minThrust = 0
heatProduction = 58
fuelConsumption = 0.009
// end!