- はじめに
- Poke-Controller Modified Extension とは?
- Qingpi とは?
- 準備 (Nintendo 3DS)
- 準備 (Poke-Controller Modified Extension)
- Nintendo 3DSの画面をPoke-Controller Modified Extensionの画面に表示する
- Poke-Controller Modified ExtensionでNintendo 3DSを操作する(準備)
- Poke-Controller Modified ExtensionでNintendo 3DSを操作する(動作確認)
- Poke-Controller Modified ExtensionでNintendo 3DSを操作する(マクロ)
- 動画
- おわりに
- 謝辞
- その他
はじめに
Poke-Controller Modified Extension のver.0.0.6にてQingpiに正式対応し、Nintendo 3DSを操作できるようになったので、詳細をまとめておきます。(今書かないと一生書かないので...)
https://x.com/dragonite303/status/1790030422211965435https://x.com/dragonite303/status/1790030422211965435
Poke-Controller Modified Extension ver.0.0.6をリリースしました。
— フウ (@dragonite303) 2024年5月13日
タグによるマクロ管理機能や埋め込み型のソフトウェアコントローラーなどを追加しています。
バグなどありましたらXやgithubのIssuesなどでご連絡いただけますと幸いです。https://t.co/f0OrfNe4Mb pic.twitter.com/ODuGULY73C
Poke-Controller Modified Extension とは?
Moiさん(https://twitter.com/moi_moi_g、https://github.com/Moi-poke)が開発されたPoke-Controller Modifiedをベースに筆者が(やりたい放題)機能拡張をした自動化支援ソフトウェアです。マクロはPythonで記述され、Pythonの豊富なライブラリを活用することができます。当初はNintendo Switchを対象としていましたが、筆者のとある目的(カイリュー関連)のためGC/3DSにも対応するようになりました。また、外部コントローラー(現時点ではProConのみ対応)を用いた操作ができます。(あまり知られていませんが)

Qingpi とは?
Nintendo 3DSを外部から操作するProjectでメイユールさん(https://twitter.com/U_1F992、https://github.com/U-1F992)が開発されています。Qingpi実装済み基板をNintendo 3DSに取り付けることで、シリアル通信を用いてNintendo 3DSを外部から操作することができます。

準備 (Nintendo 3DS)
Nintendo 3DSに対し、Qingpiおよび偽トロキャプチャを取り付けます。手順は奈都さん(https://twitter.com/Natu5307051)の記事の②、③にまとめられているのでそちらを参照下さい。
準備 (Poke-Controller Modified Extension)
Poke-Controller Modified Extensionの導入方法については、じゃんきーさん(https://twitter.com/junky_poke_)がまとめられているPoke-Controller Guide +αにまとめられているのでそちらを参照下さい。
備考:qingpi-pythonのインストールについて
前述の奈都さんの記事の④-2にはPython 3.10以降 + qingpi-pythonのインストールが必要と記載されていますが、これはPoke-Controller Modified ExtensionでQingpiに正式対応する前(ver.0.0.5以前)の話になります。ver.0.0.6以降ではqingpi-pythonのインストールは不要であり、Python 3.9以前でも動作します。
Nintendo 3DSの画面をPoke-Controller Modified Extensionの画面に表示する
こちらの手順も奈都さん(https://twitter.com/Natu5307051)の記事の④-1、④-3にまとめられているのでそちらを参照下さい。
Poke-Controller Modified ExtensionでNintendo 3DSを操作する(準備)
Poke-Controller Modified ExtensionからNintendo 3DSの操作ができることを確認します。まず、以下の準備1-準備4を実施します。確認する項目によって必要な準備が異なります。
準備1:シリアルデバイスを接続する
Poke-Controller Modified ExtensionからQingpi実装済み基板にシリアルデータを送るための準備です。
- Nintendo 3DSに取り付けられたQingpi実装済み基板とPCをケーブルで接続する
- 「Serial」タブの「Scan Device」をクリックする
- 「Device Name」でUSBシリアルデバイスを選択し、「Reload Port」をクリックする

準備2:マウスによるスティック操作機能を有効化する
マウスの左ボタンを用いてスティックを操作するための準備です。
- 「Manual Control」タブの「Use LStick Mouse」にチェックを入れる

準備3:マウスによるタッチスクリーン操作機能を有効化する
マウスの右ボタンを用いてタッチスクリーンを操作するための準備です。
- 「Manual Control」タブの「Use RStick Mouse」にチェックを入れる

- 「マウスの右ボタン」+「Ctrl」を押しながら画面上でマウスを動かしてタッチスクリーン範囲を指定する
(注意)タッチスクリーンの動作確認時に押した地点が大きくずれる場合、本工程を再度実施してください。

- 「Serial」タブの「Data Format」を「Qingpi」にする

準備:[Option]外部コントローラーによる操作機能を有効化する
Pro Controllerを用いてNintendo 3DSを操作するための準備です。
- 「Manual Control」タブの「Use Pro Controller」にチェックを入れる
(必ずPro ControllerをPCにつないだ状態でチェックを入れてください。)

Poke-Controller Modified ExtensionでNintendo 3DSを操作する(動作確認)
Nintendo 3DSの操作の動作確認はボタン類、スティック、タッチスクリーンの3つに分けて実施します。
動作確認1:ボタン類の動作確認
Software-Controllerを使用することで、ボタン類の操作を行うことができます。準備1の実施が必要です。ボタンをクリックして想定通りに動けば問題なく動作していることが確認できます。

動作確認2:スティックの動作確認
画面上でマウスの左ボタンを押下しながらカーソルを動かすとスティックを操作できます。準備1と準備2の実施が必要です。こちらも想定通りに動けば問題なく動作していることが確認できます。

動作確認3:タッチスクリーンの動作確認
タッチスクリーンの操作は基本的にマウスの右ボタンで行います。準備1、準備3の実施が必要です。タッチスクリーンが表示されている箇所を右クリックして、想定通りに動けば問題なく動作していることが確認できます。

動作確認4:[Option]外部コントローラーによる操作の動作確認
準備1と準備4を実施しておけば、タッチスクリーンを除き外部コントローラーで操作できます。
Poke-Controller Modified ExtensionでNintendo 3DSを操作する(マクロ)
Poke-Controller Modified Extensionでは、準備1と準備3を実施しておけば、自動化のマクロスクリプトを動作させることができます。
従来から存在した、Button、Hat、Direction、Stickに加え、新たにTouchscreenを準備しました。Touchscreen(x,y)でタッチスクリーンの(x,y)の地点に対する処理を行うことができます。使用する場合は、以下の通りCommands.KeysからTouchscreenをimportしてください。
例1:タッチスクリーンの(x,y)地点を一度押したい場合
例2:タッチスクリーンの(x,y)地点をN回押したい場合
例3:タッチスクリーンの(x,y)地点を押し続けたい場合
例4:タッチスクリーンから離したい場合
例5:タッチスクリーンに円を描くサンプルプログラム
動画
本自動化はNintendo 3DS本体の改造(データ改変は含まず)の要素が含まれ拒否反応を示す方がおられることから、Xの投稿はセンシティブ設定にしています。動画を見たい方は下記のリンクからご確認ください。
https://x.com/dragonite303/status/1790039409066127613
おわりに
本記事では、Poke-Controller Modified Extension のver.0.0.6におけるQingpiを用いたNintendo 3DSの操作方法および自動化マクロで使用可能な関数を紹介しました。この記事が皆様の自動化ライフの一助になれば幸いです。
謝辞
Qingpi Projectの開発者であられるメイユールさん(https://twitter.com/U_1F992)、引用先の記事の筆者である奈都さん(https://twitter.com/Natu5307051)、じゃんきーさん(https://twitter.com/junky_poke_)にこの場をお借りしてお礼申し上げます。
その他
筆者はカイリューグッズを集めています。メルカリなどでなかなか見かけないような珍しいグッズなど見かけましたらDMなどでご連絡いただければ幸いです。