Personnage ZEPETO
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.
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 :
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.
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. |
Si vous exécutez l'exemple, vous pouvez voir que le personnage cloné effectue les actions spécifiées dans l'ordre comme suit.
📘 Veuillez vous référer au guide suivant. [Créer un PNJ]
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 |
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.
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 :
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.
📘 UnityEngine Animator https://docs.unity3d.com/ScriptReference/Animator.html
Un exemple de contrôle de l'Animator d'un personnage ZEPETO local contrôlé par le joueur.
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.
À 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 :
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.