Splatoon2で自動ドット打ちをしてくれるプログラムが凄かった話

TechAcademyでメンターをしています

今更ではありますが、過日Nintendo Switchを購入しまして、ひたすらペンキを塗っている今日この頃です。
やっとガチマッチB帯に突入したのですが、その気持ちを表現したい! と思って調べたのがこちらの内容です。
たまにはこういう内容もいいかなと思い、誰かの参考になればと書いておきます。

この記事の目次

いくら探してもMac向けの日本語情報に行き当たらなかった

情報はWindows向けの物が多く、昔からMac使いの私としてはどうにもなりませんでした。
そんなこんなで英語の情報を探してみるも、やはりみつからず…。そんなこんなでいろいろ放置していたのですが、やっとかみ砕けるレベルまで来たので一念発起でやってみると、数時間で対応できました。その記録です。

ところで何の話?

Splatoon2では、イラストを投稿できる機能があります。ただ、そこに投稿されてるアレコレが凄い。本当にドット打ちしたの?! っていうくらいすごいモノが増えていました。
で、流石に…と調べて行き着いたのが、switch-fightstickでした。
もちろん英語での解説です。いろいろ調べたのですが、どうやら、Nintendo Switch(以下、Switch)のファームウェアが3.0.0になった段階でポッ拳コントローラが使える様になったそうです。それをエミュレートして(あるいはそれを上書きする形で)ドット打ちを自動化させようというのが、こいつです。考える人は考えますなぁ。

ということで、コレをMacでどうやって操るかという話です。

必要な物

- Teensy 2.0++ (3系はダメだそうです。細かいことは知らないけど、みんなコレを書いています。)
- イラストを描けるアプリ等 (PNGで書き出せるとベストと言われている。イラレ・フォトショ可。)
- USB-B Mini - USB-Cのケーブル (あるいはそれに相当するような変換ケーブル。TeensyをMacと繋ぐほか、Switchとも接続するのに利用。)
- Mac本体 (USBがついていれば大抵大丈夫だと思う。)
- 黒い画面とか白い画面とかと字を打って戦う気力 (簡単なターミナルコマンドやファイルパスに関する知識とかがあるとベスト。)

買いに行く

Teensy 2.0++は秋葉原で買えました。
4,000円なり。こんなちっさいのに?! っていう人も居そうですが、半導体ってそんなモン。むしろやすいですよね。うん。

ケーブルは、MacBook Pro Late 2016なのでUSB-Cを積んでいることもあり、Switchと共通で使えるケーブルを用意しました。980円なり。

他は無料で使えると言って良いでしょう。

Macの環境整備

難しいことはないのですが、黒い画面恐怖症な方には辛いかもしれませんねぇ。
でも、折角Macなので、ターミナルを使いましょう。 (ちなみにターミナルの画面って白いですよね。うん)

Homebrewを入れる

Homebrewとは、様々なパッケージを管理してくれるツールです。
そもそもそれを入れるためにXcodeが必要です。正確に言うとCommand Line Tools for Xcodeが必要なんですが、それはXcodeを入れることで自動的に入る物なので、Xcodeをインストールしましょう。
ちなみに容量がGB単位なので、安定したネット環境と、余裕のある時間に実施することをお勧めします。

作業自体は簡単でAppStoreで検索→インストールです。ここからも行けるハズ。

それが終わってから、Homebrewのインストールです。
Launchpadから、ユーティリティ、ターミナルを起動しましょう。 (おわかりの方は同等アプリで大丈夫です。お好きな物でどうぞ)
Homebrewのサイトに書いてあるコードをコピーして貼り付けます。 (時により変わる可能性があるので確認推奨です)

ちなみに今書いてある内容は以下の通り。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

少し時間がかかると思います。途中で Password: と表示されて画面が止まりますが、Macのログインパスワードを入れるようにしましょう。 パスワードを入力するときには文字が出ません 。 (コレはUNIX系OS共通の仕様で、パスワードの盗み見を防ぐ物です) ですので自信を持って打って、Enterキーを暴打押下しましょう。

はい、エラーが出なければ大丈夫。先に進みましょう。

brew doctor

こちらを実行します。環境が大丈夫そうか確認をしてくれます。
何か問題がありそうなら、教えてくれますので、対応しましょう。対応方法はそのとき次第なので、ここではスルー割愛します。

Your system is ready to brew.

と表示されていればOKです。

念のため

brew update

を実行して最新版にしておきましょう。
コレでHomebrewのインストールは完了。ほれ、簡単だったでしょう?

Gitとavr系のいろいろを入れる

Homebrewを入れたのはこれらを入れるため。
コマンドは二行で大丈夫です。

brew install git
brew cask install crosspack-avr

コレで2つが入ります。Windows向けだとavrなんちゃらっていうのを入れるようなコマンドですが、Macではコレで大丈夫。
パスワードを聞かれたら自信を持って…(以下略)。

Teensy Loaderをダウンロード

こちらからTeensy Loaderをダウンロード。
アプリケーションフォルダあたりにドラッグ&ドロップしておくと良いのでは無いかと思います。でもどこでも大丈夫。よしなに。

Pythonのインストール

最近、人工知能や機械学習とかでよく聞くPythonですが、環境構築は親切です。
公式サイトから、2.7系をインストールしましょう。
3系で動くかは確認していないだけです。2.7系を選びましょう。

switch-fightstick本体の導入

同じくコマンドで処理していきます。
場所はよしなに。switch-fightstickのファイルを置きたい場所で実行しましょう。
今回はライブラリのLUFAが同梱されている物を利用します。面倒なので。

git clone https://github.com/EsProgram/Switch-Fightstick.git
cd Switch-Fightstick

コレだけで大丈夫。これ以降のコマンドはこの位置にいることを前提に進めていきます。

絵を描く

サイズは320×120。その他自由! 描け!

Teensyに画像データをぶっこむ

カラーのままでも画像は大丈夫そうです。

python png2c.py [画像ファイルのパス]

同じ所に画像ファイルを置くのが簡単ですね。そうであれば、パスの所はファイル名だけで大丈夫です。
コレを実行してうまく行かないようであれば、何かしらのモジュールが足りてない感じでしょうかね。
ここもエラー次第で対応方法が変わるので、エラーの文言をグーグル先生に伝えてみましょう。何か良い情報を教えてくれるはず。

うまく行くと、こんなメッセージが出ます。

[画像ファイルのパス] converted with original colormap and saved to image.c

コレでオッケー。

更にコマンドを実行します。

make

簡単!
コレでアレコレしてくれます。

[INFO] : Finished building project "Joystick".

と出れば成功。書き込みデータができあがりました。

ここからはさっきダウンロードしたTeensy Loaderを使います。

  1. Teensy Loaderを起動
  2. Teensy 2.0++をMacに接続
  3. FILE → Open HEX File(メニューでは一番左のアイコンでも可)でSwitch-Fightstickフォルダの中に出来たJoystick.hexファイルを開く
  4. Teensy 2.0++のスイッチを押す
  5. Operation → Program(メニューでは真ん中のアイコンでも可)で書き込む
  6. Operation → Reboot(メニューでは一番右のアイコンでも可)でTeensyを再起動

コレで完了! さぁ、書き込みましょう。

Switchで描かせる

Splatoon2を起動し、投稿画面に進みます。
わかりやすいですが、赤いポストがそれです。
投稿画面に入ってから、Teensyを接続するのですが、その前にカーソルは左上に移動しましょう。そこから描画が始まります。

一応、最小のブラシにして…と指示されているのですが、私の場合、接続したら1つ上のサイズに移動してしまったので、繋いだ直後にブラシサイズが変更されたら、すぐに最小に戻す様にしました。

あとは、勝手に進むので30分程度待ちましょう。


こんな感じで描けるようになりました!
お手軽ですね。コレなら毎日更新とかも出来る勢い。

イラレで作ったデータを使ってアレコレしています。そのうち良い素材が見つかればいろいろ試してみるつもりです。
みなさま快適なイカライフを! (フレンド申請歓迎です)

この記事を書いた人

ささぴよ

TechAcademy公認エバンジェリスト
株式会社シノビアシ 取締役副社長 兼 CTO

中学時代に買ってもらったPerforma 550以降ずっとアップル製品漬けの人生。iPhoneは日本上陸時から愛用し続けている。
「誰かが作っているなら、自分でも作れるはず!」という安易な発想からHP制作などを始め、ネットの世界から情報を集めてひたすらいろんなことをやってみるようになった。

TechAcademyでは、Webデザイン / WordPress / UI/UX / Node.js / OSS活動 / デザイン実践ポートフォリオ / フリーランスサポートのコース を担当するメンター。

よく歌って踊っている。