Splatoon中に電子レンジを赤く照らして牽制する

f:id:piroz95:20160303211650j:plain
(台所の照明を消した状態です)

経緯

「Splatoonの試合中に電子レンジを使われると接続が切れる」という現象は、実家Splatoonプレイヤーの多くが悩まされていると思います。
僕の場合、無線LAN親機とWiiUが階をまたいで離れているので有線接続も難しいです。

家族は僕のSplatoonプレイに協力的で、レンジを使う前にSplatoon中か確認を取ってくれます。
しかし、キッチンとWiiUは遠いので何かと負担をかけてしまいます。
そこでHueを使ってSplatoonプレイ中かどうかをキッチンに通知することにしました。

最終的な構成

f:id:piroz95:20160303182303p:plain

WiiUの映像をキャプチャしてIkaLogが試合開始と終了を判別し、スクリプトを実行します。
スクリプトが自作アプリHotaruIkaのボタンを自動クリックすることで、HotaruIkaがHueのAPIを叩いてHueが点きます。

Hue

Philips hue(ヒュー) スターターセット 929000259907 リテールパッケージ

Hueはスマート電球と言えるものの一つで、遠隔操作で色や明るさを変えることができます。
色は普通の電球のような色から、カラフルな色も出せます。(ただ水色は出ない)
明るさは、最小にすれば直接見ても眩しくないくらいです。最大は眩しいです。普通に電球です。
他にもタイマー機能などがありますがまだ使ってません。

パソコンからHueを操作できるようにする

HueはAPIが公開されています。
HTTPリクエストでJSONを送るとJSONが帰ってくる形式のようで、とても簡単そうです。

折角なのでアプリは自作することにしました。
買って色々調べるまではJSONを投げる気マンマンでした。
が、そもそも公式でSDKとサンプルプログラムが用意されていて、JSONをパースするまでもない様子。

結局サンプルを基に改造したら実装する部分がほとんどありませんでした。

HotaruIka

f:id:piroz95:20160303180201p:plain
できたアプリがこれです。イカ関連で光りそうな安直な名前にしました。
特定のHueをオフ、黄色に点灯、赤に点灯のいずれかにします。
赤が試合中、黄色がSplatoonプレイ中を表します。
Splatoonのプレイを開始するときに起動すれば、自動で黄色の点灯を始めます。
適当なボタンを押すことで状態が切り替わるほか、一定時間放置や終了でオフになります。

IkaLog

f:id:piroz95:20160303210553p:plain

IkaLog って何ができるの

任天堂WiiU 用ソフト「スプラトゥーン」の画面をリアルタイム解析して、 いろいろなことができるソフトです。

https://github.com/hasegaw/IkaLog/blob/master/doc/IkaUI.md

IkaLogの機能は本当に色々あります。
例えば、自動録画とリネームを行うことや、
f:id:piroz95:20160303195238p:plain
stat.inkと連携して戦績を保存することができます。
stat.ink | ぴろずさんのイカログ

IkaLogの自動録画機能でHotaruIkaを操作させる

IkaLogのGUI版のIkaUIを用いました。
自動録画は、試合の開始時と終了時にスクリプトを呼び出すので、スクリプトを編集して、HotaruIkaのボタンを操作するように追加します。
IkaUIに付属するスクリプトは、AutoITを使って書かれています。
AutoITには、ウィンドウを探す関数やボタンを押す関数が用意されているので、自動操作が簡単に書けます。
SwingのボタンはAutoITで探せないようなので、WinGetPos,WinActivate,MouseClickといった関数でごまかしました。
マウスを操作するので、試合の合間にtwitterを見てたりすると誤操作があり得ます・・・

まとめ

  • 協力があって成り立ってます
  • 繋げる部分のわずかな実装だけでできた
  • Hueすごいし簡単に動かせる
  • IkaLogすごい
  • Splatoon楽しい

Hue高かったので、他の使い方を考え中です。IFTTTを試してみようと思います。

Splatoonの話はよく@piroz_jkでつぶやいています。
メインブキはダイナモローラーテスラです。