CRÉEZ VOTRE MONDE
Joueurs et Personnages : Basiq...

Personnage ZEPETO

17min

ZEPETOCharacter est l'unité de base de l'instance de personnage ZEPETO pour le chargement dans une scène mondiale.

Pour contrôler le ZepetoCharacter, ajoutez la déclaration d'importation suivante au script.

TypeScript




API ZepetoCharacter

Cette API crée et supprime des instances de personnages ZEPETO, y compris les composants de contrôleur d'animateur et de contrôleur de personnage.

API

Description

CreateByZepetoId(zepetoId: string, spawnInfo: SpawnInfo, complete: System.Action$1)

Utilisez un ID ZEPETO pour générer une instance de personnage ZEPETO. Principalement utilisé pour la création de personnages NPC.

CreateByUserId(userId: string, spawnInfo: SpawnInfo, complete: System.Action$1)

Créez une instance de personnage ZEPETO avec UserId. Principalement utilisé pour la création de personnages NPC.

RemoveCharacter(character: ZepetoCharacter)

Supprimez l'instance de personnage.



Cette API crée des instances de modèle de personnage ZEPETO, à l'exclusion des composants de contrôleur d'animateur et de contrôleur de personnage.

  • ZEPETO ID : C'est la valeur d'ID que l'utilisateur spécifie directement et utilise dans l'application ZEPETO.
  • User ID : C'est une valeur d'ID unique qui distingue les utilisateurs au sein du système ZEPETO, et ce n'est pas une valeur exposée sur l'interface utilisateur. Vous pouvez le vérifier à l'aide d'un script.



Si vous êtes intéressé par l'API ZepetoCharacter, consultez la documentation :



Créer/Supprimer un personnage

TypeScript




Si vous exécutez l'exemple, vous pouvez voir que le CharacterModel à gauche est créé sans les composants Animator Controller et Character Controller comme indiqué ci-dessous.

Document image




Contrôler le personnage

Une interface où vous pouvez contrôler directement le personnage sera fournie par le script d'une instance de personnage dans une scène.

API

Description

MoveToPosition(position : Vector3)

Déplace le personnage à la position.

MoveContinuously(direction : Vector3)

Déplace continuellement (mise à jour) dans la direction où le personnage regarde.

MoveContinuously(direction : Vector2)

Déplace continuellement (mise à jour) dans la direction où le personnage regarde.

StopMoving()

Empêche le personnage de se déplacer.

Jump()

Le personnage saute à la puissance de saut définie.

DoubleJump()

Le personnage effectue un double saut avec la puissance de double saut actuellement définie. (Applicable uniquement lors de l'utilisation de MotionController V2)

Teleport(position: UnityEngine.Vector3, rotation: UnityEngine.Quaternion)

Le personnage se déplace instantanément vers la transformation.

SetGesture(gesture: UnityEngine.AnimationClip)

Pour le AnimationClip spécifié, le mouvement du personnage est joué. Pendant que SetGesture est en cours, les entrées de contrôle de l'utilisateur ne sont pas appliquées au personnage. Lorsque l'option de boucle de AnimationClip est activée, elle continue à jouer jusqu'à ce que CancelGesture() soit appelé.

CancelGesture()

Arrête la lecture de l'Animation Clip actuellement en cours via SetGesture(). Lorsque CancelGesture() est exécuté, l'entrée de contrôle de l'utilisateur est à nouveau appliquée au contrôle du personnage.

Exemple de code de caractère de contrôle.

TypeScript




Si vous exécutez l'exemple, vous pouvez voir que le personnage cloné effectue les actions spécifiées dans l'ordre comme suit.

Document image


📘 Veuillez vous référer au guide suivant. [Créer un PNJ]



État de mouvement

L'API liée à l'état de mouvement du personnage ZEPETO est la suivante :

API

Description

motionState.useDoubleJump = (boolean);

Définir si le personnage peut utiliser le DoubleJump.

motionState.doubleJumpPower = (number);

Définir la puissance du DoubleJump du personnage.

motionState.useLandingRoll = (boolean);

Définir si le personnage utilise le LandingRoll.

motionState.landingRollSpeed = (number);

Définir la valeur de vitesse du LandingRoll du personnage.

motionState.useMoveTurn = (boolean);

Définir si le personnage utilise MoveTurn.

motionState.Gravity = (number);

Définir la valeur de gravité du personnage.

motionState.CurrentJumpState

Vous pouvez vérifier l'état actuel de saut du personnage. - Aucun = -1, JumpIdle = 0, JumpMove = 1, JumpDash = 2, JumpDouble = 3

motionState.CurrentLandingState

Vous pouvez vérifier l'état actuel d'atterrissage du personnage. - Aucun = -1, LandingSlight = 0, LandingDeep = 1, LandingRoll = 2

motionState.CurrentMoveState

Vous pouvez vérifier l'état actuel de mouvement de votre personnage. - Aucun = -1, MoveWalk = 0, MoveRun = 1

Exemple de code d'état de mouvement

TypeScript




Contrôler l'animateur de personnage ZEPETO

API pour contrôler l'animateur de personnage ZEPETO

API

Description

StateMachine.constraintStateAnimation

À partir de la version 1.6.0 de ZEPETO.World, la transition de l'animation jouée dans CharacterStateMachine peut être activée/désactivée selon l'état de mouvement de CharacterState V2. - vrai : Désactiver ZepetoCharacter.CurrentState, qui est affecté par l'entrée du contrôleur, et contrôler le clip d'animation souhaité.

👍 Exemple d'utilisation de constraintStateAnimation

  • Vous voulez que votre personnage utilise une animation de natation au lieu d'une animation de marche. Vous pouvez appliquer un clip d'animation de natation à un nouvel état et fixer l'état via constraintStateAnimation.
  • Si vous souhaitez utiliser une animation de geste tout en déplaçant un personnage, vous pouvez appliquer un clip d'animation de geste à un nouvel état et déplacer le personnage avec l'état fixé en utilisant constraintStateAnimation.
  • Cela peut être utilisé lorsque vous souhaitez jouer de force une animation spécifique tout en ignorant temporairement les valeurs des paramètres appliqués à l'état de l'animateur.



ZepetoAnimator

Les fonctions Animator de UnityEngine sont disponibles sous la forme de ZepetoAnimator.

Par exemple, si vous souhaitez définir une valeur entière pour un paramètre "État" spécifique de l'Animator de personnage, vous pouvez utiliser :

TypeScript


Pour une utilisation plus détaillée, veuillez vous référer à la documentation de l'Animator de UnityEngine et au script d'exemple ci-dessous.



Exemple de code pour contrôler l'Animator de personnage ZEPETO

Un exemple de contrôle de l'Animator d'un personnage ZEPETO local contrôlé par le joueur.

TypeScript




Si vous exécutez l'exemple, vous pouvez voir que lorsque la valeur de StateMachine.constraintStateAnimation est True, la transition de l'Animation jouée dans CharacterStateMachine est Off.

Si vous définissez la valeur de StateMachine.constraintStateAnimation sur False, elle reviendra à son état d'origine.

Document image




Contrôler CharacterShadow

À partir de la version 1.11.3 du package ZEPETO.CharacterController, une interface a été ajoutée pour accéder à l'objet ZepetoCharacter Shadow.

Spécifications de l'API :

Interface du composant CharacterShadow


cible

- Représente l'objet qui sert de référence pour ajuster la transformation de l'objet CharacterShadow. - Par défaut, le personnage ZEPETO est défini comme la cible. La transformation de l'objet CharacterShadow est ajustée en fonction du bas du personnage spécifié.

autoSyncTransform

- Une valeur de drapeau qui détermine si la position de l'ombre doit être ajustée. - La valeur par défaut est vraie.

Avec cela, vous pouvez contrôler l'ombre du personnage Zepeto à l'exécution. Ci-dessous se trouve un exemple de code qui utilise un interrupteur pour activer et désactiver l'ombre.

TypeScript




Document image