Jump to content

Особенности реализации эффектов force feedback.


Tchai

Recommended Posts

  • Replies 298
  • Created
  • Last Reply

Top Posters In This Topic

  • ED Team
Обновление есть, тряски в околосрывных режимах на P-51D нет… Ждем следующего.

 

http://forums.eagle.ru/showpost.php?p=1899273&postcount=7

Men may keep a sort of level of good, but no man has ever been able to keep on one level of evil. That road goes down and down.  
Можно держаться на одном уровне добра, но никому и никогда не удавалось удержаться на одном уровне зла. Эта дорога ведёт вниз и вниз.

G.K. Chesterton

DCS World 2.5: Часто задаваемые вопросы

Link to comment
Share on other sites

А какой смысл приводить список общих изменений, если интересующего там нет и это без списка понятно? :) Лучше уж порадовать информацией, когда это появится хотя бы в планах (практических).

 

И если не затруднит — гляньте сюда. Очень интересует этот вопрос.

i7-2600K@4.9GHz | DDR3 16Gb@2400MHz | Crucial M550@256Gb | GTX 780@1200/7200MHz | LG 27MP68VQ×3@5760×1080 | «УРПМ»

Link to comment
Share on other sites

  • ED Team

Когда сделаем. Когда проверим. Когда выпустим. От меня зависит только второе, и то не всегда.

 

ЗЫ В багтрекере запись есть, по FFB работают.


Edited by USSR_Rik

Men may keep a sort of level of good, but no man has ever been able to keep on one level of evil. That road goes down and down.  
Можно держаться на одном уровне добра, но никому и никогда не удавалось удержаться на одном уровне зла. Эта дорога ведёт вниз и вниз.

G.K. Chesterton

DCS World 2.5: Часто задаваемые вопросы

Link to comment
Share on other sites

Возможно и не совсем по теме, но отпишусь здесь.

В соседней ветке написал предложение, здесь повторюсь с разъяснениями.

На данный момент в симуляторе есть три вида триммирования (триммирование педалей рассматриваю как подвид, т.е. в этом разъяснении не участвует), это:

1. включен FFB - при этом режиме при нажатии кнопки "тримм." реальный джой фиксируется в положении достигнутом в момент нажатия кнопки (далее по тексту принимаю это действие как "фактический тримм."), положение виртуального РППУ (далее по тексту "вирт.тримм.") при этом соответствует положению реального джоя (изменение настроек кривых в этом примере и далее не учитываем);

2. выключен FFB и включено "ожидание возврата в ноль" - при этом режиме "вирт. тримм" фиксируется и отключается восприятие положения реального до возврата джоя в ноль по всем осям;

3. выключен FFB и выключено "ожидание возврата в ноль" (на сколько я понимаю наиболее распространенный!!!) - в момент нажатия на тримм. "вирт.тримм" удваевается, т.о. мгновенно отклонение "вирт.тримм" соответствует удвоенному отклонению "факт. тримм". Далее вертолет (каждый со своей скоростью в зависимости от управляемости) начинает отрабатывать случившийся по его мнению рывок РППУ, а игрок в это-же время ведет джой в ноль. т.е. разъяснения возьмем пример:

-ручка джоя отклонена от нуля по оси Х на 15 гр., РППУ при этом отклонен на 15 гр. (см. допущение выше);

-в момент нажатия на "тримм" ручка джоя отклонена на 15 гр., а РППУ отклонена на 15*2=30 гр., тангаж при этом еще соответствует положению РППУ 15 гр.;

-УСЛОВНО через 0,5 сек. игрок ведет джой в ноль и угол составляет допустим 7 гр., отклонение РППУ тогда составит 30 (первоначальное положение РППУ в момент тримм.)-(15 (первоначальное положение джоя)-7(положение джоя в момент тримм.+0,5 сек))=30-8=22 гр., при этом вертолет пытается занять положение соответствующее РППУ=22 гр. в зависимости от скорости реакции вертолета на изменение положения РППУ именно этим объясняется разница в "клевании" и "завале" у разных типов вертолета при прочих равных настройках.

Т.о. В.1 приемлем для игроков имеющих джой с FFB оставить без изменения.

В.2 всем хорош за исключением одного момента, а именно фактически отключения управления до момента возврата джоя в ноль. Однако есть нюанс, для того чтобы попасть в этот ноль при интенсивном маневрировании мертвые зоны у осей должны быть достаточно большими!!! да и далеко не все подозревают об этом режиме. При интенсивном маневрировани зачастую на секунду-полторы управление "зависает" и не всегда успеваешь сообразить вернуть джой в ноль.

Соответственно само предложение:

-ликвидировать В.2;

-при отключенном FFB удваивать "вирт.тримм" не мгновенно, а с некоторой скоростью, которую вывести в настройки в числовом (подобно настройке FFB) формате. Т.о. каждый сможет настроить под себя скорость перемещения РППУ в соответствии со скоростью возврата джоя в ноль.

По моему скромному мнению это оптимальный вариант, по причине того, что на данный момент достаточно часто в онлайне достаточно часто слышны жалобы на "клевки" носом и проч.

Надеюсь сотрудники ED обратят на этот пост внимание и если уж не примут самостоятельно волевое решение, то хотябы выставят его на голосование.

P.S. тяжелых наркотиков не потребляю, траву не курю, пью умеренно :)

  • Like 1
Link to comment
Share on other sites

  • ED Team
2. выключен FFB и включено "ожидание возврата в ноль" - при этом режиме "вирт. тримм" фиксируется и отключается восприятие положения реального до возврата джоя в ноль по всем осям;

3. выключен FFB и выключено "ожидание возврата в ноль" (на сколько я понимаю наиболее распространенный!!!) - в момент нажатия на тримм. "вирт.тримм" удваевается, т.о. мгновенно отклонение "вирт.тримм" соответствует удвоенному отклонению "факт. тримм". Далее вертолет (каждый со своей скоростью в зависимости от управляемости) начинает отрабатывать случившийся по его мнению рывок РППУ, а игрок в это-же время ведет джой в ноль. т.е. разъяснения возьмем пример:

-ручка джоя отклонена от нуля по оси Х на 15 гр., РППУ при этом отклонен на 15 гр. (см. допущение выше);

-в момент нажатия на "тримм" ручка джоя отклонена на 15 гр., а РППУ отклонена на 15*2=30 гр., тангаж при этом еще соответствует положению РППУ 15 гр.;

-УСЛОВНО через 0,5 сек. игрок ведет джой в ноль и угол составляет допустим 7 гр., отклонение РППУ тогда составит 30 (первоначальное положение РППУ в момент тримм.)-(15 (первоначальное положение джоя)-7(положение джоя в момент тримм.+0,5 сек))=30-8=22 гр., при этом вертолет пытается занять положение соответствующее РППУ=22 гр. в зависимости от скорости реакции вертолета на изменение положения РППУ именно этим объясняется разница в "клевании" и "завале" у разных типов вертолета при прочих равных настройках.

 

Разница между пп. 2 и 3 только в том, что после отпускания кнопки триммера в п.2 сигнал о положении ручки джойстика пойдет в игру только после его возврата в ноль, а в п.3 система не ждет возврата, а передает данные о положении джоя (новое положение силовой нейтрали) по истечению фиксированного временного интервала.

Никаких "удвоенных триммирований" нет.

"You become responsible, forever, for what you have tamed.” ― Antoine de Saint-Exupéry, The Little Prince.
Link to comment
Share on other sites

BillyCrusher, не совсем согласен, возможно технически это реализовано Вами в представленном виде, но п.2 выглядит это именно так, как я описал, а именно при отпускании кнопки "тримм." мгновенный скачек РППУ, специально проверял. Возможно моя "скорость удвоения" и есть Ваш "фиксированный отрезок времени", тогда наверное именно его и нужно вывести в настройки.


Edited by StarLey_Andrew
Link to comment
Share on other sites

  • ED Team
BillyCrusher, не совсем согласен, возможно технически это реализовано Вами в представленном виде, но п.2 выглядит это именно так, как я описал, а именно при отпускании кнопки "тримм." мгновенный скачек РППУ, специально проверял. Возможно моя "скорость удвоения" и есть Ваш "фиксированный отрезок времени", тогда наверное именно его и нужно вывести в настройки.

 

В директорном режиме тоже?

"You become responsible, forever, for what you have tamed.” ― Antoine de Saint-Exupéry, The Little Prince.
Link to comment
Share on other sites

  • ED Team
-ликвидировать В.2;
Этот вариант триммирования был введен по просьбе вирпилов. Кому-то удобен, кому-то нет, я лично предпочитаю мириться с рывком из-за кривости своего пилотирования, нежели терять контроль над ручкой даже на короткое время. А ликвидировать-то зачем?

Men may keep a sort of level of good, but no man has ever been able to keep on one level of evil. That road goes down and down.  
Можно держаться на одном уровне добра, но никому и никогда не удавалось удержаться на одном уровне зла. Эта дорога ведёт вниз и вниз.

G.K. Chesterton

DCS World 2.5: Часто задаваемые вопросы

Link to comment
Share on other sites

В директорном режиме тоже?

Дирректорный, режим я так понимаю, только в Ка-50. Отвечаю: именно что в дирректорном режиме, и на остальных вертушках вообще (поскольку у них в автопилоте вообще это понятие отсутствует), более того не в дирректорном режиме у Ка-50 описаный выше эффект менее заметен, поскольку сим обрабатывает еще и автопилот. У Хъюи этот эффект посильнее, поскольку он не спешит отработать получающийся рывок РППУ и персонально я успеваю вернуть джой в район нуля до того как машина начинает отклоняться, а вот на Ми-8 уже значительно сложнее, из-за быстрой реакции вертушки на изменение положения.

Я понимаю, что только Ка-50 продукт от ЕД, но тут предложение всем производителям модулей вертолетов, обратить на этот эффект внимание и предложение по его устранению.

Link to comment
Share on other sites

Этот вариант триммирования был введен по просьбе вирпилов. Кому-то удобен, кому-то нет, я лично предпочитаю мириться с рывком из-за кривости своего пилотирования, нежели терять контроль над ручкой даже на короткое время. А ликвидировать-то зачем?

Аналогичное мнение по использованию и у меня. Я помню сколько копий было сломано по поводу необходимости введения возврата в ноль, просто тогда ни кому в голову не пришел возникший сейчас вариант. Сейчас пришел.

Почему ликвидировать? Можно и оставить, кто захочет тот воспользуется, но ИМХО введение настройки времени перемещения джоя в ноль сведет на нет необходимость п.2

Т.е. я предлогаю в момент отпускания кнопки тримм. запомнить положение РППУ, удвоить его (по всем осям) (как сейчас) и за некоторый отрезок времени вести положение РППУ от начального к удвоенному, и вот именно этот отрезок времени (читай скорость перемещения) я и предлагаю настраивать индивидуально для каждого ЛА в зависимости от реакции ЛА на отклонения и каждому пользователю в зависимости от своей реакции.

Прим.: "удвоение" взято приблизительно по наблюдениям мгновенного изменения положения РППУ на индикаторе положения при отпускании триммера и вообще именно увеличение в 2 раза кажется наиболее логичным


Edited by StarLey_Andrew
Link to comment
Share on other sites

  • ED Team
и вот именно этот отрезок времени (читай скорость перемещения) я и предлагаю настраивать индивидуально каждому пользователю в зависимости от своей реакции.

 

Треки не будут сходиться на машинах с разными настройками этого интервала.

"You become responsible, forever, for what you have tamed.” ― Antoine de Saint-Exupéry, The Little Prince.
Link to comment
Share on other sites

Никаких "удвоенных триммирований" нет.

 

Есть. Понажимай триммер при отклоненных и зафиксированных педалях, РППУ. Все оси уйдут и упрутся на мах. отклонение. Что мешало сделать так, что бы триммер не трогал и не удваивал виртуальные оси при зафиксированных органах управлениях? Тогда бы и проблем меньше было и вопросов по системе триммирования.


Edited by Штуцер
Скрытый текст

Win 11, intel i9-14900K, NVIDIA RTX 4090 (24GB), 64 GB RAM, ASUS 2560x1440 + (3х1024х768), VPC Joy 3*Panels 

 

Link to comment
Share on other sites

Треки не будут сходиться на машинах с разными настройками этого интервала.

Не совсем так. В треки не записывается положения джоя (как я понимаю), записывается только положение РППУ, именно по этому и настройки кривых ни как не влияют на трек. При этом когда в игре положение РППУ будет стремится к удвоенному, игрок с той-же (настроенной индивидуально) скоростью возвращает джой в центр, т.о. парируя перемещение РППУ из начального в удвоенное, при этом на индикаторе РППУ мы будем наблюдать отсутствие или незначительные отклонения РППУ которые и будут записаны в трек. Тогда настройка скорости перемещения из начального положения в удвоенное ни как на треки влиять не будет (как я понимаю).

На начальном этапе достаточно будет добавить в настройки кривых осей числовое поле "скорость перемещения джойстика в ноль" измеряемое в гр./сек. В более продвинутом варианте я вижу вывод пользователю индикатора положения джоя с предложением перевести джой из отклоненного положения в нулевое с восьми направлений, замер скорости такого перемещения и сохранения этой скорости в настройки для каждой оси отдельно.

 

Штуцер, я так понимаю, что иначе невозможно сделать адекватный триммер для джоев без ФФБ, я лично иного выхода не вижу.


Edited by StarLey_Andrew
Link to comment
Share on other sites

  • ED Team
Не совсем так. В треки не записывается положения джоя (как я понимаю), записывается только положение РППУ, именно по этому и настройки кривых ни как не влияют на трек. При этом когда в игре положение РППУ будет стремится к удвоенному, игрок с той-же (настроенной индивидуально) скоростью возвращает джой в центр, т.о. парируя перемещение РППУ из начального в удвоенное, при этом на индикаторе РППУ мы будем наблюдать отсутствие или незначительные отклонения РППУ которые и будут записаны в трек. Тогда настройка скорости перемещения из начального положения в удвоенное ни как на треки влиять не будет (как я понимаю).

Штуцер, я так понимаю, что иначе невозможно сделать адекватный триммер для джоев без ФФБ, я лично иного выхода не вижу.

 

Неверно. Почитайте как работает система триммирования в симуляторе. Уже много раз об этом писали. Ручка джойстика отклоняется на некоторый угол, соответственно отклоняется виртуальная РППУ. После отпускания трммера система запоминает новое положение силовой нейтрали для этой виртуальной РППУ, т.е. предполагает, что джойстик (без FFB) сейчас в нейтрали. Через какое-то определенное время (условно скажем 0,5 сек.) в систему снова поступают сигналы о положении рукоятки джойстика. Если она при этом не в нуле, то ее положение складывается с текущим положением силовой нейтрали РППУ и происходит тот самый рывок. Поэтому при разных настройках времени задержки у одного игрока в треке рывка не будет вообще (у него джойстик успел вернуться в ноль), а у другого наоборот будет сильный рывок. Проверено на практике (еще во времена ЧА1).

Единственный вариант - записывать в файл опций значение этой настройки и считывать ее при воспроизведении трека.

"You become responsible, forever, for what you have tamed.” ― Antoine de Saint-Exupéry, The Little Prince.
Link to comment
Share on other sites

Через какое-то определенное время (условно скажем 0,5 сек.) в систему снова поступают сигналы о положении рукоятки джойстика. Если она при этом не в нуле, то ее положение складывается с текущим положением силовой нейтрали РППУ и происходит тот самый рывок.

Так вот об этом и речь!!! вот эти "условные 0,5 сек." настраивать индивидуально!!! В трек записывается положение джоя или только РППУ? Ведь если бы положение джоя записывалось в трек, то джой с ФФБ при проигрыании трека должен тоже двигаться, а я такого не наблюдал.

Т.е. на выходе имеем три варианта настроек:

1. ФФБ включен и положение джоя соответствует положению РППУ;

2. ФФБ выключен, ожидание возврата в ноль включено, тогда при триммировании положение джоя начинает считываться после возврата джоя в ноль;

3. варианты:

-ФФБ выключен, "время возврата в ноль" установлено тогда положение джоя считывается через установленный отрезок времени вне зависимости от его положения и суммируется с положением РППУ, но время возврата из крайнего положения отличается от возврата из положения бликого к нулю;

-описанный ниже вариант с настройкой "угловая скорость возврата в ноль" лишенный вышеуказанного минуса, но я так понимаю при этом варианте придется перелопатить всю систему триммирования


Edited by StarLey_Andrew
Link to comment
Share on other sites

  • ED Team

.. и получить гарантированную несходимость трека.

Men may keep a sort of level of good, but no man has ever been able to keep on one level of evil. That road goes down and down.  
Можно держаться на одном уровне добра, но никому и никогда не удавалось удержаться на одном уровне зла. Эта дорога ведёт вниз и вниз.

G.K. Chesterton

DCS World 2.5: Часто задаваемые вопросы

Link to comment
Share on other sites

  • ED Team
Так вот об этом и речь!!! вот эти "условные 0,5 сек." настраивать индивидуально!!! В трек записывается положение джоя или только РППУ? Ведь если бы положение джоя записывалось в трек, то джой с ФФБ при проигрыании трека должен тоже двигаться, а я такого не наблюдал.

 

Только РППУ. Но если джой за 0,5 сек. успеть вернуть в нейтраль после триммирования, то виртуальная РППУ останется неподвижной, а если не успеть, то она дернется.

И вообще лично я согласен с тем, что такая опция была бы полезной.

"You become responsible, forever, for what you have tamed.” ― Antoine de Saint-Exupéry, The Little Prince.
Link to comment
Share on other sites

.. и получить гарантированную несходимость трека.

Ну почему? Ведь на сходимость трека не влияют настройки кривых осей? В чем отличие введения этой настройки от кривых?!!!!

Link to comment
Share on other sites

  • ED Team
Что мешало сделать так, что бы триммер не трогал и не удваивал виртуальные оси при зафиксированных органах управлениях? Тогда бы и проблем меньше было и вопросов по системе триммирования.
Я лечу прямо. Ручка (допустим) чуть вперед и вправо - состояние стабильное, ручка неподвижна, считай - зафиксирована. Щелкаю триммером для снятия нагрузки - и ничего? Триммерный механизм оси не трогает, поскольку ручка неподвижна?

Men may keep a sort of level of good, but no man has ever been able to keep on one level of evil. That road goes down and down.  
Можно держаться на одном уровне добра, но никому и никогда не удавалось удержаться на одном уровне зла. Эта дорога ведёт вниз и вниз.

G.K. Chesterton

DCS World 2.5: Часто задаваемые вопросы

Link to comment
Share on other sites

  • ED Team
Ну почему? Ведь на сходимость трека не влияют настройки кривых осей? В чем отличие введения этой настройки от кривых?!!!!

 

А что в них общего? Кривые тут вообще никаким боком не завязаны. В сим попадает выходное значение, т.е. положение точки на этой кривой.

Попробую еще, крайний раз объяснить. В настройках кривых мы видим черный квадратик - положение собственно джоя. Это наш Input. Далее мы видим красную точку на кривой - это наш Output. именно этот Output идет в игру и он же записывается в трек. Идем далее - у меня в настройках задержка стоит 0,1 сек., а у Васи Пупкина - 2 сек. Я триммирую РППУ, быстро дергаю джой в нейтраль, но за 0,1 сек. не успеваю и получаю рывок вертолета. Сохраняю трек и даю его Васе Пупкину. Тот его воспроизводит и игра честно считывает из трека мой отчаянный рывок в нейтраль после триммирования. Но у Васи задержка стоит 2 сек., за это время квадратик Output успевает вернуться в нейтраль и вертолет Васи рывка РППУ не получает. Дальше естественно весь трек идет вкривь и вкось.


Edited by BillyCrusher
Добавил объяснение
"You become responsible, forever, for what you have tamed.” ― Antoine de Saint-Exupéry, The Little Prince.
Link to comment
Share on other sites

Попробую еще, крайний раз объяснить.

 

Все очень доходчиво и понятно :), но это лишь еще раз подтверждает необходимость писать в трек коэффициент задержки перемещения РППУ владельца трека, для корректного проигрывания данного трека на другом инпуте, а если трек передается Васе и Вася берет управление аппаратом, то именно (и только) тогда использовать значения инпута Васи (после этого конечно схождения не будет, но как вел себя автор трека узнать можно если просто посмотреть трек от начала до конца и ничего при этом не трогать).

 

Все это конечно не сейчас и сразу, а с прицелом на будущее.

 

Мысль-то у StarLey_Andrew хорошая! :thumbup:


Edited by Gl-ER

_________________

Win 11 Pro/AMD R9 5900X/64GB@4Ghz RAM/Inno3D RTX 4090/VKB Gladiator/TrackIR 5 Pro/1920*1080/Pico 4 by wire(Virtual Desktop)

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...