- Что такое пустой руль и пустой ноль, и почему это плохо
- Информативность (обратная связь) руля
- Гоночный руль и принудительная обратная связь Racing wheel and force feedback
- Обзор гоночного руля Racing wheel overview
- Возможности устройства Device capabilities
- Обратная связь по усилию Force feedback
- Навигация в пользовательском интерфейсе UI navigation
- Обнаружение и отслеживание гоночных рулей Detect and track racing wheels
- Считывание данных с гоночного руля Reading the racing wheel
- Опрос гоночного руля Polling the racing wheel
- Определение возможностей гоночного руля Determining racing wheel capabilities
- Чтение кнопок Reading the buttons
- Считывание данных с рулевого колеса Reading the wheel
- Считывание данных с элементов управления газом и тормозом Reading the throttle and brake
- Считывание данных с элементов управления ручным тормозом и сцеплением Reading the handbrake and clutch
- Считывание данных с рычага переключения передач Reading the pattern shifter
- Запуск примера кода InputInterfacing Run the InputInterfacing sample
- Обзор обратной связи по усилию Force feedback overview
- Использование обратной связи по усилию Using force feedback
- Определение возможностей обратной связи по усилию Determining force feedback capabilities
- Загрузка эффектов обратной связи по усилию Loading force feedback effects
- Использование эффектов обратной связи по усилию Using force feedback effects
Что такое пустой руль и пустой ноль, и почему это плохо
Очень часто, читая тест-драйв какого-то автомобиля, вы могли видеть фразы: «руль пустоват», «машина хорошо стоит на дуге, но руль пустой», «у руля нет четкого ноля», «руль пустой в околонулевой зоне» и так далее. Что вкладывается в эти слова, и почему это считается недостатком?
П еред тем, как говорить о пустом руле, стоит обозначить несколько важных нюансов рулевого управления. Одним из ключевых фактов в нашем случае является то, что рулевое управление в автомобилях устроено и настроено таким образом, чтобы при движении повернутый в какую-либо сторону руль сам возвращался в нулевое положение. Главным образом это достигается с помощью правильного кастора – угла между осью поворота переднего колеса и вертикалью.
Таким образом, при условии отсутствия усилителя рулевого управления и правильной настройки при движении в повороте на руль будет передаваться определенное реактивное (то есть, противодействующее) усилие, стремящееся вернуть его в околонулевое положение, и чем больше будет угол поворота руля и передних колес, тем выше будет это усилие. Это взаимодействие и называется обратной связью – то есть, информацией, которую колеса передают обратно на руль.
Говоря о реактивном усилии и возвращении колес в нулевое положение стоит упомянуть еще несколько важных нюансов. Во-первых, кроме непосредственно реактивного усилия на руль передаются и другие данные – о начале скольжения колес, бокового увода, колейности и других нюансах дорожного полотна и поведения машины. Во-вторых, возвращающее и реактивное усилие совпадают только при нормальных условиях, когда автомобиль движется с нормальной скоростью по однородному покрытию с нормальным сцеплением. Например, при заносе, сносе, движении по поверхности с неоднородным сцеплением и других отклонениях от нормы усилие на руле не будет возвращать его в нулевое положение, а будет говорить об эффективности управления машиной, степени сцепления колес и других нюансах дорожной ситуации – то есть, оно будет реактивным, но не будет возвращающим.
Усилители рулевого управления не только уменьшают усилие, необходимое для поворота руля, но и снижают уровень обратной связи. Электрические усилители склонны к этому в большей степени, чем гидравлические. Таким образом, при определенной настройке рулевого управления автомобиля обратная связь в повороте может ощущаться настолько слабо, что у водителя пропадет ощущение четкой связи руля с колесами – именно это и называется «пустым рулем».
Пустой руль плох именно тем, что не дает полноценной обратной связи – для неопытного водителя это, например, чревато непониманием того, на какой именно угол повернуты колеса в определенный момент, что может привести к избыточным движениям рулем и заносу.
Стоит отметить, что если автомобиль не оснащен усилителем рулевого управления, а ощущения при движении говорят о некоторой пустоте руля, это может говорить о повышенных люфтах в рулевом механизме или его неисправности. Кроме того, действующий Перечень неисправностей и условий, при которых запрещается эксплуатация транспортных средств, запрещает эксплуатацию автомобилей, суммарный люфт в рулевом управлении которых превышает 10 градусов.
Перед тем, как начать разбираться, что такое «пустой ноль», стоит понять, что такое «ноль» вообще. Под понятием «ноля» понимают такое положение рулевого колеса, когда передние управляющие колеса стоят прямо, обеспечивая стабильное движение по прямой. При нормальной регулировке (и если у вас не Citroen DS ) руль в таком случае тоже будет пребывать в симметричном прямом положении.
В спортивных автомобилях в центре верхней части обода рулевого колеса даже делают специальную отметку, иногда дублируемую с отметкой на неподвижной части интерьера – как правило, на передней панели. Это позволяет более четко отслеживать положение руля и его отклонение от нулевой точки.
Теперь, понимая, что такое «пустой руль» и что такое «ноль», несложно разобраться в том, что такое «пустой ноль». Это такая настройка рулевого управления, при которой водителю сложно отследить нулевое положение рулевого колеса и положение колес, необходимое для прямолинейного движения, что приводит к необходимости постоянного подруливания при движении по прямой.
«Пустой ноль» неудобен как при спокойной езде, требуя от водителя постоянного внимания и движений для сохранения прямолинейной траектории движения, так и при активной езде, поскольку на высоких скоростях отклик на поворот рулевого колеса может оказаться куда более резким и привести к потере заданной траектории, заносу или потере управления.
Стоит отметить, что «пустой ноль» также может говорить о повышенных люфтах в рулевом механизме и его неисправности.
Источник статьи: http://www.kolesa.ru/article/chto-takoe-pustoj-rul-i-pustoj-nol-i-pochemu-eto-ploho
Информативность (обратная связь) руля
Страница 1 из 2 | 1 | 2 | > |
Всем привет. Прошу прощения, если уже было что то подобное. Искал, не нашел. Столкнулся с недостаточной информативностью руля. На просторах интернета нашел вот такое описание этого выражения:
«Информативность руля. Информативный руль позволяет чувствовать положение автомобиля на дороге и передаёт водителю ощущения (обратную связь), позволяющие производить правильное руление. Хороший руль стремиться вернуться в положение прямолинейного движения, чему способствует геометрия рулевой трапеции, развал-схождение колёс и угол наклона шкворня. Чрезмерно «лёгкий» как и чрезмерно «тяжелый» руль снижает свою информативность, делает руление не очень комфортным. Не информативный руль иногда называют «пустым».
Как это проявляется в моем конкретном случае. При небольших поворотах и отклонении руля на углы до 60° руль не возвращается в исходное положение, т.е. как следует из описания информативности руля «стремится вернуться в положение прямолинейного движения». Если даже просто при движении прямо отклонить руль, машина так и уходит в сторону. Это происходит на любой скорости. Приходится самому крутить руль и выравнивать автомобиль. Хотя при повороте на угол под 90° обратная связь есть. Вчера отдал машину дилеру в сервис, инженер по гарантии понял проблему, сначала сказал это особенность ЭУР, я возразил, что были автомобили с ЭУР такой проблемы и в помине не было. Сказал будут проверять сход-развал, отзвонились сегодня сказали были небольшие отклонения и еще сравнивали параметры в настройках моего блока ЭУР и заводские, отклонений нет. Завтра еду забирать, хочу попросить проехать на любом другом Ауте дабы сравнить. Собственно вопрос, у всех так или это действительно только у меня. Проблема для меня серьезная, так как было уже пара не приятных моментов при рулежке.
Всем привет. Прошу прощения, если уже было что то подобное. Искал, не нашел. Столкнулся с недостаточной информативностью руля. На просторах интернета нашел вот такое описание этого выражения:
«Информативность руля. Информативный руль позволяет чувствовать положение автомобиля на дороге и передаёт водителю ощущения (обратную связь), позволяющие производить правильное руление. Хороший руль стремиться вернуться в положение прямолинейного движения, чему способствует геометрия рулевой трапеции, развал-схождение колёс и угол наклона шкворня. Чрезмерно «лёгкий» как и чрезмерно «тяжелый» руль снижает свою информативность, делает руление не очень комфортным. Не информативный руль иногда называют «пустым».
Как это проявляется в моем конкретном случае. При небольших поворотах и отклонении руля на углы до 60° руль не возвращается в исходное положение, т.е. как следует из описания информативности руля «стремится вернуться в положение прямолинейного движения». Если даже просто при движении прямо отклонить руль, машина так и уходит в сторону. Это происходит на любой скорости. Приходится самому крутить руль и выравнивать автомобиль. Хотя при повороте на угол под 90° обратная связь есть. Вчера отдал машину дилеру в сервис, инженер по гарантии понял проблему, сначала сказал это особенность ЭУР, я возразил, что были автомобили с ЭУР такой проблемы и в помине не было. Сказал будут проверять сход-развал, отзвонились сегодня сказали были небольшие отклонения и еще сравнивали параметры в настройках моего блока ЭУР и заводские, отклонений нет. Завтра еду забирать, хочу попросить проехать на любом другом Ауте дабы сравнить. Собственно вопрос, у всех так или это действительно только у меня. Проблема для меня серьезная, так как было уже пара не приятных моментов при рулежке.
Привет! У меня есть не много, 90 процентов возвращается, 10 сам доруливаю.
Отправлено с моего iPhone используя Tapatalk
Источник статьи: http://out-club.ru/board/showthread.php?t=86255&styleid=2
Гоночный руль и принудительная обратная связь Racing wheel and force feedback
На этой странице описаны основы программирования для одноэлементных колес Xbox с помощью Windows. Gaming. input. раЦингвхил и связанных API-интерфейсов для универсальная платформа Windows (UWP). This page describes the basics of programming for Xbox One racing wheels using Windows.Gaming.Input.RacingWheel and related APIs for the Universal Windows Platform (UWP).
Изучив информацию на этой странице, вы узнаете: By reading this page, you’ll learn:
- как составить список подключенных гоночных рулей и их пользователей; how to gather a list of connected racing wheels and their users
- как определить, что гоночный руль был добавлен или удален; how to detect that a racing wheel has been added or removed
- как считывать входные данные с одного или нескольких гоночных рулей; how to read input from one or more racing wheels
- как отправлять команды обратной связи по усилию; how to send force feedback commands
- принципы работы гоночных рулей в качестве устройств для навигации по пользовательскому интерфейсу. how racing wheels behave as UI navigation devices
Обзор гоночного руля Racing wheel overview
Гоночные рули — это устройства ввода, которые позволяют ощутить эффект присутствия в кабине настоящего гоночного автомобиля. Racing wheels are input devices that resemble the feel of a real racecar cockpit. Гоночные рули — это идеальные устройства ввода как для аркадных гоночных игр, так и для гоночных симуляторов легковых или грузовых автомобилей. Racing wheels are the perfect input device for both arcade-style and simulation-style racing games that feature cars or trucks. Поддержка гоночных рулей в приложениях UWP для Windows 10 и Xbox One реализована с помощью пространства имен Windows.Gaming.Input. Racing wheels are supported in Windows 10 and Xbox One UWP apps by the Windows.Gaming.Input namespace.
Гоночные рули для Xbox One доступны в разных ценовых категориях, а дорогие модели, как правило, обладают большим количеством улучшенных возможностей ввода и обратной связи по усилию. Xbox One racing wheels are offered at a variety of price points, generally having more and better input and force feedback capabilities as their price points rise. Все гоночные рули оснащаются аналоговым рулевым колесом, аналоговыми элементами управления газом и тормозом, а также кнопками, расположенными на руле. All racing wheels are equipped with an analog steering wheel, analog throttle and brake controls, and some on-wheel buttons. Некоторые гоночные рули, также оснащаются аналоговыми элементами управления сцеплением и ручным тормозом, рычагом переключения передач, а также поддерживают обратную связь по усилию. Some racing wheels are additionally equipped with analog clutch and handbrake controls, pattern shifters, and force feedback capabilities. Не все гоночные рули оснащаются одинаковым набором функций, а также отличаются друг от друга наличием или отсутствием поддержки определенных возможностей. Например, рулевые колеса могут поддерживать разные диапазоны вращения, а рычаги переключения передач — разное количество передач. Not all racing wheels are equipped with the same sets of features, and may also vary in their support for certain features—for example, steering wheels might support different ranges of rotation and pattern shifters might support different numbers of gears.
Возможности устройства Device capabilities
Различные колеса, которые применяют Xbox, предлагают различные наборы дополнительных возможностей устройств и различные уровни поддержки этих возможностей. Этот уровень вариации между одним типом входного устройства уникален среди устройств, поддерживаемых API Windows. Gaming. Input . Different Xbox One racing wheels offer different sets of optional device capabilities and varying levels of support for those capabilities; this level of variation between a single kind of input device is unique among the devices supported by the Windows.Gaming.Input API. Кроме того, большинство устройств, с которыми вам придется работать, будут поддерживать по крайней мере некоторые дополнительные возможности или другой функционал. Furthermore, most devices you’ll encounter will support at least some optional capabilities or other variations. По этой причине важно определить возможности каждого подключенного гоночного руля и обеспечить поддержку всего разнообразия возможностей, которые могут быть реализованы в вашей игре. Because of this, it’s important to determine the capabilities of each connected racing wheel individually and to support the full variation of capabilities that makes sense for your game.
Обратная связь по усилию Force feedback
Некоторые гоночные рули Xbox One поддерживают полноценную обратную связь по усилию, то есть эти устройства могут применять реальную силу к оси элемента управления (например, к рулевому колесу), а не обычную вибрацию. Some Xbox One racing wheels offer true force feedback—that is, they can apply actual forces on an axis of control such as their steering wheel—not just simple vibration. В играх эта возможность используется для более глубокого погружения в игровой процесс (имитация повреждения при столкновении, реалистичное ощущение езды), за счет чего сложность управления автомобилем также повышается. Games use this ability to create a greater sense of immersion (simulated crash damage, «road feel») and to increase the challenge of driving well.
Дополнительные сведения см. в разделе Обзор обратной связи по усилию. For more information, see Force feedback overview.
Навигация в пользовательском интерфейсе UI navigation
Чтобы облегчить задачу обеспечения поддержки разных устройств ввода для навигации в пользовательском интерфейсе и сохранить единообразие используемых для этого элементов управления в разных играх и на разных устройствах, большинство физических устройств ввода параллельно выполняют функцию отдельного логического устройства ввода под названием контроллер навигации в пользовательском интерфейсе. In order to ease the burden of supporting the different input devices for user interface navigation and to encourage consistency between games and devices, most physical input devices simultaneously act as a separate logical input device called a UI navigation controller. Контроллер навигации в пользовательском интерфейсе предоставляет стандартный набор элементов управления для команд навигации в пользовательском интерфейсе на разных устройствах ввода. The UI navigation controller provides a common vocabulary for UI navigation commands across input devices.
В силу того, что способ управления в них продиктован использованием исключительно аналоговых средств управления, и в силу некоторой степени различий между разными гоночными рулями, они, как правило, оснащаются цифровой крестовиной, кнопками View (Вид), Menu (Меню), A, B, X и Y, напоминающими кнопки на геймпаде. Эти кнопки изначально не предназначены для выполнения игровых команд и возможности их использования в качестве кнопок гоночного руля ограничены. Due to their unique focus on analog controls and the degree of variation between different racing wheels, they’re typically equipped with a digital D-pad, View, Menu, A, B, X, and Y buttons that resemble those of a gamepad; these buttons aren’t intended to support gameplay commands and can’t be readily accessed as racing wheel buttons.
В качестве контроллера навигации пользовательского интерфейса колеса по пропуску сопоставляют требуемый набор команд навигации с кнопками левого стика, D-Pad, представлений, меню, aи B . As a UI navigation controller, racing wheels map the required set of navigation commands to the left thumbstick, D-pad, View, Menu, A, and B buttons.
Команды навигации Navigation command | Кнопки на гоночном руле Racing wheel input |
---|---|
Up Up | Крестовина вверх D-pad up |
Down Down | Крестовина вниз D-pad down |
Левый Left | Крестовина влево D-pad left |
Правый Right | Крестовина вправо D-pad right |
Представление View | Кнопка просмотра View button |
Меню Menu | Кнопка меню Menu button |
Принять Accept | Кнопка A A button |
Отменить Cancel | Кнопка B B button |
Кроме того, в некоторых гоночных рулях может быть реализовано сопоставление некоторых дополнительных наборов навигационных команд с другими поддерживаемыми ими типами ввода, однако соответствие этих команд друг другу может быть разным на различных устройствах. Additionally, some racing wheels might map some of the optional set of navigation commands to other inputs they support, but command mappings can vary from device to device. Рассмотрите возможность реализации поддержки в том числе и этих команд, сначала убедившись в том, что они не будут использоваться в качестве важных команд для навигации в интерфейсе вашей игры. Consider supporting these commands as well, but make sure that these commands are not essential to navigating your game’s interface.
Команды навигации Navigation command | Кнопки на гоночном руле Racing wheel input |
---|---|
PAGE UP Page Up | непостоянно varies |
PAGE DOWN Page Down | непостоянно varies |
PAGE LEFT Page Left | непостоянно varies |
PAGE RIGHT Page Right | непостоянно varies |
Прокрутка вверх Scroll Up | непостоянно varies |
Прокрутка вниз Scroll Down | непостоянно varies |
Прокрутка влево Scroll Left | непостоянно varies |
Прокрутить вправо Scroll Right | непостоянно varies |
Контекстный вызов 1 Context 1 | Кнопка «X» (как правило) X Button (commonly) |
Контекстный вызов 2 Context 2 | Кнопка «Y» (как правило) Y Button (commonly) |
Контекстный вызов 3 Context 3 | непостоянно varies |
Контекстный вызов 4 Context 4 | непостоянно varies |
Обнаружение и отслеживание гоночных рулей Detect and track racing wheels
Обнаружение и отслеживание гоночных рулей происходит точно так же, как в случае геймпадов, за тем исключением, что вместо класса Gamepad используется класс RacingWheel. Detecting and tracking racing wheels works in exactly the same way as it does for gamepads, except with the RacingWheel class instead of the Gamepad class. Подробнее см. в статье Геймпад и вибрация. See Gamepad and vibration for more information.
(); for (auto racingwheel : RacingWheel::RacingWheels) < // This code assumes that you're interested in all racing wheels. myRacingWheels->Append(racingwheel); > «` ### Adding and removing racing wheels When a racing wheel is added or removed the [RacingWheelAdded](/uwp/api/windows.gaming.input.racingwheel.racingwheeladded) and [RacingWheelRemoved](/uwp/api/windows.gaming.input.racingwheel.racingwheelremoved) events are raised. You can register handlers for these events to keep track of the racing wheels that are currently connected. The following example starts tracking an racing wheels that’s been added. «`cpp RacingWheel::RacingWheelAdded += ref new EventHandler (Platform::Object^, RacingWheel^ args) < // This code assumes that you're interested in all new racing wheels. myRacingWheels->Append(args); > «` The following example stops tracking a racing wheel that’s been removed. «`cpp RacingWheel::RacingWheelRemoved += ref new EventHandler (Platform::Object^, RacingWheel^ args) < unsigned int indexRemoved; if(myRacingWheels->IndexOf(args, &indexRemoved)) < myRacingWheels->RemoveAt(indexRemoved); > > «` ### Users and headsets Each racing wheel can be associated with a user account to link their identity to their gameplay, and can have a headset attached to facilitate voice chat or in-game features. To learn more about working with users and headsets, see [Tracking users and their devices](input-practices-for-games.md#tracking-users-and-their-devices) and [Headset](headset.md). —>
Считывание данных с гоночного руля Reading the racing wheel
После выбора гоночных рулей, с которыми вы хотите работать, можно приступить к сбору данных, вводимых с помощью рулей. After you identify the racing wheels that you’re interested in, you’re ready to gather input from them. Тем не менее, в отличие от некоторых других типов вводимых данных, к которым вы уже могли привыкнуть, гоночные рули не передают данные об изменении состояния путем создания событий. However, unlike some other kinds of input that you might be used to, racing wheels don’t communicate state-change by raising events. Вместо этого для получения стандартной информации об их текущем состоянии вы проводите опрос. Instead, you take regular readings of their current states by polling them.
Опрос гоночного руля Polling the racing wheel
В ходе опроса сохраняется моментальный снимок гоночного руля в конкретный момент времени. Polling captures a snapshot of the racing wheel at a precise point in time. Такой подход к сбору входных данных отлично подходит для большинства игр, потому что их логика, как правило, выполняется в детерминированном цикле и не зависит от событий; кроме того, проще интерпретировать игровые команды из входных данных, собранных в один момент, чем из многочисленных единичных входных данных, собранных за определенный период. This approach to input gathering is a good fit for most games because their logic typically runs in a deterministic loop rather than being event-driven; it’s also typically simpler to interpret game commands from input gathered all at once than it is from many single inputs gathered over time.
Опрашивание гоночного руля выполняется путем вызова функции GetCurrentReading, которая возвращает структуру RacingWheelReading, содержащую состояние гоночного руля. You poll a racing wheel by calling GetCurrentReading; this function returns a RacingWheelReading that contains the state of the racing wheel.
В следующем примере кода выполняется опрос гоночного руля на предмет его текущего состояния. The following example polls a racing wheel for its current state.
Помимо состояния гоночного руля считанные данные содержат метку времени, указывающую точное время извлечения сведений о состоянии. In addition to the racing wheel state, each reading includes a timestamp that indicates precisely when the state was retrieved. Метку времени удобно использовать для обращения ко времени предыдущего события считывания данных или ко времени моделирования конкретного игрового момента. The timestamp is useful for relating to the timing of previous readings or to the timing of the game simulation.
Определение возможностей гоночного руля Determining racing wheel capabilities
Многие элементы управления гоночного руля являются дополнительными (необязательными) или поддерживают различные варианты использования даже применительно к основным (обязательным) элементам управления, поэтому перед тем как можно будет обработать данные ввода, собранные в ходе каждого события считывания данных с гоночного руля, вам необходимо определить возможности каждого гоночного руля по отдельности. Many of the racing wheel controls are optional or support different variations even in the required controls, so you have to determine the capabilities of each racing wheel individually before you can process the input gathered in each reading of the racing wheel.
К дополнительным элементам управления относятся ручной тормоз, сцепление и рычаг переключения передач. Вы можете определить, поддерживает ли подключенный руль эти элементы управления, выполнив считывание свойств HasHandbrake, HasClutch и HasPatternShifter гоночного руля. The optional controls are the handbrake, clutch, and pattern shifter; you can determine whether a connected racing wheel supports these controls by reading the HasHandbrake, HasClutch, and HasPatternShifter properties of the racing wheel, respectively. Элемент управления поддерживается, если значением свойства является true; в противном случае поддержка отсутствует. The control is supported if the value of the property is true; otherwise it’s not supported.
Кроме того, к элементам управления, характеристики которых могут различаться, относятся рулевое колесо и рычаг переключения передач. Additionally, the controls that may vary are the steering wheel and pattern shifter. У рулевых колес могут быть разные углы физического поворота, поддерживаемые фактическим рулевым колесом, а у рычагов переключения передач может быть разное количество передач переднего хода. The steering wheel can vary by the degree of physical rotation that the actual wheel can support, while the pattern shifter can vary by the number of distinct forward gears it supports. Вы можете определить наибольший угол поворота, поддерживаемый фактическим рулевым колесом, выполнив считывание свойства MaxWheelAngle гоночного руля. Это значение является максимальным поддерживаемым физическим углом поворота в градусах по часовой стрелке (положительная степень в градусах), которое аналогичным образом поддерживается в направлении против часовой стрелки (отрицательная степень в градусах). You can determine the greatest angle of rotation the actual wheel supports by reading the MaxWheelAngle property of the racing wheel; its value is the maximum supported physical angle in degrees clock-wise (positive) which is likewise supported in the counter-clock-wise direction (negative degrees). Вы можете определить максимальную переднюю передачу, поддерживаемую рычагом переключения передач, выполнив считывание свойства MaxPatternShifterGear гоночного руля. Это значение является самой высокой поддерживаемой передачей. То есть, если значение равно 4, это значит, что рычаг переключения передач поддерживает задний ход, нейтральную передачу, первую, вторую, третью и четвертую передачи. You can determine the greatest forward gear the pattern shifter supports by reading the MaxPatternShifterGear property of the racing wheel; its value is the highest forward gear supported, inclusive—that is, if its value is 4, then the pattern shifter supports reverse, neutral, first, second, third, and fourth gears.
Наконец, некоторые гоночные рули поддерживают обратную связь по усилию на рулевом колесе. Finally, some racing wheels support force feedback through the steering wheel. Вы можете определить, поддерживает ли подключенный гоночный руль обратную связь по усилию, выполнив считывание свойства WheelMotor гоночного руля. You can determine whether a connected racing wheel supports force feedback by reading the WheelMotor property of the racing wheel. Принудительная обратная связь поддерживается, если не WheelMotor равно null; в противном случае она не поддерживается. Force feedback is supported if WheelMotor is not null; otherwise it’s not supported.
Сведения о том, как использовать возможность обратной связи по усилию гоночных рулей, поддерживающих ее, см. в разделе Обзор обратной связи по усилию. For information on how to use the force feedback capability of racing wheels that support it, see Force feedback overview.
Чтение кнопок Reading the buttons
Каждая кнопка колесика прокрутки — содержит четыре направления D-панели, предыдущие шестеренки и кнопки со следующими кнопками, а 16 дополнительных кнопок — — цифровое чтение, которое показывает, была ли она нажата (вниз) или снята (up). Each of the racing wheel buttons—the four directions of the D-pad, the Previous Gear and Next Gear buttons, and 16 additional buttons—provides a digital reading that indicates whether it’s pressed (down) or released (up). В целях обеспечения эффективности эти показания кнопок не указываются в виде отдельных логических значений. Вместо этого все они упаковываются в одно битовое поле, представляемое перечислением RacingWheelButtons. For efficiency, button readings aren’t represented as individual boolean values; instead they’re all packed into a single bitfield that’s represented by the RacingWheelButtons enumeration.
Гоночные рули оснащаются дополнительными кнопками, используемыми для навигации в пользовательском интерфейсе, такими как кнопки View и Menu. Racing wheels are equipped with additional buttons used for UI navigation such as the View and Menu buttons. Эти кнопки не являются частью перечисления RacingWheelButtons и данные с них можно считать, только если войти в гоночный руль как в устройство навигации в пользовательском интерфейсе. These buttons are not a part of the RacingWheelButtons enumeration and can only be read by accessing the racing wheel as a UI navigation device. Дополнительные сведения см. в разделе Устройство навигации по пользовательскому интерфейсу. For more information, see UI Navigation Device.
Значения кнопок считываются из свойства Buttons структуры RacingWheelReading. The button values are read from the Buttons property of the RacingWheelReading structure. Так как это свойство представляет собой битовое поле, для изоляции значения кнопки, сведения о которой вам интересны, используется побитовая маскировка. Because this property is a bitfield, bitwise masking is used to isolate the value of the button that you’re interested in. Кнопка нажата (вниз), когда установлен соответствующий бит; в противном случае кнопка отпущена (вверх). The button is pressed (down) when the corresponding bit is set; otherwise, it’s released (up).
Следующий пример кода определяет, нажата ли кнопка Next Gear. The following example determines whether the Next Gear button is pressed.
Следующий пример кода определяет, отпущена ли кнопка «Next Gear». The following example determines whether the Next Gear button is released.
Иногда нужно определить, когда кнопка переходит из нажатого состояния в отпущенное или наоборот, узнать состояние сразу нескольких кнопок (нажаты или отпущены) либо определить особую схему расположения кнопок в наборе — некоторые кнопки могут быть нажаты, а другие отпущены. Sometimes you might want to determine when a button transitions from pressed to released or released to pressed, whether multiple buttons are pressed or released, or if a set of buttons are arranged in a particular way—some pressed, some not. Сведения о том, как определить эти условия, см. в разделах Определение положений кнопки и Определение сложных схем положений кнопок. For information on how to detect these conditions, see Detecting button transitions and Detecting complex button arrangements.
Считывание данных с рулевого колеса Reading the wheel
Рулевое колесо является основным элементом управления и позволяет считывать с него аналоговые данные в диапазоне от -1,0 до +1,0. The steering wheel is a required control that provides an analog reading between -1.0 and +1.0. Значение, равное -1,0, соответствует крайнему левому положению рулевого колеса; значение +1,0 соответствует крайнему правому положению. A value of -1.0 corresponds to the left-most wheel position; a value of +1.0 corresponds to the right-most position. Значение положения рулевого колеса считывается из свойства Wheel структуры RacingWheelReading. The value of the steering wheel is read from the Wheel property of the RacingWheelReading structure.
Несмотря на то, что показания рулевого колеса соответствуют разным углам физического поворота фактического рулевого колеса в зависимости от диапазона вращения, поддерживаемого физическим гоночным рулем, масштабировать показания рулевого колеса, как правило, не требуется. Рулевые колеса, поддерживающие большие углы вращения, просто обеспечивают более высокую точность показаний. Although wheel readings correspond to different degrees of physical rotation in the actual wheel depending on the range of rotation supported by the physical racing wheel, you don’t usually want to scale the wheel readings; wheels that support greater degrees of rotation just provide greater precision.
Считывание данных с элементов управления газом и тормозом Reading the throttle and brake
Газ и тормоз являются основными элементами управления и позволяют считывать с них аналоговые данные в диапазоне от 0,0 (полностью отпущен) до 1,0 (полностью нажат), представляемые значениями с плавающей запятой. The throttle and brake are required controls that each provide analog readings between 0.0 (fully released) and 1.0 (fully pressed) represented as floating-point values. Значение элемента управления газом считывается из свойства Throttle структуры RacingWheelReading, а значение элемента управления тормозом считывается из свойства Brake . The value of the throttle control is read from the Throttle property of the RacingWheelReading struct; the value of the brake control is read from the Brake property.
Считывание данных с элементов управления ручным тормозом и сцеплением Reading the handbrake and clutch
Ручной тормоз и сцепление являются дополнительными элементами управления и позволяют считывать с них аналоговые данные в диапазоне от 0,0 (полностью отпущен) до 1,0 (полностью нажат), представляемые значениями с плавающей запятой. The handbrake and clutch are optional controls that each provide analog readings between 0.0 (fully released) and 1.0 (fully engaged) represented as floating-point values. Значение элемента управления ручным тормозом считывается из свойства Handbrake структуры RacingWheelReading, а значение элемента управления сцеплением считывается из свойства Clutch . The value of the handbrake control is read from the Handbrake property of the RacingWheelReading struct; the value of the clutch control is read from the Clutch property.
Считывание данных с рычага переключения передач Reading the pattern shifter
Рычаг переключения передач является дополнительным элементом управления и позволяет считывать с него цифровые данные в диапазоне от -1 до MaxPatternShifterGear, представляемые целым значением со знаком. The pattern shifter is an optional control that provides a digital reading between -1 and MaxPatternShifterGear represented as a signed integer value. Значение, равное -1 или 0, соответствует заднему ходу и нейтральной передаче соответственно; увеличивающиеся положительные значения соответствуют более высоким передним передачам до значения MaxPatternShifterGear включительно. A value of -1 or 0 correspond to the reverse and neutral gears, respectively; increasingly positive values correspond to greater forward gears up to MaxPatternShifterGear, inclusive. Значение смещения шаблона считывается из свойства паттерншифтержеар структуры раЦингвхилреадинг . The value of the pattern shifter is read from the PatternShifterGear property of the RacingWheelReading struct.
Рычаг переключения передач (если поддерживается) размещается рядом с основными кнопками Предыдущей передачи и Следующей передачи, что также влияет на текущую включенную передачу автомобиля игрока. The pattern shifter, where supported, exists alongside the required Previous Gear and Next Gear buttons which also affect the current gear of the player’s car. Простой стратегией унификации использования этих устройств ввода, когда оба из них имеются в наличии, будет игнорирование рычага переключения передач (и сцепления) при выборе игроком автоматической коробки переключения передач для своего автомобиля, а также игнорирование кнопки Предыдущей и Следующей передачи при выборе игроком ручной коробки переключения передач для своего автомобиля, только если гоночный руль игрока оснащен элементом управления рычагом переключения передач. A simple strategy for unifying these inputs where both are present is to ignore the pattern shifter (and clutch) when a player chooses an automatic transmission for their car, and to ignore the Previous and Next Gear buttons when a player chooses a manual transmission for their car only if their racing wheel is equipped with a pattern shifter control. Если такая стратегия не подходит для вашей игры, можно реализовать другую стратегию унификации. You can implement a different unification strategy if this isn’t suitable for your game.
Запуск примера кода InputInterfacing Run the InputInterfacing sample
В примере кода InputInterfacingUWP (в центре GitHub) показано, как использовать гоночные рули и разные типы устройств ввода вместе, а также представлено, как эти устройства ввода работают в качестве контроллеров навигации в пользовательском интерфейсе. The InputInterfacingUWP sample (github) demonstrates how to use racing wheels and different kinds of input devices in tandem, as well as how these input devices behave as UI navigation controllers.
Обзор обратной связи по усилию Force feedback overview
Многие гоночные рули поддерживают обратную связь по усилию, обеспечивающую более глубокое погружение в игру, и усложняя процесс вождения, делая его более реалистичным. Many racing wheels have force feedback capability to provide a more immersive and challenging driving experience. Гоночные рули, поддерживающие обратную связь по усилию, как правило, оснащены одним моторчиком, который применяет усилие к рулевому колесу вдоль одной оси, а именно оси вращения колеса. Racing wheels that support force feedback are typically equipped with a single motor that applies force to the steering wheel along a single axis, the axis of wheel rotation. Принудительная обратная связь поддерживается в Windows 10 и Xbox One в приложениях UWP с помощью пространства имен Windows. Gaming. input. форцефидбакк . Force feedback is supported in Windows 10 and Xbox One UWP apps by the Windows.Gaming.Input.ForceFeedback namespace.
API-интерфейсы обратной связи по усилию могут поддерживать работу с несколькими осями усилия, однако в настоящий момент все гоночные рули для Xbox One поддерживают обратную связь по усилию применительно только к оси вращения рулевого колеса. The force feedback APIs are capable of supporting several axes of force, but no Xbox One racing wheel currently supports any feedback axis other than that of wheel rotation.
Использование обратной связи по усилию Using force feedback
В этих разделах приведены основы программирования эффектов обратной связи по усилию для гоночных рулей Xbox One. These sections describe the basics of programming force feedback effects for Xbox One racing wheels. Обратная связь обеспечивается с помощью эффектов, которые сначала загружаются в устройство обратной связи по усилию. После этого их работу можно запускать, приостанавливать, возобновлять и останавливать подобно звуковым эффектам. Однако сначала необходимо определить возможности обратной связи гоночного руля. Feedback is applied using effects, which are first loaded onto the force feedback device and then can be started, paused, resumed, and stopped in a manner similar to sound effects; however, you must first determine the feedback capabilities of the racing wheel.
Определение возможностей обратной связи по усилию Determining force feedback capabilities
Вы можете определить, поддерживает ли подключенный гоночный руль обратную связь по усилию, выполнив считывание свойства WheelMotor гоночного руля. You can determine whether a connected racing wheel supports force feedback by reading the WheelMotor property of the racing wheel. Обратная связь по усилию не поддерживается, если свойство WheelMotor имеет значение ноль. В противном случае обратная связь по усилию поддерживается и вы можете определить конкретные возможности обратной связи моторчика (например, оси, на которые он воздействует). Force feedback isn’t supported if WheelMotor is null; otherwise, force feedback is supported and you can proceed to determine the specific feedback capabilities of the motor, such as the axes it can affect.
Загрузка эффектов обратной связи по усилию Loading force feedback effects
Эффекты обратной связи по усилию загружаются в устройство обратной связи, в котором они в «автономном режиме» воспроизводятся по команде игры. Force feedback effects are loaded onto the feedback device where they are «played» autonomously at the command of your game. Предоставляется ряд основных эффектов. пользовательские эффекты можно создавать с помощью класса, реализующего интерфейс ифорцефидбаккеффект . A number of basic effects are provided; custom effects can be created through a class that implements the IForceFeedbackEffect interface.
Класс эффекта Effect class | Описание эффекта Effect description |
---|---|
ConditionForceEffect ConditionForceEffect | Эффект, который применяет переменное усилие в ответ на текущие показания датчика, встроенного в устройство. An effect that applies variable force in response to current sensor within the device. |
ConstantForceEffect ConstantForceEffect | Эффект, который применяет постоянное усилие вдоль вектора. An effect that applies constant force along a vector. |
PeriodicForceEffect PeriodicForceEffect | Эффект, который применяет вдоль вектора переменное усилие, определяемое формой волны. An effect that applies variable force defined by a waveform, along a vector. |
RampForceEffect RampForceEffect | Эффект, который применяет линейно возрастающее/уменьшающееся усилие вдоль вектора. An effect that applies a linearly increasing/decreasing force along a vector. |
Использование эффектов обратной связи по усилию Using force feedback effects
После загрузки работу эффектов можно синхронно запускать, приостанавливать, возобновлять и останавливать путем вызова функций в свойстве WheelMotor гоночного руля либо по отдельности путем вызова функций непосредственно в самом эффекте обратной связи. Once loaded, effects can all be started, paused, resumed, and stopped synchronously by calling functions on the WheelMotor property of the racing wheel, or individually by calling functions on the feedback effect itself. Как правило, все эффекты, которые требуется использовать на устройстве обратной связи, необходимо загрузить до начала игры, а затем использовать соответствующие им функции SetParameters для обновления эффектов в ходе игры. Typically, you should load all the effects that you want to use onto the feedback device before gameplay begins and then use their respective SetParameters functions to update the effects as gameplay progresses.
Наконец, когда это необходимо, можно асинхронно включать, отключать или перезагружать всю систему обратной связи по усилию на конкретном гоночном руле. Finally, you can asynchronously enable, disable, or reset the entire force feedback system on a particular racing wheel whenever you need.
Источник статьи: http://docs.microsoft.com/ru-ru/windows/uwp/gaming/racing-wheel-and-force-feedback