Messagerie

  • Xenon3K
    Hello :) oui 1 semaine de vacances en juillet et toi ?
    Xenon3K - 01/09/2023 10:29:32
  • anthonyp
    Petit coucou à toute la communauté Fusion. Je partage une nouvelle petite vidéo bande annonce de mon projet fait sur Fusion : https://www.youtube.com/watch?v=eAg15yPxZfM
    anthonyp - 07/11/2023 15:40:29
  • Emmanuel
    coucou Xenon3k si du passe par la :-) on ne peu plus ajoute les jeux sur le site.
    Emmanuel - 13/03/2024 21:18:06
  • Xenon3K
    Merci Manu, il faut que je trouve un peu de temps pour regarder ça.
    Xenon3K - 16/03/2024 00:03:19

Entrée utilisateur diffère selon les extensions

Xsoul
samedi 6 mai 2017 à 17:48
Hello à vous, je viens vous voir car j'ai un problème assez important et je voudrais savoir si certains d'entre-vous auriez quelques pistes!

Pour mon projet Dark Devotion j'utilise énormément la manette (Xbox 360) et pour cela j'utilise :

1 - Le contrôle joueur de base (pour les déplacements)

2 - l'extension Joystick 2 (pour tout ce qui n'est pas déplacement)

3 - l'extension XBOX gamepad (uniquement pour la gestion du joystick droit car l'extension joystick 2 ne marche pas sur l'utilisation du stick droit)

Donc ça c'est le setup, ensuite, lorsqu'un input est détecté par manette 1/2/3/4 via l'extension joystick 2 je mets une variable ID_Manette à la valeur de la manette d'input

Et j'utilise cette variable pour setup sur quel périphérique d'entrée se plug le contrôle joueur de base et XBOX gamepad (et joystick2 mais on s'en fout :P)

Donc jusque là tout va bien, mes tests avec 2 manettes ont toujours marchés  ;D

MAIS  ???

Pour certaines personnes qui testent le joystick droit ne marche pas (=mauvaise ID pour XBOX gamepad) ou carrément le déplacement se fait pas (=mauvais contrôle joueur attribué)  ???

Ce qui m'amène à penser que les différentes extensions ne reconnaissent pas les même ports USB de la même manière,

à partir de là j'ai 2 solutions :

1 - Annuler tout mon système et mettre toutes les extensions sur le port 1 (et je sais même pas si ça règle mon problème vu ce que je viens de soulever juste avant)

2 - .... enfait j'ai pas d'autres idées, d'où le fait que je vienne vous voir


Merciii  :D
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 6 mai 2017 à 20:10
Les autres personnes testent aussi avec des manettes Xbox 360 ? La gestion du stick droit devrait fonctionner convenablement sur ces autres manettes.
Xsoul
samedi 6 mai 2017 à 20:42
Yes aussi des manettes de Xbox 360 et nop ça marche pas pour tout le monde/pas à chaque fois sûrement car XBOX gamepad ne détecte pas les ports USB dans le même ordre que joystick 2

En général c'est si y'a 2 manettes de branchées

Manette 1 va être port 1 pour Joystick 2
Manette 2 va être port 2 pour Joystick 2

Manette 1 va être port 2 pour XBOX gamepad
Manette 2 va être port 1 pour XBOX gamepad

voilà le genre de problème que je suppose que j'ai, très dur à vérifier comme j'ai pas de setup qui le reproduit mais ça a l'air vraiment fréquent
Monos
2713 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur Android Exporteur HTML5
samedi 6 mai 2017 à 21:26
[quote]3 - l'extension XBOX gamepad (uniquement pour la gestion du joystick droit car l'extension joystick 2 ne marche pas sur l'utilisation du stick droit)[/quote]
Si

http://comptoir-mmf.eu/Forum/index.php?topic=1967.0
Je ne sais plus si j'en parle dans cette vidéo la

Sinon il y a mes test écrit ici.
http://comptoir-mmf.eu/Forum/index.php?topic=711


Je n'ai pas relu revu mais je sais qu'il y a un truc pour gérer le stick droit.

Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 6 mai 2017 à 21:29
C'est l'OS qui défini le numéro des manettes il me semble bien.
Xsoul
dimanche 7 mai 2017 à 09:08
@Monos :

En tous cas RightStickDir( "Joystick 2 object", 1 ) chez moi ça donne l'axe des deux gachettes je viens de regarder à nouveau ! :P

Pareil pour RightStickDeg( "Joystick 2 object", 1 ) cest pour LT et RT

Et enfin pareil pour RightStickDistance( "Joystick 2 object", 1, 1 ) qui est aussi du LT / RT

Dommage ça m'aurait bien servi d'enlever une extension je suppose!

Et pour l'instant je programme un petit truc avec Control X dont parlait Seyjin dans un autre poste pour simuler avec Joystick 2 l'appui sur les touches clavier pour déjà supprimer l'utilisation de l'élément "joueur"

Merci à vous deux,

Je suis toujours preneur Monos pour récupérer la valeur du joystick droit sur Joystick 2 si tu retrouves comment faire ^^ (jai pas trouvé dans ta vidéo et dans ton poste mais peut être ais-je raté quelque chose! )


EDIT :
Dailleurs Monos tu as eu le même problème que moi dans ton fichier texte :

[quote]Right Joystick Direction (Pourcent)
RightStickDistance( "Joystick 2 object", X, Y )
X = Numéro du pad
Y = 0: Rien est donne 99.
y = 1 : 100 avec LT et -100 avec RT.
y = 2 : Rien donne 0[/quote]

Donc y se sont bien gourés et ont mis l'axe Z à la place du joystick droit non ? :/
Xsoul
dimanche 7 mai 2017 à 09:42


Voilà ce que ça donne pour la simulation, c'est pas aussi précis que le système de base mais cest quand même très proche!

C'est intégré et ça marche bien pour moi en tous cas ;)

Donc plus qu'à faire la nique au XBOX gamepad en me procurant la valeur du joystick droit horizontal et vertical et ça sera gagné ! :P
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 7 mai 2017 à 11:20

Et pour l'instant je programme un petit truc avec Control X dont parlait Seyjin dans un autre poste pour simuler avec Joystick 2 l'appui sur les touches clavier pour déjà supprimer l'utilisation de l'élément "joueur"


Je pensais plutôt à l'action Player → Set. Quand aux manettes tu peux définir ça dans Joueur # · Périphérique d'entrée  (:joueur)

En ce qui concerne ce "problème" d'axe, ce n'est pas une erreur. Ça provient du fonctionnement des différentes manettes qui n'est pas le même.  Si LT et RT sont analogiques, il y a de grandes chances que la définition des axes soient décalée.
Xsoul
dimanche 7 mai 2017 à 11:31
J'utilisais justement le changement de périphérique d'entrée en fonction de la variable ID manette récupérée par Joystick 2 mais de toute évidence les ports n'étaient pas forcément reconnus dans le même ordre pour l'objet Player et l'objet Joystick 2 puisque pour certains joueurs y pouvaient déplacer le joueur avec une manette et faire les autres actions avec une autre manette!

Ce qui veut dire que l'ID manette de joystick 2 est différent de l'ID manette de l'objet Player qui contrôle les déplacements (ce n'est pas vrai à 100% puisque chez moi je n'arrive pas à reproduire le problème mais ça semble arriver sous certains setups, peut être parce qu'une extension va détecter un port comme manette alors qu'une autre extension ne va pas le faire, si on a des périphériques un peu particulier ça me paraît tout à fait possible!)

J'ai pas compris pour ton deuxième point je veux bien quelques explications :P
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 7 mai 2017 à 13:17
Un stick analogique fonctionne avec deux axes. L'axe 1 et l'axe 2 correspondent au stick gauche, et sur la plupart des manettes l'axe 3 et 4 correspondent au stick droit. Sur une manette Xbox c'est différent : le stick droit est sur les axes 4 et 5, et les axes 2 et 6 (sou Windows c'est apparemment vu comme un seul axe) correspondent aux gâchettes analogiques. Du coup, c'est un peu le bordel.
Modifié le dimanche 7 mai 2017 à 13:54 par Seyjin
Xsoul
dimanche 7 mai 2017 à 21:41
Hmmm ouais donc peut être que pour Joystick 2 cest mappé sur l'axe 3 et donc ça marche pas pour la manette d'xbox 360 quoi :/
Xsoul
mardi 9 mai 2017 à 12:05
Pour Joystick 2 on peut s'en sortir pour avoir la valeur en X et Y du joystick droit avec ça :

( Raw XRotation( "Joystick 2 object", Joystick ID ) - 32500 ) / 325

( Raw  YRotation( "Joystick 2 object", Joystick ID ) - 32500 ) / 325

Pour avoir une valeur allant de -100 à 100 comme Xbox Gamepad

Après c'est très très sensible et ça se déclenche nimporte comment donc mes lignes de conditions portent ça :

-400 + ( Abs(Raw XRotation( "Joystick 2 object", Joystick ID ) - 34000) + Abs(Raw YRotation( "Joystick 2 object", Joystick ID ) - 32500) ) / 24

Pour être sûr que ça se déclenche que si le joueur bouge vraiment le joystick

Voilà en espérant que ça aide quelqu'un d'autre =)
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 16 visiteurs au total

Derniers messages