ニンテンドースイッチでおすすめ!オート連射/連射ホールドができるコントローラ【あつ森】

  • URLをコピーしました!

あつまれ どうぶつの森』を最近よく遊んでいるのですが、純正のプロコンでは不便に感じることがいろいろとあります。

なんとかできないかと思い、幾つか得た情報を紹介いたします。

Will feel Tips
ニンテンドースイッチのプロコンが壊れたのでジャイロ・連射機能対応『Switchコントローラー』を買ってみた... 2017年の3月から使用していた『ニンテンドースイッチ用のプロコン』ですが、ついに壊れてしまったので、am͜a͉zonで売っていたジャイロ・連射機能対応のサードパーティ製コ...

以前も連射コントローラを紹介しましたが、故障してしまいました。

am͜a͉zonで取り扱ってる中華製のものは、星5の評価でアマゾンギフト券を贈るなどといった「ヤラセ」や「さくら」の風潮が当たり前になっています。

Amazon.co.jpが販売・発送する商品はこれに限りません。

Contents

アクション、シューティング、レースゲームなどの対戦ゲームは純正のプロコン一択

switch-third-party-controller-01

Nintendo Switch Proコントローラ | Amazon.co.jp

最近ではHORI製のコントローラが任天堂に認可されていますが、amiiboを読み込むNFCやジャイロセンサーの補正機能などに対応していません。

いろいろと不満はありますが、総合的なパフォーマンスから純正のプロコンをお勧めします。

コントローラによるスリープからの復帰、NFC機能、自動連射

はじめに前提条件として、この3つの機能があるものを探しました。

他にも指定した動作を自動で行うマクロ機能を持ったサイバーガジェット製のコントローラもありますが、某大手掲示板などの情報によると不評のようです。

これらが揃っている商品を熟考してみました。

中華製 Switch Proコントローラ : Amazon.co.jp

中国のBooKingというブランド名でGCHTというショップ(マーケットプレイス)が販売し、Amazon.co.jpが発送

記事執筆時の価格:¥3,499

2020/08/24の夜から取り扱いを開始しているためレビューは今のところありません。ショップが無くなる可能性もあります。

OEMビジネスを利用したもので他のショップのコントローラにも使用されています。商品名だけでなく外観を確認する必要があります。

確認できる範囲でのマーケットプレイス名:scorel、Maxku、 etc...

コントローラによるスリープからの復帰

TVモードの場合、プロコンに慣れたら無くてはとても不便な機能

amiiboを読み込ませるNFC機能

頻繁には利用しませんが無いよりもあった方が便利

自動連射ホールド機能

以前に紹介した「ECHTPower」というブランドのものや類似商品は5分で自動的にコントローラの電源が切れるため、放置して連続作業を行わせるということはできないようです。

他の同じコントローラのレビューなどを見る限りボタンを押している間だけ連射となるようです。

(洗濯バサミなどで物理的に固定する方法もあり?)

ジャイロセンサーと振動機能

6軸ジャイロセンサーとデュアルモーター振動とのことですが、プロコンと比べると確実に劣ります。

ゲームにある機能を最大限楽しむなら、素直に純正のプロコンを使用するのが賢明です。

USB Type Cケーブル

充電などはUSB Type Cで行いケーブルも付属されます。

結論

国内メーカーで、このような機能を持つコントローラは現時点ではないことと、安物買いの銭失いになる事を考えて、購入を見送りました。

PCからBluetoothで接続し自動化出来る「joycontrol」

敷居は高くなりますが、手持ちの環境で無料で行うことが出来たこちらの方法を紹介します。

必要なもの/環境

  1. PC(Windows 10にて使用)
  2. Bluetooth環境
  3. ネット環境
  4. Linuxを動かすためのバーチャルマシン

PCさえあればソフト上で実行でき、Pythonスクリプトで操作の自動化や自作の自動操作が可能です。

※ご利用は自己責任でお願いします。

バーチャルマシンのインストール

VirtualBoxを利用して紹介されているものが多いですが、私の場合はVMwareをずっと使っているのでそちらで紹介します。

Link:VMware-workstation-15.5.6-16341506.exe.tar

VMware Workstation 15.5.6が現在最新のようです。実際に使用するのは付属するPlayerなので無料で利用できます。

圧縮されたtarファイルを展開後、「VMware-workstation-15.5.6-16341506.exe」をダブルクリックして、インストーラに従ってインストールしてください。

圧縮・解凍ソフトは「7-Zip」をお勧めします。

すでにインストールしている方は入れなくてもOKです。

elementary OSのダウンロード

個人的にお気に入りのUbuntuベースのOSを使用しました。

Will feel Tips
elementary OS – オシャレでmacOSライクなオープンソースのおすすめLinux OSのインストール方法 | Will fee... 無料のオペレーティングシステム、Linuxの一つである「elementary OS」をインストールしました。 ベースはUbuntuでできており、オープンソースで公開されています。...

isoファイルだけ使い、PC本体にインストールはしないので「elementary OSのダウンロード」の部分を参照してください。

VMwareにelementary OSをインストール

1)VMware Workstation Playerを起動して「新規仮想マシンの作成」

2)インストーラ ディスクイメージ ファイル→ダウンロードしたelementary OSのisoファイルを選択

3)Linux Ubuntu 64ビットのまま次へ

4)仮想マシン名を「elementary OS」などわかりやすい名前にし、場所はデフォルトでOK

容量の余裕がある場所を選択(SSDだと起動や動作が速い)

5)ディスク最大サイズは私の場合だと40GBに、仮想ディスクを単一ファイルとして格納にチェック

理由は後で拡張する機会があったときに面倒なため

6)ハードウェアをカスタマイズをクリックしてメモリ容量などを変更

【推奨システム要件】

  • 最近のIntel Core i3またはそれと同等のデュアルコア64bitプロセッサ
  • 4 GB のシステムメモリー (RAM)
  • 15 GB のディスクスペースのある SSD

※これらの要件は必須ではなく、満たしていなくても動作します。

私の場合ですが、メモリを8GB プロセッサを4コアにしています。

7)「完了」をクリックして「仮想マシンの再生」

日本語を選択後、「elementaryをインストール」をクリックして進めていきます。

基本的にそのまま続けるを押してインストールするだけです。

  1. キーボードレイアウトはJISキーボードが大半だと思うので日本語のままでOK
  2. 「elementaryのインストール中にアップデートをダウンロードする」にチェックを付けたまま続ける
    (サードパーティ製ソフトウェアのインストールはチェックしなくてもOK)
  3. ディスクを削除してelementaryをインストール
  4. Tokyoのまま続ける
  5. 名前とパスワードをわかりやすく設定し自動的にログインするにチェック
  6. インストール完了後「今すぐ再起動」をクリック
  7. 「Please remove the installation medium, then reboot」と表示されるので、ゲストを再起動

仮想マシンへのインストールなので、パスワードは簡単に「スペース」だけでも大丈夫です。

後々このパスワードを使うので忘れないようにしてください。

以上でelementary OSがVMwareにインストール完了です。

位置情報サービスは使わないため、それだけオフにして初期設定を済ませたあと、アップデートをインストールします。

VMware Toolsのインストール

ホスト(Windows)とゲスト(elementary)間でクリップボードやファイルのドラッグ&ドロップを有効にします。

1)ドックにあるAppCenterを開きます

2)インストール済みのタブにある「open-vm-tools-desktop」の無料をクリック→了解してインストール

以上で完了です。

ウインドウのサイズを変更すると自動的にデスクトップが拡大・縮小します。

表示がおかしい場合はフルスクリーンにして戻すと治ると思います。

ターミナルとファイルをドックに追加

左上のアプリケーションをクリックして、ターミナルとファイルをドックにドラッグして追加します。

よく使うので、あると便利です(アプリケーションをクリックで選択してもOK)

joycontrol-kbのインストール

Linux上でニンテンドースイッチのコントローラをエミュレートできる「joycontrol-kb」を利用します。

「joycontrol-kb」は「joycontrol」の派生でキーボードでボタン操作ができるようになるソフトウェアです。

以下からターミナルを使ってコマンド入力で操作していきます。

joycontrolに必要なパッケージのインストール

ターミナルを起動して以下を実行

1)依存関係のあるパッケージをインストール

sudo apt-get update -qy
sudo apt-get upgrade -qy
sudo apt-get install -qy git python3-pip libglib2.0-dev python3-dbus libhidapi-hidraw0 libhidapi-libusb0 libdbus-1-dev
sudo -H pip3 install hid aioconsole crc8 dbus-python keyboard

ターミナルへのコピペは「Ctrl+Shift+v」で貼り付けすることができます。

初回に警告が出るので「貼付け時に保護警告を表示」のチェックを外して「了解して貼り付け」をクリック

貼付け後「Enter」で実行します。

2)joycontrol-kbのインストール

git clone https://github.com/QueenLinuxGlitch/joycontrol-kb.git
sudo -H pip3 install joycontrol-kb/

これで赤文字や黄色などのエラーがでなければインストール完了です。

joycontrol-kbの実行方法

はじめに、ドックにある「システム設定」から「電源」の非アクティブ時の項目を「なし」に設定してください。

これを行わないと、一定時間経過後に仮想マシン上のelementary OSが止まってしまい、自動で実行しているコントローラの操作が止まってしまうからです。

Bluetooth環境

PCにBluetooth環境が必要です。

私の場合、以前購入したUSB2.0接続のBluetoothドングルを使用しています。

I-O DATA Bluetoothアダプター Class 2対応 4.0+EDR/LE対応 USBアダプター USB-BT40LE : Amazon.co.jp

Amazon.co.jpが販売・発送なので安心です。

記事執筆の価格が¥1,564なので、価格コムとam͜a͉zonの売れ筋1位である「TP-Link製 UB400」でも問題ないと思います。

TP-Link Bluetooth USBアダプタ Ver4.0 UB400 : Amazon.co.jp

Bluetooth 4.0ですが、5.0以降で販売されているものは今のところ全て中華製のバルク品になります。

機能で簡単に説明すると、5.0で通信速度と距離が拡大され、5.1で方向探知機能が追加となっています。

PCに接続するUSBドングルでは特に気にする必要はありません。

仮想マシンへのBluetoothの接続

VMwareの右上にあるUSBのマークを右クリックして「接続(ホストから切断)」

elementary OS上の右上にあるBluetoothのアイコンをクリックすることで操作できます。

joycontrolの基本的な操作

ターミナルを開き以下を実行します。

1)ディレクトリの移動

cd joycontrol-kb/

「jo」と入力後にTabキーを押すことで入力補完されるので利用してください。

2)joycontrolの実行

実行するときはNintendo Switchの「ホーム画面」→「コントローラ」→「持ち方順番を変える」の画面にします。

sudo python3 run_controller_cli.py PRO_CONTROLLER

実行ログが流れ、ペアリングが成功したら以下のログが数行続いたあとに止まります。

INFO - received output report - Sub command SubCommand.SET_PLAYER_LIGHTS

Enterキーを押してあげることで操作が可能になります。

次回実行時はキーボードの↑を押すことで過去の入力履歴が表示されます。

「cmd>>」という表記になるので、「a」→「b」→「home」といった感じで入力してみてください。

「help」と入力すると英語で説明が表示されます。

【基本的なボタン入力】
a Aボタン
b Bボタン
x Xボタン
y Yボタン
l Lボタン
r Rボタン
zl ZLボタン
zr ZRボタン
l_stick Lスティックボタン
r_stick Rスティックボタン
minus -ボタン
plus +ボタン
up 十字ボタン(上)
down 十字ボタン(下)
left 十字ボタン(左)
right 十字ボタン(右)
capture キャプチャーボタン
home HOMEボタン

「keyboard」と入力するとキーボードでコントローラを操作することができます。

q=LEFT w=LstickUP e=UP r=ZL t=L y=R u=ZR i=RstickUP
a=LstickLEFT s=LstickDOWN d=LstickRIGHT f=RIGHT g=capture h=home j=RstickLEFT k=RStickDOWN l=RstickRIGHT
c=DOWN up=X down=B left=Y right=A
]= + [= -

recording機能などもありますが、今回は使わないので割愛させていただきます。

終了する場合は「exit」もしくはキーボードの「Ctrl+c」を押すことで終了します。

Bluetooth接続がエラーとなる場合

VMwareのUSBドングルの接続を右クリックして一度ホスト(PC)に接続、再度ゲスト(VM)に接続してみてください。

elementary OSのBluetooth設定を開いた状態が接続されやすいです。

joycontrol-pluginloaderとプラグインのインストール

Almtr」さんの「joycontrolプラグイン」を利用させていただきました。

Qiita
Arduino を使わずに Bluetooth 経由で Nintendo Switch の操作を自動化する【ポケモン自動化】【v13.0.0 ま... はじめに Arduino(マイコン)を使わずに Bluetooth 経由で Nintendo Switch の自動操作 ができるようになりました。 自動化には、joycontrol とその拡張用のプラグインロ...

詳細はこちらに書かれています。

joycontrol-pluginloaderのインストール

ターミナルを開き以下を実行

git clone --recursive https://github.com/Almtr/joycontrol-pluginloader.git
sudo -H pip3 install joycontrol-pluginloader/

稚拙プラグインのダウンロード

簡単なものですが、どんぐりと松ぼっくり回収用に「AとYを連射ホールド」するスクリプトを作りました。

ターミナルを開き以下を実行

git clone https://github.com/ichitaso/joycontrol-plugins.git

わかりやすく短くなるように名前を変更

mv joycontrol-plugins plugins

ディレクトリ(フォルダ)名が joycontrol-pluginsからpluginsという名前に変わります。

使い方

1)住民に話しかけないように、坂のない崖に木を植えます。

2)木の正面で以下のように実行します。

「HOME」→「コントローラ」→「持ちかた/順番を変える」の画面にする

sudo python3 run_controller_cli.py PRO_CONTROLLER

「a」→「b」→「home」と入力して「exit」

3)ディレクトリの移動とコマンドの実行

cd joycontrol-pluginloader/

以下のコマンドで連射ホールド

sudo joycontrol-pluginloader ../plugins/utils/RepeatAY.py

うまく接続されたら、AボタンとYボタンの連射が続けられ足元に落ちたものを回収していきます。

ポケットの持ち物は少ない方がより長い時間継続できます。

4)マイル旅行券の発行だけの場合

同じような要領でAボタンのみを連射ホールドします。

sudo joycontrol-pluginloader plugins/utils/RepeatA.py

5)終了方法

キーボードで「Ctrl+c」を押して終了します。

6)ディレクトリをもとに戻す

cd ..

これで一つ前のディレクトリに移動します。

自作プラグインの参考サンプル

MyPlugin.py

import logging
from JoycontrolPlugin import JoycontrolPlugin

logger = logging.getLogger(__name__)

# クラス名とファイル名を一致させる
class MyPlugin(JoycontrolPlugin):
    async def run(self):
        await self.button_push('a') # Aボタンを押す
        await self.wait(0.3) # 0.3秒間待つ

        await self.button_push('a', 'b') # AとBボタンを同時に押す
        await self.wait(0.3)

        await self.button_press('a', 'b', 'x') # A、B、Xボタンを同時に押し続ける
        await self.wait(0.1)

        await self.button_release('x') # Xボタンだけ離す
        await self.wait(0.1)

        await self.button_release('a', 'b') # AとBボタンも離す
        await self.wait(0.1)

        await self.button_push('a', press_time_sec=3.0) # Aボタンを3秒間長押しする
        await self.wait(0.3)

スティック入力サンプル

StickPlugin.py

import logging
from JoycontrolPlugin import JoycontrolPlugin

logger = logging.getLogger(__name__)
# クラス名とファイル名を一致させる
class StickPlugin(JoycontrolPlugin):
    async def run(self):
        await self.left_stick('up') # 左スティックを上に傾ける
        await self.wait(0.3) # 0.3秒間待つ

        await self.right_stick('down') # 右スティックを下に傾ける
        await self.wait(0.3)

        await self.left_stick(angle=45) # 左スティックを左上(45度)に傾ける
        await self.wait(0.3)

        half_power = self.max_stick_power / 2
        await self.left_stick('right', power=half_power) # 左スティックを半分の力で右に傾ける
        await self.wait(0.3)

        await self.left_stick('center') # 左スティックを中央に戻す
        await self.right_stick('center') # 右スティックを中央に戻す
        await self.wait(0.3)

実際に実行している動画

まとめ

一度環境さえ作ってしまえば、思ったより簡単かつ安価に行うことができました。

PCが無い、もっと手軽にやりたいという場合は「HORI製の有線コントローラ」がいいかと思います。

ホリパッドミニ for Nintendo Switch : Amazon.co.jp

NFCやジャイロ、振動機能などがありませんが、任天堂のライセンス商品です。

連射ホールド機能があり5分間でオートスリープしない、スティックを動かしながら連射機能を使える、国内メーカーでAmazon.co.jp が販売、発送など安心です。

カラーバリエーションの中ではピカチュウ&イーブイが好みです。

【参考Link】

この記事が気に入ったらいいね!
最新情報が届きます

この記事が気に入ったらシェアしよう!
  • URLをコピーしました!

コメント

コメント一覧 (8件)

  • (2)のjoycontorolの実行でsudo python3 run_controller_cli.py PRO_CONTROLLERを実行してもペアリングされません。
    エラーが出る訳でもなくて、「Arduino を使わずに Bluetooth 経由で Nintendo Switch の操作を自動化する【ポケ...
    Qiita」のWaiting for Switch to connect... Please open the "Change Grip/Order" menu.」の表示から動かない状態なってしまいました。その後もあちらの方に書いてあった対処方法を取ったのですがペアリングできず困っています。よろしければご助言を頂けると幸いです。

    • コメントありがとうございます。
      仮想マシンへのBluetoothの接続は完了されている状態でしょうか?
      Nintendo Switchの「HOME」→「コントローラ」→「持ちかた/順番を変える」の画面にした状態で実行するのがポイントになりますので、その画面でコマンド実行後にしばらく待機してみてください。
      ※初回はelementary OSのBluetooth設定を開いた画面に「Nintendo Switch」と表示されないので時間がかかります。一度、接続されれば表示されるようになります。

  • 返信ありがとうございます。
    Bluetoothへの接続は完了していて、任天堂スイッチの方も「持ち方/順番を変える」の画面にしてました。
    その後に設定を開いてBluetoothを開いて見ると任天堂スイッチが出てきて、接続を許可するかどうか出てきたので許可を押すと繋がりました。接続の許可をしていなくて繋がらないことが分かりました。
    大変ご迷惑をおかけして申し訳ありません。
    またなにか分からないことがあった時には質問させていただきます。

  • こんにちは。

    過去投稿へのコメント失礼致します

    有意義な投稿ありがとうございます。
    参考にさせて頂き、現在、試行錯誤しているのですが、
    時期が変わると色々と手順が異なるようで・・・・・苦戦しております(´;ω;`)

    ■苦戦(例)
    ・インストールOSが「elementaryos-6.1-stable.20211218-rc.iso」だと、そもそも日本語でインストールがNG。英語でインストールする必要があるよう。
    ・「sudo -H pip3 install hid aioconsole crc8 dbus-python keyboard」については、
     hidが「1.0.5」だと、紹介頂いているロジックがエラーとなるため、
     hidのインストール時に「sudo -H pip3 install hid==1.0.4 aioconsole crc8 dbus-python keyboard」とする必要がある

    などなど・・・

    ■できればのお願い
    この記事を記載頂いた状態のVMはまだありますでしょうか??
    ・OSについては、「elementaryos-5.1-stable.20200814].iso」がアーカイブとして存在していましたので、ほぼ同じ環境だと思います
    ・その他、インストールしたパッケージのバージョンが知りたいです・・・
     何が原因で上手くいっていないのか、調査するのに苦労しております・・・

    助けて頂けますと幸いです

  • 当PCはもともとBluetoothを内蔵しているのですが、接続方法がわかりません。
    コントローラをelementaly osに接続する際、bluetooth機能はUSBで接続しないといけないのでしょうか?

    • Bluetoothに接続できる環境であればUSBドングルは必要ないです。
      現在では試していないため的確な答えができなくて申し訳ないです。

Contents