AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Моды для Ил-2

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.11.2019, 15:59   #7521
NB79
Местный
 
Регистрация: 12.07.2015
Сообщений: 401
По умолчанию

Кол-во полигонов не влияет на время сдвига/поворота меша. Фонарь - это просто модель, как и всё остальное, сдвигает/поворачивает его процедура, которая просто устанавливает новое положение/угол.

По этой процедуре. Если эта процедура отвечает именно за сдвиг/поворот, то надо смотреть место где она вызывается (в нужных моделях). Параметр, который в неё передаётся, отвечает за величину сдвига/поворота. Как обычно такие вещи делают:

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

Вот и надо смотреть с какими значениями эта процедурка вызывается для мессов и с какими для Су. Естественно, если эта процедура именно для сдвига/поворота. Ну и потом можно поменять у Су значения на нужные.
NB79 вне форума   Ответить с цитированием
Старый 11.11.2019, 16:10   #7522
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 1,798
По умолчанию

И как эти значения посмотреть?
tarakan67 вне форума   Ответить с цитированием
Старый 11.11.2019, 17:01   #7523
NB79
Местный
 
Регистрация: 12.07.2015
Сообщений: 401
По умолчанию

Так они где-то в коде должны присутствовать, в том месте, где эта процедура вызывается. Там и надо смотреть. Повторю, если это именно та самая, нужная процедура.

И ещё раз для понимания. Все цифры будут условными, ибо точных значений у меня нет. Итак.

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

Если нужен не плавный, то нужно действовать по-другому. Например, нам надо, чтоб две трети расстояния меш проходил с одной скорость., а последнюю треть с другой, медленнее. Или не треть, а пятую часть, вот как при закрытии фонаря, доводка в конце движения медленнее происходит. Тут надо уже иначе действовать. Логика та же, реализация чуть другая. 4/5 расстояния мы будем проходить за 4/5 секунды. А оставшуюся дистанцию за 2/5. Рассчитаем нужные коэффициенты, занесём их в табличку и на каждый тик таймера будем брать новое значение из таблички по индексу, который будет номер тика от начала операции сдвига.

В принципе, всё это можно оформить в виде некоего виртуального метода (ХЗ есть это в Яве, или нет) и перекрывая в нужном классе организовывать нужные реализации, табличные методы, либо расчеты по произвольным нужным формулам. Решение получится прозрачным и простым и скорее всего в Старичке так и сделано, это не я придумал, а обычная практика.

В общем, надо где-то рядом с вызовом метода сдвигающего фонарь искать соответствующие значения сдвига.
NB79 вне форума   Ответить с цитированием
Старый 11.11.2019, 18:44   #7524
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 1,798
По умолчанию

Ну этот фонарь не сдвигается, а открывается, об этом говорит, как я понял, hierMesh().chunkSetAngles, т.е. угол поворота меша Blister1_D0 на 100 градусов(100F) по оси Y (вторая ось в списке). При каждом "тике" таймера к углу поворота добавляется приращение f, а вот как отрегулировать/прописать это приращение?
tarakan67 вне форума   Ответить с цитированием
Старый 11.11.2019, 20:01   #7525
GUZKNIFE
Местный
 
Аватар для GUZKNIFE
 
Регистрация: 03.03.2009
Адрес: г.Харьков
Сообщений: 197
Отправить сообщение для GUZKNIFE с помощью ICQ
По умолчанию

Цитата:
Сообщение от tarakan67 Посмотреть сообщение
Здравствуйте! Кто-нибудь знает, как уменьшить время закрытия/открытия фонаря?
Вот код:
Код:
public void moveCockpitDoor(float f)
    {
            resetYPRmodifier();
            hierMesh().chunkSetAngles("Blister1_D0", 0.0F, 100F * f, 0.0F);
            if(Config.isUSE_RENDER())
            {
              if(Main3D.cur3D().cockpits != null && Main3D.cur3D().cockpits[0] != null)
                   Main3D.cur3D().cockpits[0].onDoorMoved(f);
                setDoorSnd(f);
            }
     }
С таким же кодом у мессеров фонарь закрывается/открывается нормально, а у Су-6 ну о-о-очень медленно(10-12 сек.)
Единственное отличие - фонарь у Су-6 имеет в разы больше полигонов, чем фонари мессеров, это может влиять на скорость открытия/закрытия?
Попробуйте после этой команды добавить эти строки:


public void onAircraftLoaded()
{
super.onAircraftLoaded();
FM.CT.bHasCockpitDoorControl = true;
FM.CT.dvCockpitDoor = 0.65F;
}

Иногда скорость открытия фонаря прописывают в FM.Если это не поможет,то нужно изменять в FM.
GUZKNIFE вне форума   Ответить с цитированием
Старый 11.11.2019, 20:16   #7526
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,215
По умолчанию

Мне тоже интересен этот вопрос, на Ки-30 фонарь летчика работает с нормальной скоростью, фонарь стрелка очень быстро. А что нужно крутить в FM?
tvister вне форума   Ответить с цитированием
Старый 11.11.2019, 20:25   #7527
GUZKNIFE
Местный
 
Аватар для GUZKNIFE
 
Регистрация: 03.03.2009
Адрес: г.Харьков
Сообщений: 197
Отправить сообщение для GUZKNIFE с помощью ICQ
По умолчанию

Цитата:
Сообщение от tvister Посмотреть сообщение
Мне тоже интересен этот вопрос, на Ки-30 фонарь летчика работает с нормальной скоростью, фонарь стрелка очень быстро. А что нужно крутить в FM?
В FM разделе [Controls] есть такие строчки:

[Controls]

CCockpitDoor 1
CockpitDoorPeriod 1.5

из этого делаем некоторые выводы.По поводу заднего стрелка возможно где-то прописано в классе.Детально к сожалению этим не занимался.

P.S.Посмотрите как реализован задний стрелок в Barracudaxyz.class.

Последний раз редактировалось GUZKNIFE; 11.11.2019 в 20:31.
GUZKNIFE вне форума   Ответить с цитированием
Старый 11.11.2019, 20:44   #7528
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 1,798
По умолчанию

Цитата:
Сообщение от GUZKNIFE Посмотреть сообщение
Попробуйте после этой команды добавить эти строки:


public void onAircraftLoaded()
{
super.onAircraftLoaded();
FM.CT.bHasCockpitDoorControl = true;
FM.CT.dvCockpitDoor = 0.65F;
}
Спасибо! Помогло.
tarakan67 вне форума   Ответить с цитированием
Старый 11.11.2019, 20:54   #7529
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,215
По умолчанию

Спасибо.
tvister вне форума   Ответить с цитированием
Старый 11.11.2019, 21:35   #7530
NB79
Местный
 
Регистрация: 12.07.2015
Сообщений: 401
По умолчанию

Цитата:
Сообщение от tarakan67 Посмотреть сообщение
Ну этот фонарь не сдвигается, а открывается...
А это в случае 3Д одно и тоже, ну почти , там дальше всё равно всё сводится к перемножению матриц. Но формально да, поворот на определённое кол-во градусов.

UPD: Да, ещё. Там в параметрах не сложение, а умножение. Т.е., некое число умножается на 100. А само это число высчитывается где-то раньше. Во оно и есть искомое. Почему на 100 умножают и для чего это сделано именно так - ХЗ. Возможно для того, чтобы снизить влияние погрешностей возникающих при операциях с числами с плавающей точкой. Но это только моё предположение.

Последний раз редактировалось NB79; 11.11.2019 в 21:42.
NB79 вне форума   Ответить с цитированием
Старый Вчера, 08:50   #7531
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 5,398
Смущение

Цитата:
Сообщение от NB79 Посмотреть сообщение
Про понты в конце не очень понятно................. и разговоры о "понтах и понятиях" для этой темы не приемлемы.

ИМХО.
Выше мной написанное - так же "ИМХО".
От слов не отказываюсь.
Человек я простой - чего думаю, то и написал. Увы.
Vasya на форуме   Ответить с цитированием
Старый Вчера, 08:52   #7532
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 5,398
Смущение

Цитата:
Сообщение от Sita. Посмотреть сообщение
"Всё смешалось в доме Облонских" )))
..................
Согласен.
Как бы так оно и есть.
Другими словами:
космические корабли бороздят просторы Тихого океана.
Vasya на форуме   Ответить с цитированием
Старый Вчера, 09:00   #7533
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 5,398
Смущение

http://forum.aviaskins.com/showpost....postcount=2079

Цитата:
Сообщение от Vasya Посмотреть сообщение
Наверное получилось адаптировать все модели ТВ-1 к патчу 4.13.4.
Возможно будет работать и с более поздними патчами.
Код:
TB_1_ANT4         air.TB_1_ANT4 1                       NOINFO  r01   SUMMER
TB_1_ANT4b        air.TB_1_ANT4b 1                      NOINFO  r01   SUMMER
TB_1_ANT4Ski      air.TB_1_ANT4Ski 1                    NOINFO  r01   SUMMER
TB_1P_Float       air.TB_1P_Float 1                     NOINFO  r01   SUMMER
TB_1_ANT4T        air.TB_1_ANT4T 1                      NOINFO  r01   SUMMER
Пробуйте плиз!
Замечания принимаются.
Vasya на форуме   Ответить с цитированием
Ответ


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

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

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

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

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


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


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