Я думаю, что в общем и целом все согласны с тем, что простого сопоставления аналогового джойстика со скоростью вращения персонажа недостаточно для того, чтобы шутер от первого лица в консоли чувствовал себя хорошо.
Итак, каковы некоторые входные парадигмы, которые заставляют современный FPS работать на консоли хорошо?
console
first-person-shooter
aiming
тетрада
источник
источник
Ответы:
Я пошел к сессии GDC в этом году , представленном ребята в Sucker Punch, обсуждая , как они справлялись помощь цели и движению за Дурной. Я понимаю, что Halo использует очень похожую систему для прицеливания помощи, и вот основы:
Есть две вещи, которые делают прицел «чувствовать себя хорошо»: вам нужно чувствовать, что вы все контролируете, и вам нужно чувствовать, что игра не обманывает вас. Регулировка восприятия игры направления ввода и синхронизации кнопок в пределах допусков является отличным способом сделать это, поскольку НИКОГДА не приводит к невозможной ситуации, когда автоматическое нацеливание работает лучше, чем теоретически совершенный контроллер. Если вы попытаетесь решить эту проблему по окончании обработки ввода, вы в конечном итоге окажетесь в некоторых отрывочных ситуациях, когда игрок чувствует, что потерял контроль.
источник
Здесь есть хорошие ответы. Я должен был сам разобраться в проекте, над которым я работаю, но пришел к тем же выводам, что и ребята из Sucker Punch (и я подумал, что придумал что-то новое. Baww :().
Я считаю полезным рассматривать вашу панораму 360x180 градусов от первого лица как «поле ускорения». Все действительные цели создают гравитационные лунки, которые изгибают входные данные игрока (только тонкие) так, что макросъемка (поворачиваясь лицом к целям) кажется, что это «смазанный» путь. Тем не менее, это не влияет на перекрестие все время - только когда дельта хода игрока указана с уклоном колодца (как это было). Это действительно ключевой момент - вы даете эту дополнительную скорость поворота только тогда, когда игрок грубо поворачивается к цели. Это единственный вывод, который вы можете сделать из ввода игрока.
Гораздо больше, и вы получаете слишком много заметного "эффекта ouija". Вам нужна полная противоположность ouija: когда доска ouija движется неосознанно благодаря пользователю, без его сознательного знания, вы хотите, чтобы перекрестие игроков двигалось разумным образом, не осознавая, что это НЕ просто их ввод. Это действительно волшебная уловка.
Используйте точечное произведение дельты поворота / тангажа игрока против дельты тангажа / рыскания от перекрестия к каждой цели. Зафиксируйте значение от 0 до максимальной скорости (чтобы вы игнорировали вход, отталкиваясь от цели), затем используйте функцию расстояния в качестве модификатора спада.
Я обнаружил, что увеличение этого бонуса "макроперемещения", когда угловая дельта перекрестия против цели велика (то есть когда враг находится позади вас), действительно помогает решить проблему классического контроллера консоли, заключающуюся в том, что он не может поворачиваться лицом к лицу достаточно быстро. С точки зрения «выбора цели», если на вас нападают сзади, и перед вами нет целей, эта панорама перед вами - «мертвое пространство», и вы также можете дать игроку возможность летать через нее. на большой скорости с их курсором. И если есть цели впереди, ну, они, вероятно, выше в сознании игрока и из-за ослабления / липкой цели не слишком подвержены влиянию слабой макро-силы.
Вам не нужно сильно ослаблять чувствительность, когда игрок пытается отвернуться от объекта (это приведет к ощущению попытки «вырваться» из орбиты цели). Демпфирование используется в большей степени для точного прицеливания, а также для предотвращения превышения цели игроками при переходе от макро-к микро-точности - это самая ужасная вещь: игроки (особенно новички) имеют тенденцию использовать только крайние значения отклонения палки, поэтому сделать много ловли для них.
Липкая цель - компенсатор относительного движения. Следите за разницей между углом к цели (от камеры, а не от источника), этим кадром и последним кадром. Посмотрите, как близко вы стремитесь к цели. Чтобы избежать эффекта ouija при отсутствии пользовательского ввода, проверьте отклонение обеих палочек: посмотрите, двигались ли вы физически (активация левой рукоятки) ИЛИ, если есть активное прицеливание «с» направлением цели. Добавьте шаг дельты рыскания / тангажа * близость цели * Макс (длина хода, цель / длина) для элементарной липкой цели.
Там, где возникает проблема путаницы целей (то есть цель попадает на ваш взгляд, когда вы нацеливались на что-то позади, «крадя» свой фокус), просто отслеживайте свои цели и «нагревайте» одну, пока она активно направлены на Затем умножьте демпфирующие и липкие компоненты на этот тепловой параметр, чтобы не нагретые цели игнорировались. Если игрок ХОЧЕТ помощь по этой другой цели, он будет вручную стремиться к ней, и очень быстро, она станет наиболее заметно нагретой целью, в то время как предыдущая будет забыта.
Мы также создаем «призрачные» цели для прицеливания, чтобы помочь вам отворачиваться от неинтересных вещей (например, лицом к стене - не нужно торчать, глядя на близко расположенную пустую поверхность, если она бесполезно интерактивна), но это, вероятно, больше, чем я могу говорить о - вы можете применить этот материал ко всему, на что игроку будет интересно указывать, будь то взрывные бочки, интерактивные объекты (биошок использует демпфирование при наведении на интерактивные объекты с близкого расстояния ... но не прицеливается на них, Я не думаю). Как только вы поймете, что это все лишь для того, чтобы дополнить основную концепцию прицеливания, вы поймете, что речь идет не только о прицельных выстрелах, но и об общем удобстве использования, которое вписывается в любой механизм, зависящий от прицеливания. И в FPS, действительно,
Важная вещь со всем этим - тюнинг. Требуется много времени, чтобы просто разобраться и справиться с помехами цели, и проблемы с целями, находящимися на таком близком расстоянии, что их «зоны цели» затопляют панораму игрока, замедляя 60 градусов вращения до ползания.
О, мужик, мне пора спать. Извините, если некоторые из математики не очистить. Уже поздно, но я был взволнован, читая этот пост.
источник
Для ввода чувствовать себя хорошо на консолях вы будете хотеть иметь некоторую обработку с ней сделали.
Сначала мы преобразовали линейный вход, который поступает от аналоговых джойстиков, в кривую, которая дает нам большую чувствительность вокруг центра джойстика и меньшую чувствительность на границах. Это можно сделать с помощью небольших инструментов, которые помогут вам создать и визуализировать эти кривые и выложить код. (Http://www.arachnoid.com/polysolve/)
В качестве второго шага мы внедрили какое-то ускорение. Он срабатывает через короткий промежуток времени, когда ввод с флешки составляет не менее 97%, и со временем увеличивает вращение камеры. Мы обрабатываются Х и оси Y независимо друг от друга. Это позволяет как-то искусственно увеличить диапазон ввода флешки. Первые 97% могут быть использованы для относительно точных настроек, но из-за ускорения у вас также могут быть быстрые движения.
Если у вас разные поля зрения камеры (например, при наведении / увеличении), то должен быть фактор, который регулирует скорость вращения кулачка с помощью поля зрения, используемого в данный момент.
Другие хитрости, которые облегчают жизнь игрокам, - это «автоцентрирование». Это выравнивает шаг камеры медленно назад к горизонту, когда входной сигнал не будет дан. Это помогает сохранять ориентацию.
Другое дело, чтобы заботиться о на консолях есть мертвая зона. Когда контроллер получает старше аналоговые палочки начинают рыхлую точность и имеют тенденцию давать «ложный» вход. Чтобы предотвратить это, вы должны игнорировать первые несколько процентов (до 20%) ввода с флешки.
Мы также сделали некоторые эксперименты с трением на основе с целью помощи, как упоминалось ранее (вход разгона при движении в сторону противника на экране, медленный вход вниз при удалении), но у нас было ощущение, что это очень заметно для игрока. Также недостатком является то, что у вас больше нет плавного движения кулачка, когда есть ряд врагов. Мы выбрали эффект «магнитной пули», когда пули сами по себе стремятся к врагу в определенном диапазоне. Однако и здесь вы должны быть осторожны.
источник
Для консольных игр вам придется работать с аналоговым флешкой. В то время как аналоговые джойстики кажутся интуитивно понятными для 3D-игр, это ужасно в напряженные моменты, когда вам нужно целиться. Лучшее решение состоит в том, чтобы палка стала точной в эти моменты.
Вот простое решение: По мере того как перекрестие перемещается ближе к противнику, чувствительность снижается. Это позволит игроку быть более точным с его выстрелами.
Вы также можете реализовать «липкую цель». Это становится очень удовлетворительным, если есть несколько врагов, и игрок должен убить того, кто находится прямо перед ними.
источник
Мне лично нравится парадигма "блокировки на" для консольных стрелков. Т.е. удерживать кнопку, чтобы зафиксировать на враг примерно перед вами (нажмите несколько раз, чтобы цикл через несколько врагов), а затем ваша цель просто автоматически следует за ними. Первый FPS, чтобы использовать его, что я могу думать (я уверен, что там были и другие до него) была Metroid Prime на GC. Делает вялую неточность аналоговой палки не имеет значения. ... не уверен, как бы это перевести на мультиплеер, хотя.
В то время как мы на Metroid Prime, мне также понравилась техника, которую они использовали для битов на платформе, когда при прыжке изображение автоматически наклонялось немного вниз. Это был тонкий, но это сделало управление чувствовать себя гораздо более естественно.
источник