読者です 読者をやめる 読者になる 読者になる

G13で文字入力するスクリプトを組んでみた

G13で文字入力ができるようにしてみた

 LogitechのG13 Advanced Gameboardで日本語入力ができるスクリプトを組んでみました。誰が得するんだか分からない需要のなさそうなスクリプトですが、僕が得すればそれで充分です。昔懐かしのポケベル入力方式ですいすい日本語が打てる気がします。
 ソースはソースとか仕様とかの項にあります。
 註:日本語版のドライバではスクリプトが動作しないようです。Logitechのサイトの下の方に国旗が表示されているはずですので、そこから米国用のページへ飛び、G13のページまでたどり着いて最新のドライバをダウンロードしてください。

そもそもG13って何

 有名周辺機器メーカーのLogitechが販売している、PCゲーム用に特化したキーボード的なインターフェイスです。24個のファンクションキーと十字スティックにそれぞれ好きな命令を割り振れるのが特徴。左手専用のインターフェイスなので、右手はずっとマウスに専念でき、コマンド入力の度にマウスから手を放すなどという面倒も解消できます。Luaというプログラム言語によるスクリプトにも対応しているため、かなり自由度は高め。また、ゲーム以外でもCtrl+VとかCtrl+Shift+Tabのような面倒なショートカットをキー一つにまとめることができるのですごく便利。大量のショートカットを使いこなさないととてもじゃないけど効率が悪すぎるようなソフト(数式エディタとか画像編集ソフトとかね!)にも大活躍ですよ。やったね。あと、なんか変な画面もついてます。CPU使用率とかをせっせと表示してくれます。七色に光ります。必要ないことこの上ないのですが、何か格好いいのでまあいいや。

LOGICOOL アドバンスゲームボード 16万色対応バックライト G-13

LOGICOOL アドバンスゲームボード 16万色対応バックライト G-13

 ちなみに何で僕がこれを買ったかというと、メインPCを動かしながらネットブックのTwitterクライアントを操作するためです。というのも、僕は自宅ではたいていの作業をメインPCでやっているのですが、Twitterクライアントだけはネットブックにしか入っていません。タブ振り分け設定の同期が面倒だからね。そんなわけで、PC変換器を使ってキーボードとマウスを共有し、サブディスプレイにネットブックの画面を表示させてるわけです。ところが、Tweenのタブを切り替えたりスクロールさせようとするたびに作業を中断して切り替え機のスイッチに手を伸ばすのはどうにも面倒。それならいっそG13をネットブックに接続して、それで解決してまえ、的なあれです。タブ切り替え(Ctrl+Tab)やfavorite(Ctrl+S)なんかもキー一つでできるようになって便利なことこの上ないですね。ついったったーは絶対に買うべきですよね! この上にあるリンクから今すぐにでも買うべきですよね! 上にあるamazonアソシエイトのリンクから!

日本語入力ですよ

 G13のおかげで快適なTwitterライフが送れるようになったわけですが、人間の欲望には際限がありません。閲覧が快適になると今度は発言も快適に行いたいという欲求が出てくるのです。マズローの三段階欲求説です。しかし発言しようとするたびに作業を中断して切り替え機のスイッチに手を伸ばすのはどうにも面倒。それならいっそG13で文字入力もできるようにして、それで解決してまえ、的なあれです。
 G13にはキーが24個しかなく、その並び方もかなり特殊なため、素直にQWERTY方式でキーを割り当てていてはどうにもなりません。何か別の入力方式が必要になります。思いついたのがポケベル入力方式とiPhoneのフリック入力方式でしたが、後者は僕がiPhoneを持っていないため、よく分からないしまったく馴染みもありません。その点前者はふだんからポケベル方式で携帯の文字入力をしている僕ですし、うってつけです。というわけで入力方式はポケベル入力に決定。なんだかメーカーによって少しずつ違いがあるみたいですが、ふだん使っているSHARPの方式に従うことにしましょう。
 ポケベル方式は基本的に10しかキーを使わないため、残り14ほどキーが余ります。EnterキーやShiftキー、スペースキーなどの文字入力に必須のキーを割り当てていきます。あと半角/全角キーやF6〜F10も欲しいところ。そうして残ったキーに、なるべくよく使いそうなものから記号キーなんかを割り当てていきましょう。それと、実際のポケベル方式には小文字モード(80で切り替え)があるのですが、実装がかなりめんどくさそうなので無視することにします。小文字入力は別途キーを割り当てることにします。
 パパッとできるかなーと思ったら案外スクリプトの仕様が使えなかったり慣れない言語でもたついたりそもそもLuaのドキュメントがほとんどなかったりで予想外に時間を食う羽目に。ようやく完成したコードもなぜか300行以上の超大作に。絶対削れるところがあるはずだ。でもコード見直すのめんどくさい。普通に使ってて普通に動けばええねんが信条です。

ソースとか仕様とか

ソースとおおざっぱな仕様

J4G13.lua 直
 とても他人に見せられたものではありませんが、ソースを公開してみます。きれいなソースにしてくれる方は大歓迎ですので、僕の見えないところでやってください。基本的な文字入力には中央の10個のキー(G3、G4、G5、G10、G11、G12、G16、G17、G18、G21)を使います。これらは変更できませんが、その他のキーは全てソース最上部のconfig部分で好きなように入れ替えできます。初期設定ではG23にEnterキー、G24にShiftキー、G22にスペースキー、G1に半角/全角キー、G2にF6〜F10キーを割り当てています。G2キーは押した回数によってF6からF10まで順番に切り替わっていきます。また、小文字のあるひらがなについては、入力後にG20キーを押すことで小文字に変換できます。

使い方

 スクリプトを導入するまえに、設定を全てエクスポートしてから米国版の最新ドライバを入れておいてください。もし起動できない場合、Documents and Settingsフォルダ内にあるLogitechフォルダとLogicoolフォルダを全て削除すれば大丈夫だと思いますが、どうなっても責任はとりません。
 スクリプトをインポートしたら、ドライバG1からG24までの全てのキーをスクリプトに割り当てます。十字スティックはカーソルキーに割り当てるといいでしょう。

メイン10キー
11 12 13 14 15 16 17 18 19 10
21 22 23 24 25 26 27 28 29 20
31 32 33 34 35 36 37 38 39 30
41 42 43 44 45 46 47 48 49 40
51 52 53 54 55 56 57 58 59 50
61 62 63 64 65 66 67 68 69 60
71 72 73 74 75 76 77 78 79 70
81 82 83 84 85 86 87 88 89 80
91 92 93 94 95 96 97 98 99 90
01 02 03 04 05 06 07 08 09 00
  • 04(濁点)、05(半濁点)は、濁点・半濁点のつくひらがなのあとに入力する。対応するひらがなは「う」、「か」〜「と」、「は」〜「ほ」の21種(半濁点は「は」〜「ほ」の5種のみ)。
  • 小文字の存在するひらがなは、入力後に小文字キー(初期設定ではG20)を押すことで小文字になる。対応するひらがなは「あ」〜「お」、「つ」、「や」〜「よ」、「わ」の10種。
  • 英字はShiftキー(初期設定ではG24)を押しながら入力することでシフトできる。
その他のキー
G1 半角/全角
G2 F6〜F10
G6
G7
G8
G9
G13
G14
G15
G19 Backspace
G20 小文字
G22 スペース
G23 Enter
G24 Shift
  • G6、G7、G8、G9、G13、G14、G19キーはShiftキーを押しながら入力することでシフトできる。
  • F6〜F10キーは、押すごとにF6、F7、F8、F9、F10の各機能に切り替わる。
せきにんのがれ

このスクリプトを使ってどんな損害を被ろうと、僕は責任とれませんのでそのつもりでお願いします。

入門Luaプログラミング

入門Luaプログラミング