Jump to content
Korean Random
GPCracker

Улучшенная система прицеливания / Advanced Aiming System

Recommended Posts

Есть ли мод вообще, чтоб сделать луч наведения толще ?

Нет. Отрисовка на движке, так же как и контура. Функции или аргумента задания толщины не предусмотрено. Ну или по крайней мере я про это ничего не слышал.

Хочу уточнить , у меня в арт режиме луч наведения, если находит на препятствие, не становится красным .За препятствием естественно... У всех так или это моя проблема ? В клиентском всё норм, краснеет..

Ничерта не понял, если честно. Используйте, пожалуйста, понятные наименования режимов прицеливания. Если речь идет о том, что в артоснайпе всегда зеленый луч - то ответ довольно прост - ты просто в нем не сможешь навестись на непростреливаемую точку. Или длина красной траектории будет очень малой и тяжело различимой в проекции артоснайпа. Хотя надо будет на досуге глянуть, какие параметры приходят на отрисовщик этой траектории и что есть что в артоснайпе.

Еще раз скажу, что артоснайп отличается от обычного артиллерийского (стратегического - вид карты) только развернутой камерой, правками отработки мыши, чтобы прицел (камера) двигался в правильном направлении при перемещении мыши, и исправленным алгоритмом расчета точки прицеливания (стандартный с 1/2 высоты, там это уже не высота будет, там абсолютно не то, что нужно). Все остальное там остается от стратегического.

Edited by GPCracker
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Используйте, пожалуйста, понятные наименования режимов прицеливания. Если речь идет о том, что в артоснайпе всегда зеленый луч - то ответ довольно прост - ты просто в нем не сможешь навестись на непростреливаемую точку.

Извиняюсь , путаюсь всё время. Да , речь идёт именно об артоснайперском режиме. (Не с видом "карта") Тем не менее , ответ дан  :) ,как я понял он и не должен краснеть ? Просто бывает так, что наводишся на танк , вполне нормально , а снаряд попадает в какой нибудь выступ горы  или крышу дома, смотря что за карта...Луч при этом остаётся зелёным. 

Share this post


Link to post

Short link
Share on other sites

Луч при этом остаётся зелёным.

Ну смотри. Луч показывает коллизию центральной траектории. А снаряд по ней летит редко, чаще в сторону уходит. А что там на пути снаряда одной картохе известно.

Если летом останется время - покумекаю насчет баллистического matrixProvider'а. М.б. получится впилить траекторию снаряда (камеру по траектории) без заметных просадок по производительности..

Edited by GPCracker
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

 

Если летом останется время
робко напоминаю про Animated SixthSense... если время останется :)) 
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

робко напоминаю про Animated SixthSense

Ух... Что-то уж больно потная сессия. В прямом и переносном смысле одновременно.

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

В переносном - 15 предметов в общей сложности за этот семестр, из них 3 курсача и 6 экзаменов. 1 зачет чувствую пойдет на август, ну его нафиг, да и не успеваю уже.

Все остальное разгреб более-менее успешно. Сегодня сдал последний экзамен.

В общем, если все пойдет по плану, где-то через недельку плюс-минус думаю че-нить коммитну.

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

Плюс в недавнем патче с AS3 картоха постаралась (это тем, кто про AnimatedSixthSense спрашивал), не стоит забывать также и про обновления движка. С последним правда более-менее разобрался "заочно".

Короче, дел как обычно выше крыши, а времени и сил... Как-то так, в общем.

 

Если что-то появится - оно первым делом появится на GitHub.

Edited by GPCracker
  • Upvote 4

Share this post


Link to post

Short link
Share on other sites

Короче, дел как обычно выше крыши, а времени и сил... Как-то так, в общем.

Времени нет, но вы держитесь.  :no1:​  GPCracker, мы в тебя верим.

Edited by OKA_RuLiT
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

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

I know that feel...
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

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

Это к вопросу, который возникает у многих, что такое BoundingBox, и чем он полезен.

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

 

Блин, половину команд гита уже сходу вспомнить не могу...

Edited by GPCracker
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Блин, половину команд гита уже сходу вспомнить не могу...

перейди на ртутьку, там и запоминать нечего) Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

перейди на ртутьку, там и запоминать нечего)

Ну для гита так-то тоже гуи есть... Только он мне пока не особо-то и нужен. Команд там не так уж и много надо... просто давно не коммиттил ничего.. с февраля где-то.

 

Накатил серьезный патч на модуль аналитической геометрии, надеюсь это завезет немного скорости. Хочу навесить неточный захват на targetLock. По крайней мере хотя бы для поддержки цели.

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

Пока все в привате, пушить смысла нет, все равно не получится запустить, ибо еще сам толком не тестил, да и до интеграции еще как до луны пешком.

 

Upd 1. В общем, сегодня пол-дня провозился с ридером для конфига. Переписал оный нуля, заодно и поправил кой-чего, впилил пару фич, впилил перехват xml_section перед непосредственным чтением таковой. Смысл эксперимента - запилить переназначение секции в конфиге. В другую часть конфига или вообще в другой xml-файл. Основа (то, что было раньше в немного переделанном виде) вроде работает, буду тестить ремаппинг, посмотрим, что можно из него выжать и получится ли вообще.

Upd 2. Пути в лучшем случае будут только полными. Указать локально, т.е. "рядом с текущей секцией" не получится, придется писать локацию полностью. Ладно, будем тестить что есть :)

Upd 3. Поправил пару недопечаток, вроде перенаправление робит как надо. Если что - дотестим уже на реальных конфигах. Довольно прикольно получилось, срабатывает практически отовсюду, даже на элементах списков и кастомных словарей.

Короч, если все и в дальнейшем будет робить нормально, вместо

<original_item>test_value</original_item>
можно будет написать

<original_item override="test_override.xml/override_item" />
а по пути test_override.xml/override_item уже дописать

<override_item>test_value</override_item>
На строках, само собой, смысла особого не имеет, а вот на более крупных объектах - очень даже. В принципе можно весь конфиг заремаппить куда-нить, или его часть.

Кстати, надо затестить, можно ли его так в res_mods/configs заремаппить :)

Upd 4. ЛоЛ, рут тоже можно ремаппить на рут другого файла :)

<root override="../configs/test_remap.xml" />
Not bad, not bad.

Upd 5. Гы-гы, веселая штука, дабл ремап тоже робит :) Короч, надо просмотреть еще раз и перенести из теста в библиотеку :)

Upd 6. Бинго. Еще немного допилил, чтобы формат корня конфига тоже парсился. Поправил немного юзабилити, чтобы писать меньше букв. Походу больше сократить не получится. Значит можно и переносить.

Edited by GPCracker
  • Upvote 4

Share this post


Link to post

Short link
Share on other sites

Upd 5. Гы-гы, веселая штука, дабл ремап тоже робит :) Короч, надо просмотреть еще раз и перенести из теста в библиотеку

Круто!

В стандарте рекомендациях к xml есть сущности(entity) и включения (xinclude).

Я никогда их не юзал.

В ResMgr xinclude не работает, а в cElementTree работает, но немного странно.

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Upd 7. Самое веселое как всегда напоследок. Остался модуль аналитической геометрии и модуль геометрического сканера. Нужно кой-чего (не буду грузить подробностями, ибо 95% все равно не поймут чего) переделать (есть идеи как оптимизировать BBox, что из этого получится - пока не знаю) и запилить BoundingSphere. Если все взлетит нормально, в AAS появятся новые плюшки (ну как вариант, если по производительности норм будет, поддержка, а может даже и захват цели, в режиме корректировки дальномера, при непрямом наведении).

Upd 8. Что-то как-то тяжеловато этот ангем идет, особенно тесты. Давненько я матрицы и трехмерную геометрию в уме не считал. Тут еще это возможное попадание нуля в знаменатель... не говоря уже про то что вообще в одном месте может получится 0.0 / 0.0. Не, на выхлоп этот бред не пролезет никак, там min(max)/max(min) фильтрация, но его надо как-то грамотно и эффективно обработать. Хм...

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

Запилил "сферу", норм, коллижн получился в одну строку для луча, и четыре строчки условно для сегмента (отрезка, заданного двумя точками), одна - все тот же луч, две - проверка на зону, где лежат точки (внутри/снаружи) и сравнение знаков косинусов, если обе точки снаружи, а луч "пробивает". Для луча - векторное произведение, все остальное скалярные и простые умножения/сложения, почти везде квадратичные (чтобы корни не считать). На тесте вроде ок, по скорости посмотрим позже, что из этого выйдет.

Upd 9. Допилил таки "коробку", пришлось немного переработать алгоритм, в целях оптимизации вычислений взять за основу матрицу не прямого преобразования, а обратного, ибо она нужна бывает значительно чаще, ну и до кучи впилил отдельные функции для True/False тестов, ибо расчет конкретной точки там не важен, а значит выкинув его можно немного сэкономить. Запилил первичную версию "коробчатого сканера", м.б. на днях допилю "сферический", возможно даже тесты получится погонять. Пожалуй, надо сразу поискать реплеи для тестов. Благо есть где :)

Edited by GPCracker
  • Upvote 5

Share this post


Link to post

Short link
Share on other sites

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

Upd 11.

Возможно, это как-то связано с переделками картохи по части движка и компаундов...

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

"А вот и скрины подъехали"

gwR3y78voo.jpgdKNdMq1lJd.jpgpv5ypl7ahY.jpgD2R32Jj43v.jpg35g502jB5R.jpg
Теперь, блин, задача - вернуть коробочку на место...

Блин, да что за... Она до кучи еще и по-разному смещена у разных танков, причем независимо ни от системы координат карты, ни от координат танка...

Хотя размер и ориентация похоже в порядке... Надо попробовать запилить оффсет в размер бокса и разворот по yaw на 180. Полюбас что-то одно должно сработать, ИМХО.

Бл********ь, это просто полный П. Пробовал сдвинуть на минус 1, развернуть на пи/2, и инвертнуть координату z. Во всех трех случаях одна коробочка ровно ложится на фвшку, а вот вторая на другом танке находится вообще хз где, притом что преобразование для них выполняется одинаково. Реально П какой-то.

Upd 12. Короч, я хз реально что они там запилили. О каком-то адекватном преобразовании вряд ли тут можно говорить, ибо величина этого смешения никак с размерами коробки или танка не связаны.

Upd 12.1 Коробас можно сконструктить самому, только нужно для начала как-то получить размеры танка в зависимости от его текущего состояния... Короч, полный П, я не знаю, как это разрулить. Но без этой штуки вряд ли получится запилить BBox и BSphere.

Upd 12.2 Да, ручками однозначно можно, в дескрипторе нужные боксы есть... Только даже если и написать такой алгоритм, комп его на хайлоаде явно не потянет без значительных потерь фпс. Короче, света в туннеле пока не видно. Спрошу у народа конечно насчет этой штуки, но не факт, что кто-то в курсе, что там нынче намутила картошка.

В общем, с геометрическими сканерами пока тупик, пока висит эта трабла с PyCompoundModel.bounds.

Edited by GPCracker
  • Upvote 6

Share this post


Link to post

Short link
Share on other sites
Upd 13. Да, с этими замутами картохи столкнулся не я один. Как вариант предлагают создать фейк-модель старого образца и у нее уже брать эту матрицу. Трабла только в том, что картоха, перейдя на компаунд, получила нехилую такую оптимизацию. Если впилить еще и фейковые модели, то фпс просто на днище провалится скорее всего. Короче, в данном случае это не решение вопроса.
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

Upd 13. Да, с этими замутами картохи столкнулся не я один. Как вариант предлагают создать фейк-модель старого образца и у нее уже брать эту матрицу. Трабла только в том, что картоха, перейдя на компаунд, получила нехилую такую оптимизацию. Если впилить еще и фейковые модели, то фпс просто на днище провалится скорее всего. Короче, в данном случае это не решение вопроса.

 

Других решений нет. И таки да, фпс не супер + фризы, если цеплять сразу после того как танк окажется в полезрения и сборщик соберёт модель. Другие способы дают краши в непонятные момент времени из-за нарушений целостности ссылок в памяти и подтирания кода мусорщиком питона.

Share this post


Link to post

Short link
Share on other sites

Upd 13. Да, с этими замутами картохи столкнулся не я один. Как вариант предлагают создать фейк-модель старого образца и у нее уже брать эту матрицу. Трабла только в том, что картоха, перейдя на компаунд, получила нехилую такую оптимизацию. Если впилить еще и фейковые модели, то фпс просто на днище провалится скорее всего. Короче, в данном случае это не решение вопроса.

GPCracker, не парся дружище! Пофиг на новые фитчи, запили поскорее для 0.9.15.01 мод и всё!

Share this post


Link to post

Short link
Share on other sites

GPCracker, не парся дружище! Пофиг на новые фитчи, запили поскорее для 0.9.15.01 мод и всё!

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

Как раз таки одна из довольно интересных фичей - неточное указание цели. И опять же, дело далеко не только в новых фичах. Я еще попутно изучаю движок игры. За счет этого подвожу оптимизацию, исправляю ошибки и т.д.

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

А так... Есть еще один интересный вариант, классы в движке, с которыми я пока не работал. Возможно через них будет какое-то решение.

Upd 14. В общем, как временное решение можно посчитать bounds матрицу по габаритам танка с нормально повернутой башней. Для многих танков башня в принципе за пределы корпуса не выходит. Считать орудие смысла не вижу, ибо оно частично-коллизионное, да и машины типа гриля будут из-за него сильно раздуваться в расчетных габаритах.

Габариты есть в typeDescriptor, ЕМНИП, и там виде двух угловых точек AABB. Пересчитать по ним offset-scale матрицу и помножить на matrixProvider самой техники... Что получится из этого - пока не знаю, но других идей как-то решить эту проблему пока не вижу. А там может картошка и пофиксит...

Edited by GPCracker
  • Upvote 4

Share this post


Link to post

Short link
Share on other sites

Картоха своими компаундами многое сломали, но с другой стороны оптимизация и на КТТС сделали запас. 

По коробочке, из наблюдений, такое ощущение что идёт какое то смещение центра танка, то есть, грубо, отсчёт идёт от конца дула, именно дула, причём размер модели относительно соблюдён, потому и разница по смещениям в танках относительно дула (учёт идёт по колижну скорей всего). Спотер вроде пофиксил свои коробочки, но это только "вроде" потому как, как уже выше сказали, не произвольные вылеты без какой либо закономерности. Думаю это изза приславутых HD моделей (яркий пример "контуры"), в которых добавлены всякие ляски-пецки не синхронизированные с колижнами и эти всплывшие мелочи оставили на КТТС.

Share this post


Link to post

Short link
Share on other sites

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

 

Желаю тогда успехов! И сделать мод простым и эффективным, как автомат " Калашникова".

Share this post


Link to post

Short link
Share on other sites

 

 

GPCracker, не парся дружище! Пофиг на новые фитчи, запили поскорее для 0.9.15.01 мод и всё!
А смысл? Думаю сейчас уже особо не стоит торопиться с адаптацией модов, т.к. с новым патчем и переходом на AS3 у картохи еще много всяких багов повылезает. 

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...