Je cherche a déplacer localement deux personnages

Règles du forum
Attention, si vous postez un lien vers un package (en guise d'exemple), assurez-vous qu'il ne contient que des éléments personnels et/ou libres de droit (donc sans l'asset PlayMaker dedans)

Sinon c'est assimilé à du piratage par diffusion sans autorisation de contenus protégés

Les modos auront alors comme consigne de carrément supprimer votre question
Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Je cherche a déplacer localement deux personnages

Message par Garfrenix » 13 Mai 2019 16:54

Bonjour, mon problème est tout simple, pourtant je ne trouve nul part de solutions, alors je m'en remet a vous.
Dans mon jeu je voudrais que deux joueurs sur le même ordinateur déplacent chacun leur personnage avec des touches différentes du clavier.
J'utilise donc playmaker et "controller simple move".
Mais évidement les contrôles de bases deplacent les deux personnages en même temps, j'ai bien trouver comment changer les contrôles dans "projects settings-input", mais je ne sais pas comment les appliquer a un seul des personnages.
Auriez vous des solutions svp?

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: Je cherche a déplacer localement deux personnages

Message par Max » 13 Mai 2019 17:40

Bonjour,
Garfrenix a écrit :
13 Mai 2019 16:54
Mais évidement les contrôles de bases deplacent les deux personnages en même temps, j'ai bien trouver comment changer les contrôles dans "projects settings-input", mais je ne sais pas comment les appliquer a un seul des personnages.
A la base tu dois définir des touches bien distincts pour chacun des deux joueurs (bon ça j’imagine que je ne t'apprends rien). En suite, chaque joueur doit disposer d'un controller qui lui est propre pour gérer leurs déplacements, avec pour chacun les touches qui vont bien d'assignées.
Le principe, il est là.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Je cherche a déplacer localement deux personnages

Message par Garfrenix » 13 Mai 2019 17:55

Justement mon problème est bien la, je ne sais pas ou aller pour assigner les touches pour un seul joueur, si je les change dans projets settings -input, ca les changera pour tout les "controller simple move" de mon projets, et donc ca les changera en même temps pour les deux joueurs.
"chaque joueur doit disposer d'un controller qui lui est propre" , c'est a dire? c'est la que quelque chose m'échappe^^ Je ne peut pas appliquer les paramétre de "input" a un seul des deux persos

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: Je cherche a déplacer localement deux personnages

Message par Max » 13 Mai 2019 18:37

Pour contrôler le mouvements de chaque joueur, je suppose que tu as un script (via Playmaker).
Chaque joueur se voit assigner ce script. A ceci près, qu'il faut en données publiques (on va simplifier) les noms des inputs à assigner via l'inspector pour chaque contrôle de chaque joueur.
En gros, cela pourrait ressembler à ceci pour deux joueurs (et pour un seul input):

Image
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Je cherche a déplacer localement deux personnages

Message par Garfrenix » 13 Mai 2019 19:21

D'accord, je comprend la logique, mais je n'ai pas la ligne "namekey" sous mon playmaker, dans mon inspector sous mon playmaker j'ai:
-Deplacement (donc le nom de ce FSM)
-Controle (qui me renvois juste a ma variable déplacement)
-Debug

et c'est tout :/ je ne comprend pas d'ou sors ta ligne namekey

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: Je cherche a déplacer localement deux personnages

Message par Max » 13 Mai 2019 21:24

Namekey est un nom arbitraire que j'ai donné pour l'exemple.
Après au niveau de Playmaker, je ne connais pas, donc je ne pourrais pas vraiment t'aider pour arriver à modifier le programme pour arriver au résultat souhaité.
Tu dois pouvoir définir des données publiques j'imagine. Données qui doivent pouvoir correspondre au type et nom d'Input que tu veux définir. A voir dans cette direction.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Je cherche a déplacer localement deux personnages

Message par Garfrenix » 13 Mai 2019 21:40

j'imagine que oui, mais rien trouver en fouillant partout, je tomberai dessus un jour sans faire exprés je pense^^ merci a toi quand meme

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: Je cherche a déplacer localement deux personnages

Message par Max » 13 Mai 2019 21:42

En script, sur le principe cela donnerait quelque chose comme:

Code : Tout sélectionner

    public string namekey1;

    void Update()
    {
        if (Input.GetButton(namekey1))
        {
            // actions
        }

    }
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Je cherche a déplacer localement deux personnages

Message par Garfrenix » 14 Mai 2019 13:03

Voila qui ne m'arrange pas.. Voici le script de mon controller simple move, mais aucune mention des touches ni input, une idée de quoi changer?

Code : Tout sélectionner

{
	[ActionCategory(ActionCategory.Character)]
	[Tooltip("Moves a Game Object with a Character Controller. See also Controller Simple Move. NOTE: It is recommended that you make only one call to Move or SimpleMove per frame.")]
	public class ControllerMove : FsmStateAction
	{
		[RequiredField]
		[CheckForComponent(typeof(CharacterController))]
		[Tooltip("The GameObject to move.")]
		public FsmOwnerDefault gameObject;
		
		[RequiredField]
		[Tooltip("The movement vector.")]
		public FsmVector3 moveVector;
		
		[Tooltip("Move in local or word space.")]
		public Space space;
		
		[Tooltip("Movement vector is defined in units per second. Makes movement frame rate independent.")]
		public FsmBool perSecond;
		
		private GameObject previousGo; // remember so we can get new controller only when it changes.
		private CharacterController controller;
		
		public override void Reset()
		{
			gameObject = null;
			moveVector = new FsmVector3 {UseVariable = true};
			space = Space.World;
			perSecond = true;
		}

		public override void OnUpdate()
		{
			var go = Fsm.GetOwnerDefaultTarget(gameObject);
			if (go == null) return;
		
			if (go != previousGo)
			{
				controller = go.GetComponent<CharacterController>();
				previousGo = go;
			}
			
			if (controller != null)
			{
				var move = space == Space.World ? moveVector.Value : go.transform.TransformDirection(moveVector.Value);

				if (perSecond.Value)
				{
					controller.Move(move * Time.deltaTime);
				}
				else
				{
					controller.Move(move);
				}
			}
		}
	}
}

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: Je cherche a déplacer localement deux personnages

Message par Max » 14 Mai 2019 14:00

Visiblement les inputs ne sont pas gérés par ce script.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Répondre

Revenir vers « Vos Questions »