АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Создание двигателя

Читайте также:
  1. Creating a VHDL Source (создание файла, содержащего текст программы на языке VHDL).
  2. II. Создание многотабличной пользовательской формы.
  3. IV. Расчет частоты вращения вала двигателя.
  4. MS Excel. Типы диаграмм в Excel. Создание диаграмм в Excel.
  5. QNET комментирует создание платформы электронной коммерции Globby в Сингапуре
  6. Автоматическое создание тегов
  7. Агрегаты запуска двигателя
  8. Б. Создание коллегий. Местные органы власти
  9. Б. Создание оптимальной водной среды
  10. БИЛЕТ. Создание и деятельность профсоюзов в Англии (19 начало 20 вв.)
  11. БМВ начинается с двигателя
  12. Будьте не такими, как все: создание социальной среды

[Автор alexustas, правка KiRiK]

 

Необходимо объяснить КСП где у твоего двигателя центр тяги ("thrust") и какой у неё вектор. КСП сама, глядя на твой двигатель, к сожалению этого делать не умеет .

 

для этого в Unity создаешь очередной пустой игровой объект, тобишь делаешь GameObject -> Create Empty.

помещаешь его ТОЧНО в ту точку, где по твоему замыслу, должен находиться этот самый Центр, и разворачиваешь так, чтоб синяя стрелка смотрела ТОЧНО в нужном тебе направлении. Обычно вертикально вниз, но мало ли, может у тебя есть хитрый план. И переименовываешь этот игровой объект в" thrustTransform ", причем ИМЕННО такое имя должно быть, с большой буквой "Т" в середине. Иначе кирдык.

 

а дальше, все по той же схеме привязываешь его к главному игровому объекту, на котором PartTools висит и экспортируешь в штатном режиме.

Пишешь соответствующий модуль в конфиге, он стандартный, только свою "atmosphereCurve" сочиняешь и фсё.

И да! На этот же thrustTransform в конфиге можно повесить и модуль Gimbal, дабы рулить можно было.

П.С.
Еще как-то можно сделать чтоб сопло (Nozzle) калбасилось в такт Gimbal'у, но щас не скажу как.. это надо dataminig'ом заниматься долго

 

 

в модуле двигателя строчка fxOffset Это параметр смещения спецэффектов движка относительно GameObject'a, символизирующего его Центр тяги.

Я на шару вбил левые значения

fxOffset = 3.0, 3.0, 2.4

и вот что получилось

 

и еще по движкам, для полной ясности.
Британские Ученые в своих Докладах какбэ намекают нам, что GameObject, созданный для обозначения Тяги, необязательно должен называться " thrustTransform ". Главное - название этого GameObject 'a должно ПОЛНОСТЬЮ совпадать со значением параметра " thrustVectorTransformName = " в конфиге к двигателю.

надо тупо назвать кожух " fairing " в Юнити и дальше оно само заработает. надо было просто попробовать и не ломать мозх

 

РЕЦЕПТ ПРИГОТОВЛЕНИЯ ДВИГАТЕЛЯ
-Возьмите модель вашего вечного двигателя и поместите его в Юнити
-Создайте пустой игровой объект (GameObject -> Create Empty)
-Переименуйте этот объект в " thrustTransform "
-Поместите его так, чтоб его центр находился строго в Центре Тяги вашего будущего двигателя.
-Разверните объект " thrustTransform " таким образом, чтобы ось Z была обращена строго по направлению истечения газов (или как это называется),в общем, в сторону, противоположную движению вашего корабля
должно получиться примерно вот так^

 

-Если вы планируете завоевать весь Мир использовать модуль Gimbal (отклонение вектора тяги) и хотите, чтобы эффект работы этого модуля был виден в игре, т.е. сопло (nozzle) двигателя откланялось, согласно изменению вектора тяги, то необходимо в окне Hierarchy Юнити
перетащить все элементы модели, символизирующие Сопло вашего супер-двигателя, на созданный вами ранее объект " thrustTransform ". т.е. привязать все элементы Сопла к вектору тяги. получится вот так:


Далее, все как обычно, сделайте еще один игровой объект, повесьте на него PartTools и бла-бла-бла....

Далее, в конфиге прописываем необходимые модули:

эффекты, на ваше усмотрение


пиротехника

// --- FX definitions ---
fx_exhaustFlame_blue_small = 1.0, -5.8, 0.0, 1.0, 1.0, 0.0, running
fx_exhaustLight_blue = -5.0, -5.8, 0.0, 0.0, 1.0, 1.0, running
fx_smokeTrail_light = 0.0, 1.3, 0.0, 0.0, 1.0, 0.0, running

 

звуки

 

// --- Sound FX definition ---
sound_vent_medium = engage
sound_rocket_hard = running
sound_vent_soft = disengage
sound_explosion_low = flameout

 

модуль, собственно, самого двигателя:

MODULE
{
name = ModuleEngines
thrustVectorTransformName = thrustTransform //внимание! имя должно строго совпадать, не исключая и регистр
exhaustDamage = True
ignitionThreshold = 0.1
minThrust = 0
maxThrust = 220
heatProduction = 800
fxOffset = 0, 0, 2.4
PROPELLANT
{
name = LiquidFuel
ratio = 0.9
DrawGauge = True
}
PROPELLANT
{
name = Oxidizer
ratio = 1.1
}
atmosphereCurve
{
key = 0 390
key = 1 270
}
}


модуль отклонения вектора тяги:

 

MODULE
{
name = ModuleGimbal
gimbalTransformName = thrustTransform //указываем то же имя, что и для Тяги
gimbalRange = 2.5
}

 

модуль ракетного двигателя в конфиге

MODULE
{
name = ModuleEngines - название модуля KSP

thrustVectorTransformName = thrustTransform - имя элемента модели (как правило специально созданного пустого игрового объекта Юнити), который будет Центром тяги вашего двигателя. именно к нему прикладывается реактивная сила и он задает направление истечения струи газов.
внимание! имя должно строго совпадать с именем игрового объекта созданного в Юнити, в том числе и регистр.
Есть так же информация, что не обязательно, объект должен называться именно "thrustTransform", но главное условие - имена в юнити и в конфиге должны полностью совпадать.

exhaustDamage = True - наносит ли реактивная струя повреждения другим объектам в игре. True = Да, False = Нет.

ignitionThreshold = 0.1 - не понял смысл этого параметра. по идее, это порог воспламенения (зажигания) топливной смеси... не знаю в общем..

minThrust = 0 - минимальная тяга вашего двигателя

maxThrust = 220 - максимальная тяга, чем выше значение, тем мощнее двигатель

heatProduction = 800 - нагрев работающего двигателя, чем выше значение, тем быстрее двигатель перегревается

fxOffset = 0, 0, 2.4 - смещение (в метрах) по осям X, Y, Z визуальных эффектов (дыма, пламени) относительно Центра тяги двигателя

PROPELLANT - объявляется потребляемый ресурс
{
name = LiquidFuel - название ресурса, в данном случае - жидкое топливо

ratio = 0.9 - пропорция потребления данного компонента

DrawGauge = True - отображать ли шкалу остатка топлива возле иконки двигателя, когда активируется соответствующая ступень (да/нет)

}

PROPELLANT - объявляется еще один потребляемый ресурс

{

name = Oxidizer - еще один ресурс требуемый для работы двигателя, в данном случае - окислитель

ratio = 1.1 - пропорция потребления данного компонента. окислителя расходуется обычно больше, чем топлива. т.е. получается на одну единицу топлива уходит ~1.22 единицы окислителя

}

atmosphereCurve - объявляется кривая, описывающая эффективность работы двигателя (что-то вроде КПД).
характеризует силу, которую выдает двигатель к потраченному за единицу времени топливу. ну или что-то в этом роде))
для ракетных и реактивных авиационных двигателей этот показатель называется "Isp", чем выше параметр, тем эффективнее и экономичнее двигатель. подробнее читаем тут

{

key = 0 390 - Isp в вакууме (на орбите). первая цифра " 0 ", как раз намекает нам, что атмосфера уже вроде как отсутствует

key = 1 270 - Isp на уровне моря. цифра " 1 " указывает, что атмосферы вокруг ну просто завались

}

}

опционально, двигатель можно наделить умением рулить. для этого прописываем в конфиге модуль " Gimbal ", т.е. отклонение вектора тяги:

MODULE
{
name = ModuleGimbal - название модуля KSP

gimbalTransformName = thrustTransform - имя элемента модели (как правило пустого игрового объекта Юнити), который будет Центром вращения вектора тяги (сопла) вашего двигателя. Как правило, используется объект "thrustTransform", созданный для обозначения Центра тяги двигателя, хотя были замечены случаи, когда для Тяги и для руления использовались разные объекты.... зачем, лично я не понял.

gimbalRange = 0.5 - величина отклонения вектора тяги. чем больше значение, тем "маневреннее" ваш двигатель
}

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |

Поиск по сайту:



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