IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Unity Discussion :

Besoin d'aide pour créer un système de décorporation


Sujet :

Unity

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut Besoin d'aide pour créer un système de décorporation
    Bonjour a tous !

    Je suis étudiant et pour un projet scolaire, je crée un Survival / horror a la 1ere personne intégrant un système de décorporation du joueur.. Je m'explique :
    Lorsque le joueur se fait toucher par l'ennemie, son esprit quitte son corps. Si il se fait toucher une 2éme fois alors qu'il est encore sous la forme d'esprit, c'est le game over.
    Si le joueur, toujours sous la forme d'esprit, parvient a toucher son corps, il reprend possession de celui ci.

    Pour le déplacement normal, j'utilise le FPS Controller de Unity.

    Pour résumé :
    - Un mode de déplacement aérien qui s'active lorsque l'ennemie touche le joueur
    - Lorsque l'ennemie touche le joueur sous forme d'esprit, c'est le Game Over
    - Lorsque le joueur touche son corps, il revient au mode de déplacement standard.

    Tout aide est la bienvenue, étant un bon gros débutant en C#, je ne sais pas comment mis prendre pour mettre ca en place.

    Merci !

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Personnellement je vois une grosse contraction entre créer un jeu et "bon gros débutant en C#".
    De plus pour un projet scolaire ? en ne t'a pas donné des cours avant de te lancer sur ce genre de projet ?


    Pour ton souci c'est un souci algo ?
    Ou tu ne sais pas rajouter un asset sur Unity ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Pour répondre a la contradiction que tu a soulevé, je suis étudiant en 2éme année a POLE IIID. La spécialisation jeux vidéos ne vient qu'en 3éme année. Nous avons eu quelque cours très basique sur unity, mais rien d'aussi complexe.
    C'est un projet que j'ai monté avec l'aide d'une petite équipe de 3 personnes, un projet libre que notre école nous permet de faire pendant les vacances. Donc oui c'est un projet scolaire, et oui je suis un bon gros débutant en C#

    Et pour mon soucis, c'est simplement que je ne sais pas comment mis prendre généralement.



    Je sais importer un asset cependant ! C'est déjà ca !

  4. #4
    Membre éclairé

    Homme Profil pro
    Non disponible
    Inscrit en
    Décembre 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non disponible

    Informations forums :
    Inscription : Décembre 2012
    Messages : 478
    Points : 877
    Points
    877
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    As tu fais les tutos Unity ? (ceux en relation avec ce que vous voulez faire tout du moins)
    Des notions de programmation ?
    Après, vas y par itérations : création et déplacement du joueur, tir avec une arme, création d'une IA, mécanique de gameplay ....
    Sur chacun des points, si tu rencontres des difficultés, n'hésites pas à venir les poser ici, mais la réponse à la question 'Comment faire un jeu" ne tient pas en quelques lignes.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Merci de vos retour.
    Mon jeu est déjà bien avancé, cela fait déjà 2mois 1/2 que nous sommes dessus, alors non je ne demande absolument pas "comment faire un jeu".
    Je cherche juste a savoir comment mis prendre sur les 3 points que j'ai cité plus haut !

  6. #6
    Membre habitué Avatar de EliXirr
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 62
    Points : 176
    Points
    176
    Par défaut
    c'est délicat ce que tu demandes parcequ'il y a différentes mannières de faire. Soit plus spécifiques, montres tes sources si ça peu aider pour savoir quoi te répondre.

    A tu des problèmes sur les collider ? sur les déplacement d'objet ? Bien verbaliser son problèmes c'est déjà commencer à le regler.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Et bien en 1er lieu j'ai besoin d'un déplacement aérien :
    Pouvoir se déplacer sans la contrainte de la gravité, monter, descendre, tourner a 360°, accélérer, freiner.. La caméra se déplace librement, lorsque le joueur avance puis s'arrête, la caméra s'arrête instantanément ...


    J'ai besoin d'un code permettant de faire tout ca Ce que j'ai trouver sur internet ne marche pas bien, pas comme nous le voulons en tout cas.

    Ensuite, j'ai besoin que ce code "aérien" ne s'active que si l'objet avec le tag "Enemy" rentre en collision avec le joueur.
    Si il rentre une 2éme fois en collision avec le joueur, c'est game over.

    Enfin si le joueur touche l'objet avec le tag "Body", il retrouve le déplacement normal..

    Je ne vois pas comment être plus clair. Un bon exemple, c'est le jeu "Agony", qui utilise plus ou moins exactement ce que je cherche !
    Vers 28:24, un exemple de l'effet chercher.



    Merci de votre patience.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 963
    Points
    32 963
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Nattahnam Voir le message
    J'ai besoin d'un code permettant de faire tout ca Ce que j'ai trouver sur internet ne marche pas bien, pas comme nous le voulons en tout cas.
    Tu ne trouveras jamais de code "déplacements 3d 'aérien' correct".

    Tu bloques où ?
    Ton truc c'est une machine à 2 états
    - normal : déplacement du perso
    > collision avec ennemi, passage en état "aérien"
    - aérien : déplacement 3d "en vol"
    > collision avec le mesh du perso, passage en état "normal"
    > collision de l'ennemi avec le mesh du perso, game over
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    C'est exactement ca.

    Je bloque pour coder tout ca justement, le déplacement aérien et le changement d'état.

    Pour le déplacement aérien, j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    using UnityEngine;
    
    public class CameraController_fly : MonoBehaviour {
    
    	private static float movementSpeed = 1.0f;
    
    	void Update () {
    		movementSpeed = Mathf.Max(movementSpeed += Input.GetAxis("Mouse ScrollWheel"), 0.0f);
    		transform.position += (transform.right * Input.GetAxis("Horizontal") + transform.forward * Input.GetAxis("Vertical") + transform.up * Input.GetAxis("Depth")) * movementSpeed;
    		transform.eulerAngles += new Vector3(-Input.GetAxis("Mouse Y"), Input.GetAxis("Mouse X"), Input.GetAxis("Rotation"));
    	}
    }


    Et pour le changement d'état :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    using UnityEngine;
    using UnityStandardAssets.Characters.FirstPerson;
     
    public class Switch : MonoBehaviour
    {
    	// Assign FPSController object in the editor.
    	public GameObject FPSController;
     
    	// When this object enter in collision.
    	void OnCollisionEnter(Collision collision)
    	{
    		// Check if the tag of collided object is 'Enemy'.
    		if (collision.gameObject.tag == "Enemy")
    		{
    			// Destroy FirstPersonController script and add CameraController_fly script on FPSController object.
    			Destroy(FPSController.GetComponent<FirstPersonController>());
    			FPSController.AddComponent<CameraController_fly>();
    		}
    		// Check if the tag of collided object is 'Body'.
    		else if (collision.gameObject.tag == "Body")
    		{
    			// Destroy CameraController_fly script and add FirstPersonController script on FPSController object.
    			Destroy(FPSController.GetComponent<CameraController_fly>());
    			FPSController.AddComponent<FirstPersonController>();
    		}
    	}
    }


    Tout ca vient d'un autre forum, mais ne fonctionne pas correctement.
    Unity ne comprend pas lorsque je rentre en collision, un coup sur deux il ne permet pas au personnage de voler, et lorsqu'il vole, cela devient incontrôlable. De plus il ne comprend pas la collision avec le "Body".

  10. #10
    Membre habitué Avatar de EliXirr
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 62
    Points : 176
    Points
    176
    Par défaut
    J'ai quelques questions qui vont surement expliquer des choses :
    - Comprends tu les morceaux de code extérieur que tu as copier/coller dans ton programme ?
    - Est-tu familié de l'utilisation des points d'arrets (breakpoints) ?
    - Utilises tu une machine a état pour gerer les différents états (comme l'a judicieusement suggérer Bousk) ?

    Si la réponse est "non" aux 3 questions il faut commencer par creuser ces points.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Je comprend le code "Switch", en ce qui concerne le code "CameraController_fly", je ne le comprend pas en effet.

    Je ne connais absolument pas les Breakpoint

    Et je n'utilise pas de machine a état.

  12. #12
    Membre habitué Avatar de EliXirr
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 62
    Points : 176
    Points
    176
    Par défaut
    Bon déjà première règle : pas de panique

    L'informatique n'a rien de magique. Il me semble que tu fais se projet dans le cadrede ta scolarité. J'aurais presque tendance a dire que tu t'en fou si tu as appris les 3 points que je t'ai cité plus haut. Copier du code et l'exécuter sans comprendre c'est comme pisser dans un violon. Lire et comprendre du code cela s'apprend, et cela passe avant toute chose par la maitrise des outils de développement.

    Première étape : Maitriser les breakPoint. Sans ça dis adieu a ta carière de développeur. Personnellement j'utilise visual-studio pour le plus gros de mes dev. tu as un tuto qui date un peu à cette adresse :
    http://csharp.net-tutorials.com/debugging/breakpoints/
    tu as aussi quantité de tuto vidéo etc sur youtube. google "C# breakpoint".

    une fois que tu maitriseras cela tu aura beaucoup plus confiance, de plus tu seras capable de revenir sur ce forum et d'expliquer et comprendre clairement d'ou viennent tes problèmes.

    Concernant les machines a états cela parait un peu prématurer pour le moment. tu peux t'en sortir sans de toutes mannières, C'est juste une mannière de développer beaucoup, beacoup plus propre. je te donne ici une base de documentation, après à toi de voir laquelle tu veux utiliser. Il me semble qu'Unity a aussi sa propre implémentation des state-machines.
    https://en.wikipedia.org/wiki/State_pattern

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Et bien merci, je vais me concentrer la dessus.

  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    J'ai un code fonctionnel, le switch fonctionne quasiment, cependant il me reste un dernier obstacle : Comment faire pour que les deux controller suivent la même position ?

    Lorsque je suis sur Player1, je veux que player2 le suive, et inversement.

    Comment faire ?

  15. #15
    Membre éclairé

    Homme Profil pro
    Non disponible
    Inscrit en
    Décembre 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non disponible

    Informations forums :
    Inscription : Décembre 2012
    Messages : 478
    Points : 877
    Points
    877
    Billets dans le blog
    1
    Par défaut
    hmm, setter la position de celui qui est actif à l'autre ?!

    D'après ton code, les deux contrôleurs sont sur le même GameObject, ils se partagent donc la même position ?!

  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Justement le code a pas mal évolué, maintenant j'ai deux Game Object pour deux controller. Et j'ignore comment faire !

Discussions similaires

  1. Besoin d'aide pour créer une requête
    Par fabien59420 dans le forum Requêtes et SQL.
    Réponses: 44
    Dernier message: 26/05/2008, 11h08
  2. Besoin d'aide pour créer une BD
    Par desfrags dans le forum Débuter
    Réponses: 6
    Dernier message: 30/01/2008, 22h20
  3. Besoin d'aide pour créer un .reg sous Vista
    Par Silverscott dans le forum Windows Vista
    Réponses: 3
    Dernier message: 25/07/2007, 14h09
  4. On a besoin d'aide pour créer un site de soirée électorale
    Par pliporte75 dans le forum Administration
    Réponses: 2
    Dernier message: 01/04/2007, 18h02
  5. besoin d'aide pour créer un uml
    Par bob75018 dans le forum UML
    Réponses: 9
    Dernier message: 11/03/2006, 12h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo