コントローラーを無料でマクロパッド化しよう

仕事机にスーファミのコントローラーとかが置かれていたら面白くないですか。
しかも、それ使って仕事してたらかなり面白くないですか。

というようなことを考えてて、どうやらコントローラーをマクロパッド(≒左手デバイス)化するアプリがあるらしいと知り、それを使ってコントローラーを仕事道具にしてみました。

マクロパッドって結構高いので、お気に入りのコントローラー+無料アプリで作れるのはかなりいいです。
しかも実際に使ってみると、使いやすくてかなり便利でした。

この記事では、AntiMicroXを使ったコントローラーのマクロパッド化の手順を紹介してます。
みなさんもぜひお気に入りのコントローラーをマクロパッド化してみてください。

目次

できたもの

まずは、どんなものができるのかを見てみましょう。

コントローラーはスーファミの純正コントローラーですが、こちらのUSB化基板を使ってUSB化してます。
各ボタンはこんな感じのマクロを登録しています。

  • 登録したフォルダを開く
  • 現在のフォルダでvscodeを開く
  • 現在のフォルダでwslを開く
  • obsidianを起動して新規ノートを開く
  • 選択したファイルのバックアップコピーを取る
  • 電卓を起動する
  • geekyfab.comの管理画面を開く
  • 音量の上下
  • タスクマネージャーの起動
    などなど…

ショートカットキーだけではやりにくいけど、使用頻度の多い動作を登録してる感じですね。

では早速、どうやってコントローラーをマクロパッド化するかを解説していきます。

マクロパッド化の手順

流れはめちゃくちゃシンプルです。

① お気に入りのコントローラーを用意
② マクロパッド化アプリでボタンに好きな機能(キーボード/マウス/コマンド)を割り当てる

これだけ。

マクロパッド化アプリについて

コントローラーをマクロパッド化するアプリとしては、次のものが有名です。

ツール料金 / ライセンス特徴公式サイト
JoyToKeyシェアウェア
(試用可/継続利用は有料)
・日本製。日本語でわかりやすいhttps://joytokey.net/ja/
AntiMicroX無料/オープンソース(GPL-3.0)・Windows & Linux対応https://antimicrox.github.io

今回はAntiMicroXを使った方法を解説したいと思います。
無料なので敷居が低く、おすすめしやすい。

では早速やってみましょう。

AntiMicroX の使い方

ダウンロードからインストール

windows版のダウンロードはこちらから。
この記事で使ってるのは、antimicrox-3.5.1-Windows-AMD64.exe です。

ダウンロードしたインストーラーを実行し、次へを押しまくってインストールしましょう。

インストールが終わって、起動してみるとこんな感じで画面が立ち上がります。

キーボードショートカットの登録方法

USBゲームパッドを接続するとこんな感じ。

この状態でコントローラー本体のボタンを押してみると、AntiMicroX上の対応するボタンがハイライトされます。
これでボタンを確認しながら割り当てていきましょう。

ボタンをクリックするとこのように設定画面が開きます。

単一のキーの割り当ての場合は、割り当てたいキーボードのキーやマウスのボタンを押すか、画面上から選択すれば完了です。
また、右上のOthersプルダウンから代表的なマクロは登録できるようになっています。
例えば、ブラウザの「戻る」、「進む」や、音量の上下、電卓の起動はこちらから設定可能です。

ctrl+c やctrl+v などの二つ以上のキーを割り当てたい場合は、まずはctrlだけ仮で登録してから”詳細設定”を開きます。
ここではまずctrlを仮で登録しましたが、後で変更できるので、任意のキーでいいです。

詳細設定ウィンドウで、ctrlが割り当てられてるボタンがあり、その隣に空白のボタンがありますね。
そのボタンをクリックした状態で、キーボードで”c”を押すと、ボタンにcが入ります。

あとは”Close”を押して閉じれば複数のボタンの割り当てが完了です。

これで、コントローラーのボタンを押すと、コピー(ctrl+c)ができるようになりました。

二つ以上の動作を連続して実行してもらうこともできます。

例えば、開いているwebページのURLをコピーする場合は、
ctrl+L → ctrl+C の流れでできます。
なので、次のように登録しておけば、一発で開いてるwebページのURLをコピーできます。

任意アプリの起動

次はもう少し複雑なことをやってみましょう。
例えば、任意のフォルダを開くとか、メモ帳を起動するとか。

まずは試しにメモ帳の起動をやってみましょう。

先ほどと同じく、割り当てたいボタンを選んで、詳細設定まで進みましょう。
詳細設定を開くには、一旦ダミーで適当なキーを割り当てる必要があります。
キーが割り当てられてないと”詳細設定”を開けないので。

詳細設定で割り当てたボタンの周辺を押してから”削除”を押し、割り当てたキーを削除します。
続いて中央のプルダウンメニューから“Execute”を選択し、Executableに以下を入力。
C:\Windows\System32\notepad.exe
入力後に挿入をクリック。

あとはCloseして設定完了。
コントローラーのボタンを押したら、メモ帳が起動してくれます。

任意フォルダを開く

任意フォルダを開くには、Executable
C:\Windows\explorer.exe
Arguments
"開きたいフォルダのパス"
を入れて設定すればOKです。

任意urlを開く

同じ要領で、好きなwebサイトを一発で開くこともできます。
例えばGoogle Chromeでx.comを開きたいなら、Executable
C:/Program Files/Google/Chrome/Application/chrome.exe
Arguments
https://x.com
を入れて設定でOK。

少し複雑なマクロ

スクリプトを作っておけば、もっと複雑な操作も登録することができます。
例えば、
“末尾に日付と番号付きのファイルコピーを作成する。”
みたいなマクロを考えてみましょう。

こういう複雑な処理の場合はAntiMicroXだけで完結するのは厳しいので、あらかじめpowershellスクリプトなどを用意して、それを呼び出すという形が良いかと思います。

まずは呼び出すためのpowershellスクリプトを作ります。
次のコードをmake_bkup.ps1という名前で適当な場所に保存しましょう。

param(
    [Parameter(Position = 0)]
    [string]$Path
)

function Get-SourcePathFromExplorer {
    if (-not ('Win32' -as [type])) {
        Add-Type @"
using System;
using System.Runtime.InteropServices;

public static class Win32 {
    [DllImport("user32.dll")]
    public static extern IntPtr GetForegroundWindow();
}
"@
    }

    $hwnd = [int][Win32]::GetForegroundWindow()

    $shell = New-Object -ComObject Shell.Application
    $window = @($shell.Windows()) | Where-Object {
        try { $_.HWND -eq $hwnd } catch { $false }
    } | Select-Object -First 1

    if (-not $window) {
        [Console]::Beep(880, 150)
        Write-Error "No active File Explorer window was found."
        exit 1
    }

    $items = @($window.Document.SelectedItems())

    if ($items.Count -ne 1) {
        [Console]::Beep(660, 150)
        Write-Error "Please select exactly one file."
        exit 1
    }

    return $items[0].Path
}

if ($PSBoundParameters.ContainsKey('Path')) {
    try {
        $src = (Resolve-Path -LiteralPath $Path -ErrorAction Stop).Path
    }
    catch {
        [Console]::Beep(660, 150)
        Write-Error "The specified path was not found: $Path"
        exit 1
    }
}
else {
    $src = Get-SourcePathFromExplorer
}

if (-not (Test-Path -LiteralPath $src -PathType Leaf)) {
    [Console]::Beep(660, 150)
    Write-Error "The target item is not a regular file."
    exit 1
}

$dir  = [System.IO.Path]::GetDirectoryName($src)
$base = [System.IO.Path]::GetFileNameWithoutExtension($src)
$ext  = [System.IO.Path]::GetExtension($src)
$date = Get-Date -Format 'yyyyMMdd'

$seq = 1
do {
    $newName = "{0}_{1}_{2:D3}{3}" -f $base, $date, $seq, $ext
    $dest    = Join-Path -Path $dir -ChildPath $newName
    $seq++
} while (Test-Path -LiteralPath $dest)

Copy-Item -LiteralPath $src -Destination $dest
Write-Host "Created: $dest"

あとは同じ要領で、Executable
C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe
Arguments
-NoProfile -File "保存したps1ファイルのパス"
を入れて設定でOK。

ファイルを選択した状態でボタンを押すと、このようにファイルの末尾に日付と連番を追加したコピーを作成してくれるようになります。

これはめっちゃ便利。

powershellスクリプトを使うと一気にマクロパッドでできることが増えるので、おすすめです。
例えば、僕が使ってるマクロのうち、以下はこのやり方で作ってます。

  • 現在のフォルダでvscodeを開く
  • 現在のフォルダでwslを開く
  • obsidianを起動して新規ノートを開く

記事が長くなるので、今回は個々のスクリプトは省略します。

最後に

今回は、手元のコントローラーを手軽にマクロパッドにする方法を紹介しました。
マクロパッドって、専用デバイスがかなり高かったりしますが、今回の方法なら余ってるコントローラーと無料アプリで手軽に始められます。
お気に入りのコントローラーをマクロパッド化できるので、テンションも上がりますし一石二鳥。

AntiMicroXにはここでは紹介できていない機能もたくさんあるので、ぜひ実際に触ってみることをお勧めします。
連射やトグル機能、複数の設定を切り替える機能とか、他にもいろいろあります。
無料なので試しやすいですし、合わなければアンインストールすればいいんじゃないかなと思います。

今回はこれで終わります。
読んでくれてありがとうございました。

シェアして応援お願いします
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次