2021年1月10日日曜日

snapでUbuntuにインストールしたゲームとゲームパッドを連携させる


背景

前回xbox series xのコントローラーをubuntuで扱う設定を調べました。
OSにゲームパッドとして認識されたコントローラーならsnapでインストールしたゲームで認識されるだろうと思ったら、コマンドでの設定変更が必要で思ってたより手間でした。
備忘録を兼ねて設定方法を共有します。

使ったもの


連携させたゲーム: live for speed

今回はlive for speedというレースゲームにコントローラーを認識させます。
live for speedは下記のコマンドでUbuntu20.04にインストールできます。
sudo apt update
sudo apt install snapd
sudo snap install wine-platform-3-stable
sudo snap install wine-platform-runtime
sudo snap install liveforspeed

アプリ検索画面からアイコンを選んで実行しても動かないときは、コマンドで実行してみると動かない理由が分かることがあります。
下記の画像はwine-platform-runtimeをインストールせずに実行した場合のエラーです。


依存関係を全て満たしていれば、アプリ検索からのアイコン選択でも、コマンド実行でもlive for speedを起動できます。


参考: Live For Speed Available to Install via Snap in Ubuntu

設定情報を確認し、ジョイスティックを設定

下記のコマンドを実行するとlive for speedの設定状況が分かります。
snap connections liveforspeed
その結果、joystickは何も設定されてないと分かりました。
下記の表示は分かりやすいようにjoysyickの部分だけを抜き出しています。
Interface               Plug                           Slot                                  Notes
joystick liveforspeed:joystick - -
調べたところ、どうもjoystickの設定はsnapは自動(auto)では無いようです。

下記のコマンドを実行すると、live for speedにjoystickを設定できます。
sudo snap connect liveforspeed:joystick :joystick

設定コマンドを実行し、joystickに関する設定が下記のように変わっていたら、OSがgamepadとして認識するコントローラーをlive for speedでも使えるはずです。
snap connections liveforspeed
Interface               Plug                           Slot                                  Notes
joystick liveforspeed:joystick :joystick manual


live for speedの設定画面でコントローラーを確認し、ボタンを設定できました。


余談: live for speedのアクセルは、標準では同軸になっていてアクセルボタンではなく上ボタンで加速する

アクセルボタンを設定したのにボタン押しでもマウスのクリックでも車が動かないので不具合かと思っていたら、ギアを上げて意図せず上ボタンを押したら動きました。

これは「アクセル/ブレーキ軸」が「同軸」になっているのが原因です。
ボタン操作でアクセルとブレーキを操作したい場合は、これを「ボタン」にします。


まとめ

snapでインストールしたゲームに対してjoystickの設定コマンドを実行することで、Ubuntuがゲームパッドとして認識しているコントローラーでゲームを操作できました。

0 件のコメント :