Scripts GlovePIE pour BlackShark
Publié : mer. janv. 21, 2009 9:51 pm
keywords : DCS BS TRIM JOYSTICK GLOVEPIE PPJOY RETICULI FORUMS.EAGLE.RU
NB: autorisation diffusion publique demandée à l'auteur 22/01 - en attente réponse
GESTION DU TRIM AVEC LE JOYSTICK DANS BS :
exemple d'utilisation de Glovepie et PPJoy - d'après le post de Reticuli : "Dynamic Trim Update with GlovePIE & PPJoy "
- sur forums DCS ici http://forums.eagle.ru/showpost.php?p=6 ... ostcount=1
Traduction française du post par C6_Hellfrog,
quelques ajouts par Hellfrog entre [N.D.T....] ou/et en italique
--------------------------------------------
INTRODUCTION:
Procédure à suivre pour ajouter un Trim dynamique à DCS:Blackshark afin d'avoir une expérience de vol plus naturelle avec un joystick non Force Feedback et avec retour au centre comme le X52.
Ce script émule 3 modes, que l'on reconnaît parce que l'ordinateur vous parle pour vous les indiquer quand vous en changez :
Trim Manuel, Trim Standard Dynamique, et Trim Dynamique "Flight Director".
Un fichier de calibration pour Saitek X52 est inclus avec des instructions plus détaillées.
Ce script mime l'utilisation des commandes de vol électrique et des sticks latéraux que l'on trouve sur les hélicoptères ADOCS, HACT, Comanche, Dauphin Experimental, et sur l'Apache Block III Enhanced.
[cf la suite pour lien de téléchargement]
---------------------------------------------------------
MODDIFICATIONS POUR LES STICKS DIFFERENTS DU SAITEK X-52:
Le X52 Pro devrait marcher correctement avec le script tel quel et vous ne devriez pas avoir besoin du fichier dat.
Pour GlovePIE et PPJoy le type de joystick utilisé n'a pas d'importance,
mais je ne garantis pas que les fichiers ".LUA" pour DCS-BS montreront les bonnes affectations de touche dans BS. Il est possible qu'il faille faire quelques petits changements, mais pas grand chose.
Vous pouvez aussi décider de changer le bouton du stick utilisé pour changer de mode/trim dans le script GlovePIE, c'est le bouton 6 sur mon X52 non pro (pinkie), dans le script il s'agit de "Joystick1.Button6".
------------------------
CE QU'IL FAUT INSTALLER:
-DCS: Blackshark
-PPJoy
-GlovePIE de Carl Kenner
Vous pouvez télécharger de deux manières :
-soit en suivant ces liens :
PPJoy
http://ppjoy.bossstation.dnsalias.org/
http://www.geocities.com/deonvdw/PPJoy.htm
[Ces liens ne sont plus valables : MAJ du 21/01/09 : trouvé ici :
http://ppjoy.10001downloads.com/
http://www.filetransit.com/view.php?id=63044
http://download-free.programas-gratis.n ... PPJoy-0.83]
GlovePIE
http://carl.kenner.googlepages.com/glovepie_download
- soit en téléchargeant mon gros fichier sur le site AVSIM [N.D.T. : inscription obligatoire]
http://library.avsim.net/search.php?Sea ... D=miscmisc
dans lequel PPJOY et Glovepie sont inclus.
mots clés : "X52, Glide, Winx3D, and GlovePIE Profiles V11"
-[---- N.D.T. :
(ajout : traduction de parties du fichier lisez-moi de Glovepie,
non inclus dans le post original, ça peut intéresser les lecteurs)
- PPJoy : ce soft crée un joystick virtuel sur port parralèle
- GlovePIE de Carl Kenner
PIE signifie Programmable Input Emulator = émulateur d'entrées programmable ;
Glove signifie gant, parce que c'est un soft initialement créé pour servir d'interface pour des gants de réalité virtuelles.
Limite d'utilisation :
(extrait de la License (n'engage que l'auteur Carl Kenner et l'utilisateur éventuel, je ne fait que traduire)) :
[...]Il est interdit d'utiliser glovePIE pour les jeux de combat permettant à l'Armée [(américaine ?)] de recruter de
futurs combattants parmi les joueurs, y compris America’s Army.
[...] Il est interdit d'exporter GlovePIE en Israël tant que cet état occupera des territoires en Syrie, à Gazza,
et au Liban [...]
Pour installer GlovePIE il faut DirectX 8 ou supérieur
(inclus dans Windows XP et la plupart des jeux)
http://www.microsoft.com/windows/directx/default.aspx
Pour profiter de la synthèse vocale et de la reconnaissance vocale par Glovepie il faut : SAPI 5.1 ou supérieur
pour la reconnaissance vocale:
il faut la version de SAPI incluse dans le logiciel Microsoft Recogniser.
Vista devait inclure Recogniser version 7.0, mais pas disponible à la sortie de Vista :
donc version 6.1 sauf mise à jour.
Dans Microsoft Office 2003 : il y a Recogniser 6.1
Dans Microsoft Office XP (2002) : il y a la version 5.
Sinon il faut une version Professionel ou Server de Windows 2000 et ajouter la version 6.1
incluse dans le Add-on Internet Explorer Speech Add-In (65Mb) :
http://www.ics.forth.gr/uachess/downloa ... -in_v1.zip et
http://www.voicewebsolutions.net/commun ... nSetup.exe
Pour les utilisateurs de XP : SAPI 5.1 (50Mb):
[la version 6.1 ne marche pas sous XP !]
http://www.chant.net/downloads/sapi51.exe
ou le Software Development Kit SAPI 5.1 SDK (68Mb):
http://download.microsoft.com/download/ ... hsdk51.exe
pour la synthèse vocale seule:
incluse dans Office XP (2002) ou supérieur et dans Windows XP
incluse dans Internet Explorer Speech Add-In ou SAPI 5.1.
sinon télécharger (6Mb) :
http://www.members.lycos.co.uk/moralmike/sapi5.msi
http://www.aldostools.com/sapi51.msi
(Il faut télécharger aussi l'installateur Microsoft si vous ne pouvez pas lancer les fichiers MSI)
Voix de synthèse supplémentaires:
Si vous n'avez pas les voix Mary et Mike (si vous avez Windows XP) alors on peut les obtenir ici :
http://www.aldostools.com/sapi51xp.msi
(Il faut télécharger aussi l'installateur Microsoft si vous ne pouvez pas lancer les fichiers MSI)
Si vous voulez aussi les voix Michael et Michelle alors
vous devez installer les lecteur Microsoft e-book Reader,
puis installer Microsoft Reader Speech pack
et éventuellement désinstaller Microsoft e-book Reader.
Si vous voulez des voix de haute qualité réalistes :
vous pouvez essayer les versions de démonstration de la société Cepstral voices.
Pour télécharger les démos : http://www.cepstral.com/demos/
(ajout Hellfrog : un mail est requis je crois)
Les voix qui sont dans des fichiers de 20Mb ne sont pas terribles, mais les voix
des fichiers de 100Mb et 60Mb sont fantastiques.
Les versions démo ajoutent un message de pub au texte lu. La license légale coûte seulement $30.
Si vous pouvez trouver d'autres langues que l'anglais sur internet, mais Glovepie n'affiche
pour l'instant que les polices occidentales.
(fin N.D.T.)----]
------------------------------------------
INSTALLATION ET EMPLACEMENTS DES FICHIERS:
[N.D.T. : Commencer par installer PPJoy puis installez Glovepie]
Placer "Blackshark 1.dat" dans le dossier de votre logiciel Saitek. Pas indispensable, mais je l'ai inclus.
Placer les fichier ".PIE" fnommés "Calibration" et "Blackshark DTU Multi" dans le dossier "profile" de
([N.D.T.: dossier "profile" du dossier programme de])
GlovePIE.
Les deux fichiers ".LUA" vont dans un dossier du jeu DCS-BlackShark , quelquepart dans config/aircraft/ka-50/joystick, je crois. Je n'en suis pas complètement sûr puisque je ne sais pas où sont sauvegardés les profils joystick modifiés dans les options de BS. C'est ce qui était dans ce dossier chez moi.
------
PPJoy:
Après l'avoir installé, ouvrez l'utilitaire de configuration de Joysticks de Windows et ajoutez un nouveau Virtual Analog Joystick avec 7 axes.
Cf. paragraphe suivant pour mon X52
De temps à autre (bug Windows connu) il est possible qu'il faille recommencer après un reboot pour réinitialiser ce Joystick virtuel ;
pour cela il faut le sélectionner dans l'utilitaire Windows de configuration des joysticks (panneau de contrôle de Windows - Contrôleurs de jeu (Windows Control Panel - Game Controllers)),
puis en cliquant sur Mapping, et en suivant l'assistant.
Il ne faut rien changer, il suffit de cliquer le bouton "Suivant" à chaque fois, à la fin Windows se remet à jour.
---------------------
CALIBRATION A FAIRE :
Il y a un script GlovePIE qui est nécessaire pour faire la calibration sous Windows.
Ouvrez-le dans GlovePIE et frappez "Run".
Allez ensuite calibrer votre joystick virtuel PPJoy dans le panneau de contrôle de Windows - Contrôleurs de jeu (Windows Control Panel - Game Controllers).
Sélectionnez ce Joystick et ensuite cliquez le bouton "Propriétés". Le script devrait s'exécuter.
[le script :]
PPJoy1.Analog0 = Joystick1.x
PPJoy1.Analog1 = Joystick1.y
PPJoy1.Analog2 = Joystick1.z
PPJoy1.Analog3 = Joystick1.xrot //side
PPJoy1.Analog4 = Joystick1.yrot //top
PPJoy1.Analog5 = Joystick1.zrot //twist
PPJoy1.Analog6 = Joystick1.slider
Cochez deux fois les barres rouges qui sont au premier plan de l'écran.
-------------
UTILISATION :
Une fois que tout est prêt, "Run" [(exécutez)] ceci dans GlovePie.
Il y a 3 modes de contrôle ; on les fait défiler en double cliquant sur le bouton 6 du Joystick (pinkie sur le X52):
-Manual Trim
-Standard Dynamic Trim
-Flight Director Dynamic Trim
[(Si vous avez installé correctement la reconnaissance vocale)], vous entendrez GlovePIE annoncer quel est le mode actif.
---------------------
AUTRES AFFECTATIONS :
[ il parle des autres fonctions de ses scripts dans son gros fichier sur AVSIM, pour le X52 (profil .DAT) et fichier (script .PIE) pour Glovepie.]
J'ai actuellemnt le y.rot (bouton rotatif en haut du throttle) sur le X52 qui confère une augmentation de 50% des valeurs de l'axe (Trim positif 50%), ce qui est bien pour augmenter l'efficacité des rudder ou du twist axe. [cf script plus bas]
[N.D.T. : commentaire : Ce n'est que mon avis personnel mais : Je ne vois pas l'intérêt de 50% de plus sur les valeurs du Rudder, sauf à utiliser le Rudder en mode Auto Pilot actif et Suivi de cap actif, configuration dans laquelle le Ka50 dans BS suit la route programmée, et dans laquelle il faut vraiment beaucoup forcer sur les rudders pour avoir une petite variation du cap ; la bonne procédure serait plutôt de débrancher le suivi de cap avant la manoeuvre, et non de trimmer artificiellement le rudder...
[EDIT] : correction du 20/01 : en fait la bonne procédure est d'utiliser le mode FLight Director Control]
]
Dans les options de Blackshark, les trois touches sous l'écran du X52 sont affectées au pilote automatique. La touche X52 'Reset' est pour Heading Hold. la touche du milieu est pour le TANGAGE. La plus à gauche est pour le ROULIS.
Dans le cockpit, le Switch Desired Heading/Desired Track est en position milieu pour suivre une route [(touche <R>)], et les fonctions Flight Director, et Suivi de cible ne sont PAS sélectionnées, exprès pour voir vers où est-ce que le pilote automatique [(appelé FCS par Reticuli)] essaye de vous réaligner doucement (avec la limite de 20% sur les mouvements des sticks) quand le Suivi de cap (Heading Hold) est actif. En mode Flight Director, on a seulement les fonctions d'amortissement (dampening).
Soyez conscient du fait que en mode MANUEL [(mode du script Glovepie, à cause de la manière dont est écrit le script)] vous trimmez TOUS les axes Y et X et Z en même temps (Roulis, Tangage et Lacet). Aussi, il ne faut pas d'entrée parasite au moment où vous trimmez, ou alors il faut corriger et recommencer.
Les profils X52/DCS inclus sont simples, parce que personnelement j'utilise surtout le clavier : il n'y a qu'une touche dans le fichier x52 dat ... pour le trim avec le bouton rotatif du throttle.
-----------------
NOTE IMPORTANTE : [(pour utilisateurs du X52)]
*****************
ALLEZ DANS LES OPTIONS DE BLACKSHARK :
pour vérifier les affectations des boutons ;
cliquez sur chaque bouton et chapeau du X52 pour voir quelles sont leurs fonctions
mais ne les changez pas si vous ne savez pas ce que vous faites.
EN PARTICULIER NE CHANGEZ PAS LES COURBES DE REPOSE DES AXES.
La réponse du Trim Dynamique avec Glovepie, l'actualisation du Trim, la vitesse de lecture des mouvements des axes, la valuer du Trim, et ces courbes ont été adaptés les uns aux autres pour fonctionner d'une manière particulière.
Tous ces éléments sont interdépendant.
[N.D.T. : il y a du boulot à faire pour utilisation sur un autre Joystick que le X52]
Comme dans Glovepie le trim est affecté au bouton 6 du Joystick réel, si vous utilisez ce pakage sans le modifier,
n'appliquez pas la fonction Trim au Joystick Réel , et ne changez pas l'affectation de touche clavier dans BS.
**************************************************************************************************************
---------------------------------
LE SCRIPT PRINCIPAL pour GlovePIE
dans :
X52, Glide, Winx3D, and GlovePIE Profiles V11 http://library.avsim.net/search.php?Sea ... D=miscmisc
[N.D.T. : j'ai rajouté les indentations, et les commentaires, c'est plus pédagogique)]
var.0 = PPJoy1.Analog0
var.1 = PPJoy1.Analog1
var.2 = PPJoy1.Analog2
var.3 = PPJoy1.Analog3
var.4 = PPJoy1.Analog4
var.5 = PPJoy1.Analog5
var.6 = PPJoy1.Analog6
PPJoy1.Analog5 = Joystick1.zrot + (Joystick1.yrot * .5)
// ici les valeurs de l'axe analogique numéro 5 (Joystick virtuel "logiciel" PPJoy)
// sont celles de l'axe physique "Rotation Z" du joystick réel utilisé (X52 dans le cas de Reticuli l'auteur du post),
// et elles sont augmentées de 50% de la valeur de l'axe physique "Rotation Y" du Joystick Réel
// (il s'agit du bouton rotatif en haut du throttle sur le X52) : cf paragraphe au-dessus 'AUTRES AFFECTATIONS'.
if doubleclicked(joystick1.button6) then begin {
// Le double click sur le bouton 6 du Joystick Réel entraîne le changement de mode
var.m = var.m + 1
if var.m = 1 then begin {
// ici on émule le mode Standard Dynamic Trim
// les frappes LCTRL + T sont envoyées à BS
say("Standard Dynamic Trim")
// l'ordinateur (speech engine via glovepie) vous cause pour vous dire ce que vous avez fait...
press(leftctrl)
press(t)
release(t)
release(leftctrl)
} end
if var.m = 2 then begin {
// ici on émule le mode Flight Director Dynamic Trim
// les frappes LCTRL + T sont envoyées à BS
say("Flight Director Dynamic Trim")
press(leftctrl)
press(t)
release(t)
release(leftctrl)
} end
if var.m > 2 then var.m = 0
if var.m = 0 then begin {
say("Manual Trim")
} end
} end
if var.m = 0 then begin {
// ici on émule le mode Manual Trim (en fait = pas de Trim du tout, ou celui de BS)
// les valeurs renvoyées par les axes du Joystick ne sont pas modifiées
t = joystick1.button6
PPJoy1.Analog0 = Joystick1.x
PPJoy1.Analog1 = Joystick1.y
PPJoy1.Analog2 = Joystick1.z
PPJoy1.Analog3 = Joystick1.xrot
PPJoy1.Analog4 = Joystick1.yrot
PPJoy1.Analog5 = Joystick1.zrot + Joystick1.yrot
PPJoy1.Analog6 = Joystick1.slider
var.y = 0
var.x = 0
var.c = 0
var.l = 0
var.r = 0
var.p = 0
var.s = 0
// cette boucle remet toutes les valeurs de tous les axes du Joystick virtuel
// égales aux valeurs respectives des axes du Joystick réel
// et annule tout trim
} end
if var.m = 1 then begin {
// ici on émule le mode Standard Dynamic Trim
// les chiffres indiquent la valeur de Trim envoyée en % à chaque axe (mini -1, nul 0, maxi +1)
var.c = 45
var.l = -0.575
var.r = 0.275
var.p = -0.850
var.s = 0.0
var.y = EnsureRange(Joystick1.y / var.c + var.y, var.p, var.s)
// on divise la valeur de l'axe Y du joystick réel par c, on y ajoute la valeur précédente de trim de y
// le trim de Y doit être compris entre (mini = p et maxi = s)
PPJoy1.Analog1 = var.y + Joystick1.y
// axe Y : valeur du joystick virtuel = joystick réel + pourcentage de trim dans variable y
var.x = EnsureRange(Joystick1.x / var.c + var.x, var.l, var.r)
// on divise la valeur de l'axe X du joystick réel par c, on y ajoute la valeur précédente de trim de x
// le trim de Y doit être compris entre (mini = l et maxi = r)
PPJoy1.Analog0 = var.x + Joystick1.x
// axe X : valeur du joystick virtuel = joystick réel + pourcentage de trim dans variable x
} end
if var.m = 2 then begin {
// ici on émule le mode Flight Director Dynamic Trim
// les chiffres indiquent la valeur de Trim envoyée en % à chaque axe (mini -1, nul 0, maxi +1)
var.c = 70
var.l = -0.5
var.r = 0.0
var.p = -0.7
var.s = 0.0
var.y = EnsureRange(Joystick1.y / var.c + var.y, var.p, var.s)
PPJoy1.Analog1 = var.y + Joystick1.y
var.x = EnsureRange(Joystick1.x / var.c + var.x, var.l, var.r)
PPJoy1.Analog0 = var.x + Joystick1.x
} end
[---N.D.T. :
- impossible de savoir comment il a fait pour trouver les bonnes valeurs pour les variables, et l'étalonnage des courbes dans BS : essai / erreur ?
- il oublie de dire une chose TRES IMPORTANTE :
dans les options de BS, liste déroulante "axes"
il faut vérifier que les axes que vous utilisez correspondent bien à ceux du Joystick virtuel de PPJoy
et NON PAS à votre Joystick physique réel !!!
Par contre je n'ai pas fini de tester (moi j'ai un cougar et il faut adapter les valeurs dans le script)
je me demande s'il faut bien étalonner les courbes de réponse du Joystick Réel plutôt que du virtuel ! à confirmer
C'est le but des fichiers de configuration de Joystick LUA inclus dans son gros fichier sur AVSIM,
mais il faut que vous pensiez à les lire et activer dans les options de BS, liste déroulante "axes",
et ensuite utiliser les bouton noirs à droite "profils" je croie (je note ça de mémoire sur un PC où je n'ai pas BS)
----]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2 questions d'un utilisateur X52 :
1. J'utilise le nouveau software de prgrammation du X52 avec des fichiers .pr0 . Dois-je utiliser l'ancien soft avec le fichier .dat?
2. Si je ne peux pas utilser le soft .pr0, et que je réutilises l'ancien soft avec fichier .dat... puis-je programmer mon stick normallement avec ou bien dous-je utiliser autre chose ?
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Réponse de Reticuli :
Comme dit au second paragraphe, le joystick n'a pas d'importance.
J'ai inclus le .dat de mon X52 pour être complet c'est tout. Le seul bouton qui y est programmé n'est pas reconnu par les logiciels : le rotatif. Toutes les affectations de fonctions sont faites dans BS. Que vous assignez les fonctions dans BS ou avec le soft de programmation du stick n'a pas d'importance.
Je ne sais pas si les fichiers .Lua inclus fonctionneront avec d'autres sticks que le X52, mais vous pouvez essayer.
Ce qui est important c'est que
les courbes pour les axes tangage, roulis et lacet [(X, Y, rudder)] doivent être à +15 pour fonctionner comme prévu.
********************************************************************************************************************
Vous devez juste savoir que le pinkie est actuellement affecté au Trim et que le mode de Trim scripté par Glovepie est activé en utilisant un double click du pinkie. Pour changer cela il suffit de remplacer "Joystick1.button6" dans le script par la syntaxe glovepie du bouton que vous voulez.
Téléchargez le package et suivez les instructions. I just flew a mission, navigated, completed, navigated back, and landed without a single hitch.
J'ai plus de 20 fps la plupart du temps! C'est vraiment la manière de voler dans BS avec un stick non FFB à retour au centre.
Cela paraît au premier abord beaucoup plus compliqué que cela ne l'est en réalité.
J'ai même inclus un script de calibration, des images pour paramétrer PPJoy...tout ce qui est nécessaire.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Reticuli a jouté :
Bien qu'il ne soit pas indispensable ni recommandé de Trimmer à des vitesses supérieures à 250 km/h, pour mon utilisation personnelle j'ai aujourd'hui augmenté le pitch négatif à -0.900 pour le mode UN et de -0.775 pour le mode DEUX, les valeurs de var.p dans chaque section du script. Elles étaient à -0.850 et -0.7, respectivement. Je trouve cela plus pratique en vol de croisière, bien qu'un dépassement de vitesse maximale (survitesse) et des vibrations dans le rotor soient plus probables. Il suffiaitt de changer de mode et d'effacer le Trim à -.900 pour le remettre à zéro pendant un virage pour qu'une catastrophe se produise. Faites les modifications que vous voulez à votre guise et vos risques et périls.
[[[[[[[[[[[[[[[[[[[[[[[[[-------------------------
-------------------------]]]]]]]]]]]]]]]]]]]]]]]]]
Commentaire de Hellfrog :
J'ai traduit et posté parce que :
- Glovepie possède des spécifités uniques et est extrêmement puissant, et sans équivalent
- mais il n'y a pratiquement pas de doc en français pour les scripts utilisés pour les joysticks car sa principale utilisation commentée sur le Web est l'émulation de la Wiimote sur le PC.
- On peut aimer on non l'exemple de Reticuli, mais il a au moins une valeur pédagogique qui montre ce qui peut être fait avec un script somme toute simple pour toute personne ayant des connaissances basiques en programmation ou même juste en anglais.
- je pense que la majorité des utilisateurs de X52 vont préférer programmer leur stick plutôt que d'affecter directement les boutons directX dans les options de BS : dans ce cas, les fichiers de configuration .lua de Reticuli sont moins indispensables. Mais il peut être intéressant de les conserver pour voir les profils d'axe qu'il y a enregistré, comme il le souligne dans des réponses ultérieures dans la discussion.
- J'aime beaucoup l'idée du bouton de 'changement de mode' un peu comme S3 SHIFT ou le ROCKER T7-T8 /U /M /D du Cougar, sauf que cela permet de créer les combinaisons que l'on veut,
- J'adorrre ++ la synthèse vocale pour rappeler dans quel mode on est. C'est ce que diraient certains fans du Cougar ou des Saitek : "il ne leur manque que la parole !" .... maintenant c'est possible !
C'est aussi pour cela que j'ai inclus et traduit des extraits du fichier doc de Glovepie, notemment pour la gestion des fichiers à installer pour faire marcher la reconnaissance vocale.
NB : Mais je ne suis pas un spécialiste de cela, j'ai juste lu la doc attentivement, fait scrupuleusement ce qui était indiqué, et ça a marché chez moi, c'est tout. N'attendez pas de ma part un "support" de "spécialiste"
- remarque pour les pros du Cougar (je n'ai pas de Saitek) :
à connaître, boucle d'exécution d'une thread/'page de code' de Glovepie : 30 msec, comme sur le Cougar,
exécution parrallèle du code, comme sur le Cougar
=> tester et ajouter des temporisations dans les scripts complexes et long, prévoir une boucle de réinitialisation pour les scripts très complexes ou en cas de bug pendant les tests...
bon moi je découvre Glovepie et je débute avec, donc j'ai encore plein d'astuces à apprendre... notemment maitriser la syntaxe et toruver la liste exhaustive des fonctions si elle existe qqpart...
NB: autorisation diffusion publique demandée à l'auteur 22/01 - en attente réponse
GESTION DU TRIM AVEC LE JOYSTICK DANS BS :
exemple d'utilisation de Glovepie et PPJoy - d'après le post de Reticuli : "Dynamic Trim Update with GlovePIE & PPJoy "
- sur forums DCS ici http://forums.eagle.ru/showpost.php?p=6 ... ostcount=1
Traduction française du post par C6_Hellfrog,
quelques ajouts par Hellfrog entre [N.D.T....] ou/et en italique
--------------------------------------------
INTRODUCTION:
Procédure à suivre pour ajouter un Trim dynamique à DCS:Blackshark afin d'avoir une expérience de vol plus naturelle avec un joystick non Force Feedback et avec retour au centre comme le X52.
Ce script émule 3 modes, que l'on reconnaît parce que l'ordinateur vous parle pour vous les indiquer quand vous en changez :
Trim Manuel, Trim Standard Dynamique, et Trim Dynamique "Flight Director".
Un fichier de calibration pour Saitek X52 est inclus avec des instructions plus détaillées.
Ce script mime l'utilisation des commandes de vol électrique et des sticks latéraux que l'on trouve sur les hélicoptères ADOCS, HACT, Comanche, Dauphin Experimental, et sur l'Apache Block III Enhanced.
[cf la suite pour lien de téléchargement]
---------------------------------------------------------
MODDIFICATIONS POUR LES STICKS DIFFERENTS DU SAITEK X-52:
Le X52 Pro devrait marcher correctement avec le script tel quel et vous ne devriez pas avoir besoin du fichier dat.
Pour GlovePIE et PPJoy le type de joystick utilisé n'a pas d'importance,
mais je ne garantis pas que les fichiers ".LUA" pour DCS-BS montreront les bonnes affectations de touche dans BS. Il est possible qu'il faille faire quelques petits changements, mais pas grand chose.
Vous pouvez aussi décider de changer le bouton du stick utilisé pour changer de mode/trim dans le script GlovePIE, c'est le bouton 6 sur mon X52 non pro (pinkie), dans le script il s'agit de "Joystick1.Button6".
------------------------
CE QU'IL FAUT INSTALLER:
-DCS: Blackshark
-PPJoy
-GlovePIE de Carl Kenner
Vous pouvez télécharger de deux manières :
-soit en suivant ces liens :
PPJoy
http://ppjoy.bossstation.dnsalias.org/
http://www.geocities.com/deonvdw/PPJoy.htm
[Ces liens ne sont plus valables : MAJ du 21/01/09 : trouvé ici :
http://ppjoy.10001downloads.com/
http://www.filetransit.com/view.php?id=63044
http://download-free.programas-gratis.n ... PPJoy-0.83]
GlovePIE
http://carl.kenner.googlepages.com/glovepie_download
- soit en téléchargeant mon gros fichier sur le site AVSIM [N.D.T. : inscription obligatoire]
http://library.avsim.net/search.php?Sea ... D=miscmisc
dans lequel PPJOY et Glovepie sont inclus.
mots clés : "X52, Glide, Winx3D, and GlovePIE Profiles V11"
-[---- N.D.T. :
(ajout : traduction de parties du fichier lisez-moi de Glovepie,
non inclus dans le post original, ça peut intéresser les lecteurs)
- PPJoy : ce soft crée un joystick virtuel sur port parralèle
- GlovePIE de Carl Kenner
PIE signifie Programmable Input Emulator = émulateur d'entrées programmable ;
Glove signifie gant, parce que c'est un soft initialement créé pour servir d'interface pour des gants de réalité virtuelles.
Limite d'utilisation :
(extrait de la License (n'engage que l'auteur Carl Kenner et l'utilisateur éventuel, je ne fait que traduire)) :
[...]Il est interdit d'utiliser glovePIE pour les jeux de combat permettant à l'Armée [(américaine ?)] de recruter de
futurs combattants parmi les joueurs, y compris America’s Army.
[...] Il est interdit d'exporter GlovePIE en Israël tant que cet état occupera des territoires en Syrie, à Gazza,
et au Liban [...]
Pour installer GlovePIE il faut DirectX 8 ou supérieur
(inclus dans Windows XP et la plupart des jeux)
http://www.microsoft.com/windows/directx/default.aspx
Pour profiter de la synthèse vocale et de la reconnaissance vocale par Glovepie il faut : SAPI 5.1 ou supérieur
pour la reconnaissance vocale:
il faut la version de SAPI incluse dans le logiciel Microsoft Recogniser.
Vista devait inclure Recogniser version 7.0, mais pas disponible à la sortie de Vista :
donc version 6.1 sauf mise à jour.
Dans Microsoft Office 2003 : il y a Recogniser 6.1
Dans Microsoft Office XP (2002) : il y a la version 5.
Sinon il faut une version Professionel ou Server de Windows 2000 et ajouter la version 6.1
incluse dans le Add-on Internet Explorer Speech Add-In (65Mb) :
http://www.ics.forth.gr/uachess/downloa ... -in_v1.zip et
http://www.voicewebsolutions.net/commun ... nSetup.exe
Pour les utilisateurs de XP : SAPI 5.1 (50Mb):
[la version 6.1 ne marche pas sous XP !]
http://www.chant.net/downloads/sapi51.exe
ou le Software Development Kit SAPI 5.1 SDK (68Mb):
http://download.microsoft.com/download/ ... hsdk51.exe
pour la synthèse vocale seule:
incluse dans Office XP (2002) ou supérieur et dans Windows XP
incluse dans Internet Explorer Speech Add-In ou SAPI 5.1.
sinon télécharger (6Mb) :
http://www.members.lycos.co.uk/moralmike/sapi5.msi
http://www.aldostools.com/sapi51.msi
(Il faut télécharger aussi l'installateur Microsoft si vous ne pouvez pas lancer les fichiers MSI)
Voix de synthèse supplémentaires:
Si vous n'avez pas les voix Mary et Mike (si vous avez Windows XP) alors on peut les obtenir ici :
http://www.aldostools.com/sapi51xp.msi
(Il faut télécharger aussi l'installateur Microsoft si vous ne pouvez pas lancer les fichiers MSI)
Si vous voulez aussi les voix Michael et Michelle alors
vous devez installer les lecteur Microsoft e-book Reader,
puis installer Microsoft Reader Speech pack
et éventuellement désinstaller Microsoft e-book Reader.
Si vous voulez des voix de haute qualité réalistes :
vous pouvez essayer les versions de démonstration de la société Cepstral voices.
Pour télécharger les démos : http://www.cepstral.com/demos/
(ajout Hellfrog : un mail est requis je crois)
Les voix qui sont dans des fichiers de 20Mb ne sont pas terribles, mais les voix
des fichiers de 100Mb et 60Mb sont fantastiques.
Les versions démo ajoutent un message de pub au texte lu. La license légale coûte seulement $30.
Si vous pouvez trouver d'autres langues que l'anglais sur internet, mais Glovepie n'affiche
pour l'instant que les polices occidentales.
(fin N.D.T.)----]
------------------------------------------
INSTALLATION ET EMPLACEMENTS DES FICHIERS:
[N.D.T. : Commencer par installer PPJoy puis installez Glovepie]
Placer "Blackshark 1.dat" dans le dossier de votre logiciel Saitek. Pas indispensable, mais je l'ai inclus.
Placer les fichier ".PIE" fnommés "Calibration" et "Blackshark DTU Multi" dans le dossier "profile" de
([N.D.T.: dossier "profile" du dossier programme de])
GlovePIE.
Les deux fichiers ".LUA" vont dans un dossier du jeu DCS-BlackShark , quelquepart dans config/aircraft/ka-50/joystick, je crois. Je n'en suis pas complètement sûr puisque je ne sais pas où sont sauvegardés les profils joystick modifiés dans les options de BS. C'est ce qui était dans ce dossier chez moi.
------
PPJoy:
Après l'avoir installé, ouvrez l'utilitaire de configuration de Joysticks de Windows et ajoutez un nouveau Virtual Analog Joystick avec 7 axes.
Cf. paragraphe suivant pour mon X52
De temps à autre (bug Windows connu) il est possible qu'il faille recommencer après un reboot pour réinitialiser ce Joystick virtuel ;
pour cela il faut le sélectionner dans l'utilitaire Windows de configuration des joysticks (panneau de contrôle de Windows - Contrôleurs de jeu (Windows Control Panel - Game Controllers)),
puis en cliquant sur Mapping, et en suivant l'assistant.
Il ne faut rien changer, il suffit de cliquer le bouton "Suivant" à chaque fois, à la fin Windows se remet à jour.
---------------------
CALIBRATION A FAIRE :
Il y a un script GlovePIE qui est nécessaire pour faire la calibration sous Windows.
Ouvrez-le dans GlovePIE et frappez "Run".
Allez ensuite calibrer votre joystick virtuel PPJoy dans le panneau de contrôle de Windows - Contrôleurs de jeu (Windows Control Panel - Game Controllers).
Sélectionnez ce Joystick et ensuite cliquez le bouton "Propriétés". Le script devrait s'exécuter.
[le script :]
PPJoy1.Analog0 = Joystick1.x
PPJoy1.Analog1 = Joystick1.y
PPJoy1.Analog2 = Joystick1.z
PPJoy1.Analog3 = Joystick1.xrot //side
PPJoy1.Analog4 = Joystick1.yrot //top
PPJoy1.Analog5 = Joystick1.zrot //twist
PPJoy1.Analog6 = Joystick1.slider
Cochez deux fois les barres rouges qui sont au premier plan de l'écran.
-------------
UTILISATION :
Une fois que tout est prêt, "Run" [(exécutez)] ceci dans GlovePie.
Il y a 3 modes de contrôle ; on les fait défiler en double cliquant sur le bouton 6 du Joystick (pinkie sur le X52):
-Manual Trim
-Standard Dynamic Trim
-Flight Director Dynamic Trim
[(Si vous avez installé correctement la reconnaissance vocale)], vous entendrez GlovePIE annoncer quel est le mode actif.
---------------------
AUTRES AFFECTATIONS :
[ il parle des autres fonctions de ses scripts dans son gros fichier sur AVSIM, pour le X52 (profil .DAT) et fichier (script .PIE) pour Glovepie.]
J'ai actuellemnt le y.rot (bouton rotatif en haut du throttle) sur le X52 qui confère une augmentation de 50% des valeurs de l'axe (Trim positif 50%), ce qui est bien pour augmenter l'efficacité des rudder ou du twist axe. [cf script plus bas]
[N.D.T. : commentaire : Ce n'est que mon avis personnel mais : Je ne vois pas l'intérêt de 50% de plus sur les valeurs du Rudder, sauf à utiliser le Rudder en mode Auto Pilot actif et Suivi de cap actif, configuration dans laquelle le Ka50 dans BS suit la route programmée, et dans laquelle il faut vraiment beaucoup forcer sur les rudders pour avoir une petite variation du cap ; la bonne procédure serait plutôt de débrancher le suivi de cap avant la manoeuvre, et non de trimmer artificiellement le rudder...
[EDIT] : correction du 20/01 : en fait la bonne procédure est d'utiliser le mode FLight Director Control]
]
Dans les options de Blackshark, les trois touches sous l'écran du X52 sont affectées au pilote automatique. La touche X52 'Reset' est pour Heading Hold. la touche du milieu est pour le TANGAGE. La plus à gauche est pour le ROULIS.
Dans le cockpit, le Switch Desired Heading/Desired Track est en position milieu pour suivre une route [(touche <R>)], et les fonctions Flight Director, et Suivi de cible ne sont PAS sélectionnées, exprès pour voir vers où est-ce que le pilote automatique [(appelé FCS par Reticuli)] essaye de vous réaligner doucement (avec la limite de 20% sur les mouvements des sticks) quand le Suivi de cap (Heading Hold) est actif. En mode Flight Director, on a seulement les fonctions d'amortissement (dampening).
Soyez conscient du fait que en mode MANUEL [(mode du script Glovepie, à cause de la manière dont est écrit le script)] vous trimmez TOUS les axes Y et X et Z en même temps (Roulis, Tangage et Lacet). Aussi, il ne faut pas d'entrée parasite au moment où vous trimmez, ou alors il faut corriger et recommencer.
Les profils X52/DCS inclus sont simples, parce que personnelement j'utilise surtout le clavier : il n'y a qu'une touche dans le fichier x52 dat ... pour le trim avec le bouton rotatif du throttle.
-----------------
NOTE IMPORTANTE : [(pour utilisateurs du X52)]
*****************
ALLEZ DANS LES OPTIONS DE BLACKSHARK :
pour vérifier les affectations des boutons ;
cliquez sur chaque bouton et chapeau du X52 pour voir quelles sont leurs fonctions
mais ne les changez pas si vous ne savez pas ce que vous faites.
EN PARTICULIER NE CHANGEZ PAS LES COURBES DE REPOSE DES AXES.
La réponse du Trim Dynamique avec Glovepie, l'actualisation du Trim, la vitesse de lecture des mouvements des axes, la valuer du Trim, et ces courbes ont été adaptés les uns aux autres pour fonctionner d'une manière particulière.
Tous ces éléments sont interdépendant.
[N.D.T. : il y a du boulot à faire pour utilisation sur un autre Joystick que le X52]
Comme dans Glovepie le trim est affecté au bouton 6 du Joystick réel, si vous utilisez ce pakage sans le modifier,
n'appliquez pas la fonction Trim au Joystick Réel , et ne changez pas l'affectation de touche clavier dans BS.
**************************************************************************************************************
---------------------------------
LE SCRIPT PRINCIPAL pour GlovePIE
dans :
X52, Glide, Winx3D, and GlovePIE Profiles V11 http://library.avsim.net/search.php?Sea ... D=miscmisc
[N.D.T. : j'ai rajouté les indentations, et les commentaires, c'est plus pédagogique)]
var.0 = PPJoy1.Analog0
var.1 = PPJoy1.Analog1
var.2 = PPJoy1.Analog2
var.3 = PPJoy1.Analog3
var.4 = PPJoy1.Analog4
var.5 = PPJoy1.Analog5
var.6 = PPJoy1.Analog6
PPJoy1.Analog5 = Joystick1.zrot + (Joystick1.yrot * .5)
// ici les valeurs de l'axe analogique numéro 5 (Joystick virtuel "logiciel" PPJoy)
// sont celles de l'axe physique "Rotation Z" du joystick réel utilisé (X52 dans le cas de Reticuli l'auteur du post),
// et elles sont augmentées de 50% de la valeur de l'axe physique "Rotation Y" du Joystick Réel
// (il s'agit du bouton rotatif en haut du throttle sur le X52) : cf paragraphe au-dessus 'AUTRES AFFECTATIONS'.
if doubleclicked(joystick1.button6) then begin {
// Le double click sur le bouton 6 du Joystick Réel entraîne le changement de mode
var.m = var.m + 1
if var.m = 1 then begin {
// ici on émule le mode Standard Dynamic Trim
// les frappes LCTRL + T sont envoyées à BS
say("Standard Dynamic Trim")
// l'ordinateur (speech engine via glovepie) vous cause pour vous dire ce que vous avez fait...
press(leftctrl)
press(t)
release(t)
release(leftctrl)
} end
if var.m = 2 then begin {
// ici on émule le mode Flight Director Dynamic Trim
// les frappes LCTRL + T sont envoyées à BS
say("Flight Director Dynamic Trim")
press(leftctrl)
press(t)
release(t)
release(leftctrl)
} end
if var.m > 2 then var.m = 0
if var.m = 0 then begin {
say("Manual Trim")
} end
} end
if var.m = 0 then begin {
// ici on émule le mode Manual Trim (en fait = pas de Trim du tout, ou celui de BS)
// les valeurs renvoyées par les axes du Joystick ne sont pas modifiées
t = joystick1.button6
PPJoy1.Analog0 = Joystick1.x
PPJoy1.Analog1 = Joystick1.y
PPJoy1.Analog2 = Joystick1.z
PPJoy1.Analog3 = Joystick1.xrot
PPJoy1.Analog4 = Joystick1.yrot
PPJoy1.Analog5 = Joystick1.zrot + Joystick1.yrot
PPJoy1.Analog6 = Joystick1.slider
var.y = 0
var.x = 0
var.c = 0
var.l = 0
var.r = 0
var.p = 0
var.s = 0
// cette boucle remet toutes les valeurs de tous les axes du Joystick virtuel
// égales aux valeurs respectives des axes du Joystick réel
// et annule tout trim
} end
if var.m = 1 then begin {
// ici on émule le mode Standard Dynamic Trim
// les chiffres indiquent la valeur de Trim envoyée en % à chaque axe (mini -1, nul 0, maxi +1)
var.c = 45
var.l = -0.575
var.r = 0.275
var.p = -0.850
var.s = 0.0
var.y = EnsureRange(Joystick1.y / var.c + var.y, var.p, var.s)
// on divise la valeur de l'axe Y du joystick réel par c, on y ajoute la valeur précédente de trim de y
// le trim de Y doit être compris entre (mini = p et maxi = s)
PPJoy1.Analog1 = var.y + Joystick1.y
// axe Y : valeur du joystick virtuel = joystick réel + pourcentage de trim dans variable y
var.x = EnsureRange(Joystick1.x / var.c + var.x, var.l, var.r)
// on divise la valeur de l'axe X du joystick réel par c, on y ajoute la valeur précédente de trim de x
// le trim de Y doit être compris entre (mini = l et maxi = r)
PPJoy1.Analog0 = var.x + Joystick1.x
// axe X : valeur du joystick virtuel = joystick réel + pourcentage de trim dans variable x
} end
if var.m = 2 then begin {
// ici on émule le mode Flight Director Dynamic Trim
// les chiffres indiquent la valeur de Trim envoyée en % à chaque axe (mini -1, nul 0, maxi +1)
var.c = 70
var.l = -0.5
var.r = 0.0
var.p = -0.7
var.s = 0.0
var.y = EnsureRange(Joystick1.y / var.c + var.y, var.p, var.s)
PPJoy1.Analog1 = var.y + Joystick1.y
var.x = EnsureRange(Joystick1.x / var.c + var.x, var.l, var.r)
PPJoy1.Analog0 = var.x + Joystick1.x
} end
[---N.D.T. :
- impossible de savoir comment il a fait pour trouver les bonnes valeurs pour les variables, et l'étalonnage des courbes dans BS : essai / erreur ?
- il oublie de dire une chose TRES IMPORTANTE :
dans les options de BS, liste déroulante "axes"
il faut vérifier que les axes que vous utilisez correspondent bien à ceux du Joystick virtuel de PPJoy
et NON PAS à votre Joystick physique réel !!!
Par contre je n'ai pas fini de tester (moi j'ai un cougar et il faut adapter les valeurs dans le script)
je me demande s'il faut bien étalonner les courbes de réponse du Joystick Réel plutôt que du virtuel ! à confirmer
C'est le but des fichiers de configuration de Joystick LUA inclus dans son gros fichier sur AVSIM,
mais il faut que vous pensiez à les lire et activer dans les options de BS, liste déroulante "axes",
et ensuite utiliser les bouton noirs à droite "profils" je croie (je note ça de mémoire sur un PC où je n'ai pas BS)
----]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2 questions d'un utilisateur X52 :
1. J'utilise le nouveau software de prgrammation du X52 avec des fichiers .pr0 . Dois-je utiliser l'ancien soft avec le fichier .dat?
2. Si je ne peux pas utilser le soft .pr0, et que je réutilises l'ancien soft avec fichier .dat... puis-je programmer mon stick normallement avec ou bien dous-je utiliser autre chose ?
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Réponse de Reticuli :
Comme dit au second paragraphe, le joystick n'a pas d'importance.
J'ai inclus le .dat de mon X52 pour être complet c'est tout. Le seul bouton qui y est programmé n'est pas reconnu par les logiciels : le rotatif. Toutes les affectations de fonctions sont faites dans BS. Que vous assignez les fonctions dans BS ou avec le soft de programmation du stick n'a pas d'importance.
Je ne sais pas si les fichiers .Lua inclus fonctionneront avec d'autres sticks que le X52, mais vous pouvez essayer.
Ce qui est important c'est que
les courbes pour les axes tangage, roulis et lacet [(X, Y, rudder)] doivent être à +15 pour fonctionner comme prévu.
********************************************************************************************************************
Vous devez juste savoir que le pinkie est actuellement affecté au Trim et que le mode de Trim scripté par Glovepie est activé en utilisant un double click du pinkie. Pour changer cela il suffit de remplacer "Joystick1.button6" dans le script par la syntaxe glovepie du bouton que vous voulez.
Téléchargez le package et suivez les instructions. I just flew a mission, navigated, completed, navigated back, and landed without a single hitch.
J'ai plus de 20 fps la plupart du temps! C'est vraiment la manière de voler dans BS avec un stick non FFB à retour au centre.
Cela paraît au premier abord beaucoup plus compliqué que cela ne l'est en réalité.
J'ai même inclus un script de calibration, des images pour paramétrer PPJoy...tout ce qui est nécessaire.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Reticuli a jouté :
Bien qu'il ne soit pas indispensable ni recommandé de Trimmer à des vitesses supérieures à 250 km/h, pour mon utilisation personnelle j'ai aujourd'hui augmenté le pitch négatif à -0.900 pour le mode UN et de -0.775 pour le mode DEUX, les valeurs de var.p dans chaque section du script. Elles étaient à -0.850 et -0.7, respectivement. Je trouve cela plus pratique en vol de croisière, bien qu'un dépassement de vitesse maximale (survitesse) et des vibrations dans le rotor soient plus probables. Il suffiaitt de changer de mode et d'effacer le Trim à -.900 pour le remettre à zéro pendant un virage pour qu'une catastrophe se produise. Faites les modifications que vous voulez à votre guise et vos risques et périls.
[[[[[[[[[[[[[[[[[[[[[[[[[-------------------------
-------------------------]]]]]]]]]]]]]]]]]]]]]]]]]
Commentaire de Hellfrog :
J'ai traduit et posté parce que :
- Glovepie possède des spécifités uniques et est extrêmement puissant, et sans équivalent
- mais il n'y a pratiquement pas de doc en français pour les scripts utilisés pour les joysticks car sa principale utilisation commentée sur le Web est l'émulation de la Wiimote sur le PC.
- On peut aimer on non l'exemple de Reticuli, mais il a au moins une valeur pédagogique qui montre ce qui peut être fait avec un script somme toute simple pour toute personne ayant des connaissances basiques en programmation ou même juste en anglais.
- je pense que la majorité des utilisateurs de X52 vont préférer programmer leur stick plutôt que d'affecter directement les boutons directX dans les options de BS : dans ce cas, les fichiers de configuration .lua de Reticuli sont moins indispensables. Mais il peut être intéressant de les conserver pour voir les profils d'axe qu'il y a enregistré, comme il le souligne dans des réponses ultérieures dans la discussion.
- J'aime beaucoup l'idée du bouton de 'changement de mode' un peu comme S3 SHIFT ou le ROCKER T7-T8 /U /M /D du Cougar, sauf que cela permet de créer les combinaisons que l'on veut,
- J'adorrre ++ la synthèse vocale pour rappeler dans quel mode on est. C'est ce que diraient certains fans du Cougar ou des Saitek : "il ne leur manque que la parole !" .... maintenant c'est possible !
C'est aussi pour cela que j'ai inclus et traduit des extraits du fichier doc de Glovepie, notemment pour la gestion des fichiers à installer pour faire marcher la reconnaissance vocale.
NB : Mais je ne suis pas un spécialiste de cela, j'ai juste lu la doc attentivement, fait scrupuleusement ce qui était indiqué, et ça a marché chez moi, c'est tout. N'attendez pas de ma part un "support" de "spécialiste"
- remarque pour les pros du Cougar (je n'ai pas de Saitek) :
à connaître, boucle d'exécution d'une thread/'page de code' de Glovepie : 30 msec, comme sur le Cougar,
exécution parrallèle du code, comme sur le Cougar
=> tester et ajouter des temporisations dans les scripts complexes et long, prévoir une boucle de réinitialisation pour les scripts très complexes ou en cas de bug pendant les tests...
bon moi je découvre Glovepie et je débute avec, donc j'ai encore plein d'astuces à apprendre... notemment maitriser la syntaxe et toruver la liste exhaustive des fonctions si elle existe qqpart...