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 25.04.2021 10:00

Не могу заставить камеру сдвинуться к окуляру прицела при нажатии ВКЛ/ВЫКЛ прицел.:(:I'm_thinking: При нажатии кнопок "широкоугольный обзор", "нормальный обзор", "прильнуть к прицелу", камера сдвигается по оси вперед. Но прицел на А7 расположен ассиметрично. Камеру _KAMERAAIM поставил напротив окуляра, но толку никакого, продолжает движение по оси.

Molva 25.04.2021 10:04

Цитата:

Сообщение от tvister (Сообщение 218030)
Камеру _KAMERAAIM поставил напротив окуляра, но толку никакого, продолжает движение по оси.

Хуки называются CAMERA и CAMERAAIM.

tvister 25.04.2021 12:15

Ошибся с написанием в тексте. В блендере хуки названы правильно, да и реакция на нажатие кнопки есть. Попробовал поставить франкен-прицел от R-Z и "Альдисы" от И-15бис, И-16 тип 5. Везде одна и та же ошибка: при нажатии "ВКЛ./ВЫКЛ. прицел", движение камеры по оси вперед, вместо сдвига вправо.

Grejf11 25.04.2021 12:23

Открывай меш блокнотом и вычитывай глазами все ошибки экспорта.
Желательно после того как побывал в меш дампере и переведен в текстовую форму + лог дампера может еще подскажет. Там переключаеш камеры и смотриш куда она прыгает.

tvister 25.04.2021 13:37

Вложений: 1
Скрин из меш-дампа. Ошибок нет, названия хуков правильные. Хук который спереди-справа, это CAMERAAIM.

Grejf11 25.04.2021 14:45

Вкладку камера переключи с External View на Cameraaim и посмотри фактически ее глазами. Иначе никак. Глюк гдето там.

tvister 25.04.2021 16:14

Вложений: 2
В дампе все нормально.:(

tarakan67 25.04.2021 16:48

Цитата:

Сообщение от tvister (Сообщение 218040)
при нажатии "ВКЛ./ВЫКЛ. прицел", движение камеры по оси вперед, вместо сдвига вправо.

Вообще то команда в управлении называется "прильнуть к прицелу". Возможно ты включаешь бомбардировочный прицел

tvister 25.04.2021 16:57

На истребителях с оптическим прицелом при нажатии "ВКЛ./ВЫКЛ. прицел", камера движется вперед по оси. Попробуй И-16 тип 5, любой из И-15, И-15 бис. На Р-5 с помощью этой команды меняется вид с оптического прицела на механический ВВ (воздушный визир).
Специально вынес CAMERAAIM, далеко вправо. Однако ничего не изменилось...

Molva 25.04.2021 19:00

Цитата:

Сообщение от tvister (Сообщение 218049)
Специально вынес CAMERAAIM, далеко вправо. Однако ничего не изменилось...

А какой клавишей пользуетесь для переключения прицела?

tvister 25.04.2021 21:20

Вложений: 2
Как таковой отдельной кнопки нет. Все можно настроить под свои требования-удобства. У меня так:

tarakan67 25.04.2021 21:24

Когда ты нажимаешь кнопку Page Up прицел работает правильно?

tvister 25.04.2021 21:34

Нет, сдвигается еще немного вперед.

Asura 26.04.2021 09:33

Есть у меня подозрение что хук CAMERAAIM задублирован. И из за этого возникают подобные глюки.

tvister 26.04.2021 14:09

Чувствую мой где то косяк...
Такое впечатление, что работает одна CAMERA. Кокпит R-Z франкен, вот я и убрал "все что показалось не нужным". Будет время, еще раз все пересмотрю в привязке к классам.
Такое впечатление, что работает одна CAMERA.

Vasya 26.04.2021 16:00

Цитата:

Сообщение от tvister (Сообщение 218067)
Чувствую мой где то косяк...
Такое впечатление, что работает одна CAMERA. Кокпит R-Z франкен, вот я и убрал "все что показалось не нужным". Будет время, еще раз все пересмотрю в привязке к классам.
Такое впечатление, что работает одна CAMERA.

Вообще да - в классе кокпита должен быть код на прицел с трубой.

tvister 29.04.2021 18:07

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

Сообщение от Vasya (Сообщение 218068)
в классе кокпита должен быть код на прицел с трубой.

В классах я не нашел CAMERAAIM, но есть фрагмент с CAMERA:
Код:

  protected void setCameraOffset() {
        cameraCenter.add(0.0, 0.0, 0.0);

В прочем, его добавление ничего не меняет, прицел пока не работает.
Исправил координаты компаса и подсоединил в классах авиагоризонт. Теперь эти показометры работают нормально. Грызу прицел... :(

tvister 29.04.2021 19:17

Цитата:

Сообщение от tvister (Сообщение 218094)
показометры работают нормально.

Поторопился маленько. Горизонт работает зеркально. С компасом то же баги непонятные...

Vasya 30.04.2021 00:06

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

Сообщение от tvister (Сообщение 218094)
В классах я не нашел CAMERAAIM, но есть фрагмент с CAMERA:
Код:

  protected void setCameraOffset() {
        cameraCenter.add(0.0, 0.0, 0.0);

В прочем, его добавление ничего не меняет, прицел пока не работает.
Исправил координаты компаса и подсоединил в классах авиагоризонт. Теперь эти показометры работают нормально. Грызу прицел... :(

А для кого вот - интересно :I'm_thinking:- в классах сочиняют смысловые конструкции? :eek:
---------------------------
:rolleyes:
:umora:
---------------------
:law:
http://forum.aviaskins.com/attachmen...5&d=1619730376

Vasya 30.04.2021 01:56

Цитата:

Сообщение от tvister (Сообщение 218096)
Поторопился маленько. Горизонт работает зеркально. С компасом то же баги непонятные...

Ээээ... код 4.09... :umora:
Вспоминаем откуда компас, открываем класс кокпита той модели из 4.12.2,
берём код в сборе для компаса, вставляем :ok: в класс кокпита Джилика и радуемся. :rolleyes:

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

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


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

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