hyperSSCの開発事情についての記事です。
この記事ではhyperSSCの開発経緯と公開しない理由などを紹介します。
この記事は公開されていますがグーグル等の検索クローラにはインデックスされないようにしています。検索してもなかなかこのページにはたどり着けないようになっています。
なぜそのようにしているのかはこのソフトを公開しない理由で説明しています。
hyperSSCとは
NintendoSwitchへの入力(コントローラー)を制御するツールです。
名前はhyper Switch Serial Controllerの略です。
言語はC#でフレームワークはWPFです。このソフトウェアの公開予定はありません。
このソフトウェアを使うと何ができるのか?
このソフトはSwitchへ送る入力を編集するためのソフトウェアです。詳しくは機能解説編の記事を読んでください。
このソフト単体ではできませんが、決められた入力を繰り返すマクロ機能やSwitchへ送る入力を可視化する機能などが主なものです。
実際にマクロ機能を実行している動画を見てもらえればどういうソフトウェアなのか分かりやすいと思います。
hyperSSC開発経緯
- このソフトの役割
- 元になったプログラムや技術
- 今まで紹介してこなかった理由と公開しない理由
この3点を説明できればと思います。長めの記事になっていますがコメントは記事を全て読んでからお願いします。
まずこのソフトを作ろうと思いついたのは「SwitchをPCから操作する」という記事を読んだときです。2018年の2月頃に思いつきました。
NintendoSwitchをPCから操作する
https://blog.feelmy.net/control-nintendo-switch-from-computer/
「NintendoSwitchをPCから操作する」の記事で紹介されている技術を説明する前に、まずこの技術の元になったものを紹介します。
それは「スプラトゥーン2の自動ドット打ち」です。
これは2017年の7月に公開されたものです。この時点で「入力を別の装置から送ることができる技術がある」ということは確認していました。
この入力を送る装置について少し詳しく説明します。
入力を送る装置とはマイコンです。これをUSBでSwitchと接続して入力を送ります。
マイコンには自作のプログラムを書き込むことができ、電源を入れたりスイッチを押したりするとそのプログラムを実行してくれます。
このマイコンには「自分はSwitchのProコントローラーだよ!こういう入力されたからゲームを処理してね!」というデータをSwitchに送るプログラムが書かれています。
つまりこのマイコンはProコンに偽装したデータが送れるようになっています。
先ほどの「スプラトゥーン2の自動ドット打ち」の動画ではあの画像が描かれるように、十字キーとAボタンの入力が記録されたプログラムが実行されていました。
プログラムはPCで作成していますが、入力はSwitchにUSBで接続されたマイコンが単体で送っていました。PCとは繋がっていません。
マイコンがProコンに偽装した入力を送信しているということが説明できたので「SwitchをPCから操作する」に戻ります。
「自動ドット打ち」の技術が公開されてからゼルダの雪玉ボウルを自動で行うプログラムなども作られました。
これらのプログラムはマイコン単体で動作するので作ったマクロ(入力)を毎回マイコンに書き込む必要がありました。
マクロを微調整をするのにも何行もコードを手書きで直して、そしてそのコードをマイコンに書き込む必要がありました。
つまり
- USBの抜き差しの手間
- コードタイピングの手間
の2つの問題がありました。本末転倒とまではいきませんがマクロで楽するために非常に手間がかかっていました。
この問題を1つ解消したのが「SwitchをPCから操作する」の技術です。
これによりPCとマイコンとSwitchをつなぐことができるようになったので毎回マイコンにプログラムを書き込む手間がなくなりました!
コードは毎回手書きで入力する必要がありますが、SwitchをPCから操作できるようになったというのは大きな発展でした(以上が元になったプログラムや技術の話です)
この技術のおかげでTwitchで「みんなのコメントでSwitchを操作しよう」系の配信が始まりました。
PCから操作できる技術を2月頃に知ってhyperSSCを作ろうと思ったのですが、実際に制作を始めたのは4月です。作り始めたきっかけはゼノブレイド2の「トラのイデア上げ」です。
ゼノブレイド2を遊んでいない人に簡単に説明しますと条件不明のレベル上げのようなものです。その仕様の調査も兼ねて3時間ほど作業を行っていましたが心が折れました。
効率の良いやり方で1セット30秒の作業を60時間もする必要があったのです。
ゲームの作業というとMMORPGのレベル上げなどがかなりの苦行ですが、これは次元が違いました。達成するのは困難だと分かったのでマクロを利用することにしました。
既にPCからマクロ入力を送れる技術があることは分かっていたので、やるとするなら2つ目の問題「コードを手書きで入力する手間」を解消するためのソフトを作ろうと思っていました。
動画内で紹介しましたがマクロに記録されているコントローラーの入力はコードではなくタイムライン上のキーを編集することで簡易化を実現しました。
このソフトの役割は「コードを書くの手間を解消すること」と「マイコンへ入力を送ること」です。
そしてこのソフトは「スマブラSPの検証に利用することを一番の目的にする」と決めて開発を始めました。これが今まで紹介してこなかった理由です。
この技術はSwitch本体側で防ぐことができます。対策をすると他の市販のコントローラーにも影響が出る可能性があるので、極めて少数のマクロプレイヤーの為にわざわざ対策をされることはないと考えていますが一応伏せてきました。
私が伏せたところでこの技術は既に公開されているものなのでやはり考え過ぎでしたね。
一通りの機能がついたベータ版が完成したのは5月中旬です。3週間以上は開発していました。トラのイデア上げにかかる60時間以上プログラミングをしていました。
はじめは「ベータ版が完成したらテスター用に公開してバグ探しを手伝ってもらおう」と考えていました。ソフトも公開するつもりだったのでOSS(オープンソースソフトウェア )として配布できるように白紙の状態からコードを書いて開発しました。
しかし実際には公開せずこれからも公開する予定はありません。
このソフトを公開しない理由は1つです。
オンラインの環境に悪い影響を与える可能性があるからです。
単なるマクロだけではそれほど気にする必要がないかもしれませんがhyperSSCにはマクロと通常の入力を合成する機能もついています。
コントローラーのボタン1つでマクロが動作するようにもなっているので、例えばスマブラで掴みからすごく難しいが強力なコンボがあったとしたら掴んだ時点でその難しいコンボが確定したりします。
掴むまでは通常のコントローラーの操作、掴んでからはマクロを作動させます。
マクロ中もコントローラーの入力でマクロの操作を上書きできるのでスティックでの微調整なども可能です。
「公開するなら凄いものを」と頑張った結果公開できないものが出来上がりました・・・。
もちろん私もオンラインプレイで使用することはありません。このソフトが公開されたら嫌だなと感じた方もいると思いますが、私も同じ考えなので安心してください。
しかし誰かが個人で開発して、オフラインのみで使用しているならそれは認められるものだとも思っています。実際に自分で再現するにはソフトを開発する手間(知識)が必要ですから容易ではありません。
今まで紹介しなかったことで生まれた誤解への謝罪
トラのイデア上げを紹介したときに私がトラのイデアのレベル上げ(60時間の作業)を自力でをやり遂げたと思われた方がいると思います。コメントでも褒めてくださった方がいました。
まずその方に勘違いさせて、あたかも私が凄いことをしたように思わせてしまったことを謝罪します。申し訳ありませんでした。
今後はマクロを使用した攻略では使用したと書く予定です。トラのイデア上げ以外では使用していません(他のゲームも含めて)
それともう一人、ヴァンダムさんのイデアオール10を達成した方へ。
私はトラのイデア上げの効率の良いやり方を紹介した記事で「絶対にやらないこと」を強く勧めていたのは私も人間がやるのは不可能に近いと思っていたからです。
後に緩和が来ることは分かっていませんでしたが、ゼノブレイド2を遊んでいる内にこのゲームの開発者なら絶対に緩和をしてくれるだろうという確信もありました。
なのでトラのイデア上げは絶対にやらないことを勧めていました。
やらないことを推奨していたので自力でやった人はいなかった?のですがその後にヴァンダムさんのイデアをオール10にしたいのでアドバイスが欲しいという方が現れました。
人間がやるのは不可能に近いと分かっていたので突き放すようにコメントを返信したのですが1ヶ月後に145時間かけてオール10にしたというコメントが書き込まれました。
これもやらないように書いていたのですが、達成されてしまいました・・・。
これは私が自力でトラのイデア上げを達成したように思われたのが1つの要因かもしれないので謝罪というのはおかしいですが、申し訳ない気持ちがあります。
コメントが書かれた記事はこちらにあります。
紹介したいことは以上です。
hyperSSCのさらに詳しい機能については機能解説編に書いてあります。
hyperSSCの使い道
人力の操作で調査するのが困難なものを調べるときに使用します。
ソフトは公開しませんが「調べて欲しい」というものがあればコメントしてください。
条件は2つです。
- 私がそのソフトを所持している
- 調べる気が起こる内容
調査があまりにも困難なものとその価値がないと判断したものは調べませんが、コメントは気軽にしてくださいね!あとTwitterへのリプライDMには基本的に反応しないのでブログへのコメントが一番です!
> コメント0件!書き込みのチャンス! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄