Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создание CFG файла для простой деталиПоиск на нашем сайте Создание IVA alexustas
Выдалась свободная "минутка" (т.е. часа полтора-два) и я решил опять написать тутор по созданию IVA Итак, В контексте игры, этот термин подразумевает пребывания игрока внутри командного (или просто, обитаемого) модуля, и, до недавнего времени, никакого толка от этого пребывания, по сути, не было. но мы сейчас не об этом... Давай разберемся, "что" тут "где" и "когда". А теперь, давайте выясним, что же такое интерьер (Internal) с точки зрения КСП и Юнити: Теперь время пояснить, что я имел ввиду под термином
Наверняка, у вас уже возник логичный вопрос - "А
"ОРИЕНТАЦИЯ" Что можно о ней сказать? Она, как и практически все в КСП, не совсем традиционная. Сквад, в бесконечной своей мудрости, нагородил аццкий огород с координатными системами для разных элементов сцены и теперь нам с этим надо как-то жить. Наблюдение третье: В момент, когда мы решим заняться той самой "внутрикорабельной деятельностью", то бишь зайдем вI.V.A., мы со всего маху столкнемся лицом к лицу ажно с ТРЕМЯ РАЗНЫМИ системами координат: 1. Внешняя модель (External) 2. Интерьер (Internal) 3. Кербонавты (Kerbals) Круто, правда?
черный - это Internal. Чуть не забыл. чтобы былаI.V.A. нужно же поселить в кабину Кербонавтов! Иначе же кто эту деятельность там будет разводить?!
Теперь, как было описано выше, все, что у нас будет интерьером, раскладываем по слоям "Internal Space" и "Kerbals". Создаем еще один GameObject (обнуляем его координаты!). Вешаем на него компонент PartTools и экспортируем обычным порядком, как любую другую деталь (Part)
И так. У нас есть mu-файл и текстуры, но это еще не Интерьер, чтоб эти груды байтов стали Интерьером, нам нужно прикрутить к ним конфиг INTERNAL Вот, собственно, и все с конфигом Интерьера. Открываем конфиг капсулы и вписываем аккуратным, каллиграфическим почерком: INTERNAL Все! теперь КСП, в момент воссоздания вашего корабля, дойдя до командного модуля, увидит, что с ним ассоциирован Интерьер (Internal) с именем "ALCORInternals3" и, зайдя в I.V.A., вы окажетесь в том самом Интерьере, который только что построили. You Win!
Создание стыковочных портов manhak
Для создания стыковочного порта понадобится провести некоторые действия в Unity. Это можно увидеть на картинке взятой с официального форума:
После этого в файл настроек добавляется следующий модуль: MODULE
Создание двигателя [Авторalexustas, правка KiRiK]
Необходимо объяснить КСП где у твоего двигателя центр тяги ("thrust") и какой у неё вектор. КСП сама, глядя на твой двигатель, к сожалению этого делать не умеет
для этого в Unity создаешь очередной пустой игровой объект, тобишь делаешь GameObject ->Create Empty. помещаешь его ТОЧНО в ту точку, где по твоему замыслу, должен находиться этот самый Центр, и разворачиваешь так, чтоб синяя стрелка смотрела ТОЧНО в нужном тебе направлении. Обычно вертикально вниз, но мало ли, может у тебя есть хитрый план. И переименовываешь этот игровой объект в" thrustTransform", причем ИМЕННО такое имя должно быть, с большой буквой "Т" в середине. Иначе кирдык.
а дальше, все по той же схеме привязываешь его кглавному игровому объекту, на котором PartTools висит и экспортируешь в штатном режиме. Пишешь соответствующий модуль в конфиге, он стандартный, только свою "atmosphereCurve" сочиняешь и фсё. И да! На этот же thrustTransform в конфиге можно повесить и модуль Gimbal, дабы рулить можно было. П.С.
в модуле двигателя строчка fxOffset Это параметр смещения спецэффектов движка относительно GameObject'a, символизирующего его Центр тяги. Я на шару вбил левые значения fxOffset = 3.0, 3.0, 2.4 и вот что получилось
и еще по движкам, для полной ясности. надо тупо назвать кожух "fairing" в Юнити и дальше оно само заработает. надо было просто попробовать и не ломать мозх
РЕЦЕПТ ПРИГОТОВЛЕНИЯ ДВИГАТЕЛЯ
-Если вы планируете
Далее, в конфиге прописываем необходимые модули: эффекты, на ваше усмотрение
// --- FX definitions ---
звуки
// --- Sound FX definition ---
модуль, собственно, самого двигателя: MODULE модуль отклонения вектора тяги:
MODULE
модуль ракетного двигателя в конфиге MODULE thrustVectorTransformName = thrustTransform - имя элемента модели (как правило специально созданного пустого игрового объекта Юнити), который будет Центром тяги вашего двигателя. именно к нему прикладывается реактивная сила и он задает направление истечения струи газов. exhaustDamage = True - наносит ли реактивная струя повреждения другим объектам в игре. True = Да, False = Нет. ignitionThreshold = 0.1 - не понял смысл этого параметра. по идее, это порог воспламенения (зажигания) топливной смеси... не знаю в общем.. minThrust =0 - минимальная тяга вашего двигателя maxThrust =220 - максимальная тяга, чем выше значение, тем мощнее двигатель heatProduction =800 - нагрев работающего двигателя, чем выше значение, тем быстрее двигатель перегревается fxOffset =0, 0, 2.4 - смещение (в метрах) по осям X, Y, Z визуальных эффектов (дыма, пламени) относительно Центра тяги двигателя PROPELLANT - объявляется потребляемый ресурс ratio =0.9 - пропорция потребления данного компонента DrawGauge =True - отображать ли шкалу остатка топлива возле иконки двигателя, когда активируется соответствующая ступень (да/нет) } PROPELLANT- объявляется еще один потребляемый ресурс { name =Oxidizer - еще один ресурс требуемый для работы двигателя, в данном случае - окислитель ratio = 1.1 - пропорция потребления данного компонента. окислителя расходуется обычно больше, чем топлива. т.е. получается на одну единицу топлива уходит ~1.22 единицы окислителя } atmosphereCurve - объявляется кривая, описывающая эффективность работы двигателя (что-то вроде КПД). { key =0 390 - Isp в вакууме (на орбите). первая цифра "0", как раз намекает нам, что атмосфера уже вроде как отсутствует key =1 270 - Isp на уровне моря. цифра "1" указывает, что атмосферы вокруг ну просто завались } } опционально, двигатель можно наделить умением рулить. для этого прописываем в конфиге модуль "Gimbal", т.е. отклонение вектора тяги: MODULE gimbalTransformName =thrustTransform - имя элемента модели (как правило пустого игрового объекта Юнити), который будет Центром вращения вектора тяги (сопла) вашего двигателя. Как правило, используется объект "thrustTransform", созданный для обозначения Центра тяги двигателя, хотя были замечены случаи, когда для Тяги и для руления использовались разные объекты.... зачем, лично я не понял. gimbalRange =0.5 - величина отклонения вектора тяги. чем больше значение, тем "маневреннее" ваш двигатель
Создание разъединителей [Авторalexustas, правка KiRiK]
С декуплерами все просто, вроде бы. Прописываешь в конфиге модуль: MODULE Это самый простой вариант декуплера. Также, можно добавить параметры: В стандартных параметрах конфига:
stagingIcon = DECOUPLER_HOR //тип иконки в панели ступеней, в данном случае "горизонтальное разделение", актуально для радиальных декуплеров
stageOffset = 1 //будет создана отдельная ступень, после текущей childStageOffset = 1
В параметрах модуля декуплера:
staged = false //не будет автоматически создаваться дополнительная ступень, отстрел можно будет сдалть только в ручную через контекстное меню isOmniDecoupler = true //декуплер полностью отрывается от всех деталей, т.е. подрываются заряды сверху и снизу одновременно а так же для разделяющихся радиальных декуплеров, можно указать деталь, которая останется на крафте после отстрела, но там и модуль другой надо объявлять.
Теги в юнити [Авторalexustas, правка KiRiK]
приготовьте свои тетрадки и записывайте: в инспекторе под названием объекта есть параметр Tag. У тебя там щас скорее всего выбрано "Untagged"
тыкаешь в это меню, в самом низу выбираешь "Add tag..." и видишщь примерно вот это
в поле Size ставишь 4 (можно другое число, но тебе еще пригодятся свободные ячейки)
чуешь, к чему дело идет? да-да. Теперь у тебя есть полезные и питательные Тэги и не только для "жеттисонов". Тыкаешь в свой fairing объект и выбираешь из списка Тэгов "Icon_Hidden". Дальше - по обычному плану... Создание CFG файла [автор KiRiK]
Для создания cfg файла под вашу деталь проще всего подобрать готовый cfg файл из папки Squad Допустим, вы создали некую простую деталь вроде бака с топливом. Соответственно лезем в \GameData\Squad\Parts\FuelTank\fuelTank\, хотя можно любой другой бак. Копируем файл part.cfg в папку с вашей деталью. Открываем его любым текстовым редактором (например Notepad++, в нем можно поставить синтаксис С# который будет удобно подсвечивать вам текст). В этом файле видим следующий текст: PART { // Kerbal Space Program - Part Config // FL-T500 Fuel Tank //
// --- general parameters --- name = fuelTank module = Part author = NovaSilisko
// --- asset parameters --- mesh = model.mu scale = 0.1
// --- node definitions --- node_stack_top = 0.0, 7.72552, 0.0, 0.0, 1.0, 0.0 node_stack_bottom = 0.0, -7.3, 0.0, 0.0, 1.0, 0.0 node_attach = 5.01, 0.0, 0.0, 1.0, 0.0, 0.0, 1
// --- editor parameters --- TechRequired = basicRocketry entryCost = 1600 cost = 850 category = Propulsion subcategory = 0 title = FL-T400 Fuel Tank manufacturer = Jebediah Kerman's Junkyard and Spaceship Parts Co. description = The FL series was received as a substantial upgrade over previous fuel containers used in the Space Program, generally due to its ability to keep the fuel unexploded more often than not. Fuel tanks are useless if there isn't a Liquid Engine attached under it. They can also be stacked with other fuel tanks to increase the amount of fuel for the engine below.
// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision attachRules = 1,1,1,1,0
// --- standard part parameters --- mass = 0.25 dragModelType = default maximum_drag = 0.2 minimum_drag = 0.3 angularDrag = 2 crashTolerance = 6 breakingForce = 50 breakingTorque = 50 maxTemp = 2900
RESOURCE { name = LiquidFuel amount = 180 maxAmount = 180 }
RESOURCE { name = Oxidizer amount = 220 maxAmount = 220 } }
Убираем все не нужное: PART { // --- general parameters --- name = module = Part author = // --- asset parameters --- mesh = scale = // --- node definitions --- node_stack_top = 0.0, 7.72552, 0.0, 0.0, 1.0, 0.0 node_stack_bottom = 0.0, -7.3, 0.0, 0.0, 1.0, 0.0 node_attach = 5.01, 0.0, 0.0, 1.0, 0.0, 0.0, 1 // --- editor parameters --- TechRequired = basicRocketry entryCost = 1600 cost = 850 category = Propulsion subcategory = 0 title = manufacturer = description = // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision attachRules = 1,1,1,1,0 // --- standard part parameters --- mass = 0.25 dragModelType = default maximum_drag = 0.2 minimum_drag = 0.3 angularDrag = 2 crashTolerance = 6 breakingForce = 50 breakingTorque = 50 maxTemp = 2900
RESOURCE { name = LiquidFuel amount = 180 maxAmount = 180 }
RESOURCE { name = Oxidizer amount = 220 maxAmount = 220 } }
Далее изменяем параметры под свою деталь: // --- general parameters --- name = BTR90 имя вашей детали для игры(не должно совпадать с любым другим) author = KiRiK автор, здесь можно писать любую информацию.
// --- asset parameters --- mesh = btr90.mu название файла с 3D моделью (обычно model.mu, хотя никто не запрещает переименовывать свою модель) scale = 1 масштаб, если вы напутали с размерами или хотите создать несколько деталей разных размеров. Значение больше единицы увеличивает модель, меньше – уменьшает.
// --- node definitions --- здесь вам нужно проставить координаты точек крепления. Измерить координаты можно в 3D редакторе node_stack_top = 0.0, 0.5, 0.0, 0.0, 1.0, 0.0 верхняя точка крепления, в формате x, y, z, angx, angy, angz, size node_stack_bottom = 0.0, 0.5, 0.0, 0.0, 1.0, 0.0 нижняя точка крепления, в формате x, y, z, angx, angy, angz, size node_attach = 0.5, 0.0, 0.0, 1.0, 0.0, 0.0, 1
// --- editor parameters --- TechRequired = basicRocketry здесь можно указать в каком месте будет расположена ваша деталь в дереве науки entryCost = 1600 cost = 850 category = Structural здесь указывается категория в которой можно найти деталь в ангаре subcategory = 0 title = Платформа БТР название детали которое будет отображаться в игре manufacturer = KiRiK здесь указывается компания производитель description = Корпус от БТР-90. описание вашей детали которое отображается в ангаре
// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision attachRules = 1,1,1,1,0
// --- standard part parameters --- mass = 1 масса вашей детали dragModelType = default maximum_drag = 0.2 minimum_drag = 0.3 angularDrag = 2 crashTolerance = 6 breakingForce = 50 breakingTorque = 50 maxTemp = 2900
RESOURCE модуль который добавляет вашей детали ресурсы { name = LiquidFuel название ресурса amount = 180 количество maxAmount = 180 максимальное количество }
Сохраните ваш cfg файл. На этом все. Вы можете протестировать вашу деталь в игре, и сделать необходимые поправки.
|
||
|
Последнее изменение этой страницы: 2024-07-06; просмотров: 32; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.176 (0.01 с.) |