ロジクールGシリーズを買うと、それぞれのデバイスを制御するためのスクリプトが使えるようになります。
これを利用して詩人の楽器演奏を自動で行ったりできるのですが「Gシリーズ全てでスクリプトが使える」と書いておきながら、実際のスクリプトはG13の例しか書いていませんでした。
G13は残念ながらロジクールが生産中止を決めたらしく、案の定、今買おうとするとプレミア価格で恐ろしい値段になっています。
別にスクリプト再生はG13限定機能ではありませんので、G600やG300でも使えます。
今回は、G600、G300の任意のボタンにスクリプトを割り当てる方法について説明します。
私は実際、G13、G600、G300の3つのデバイスをPCに繋いでいますが、その状態でも問題なくスクリプトの再生、FF14内での自動演奏が出来る事を確認しています。
G600用スクリプトの書き方
細かい説明はいいから、とにかくG600にスクリプトを割り当てたいという方はこちらを参考にして下さい。
function OnEvent(event, arg) if(event == "MOUSE_BUTTON_PRESSED") then if(GetMKeyState("mouse") == 3) then if(arg == 9) then PressAndReleaseKey("9"); elseif(arg == 10) then PressAndReleaseKey("a"); elseif(arg == 11) then PressAndReleaseKey("b"); elseif(arg == 12) then PressAndReleaseKey("c"); elseif(arg == 13) then PressAndReleaseKey("d"); elseif(arg == 14) then PressAndReleaseKey("e"); elseif(arg == 15) then PressAndReleaseKey("f"); elseif(arg == 16) then PressAndReleaseKey("g"); elseif(arg == 17) then PressAndReleaseKey("h"); elseif(arg == 18) then PressAndReleaseKey("i"); elseif(arg == 19) then PressAndReleaseKey("j"); elseif(arg == 20) then PressAndReleaseKey("k"); end end end end
G600のモード3の場合に、G9~G20までのGボタンを押すと、それぞれ9、a、b、c、d、e、f、g、h、i、j、kの各キーを押すと言うスクリプトです。
2行目の
if(event == “MOUSE_BUTTON_PRESSED”) then
と、3行目の
if(GetMKeyState(“mouse”) == 3) then
がG13と微妙に異なる記述になります。
2行目はG600、G300といったマウスデバイスのボタンが押された場合、という条件文です。
3行目はマウスデバイスのGモード(1~3までユーザーが切り替えられるアレ)をチェックして、モード3だった場合に成立する、という条件文です。
PressAndReleaseKey(“9”);
と書かれている箇所が、そのボタンが押された際に実行される処理なので、演奏する場合はここに演奏用スクリプトを上書きコピーします。
つまりG600のGボタンに割り当てる場合は1つのGモードに12曲登録できるという事ですね。
G300用スクリプトの書き方
細かい説明はいいから、とにかくG300にスクリプトを割り当てたいという方はこちらを参考にして下さい。
function OnEvent(event, arg) if(event == "MOUSE_BUTTON_PRESSED") then if(GetMKeyState("mouse") == 2) then if(arg == 5) then PressAndReleaseKey("5"); elseif(arg == 4) then PressAndReleaseKey("4"); elseif(arg == 7) then PressAndReleaseKey("7"); elseif(arg == 6) then PressAndReleaseKey("6"); elseif(arg == 9) then PressAndReleaseKey("9"); end elseif(GetMKeyState("mouse") == 3) then if(arg == 5) then PressAndReleaseKey("a"); elseif(arg == 4) then PressAndReleaseKey("b"); elseif(arg == 7) then PressAndReleaseKey("c"); elseif(arg == 6) then PressAndReleaseKey("d"); elseif(arg == 9) then PressAndReleaseKey("e"); end end end end
G300にはボタンがあまり付いていません。
このスクリプトではモード2、あるいはモード3の場合に、G5、G4、G7、G6、G9を押すとそれぞれに割り当てられたキーが押されます。
if(arg == 5) then
がG5が押された時で、
elseif(arg == 9) then
がG9です。
3行目の
if(GetMKeyState(“mouse”) == 2) then
はG600と同じ記述で、モード2の時の分岐になります。
elseif(GetMKeyState(“mouse”) == 3) then
は3行目と対になっており、「モード2ではなくモード3の場合」という条件文です。
注意点
デバイスが使うスクリプトはPCから読み込むモードにする
ロジクールのGシリーズは、スクリプトをデバイス「本体」に保存する事ができます。
このモードだと、マウスを別のPCに接続したとしても、本体にスクリプトが保存されているので今まで使っていたスクリプトがそのまま使えるという利点があります。
但し、このモードではLogicoolゲームソフトウェアでスクリプトを書き換えることができなくなりますので、頻繁にスクリプトを編集する場合は面倒です。
デバイス本体にスクリプトを保存しておき、そのデバイスを別のPCに持って行って接続するなんて状況は、まぁまず「無い」と言っていいですよね。
機能としてはわざわざ本体にフラッシュメモリを用意しているんでしょうから、コストもかかっている豪華な機能なんですが、そんなところにコストをかけるのははっきり言って無駄でしょう。
需要あるんでしょうか、この機能?
とにかく、最初にスクリプトの読み込みモードを「自動ゲーム検出」に設定しておきましょう。
Gボタンにスクリプトを割り当てる際は、Gボタンへの割り当てを解除しておく
どういう事かというと、例えばG300のGボタンにはデフォルトで「戻る」「進む」「DPI変更」といった機能が割り当てられています。
G600では、恐らく購入した皆さんは全てのGボタンにFF14用のキーアサインをしているかと思います。
このように、既に機能が割り当てられているGボタンに対してスクリプトも割り当てると、意図しない挙動になる可能性があります。
基本的には、スクリプトの処理とアサインされたキーは独立して動作しているようですので、G9に演奏スクリプトを割り当て、キーアサインでは何らかの別のキーを割り当てていた場合、G9を押すとスクリプトの再生と同時にアサインされたキーが押されるようです。
まぁ、ロクな事はおきないでしょうから、スクリプトの起動キーとして使うGキーについては「割り当てを解除」して何もアサインしない事をおススメします。
複数のGシリーズマウスを接続した状態の挙動について
G600とG300を同時にPCに繋いでいる場合など、複数の「Gシリーズマウス」が存在する場合に、
if(GetMKeyState(“mouse”) == 2) then
これは「どちらのマウスのGモードを判定しているのか」という問題が起きます。
答えは「PCに先に認識されたマウスのGモードの値が使われる」ようです。
G300がモード2、G600がモード3の場合、G300が先に認識されていれば、
if(GetMKeyState(“mouse”) == 2) then
この条件文が成立します。
というのも、前提としてスクリプトはPCに対し、同時に1つしか起動する事ができません。
G13とG600とG300の3台のGシリーズデバイスをPCにつないでいる場合を例にあげます。
この時、スクリプト自体は複数登録する事ができます。
FF14が起動している時と、そうでない場合とでスクリプトを分けることができます。
が、デバイスごとに違うスクリプトを割り当てる事はできません。
ですので、G600とG300といった「同じ種類のデバイス(この場合マウス)」が複数接続されている場合は、スクリプトは同時に1つしか起動しませんので、キーの重複に気をつける必要があります。
例えばG600とG300の場合、Gボタンが重複していますので、どちらのG9ボタンを押してもG9に割り当てられたスクリプトが再生されます。
なので、G13を持っていない、G600は持っているけど全モードの全Gキーを戦闘用に割り振ってある、だけど自動演奏をしたいのでG300も接続した、という場合は注意が必要です。
G300で使えるG4~G9は、スクリプト上はG600のG4~G9と同等ですので、戦闘中にG600のG4~G9を押すと演奏用のキー入力が再生されてしまうと思われます。
まぁ、ですのでG600とG300を同時に使う、なんて事はやめておいた方が無難ですね。
G600を既に使っている場合は、いずれかのモードのいずれかのGキーをスクリプト用に空けておく必要があります。
G300を使っているがG600は使っていない、と言う場合は簡単で、G600を追加接続して、余っているGキーにスクリプトを割り当てる事ができます。
スクリプトを任意にOn/Offできればいいんですけどね。
G13では一応LCDメニューでスクリプトを切り替えることができるようですが、G600やG300にはそんな機能はありませんね。