AutoKeyを使用してLinuxゲームを自動化する方法

How Use Autokey Automate Linux Games



AutoKey LinuxおよびX11用のデスクトップ自動化ユーティリティであり、Python 3、GTK、およびQtでプログラムされています。スクリプトとMACRO機能を使用して、キーの押下、マウスのクリック、およびデスクトップインターフェイスのほとんどの部分を自動化できます。 Windowsプログラムの代替を探している場合 AutoHotkey 、AutoKeyは、Linuxユーザーが現在利用できる最良のオプションです。

これはX11アプリケーションのみであり、この記事の執筆時点では、Waylandサポートはアプリケーションに追加されていないことに注意してください。







AutoKey機能の一部は次のとおりです。



  • いくつかの文字を一般的に使用される文やテキストブロックに自動的に展開できる略語をサポートします。
  • 任意のキーストロークとマウスクリックの送信をサポートします。
  • 特定のアプリケーションウィンドウのルールの指定をサポートします。
  • Python 3スクリプトは、自動化ルールの作成に使用できます。
  • 最大化、サイズ変更、移動などのウィンドウ関数を制御する機能。
  • スクリプトを簡単に作成できるように、事前構成された一連の例が付属しています。
  • 選択肢のリストとともにカスタムメニューポップアップを表示する機能。
  • キーストロークとマウスクリックを記録する機能。
  • 修飾キーなしでホットキーを設定する機能。
  • 自動化スクリプトは移植可能であり、他のユーザーと簡単に共有できます。

このガイドでは、Linuxゲーマーに役立つAutoKeyの例をいくつか紹介します。開始するには、GitHubページからAutokeyUbuntuパッケージをインストールしましょう。下記のファイルをからダウンロードしてください ここ



  • autokey-common_x.xx.x-x_all.deb
  • autokey-gtk_x.xx.x-x_all.debまたはautokey-qt_x.xx.x-x_all.deb(1つだけダウンロード)

ファイルをダウンロードした後、次のコマンドを順番に実行します。





$sudoaptインストール/自動キー-common_0.95.8-0_all.deb
$sudoaptインストール/autokey-gtk_0.95.8-0_all.deb

キーを使用してすばやく保存したり、すばやく読み込んだりするPCゲームがよく見られます。ただし、他の多くのPCゲーム、特にコンソールポートには、複数のメニューオプションをナビゲートする必要があるゲームを保存するための面倒な方法があります。これを説明するために私が描いた簡単なモックアップを次に示します(私の描画スキルを失礼します)。



ゲームでは、キーを押してゲームを一時停止し、次に矢印キーを押してからキーを押してゲームを保存し、もう一度キーを押してゲームに戻る必要があります。このプロセス全体は、AutoKeyを使用して簡単に自動化し、キーにマッピングできます。以下のスクリプトコードを確認してください。

輸入時間
キーボード.send_key(('')。
time.sleep((0.25)。
キーボード.send_key(('')。
time.sleep((0.25)。
キーボード.send_key(('')。
time.sleep((0.25)。
キーボード.send_key(('')。

このスクリプトをAutoKeyに追加するには、アプリを起動してから、表示されているフォルダーをクリックするか、作成したカスタムフォルダーをクリックして強調表示します。クリック ファイル>新規>スクリプト 以下のスクリーンショットに示すように、そのフォルダー内に新しいスクリプトを作成するためのメニューオプション:

このスクリプトの名前をQuicksaveに変更し、上記のコードをその中に入れます。次に、下のスクリーンショットに示すように、下部にある[ホットキー]ボタンをクリックします。

次の画面で、[Press to Set]ボタンをクリックし、キーを押してスクリプトにマップします。

鍵:((なし)。キーに変更されます:<f5>>

[OK]をクリックし、を押してスクリプトを保存します。常にスクリプトを保存することを忘れないでください。そうしないと、マップされたホットキーを押しても何も実行されません。

これで、クイック保存キーマッピングを使用する準備が整いました。次回キーを押すと、一連のキー押下が順番に実行されます。

AutoKeyが実行され、システムトレイにドッキングされている限り、OS全体でキーの機能がグローバルに変更されていることに注意してください。特定のウィンドウまたはアプリケーションに制限するには、下部にある[ウィンドウフィルター]ボタンをクリックしてウィンドウルールを指定する必要があります。

上記と同じスクリプトを使用して、すばやく読み込むためのスクリプトを作成することもできます。矢印キーの行を削除してから、スクリプトをキーにマップするだけです。

AutoKey Python 3スクリプトで使用する正しいキー名を探している場合は、AutoKeyで使用できるすべての特別なキーコードのリストを見つけることができます。 ここ 。上記のページに記載されていないキーは、一重引用符または二重引用符を使用して挿入できます。例:keyboard.send_key( ‘5’)、keyboard.send_key( ‘p’)など。

例2:ロールプレイングゲームで2つの健康ポーションを続けて飲む

ゲームで健康ポーションを飲むためのホットキーがであると仮定すると、スクリプトは次のようになります。

キーボード.send_key(('NS'繰り返す=2)。

繰り返し変数の値は、他の数値に変更することもできます。最初の例の手順に従って、スクリプトを目的のホットキーにマップできます。

例3:シューティングゲームでの銃のバーストモード

以下のコードを使用して、キーをマップして銃を3回続けて撃つことができます。ゲームで撮影する元の方法は、マウスの左クリックを1回押すことです。

#マウスボタン:左= 1、中央= 2、右= 3
mouse.click_relative_self((001)。
mouse.click_relative_self((001)。
mouse.click_relative_self((001)。

上記のスクリプトは、マウスの左クリックを3回続けて実行します。左クリックを3回以上実行する場合は、ステートメントを追加できます。

最初の例の手順に従って、スクリプトをホットキーにマップできます。

例4:カスタムゲームメニューを作成する/リアルタイムゲームをターンベースのゲームに変える

AutoKeyのリストメニュー機能を使用して、実行中のゲームの上にオーバーレイとしてメニューを表示します。このメニューはゲームからフォーカスを奪い、メニュー項目の1つでマウスクリックが実行された後にそれを返します。フォーカスが戻ると、ゲーム内の関数を呼び出す自動キーストロークが実行されます。

この写真を見てください:

GameMenuフォルダーに、Showというサブフォルダーを作成しました。 GameMenuとShowフォルダーの両方に子アイテムがあります。これが私が各子アイテムの中に入れたコードです:

  • インベントリ:keyboard.send_key( ‘i’)
  • マップ:keyboard.send_key( ‘m’)
  • ゲームに戻る:keyboard.send_key( ‘’)
  • アサルトライフルに切り替えます:keyboard.send_key( ‘2’)
  • SMGに切り替えます:keyboard.send_key( ‘1’)

ここで、GameMenuフォルダーはキーにマップされており、実行中のゲーム内では次のようになります。

各メニュー項目には、ラベルの前に番号が付いています。キーボードの対応する数字キーを押すと、任意のメニュー項目を呼び出すことができます。たとえば、ここでキーを押すと、銃がアサルトライフルに切り替わります。

この例の小さなGIFデモ(アニメーションが下で停止する場合は、画像をクリックするか、右クリックして新しいタブでGIFを開きます):

この方法は、ウィンドウレンダリングとフルスクリーンレンダリングの処理方法によっては、すべてのゲームで機能するとは限りません。フォーカスが盗まれても一時停止しないゲームもあれば、一時停止するゲームもあります。フォーカスが失われたときにゲームが一時停止した場合は、基本的に、このAutoKeyスクリプトを使用してリアルタイムゲームをターンベースのゲームに変換しています。

この例は、ケースバイケースでゲームを処理します。しかし、私のテストでは、ネイティブゲームとSteam Proton / Wineゲームの両方でかなり良い結果を達成しました。

結論

ここで説明するすべての例は基本的なものであり、主にLinuxゲーマーを対象としています。 AutoKeyの強力なAPIの一部のみをカバーしています。 AutoKeyは、日常のソフトウェアや複雑なソフトウェアのスクリプト機能を使用して、ワークフローの多くを自動化できます。さらにいくつかの例が 公式ドキュメント アプリの。