MX Creative Consoleで始める快適Unity生活

# はじめに
この記事は[QualiArts Advent Calendar 2024](https://qiita.com/advent-calendar/2024/qualiarts)の20日目の記事になります。

アドカレのネタ何か無いかなぁと思ってたところ、ロジクール社から『MX Creative Console』という面白そうなデバイスが発売されたので、ネタ作りも兼ねて買って触ってみました。

https://www.logicool.co.jp/ja-jp/products/keyboards/mx-creative-console.html

本稿では『MX Creative Console』の紹介を行い、Unityとの連携方法も紹介します。
Unityとの連携はUnityのショートカットマネージャーを用いることで実現します。

最後のUnityとの連携話に入るまでは、エンジニア以外の方も読める内容になっていると思います。

本記事では、製品の紹介にあたり[ロジクール公式サイト](https://www.logicool.co.jp/ja-jp/products/keyboards/mx-creative-console.html)の内容を引用しております。

本記事では、`Unity6000.0.27f1`を用いています。

# MX Creative Consoleとは

![logitech-mx-creative-console-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/c3c41a1d-eaf5-5030-8d5d-7e6ce7180fab.jpeg)

『MX Creative Console』とはロジクール製のクリエター向けショートカットキーパッドです。
それぞれのボタンなどに対して、専用の『Logi Options+』アプリを介して機能を割り当てることができます。
発売日は2024/10/14です。結構新しめのデバイスですね。

## 左手デバイス
右手はマウスを扱うことが多いため、このようなデバイスは左手で扱うことが多く、左手デバイスと呼ばれたりもします。
『MX Creative Console』以外の左手デバイスだと『[STREAM DECK](https://www.elgato.com/jp/ja/p/stream-deck-mk2-black)』や『[TourBox Elite](https://www.tourboxtech.com/jp/tourbox-elite/)』などがあったりします。触ったことはないです。

![71+auul1+5L._AC_UF894,1000_QL80_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/80efb760-635c-f399-2f6e-d79b32ec7c1a.jpeg)

![Elite_White_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/90f99304-df54-cc4a-61ac-12eea9b354e0.jpeg)

## できること
『MX Creative Console』で行えることをざっくり紹介します。

### 使っているアプリに応じて、キーパッドの中身を自動で変更
![20241205_1_mini.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/8740604d-0399-024e-1314-6288f969d86e.gif)

### ボタンに割り当てられたアクションを実行
![20241205_2_mini.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/5164aaa5-2e94-ff2c-48f7-435f425a0cf3.gif)

### ページングによって9個より多くのアクションも設定可能
![20241205_3_mini.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/1fb1ee03-2965-570e-8097-1f538c15c6f0.gif)

### ダイアルパッドと連携させて、より多くのことを実現可能
![20241205_4_mini.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/796b41f6-a9de-cc32-3005-32b579f49bdf.gif)

### Adobeとの連携
たとえばAdobeのソフトと連携させることもでき、下記のようなことも行えます。

Photoshopでブラシのサイズを調整したり、
<iframe width="560" height="315" src="https://www.youtube.com/embed/vP5RJWnihFU?si=BMsmXJLFrLKdafys" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

Premiere Proでタイムラインをスクロールしたり、
<iframe width="560" height="315" src="https://www.youtube.com/embed/vGnRuMfFsqU?si=HBrWO_HbDXfqMHTW" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

Lightroom Classicでプリセットを実行したりできます。
<iframe width="560" height="315" src="https://www.youtube.com/embed/a4LxZTwARM4?si=EWprx-CB_qTXKhwd" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

### そもそも
紹介動画を見てしまうのが一番イメージを付けやすいと思うので、ここまで説明した上で公式の紹介動画も貼っておきます。
<iframe width="560" height="315" src="https://www.youtube.com/embed/X2V6xlpf6NY?si=Q0jCc8lywgjmyrzL" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

# Logi Options+

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/fa06e59d-eaba-a251-5c9c-e35c96942ecd.png)

『MX Creative Console』のカスタマイズには『Logi Options+』を利用します。

https://www.logicool.co.jp/ja-jp/software/logi-options-plus.html

『Logi Options+』はロジクール製のマウスやキーボード、タッチパッド、ウェブカメラ、ライト、プレゼンテーションリモコンなどのデバイスをカスタマイズできるアプリです。
デバイスを一気通貫してカスタマイズさせることで、ワークフローの効率化を行うことができます。

## 主な機能

ロジクール製の製品のカスタマイズに加えて、大きな機能が5つあります。

- Smart Actions
- Flow
- AI Prompt Builder
- Actions Ring
- Marketplace

以降では、機能を1つずつ見ていきます。

### Smart Actions
Smart Actionsは、複数のアクションを1回のクリックまたはキーストロークで自動化できる機能です。
これにより反復的なタスクをスキップでき、一般的なタスクを自動化することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/e3f89344-f4d2-1c78-614b-44d87dc91b98.png)

また、カスタマイズ可能なテンプレートが事前に定義されています。
執筆時には、下記のようなテンプレートが定義されていました。

- 作業モード
- 会議モード
- ソーシャルメディア休憩
- Netflix休憩
- 作業モード（Google Suite）
- 作業モード（MSスイート）
- ウェブの選択と検索
- 休憩する
- 行き先はどちらですか？
- 手頃な価格でショッピング
- Perplexityに尋ねる
- Adobe Firefly
- ブラウザでCopilotを開く
- Google Gemini
- AIによるメッセージへの返信
- AIによる文法修正
- AIによるテキストの要約
- AIによる英語の翻訳
- AI説明コード
- AIに冗談を言わせる
- すぐに戻ります
- 朝のセットアップ
- リラックスタイム
- プロジェクトの変更をプル
- URLを開く
- 会議ヘルパー
- Slackで検索
- コミットされていないコード変更を確認
- マスターをリベース
- 簡単速度変更（Premiere Pro）
- インポイントとアウトポイントを設定（Premiere Pro）

いろいろありますね。
例えば、AIに冗談を言わせるというテンプレートは次のように定義されていました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/c98f6198-f2bd-ebf9-6cad-d013dea33a26.png)

`”Tell me a joke about a mouse and a keyboard”`
とのことなので、マウスとキーボードに関する冗談を言ってくれるようですね。
右下に「試してみましょう」というボタンがあったので試してみました。

ChatGPTが開いて質問が送信され、下記の回答が返ってきました。
`
”Why did the mouse break up with the keyboard?`
`Because it found someone more responsive!”`

”なぜマウスはキーボードと別れたのでしょうか？
より反応の良いものを見つけたからです！”

なるほどね！難しいね！

### Flow

Flowは、2台のコンピュータ間のシームレスな作業環境を実現する機能です。

Flow対応マウスのカーソルがコンピュータを跨いで移動して、Flow対応キーボードもマウスと連動して操作コンピュータが切り替わります。
さらに、WindowsとmacOSを跨いで連携もでき、コンピュータを跨いでテキスト、画像、ファイルなどもコピペで簡単に転送することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/5c686f45-ae94-58ff-779f-d4c03567c906.png)

### AI Prompt Builder
AI Prompt Builderは、マウスの任意のボタンを押した際に『Logi AI Prompt Builder』と呼ばれるウィンドウを呼び出し、そこからChatGPT用のプロンプトの作成と実行を素早く行うことができるという機能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/b7d1d995-0f0f-5a4c-00c4-f7b1e5a0551e.png)

### Actions Ring
Actions Ringは、カーソルの周りにアプリに応じたカスタマイズ可能なボタンを出して実行可能、という機能です。
『MX Creative Console』でやってることが画面上でも出来るという印象を受けましたが、現状は『MX Creative Console』としか連動させられないとのことなので、まさにそのための機能という感じですかね。

![20241205_6_mini.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/58658dbd-0967-f56d-f711-637574cd402c.gif)

### Marketplace
Marketplaceにはプラグイン、推奨プロファイル、アイコンパックなどが用意されています。
こちらも現状は『MX Creative Console』に対してのみ利用可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/b1f636bb-699f-145c-7cb5-3498e17b227d.png)

こちらは『Logi Options+』を介さずともWeb上で確認できたので気になったら見てみてください。

https://www.logicool.co.jp/ja-jp/software/marketplace/plugin-listing.html

執筆時には、Macには下記のアプリのプラグインが用意されていました。

- VLC media player
- Spotify Premium
- After Effects
- Smart Actions
- Ableton Live
- Capture One
- Apple Music
- Twitch
- Premiere Pro
- Photoshop
- Lightroom Classic
- OBS Studio
- Illustrator
- Audition
- Zoom Meeting
- Microsoft teams for Business
- Discord
- Philips Hue（Beta）
- FinalCutPro

Unityのプラグインは残念ながら今はまだ用意されていませんでした。

# カスタマイズ

それでは実際に『MX Creative Console』をカスタマイズしていきましょう。
Adobeの製品は機能も多いので説明に良いかなとも思ったのですが、Zoomの方が馴染みのある方が多いと思うので、Zoomを例に見ていこうと思います。

## プラグインのインストール

Marketplaceのプラグインの項目にZoom用のプラグインが用意されているのでインストールします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/e92ab3c6-25ca-2aa2-2fb7-3397e1ab3425.png)

人気のアクションの項目を確認してみても、確かに便利そうな機能が入っていますね。
- ミュート／ミュート解除
- 休暇会議
- フルスクリーンモード
- 招待リンクをコピーする
- 録音の一時停止/再開
- スイッチカメラ
- 手の上げ下げ
- ギャラリー表示に切り替える
- トグル・チャット
- トグルビデオ
- トグルミュート

休暇会議って...何だ...？

### ダイアルパッド
ダイアルパッドには次のようなアクションが設定されていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/c248117b-94fd-bb04-b724-96f6e8e0d8e2.png)

真ん中の大きなダイアルでは、Zoomではなくシステムの方の音量を操作でき、右上のローラーではスクロールが行えるようですね。

左上のLeave MeetingはMTGを退出ですね。
おそらく日本語訳がおかしかっただけで、先ほどの休暇会議はこれな気がします笑

### キーパッド
キーパッドには次のような機能が設定されていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/7753412d-be26-ccd7-0ed0-485e1010fa2e.png)
現状はまだ１ページ分しかアクションを登録されていないみたいですね。

キーパッドは後ほどもう少し見ていきます。

### Actions Ring
先ほど紹介したActions Ringにも次のような機能が設定されていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/b0a0e8ae-e84b-d88d-55a7-2d979b2fdd9f.png)

## キーパッドをもう少し見てみる
キーパッドをもう少し見ていきます。

右側のトグルを開くと、このプラグインで定義済みのアクションの一覧を見ることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/a515a46d-a827-e722-daea-733b3ca31ebb.png)

ここの項目は手軽に設定できるという感じですね。

また、Zoomでなくシステムの方のアクションを設定することもできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/80f37bb4-d861-338e-531c-8fcd52e16afb.png)

ダイアルパッドの音量変更はまさにこちらですね。

## キーパッドのカスタマイズ
それでは簡単にではありますがキーパッドをカスタマイズしてみましょう。

### Zoom用キーパッドのカスタマイズ
Zoom用のキーパッドをカスタマイズします。

まず、現在設定されているプロファイルはプラグインで定義されているZoomのデフォルトのプロファイルです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/f4262771-d378-860a-4b0b-31f634259df7.png)

デフォルトのプロファイルをカスタマイズしてしまうのはあまりよろしくないので、プロファイルを複製して自分用プロファイルを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/642a3e5e-103c-b3cc-c973-a50a6fda0ee5.png)

ちなみに「プロファイルを追加」から新しいプロファイルを作成することもできます。
また、複製の下にエクスポートとあるように、作成したプロファイルをエクスポートして共有することも可能です。

話を戻します。名前は「My Zoom Profile」とでもしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/cd2a3503-5ac2-15d2-4331-6b6a0518233d.png)

これで自分のプロファイルが設定され、編集対象も自分のプロファイルとなったので安心です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/ad75b131-6cc1-79a0-7a0c-817789e44527.png)

新規ページを追加して、
![貼り付けた画像_12_20_24_午後8_20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/29abcc8a-a4c5-8498-a550-85a67498bbf7.png)

2ページ目が追加されたので、2ページ目を開いてみましょう。
![貼り付けた画像_12_20_24_午後8_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/bffa9281-059b-fad8-947a-ceaa64e2f867.png)

現在はまだ何も設定がされていない状態です。
ちなみに不要なページはページングを右クリックして削除できます。

それでは2ページ目にアクションを設定してみましょう。
STARTのトグルを開くと、招待系の処理が入っていて便利そうなので追加したいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/75e5bbad-bd6a-1db5-a011-db906360c3a5.png)

とはいえ「Copy Invite Link」は招待リンクのコピーだろうけど、「Invite to a meeting」は何が起こるのか分からない（自分が単にZoomを使いこなせていないだけ）。

ということで、これの内部で走る処理の詳細を見たいのですが、右クリックなどしても特に何も出てこない。
結果、詳細の見方は分かりませんでした。
というか見られない気がしているので、見る方法がありましたら教えてください。

アクションはアクションリストから項目をキーにドラッグ＆ドロップすることで設定できます。
![貼り付けた画像_12_20_24_午後8_33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/6befd35d-3e21-7dbe-cde8-f4bca345d879.png)

ちなみにキーからキーへドラッグ＆ドロップをすることで、アイコンを移動したり、アイコンを入れ替えたりすることもできます。

ページを跨いだドラッグ＆ドロップはできないので、その際は切り取りや貼り付けを使って移動させるのが良さそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/c2bebd2e-35ea-3402-067d-c2b7e578f3ff.png)

### システム用キーパッドのカスタマイズ
システム用のキーパッドもカスタマイズして、Zoomを起動するボタンを追加します。
システム用のキーパッドは連携しているアプリにフォーカスが当たっていない場合に表示されるキーパッドです。

編集対象のプロファイルは上のタブで切り替えることができます。
![貼り付けた画像_12_20_24_午後8_59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/d01438bb-6de1-6474-9043-0d6a37bf5190.png)

システム用の処理がいろいろ登録されているのが分かると思います。
ただ、自分はこのEmojisというのがよく分からない...

ためしに選択をしてみたら、詳細が表示されました。親切。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/4e4f84bb-14ff-583e-9b9e-e95f22fe8d47.png)

どうやら先ほど何が起きるか分からなかった「Invite to a meeting」は、単に説明が書いていなかっただけなのかもしれない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/7b773bac-237b-0cda-bfc9-15f6e5bc680e.png)

さて、それではZoomを起動するボタンを追加しましょう。
今回も2ページ目に配置をしようと思います。
ページを増やすところまでは先ほどまでと同様なので省略します。
ちなみに今回もプロファイルはデフォルトのプロファイルとなっているため、別でプロファイルを作成しておくと良いと思います。

もろもろ済んだらこのような状態になっていると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/1fef645f-1d72-9e60-cc48-6e331663de24.png)

OPENのトグルに「アプリケーションを開く」という項目があるのでこれを使うのが良さそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/7cec41e3-0590-51e6-a9c7-ea7dc1265c36.png)

こちらをキーにドラッグ＆ドロップすると今回はポップアップが開きました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/70f3adfb-0342-9428-58a2-1c2fb87a94a4.png)

開くアプリケーションを指定したりする必要があるので、必要な項目の設定をここで行う感じですね。
開くアプリケーションとしてzoom.usを選択したところ、自動でZoomのアイコンも設定されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/94338b0b-e43e-b1cd-3f46-afebdc6424bb.png)

こちらで保存を行うと、無事に設定が行われました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/1b5cdbee-b090-5764-4b29-c0e09bbe49ce.png)

## 実際に試してみる
Zoomの「Invite to a meeting」は何だったのか、というのが気になるので実際に試してみましょう。

### Zoomを起動
Zoomを起動していなかったり、Zoomアプリ（対象アプリ）にフォーカスが当たっていない場合は、システム用のアクションが割り当てられます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/9c3715a2-f645-56d7-59f6-8d67ca9650b5.png)

下部に設置されているページングボタンで2ページ目を開き、先ほどのZoomを起動するボタンを押してみます。
Zoomのキャプチャは省略しますが、無事にZoomが起動しました。
ちなみにZoomが起動している状態でボタンを押したところ、Zoomアプリにフォーカスが当たりました。

### MTGを開始
さて、Zoomの起動と同時にZoomアプリにフォーカスが当たるので、キーが自動でZoom用に切り変わります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/87992ba3-7cc0-ed70-f046-f017039ea278.png)

せっかく「Start Meeting」というボタンがあるので、それでMTGを開始します。
無事にMTGが開始されました。

### Copy Invite Link
それでは2ページ目を開いて先ほど配置した「Copy Invite Link」を押してみます。
無事に招待コードがクリップボードにコピーされていました。想定通りの挙動ですね。

### Invite to a meeting
さて「Invite to a meeting」を押してみましょう。
招待用のポップアップが開きました。
![貼り付けた画像_12_20_24_午後9_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/ae7e5bfa-e01c-9f22-558c-13cd10f81fe6.png)

こんな機能あったのか！ってことで単に自分が無知だっただけでした笑

## Zoomをカスタマイズしてみた感想
プラグインで定義済みの機能を使うのはとても楽だなという反面、そこから外れて何かをしたいという時が大変かもなという印象でした。

例えば自分はSlackでZoomを共有する際に、`/zoom join <ミーティング ID>`というコマンドを多用しているのですが、それを作成するアクションを作りたいと思った際に、`<ミーティング ID>`とどうやって取るんだ？というのが気になったりしました。

自分が知らないだけで案外簡単に取る方法があるのかもしれないですが、最低限の知識は求められるなという感じです。

ちなみに今回の`<ミーティング ID>`でいうと、本質的な解決策ではないですが、先ほどのZoomの招待リンクの末尾が`<ミーティング ID>`なので、そこら辺を組み合わせて駆使すれば取れそうではあります。

マルチアクションという、複数のアクションを実行するアクションあるので、これでいったん招待リンクをコピーした後に、コマンド実行などのアクションを組み合わせてゴニョゴニョすればいけるかもしれないですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/a3d8f9e9-6b03-30a9-d644-043f42598525.png)

ちょっと時間が足りず、今回は省略します。

# Unityとの連携
ここにきてようやくUnityとの連携の話です。

## プロファイルの新規作成
さて、UnityはMarketplaceでプラグインなどが提供されているわけでもないので、自身でプロファイルを０から作成する必要があります。

「プロファイルを追加」を押しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/6429ced3-60d5-02e2-b8b0-367117d093e7.png)

プロファイルを追加する画面が開くので「アプリケーションプロファイル」を選択します。
![貼り付けた画像_12_20_24_午後10_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/198154f2-e567-45c3-30f9-c53464f5e6da.png)

こんな感じでアプリケーション一覧が出てくるのですが、Unity Hubは出てくるものの、Unity自体は出てこなかったので「別のアプリケーションを選択」を選択します。
![貼り付けた画像_12_20_24_午後10_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/a3ae5387-35fd-4c95-8fed-77135ac921f4.png)

そして、対象のUnityアプリを選択するとUnityに紐づいたプロファイルが用意されるので、こちらで「空のプロファイルから開始」を押します。
![貼り付けた画像_12_20_24_午後10_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/f628da81-2009-2342-2621-e550164be1de.png)

そうするとプロファイルの名前入力画面が開き、名前を入力するとUnity用の新規プロファイルが作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/b07dd641-dcc9-ce9d-e48f-c1dd67042d2d.png)

試しにUnityを起動してみると、無事にキーパッドが空のキーパッドに切り替わりました。

ちなみに、自分は複数バージョンのUnityを入れており、その中の1つのバージョンのUnityを選択してプロファイルを作成したのですが、他のバージョンのUnityを選択した際にも無事にキーパッドは切り替わりました。

バージョンごとに同じプロファイルを複製して用意する必要があるかなと思っていたので少し安心しました。

## 方針を立てる
システムアクションを元にアクションを組み立てていくのですが、AppleScriptやコマンドの実行であったり、マウスのスクロール/カーソル移動/クリックであったり、キーボードショートカットであったり、クリップボードを用いたりと、幅広い方法を組み合わせることが出来るのですが、今回はキーボードショートカットでアクションを作ろうと思います。

## ショートカットマネージャー
Unityにはショートカットマネージャーというものがあり、この機能を用いることでキーボードショートカットの表示と管理を行うことができます。

https://docs.unity3d.com/ja/2023.2/Manual/ShortcutsManager.html

ショートカットマネージャーと組み合わせることで、効率的にアクションの作成と管理を行うことができそうです。

Unityを起動し、「Unity > Shotcuts...」でショートカットマネージャーを開きましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/f951acb4-e65c-e59b-fd77-7e37f94dc85c.png)

何だか、マニュアルの画像と比べて随分と味気ないものが開きましたね...
Unity6000からデザイン変わった？と思いましたが、開いた瞬間に一瞬キーボードが映り込んで消えたので、きっと何かが起きているんでしょう。

ちなみにこれはマニュアルのショートカットマネージャーです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/2dfc0d81-c798-e94e-9c5d-a99070f2a5b3.png)

まぁ、気にせず進めましょう。

ここで設定されている既存のショートカットをそのまま設定しても良いのですが、それだと記事として拡張性に欠けるので、今回は独自の処理を行うショートカットを作成して、その処理を『MX Creative Console』と紐付けていきます。

## MenuItemを実装する

まずは　MenuItemとして処理を実装します。
処理の内容は簡単なもので良いかなと思うので、今回はCubeを作成し、x, y, zの値が-3f〜3fの座標へとランダムに配置を行う処理とします。

```csharp
using UnityEditor;
using UnityEngine;

public class MxShortcut : MonoBehaviour
{
    [MenuItem( "Tools/Create Cube Random" )]
    private static void CreateCubeRandom()
    {
        var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.transform.position = new Vector3(
            Random.Range(-3f, 3f), 
            Random.Range(-3f, 3f), 
            Random.Range(-3f, 3f));
    }
}

```

この実装により上部の「Tools > Create Cube Random」にMenuItemが用意されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/68549481-f4f2-f01c-0563-68033bd1aa2b.png)

このMenuItemを10回実行すると、確かにCubeが10個作成されていることが分かると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/4a4ff81e-8222-8927-f87e-0af0d6a4668a.png)

## 作成したMenuItemにショートカットを紐づける
MenuItemとして作成したことでショートカットマネージャーのMenuItemのカテゴリに先ほど作った処理が追加されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/e2a3b598-ea1f-ec39-ad4b-ce28203400c7.png)

ここのショートカットの項目をクリックするとショートカットを入力できるので、ショートカットを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/33f89f71-3fe6-6cc7-090c-3b4ea9bd9128.png)

今回は`Command + Option + Control + C`としました。
ショートカットマネージャーでショートカットキーの被りも検知できるのでここまで複雑にしなくても良かったのですが、『MX Creative Console』と連携させるためだけの目的で、普段使いはしないショートカットだったら複雑でも良いかなぁという気もしております。

`Command + Option + Control + C`を押して、無事にCubeが作成されることも確認できました。

## 『MX Creative Console』に処理を登録
先ほど新規のプロファイルを作成した『Logi Options+』に戻りましょう。

システムアクションのKEYBOARDトグルの中の『キーボードショートカット』を割り当てます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/5bb4b096-68ef-3312-29e7-0f047c4cd94e.png)

このアクションをキーにドラッグ＆ドロップをするとショートカットの設定を行えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/7565455d-1815-01b5-2d20-512880b564b3.png)

先ほどの`Command + Option + Control + C`を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/ab770cdd-6e86-b566-0f04-1d02fd9c5b8e.png)

これにより、アクションが作成されました。アイコンの設定は省略します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/e4c77e0c-9b1f-f635-125b-059b16016814.png)

## 実際に試してみる
先ほど作成されたCubeをいったん削除して空にし、あらためて『MX Creative Console』で先ほど作成したアクションのキーを連打してみます。

無事にキーを叩くたびにCubeが作成されました。そして圧倒的に楽でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69978/f9b08729-d00a-db24-719c-7c3ebdf482f7.png)

## Unityをカスタマイズしてみた感想
MenuItemとショートカットマネージャーと組み合わせることで、結構気軽にアクションを作れると感じました。

弊社ではツールランチャーというものをカスタマイズして、何でも効率化してしまおうという勢いで幅広い処理の効率化も行なっているので、これと同じようなことをこの『MX Creative Console』でも行えるととても作業がしやすくなりそうだなと感じました。

https://technote.qualiarts.jp/article/66/

# 終わりに
本稿がどなたかの役に立ちましたら幸いです。
そしてUnityエンジニアの皆さま、良い感じのプロファイルを作って公開していただけると泣いて喜びます！

『MX Creative Console』はアドカレのネタ作りとして購入しましたが、思った以上に夢が広がりそうなデバイスでした。
そしてアドカレのネタで終わらせてしまうには、ちょっとお高かった（32,780円）のでちゃんと使いこなしていきたいです笑

思いの外、良いデバイス紹介の記事にもなった気がする！
デバイス紹介の案件などございましたらお待ちしております！笑

というわけで本年のアドカレ記事でした！

製品リンク載せとこ！

https://www.logicool.co.jp/ja-jp/products/keyboards/mx-creative-console.html