le Character Controller

Le contrôleur de caractères (Character Controller) est principalement utilisé à la troisième personne ou la première personne du contrôle du joueur (Player controller) qui ne fait pas usage de la physique RigidBody.

Propriétés

Propriété Fonction
Slope LimitLimite le collisionneur (collider) à seulement grimper les pentes qui sont moins raides (en degrés) que la valeur indiquée.
Step OffsetLe personnage ne montera un escalier que s'il est plus près du sol que la valeur indiquée. Cela ne doit pas être supérieur à la hauteur du contrôleur de caractères (Character Controller) où sinon ça généra une erreur.
Skin widthDeux collisionneurs (collider) peuvent pénétrer l'un l'autre aussi profond que leur Skin width. Une faible largeur peut provoquer le blocage du caractère. Un bon réglage est de rendre cette valeur à 10% du rayon.
Min Move DistanceSi le personnage tente de se déplacer au-dessous de la valeur indiquée, il ne pourra plus se déplacer. Dans la plupart des situations, cette valeur devrait être laissée à 0.
CenterCela compensera le collisionneur de capsule (Capsule Collider) dans l'espace, et n'influera pas sur la façon dont le personnage pivote.
RadiusLongueur du rayon de collision de la capsule. C'est essentiellement la largeur du collisionneur.
HeightLa taille du collisionneur de capsule du personnage. En modifiant, cela réduira la collision le long de l'axe Y dans les directions positive et négative.
Le Character Controller
Le Character Controller.

Détails

Les contrôles traditionnels de la première personne de style Doom ne sont pas physiquement réalistes. Le personnage court 90 milles (144,841 Kilomètre) par heure et s'arrête immédiatement. Parce qu'il est si irréaliste, l'utilisation de Rigidbodies et de la physique pour créer ce comportement est impraticable. La solution est le contrôleur de caractères spécialisés. Il s'agit simplement d'un collisionneur en forme de capsule qui peut se déplacer dans une certaine direction à partir d'un script. Le contrôleur effectuera alors le mouvement mais sera contraint par des collisions. Il glisse le long des murs, monte les escaliers (Si elles sont inférieures au Step Offset) et marche sur des pentes dans la limite de Slope Limit.

Le contrôleur ne réagit pas à ses propres forces et il ne pousse pas automatiquement les Rigidbodies.

Si vous souhaitez pousser des Rigidbodies ou des objets avec le contrôleur de caractères, vous pouvez appliquer des forces à tout objet sur lequel il se heurte via la fonction OnControllerColliderHit().

D'autre part, si vous voulez que votre personnage de joueur soit affecté par la physique, il est préférable d'utiliser un Rigidbody au lieu du Character Controller.

Réglage de votre personnage

Vous pouvez modifier la hauteur et le rayon pour adapter le maillage (mesh) de votre personnage. Il est recommandé de toujours utiliser environ 2 mètres pour un caractère humain. Vous pouvez également modifier le centre de la capsule si votre point de pivotement n'est pas au centre exact du personnage.

Le Step Offset peut également affecter cela, assurez-vous que cette valeur est comprise entre 0,1 et 0,4 pour un humain de 2 mètres de taille.

La Slope Limit ne devrait pas avoir une valeur trop faible. Généralement, l'utilisation d'une valeur de 90 degrés fonctionne mieux. Le Character Controller ne pourra pas gravir les murs en raison de la forme de la capsule.

Ne vous coincez pas

Le Skin Width est l'une des propriétés les plus critiques lors de l'optimisation de votre contrôleur de personnage. Si votre personnage est coincé, il est très probable que votre Skin Width est trop faible.

C'est une bonne pratique de garder votre Skin Width au moins supérieure à 0,01 et plus de 10% du rayon.

Nous vous recommandons de garder Min Move Distance à 0.

Astuces

    Voici quelques astuces qui vous seront utiles :
  • Essayez d'ajuster votre Skin Width si vous trouvez que votre personnage se coince fréquemment.
  • Le Character Controller peut affecter les objets en utilisant la physique si vous écrivez vos propres scripts.
  • Le Character Controller ne peut pas être affecté par des objets à travers la physique.
  • Notez que la modification des propriétés du contrôleur de caractères dans l'inspecteur va recréer le contrôleur dans la scène, ainsi, tous les Trigger seront perdu. Et vous ne recevrez aucun message OnTriggerEntered jusqu'à ce que le contrôleur soit de nouveau déplacé.

les réactions

Pour laisser un avis, vous devez être inscrit et connecté

Se connecter