細かい検証は行っておりませんので、自己責任でお願いします。
初稿:Logicool G HUB バージョン2020.1.31155
追記1:Logicool G HUB バージョン2021.9.7463
追記2:Logicool G HUB バージョン2021.10.8013
手動で.exe追加しても、切り替わらない・・・
G HUBにおいてPUBGのテストサーバの.exeを、自動で作られるPUBGのプロファイルのカスタムパスとして追加したが、ゲームを起動してもプロファイルが切り替わらない。
実行ファイルの方式?はライブサーバ版とテストサーバ版では変わらないはずなのになぜ?
#どうやって認識してるの?
自動で作られるプロファイルのパスは、Steamのゲームの場合
C:\Program Files(x86)\Steam\steamapps\common\PUBG
のようにゲームフォルダまでで、.exeで指定されていない。
そこで、どのようにして、ゲームを認識しているかを解析してみた。
設定に関するファイルらしき物を探して中身をみていたら、
C:\Program Files\LGHUB\data 内の
applications.json
に奇妙な記述があった。
"detection": [
{
"steam": {
"appId": "578080"
}
}
],
"name": "PlayerUnknown's Battlegrounds",
"poster_url": "pipeline://core/applications/playerunknowns_battlegrounds_poster.jpg",
"profile_url": "pipeline://core/applications/playerunknowns_battlegrounds_profile.jpg",
"version": 3
"detection"? 検知方法とかかな?
この"appId"の番号はsteamのストアの商品URLなどに使われるIDと同じだった。
これによりsteamから起動しているゲームの情報をもらっているのだと推測できる。
#こうしたらできました
applications.jsonに同じ書き方でsteamのゲームを追加すれば解決。
applications.jsonの構造はこうなっている(一例)
{
"applications": [
{
"applicationId": "アプリケーションID(G HUB内のアプリケーション識別子)",
"commands": [
ゲーム特有のコマンド(省略)
],
"detection": [
{
"steam": {
"appId": "steamでのID"
}
}
],
"name": "ゲーム名",
"poster_url": "プロファイルの画像の取得先",
"profile_url": "プロファイルの画像の取得先",
"version": 3
},
]
}
"detection"がゲームの検知方法だと思われるが、steam以外にもレジストリを指定したりしていたが、ここではsteamを利用したゲームの検知に限定する。
よってPUBGのテストサーバを追加するには
- G HUBを一旦終了させる
- C:\Program Files\LGHUB\data\applications.json内のPUBGの部分をコピペ(ファイルのパスはG HUBのインストール先によって異なる)
- "applicationId"を別の値にする(おそらく重複していなければ何でも良い)
- "name"のゲーム名は同じでも構わない
- "appId"をPUBGテストサーバのにする(622590)
- 管理者権限を使って上書き保存(一瞬コマンドプロンプトが立ち上がる)
- G HUBを起動する
するとゲームのパスを指定していないのに、追加されている。
まぁよく見つけたなぁって感じですね~~
~~この現象については、後日別の記事でもう少し細かく解説しようと思う~~
さいごに
個人的な意見になりますが、Logicoolはハードに関しては良いものを作っているが、ソフトの可用性がイマイチで、もどかしい感じが強いです。技術的にそこまで難しいことではないと思うんですけどね。