スプラトゥーン3のイラスト投稿自動ドット打ち
結論
できました。
参考
次の2つの記事を参考にしました。
スプラトゥーン3のイラスト投稿とは
スプラトゥーン3のバンカラ街の通りにある赤いポストからドット絵をイラスト投稿することができます。
イラストを投稿をすると、バンカラ街のカンバンやラクガキに表示されたり、街にいるイカちゃんの簡易プロフィールに投稿したイラストが掲載されるようになります(※ただし自分自身で直接プロフィールを確認することはできないため、一緒に遊んだ友人などに確認してもらう必要があります)。
今回使った機材
Linux PC(Ubuntu20.04)
手順
1. イラスト投稿したい画像データの準備
320 x 120 サイズの画像データ(例:下記 "splatoonpattern.png" )
画像データを作るツールは各自好きなもので良いが、例えば無料WEBツール Canva で 320 x 120 のサイズを指定してその中に手持ちの画像データなどを配置するみたいな作り方で作成することができます。
また画像データを良い感じの白黒2色の画像にするために 画像をモノクロ2色(二階調)にする というWEBサイトに Canva で作成した画像をアップロードし、黒を若干多め(65-70)な設定で二値化するなどの調整もイラストによっては必要かもしれません。
2. 必要なパッケージ、リポジトリ、画像の準備
(記事)Splatoon3でもArduinoでイラスト投稿をしたい を参考にターミナルから下記コマンドで必要なパッケージ、リポジトリ、画像の準備をします。
ポイントは上記記事にある通り Loloweb / Switch-Fightstick | GitHub というリポジトリが スプラ3対応している ため、そちらを用いる点です(逆にそれ以外はほぼ 過去記事 と同じ手順になります)。
sudo apt-get update -y
sudo apt install -y git gcc-avr avr-libc python-pil dfu-programmer
mkdir -p ~/spla3_dot
cd ~/spla3_dot/
git clone https://github.com/abcminiuser/lufa.git LUFA
git clone https://github.com/Loloweb/Switch-Fightstick.git
cd Switch-Fightstick/
git checkout -b work-spla3
cp {画像データのパス}/splatoonpattern.png ./
3. ファイルの中身の書き換えと画像をCファイル変換およびビルド
Switch-Fightstick というディレクトリ直下の png2c.py というファイルの中身を次のように1行コメントアウトして1行追記します。
#for i in range(0, 320*120) / 8):
for i in range(0, 4800):
同様に makefile の中身を次のように1行コメントアウトして1行追記します。
#MCU = at90usb1286 コメントアウトする
MCU = atmega16u2 #追加する
上記ファイルの中身の書き換えた後に下記コマンドで画像のCファイル変換およびビルドを行います。特にエラーなく処理が終われば Joystick.hex というファイルが生成されます。
python png2c.py splatoonpattern.png
make
4. Arduino を Ubuntu PC に接続
Arduino の基板書き換えのため下記赤丸で囲われた2つのピンをジャンパワイヤ(メス-メス)で繋げた状態で Ubuntu PC に USB で接続します。
Arduino を Ubuntu PC に接続後、ジャンパワイヤを Arduino から抜き取ります。
5. Arduino へ Joystick.hex データの書き込み
手順3. で作成した Joystick.hex というデータを下記コマンドで Arduino に書き込みます。
sudo dfu-programmer atmega16u2 erase
sudo dfu-programmer atmega16u2 flash Joystick.hex
sudo dfu-programmer atmega16u2 reset
今回私の場合は上記コマンドで問題なく書き込めましたが、もし `dfu-programmer: no device present` のようなメッセージが出た場合は シリアルポートへのアクセス許可 やそれに似た記事などを適宜ググって解決いただければ幸いです。
6. Arduino を Nintendo Switch に接続し自動ドット打ち実行
最後に、スプラトゥーン3にログインして先に紹介した赤いポストまで移動し投稿画面を開きます。
ペン先を一番左の細いものに変更した後、下の写真のように Arduino を Nintendo Switch へ USB-C & USB 3.0 変換アダプタを間に繋げて挿すと、勝手にカーソルが左上へ移動し順次上の段からドット打ちによる描画が開始されます。
実際に描画している様子(動画):
注意点としては、1つの描画に15-20分くらい時間がかかるため、友人とのゲームの約束がある時には避けた方が良いと思われます。
また、自動ドット打ちが途中で1, 2行程度上手くできない(ズレる)場合があります(下図)。その場合描画後にズレているところを手で修正するか、また一から描画し直すなどの試行錯誤が必要となる場合もあります。
まとめと感想
スプラトゥーン3のイラスト投稿自動ドット打ちの手順を紹介しました
実際やってみると自動ドット打ちが途中で一部ズレるなどの問題がありました。ただ、その場合も適宜手で修正を行なうなどのリカバリは可能でした
現在横イラストのみですが、スプラトゥーン3から縦イラストも描けるようになったため、縦イラストの自動ドット打ちに対応されたら再びトライしてみたいと思いました※
最後に
スプラトゥーン3発売を嬉しい気持ちとともに、皆様の楽しいイカライフに少しでもお役に立てばと思います。