HEXA BLOG

プログラム

HEXA BLOGプログラム2018.4.16

ゲームデバイス向けアプリ

ゲームデバイス向けアプリ
こんにちは、レインボーシックスシージ熱再燃中のガッキーです。
自分は良くPCでFPSゲームをしています。
PCに限らずですが、マウスやキーボードをゲーム向けに作った、ゲームデバイスなるものが存在します。
自分が使っているマウスはSteelSerieseのRival300というものを使用しており、
SteelSerieseEngine3(以降sse3)というソフトウェアで感度やLEDの色を設定できます。
sse3ではEngineアプリというものがあり、
対応しているアプリケーションと連携してLEDの色を変えたりゲームの状態をLEDの色で表現したりすることができます。
CS:GOなどでは、自身の体力を色でLED表示してくれたりします。(手で隠れるので恐らく見えないかもしれないですが…)
このEngineアプリですが、自身で対応アプリを作成して、LEDの色を変えることができます。
どうやって作成するのか気になったので、やってみました。

sse3対応のサンプルやドキュメントはこちらにあります。
sse3に対して通信を行うことでマウスのLEDの色を変更します。

マウスのLEDの色を変更する手順は大まかに下記のとおりです。
1. coreProps.jsonから接続先のアドレスとポートを取得
2. 取得してきたアドレスとポートに対してゲームの登録
3. 取得してきたアドレスとポートに対してゲームイベントの登録
4. 登録したゲームイベントの発行

coreProps.jsonから接続先のアドレスとポートを取得
まず初めにsse3に対して通信を行うので、接続先のアドレスを取得します。
接続先はcoreProps.jsonに記載されているので、Jsonのデータをデシリアライズし、
アドレスとポートを取得してきます。
• coreProps.jsonは下記のようなフォーマットです。

• %PROGRAMDATA%/SteelSeries/SteelSeries Engine 3/にあるcoreProps.jsonをデシリアライズします。

• JsonUtilityの実装は下記のとおりです。

取得してきたアドレスとポートに対してゲームの登録
次にゲームの登録を行うのですが、sse3に対してゲームを登録するには、
指定のアドレスに対して、Jsonデータを送信する必要があります。
そのため、Http通信で指定のアドレスにJsonデータを送信する関数を用意します。
• 下記関数はsse3接続先+extraAddress(ゲームの登録だと/game_metadata)に対してJsonデータを送るものです。

• 上記関数で使用している変数は関数外で宣言しています。

• 上記送信用関数を使用し、ゲームの登録を行います。
ゲームの登録はsse3接続先/game_metadataに対してゲーム登録用のJsonデータを送信して行います。

• gameSetting.jsonのデータは下記のとおりです。

• ここまででsse3に自分のアプリケーションが追加されます。

• 「コンフィグ」を選択すると下記のような画面になります。
まだゲームの登録以外していないので、何もできません。

ゲームイベントの登録
マウスのLEDの色を変更するために、ゲームイベントの登録が必要です。
ゲームの登録同様にゲームイベントの登録を行っていきます。
• sse3接続先/bind_game_eventにイベント登録用のJsonデータを送信します。

• gameEvent.jsonのデータは下記のとおりです。
gameに登録したゲーム名を
handlers内にどのようなイベントかを定義したものです。
詳細はこちらを参照してください。
下記はマウスのLED部分を青色にするイベントになります。

• ここまでで実行すると先ほど「コンフィグ」から入っていた画面が下記のようになっています。
上記のJsonで設定した通り、マウスのLED部分が青色の設定になっています。
しかし、まだマウス自体のLEDの色は変わりません。
マウス自体のLEDの色をこの画面と同じにするためには、
イベントの発行が必要です。

登録したゲームイベントに対して、イベント発行
ゲームイベントを登録し終えたら、そのイベントの発行を行います。
sse3では15秒以上ゲームイベントの発行がないと、イベントが終了するので、
定期的にイベントを発行を行います。
送信先はsse3接続先/game_eventです。
• 定期的に発行するためにTimerを使用して実装を行います。

• gameEventExcec.jsonは下記のとおりです。

• これにより、マウス自体のLEDが上記で設定したイベント通り青色になります。

以上が、マウスのLEDの色を変える方法です。
終了する際は下記のようにゲーム、ゲームイベントを削除することで、
Engineアプリの一覧から削除されます。
• ゲームイベント、ゲームの削除

• deleteGameEvent.json

• deleteGame.json

今回紹介させていただいたのは、ゲームデバイスに対応したアプリ作成の簡単なものですが、
皆さんの周りのデバイスにも自分でアプリケーションを開発できるものがあるかもしれません。
割と身近なものからアプリケーション開発や、プログラムの勉強ができるので、
調べてアプリケーション開発ができるものがあったら、是非挑戦してみてください!それでは!

RECRUIT

大阪・東京共にスタッフを募集しています。
特にキャリア採用のプログラマー・アーティストに興味がある方は下のボタンをクリックしてください

RECRUIT SITE