AviaSkins.Forums

AviaSkins.Forums (http://forum.aviaskins.com/index.php)
-   W.I.P. (http://forum.aviaskins.com/forumdisplay.php?f=38)
-   -   винтокрыл - А-7 автожир (http://forum.aviaskins.com/showthread.php?t=1361)

tvister 30.04.2021 22:48

С горизонтом и компасом разобрался. Прицел просто развернул на 180о перекинув нормали. У компаса чуток сдвинул координаты.
С прицелом сейчас работаю. Василий, тот фрагмент кода который ты выделил в кокпите А73А есть. Он имеет вот такой вид:
Код:

    private void leave() {
        if (bEntered) {
            HookPilot hookpilot = HookPilot.current;
            hookpilot.doAim(false);
            bEntered = false;
            Main3D.cur3D().aircraftHotKeys.setEnableChangeFov(true);
            CmdEnv.top().exec("fov " + saveFov);
            hookpilot.setSimpleAimOrient(0.0F, 0.0F, 0.0F);
            hookpilot.setSimpleUse(false);
            boolean bool = HotKeyEnv.isEnabled("aircraftView");
            HotKeyEnv.enable("PanView", bool);
            HotKeyEnv.enable("SnapView", bool);
            mesh.chunkVisible("superretic", false);
            mesh.chunkVisible("Z_sight_cap_big", false);


Vasya 01.05.2021 06:18

Цитата:

Сообщение от tvister (Сообщение 218104)
С горизонтом и компасом разобрался. Прицел просто развернул на 180о перекинув нормали. У компаса чуток сдвинул координаты.
С прицелом сейчас работаю. Василий, тот фрагмент кода который ты выделил в кокпите А73А есть. Он имеет вот такой вид:
Код:

    private void leave() {
        if (bEntered) {
            HookPilot hookpilot = HookPilot.current;
            hookpilot.doAim(false);
            bEntered = false;
            Main3D.cur3D().aircraftHotKeys.setEnableChangeFov(true);
            CmdEnv.top().exec("fov " + saveFov);
            hookpilot.setSimpleAimOrient(0.0F, 0.0F, 0.0F);
            hookpilot.setSimpleUse(false);
            boolean bool = HotKeyEnv.isEnabled("aircraftView");
            HotKeyEnv.enable("PanView", bool);
            HotKeyEnv.enable("SnapView", bool);
            mesh.chunkVisible("superretic", false);
            mesh.chunkVisible("Z_sight_cap_big", false);


Это хорошо.
Но ещё лучше, если названия мешей в коде будут совпадать
с мешами в 3До кокпита твоего Джилика.
Я бы не морочил себе голову, если бы :umora: научился ваять кокпиты,
и оставил стандартные названия в коде, которые используются
в классах дефолтных кокпитов... и в 3До так же б меши пообзывал(что бы совпадали имена мешей). :ok:
Например, достал бы кокпит для Ки-27/43 и соорудил бы аналог(по именам).

tvister 01.05.2021 09:16

Цитата:

Сообщение от Vasya (Сообщение 218105)
лучше, если названия мешей в коде будут совпадать с мешами в 3До кокпита

Совпадают, проверено.
Цитата:

Сообщение от Vasya (Сообщение 218105)
Я бы не морочил себе голову и оставил стандартные названия в коде, которые используются

Я так и сделал.
Цитата:

Сообщение от Vasya (Сообщение 218105)
достал бы кокпит для Ки-27/43 и соорудил бы аналог(по именам).

Не знаю почему, но дефолтные классы не всегда у меня работают.
В кокпите от автожира все работает, кроме CAMERAAIM и выяснить причину, почему так, я не могу. Мало знаний по яве. Можно тупо поставить прицел по центру, но это не наш путь... Появится время, попробую поставить классы от И-15. Вчера уже попробовал, но без привязки к названиям мешей, получил "море".

Vasya 01.05.2021 13:52

Цитата:

Сообщение от tvister (Сообщение 218106)
Совпадают, проверено.

Я так и сделал.

Не знаю почему, но дефолтные классы не всегда у меня работают.
В кокпите от автожира все работает, кроме CAMERAAIM и выяснить причину, почему так, я не могу. Мало знаний по яве. Можно тупо поставить прицел по центру, но это не наш путь... Появится время, попробую поставить классы от И-15. Вчера уже попробовал, но без привязки к названиям мешей, получил "море".

Помошь в тесте кокпита нужна?

tvister 01.05.2021 17:19

Цитата:

Сообщение от Vasya (Сообщение 218109)
Помошь в тесте кокпита нужна?

Да нужна. Может я чего то не замечаю. Вернусь домой, "причешу"его, хотя бы добавлю "хиддены" и отправлю.

tvister 01.05.2021 22:35

Цитата:

Сообщение от Vasya (Сообщение 218109)
Помошь в тесте кокпита нужна?

Отправил в личку. Василий это незаконченная работа. Увидишь внизу три надписи, с ними надо работать и вообще весь нижне-левый угол нужно переделать. Хочу добавить управление высотным корректором, радиатором, тумблер стартера и рычаг бомбосброса. На редуктор уборки шасси (у меня раскрутка ротора), текстура легла неверно, переделаю. Есть небольшой ночной глюк горизонта и нет ночного освещения управления кислородным баллоном. А так вроде все должно работать.

tvister 02.05.2021 21:20

Видимо кокпит А7-3А работает нормально. В свободную минуту еще раз пересмотрел 3д и классы автожира. Потом уселся в кабину бомбера и то же при "включить прицел", "прильнуть к прицелу", получил незначительное движение камеры вперед. Другое дело жмакнуть кнопку "прильнуть к прицелу", из положения бомбардира, камера реально сдвигается к прицелу.
Вроде бы и знал об этом моменте...:I'm_thinking:
Открыл классы бомбардира и вот он, хук CAMERAAIM. Как правило сидит вот здесь:
Код:

   
    public CockpitTB_3_Bombardier() {
        super("3DO/Cockpit/TB-3-Bombardier/hier.him", "he111");
        try {
            Loc loc = new Loc();
            HookNamed hooknamed = new HookNamed(mesh, "CAMERAAIM");
            hooknamed.computePos(this, pos.getAbs(), loc);
            aAim = loc.getOrient().getAzimut();
            tAim = loc.getOrient().getTangage();
            kAim = loc.getOrient().getKren();
        } catch (Exception exception) {
            System.out.println(exception.getMessage());
            exception.printStackTrace();
        }
        cockpitNightMats = new String[] { "BombGauges", "Gauge03" };
        setNightMats(false);
        interpPut(new Interpolater(), null, Time.current(), null);
    }

Пример как видно из ТБ-3. Осталось додуматься как имплантировать эту часть в код автожира.

tarakan67 02.05.2021 22:01

По моему ты полез не в те дебри. Проверь, чтобы в классе кокпита был прописан родительский класс CockpitPilot.
Типа:
public class CockpitA7-3A extends CockpitPilot

Тогда при нажатии клавиши "смотреть через прицел вкл/выкл" всё должно получиться

tvister 02.05.2021 22:52

Такой класс есть.

Asura 03.05.2021 10:49

Читаю про прицелы и начинаю путаться... А вы похоже совсем запутались. Есть всего три варианта работы прицела.
1-самый простой, когда прицел обычный - хук CAMERA - это глаза пилота, этот хук только поворачивается и смещается командами 6DOF. хук CAMERAAIM включается в режиме "прильнуть к прицелу", находится как и CAMERA в кабине и реализует возможность центрирования сетки - пример Bf-109. Для реализации этой схемы не нужен код.
2-это имитация перископического прицела. В этом случае хук CAMERAAIM выносится за пределы модели кабины и помещается в цилиндр, для его активации нужен код включения мешей цилиндра, сетки и т.д. пример SBD-3
3-реализация перископического прицела как отдельной кабины, пример Р-5. Эта реализация похожа на кабину бомбардира и по коду и по модели.

Я вот смотрю куски вашего кода и вижу дикую мешанину. Вы что сделать то хотите? :)

Vasya 03.05.2021 11:37

Свои посты удалил.
Не буду нагружать дикой мешаниной из класса кокпита Ки-43.
Всем успехов! :ok:

tvister 03.05.2021 21:58

Уважаемые коллеги, не стоит так переживательно реагировать на проблемы взаимонепонимания.
Василий я успел скачать Ваш класс кокпита и обязательно его разберу. Японцы для меня конечно трудноваты, однако работать с ними надо. Буду доделывать Ки-36 с максимально исторично-реалистичным кокпитом.
Цитата:

Сообщение от Asura (Сообщение 218127)
Читаю про прицелы и начинаю путаться... А вы похоже совсем запутались. Есть всего три варианта работы прицела.

В исходном классе R-Z который я взял за основу, реализован второй вариант. У меня почему то не работает CAMERAAIM. В меш-дампе работает, в игре нет. Видимо проблема "классовая".
Цитата:

Сообщение от Asura (Сообщение 218127)
Я вот смотрю куски вашего кода и вижу дикую мешанину.

Видимо это код кокпита А7-3А (читайте R-Z) с фрагментом кода прицела Ки-43. У R-Z в плане 3д франкен-прицел, представляющий смесь "альдис-а" с коллиматором, видимо ПАК-1. В процессе работы я убрал все лишние части ПАК. Может отсюда и проблемы.

tvister 03.05.2021 22:57

Вложений: 2
Василию много благодарностей и плюс в карму!:good: Класс нормально скомпилировался, пришлось только добавить правильную шапку. В игре тоже все работает. Ну почти все. При нажатии "ВКЛ/ВЫКЛ прицел" камера зависает как бы в воздухе. Однако во первых, я еще не переименовал меши, во вторых думаю поставить хук CAMERAAIM перед окуляром прицела.
Большое спасибо всем принявшим участие:thx:, надеюсь на Вашу помощь в дальнейшем. Уверен, это не последняя проблема которую предстоит решать...

Asura 04.05.2021 10:28

Вложений: 1
В архиве меш прицела с хуком CAMERAAIM. Этот меш надо прописать в hier.him. В файле java код для управления. Этого должно быть достаточно чтобы реализовать перископический прицел.

tvister 05.05.2021 09:48

Асура спасибо! Скачал архив. Код и хиер открылись нормально, а в SuperReticle.msh какая то "абракадабра" вот фрагмент:
Код:

BS f    “  w  Л  Ы          [Common] [LOD] [Materials]
[FaceGroups] [Vertices_Frame0] [MaterialMapping] [Faces]         &      -      :     H    Ћ  [  ™  Ћ  n  '  l                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    +             
                                      


tarakan67 05.05.2021 12:44

Это потому, что меш в бинарном формате. Открой меш в мешконвертер или мешдампер и сохрани в виде текста

tvister 05.05.2021 15:52

Спасибо помогло.

tvister 05.05.2021 21:15

Вложений: 2
Обе системы и от Василия и от Асуры, рабочие. Первоначально как и хотел поставил камеру перед окуляром прицела. От этого варианта пришлось отказаться. Линию прицела перекрыли кольцо Тауненда и цилиндры мотора. Изменил имена мешей и код. В результате получилась как бы имитация прицела, но все равно с перекрытием линии огня. Сдвинул
всю конструкцию SuperReticle вперед, за кольцо. Теперь все нормально, осталось поправить положение прицела в кабине.

tvister 14.05.2021 23:39

Привалило основной работы, так что работа с автожиром притормозилась.
Пока прицепил рычаг бомбосбрасывателя и провожу эксперименты с управлением радиатором. Рычаг бомбосбрасывателя срабатывает как то очень резко. Подскажите, если кто знает, как регулировать скорость нажатия гашеток управления огнем? А вот управление радиатором пока не работает...

Asura 17.05.2021 10:30

плавность перемещения делается так (пример затемнения прицела Зеро):

private Variables setOld = new Variables();
private Variables setNew = new Variables();

в public boolean tick()

setTmp = setOld; setOld = setNew; setNew = setTmp;

if(cockpitDimControl) {
if(setNew.dimPosition>0) setNew.dimPosition = setOld.dimPosition-0.05f;
}else {
if(setNew.dimPosition<1) setNew.dimPosition = setOld.dimPosition+0.05f;
}

в reflectWorldToInstruments

mesh.chunkSetAngles("sunOFF", 0.0f, cvt(interp(setNew.dimPosition, setOld.dimPosition, delta), 0.0f, 1.0f, 0.0f, -77.0f), 0.0f);

переменная setNew.dimPosition плавно изменяется за счет формулы setNew.dimPosition = setOld.dimPosition-0.05f в процедуре tick

и мешь двигается плавно. меняя значение прироста переменной можно регулировать скорость перемещения.


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

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