Le 23 avril 2018 à 19:17:28 Alal_Sorain a écrit :
Lol ouais enfin Gang Beast, c'est quand même très spécial niveau animation... xD (même si ça reste impressionnant malgré tout) Alors si les animations fantoches étaient une volonté des concepteurs mais qu'il y a moyen de faire un truc plus réaliste, plus normal, au niveau de l'animation en utilisant le ragdoll, des colliders ou je sais pas trop quoi du logiciel, c'est cool ! (Au moins au niveau des armes et éventuellement des bras. Pour le reste, je comptais utiliser de la motion capture avec 2 kinect et ipiSoft ) Mais si y'a pas moyen d'avoir autre chose que ces animations branlantes, je pense qu'il vaudrait mieux que je migre vers UE, en effet...
Gangbeast est un parti game, l'effet fantoche est clairement voulu. Dans le tuto sur UE, c'est expliqué dès le début qu'on peut réaliser des animations réalistes ou des animations comme Gang beast.
J'ai cherché des tutos ragdoll mais à chaque fois, ce sont des "ragdoll personnage" ordinaires. Je n'ai pas trouvé de ragdoll avec une sorte de "prolongation" avec un objet intégré au ragdoll. Tu es sûr que ça peut se faire ? Je suppose que oui car après tout, c'est exactement le même principe mais bon... C'est dommage que j'arrive pas à trouver d'exemples en vidéo. J'aimerais vraiment voir ce que ça donne en pratique !
En même temps tu demandes quelque chose d'assez précis, les tutos sont réalisés pour des choses généralistes, qui intéressent le plus de personnes possibles.
Et sinon, en utilisant juste des box colliders ordinaires qui épouseraient bien les formes de l'arme, y'aurait moyen d'obtenir des collisions assez propres et réalistes, non ? Je précise "qui épouseraient bien les formes de l'arme" car j'ai fait un tuto Unity qui expliquait comment créer une box collider mais c'était vraiment un collider basique en forme de capsule qui entourait le personnage et il l'entourait vraiment très grossièrement donc je suis pas sûr que ce soit très adapté pour ce que j'aimerais faire. Tu aurais une idée de quel genre de collider utilisé (j'entend souvent parlé de "mesh collider", peut-être que ce serait mieux ?) pour réaliser des animations comme j'aimerais (précises au niveau des armes et secondairement, des bras) ? ...
MeshCollider, c'est un collider d'un modèle 3D donné. Donc si tu donnes le model de l'arme au mesh collider, ton collider épousera parfaitement les formes de l'arme. A éviter absolument quand tu as beaucoup de vertices, car le temps de calcul augmente très vite. Tu peux créer un model 3D plus simple que l'arme juste pour être utilisé par le Mesh collider.
Ce que je pensais, c'était de mettre un collider sur l'arme, un ragdoll sur le personnage. Quand l'arme est touché, elle envoie une impulsion sur le rigidbody du personnage au niveau de la main et dans la direction où l'arme a été touché.
Si y'a déjà un système implémenté dans Unreal Engine, autant l'utilisé, surtout si tu es débutant.
En même temps tu demandes quelque chose d'assez précis, les tutos sont réalisés pour des choses généralistes, qui intéressent le plus de personnes possibles.
C'est pas faux, comme dirait l'autre ! Mais c'est dommage quand même ! J'aurais aimé voir un aperçu du rendu visuel. Tant pis !
si tu donnes le model de l'arme au mesh collider, ton collider épousera parfaitement les formes de l'arme. A éviter absolument quand tu as beaucoup de vertices, car le temps de calcul augmente très vite.
Des vertices qui entoureraient uniquement les armes (assez simples, qui plus est, telles que des épées), ça devrait passer. Mais à partir du moment où les armes ont des parties arrondies, ça doit demander plus de vertices pour bien les contourer, non ? (car je me dis, en gros, que ce doit être plus simple de contourer un carré qu'un rond avec un mesh collider mais je me trompe peut-être...)
Ce que je pensais, c'était de mettre un collider sur l'arme, un ragdoll sur le personnage. Quand l'arme est touché, elle envoie une impulsion sur le rigidbody du personnage au niveau de la main et dans la direction où l'arme a été touché.
En tout cas, sur le papier, ça a l'air parfait ! Ça me semble correspondre à ce que je recherche ! Et rassures-moi, un ragdoll + mesh collider sur l'arme, c'est compatible avec de la motion capture ? Je veux dire : Je peux prendre un modèle de perso avec un ragdoll (ou lui en rajouter un), lui ajouter une arme avec un mesh collider et animer le tout en motion capture ? Précision : Quand je dis "je peux ?", je veux dire "c'est faisable techniquement ?" ... "Est-ce que je vais y arriver ?", ça, c'est une autre histoire...
Si y'a déjà un système implémenté dans Unreal Engine, autant l'utilisé, surtout si tu es débutant.
De quel système tu parles ? Ou tu supposes qu'il y a un système implanté dans UE qui serait plus adapté à mes besoins ? Ou tu me parlais d'un asset ?
En tout cas, mille fois merci pour ton aide ! C'est peut-être pas grand-chose mais ça m'aiguille vachement sur la direction que je dois prendre et de dessiner un peu plus clairement les contours de mon projet ! C'est cool !
De quel système tu parles ? Ou tu supposes qu'il y a un système implanté dans UE qui serait plus adapté à mes besoins ? Ou tu me parlais d'un asset ?
Je parlais de la vidéo que tu avais posté.
En tout cas, sur le papier, ça a l'air parfait ! Ça me semble correspondre à ce que je recherche ! Et rassures-moi, un ragdoll + mesh collider sur l'arme, c'est compatible avec de la motion capture ? Je veux dire : Je peux prendre un modèle de perso avec un ragdoll (ou lui en rajouter un), lui ajouter une arme avec un mesh collider et animer le tout en motion capture ? Précisions : Quand je dis "je peux ?", je veux dire "c'est faisable techniquement ?" ... "Est-ce que je vais y arriver ?", ça, c'est une autre histoire...
Une forme arrondie, c'est plein de triangles/vertices, donc il faudrait le simplifier.
J'ai jamais fait de motion capture, mais je suppose que oui.
Je parlais de la vidéo que tu avais posté.
Mais tu voulais dire qu'il y a un système unique à UE conçu tout spécialement pour ce que je voudrais faire ? J'ai re-regardé la vidéo et tout ce que je vois, c'est la programmation d'un ragdoll et de modèles d'animations. Donc c'est le même système que Unity. Mis à part que l'interface est différente, notamment le système blueprints. C'est de ça que tu parlais ?
Juste avant, tu m'as dit :
Ce que je pensais, c'était de mettre un collider sur l'arme, un ragdoll sur le personnage. Quand l'arme est touché, elle envoie une impulsion sur le RIGIDBODY du personnage au niveau de la main et dans la direction où l'arme a été touché.
Tu voulais dire "sur le ragdoll", non ? Parce que le rigidbody, si j'ai bien compris, c'est un corps non-soumis aux forces physiques, comme son nom le laisse deviner. Du coup, le corps de mon perso ne réagira pas à l'impact...
Et un rigidbody avec juste les bras en ragdoll, c'est possible ça ? Ça pourrait peut-être être utile si j'utilise des animations pré-enregistrées communes à différents perso et différentes armes s'ils sont tous/toutes assez similaires mais que j'ai besoin d'adapter un peu les animations suivant la taille des dits persos et armes, par exemple...
Finalement, si je suis le tuto de la vidéo que j'ai posté pour créer un ragdoll + animations préconfigurées sous Unreal Engine ou que je suive ce tuto-ci (en français, en plus ) : https://www.youtube.com/watch?v=DkBSinrJQeg&t=977s , qui explique juste comment créer un ragdoll et que je me démerde pour le coupler à des animations préconfigurées, basiquement, c'est la même chose, non ? ... Il y aura peut-être une différence dans la qualité du rendu suivant le moteur utilisé mais sinon, c'est le même principe, exact ? ...
Le 24 avril 2018 à 01:16:38 Alal_Sorain a écrit :
Je parlais de la vidéo que tu avais posté.
Mais tu voulais dire qu'il y a un système unique à UE conçu tout spécialement pour ce que je voudrais faire ? J'ai re-regardé la vidéo et tout ce que je vois, c'est la programmation d'un ragdoll et de modèles d'animations. Donc c'est le même système que Unity. Mis à part que l'interface est différente, notamment le système blueprints. C'est de ça que tu parlais ?
Non. A 35 secondes il dit : https://youtu.be/6pG9SZQ0o7w?t=35
"don't require programming, it's just a system inside UE4." J'en ai déduis que quelque chose te permettait d'avoir ce genre de rendus très facilement sous UE4.
"De quel système tu parles ? Ou tu supposes qu'il y a un système implanté dans UE qui serait plus adapté à mes besoins ?"
C'était à ce système là que je faisais référence à ce moment de la conversation.
Juste avant, tu m'as dit :
Ce que je pensais, c'était de mettre un collider sur l'arme, un ragdoll sur le personnage. Quand l'arme est touché, elle envoie une impulsion sur le RIGIDBODY du personnage au niveau de la main et dans la direction où l'arme a été touché.
Tu voulais dire "sur le ragdoll", non ? Parce que le rigidbody, si j'ai bien compris, c'est un corps non-soumis aux forces physiques, comme son nom le laisse deviner. Du coup, le corps de mon perso ne réagira pas à l'impact...
Et un rigidbody avec juste les bras en ragdoll, c'est possible ça ? Ça pourrait peut-être être utile si j'utilise des animations pré-enregistrées communes à différents perso et différentes armes s'ils sont tous/toutes assez similaires mais que j'ai besoin d'adapter un peu les animations suivant la taille des dits persos et armes, par exemple...
J'ai pas trop touché aux RigidBody et aux trucs en 3D en général, mais sur la doc du RigidBody, c'est bien marqué : "Control of an object's position through physics simulation." ( https://docs.unity3d.com/ScriptReference/Rigidbody.html )
J'ai préféré vérifié, j'ai regardé vite fait sur internet, et je suis tombé sur une réponse où la personne conseillée d'utiliser un RigidBody pour le RagDoll (2ème réponse) : https://answers.unity.com/questions/15392/rigid-body-or-ragdoll.html
Le 24 avril 2018 à 12:59:56 Angeioo a écrit :
Bonjour,J'ai une autre question, pour faire une IA ou quelque chose qui bouge automatique il faut mettre le code dans un nouveau script dans la ligne update ou il à une autre façon de procéder ? Je demande ça car je comptais faire un mini jeu, et il me fallait l'indication de celle ci ^^
Bonne journée à vous et merci.
Si tu veux faire un IA qui se déplace dans un monde en 3D, le mieux à faire c'est de faire un script dédié à ça.
Pour le déplacer dans un monde en 3D, tu peux utiliser le Composant NavMeshAgent. Comme ça dans ton script, tu pourras faire quelque chose comme : navMeshAgent.SetDestination(position);
Non. A 35 secondes il dit : https://youtu.be/6pG9SZQ0o7w?t=35
"don't require programming, it's just a system inside UE4." J'en ai déduis que quelque chose te permettait d'avoir ce genre de rendus très facilement sous UE4.
Mh.. Je crois qu'il parle du système blueprints (que je n'ai jamais testé mais qui permet apparemment de programmer sans passer par un langage de prog...) Je ne vois pas de quel autre système il parle.
Ah bah je me suis planté concernant le RigidBody. Je pensais que c'était une version 100% rigide du RagDoll mais apparemment non. D'après ce que je comprends, un RigidBody, c'est plutôt un élément rigide mais qui obéit à la physique. Et du coup, un RagDoll est constitué de plusieurs RigidBody, liés entre eux par des joints qui permettent l'effet poupée de chiffon (RagDoll).
Sinon, par rapport à mon dernier message, peux-tu me confirmer que je devrais arriver à un résultat similaire à ce qui est présenté dans la fameuse vidéo tuto sur UE (des animations pré-enregistrées couplées à un ragdoll - je crois que c'est ce qu'on appelle un RagDoll actif - ) en suivant le tuto (plus simple et en français) de cette vidéo : https://www.youtube.com/watch?v=DkBSinrJQeg , qui ne concerne que la partie RagDoll, sur Unity, puis en rajoutant des animations par la suite ? ...
Le 24 avril 2018 à 16:53:27 Alal_Sorain a écrit :
Non. A 35 secondes il dit : https://youtu.be/6pG9SZQ0o7w?t=35
"don't require programming, it's just a system inside UE4." J'en ai déduis que quelque chose te permettait d'avoir ce genre de rendus très facilement sous UE4.
Mh.. Je crois qu'il parle du système blueprints (que je n'ai jamais testé mais qui permet apparemment de programmer sans passer par un langage de prog...) Je ne vois pas de quel autre système il parle.
Le système Blueprint c'est un système pour faire de la programmation. Juste que c'est de la programmation visuelle, sans ligne de code, mais ça reste un enchaînement de variables, de conditions et d'appels de fonction. Non, je pense qu'il y a bien un système pour réaliser ça en quelques clics. Genre comme sur cette vidéo : https://www.youtube.com/watch?v=T_gvrQjsAoQ
Ah bah je me suis planté concernant le RigidBody. Je pensais que c'était une version 100% rigide du RagDoll mais apparemment non. D'après ce que je comprends, un RigidBody, c'est plutôt un élément rigide mais qui obéit à la physique. Et du coup, un RagDoll est constitué de plusieurs RigidBody, liés entre eux par des joints qui permettent l'effet poupée de chiffon (RagDoll).
Sinon, par rapport à mon dernier message, peux-tu me confirmer que je devrais arriver à un résultat similaire à ce qui est présenté dans la fameuse vidéo tuto sur UE (des animations pré-enregistrées couplées à un ragdoll - je crois que c'est ce qu'on appelle un RagDoll actif - ) en suivant le tuto (plus simple et en français) de cette vidéo : https://www.youtube.com/watch?v=DkBSinrJQeg , qui ne concerne que la partie RagDoll, sur Unity, puis en rajoutant des animations par la suite ? ...
https://youtu.be/ecPujs5PwZQ?t=191
Des personnes à le faire, donc ça devrait être ok.
OK ! Merci encore !
Yop all. J'ai un problème lors de la création de ma map via la fenêtre Windows, tilemap. J'apporte les tiles pour le sol et tout et tout mais quand je vais les placer sur la grilles, ils apparaissent tout petit, n'ont pas la même couleur d'origine etc. Après quelques recherches bah j'ai rien trouvé de concluant.... Quelqu'un sait se qu'il se passe ? Mes sprites sont générés depuis Piskel en PNG.
Merci 👍
Bonjour !
J'aimerais faire en sorte que mon personnage se déplace de manière saccadée, case par case grâce aux flèches directionnelles. Comme dans pokemon mais en 3D en gros. Le problème, c'est qu'actuellement mon personnage bouge, mais de manière continue. Malgré des recherches sur internet et de nombreux test plus ou moins foireux, je n'y arrive vraiment pas (je suis vraiment débutant). Vous n'auriez pas une idée/piste pour me débloquer par hasard s'il vous plaît?
Le 28 avril 2018 à 17:02:00 Hytrq a écrit :
Bonjour !
J'aimerais faire en sorte que mon personnage se déplace de manière saccadée, case par case grâce aux flèches directionnelles. Comme dans pokemon mais en 3D en gros. Le problème, c'est qu'actuellement mon personnage bouge, mais de manière continue. Malgré des recherches sur internet et de nombreux test plus ou moins foireux, je n'y arrive vraiment pas (je suis vraiment débutant). Vous n'auriez pas une idée/piste pour me débloquer par hasard s'il vous plaît?
Montre ton système de déplacement actuel.
Bon, c'est franchement pas optimisé et on peut surement faire plus simple mais bon, c'est compréhensible (du moins j'espère). C'est mon 1er vrai script sur unity, alors je galère un peu. Il marche, mais je ne vois vraiment pas comment faire pour le transformer en déplacement "case par case"
private enum direction { Rien, Devant, Derriere, Gauche, Droite };
direction DiPlayer = direction.Rien;
void FixedUpdate()
{
if (Input.GetKey(KeyCode.UpArrow)) // Quelle touche est pressée par le joueur?
{
DiPlayer = direction.Devant;
transform.eulerAngles = new Vector3(0, 0, 0); // Rotation
Move(speed);
}
else if (Input.GetKey(KeyCode.DownArrow))
{
DiPlayer = direction.Derriere;
transform.eulerAngles = new Vector3(0, 180, 0);
Move(speed);
}
// Même principe pour la droite et la gauche
else
{
DiPlayer = direction.Rien;
transform.Translate(Vector3.forward * 0 * speed);
}
}
void Move(float speed)
{
transform.Translate(Vector3.forward * Time.deltaTime * speed);
}
Tu peux voir le résultat de mon code ici :
Au début j'appuie sur la touche pour chaque mouvement, ensuite je reste appuyer.
C'est tard, j'avais pas d'autre idée en tête, je suis pas sûr que ça soit la meilleure solution, mais au moins ça fonctionne.
using System.Collections;
using UnityEngine;
public class Deplacement : MonoBehaviour
{
[SerializeField]
private float speed = 0.1f;
[SerializeField]
private float moveLength = 1;
[SerializeField]
private bool canMove = true;
private Vector3 startPosition;
void FixedUpdate()
{
if (canMove)
{
if (Input.GetKey(KeyCode.UpArrow)) // Quelle touche est pressée par le joueur?
{
transform.eulerAngles = new Vector3(0, 0, 0); // Rotation
StartCoroutine(Move(Direction.Devant)); // Start moving
}
else if (Input.GetKey(KeyCode.DownArrow))
{
transform.eulerAngles = new Vector3(0, 180, 0);
StartCoroutine(Move(Direction.Derriere));
}
}
}
// Coroutine to Move
private IEnumerator Move(Direction direction)
{
canMove = false; // forbid other movements
Vector3 startPosition = transform.position;
Vector3 endPosition = transform.position + (direction.ToVector3() * moveLength); // Calculate the end position
while (!transform.position.Equals(endPosition))
{
Vector3 newPosition = Vector3.MoveTowards(transform.position, endPosition, Time.deltaTime * speed); // Interpolate
transform.position = newPosition; // set the new position
yield return null;
}
canMove = true; // accept other movements
}
}
public enum Direction { Rien, Devant, Derriere, Gauche, Droite };
public static class DirectionExtension
{
public static Vector3 ToVector3(this Direction dir)
{
if (dir == Direction.Devant)
return Vector3.forward;
else if (dir == Direction.Derriere)
return -Vector3.forward;
else
return Vector3.zero;
}
}
Merci beaucoup !
J'avais essayé un script avec ce principe mais ça ne marchait absolument pas, je comprends mieux pourquoi
Le seul problème c'est que ça créer un bug quand le personnage heurt un mur. Il y aurait un moyen de regarder s'il y a un obstacle devant avant d'avancer
Aussi, sur cette ligne, à quoi sert le "this" ?public static Vector3 ToVector3(this Direction dir)
Le 29 avril 2018 à 10:46:20 Hytrq a écrit :
Merci beaucoup !
J'avais essayé un script avec ce principe mais ça ne marchait absolument pas, je comprends mieux pourquoi
Le seul problème c'est que ça créer un bug quand le personnage heurt un mur. Il y aurait un moyen de regarder s'il y a un obstacle devant avant d'avancer
Si tu as un tableau ou n'importe quoi où tu stockes le contenu de ta carte, c'est extrêmement simple, mais je suppose que non.
Ce que tu peux faire, c'est, avant de se déplacer, tu fais un Raycast. Avec ça, tu sauras s'il y a un collider (j'imagine que seul tes obstacles ont des colliders).
Le 29 avril 2018 à 10:46:20 Hytrq a écrit :
Aussi, sur cette ligne, à quoi sert le "this" ?public static Vector3 ToVector3(this Direction dir)
C'est une méthode d'extension, le but c'est juste d'être utilisé plus simplement. En gros, ça te permet d'appeler une fonction directement sur une enum : direction.ToVector3()
Sans ça, tu serai obligé de faire Direction.ToVector3(direction)
.
Merci pour les explications !
Je vais essayer de fouiller un peu la méthode avec le tableau, ça m'a l'air utile
Bonjour à tous, j'ai un petit soucis avec les AssetBundles :
WWW www = new WWW(Application.dataPath + "/AssetBundles/immeubles");
Quand j'utilise la ligne suivante le bundle se charge dans l'éditeur mais mais dans la version build, quand j'utilise le chemin absolu ça fonctionne dans les deux cas, si quelqu'un pouvait m'expliquer pourquoi. J'ai cherché sur le net mais ça n'a pas été concluant.
Je voulais utiliser les bundles pour remplacer l'utilisation du dossier resources qui est pas tellement conseillée selon la doc.