Macros

From GIMX

Revision as of 16:52, 30 September 2015 by Matlo (talk | contribs)

Jump to: navigation, search
Other languages:
English • ‎français

Il est possible de configurer des macros clavier/souris/joystick : une touche ou un bouton peut déclencher une série d'événements clavier/souris/joystick, avec un certain timing.

Répertoire

Les macros doivent être définies dans des fichiers sauvés sous :

  • Ubuntu : le répertoire ~/.gimx/macros. ~ est le dossier personnel, et .gimx est un dossier caché (dans le gestionnaire de fichiers, appuyer sur ctrl+h pour afficher les dossiers cachés).
  • Windows : le répertoire C:\Users\<username>\AppData\Roaming\gimx\macros..

GIMX 1.12 et antérieur :

  • Ubuntu : le répertoire ~/.emuclient/macros. ~ est le dossier personnel, et .emuclient est un dossier caché (dans le gestionnaire de fichiers, appuyer sur ctrl+h pour afficher les dossiers cachés).
  • Windows : le répertoire C:\Users\<username>\AppData\Roaming\emuclient\macros..

GIMX 0.51 et version précédentes :

  • Windows 32bits : le répertoire C:\Program Files\GIMX\macros.
  • Windows 64bits : le répertoire C:\Program Files (x86)\GIMX\macros.

Syntaxe

MACRO <DEVICE EVENT> <ID> <RANGE>
 <DEVICE EVENT> <ID> <VALUE>
 DELAY <MS>
 #<COMMENT>

<DEVICE EVENT>: KEY, KEYDOWN, KEYUP, MBUTTON, MBUTTONDOWN, MBUTTONUP, JBUTTON, JBUTTONDOWN, JBUTTONUP, MAXIS, JAXIS

<ID> : l'id de l’événement (sensible à la casse) tel qu'affiché dans gimx-config
<VALUE> : la valeur de l'axe (seulement pour MAXIS et JAXIS)
<MS> : une valeur entière en millisecondes
<COMMENT> : un commentaire, non interprété

Commandes

  • KEYDOWN : touche du clavier enfoncée
  • KEYUP : touche du clavier relâchée
  • KEY : KEYDOWN + DELAY 50 + KEYUP
  • MBUTTONDOWN : bouton de la souris enfoncé
  • MBUTTONUP : bouton de la souris relâché
  • MBUTTON: MBUTTONDOWN + DELAY 50 + MBUTTONUP
  • JBUTTONDOWN : bouton du joystick enfoncé
  • JBUTTONUP : bouton du joystick relâché
  • JBUTTON: JBUTTONDOWN + DELAY 50 + JBUTTONUP
  • DELAY : un délai en millisecondes

  • MAXIS : axe de la souris déplacé

ID : 0 pour l'axe x, et 1 pour l'axe y
VALUE : valeurs positives pour droite et bas

  • JAXIS : axe de joystick déplacé

ID : l'id de l'axe, comme affiché dans gimx-config
VALUE : dans [-32768 .. 32767] pour les axes centrés, et dans [0 .. 32767] pour les axes non centrés

Activation des macros

Cette section n'est applicable qu'à partir de GIMX 1.00.

Il est possible de spécifier quels fichiers de macros doivent être lus pour chaque configuration.
Ceci peut se configurer dans un fichier nommé "configs.txt" situé dans le répertoire macros.
Exemple :

#Si config1.xml est chargée, macro1.txt est lu.
config1.xml macro1.txt
#Si config1.xml est chargée, macro2.txt est lu.
config1.xml macro2.txt
#Si config2.xml est chargée, macro2.txt est lu.
config2.xml macro2.txt

Les lignes commençant par # ne sont pas interprétées.

Il est aussi possible de définir des événements d'activation dans la définition des macros.
La syntaxe est la suivante :

TRIGGER <event>

Exemple:

MACRO F1
#contenu

MACRO F2
TRIGGER F5
#contenu

MACRO F3
TRIGGER F6
#contenu

MACRO F4
TRIGGER F5
#contenu

Avec GIMX 1.12 et antérieur, l'exemple ci-dessus fonctionne de la manière suivante :
F1 reste active tout le temps (pas de TRIGGER).
F2 et F4 sont actives par défaut. Si F6 est pressé, F3 devient active, F2 et F4 deviennent inactives.
Avec GIMX 2.00 et ultérieur :
Les macros avec trigger sont inactives par défaut. Pour qu'une macro avec trigger soit active par défaut, ajouter une ligne contenant "INIT ON" après la ligne "TRIGGER <event>".
Les macros avec trigger peuvent aussi être activées et désactivées indépendamment des autres macros. Ceci peut être configuré en ajoutant une ligne contenant "TOGGLE YES" après la ligne "TRIGGER <event>".
Exemple :

MACRO F1
TRIGGER 1
INIT ON
TOGGLE YES
#content

MACRO F2 TRIGGER F5

  1. content

MACRO F3 TRIGGER F6

  1. content

MACRO F4 TRIGGER F5

  1. content

With GIMX 1.12 and earlier, the above example works the following way:
F1 remains active all the time as there is no trigger specified.
F2 and F4 are default active. If F6 is pressed, F3 becomes active, F2 and F4 become inactive.
With GIMX 2.00:
Macros with a trigger are default inactive. To make a macro with trigger default active, add a line containing "INIT ON" after the "TRIGGER <event>" line.
Macros with a trigger can work with a toggle mode, which allows to activate and deactivate a macro autonomously: activating a togglable macro has no impact on other macros, and activating another macro has no impact on a togglable macro. This can be configured adding a line containing "TOGGLE YES" after the "TRIGGER <event>" line.
Example:

MACRO F1
TRIGGER 1
INIT ON
TOGGLE YES
#content

Notes

Précision du délai

La précision du délai dépend de la période de mise à jour du contrôleur :

  • sixaxis/bluetooth = 11.25ms
  • sixaxis/usb = 10ms
  • 360 pad = 8ms

Si vous spécifiez un délai qui n'est pas un multiple de la précision, le délai résultant sera le plus petit multiple de la précision plus grand que le délai spécifié.
Par exemple, si la précision est de 11.25ms et que le délai est de 12ms, le délai résultant sera de 22.50ms (=2*11.25ms).

Boucle

Pour qu'une macro boucle, ajouter simplement une commande KEYDOWN ou MBUTTONDOWN ou JBUTTONDOWN à la fin de la macro.
Exemple:

MACRO MBUTTONDOWN BUTTON_LEFT
KEYDOWN p
DELAY 50
KEYUP p
DELAY 50
MBUTTONDOWN BUTTON_LEFT

La macro est déclenchée en appuyant sur 'BUTTON_LEFT'.
La dernière commande de la macro redémarre la macro, créant de ce fait une boucle.
Pour arrêter une macro, appuyer une nouvelle fois sur le déclencheur. La macro est arrêtée immédiatement et l'état du contrôleur n'est pas modifié.

The macro is triggered by pressing 'BUTTON_LEFT'.
The last command of the macro restarts the macro, creating a loop.
To stop a macro loop, just press the trigger again. The macro is stopped immediately, and the state of the controller is unchanged.

Claviers/souris/joysticks multiples

Dans le cas où plusieurs claviers ou souris ou joysticks sont utilisés, il n'est pas possible de spécifier pour quel périphérique les événements seront générés.
Les événements sont générés pour le premier clavier/souris/joystick trouvé dans la configuration.

Examples

Rapid fire macro


MACRO MBUTTONDOWN BUTTON_LEFT

KEYDOWN p
DELAY 50
KEYUP p
DELAY 50
MBUTTONDOWN BUTTON_LEFT

MACRO MBUTTONUP BUTTON_LEFT
KEYUP p
MBUTTONDOWN BUTTON_LEFT

'p' est bindé à r1 dans les profils 1 (vue normale) et 2 (visée).
'BUTTON_LEFT' n'est PAS bindé à r1 dans les profils 1 et 2.

The macro is triggered by pressing the left mouse button.
The last command of the first macro restarts the macro, creating a loop.
Upon the release of the left mouse button the second macro ends the loop of the first macro.

Recoil macro


MACRO KEYDOWN o

MAXIS 1 25
KEYDOWN o

MACRO MBUTTONDOWN BUTTON_LEFT
KEYDOWN o

MACRO MBUTTONUP BUTTON_LEFT
KEYDOWN o

MACRO MBUTTONDOWN BUTTON_LEFT KEYDOWN o

MACRO MBUTTONUP BUTTON_LEFT

KEYDOWN o

Changer '25' par la valeur dans [0..128] qui annule le recul.