AviaSkins.Forums

AviaSkins.Forums (http://forum.aviaskins.com/index.php)
-   W.I.P. (http://forum.aviaskins.com/forumdisplay.php?f=38)
-   -   Mitsubishi Ki-30 (http://forum.aviaskins.com/showthread.php?t=5315)

tvister 04.11.2019 01:33

Сделал полностью крыло, с коллиженами и капами. А модель повреждения работает по прежнему неправильно. Отстреливаю законцовку, законцовка не отваливается, просто исчезает, а КАП-заглушка не появляется. Правда падает самолет правильно, кувыркаясь через поврежденное крыло.
Или чего то с классами намудрил или еще чего то, чего я не знаю...

tvister 05.11.2019 01:05

Вложений: 1
Добавил коллижены баков, теперь горит нормально.

Vasya 05.11.2019 04:00

Цитата:

Сообщение от tvister (Сообщение 202516)
Добавил коллижены баков, теперь горит нормально.

Поздравляю! :good:
Уже вижу и винт поменялся. :ok:

Mixx 06.11.2019 15:16

Tvister!
Хорошо получается,молодец. Как там у тебя с моделью повреждений?

tvister 06.11.2019 21:05

Вложений: 1
Тихонько движемся вперед. Василий, это не винт новый, это добавил Hidden. Переделал и переименовал коллижены лонжеронов крыла, при повреждении стала появляться заглушка крыла (на скрине черновой вариант). Видимо в модели все взаимосвязанно, нужно полностью собрать модель, потом можно говорить о каких то багах.

tvister 10.11.2019 14:37

По каким причинам в момент повреждения могут исчезать части D3 ? D1-D2 отображаются нормально.

Asura 11.11.2019 13:27

D3 не используется

tvister 11.11.2019 18:40

Цитата:

Сообщение от Asura (Сообщение 202718)
D3 не используется

Тогда зачем у модели эти части?:I'm_thinking:

Asura 12.11.2019 11:40

Цитата:

Сообщение от tvister (Сообщение 202735)
Тогда зачем у модели эти части?:I'm_thinking:

Это есть только в старых моделях. Наверно были планы, но потом от них отказались. В классе повреждений D3 не фигурирует. И очень часто D3 это клон D2. В общем он не нужен от слова "совсем" :)

tvister 12.11.2019 22:39

Ясно, спасибо за объяснения. Мой пример, D3A1 имеет в своём составе части D3, и в фрагменте кода отвечающем за повреждения D3 тоже встречается.
Код:

            } else if (string.startsWith("xxspar")) {
                if ((string.endsWith("t1") || string.endsWith("t2")
                    || string.endsWith("t3") || string.endsWith("t4"))
                    && chunkDamageVisible("Tail1") > 2
                    && getEnergyPastArmor((3.5F
                                          / (float) Math.sqrt(v1.y * v1.y
                                                              + v1.z * v1.z)),
                                          shot) > 0.0F) {
                    debugprintln(this, "*** Tail1 Spars Broken in Half..");
                    nextDMGLevels(1, 2, "Tail1_D3", shot.initiator);
                }
                if ((string.endsWith("li1") || string.endsWith("li2")
                    || string.endsWith("li3") || string.endsWith("li4"))
                    && chunkDamageVisible("WingLIn") > 2
                    && getEnergyPastArmor(3.5F * World.Rnd().nextFloat(1.0F,
                                                                      1.2F),
                                          shot) > 0.0F) {
                    debugprintln(this, "*** WingLIn Spars Damaged..");
                    nextDMGLevels(1, 2, "WingLIn_D3", shot.initiator);
                }
                if ((string.endsWith("ri1") || string.endsWith("ri2")
                    || string.endsWith("ri3") || string.endsWith("ri4"))
                    && chunkDamageVisible("WingRIn") > 2
                    && getEnergyPastArmor(3.5F * World.Rnd().nextFloat(1.0F,
                                                                      1.2F),
                                          shot) > 0.0F) {
                    debugprintln(this, "*** WingRIn Spars Damaged..");
                    nextDMGLevels(1, 2, "WingRIn_D3", shot.initiator);
                }
                if ((string.endsWith("lm1") || string.endsWith("lm2")
                    || string.endsWith("lm3") || string.endsWith("lm4"))
                    && chunkDamageVisible("WingLMid") > 2
                    && getEnergyPastArmor(3.5F * World.Rnd().nextFloat(1.0F,
                                                                      1.2F),
                                          shot) > 0.0F) {
                    debugprintln(this, "*** WingLMid Spars Damaged..");
                    nextDMGLevels(1, 2, "WingLMid_D3", shot.initiator);

Это не все части, есть еще. Попробую сделать все по образцу "Вел", не получится, уберу все D3 и поищу коды без этих частей.

Asura 14.11.2019 13:26

D3 просто на D2 поменять. У Вэла они одинаковые в модели. Видно что то городили для Перл Харбора, но не доделали.

tvister 14.11.2019 22:16

Вложений: 2
Вчера доделал модель повреждений, осталось добавить несколько КАП-заглушек. Однако поведение модели не изменилось, как и раньше модель не "рассыпается" при критических повреждениях. Отваливающиеся части просто исчезают. Добавил атрибут Hidden, перестали появляться и КАП-ы. А так плоскости могут повреждаться (исчезают), самолет горит, может взорваться. Есть видимые течи из баков, видны пробоины D-1,2. Часто повреждается двигатель и тяги управления. Можно убить пилота и стрелка. Совершенно неадекватно себя ведет летная модель повреждения. Самолет может завалиться на отстреленную плоскость, а может и на противоположную где то 50/50. Может лететь без хвоста. Думаю дорисовать более-менее удовлетворительные скины, добавить оверлеи и выставить бета-версию в состоянии "как есть". Может быть тогда найдутся ошибки в моей работе. Части D3 удалю.

tvister 21.11.2019 21:43

Коллеги, подскажите плз, за что отвечает атрибут Separable в hier.him? Не в нем ли все проблемы Энн? :I'm_thinking: Только сейчас его заметил.

tarakan67 21.11.2019 23:57

Цитата:

Сообщение от tvister (Сообщение 202965)
Коллеги, подскажите плз, за что отвечает атрибут Separable в hier.him? Не в нем ли все проблемы Энн? :I'm_thinking: Только сейчас его заметил.

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

tvister 22.11.2019 16:23

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

Сообщение от tarakan67 (Сообщение 202969)
Этот параметр ставится перед теми мешами, которые могут отделяться при повреждениях, либо ещё когда-нибудь: блистеры, рулевые поверхности и т. д.

То есть то что я искал. Об этом параметре нигде не указывается. Спросил на САС-е, там Бизон подтвердил о значении этого атрибута. Всем спасибо за помощь. Погонял исправленную модель.
Понял: 1 много косяков с двусторонними мешами
2 нужно переделать кап-ы
3 забыл о модели повреждений колес, элеронов и закрылков.

tvister 01.12.2019 11:43

Коллеги, подскажите плз. как в МАХ-е ориентирован пулемет, стрелка наблюдателя. Или ткните носом в методу расшифровки координат в хиере.
Опять перестал стрелять задний пулемет. Вроде ничего не менял, но факт, пулемет вместо стрельбы задирается вверх, крутит стволом куда угодно но не в сторону цели. Алгоритм наведения пулемета в классах взял стандартный, он почти везде одинаков. Думаю проблема в ориентации. Модели извлеченные меш-конвертором, в блендере, имеют разную ориентацию.:I'm_thinking:
Обточил модель до более менее играбельного состояния. Все вышеперечисленные баги, кроме заднего пулемета, поправил. КАП-ы, внутренние части поврежденной модели отображаются нормально, без "прозрачности" с изнаночных поверхностей. Все нормально повреждается, горит, отваливается, падает. В классах к назначению самолета, горизонтальный бомбардировщик, добавил штурмовик. Во первых японцы сами так считали, во вторых ЗНАЧИТЕЛЬНО выросла точность бомбометания. Никак не займусь скинами и оверлеями.

Asura 01.12.2019 12:39

Вложений: 1
Верхнее - поворот, нижнее - вертикальное перемещение

Motorhead 01.12.2019 12:54

Цитата:

Сообщение от tvister (Сообщение 202977)
3 забыл о модели повреждений колес, элеронов и закрылков.

Интересно, а можно будет сделать так, чтобы при повреждении закрылков был возможен их несимметричный выпуск? Сейчас есть повреждение шасси, при котором выпускается только одна стойка. И повреждение закрылков, при котором они вообще не работают, оба. Вот бы все это хозяйство совокупилось друг с другом :) То есть повреждение закрылков раздельное, при посадке можно получить неприятный сюрприз, один закрылок выпустился, а другой заклинен, как иногда было в реальности.

Цитата:

Сообщение от tvister (Сообщение 203214)
Никак не займусь скинами и оверлеями.

Бортовые номера будут рабочие?

tvister 02.12.2019 00:22

Цитата:

Сообщение от Asura (Сообщение 203219)
Верхнее - поворот, нижнее - вертикальное перемещение

Благодарю за отзыв, но это несколько не та информация. Меня больше интересует положение (углы поворотов) частей Turret1A_D0 и Turret1B_D0.
На примере кораблей, если ствол Gun (Turret1B_D0) не повернуть по оси Х на -90 градусов, нормальной вертикальной наводки не будет. Башню Head (Turret1A_D0) для стрельбы назад, нужно развернуть в положение 180 градусов по оси Z, но учитывать это в файле ship/ini. Как крутить ствол и башню у самолетов, для стрельбы назад?

Цитата:

Сообщение от Motorhead (Сообщение 203219)
Интересно, а можно будет сделать так, чтобы при повреждении закрылков был возможен их несимметричный выпуск?

Теоретически можно, но нужен хороший специалист по яве, увы это не я.
Цитата:

Сообщение от Motorhead (Сообщение 203219)
Бортовые номера будут рабочие?

Хочу их сделать, но с обещаниями буду осторожен. Никогда ими не занимался.

Asura 02.12.2019 14:45

Цитата:

Сообщение от tvister (Сообщение 203229)
Меня больше интересует положение (углы поворотов) частей Turret1A_D0 и Turret1B_D0.

Углы поворотов турелей прописываются в классе самолета и классе кабины стрелка.

Вот например от У-2, с зонами ограничений (чтобы АИ стрелок себе хвост не отстрелил)

Код:

    public boolean turretAngles(int i, float af[])
    {
        boolean flag = super.turretAngles(i, af);
               
        if(af[0] < -35F)
        {
            af[0] = -35F;
            flag = false;
        } else
        if(af[0] > 35F)
        {
            af[0] = 35F;
            flag = false;
        }
        float f = Math.abs(af[0]);
        if(f < 10F)
        {
            if(af[1] < -5F)
            {
                af[1] = -5F;
                flag = false;
            }
        } else
        if(af[1] < -15F)
        {
            af[1] = -15F;
            flag = false;
        }
        if(af[1] > 30F)
        {
            af[1] = 30F;
            flag = false;
        }
        if(!flag)
            return false;
        float f1 = af[1];
        if(f < 2.0F && f1 < 17F)
            return false;
        if(f1 > -5F)
            return true;
        if(f1 > -12F)
        {
            f1 += 12F;
            return f > 12F + f1 * 2.571429F;
        } else
        {
            f1 = -f1;
            return f > f1;
        }
    }



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

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