AviaSkins.Forums

AviaSkins.Forums (http://forum.aviaskins.com/index.php)
-   Первым делом, первым делом - самолеты (http://forum.aviaskins.com/forumdisplay.php?f=20)
-   -   Моды от Димы (http://forum.aviaskins.com/showthread.php?t=5439)

Vasya 02.08.2023 01:35

Вложений: 1
Очень нужно пояснение по именам коллизий в хит-боне!?
САСовские модели лепят как на японском конвеере,
но повреждаться они не желают... кроме крыльев, конечно.
Глотают по 5-7 снарядов в мотор и фюзеляж - и хоть бы хны.
Пытаюсь прописать коллизии в хит-бон, но всё равно чувствую,
что вписываю не правильно.
Мне всё равно как она приляпана внутри модели, главное что бы
они хоть как то заработали, потому как на код в классе 3Д не реагирует никак. :cry:
Ниже архив с джавой и хиер-химом., посмотри :rtfm: пожалуйста (!!!) -
насколько правильно повписывал коллизии?
:ups:

Dimas1999 02.08.2023 12:20

Вечером гляну.

Vasya 02.08.2023 16:29

Цитата:

Сообщение от Dimas1999 (Сообщение 225797)
Вечером гляну.

Спасибо!

Dimas1999 02.08.2023 18:32

Вложений: 1
Как можно проверить имена коллизий и при необходимости переименовать их без 3Д Макса?
Открываем Ноутпадом все меши с коллизиями (CF, Engine, Tail, Wing, Keel, Stab, Rudder, Vator, Arone, GearL2/R2 (обычно в них коллизии шасси), так же могут быть дополнительные невидимые меши с дополнительными коллизиями), пишешь в поиск (Ctrl + F) "Cocommon", тебя перенесёт в раздел с коллизиями. Там ищешь строки "Name", строки начинающиеся с одного x являются просто корпусом, обшивкой. Например, xengine1 - контур меша Engine1, типа кожух мотора. Такие коллизии идут в hier.him просто "CollisionObject xengine1".
Есть коллизии узлов и агрегатов, они идут ниже, их имена начинаются с "xx". Например, xxeng1case - коллизия картера двигателя. В hier.him они идут как "CollisionObject .xxeng1case". Тут уже добавляется точка "." перед названием. В меше и hitbone точки нет, в hier.him точка есть.
При пересохранении меша программой Mesh dump от NB79, перед именами коллизий добавляется точка, видимо, подхватывается из hier.him. Тогда я открываю меш Ноутпадом и через замену меняю .xx на xx.
Коллизии должны быть в мешах для каждого уровня повреждений (D0, D1, D2, D3), отличий между ними нет.

Не знаю под чем надо быть чтобы собрать вот так коллизии) Такое точно не будет правильно работать.

Vasya 02.08.2023 18:52

Цитата:

Сообщение от Dimas1999 (Сообщение 225800)
Как можно проверить имена коллизий и при необходимости переименовать их без 3Д Макса?
Открываем Ноутпадом все меши с коллизиями (CF, Engine, Tail, Wing, Keel, Stab, Rudder, Vator, Arone, GearL2/R2 (обычно в них коллизии шасси), так же могут быть дополнительные невидимые меши с дополнительными коллизиями), пишешь в поиск (Ctrl + F) "Cocommon", тебя перенесёт в раздел с коллизиями. Там ищешь строки "Name", строки начинающиеся с одного x являются просто корпусом, обшивкой. Например, xengine1 - контур меша Engine1, типа кожух мотора. Такие коллизии идут в hier.him просто "CollisionObject xengine1".
Есть коллизии узлов и агрегатов, они идут ниже, их имена начинаются с "xx". Например, xxeng1case - коллизия картера двигателя. В hier.him они идут как "CollisionObject .xxeng1case". Тут уже добавляется точка "." перед названием. В меше и hitbone точки нет, в hier.him точка есть.
При пересохранении меша программой Mesh dump от NB79, перед именами коллизий добавляется точка, видимо, подхватывается из hier.him. Тогда я открываю меш Ноутпадом и через замену меняю .xx на xx.
Коллизии должны быть в мешах для каждого уровня повреждений (D0, D1, D2, D3), отличий между ними нет.

Не знаю под чем надо быть чтобы собрать вот так коллизии) Такое точно не будет правильно работать.

Спасибо!
Про нотепад понятно.
Правильно ли имена коллизий из хиер-хим вписал в хит-бон?
Вписывал xxeng1oil1, xxeng1feed, xxeng1mag1, xxeng1sap, xxtank1 и т.д.
Может нужно без приставки "xxeng1"?
Потому как в дефолте таких приставок нет.
Или эти приставки обязательны?
--------------------
Можно ли на САС твою картинку вскрытия коллизий МБ-152 выложить?
Без указания авторства, конечно.
Чем ты вкрывал МБ-152?
Хочу попробовать увидеть :eek: коллизии у МБ155. :ok:
У меня есть меш-конвертр 1.18.
Открывал планер МБ-155, но меш роот не нашёл... :DONT_KNOW:

Dimas1999 02.08.2023 20:23

Вложений: 1
Открывал вот этой программой, в закрепе есть 2 версии (32 и 64 бита):
http://forum.aviaskins.com/showpost....&postcount=408

Программа интуитивно понятна, открывает самолёты, кабины, домики, машины и тд и тп, а так же их отдельные части.

Не открывает некоторые "кривые" меши (Кабины из клеймор пака, пришлось открывать все меши и менять [LOD] 0 на [LOD] 10 или прицелы ПБП-1 от WxTech, пришлось очищать меш от комментариев).

Картинку выложить можно.

После перерыва вдумчиво смотрю и вот что вижу.

Нашёл про управление вот что:
if(s.startsWith("xxcontrols1"))
Не нужна единичка на конце, надо "xxcontrols".
Но у 155 их нет вообще)

if(s.startsWith("xengine1")) заменить на
if(s.startsWith("xxeng1")) т.е. код распространяется на то, что начинается с "xeng1", если перевести на русский: если(строка.начинаетсяС("xeng1")).

if(s.endsWith("xxeng1case")) заменить на if(s.endsWith("case")): если(строка.заканчиваетсяС("case")).

if(s.startsWith("xxeng1cyl")) заменить на if(s.startsWith("cyls")), движок игры ожидает увидеть окончание коллижена cyl, а в планере cyls.

Что-то попутал со 152 и 155. У 155 проблем меньше, но в очертания не попадают, поэтому мотор "глотает" снаряды.

Vasya 02.08.2023 22:22

Вложений: 1
Так строка в хиер начинается с xengine1, а не с xxeng1.
И дальше повписывал точные назвиния коллизий.
Почему нужно писать по другому?
А вообще, если можно, исправь пожалуйста (!!!) :ups: мне 1 раз в хит-бон
МБ-152 - как должны быть правильно вписаны коллизии из хиер-хима.
(выше архив http://forum.aviaskins.com/showpost....postcount=1401 ).
МБ-155 попробую сделать по примеру.
Они оба на обстрел не реагируют, не дымят и не текут вообще. :cry:

Dimas1999 02.08.2023 22:39

Это блок повреждений мотора, все имена коллиженов начинаются с xxeng1 и заканчиваются cyls, case и тд и тп. В таком виде, как у тебя написан hitbone, движок ищет коллижены с именами xengine1xxeng1case, xengine1xxeng1cyl и тд и тп.
xengine1 - оболочка, её вписывают в конце hitbone, это для переключения видимых повреждений. Туда пишут все коллизии с именами начинающимися с x.
Код:

        if(s.startsWith("xeng"))
        {
            if(chunkDamageVisible("Engine1") < 2)
                hitChunk("Engine1", shot);
        } else


Vasya 02.08.2023 22:56

Цитата:

Сообщение от Dimas1999 (Сообщение 225807)
Это блок повреждений мотора, все имена коллиженов начинаются с xxeng1 и заканчиваются cyls, case и тд и тп. В таком виде, как у тебя написан hitbone, движок ищет коллижены с именами xengine1xxeng1case, xengine1xxeng1cyl и тд и тп.
xengine1 - оболочка, её вписывают в конце hitbone, это для переключения видимых повреждений. Туда пишут все коллизии с именами начинающимися с x.
Код:

        if(s.startsWith("xeng"))
        {
            if(chunkDamageVisible("Engine1") < 2)
                hitChunk("Engine1", shot);
        } else


Очень нужен пример - уже расписаный хит-бон для МБ-152... :ups:
Потому как я писал и без xengine1, но ничего не менялось с повреждениями.

Dimas1999 02.08.2023 23:11

Пока точно нет. Несколько вечеров экспериментирую с кодом повреждения баков.
Опознал флаги повреждения баков setTankState.
0 - нормальное состояние
1 - утечка
2 - светлый дым
3 - тёмный дым
4 - пожар без дыма
5 - пожар с дымом

Код:

            if(s.startsWith("xxtank"))
            {
                int k = s.charAt(6) - 49;
                if(getEnergyPastArmor(2.25F, shot) > 0.0F && World.Rnd().nextFloat() < 0.45F)// 2.25 - броня бака, 0.45 - вероятность пробития
                {
                    if(FM.AS.astateTankStates[k] == 0)
                    {
                        debuggunnery("Fuel Tank (" + k + "): Pierced..");
                        FM.AS.hitTank(shot.initiator, k, 1);
                        FM.AS.doSetTankState(shot.initiator, k, 1);
                    }
                    if(World.Rnd().nextFloat() < 0.02F || shot.powerType == 3 && World.Rnd().nextFloat() < 0.4F)// 0.02 - вероятность возгорания при любом попадании или при пробитии бака боеприпасом типа 3 вероятность возгорания 0.4
                    {
                        FM.AS.hitTank(shot.initiator, k, 4);// 4 - пожар без дыма
                        debuggunnery("Fuel Tank (" + k + "): Hit..");
                    }
                }
                return;
            }

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

Vasya 03.08.2023 00:24

Цитата:

Сообщение от Vasya (Сообщение 225808)
Очень нужен пример - уже расписаный хит-бон для МБ-152... :ups:
Потому как я писал и без xengine1, но ничего не менялось с повреждениями.

Цитата:

Сообщение от Dimas1999 (Сообщение 225809)
Пока точно нет. .............

Очень жаль. :cry:
:eek:
----------------------------------
Но СПАСИБО!!! за пояснения. :good:
После коррекции дм улучшилась. :ok:
МБ-152 стал иногда дымить, даже гореть баком и вероятно
отключать рули управления, пилот прыгает даже при очереди из МГ-17.
Но для горения МБ-152 нужно всадить штук 10 снарядов из МЖФФ.
Наверное потому что все коллизии смешаны в кучу и друг друга перекрывают.

Dimas1999 03.08.2023 00:47

Вложений: 5
Эксперимент.
1. Бак горит, состояние 4.
2. Горящий бак успел повредить соседний бак, огонь уже пропал, состояние 3.
3. Протектор загерметизировал текущий бак.
4. Дымящийся бак стал меньше дымить, состояние 2.
5. Бак перестал дымить и теперь он течёт, состояние 1.
Позже бак перестал течь, состояние 0.

К сожалению, игре не возможно определить от чего потёк бак и протектор ремонтирует любую течь. Зато отсюда получается багофича. Скорее всего, всё топливо успеет сгореть или вытечь пока бак "ремонтируется". Т.к. нет топлива, больше шансов на прекращение пожара (в жизни). Теперь есть шанс спланировать на самолёте до своей территории.
Для теста поставил 100% воспламеняемость бака, 10% вероятность "ремонта" бака в каждом состоянии и 14% вероятность перекидывания огня. С предыдущими вариантами кода получались интересные варианты, когда один бак тух, но в последнюю секунду огонь перебрасывался на соседний бак и от него снова загорался первый бак. Иногда дымящийся бак снова вспыхивал. Надо играть с вероятностью затухания, чтобы код из базового класса вызывал снова пожар.
Случайное затухание и возгорание ещё прописано в базовых классах, но с такими настройками дымление никогда у меня ещё не пропадало.
При тестах стоит бесконечный запас топлива, иначе, пока потухнет бак и прекратится течь, топлива может уже не остаться.
Взрыв бака зарыт где-то в базовых классах, иногда бак почти сразу взрывается, а иногда можно летать несколько минут.


Код:

    public void rareAction(float paramFloat, boolean paramBoolean)
    {
        super.rareAction(paramFloat, paramBoolean);
        if(paramBoolean)
        {
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 1, 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 0, 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[2] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 3, 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[3] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 2, 1);

            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] == 1 && World.Rnd().nextFloat() < 0.1F)
                ((FlightModelMain) (super.FM)).AS.repairTank(0);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] == 1 && World.Rnd().nextFloat() < 0.1F)
                ((FlightModelMain) (super.FM)).AS.repairTank(1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[2] == 1 && World.Rnd().nextFloat() < 0.1F)
                ((FlightModelMain) (super.FM)).AS.repairTank(2);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[3] == 1 && World.Rnd().nextFloat() < 0.1F)
                ((FlightModelMain) (super.FM)).AS.repairTank(3);

            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] == 2 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 0, ((FlightModelMain) (super.FM)).AS.astateTankStates[0] - 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] == 2 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 1, ((FlightModelMain) (super.FM)).AS.astateTankStates[1] - 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[2] == 2 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 2, ((FlightModelMain) (super.FM)).AS.astateTankStates[2] - 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[3] == 2 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 3, ((FlightModelMain) (super.FM)).AS.astateTankStates[3] - 1);

            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] == 3 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 0, ((FlightModelMain) (super.FM)).AS.astateTankStates[0] - 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] == 3 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 1, ((FlightModelMain) (super.FM)).AS.astateTankStates[1] - 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[2] == 3 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 2, ((FlightModelMain) (super.FM)).AS.astateTankStates[2] - 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[3] == 3 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 3, ((FlightModelMain) (super.FM)).AS.astateTankStates[3] - 1);

            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] == 4 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 0, ((FlightModelMain) (super.FM)).AS.astateTankStates[0] - 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] == 4 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 1, ((FlightModelMain) (super.FM)).AS.astateTankStates[1] - 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[2] == 4 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 2, ((FlightModelMain) (super.FM)).AS.astateTankStates[2] - 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[3] == 4 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 3, ((FlightModelMain) (super.FM)).AS.astateTankStates[3] - 1);

            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] == 5 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 0, ((FlightModelMain) (super.FM)).AS.astateTankStates[0] - 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] == 5 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 1, ((FlightModelMain) (super.FM)).AS.astateTankStates[1] - 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[2] == 5 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 2, ((FlightModelMain) (super.FM)).AS.astateTankStates[2] - 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[3] == 5 && World.Rnd().nextFloat() < 0.1F)
                                ((FlightModelMain) (super.FM)).AS.setTankState(this, 3, ((FlightModelMain) (super.FM)).AS.astateTankStates[3] - 1);


Dimas1999 04.08.2023 23:17

Обновил сборки ЛаГГ и Ла.
Пошлифовал ещё код возгорания бака. Жду отзывы и предложения.
Для пятибачных вариантов с вероятность 0.0196 огонь может перекинуться на соседнюю консоль. Имитация пятого фюзеляжного бака, 0.14*0.14=0.0196
У ЛаГГов подправил дальность лодов, теперь крайний лод виден до 6 км, как и у серии Ла. Так же добавил углы отклонения рулей по ТО.
У Ла-5Ф/ФН не было хуков утечки топлива в крыле, добавил их.

ЛаГГ
https://drive.google.com/file/d/1yML...ew?usp=sharing

Ла
https://drive.google.com/file/d/1Ojq...ew?usp=sharing

Grog 05.08.2023 00:23

Спасибо Дима, за труды твои!:beer:

Dimas1999 05.08.2023 18:52

Кто пробовал сборку Ла-5, у меня вопрос к вам. Как вам новые пилоты от Ранверса (https://www.sas1946.com/main/index.p...c,69518.0.html), которых я поставил туда? Есть ли с ними какие-либо проблемы? У них довольно много полигонов, могут быть некоторые проблемы.

Dimas1999 06.08.2023 00:53

Вложений: 2
В очередной раз доработал ДМ для Яков.
У всех "жидкостных" Яков:
поменял "самопальный" коллижен нагнетателя на вариант от МиГ-3;
поставил 2 магнето от МиГ-3;
сделал элементы топливной системы Fuel и Feed, взял от bf-109.

Для опытных моделей с М-82 поставил коллижены мотора от Ла-5.

Сделал код горения бака аналогично моделям КБ Лавочкина.
Як-1 до 102 серии не имели системы нейтрального газа, в моде теперь тоже его нет. Вероятность воспламенения от зажигательного снаряда 0.955. Цифру взял у японских самолётов.
Код:

if(shot.powerType == 3 && World.Rnd().nextFloat() < 0.995F)
Нейтральный газ есть только у Як-1Б 136 серии (стандартный Як-1Б от ОМа).
У моделей с нейтральным газом вероятность пожара 0.25. Цифра от стандартного Ла-5.
Код:

if(shot.powerType == 3 && World.Rnd().nextFloat() < 0.25F)
Убрал небольшую вероятность воспламенения от любой пули.
Як-1 69 серии, Як-7В, Як-7УТИ не имеют так же протектора бака.

Убрал лобовое бронестекло у Як-1Б 99 серии, все улучшения внесли со 110 серии.
Так же у Як-1Б 99 серии убрал обтекатели выхлопных патрубков, их ввели со 106 серии.

Произвёл корректировку боезапаса у моделей Як-1.

Поправил ЛОДы, теперь крайний ЛОД виден до 6 км, было 2,6 км.

https://drive.google.com/file/d/1F88...ew?usp=sharing

andrey65 06.08.2023 05:38

Цитата:

Сообщение от Dimas1999 (Сообщение 225828)
Кто пробовал сборку Ла-5, у меня вопрос к вам. Как вам новые пилоты от Ранверса (https://www.sas1946.com/main/index.p...c,69518.0.html), которых я поставил туда? Есть ли с ними какие-либо проблемы? У них довольно много полигонов, могут быть некоторые проблемы.

У меня изначально при появления этого мода были проблемы - часть самолетов не отражалась, тормозило. Убрал и больше не пробовал. Вчера полетал на ФН раннеем - вроде все нормально, ни тормозов, ни прчеих проблем пока не увидел. Попробую еще. Но вопрос возник - у меня стоит мод эффектов - https://www.sas1946.com/main/index.p...c,70438.0.html. Он нормально работает с твоими мод-паками?

andrey65 06.08.2023 06:10

Вложений: 1
На Ла-7Б-20 вот так отображается рамка РПК. В БАТ.

Vasya 06.08.2023 07:42

Скачал обновлённые Яки - Большое Спасибо! :good:
--------------
Начал вносить правки.
Для крыльев без протектора баков код пока сделал таким:
Код:

            if(s.startsWith("xxtank"))
            {
                int k = s.charAt(6) - 49;
                if(getEnergyPastArmor(0.8F, shot) > 0.0F && World.Rnd().nextFloat() < 0.45F)
                {
                    if(FM.AS.astateTankStates[k] == 0)
                    {
                        debuggunnery("Fuel Tank (" + k + "): Pierced..");
                        FM.AS.hitTank(shot.initiator, k, 1);
                        FM.AS.doSetTankState(shot.initiator, k, 1);
                    }
                    if(World.Rnd().nextFloat() < 0.1F || shot.powerType == 3 && World.Rnd().nextFloat() < 0.6F)
                    {
                        FM.AS.hitTank(shot.initiator, k, 4);
                        debuggunnery("Fuel Tank (" + k + "): Hit..");
                        FM.AS.doSetTankState(shot.initiator, k, 5);
                    }
                }
                return;
            }

Резко уменьшена сила для пробития.
Оставлена возможность зажигать баки разными боеприпасами.
По твоему пояснению :good: добавил состояние горения. :ok:
Буду тестить вечером.
Переброску огня буду убирать у двубачных моделей.
Мне кажется, что загореться бак правого крыла от левого не очень может.
И вопрос - в классах кокпитов законтрен код limits6DoF -
так правильно? - или это временно? :I'm_thinking:
---------------------------
Так же готовлю Я-7Б-М-106, который был в реале(пару машин) под твою сборку.
Нужно проверить по коду с последним общим обновлением.
Для Як-1 улучшенный поменяю планер на "дефолтный" Як-1. :ok:

Molva 06.08.2023 09:58

Вложений: 1
Цитата:

Сообщение от andrey65 (Сообщение 225832)
На Ла-7Б-20 вот так отображается рамка РПК. В БАТ.

В текстуре нет альфа-канала для этого элемента.

Dimas1999 06.08.2023 11:01

Цитата:

Сообщение от andrey65 (Сообщение 225831)
У меня изначально при появления этого мода были проблемы - часть самолетов не отражалась, тормозило. Убрал и больше не пробовал. Вчера полетал на ФН раннеем - вроде все нормально, ни тормозов, ни прчеих проблем пока не увидел. Попробую еще. Но вопрос возник - у меня стоит мод эффектов - https://www.sas1946.com/main/index.p...c,70438.0.html. Он нормально работает с твоими мод-паками?

В этой сборке стоят пилоты от Ранверса, они имеют очень много полигонов в одном меше, ставил для эксперимента.
Эффекты не должны никак влиять. Сами эффекты могут быть косячными.

Цитата:

Сообщение от Vasya (Сообщение 225833)
Резко уменьшена сила для пробития.
Оставлена возможность зажигать баки разными боеприпасами.
По твоему пояснению :good: добавил состояние горения. :ok:
Буду тестить вечером.
Переброску огня буду убирать у двубачных моделей.
Мне кажется, что загореться бак правого крыла от левого не очень может.
И вопрос - в классах кокпитов законтрен код limits6DoF -
так правильно? - или это временно? :I'm_thinking:

Пояснение по материнским классам Яков, основные отличия в ДМ.
YAK - протектор + нейтральный газ.
YAK_1x - только протектор, используется всеми Як-1 до 102 серии.
YAK_1Lx - нет протектора и нейтрального газа, для облегчённого Як-1 69 серии и Як-7УТИ.
YAK_7vx - для Як-7В, нет протектора, нейтрального газа, нет убираемого шасси.
Нашёл ещё ошибку, у Яков в разных моделях разная нумерация баков, где-то 1, 2, 3, 4, а где-то 3, 1, 2, 4.
Где у меня на двухбачных моделях переброска огня стоит?
6 ДОФ в БАТе как-то иначе реализован, поэтому много моих модов там не работало.

Vasya 06.08.2023 12:14

Приеду домой где то через 1.5-2 часа, буду смотреть пристальнее.
С утра только с пол-часа посмотрел.
Вчера причёсывал основной класс, а ночью увидел обновление.
После сравнения классов напишу вопросы.

andrey65 06.08.2023 13:38

Цитата:

Сообщение от Molva (Сообщение 225834)
В текстуре нет альфа-канала для этого элемента.

И что сделать?

andrey65 06.08.2023 13:40

Цитата:

Сообщение от Dimas1999 (Сообщение 225835)
В этой сборке стоят пилоты от Ранверса, они имеют очень много полигонов в одном меше, ставил для эксперимента.
Эффекты не должны никак влиять. Сами эффекты могут быть косячными.

Эффекты очень нравятся. А вот пилоты - на ранних Ла-5 тоже пилот в форме с погонами, введеными с 43 года.. Красиво - но уж тогда б проще в голубом комбезе, чтоб знаки различия вообще не понять..

Molva 06.08.2023 13:45

Цитата:

Сообщение от andrey65 (Сообщение 225837)
И что сделать?

Заменить Skin1o.tgb в папке SUMMER.

Dimas1999 06.08.2023 13:52

Скин поправлю. Пилотов, пожалуй поставлю от Барнеси, у него полигонов меньше.

andrey65 07.08.2023 18:11

Поставил пак Яков. Впечатлен работой - ну очень здорово! Погонял несколько выборочно. У Як-9П не вращается винт - вообще, хотя самолет летает. Очень красивый дымок при запуске... а винт недвижим.

Dimas1999 07.08.2023 19:15

Исправил.

Есть такой вопрос. Насколько живучее цельнометаллический Як-9П по сравнению с Як-9У? Есть ли смысл для него слегка увеличить в hitbone прочность фюзеляжа?
Насколько более живучее металлическое хвостовое оперение у Як-7 и облегчённых Як-1?
Насколько более живучий Ла-5ФН/Ла-7 с металлическим лонжероном крыла, по сравнению с Ла-5 с деревянным лонжероном?

Dimas1999 08.08.2023 00:09

Поправил все найденные ошибки и неточности.
Ещё в прошлый раз добавил возможность повреждения прицела.
Убрал код пробития топливной аппаратуры при попадании по картеру, т.к. теперь есть отдельные коллизии.
Добавил ещё один матерински класс YAK_7x. В нём уменьшена в 2 раза вероятность повреждения руля направления. Такое же изменение было внесено для Як-1 (YAK_1x и YAK_1Lx). У них был дублированный трос управления РН, у Як-7 до 38 серии, у Як-1 до модели Б. В моде 99 серия "Б" тоже имеет "двойной трос"(вероятно, так и было в реальности), т.к. все изменения внесли только к 110 серии и так надо меньше разных классов плодить.

https://drive.google.com/file/d/1OVK...ew?usp=sharing

Vasya 08.08.2023 01:36

Цитата:

Сообщение от Dimas1999 (Сообщение 225851)
Исправил.

Есть такой вопрос. Насколько живучее цельнометаллический Як-9П по сравнению с Як-9У? Есть ли смысл для него слегка увеличить в hitbone прочность фюзеляжа?
Насколько более живучее металлическое хвостовое оперение у Як-7 и облегчённых Як-1?
Насколько более живучий Ла-5ФН/Ла-7 с металлическим лонжероном крыла, по сравнению с Ла-5 с деревянным лонжероном?

Если Я-9П имел тот же фюзеляж из хромансилевых труб - то проц. на 15-20.
Качество сборки получше и дюралевое крыло как большой плюс.
По оперению Як-7: наверное немного живучее, думаю 1-2 снаряда
в 20мм не покрошат в щепу рули.
Смотря какое дерево применялось.
В 42 массово сосну ставили - но для снарядов 20 мм. сосна и бярьоза
примерно одинаково хрупкие.
Если есть колижены лонжеронов, то металлическим я бы увеличил
поувер дамажа на 30-40 проц.
Як-1/9 сам по себе по старых технологиях был сделан, иногда это плюс.
Перебить все хромансилевые трубки что бы переломить фюзеляж -
это несколько снарядов 30 мм. М-Гессос.
А вот порвать на лоскуты фанерную обшивку крыла очередью фугасных
снарядов - запросто.
Читал в мемуарах, что прыгали когда крыло было раздето.
А в 42-43 годах нормальной смолы не было склеивать/пропитывать
листы фанерной обшивки. Смола до войны шла из Германии.
Поэтому качество крыльев Як/Лагг было плохенькое.
Думаю, что сломать фюзеляж Яка/Лагга и Мессера было примерно одинаково.
А вот крыля из дюраля немного получше.

Fagot 09.08.2023 11:03

Вложений: 1
У меня у одного такая оказия на старте? Як-7УТИ

andrey65 09.08.2023 13:08

Цитата:

Сообщение от Fagot (Сообщение 225857)
У меня у одного такая оказия на старте? Як-7УТИ

нет, не у одного...

Dimas1999 09.08.2023 13:38

У других Як-7 так же?

andrey65 09.08.2023 14:28

Нет. У остальных нормально

Vasya 09.08.2023 18:04

Цитата:

Сообщение от Dimas1999 (Сообщение 225859)
У других Як-7 так же?

Весной было так:
Код:

    public static void moveGear(HierMesh hiermesh, float f, float f1, float f2)
    {
        hiermesh.chunkSetAngles("GearL4_D0", 0.0F, Math.max(-f * 1500F, -60F), 0.0F);
        hiermesh.chunkSetAngles("GearR4_D0", 0.0F, Math.max(-f1 * 1500F, -60F), 0.0F);
        hiermesh.chunkSetAngles("GearL2_D0", 0.0F, -82.5F * f, 0.0F);
        hiermesh.chunkSetAngles("GearR2_D0", 0.0F, -82.5F * f1, 0.0F);
        hiermesh.chunkSetAngles("GearL3_D0", 0.0F, -85F * f, 0.0F);
        hiermesh.chunkSetAngles("GearR3_D0", 0.0F, -85F * f1, 0.0F);
        Aircraft.ypr[0] = Aircraft.ypr[1] = Aircraft.ypr[2] = 0.0F;
        Aircraft.xyz[2] = Aircraft.cvt(f, 0.0F, 1.0F, 0.0F, 0.1F);
        hiermesh.chunkSetLocate("poleL_D0", Aircraft.xyz, Aircraft.ypr);
        hiermesh.chunkSetLocate("poleR_D0", Aircraft.xyz, Aircraft.ypr);
    }

    protected void moveGear(float f, float f1, float f2)
    {
        moveGear(hierMesh(), f, f1, f2);
    }


Vasya 11.08.2023 01:18

Дополнение к моду Яков от Димаса
 
Вложений: 3
.........................
Альтернативный вариант основных классов Яков, в которых
корректировал код для повреждения/горения топливных баков.
Код:

            if(s.startsWith("xxtank"))
            {
                int k = s.charAt(6) - 49;
                if(getEnergyPastArmor(1.45F, shot) > 0.0F && World.Rnd().nextFloat() < 0.5F)
                {
                    if(FM.AS.astateTankStates[k] == 0)
                    {
                        debuggunnery("Fuel Tank (" + k + "): Pierced..");
                        FM.AS.hitTank(shot.initiator, k, 1);
                        FM.AS.doSetTankState(shot.initiator, k, 1);
                    }else
                    if(FM.AS.astateTankStates[k] == 1)
                    {
                        debuggunnery("Fuel Tank (" + k + "): Pierced..");
                        FM.AS.hitTank(shot.initiator, k, 2);
                        FM.AS.doSetTankState(shot.initiator, k, 2); 
                    }
                    if(World.Rnd().nextFloat() < 0.008F || shot.powerType == 3 && World.Rnd().nextFloat() < 0.4F)
                    {
                        debuggunnery("Fuel Tank (" + k + "): Hit..");
                        FM.AS.hitTank(shot.initiator, k, 4);                       
                        FM.AS.doSetTankState(shot.initiator, k, 3);
                    }
                }
                return;
            }

В разделе if(s.startsWith("xxtank")) изменил цифры пробития и
добавил возможность дымления.
Для Яков с двумя баками убрал код переброски огня на соседние баки.
Так же подвигал цифры пробития/горения/потухания для Яков
без нейтрального газа.
Добавил все плюшки от Димы от последней сборки Яков 4 сентября.
Добавлены другие модели часть фантазия, часть из моего
старого мода Яков YAK_MOD_FM_NEW.
В них больший боезапас и другое вооружение из моего мода
вооружения !!!!000_A_NEW_GARMATY_4.12.2++.
--------------
Ниже архив с хешами/классами на тест. :ok:
Отзывы приветствуются. :law:

Vasya 11.08.2023 07:21

Цитата:

Сообщение от Dimas1999 (Сообщение 225835)
.............................
Где у меня на двухбачных моделях переброска огня стоит?
6 ДОФ в БАТе как-то иначе реализован, поэтому много моих модов там не работало.

YAK_1x и YAK_1Lx:
Код:

// Код перекидывания огня на соседний бак, вероятность 14%
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 1, 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 0, 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[2] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 3, 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[3] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 2, 1);

В ЯК-1 топлива 305 кг.
Думаю там всего 2 бака.
Мысль: если убрать код переброски огня на соседний бак в основном
классе и добавлять по необходимости :ok: в те модели(в их классы),
где есть дополнительные консольные баки. :I'm_thinking:
----------------------------
В БАТе в большинстве классов такой же 6Доф вписан. :eek:

Dimas1999 11.08.2023 23:20

У всех Як-1 было 4 бака, суммарно 408 литров (Самолёт Як-1. Техническое описание. Воениздат НКО СССР 1942, стр 88). 408 литров * 0.76 кг/литр = 310 кг.
У БАТ где-то не стыкуется код в базовых классах.
Про горение и затухание. Меня тоже не всё устраивает. На 20 серии Як-1 пробовали систему нейтрального газа, похожую на ЛаГГ-3, когда закачивались охлаждëнные выхлопные газы. Система была не доработана, баки распирало, больше её не ставили. Позже испытывали другую систему с баллоном с углекислотой, содержимое которого заполняло баки по мере расхода топлива. За кабиной ставили баллон ёмкостью 2 л, давление CO2 - 150 ат. (Самолёт Як-1. Техническое описание. Воениздат НКО СССР 1942, стр 95) Как мне кажется, при пожаре газ довольно быстро закончится, его основная задача не дать загореться парам бензина при попадании зажигательного снаряда. В той же книге есть схема отвода выхлопных газов для заполнения баков. В мурзилке есть информация, что со 102 серии начали ставить систему НГ на основе выхлопных газов.
У Як-9 была система заполнения баков выхлопными газами. (Самолёт Як-9. Временное техническое описание. НКАП СССР 1944, стр 50)
Як-3 имел систему, как у Як-9. Документального подтверждения не нашёл, только из мурзилок.
Як-7 с 14 серии имел систему нейтрального газа. По данным мурзилок, был баллон с CO2.

Про прочность самолётов.
Из тех же книг выяснил:
Як-1 - деревянные лонжероны;
Як-9 - металлические лонжероны.
Из мурзилок:
Як-3 - металлические лонжероны;
Як-7 - деревянные лонжероны, вероятно, поздние имели по типу Як-9 металлические.

tarakan67 12.08.2023 11:09

Материал лонжеронов никак не влиял на прочность самолётов. Прочность рассчитывают исходя из действующих нагрузок, а не из материала. Другое дело, что деревянные силовые элементы имея ту же прочность, что и металлические, были гораздо объёмнее и тяжелее металлических, но одновременно и более дешевле металлических

andrey65 12.08.2023 11:59

Цитата:

Сообщение от tarakan67 (Сообщение 225868)
Материал лонжеронов никак не влиял на прочность самолётов. Прочность рассчитывают исходя из действующих нагрузок, а не из материала. Другое дело, что деревянные силовые элементы имея ту же прочность, что и металлические, были гораздо объёмнее и тяжелее металлических, но одновременно и более дешевле металлических

Опередил. Тоже хотел сказать про это. Но при попаданиях повреждения все же были разными. Вот только как в Иле это рассчитать...


Текущее время: 13:14. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot