AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Моды для Ил-2 > Первым делом, первым делом - самолеты > W.I.P.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.12.2019, 21:51   #101
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Эх, это то же не то. Это совершенно верно, код регулирующий углы обстрела задней огневой точки. Вот что меня интересует на примере блендера. Для того что бы пулемет кое как наводился пришлось повернуть его по Z на 180 градусов а по Х на -90. Сейчас чешу репу и вижу, что у дефолтной модели "Вел" вообще ничего не накручено.
Миниатюры
Нажмите на изображение для увеличения
Название: Новый рисунок.jpg
Просмотров: 302
Размер:	307.8 Кб
ID:	63293  
tvister вне форума   Ответить с цитированием
Старый 04.12.2019, 17:09   #102
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,799
По умолчанию

Не знаю как в бледрере, а в максе есть такая штука как "пивот" - вот его направленность как раз и важна для турелей. И для всего прочего. по осям пивота крутятся все части моделей. И если в кабине например все равно как установлен пивот - я могу принудительно задать ось и направление поворота, то для внешней модели направление осей пивота категорически важно! и ориентированы они должны быть только определенным образом. Я на картинке выше как раз и показывал как.
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura вне форума   Ответить с цитированием
Старый 04.12.2019, 17:35   #103
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Цитата:
Сообщение от Asura Посмотреть сообщение
Не знаю как в бледрере, а в максе есть такая штука как "пивот"
Понял, спасибо.
tvister вне форума   Ответить с цитированием
Старый 08.12.2019, 20:02   #104
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Никак не могу наладить стрельбу задней огневой точки. Перепробовал все варианты ориентации и расположения мешей, но пулемет живет своей жизнью, наводится неправильно и не стреляет.
tvister вне форума   Ответить с цитированием
Старый 08.12.2019, 21:57   #105
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,799
По умолчанию

Если выгрузишь мод - могу посмотреть...
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura вне форума   Ответить с цитированием
Старый 08.12.2019, 23:57   #106
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Цитата:
Сообщение от Asura Посмотреть сообщение
Если выгрузишь мод - могу посмотреть...
Решил не травмировать чувства наших коллег. Отправил "первый блин" в личку.
tvister вне форума   Ответить с цитированием
Старый 19.12.2019, 01:43   #107
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Содрал с Вел и поставил на Энн заднюю турель. Спасибо Asura! Пулемет крутится, наводится, но не стреляет... Причем при переходе в положение стрелка наблюдателя пулемет стреляет. Вроде уже все перепробовал, но толку пока нет.
tvister вне форума   Ответить с цитированием
Старый 19.12.2019, 15:35   #108
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,799
По умолчанию

Попробуй посмотреть код ограничений углов - нет ли там осечки зон хвостового оперения? Я бы для начала снял вообще все ограничения и проверил без них.
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura вне форума   Ответить с цитированием
Старый 19.12.2019, 23:45   #109
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Цитата:
Сообщение от Asura Посмотреть сообщение
Попробуй посмотреть код ограничений углов - нет ли там осечки зон хвостового оперения? Я бы для начала снял вообще все ограничения и проверил без них.
Вот эти ?
Код:
    public boolean turretAngles(int i, float[] fs) {
	boolean bool = super.turretAngles(i, fs);
	float f = -fs[0];
	float f_0_ = fs[1];
	switch (i) {
	case 0:
	    if (f < -33.0F) {
		f = -33.0F;
		bool = false;
	    }
	    if (f > 33.0F) {
		f = 33.0F;
		bool = false;
	    }
	    if (f_0_ < -3.0F) {
		f_0_ = -3.0F;
		bool = false;
	    }
	    if (f_0_ > 62.0F) {
		f_0_ = 62.0F;
		bool = false;
	    }
	    /* fall through */
	default:
	    fs[0] = -f;
	    fs[1] = f_0_;
	    return bool;
	}
    }
Код:
    public void clipAnglesGun(Orient orient) {
	if (isRealMode()) {
	    if (!aiTurret().bIsOperable)
		orient.setYPR(0.0F, 0.0F, 0.0F);
	    else {
		float f = orient.getYaw();
		float f_0_ = orient.getTangage();
		if (f < -33.0F)
		    f = -33.0F;
		if (f > 33.0F)
		    f = 33.0F;
		if (f_0_ > 62.0F)
		    f_0_ = 62.0F;
		if (f_0_ < -3.0F)
		    f_0_ = -3.0F;
		orient.setYPR(f, f_0_, 0.0F);
		orient.wrap();
	    }
	}
    }
tvister вне форума   Ответить с цитированием
Старый 20.12.2019, 17:22   #110
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,799
По умолчанию

Да. Я думаю что бт не стреляет потому что не может прицелится... Если стволом водит - значит турель под управлением ИИ. А не стреляет - не может попасть. Если снять ограничение возможно начнет стрелять.
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura вне форума   Ответить с цитированием
Старый 23.12.2019, 00:24   #111
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Все строки контроля турели удалил. И в классе самолета, и в классе кокпита стрелка, и в разных вариантах, но толку нет никакого. Впрочем есть, иногда, но крайне редко, пулемет дает пару-тройку выстрелов и замолкает. Есть мысли, что виноват кокпит стрелка Энн. Уж очень велико расстояние между центральными точками опоры пулемета внешней модели и пулемета кокпита. Полагаю, что наводка обеих стволов как то взаимосвязанна. А навести оба ствола в одну точку невозможно. Единственный небольшой сектор сведения есть строго по средней линии, но именно там с классах наложено ограничение по стрельбе и где то в ту сторону пулемет иногда постреливает.
Пы. Сы. подзадолбался я с этим проектом. Вроде все правильно сделано, с названиями и пивотами, спасибо всем, разобрался. А все равно не работает. Попробую поковырять кокпит. Правда я им никогда не занимался, но ведь раньше я вообще ничего не знал и не умел... Если не получится с кокпитом, изменю положение стрелка и пулемета, сдвину их кпереди, что бы закрывался фонарь, а пулемет зафиксирую неподвижно, без подъёмного механизма.
tvister вне форума   Ответить с цитированием
Старый 23.12.2019, 03:20   #112
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Вопрос

Цитата:
Сообщение от tvister Посмотреть сообщение
................Впрочем есть, иногда, но крайне редко, пулемет дает пару-тройку выстрелов и замолкает. .............
Какой пулемёт прописан в классе?
Vasya вне форума   Ответить с цитированием
Старый 23.12.2019, 07:52   #113
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Цитата:
Сообщение от Vasya Посмотреть сообщение
Какой пулемёт прописан в классе?
MGunVikkersKt.
tvister вне форума   Ответить с цитированием
Старый 23.12.2019, 17:57   #114
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Вопрос

Цитата:
Сообщение от tvister Посмотреть сообщение
MGunVikkersKt.
Можно сделать так:
Взять Велл или чего другое и поставить код стрелка туда и проверить.
А лучше давай класс мне - я проверю на похожем самолёте.
Думаю, что очепятки в классе с пропиской вооружения или в самом классе виккерса. Возможно стоит модный класс виккерса с ошибками.
Vasya вне форума   Ответить с цитированием
Старый 23.12.2019, 22:59   #115
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Цитата:
Сообщение от Vasya Посмотреть сообщение
Можно сделать так:
Взять Велл или чего другое и поставить код стрелка туда и проверить.
А лучше давай класс мне - я проверю на похожем самолёте.
Думаю, что очепятки в классе с пропиской вооружения или в самом классе виккерса. Возможно стоит модный класс виккерса с ошибками.

Перепробовал все варианты и этот то же.
Василий, проблема в классе, но не в самом вооружении, а в анимации огневой точки.
Какая была задумка, (скрин1) в положении полета части фонаря закрыты. Основание пулемета TurretА, приаттачено к мешу TurretBase который опущен на 30 градусов к горизонту. Пулемет спрятан в шахте хвостовой балки. В боевом положении (скрин2), секции фонаря сдвигаются вперед, а TurretBase поворачивается на 30 градусов вверх, соответственно пулемет занимает боевое положение. По моему красиво и технически правильно. Но, максимум чего я добился, спасибо Asura,это наведения пулемета, без стрельбы.
Вчера-сегодня провел пару опытов. Первое, было соображение, что наводку сбивает пулемет кокпита. Полностью почистил классы от упоминания кокпита пулеметчика. Не помогло, пулемет наводится но не стреляет. Второе убрал меш TurretBase напрямую присоединив TurretА к CF и все заработало. Пулемет наводится и стреляет, но анимация, подъём спуск пулемета, не работает(скрин3-4).
В классах TurretBase стоит в блоке отвечающем за закрытие-открытие фонаря в походно-боевом положении. Как связан java-механизм открытия фонаря с невозможностью вести огонь, я не знаю
Вот архив классов с кокпитом стрелка. Может кто то лучше в яве разбирается, подскажет. Кокпит стрелка-наблюдателя-бомбардира, переделаю под новое положение пулемета и верну назад.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 235
Размер:	279.9 Кб
ID:	63456   Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 216
Размер:	271.4 Кб
ID:	63457   Нажмите на изображение для увеличения
Название: 3.jpg
Просмотров: 230
Размер:	259.7 Кб
ID:	63458   Нажмите на изображение для увеличения
Название: 4.jpg
Просмотров: 230
Размер:	268.7 Кб
ID:	63459  
Вложения
Тип файла: rar РАБОЧИЙ КИ-30.rar (9.7 Кб, 157 просмотров)
tvister вне форума   Ответить с цитированием
Старый 23.12.2019, 23:59   #116
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Смущение

Цитата:
Сообщение от tvister Посмотреть сообщение
Перепробовал все варианты и этот то же.
Василий, проблема в классе, но не в самом вооружении, а в анимации огневой точки.
Какая была задумка, (скрин1) в положении полета части фонаря закрыты. Основание пулемета TurretА, приаттачено к мешу TurretBase который опущен на 30 градусов к горизонту. Пулемет спрятан в шахте хвостовой балки. В боевом положении (скрин2), секции фонаря сдвигаются вперед, а TurretBase поворачивается на 30 градусов вверх, соответственно пулемет занимает боевое положение. По моему красиво и технически правильно. Но, максимум чего я добился, спасибо Asura,это наведения пулемета, без стрельбы.
Вчера-сегодня провел пару опытов. Первое, было соображение, что наводку сбивает пулемет кокпита. Полностью почистил классы от упоминания кокпита пулеметчика. Не помогло, пулемет наводится но не стреляет. Второе убрал меш TurretBase напрямую присоединив TurretА к CF и все заработало. Пулемет наводится и стреляет, но анимация, подъём спуск пулемета, не работает(скрин3-4).
В классах TurretBase стоит в блоке отвечающем за закрытие-открытие фонаря в походно-боевом положении. Как связан java-механизм открытия фонаря с невозможностью вести огонь, я не знаю
Вот архив классов с кокпитом стрелка. Может кто то лучше в яве разбирается, подскажет. Кокпит стрелка-наблюдателя-бомбардира, переделаю под новое положение пулемета и верну назад.
Скачал... обомлел.
Классы не рабочие от слова вообще.
Там весь код нужно чистить от мусора - раз.
Если у тебя в веапонсе стоит 0, то пулемёт с приставкой t
не прописуется.
Пытаюсь разобраться с классом.
Vasya вне форума   Ответить с цитированием
Старый 24.12.2019, 00:02   #117
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
По умолчанию

Он-лайн декомпилятор.
http://www.javadecompilers.com/?fbcl...LEyqOVAWWk9FGw
Vasya вне форума   Ответить с цитированием
Старый 24.12.2019, 00:26   #118
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Я не специалист, но все кроме пулемета работает.
tvister вне форума   Ответить с цитированием
Старый 24.12.2019, 00:51   #119
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
По умолчанию

Цитата:
Сообщение от tvister Посмотреть сообщение
Я не специалист, но все кроме пулемета работает.
Откуда код для стрелка брал в класс?
От Д3А дефолтного не подошёл?
Код:
public boolean turretAngles(int i, float af[])
    {
        boolean flag = super.turretAngles(i, af);
        float f = -af[0];
        float f1 = af[1];
        switch(i)
        {
        case 0: // '\0'
            if(f < -33F)
            {
                f = -33F;
                flag = false;
            }
            if(f > 33F)
            {
                f = 33F;
                flag = false;
            }
            if(f1 < -3F)
            {
                f1 = -3F;
                flag = false;
            }
            if(f1 > 62F)
            {
                f1 = 62F;
                flag = false;
            }
            break;
        }
        af[0] = -f;
        af[1] = f1;
        return flag;
    }
Уже потихоньку один класс перебрал.
Кокпит стрелка должен называться так:
Код:
com.maddox.il2.objects.air.CockpitKi30A_TGunner.class

Последний раз редактировалось Vasya; 24.12.2019 в 00:59.
Vasya вне форума   Ответить с цитированием
Старый 24.12.2019, 01:00   #120
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
По умолчанию

Код:
package com.maddox.il2.objects.air;
import java.io.IOException;
import java.util.ArrayList;

import com.maddox.rts.Finger;
import com.maddox.rts.NetMsgGuaranted;
import com.maddox.rts.NetMsgInput;
import com.maddox.rts.Property;
import com.maddox.util.HashMapInt;

public class Ki30A extends Ki30
    implements TypeBomber
{

    public Ki30A()
    {
    }
    
    public boolean turretAngles(int i, float[] fs) {
	boolean bool = super.turretAngles(i, fs);
	float f = -fs[0];
	float f_0_ = fs[1];
	switch (i) {
	case 0:
	    if (f < -33.0F) {
		f = -33.0F;
		bool = false;
	    }
	    if (f > 33.0F) {
		f = 33.0F;
		bool = false;
	    }
	    if (f_0_ < -3.0F) {
		f_0_ = -3.0F;
		bool = false;
	    }
	    if (f_0_ > 62.0F) {
		f_0_ = 62.0F;
		bool = false;
	    }
	    /* fall through */
	default:
	    fs[0] = -f;
	    fs[1] = f_0_;
	    return bool;
	}
    }
    
    public boolean typeBomberToggleAutomation()
    {
        return false;
    }

    public void typeBomberAdjDistanceReset()
    {
    }

    public void typeBomberAdjDistancePlus()
    {
    }

    public void typeBomberAdjDistanceMinus()
    {
    }

    public void typeBomberAdjSideslipReset()
    {
    }

    public void typeBomberAdjSideslipPlus()
    {
    }

    public void typeBomberAdjSideslipMinus()
    {
    }

    public void typeBomberAdjAltitudeReset()
    {
    }

    public void typeBomberAdjAltitudePlus()
    {
    }

    public void typeBomberAdjAltitudeMinus()
    {
    }

    public void typeBomberAdjSpeedReset()
    {
    }

    public void typeBomberAdjSpeedPlus()
    {
    }

    public void typeBomberAdjSpeedMinus()
    {
    }

    public void typeBomberUpdate(float f)
    {
    }

    public void typeBomberReplicateToNet(NetMsgGuaranted netmsgguaranted)
        throws IOException
    {
    }

    public void typeBomberReplicateFromNet(NetMsgInput netmsginput)
        throws IOException
    {
    }
    
    private static Aircraft._WeaponSlot[] GenerateDefaultConfig(int i)
    {
        Aircraft._WeaponSlot a_lweaponslot[] = new Aircraft._WeaponSlot[i];
        try
        {
            a_lweaponslot[0] = new Aircraft._WeaponSlot(0, "MGunVikkersKsi", 700);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(10, "MGunVikkersKt", 600);
            a_lweaponslot[2] = null;
            a_lweaponslot[3] = null;
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = null;         
        }
        catch(Exception exception) { }
        return a_lweaponslot;
    } 

    static Class _mthclass$(String s)
    {
        Class class1;
        try
        {
            class1 = Class.forName(s);
        }
        catch(ClassNotFoundException classnotfoundexception)
        {
            throw new NoClassDefFoundError(classnotfoundexception.getMessage());
        }
        return class1;
    }
    
    static 
    {
        Class class1 = com.maddox.il2.objects.air.Ki30A.class;
        new NetAircraft.SPAWN(class1);
        Property.set(class1, "iconFar_shortClassName", "Ki-30A");
        Property.set(class1, "meshName", "Ki30A(Multi1)/hier.him");
        Property.set(class1, "PaintScheme", new PaintSchemeFMPar01());
        Property.set(class1, "yearService", 1935F);
        Property.set(class1, "yearExpired", 1946.5F);
        Property.set(class1, "FlightModel", "FlightModels/Ki30A.fmd:Ki30A_FM");
        Property.set(class1, "cockpitClass", new Class[] {
            com.maddox.il2.objects.air.CockpitKi30A.class, com.maddox.il2.objects.air.CockpitKi30A_TGunner.class
        });
        Property.set(class1, "LOSElevation", 0.742F);
        Aircraft.weaponTriggersRegister(class1, new int[] {
            0, 10, 3, 3, 3, 3, 3, 3, 3, 3,
	    3, 3, 3
        });
	Aircraft.weaponHooksRegister(class1, new String[] {
            "_MGUN01", "_MGUN02", "_ExternalBomb01", "_ExternalBomb02", "_ExternalBomb03", "_ExternalBomb04", "_BombSpawn01", "_BombSpawn02", "_BombSpawn03", "_BombSpawn04",
            "_BombSpawn05", "_BombSpawn06", "_BombSpawn07"
        });

Последний раз редактировалось Vasya; 24.12.2019 в 17:55.
Vasya вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Рейтинг@Mail.ru