ControllerMateの使い方!ゲームコントローラーをマウスやMIDIコントローラーに改造してみたので紹介!

 突然ですが💡PS3のコントローラーをMacにつなげてマウスやキーボード、MIDIコントローラーとして使ってみたところかなり便利💡

 実は以前、Windowsを使用していたことはJoyToKeyという便利なソフトがあったのですが、Macでは代わりとなるようなソフトが見つからず断念していました。

 そして💡それから3年の月日が経って、ふとまた調べてみると日本では情報がないのですが、海外サイトを回っていると「ControllerMate」というソフトが優秀で、しかもMIDI入出力もできるという情報を入手!

 早速使ってみたところJoyToKeyでできることはすべて実現でき、代替品としてだけでなく、MIDIコントローラーとしてDTMにも使えそうだったので使い方を紹介してみようかと思います^-^ノ

 ControllerMateの使い方は、公式から英語版マニュアルが公開されているので、より詳しく知りたい方はそちらも合わせてご覧ください💡

 今回は、公式サイトのマニュアルから一部を翻訳しつつオリジナルの日本語版チュートリアルを作成してみました⁽⁽ ◟(∗ ˊωˋ ∗)◞ ⁾⁾

ControllerMateとは?

 ControllerMateというのは、Joystickなど、Macに接続したUSB機器の入力を任意の出力に変更したり、条件ごとに挙動を変えることもできるソフトです💡

 上の画像を見ていただくとわかるのですが、ControllerMateは、

  • コントローラー(ボタンとかジョイスティック)
  • 出力(キーボードボタン、マウスポインタ&クリック、テキスト出力、など)
  • ロジック(条件:And、Not、Or、など)
  • 計算(条件:+、-、÷、×、など)
  • タイミング(リピート、遅延、など)
  • MIDI出力(ノート出力、CC出力、ピッチベンド出力)

 などのブロックを紐でつなぎ合わせて機能を作り上げるモジュールタイプのソフトで、自由度が高くやりたいことは大体実現できます💡

 また、一見難しそうに見えますが、基本操作は用意さればブロックをドラッグ&ドロップで繋げるだけなので、プログラミングの知識がなくてもやり方さえ分かれば誰でも簡単自由に自分だけのオリジナル入力機器が作れるという優れもの💡

Yugo
Yugo

実際に使ってみると、見た目より全然難しくなく、様々なことができたよ💡

基本操作のやり方!

 ソフトを起動したら、まず最初に左サイドバーにある「歯車マーク」をクリック後、表示された一覧の中から「Create Programing Page」をクリックして新しいプログラムページを作成します💡

コントローラーを選択して「ボタン・ジョイスティック」ブロックを選ぶ!

 デフォルトでは、右上のパレットパネルに「Controllers」が選択され、ここにパソコンに接続されているUSB機器の一覧が表示されています。

 この中から、今回であれば使用したい機器「PS3 Controller」を選択すると、下のボックス「Controles」の中に、ジョイコントローラーの

  • ボタン
  • ジョイスティック
  • ホイール

 などの機能がブロックとして表示されています。

ドラッグ&ドロップでブロックを配置!

 ブロックは、一覧からドラッグ&ドロップで作業エリアに配置できます💡

Point!

  • ジョイスティックの任意のボタンを押すと対応するブロックが光って確認できる仕組みになっている💡
  • 機能を追加したいボタンのブロックを配置しよう💡

機能の追加例1:十字キーを設定してみよう!

 使い方の感覚を掴むためにジョイスティックの十字キーに「↑↓←→」を割り当ててみましょう💡

 まずは、先程説明したように、ジョイスティックの十字キー(4つ)のボタンを作業スペースに配置します(配置は自由で構いません)。

Yugo
Yugo

ここではわかりやすく十字っぽく配置しているよ💡

パレットパネルに「Output」ブロックを表示させよう!

 続いて、今度はジョイスティックのボタンを押した際の挙動(出力)を配置したいので、出力機能のブロック一覧を表示させましょう💡

 パレットパネルの「Controllers」をクリックして「Output」に切り替えます。 

 このように出力機能の一覧が表示されました💡

 今回はジョイスティックの十字キーにキーボードの「↑↓←→」を割り当てたいので、「Single Key Building Block」というのを配置しましょう💡

Point!

  • Single Key Building Block:任意のキーを出力する機能💡

ブロック同士を繋げてみよう!

 ブロックはただ配置しただけでは機能しないので、ブロック同士を繋げる必要があります💡

 ブロック同士をつなげたり、外すにはブロックの下端をクリックしたまま繋げたいブロックの上端まで引っ張って繋げます💡

Yugo
Yugo

上の例では、ジョイスティックの十字(上ボタン)を押した出力先として「Single Key Building Block」へ繋いでいるよ💡

「Single Key Building Block」に「↑キー」を割り当てよう!

 続いて、先程配置した「Single Key Building Block(キーの出力)」には、まだ何もキーが割り当てられていないので、任意のキーを設定してあげる必要があります。

 ここではジョイスティック十字キーの上ボタンの機能として、「↑キー」を設定しましょう💡

手順!

  1. 編集したい出力ブロックをクリック。
  2. 右の「インスペクターパネル」に現在の設定が表示される。
  3. 「Capture」ボタンをクリックしてキーボードの「↑キー」を押す。
  4. 完了!
Yugo
Yugo

他のボタンも同じように設定できるよ💡

ジョイスティックでマウスカーソルを動かしてみよう!

 次は、ジョイスティックでマウスカーソルを動かしてみましょう💡

 今回はただ動かすだけでなく、ジョイスティックの「Lボタン」を押すと、一時的にカーソルが1/5の速さまで減速するという機能を加えてみました💡

バーチャルマウスの作成!

 マウス操作をするために、バーチャルマウス(仮想のマウス機能)を作成します💡

 最初と同様、「歯車マーク」>「Create Virtual Device」>「Virtual Mouse」をクリックしましょう💡

  バーチャルマウスを作成すると、「Controllers」に新しく作成したバーチャルマウスが表示されているのでクリックします。

 Device欄に「Driver Configuration」という項目があるので、左サイドバーへドラッグ&ドロップしましょう💡

バーチャルマウスの設定!

 続いてバーチャルマウスの設定です💡

 デフォルトの設定でも構いませんが、好みの反応速度に変えたい方はここを変えることでジョイスティックを倒す角度とマウスポインタ速度の関係を微調整できます。

ジョイスティックでマウスカーソルを動かすだけの設定!

 最初に、ジョイスティックを倒すと、倒す角度によってマウスの移動速度が変わる単純なジョイスティックマウス機能を作ってみましょう💡

 最初のように、コントローラーからジョイスティックの「X-Axis」「Y-Axis」機能を作業エリアに配置します。

 先程作ったバーチャルマウスの「X-Axis」「Y-Axis」も同様に配置します。

Axis Calibration Building Blockを追加!

 パレットの「Calculation」から「Axis Calibration Building Block」を選んで、上図のように配置します(ジョイコントローラーとバーチャルマウスの間に挟むように)。

Axis Calibration Building Blockの設定!

「Axis Calibration Building Block」をクリックするとインスペクタに設定内容が表示されるので、は次の2つの設定を行いましょう💡

設定する箇所!

  • Expected input range:ジョイスティックを倒したときに反応する範囲
  • Calibrated output range:出力される値(今回の場合マウスカーソルの速さ)

 Calibrated output rangeは、ジョイスティックを倒したときに出力される値の範囲で、倒す角度によって最大でここで指定した数値まで出力します。

 Calibrated output rangeの幅を大きくするとカーソルの速度が上がり数値を小さくするとカーソルがゆっくり移動するようになるので好みの速さになるよう調整しましょう💡

 また、ジョイスティックの中心位置がずれて倒していなくても反応してしまう場合には、感度を調整することもできます💡

X軸・Y軸両方を設定すれば完了!

 これらの設定をX軸、Y軸両方に行えばジョイスティックマウスの完成です💡

ボタンを押すとジョイスティックマウスの速度が1/5に減速する機能を追加する方法!

 続いて、先程作ったジョイスティックマウスに、「るボタンを押したときだけ速度が1/5に減速する」という機能を付けてみましょう💡

 これはとても簡単で、「Axis Calibration Building Block」から出力される値を分数で割って出力れば良いのです💡

ボタンが押されていないときは「1」、押されたときに「5」が出力される機能を追加!

 ここで、ジョイスティックのあるボタンに数値を出力する機能を付けましょう💡

 ボタンが押されていないときは「1」を、押されたときは「5」を出力する機能を付けます。

Point!

「Content Number Building Block」を使って数値を作り出す!

Axis Calibration Building Block」の値を「Content Number Building Block」の値で割る機能を追加!

 続いて、Basic Mathにある「Division Building Block」を使って、先程の「Axis Calibration Building Block」から出力された値を「Content Number Building Block」で生成された数値で割る機能を追加します💡

  • ボタンが押されていないとき:1で割るため数値は変わらない!
  • ボタンが押されているとき:5で割るため数値は1/5になる!

 ということでマウスカーソルの速度が1/5になるという機能が実装できるわけです💡

Yugo
Yugo

ちょっと説明が難しくなってしまったので、もし原理がわからないという方はコピペで実装してね💡Point!

ControllerMateでは、割り算以外にも掛け算、足し算、引き算など様々な数式を使うことができる💡

繰り返し(オートリピート)機能を使ってスクロールボタンを作ってみよう!

 次は繰り返し(オートリピート)機能を使ってスクロールボタンを作ってみましょう💡

 オートリピートとは、ボタンを押している間は指定した動作をずっと繰り返す処理のことです。

 配置する場合は上図のように「ボタン」>「オートリピート」>「動作」のように並べて使用します。

オートリピートを配置!

 オートリピートはパレットの「Timing」にあります💡

 ブロックを選択すると、1秒間に何回繰り返すか指定ができるので設定しましょう。

Yugo
Yugo

最大で1秒間に30回までの繰り返し処理を行えるので、ここでは最大値の30を指定しているよ💡

マウススクロールの設定!

 マウススクロールでは、

  • 水平スクロール or 垂直スクロール
  • 上スクロール or 下スクロール
  • スクロール量

 の3つの値を設定します💡

上下のスクロールを設定すれば完了!

 2つのボタンを使って、上下のスクロールを設定すれば完了です💡

Yugo
Yugo

いろいろ設定を変えて丁度よい速さに設定してみよう💡

複数のボタンを押したときに機能がONになる「ANDブロック」でキーボードショートカットを設定してみよう!

 ロジックにある「ANDブロック」を使えば、複数のボタンが押されたときのみに実行する処理を作ることもできます💡

 これは上図を見ればわかりますね💡

Point!

この他にも「NOT」「OR」「トグルスイッチ」「グループのON/OFF」など様々な条件分岐ができるので様々な機能を作れる💡

今回作った設定はこちら!

 このように、ゲームパッドの機能をどんどん追加して、最終的にこのような設定になりました💡

 やったことは、

  • ジョイスティックでマウスポインターの移動機能
  • マウスポインターの減速ボタン機能
  • スクロール機能(上下)
  • マウスクリック機能(右クリック、左クリック)
  • 十字キー(↑↓←→)
  • 各種ショートカットキー

 になります💡

注意!

  • マウスの右クリック、左クリック、中央クリックは、ControllerMateを起動している状態では動きませんが、ソフトを終了すると動く仕様になっているそうです💡
  • 一度はあれっ?動かない?という現象に遭遇するので頭の片隅に置いておきましょう💡
  • 下にソフトの原文を掲載しておきます。

マウスクリックセクションの原文:

Button Down action with the Left, Right, and Middle buttons are not generated by the Controller Mate application.

They will be generated by the background helper application when Controller Mate is not running.

【おまけ】テンキーなど、元々の機能を無効にする方法!

元の機能を
無効にする!

 今回はPS3コントローラーを使用しましたが、中にはテンキーなど、元々機能が割り当てられている機材を使用したい場合もあるかと思います。

 テンキーを押すと、当然数字が出力されるので、ControllerMateで追加した機能の他に、数字も一緒に出力されてしまう問題が生じるんです💡

 そんなときは、テンキーに元々備わっている機能を全て無効化させてしまいましょう💡

 それでは早速方法を解説していきます。

空欄部分を右クリック!

 まず、空白部分を右クリックして「Create Driver Configuration」>「操作したいデバイス名」をクリックして設定を追加します。

デフォルトの機能を全て無効にする!

 追加されたデバイス名をクリックしたら、右の画面に割り当てられている機能の一覧が表示されるので全て選択しましょう💡

 選択したら、動作の部分をクリックして「None」を選べばすべての機能が無効になります💡

 これで無事、デフォルトの機能が全て無効になりました。

【おまけ】MIDI出力で自作MIDIコントローラーも可能!?

 ControllerMateでは、DTM(音楽制作)に使えるMIDI出力機能も備えています💡

 ノートの出力(鍵盤機能)CCの制御ピッチベンドなどMIDIコントローラー作りに必要な機能はすべて揃っています💡

 ジョイコントローラーやテンキー、その他のUSB機器をMIDIコントローラーに改造するなんて使い方も面白そうですね^-^ノ

続編(MIDIコントローラー作成編)」も紹介しています💡