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 import { zepetocharacter } from 'zepeto character controller'; 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 veuillez vous référer au guide suivant \[ api zepeto character controller https //developer zepeto me/docs/character controller/ ] créer/supprimer un personnage import { zepetoscriptbehaviour } from 'zepeto script'; import { spawninfo, zepetocharacter, zepetocharactercreator } from 'zepeto character controller'; import { button } from 'unityengine ui'; import { gameobject, object, vector3 } from 'unityengine'; import { worldservice } from 'zepeto world'; export default class samplescript extends zepetoscriptbehaviour { public zepetoid string; public removeclonecharacterbutton button; public removeclonecharactermodelbutton button; private clonecharacter zepetocharacter; private clonecharactermodel gameobject; start() { // créer une nouvelle instance de la classe spawninfo const firstclonespawninfo = new spawninfo(); firstclonespawninfo position = new vector3(0,0,1); const secondclonespawninfo = new spawninfo(); secondclonespawninfo position = new vector3(0,0,3); // créer un `zepetocharacter` en utilisant zepetoid zepetocharactercreator createbyzepetoid(this zepetoid, firstclonespawninfo, (character zepetocharacter) => { this clonecharacter = character; }); // créer un `zepetocharactermodel` en utilisant zepetoid zepetocharactercreator createmodelbyzepetoid(this zepetoid, secondclonespawninfo, (object) => { this clonecharactermodel = object; }); // créer un `zepetocharacter` en utilisant userid / zepetocharactercreator createbyuserid(worldservice userid, new spawninfo(), (character zepetocharacter) => { this clonecharacter = character; }) // créer un `zepetocharactermodel` en utilisant userid zepetocharactercreator createmodelbyuserid(worldservice userid, new spawninfo(), (object) => { this clonecharactermodel = object; }) / // configurer un événement de clic pour le `removeclonecharacterbutton` pour supprimer le personnage cloné this removeclonecharacterbutton onclick addlistener(() => { zepetocharactercreator removecharacter(this clonecharacter); }); // configurer un événement de clic pour le `removeclonecharactermodelbutton` pour détruire le modèle de personnage cloné this removeclonecharactermodelbutton onclick addlistener(() => { object destroy(this clonecharactermodel); }); } } 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 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 import { zepetoscriptbehaviour } from 'zepeto script' import {spawninfo, zepetocharacter, zepetocharactercreator} from "zepeto character controller"; import { worldservice } from 'zepeto world'; import {animationclip, vector3, waitforseconds } from 'unityengine'; export default class characteractionsample extends zepetoscriptbehaviour { public targetposition vector3; public dancegesture animationclip; private clonecharacter zepetocharacter; start() { // créer un `zepetocharacter` en utilisant `zepetocharactercreator createbyuserid` zepetocharactercreator createbyuserid(worldservice userid, new spawninfo(), (character zepetocharacter) => { // assigner le personnage créé à ` clonecharacter` this clonecharacter = character; // exécuter `actioncoroutine()` en tant que coroutine this startcoroutine(this actioncoroutine()); }) } actioncoroutine() { yield new waitforseconds(3); // déplacer ` clonecharacter` vers `targetposition` après avoir attendu 3 secondes this clonecharacter movetoposition(this targetposition); yield new waitforseconds(1); // faire sauter ` clonecharacter` après avoir attendu 1 seconde this clonecharacter jump(); yield new waitforseconds(1); // définir le geste de ` clonecharacter` sur `dancegesture` après avoir attendu 1 seconde this clonecharacter setgesture(this dancegesture); yield new waitforseconds(3); // annuler le geste de ` clonecharacter` après avoir attendu 3 secondes this clonecharacter cancelgesture(); } } 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 docid\ gkj80guzpwsg2w7wjhxwk ] é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 import { zepetoscriptbehaviour } from 'zepeto script' import { custommotiondata, spawninfo, zepetocharacter, zepetocharactercreator, zepetoplayer, localplayer, zepetoplayers } from "zepeto character controller"; import { worldservice } from 'zepeto world'; import { button } from 'unityengine ui'; export default class motionsample extends zepetoscriptbehaviour { public jumpbutton button; private clonecharacter zepetocharacter; start() { zepetocharactercreator createbyuserid(worldservice userid, new spawninfo(), (character zepetocharacter) => { // assigner le personnage créé à ` clonecharacter` this clonecharacter = character; // définir diverses propriétés de `motionstate` dans ` clonecharacter` this clonecharacter motionstate usedoublejump = true; this clonecharacter motionstate usedoublejump = true; this clonecharacter motionstate uselandingroll = true; this clonecharacter motionstate usemoveturn = true; this clonecharacter motionstate gravity = 1; }) this jumpbutton onclick addlistener(() => { this clonecharacter jump(); }); } update() { // vérifier si ` clonecharacter` n'est pas nul if (this clonecharacter != null) { // afficher l'état de saut actuel de `motionstate` dans ` clonecharacter` console log(`état de saut actuel ${this clonecharacter motionstate currentjumpstate}`); // afficher l'état d'atterrissage actuel de `motionstate` dans ` clonecharacter` console log(`état d'atterrissage actuel ${this clonecharacter motionstate currentlandingstate}`); // afficher l'état de mouvement actuel de `motionstate` dans ` clonecharacter` console log(`état de mouvement actuel ${this clonecharacter motionstate currentmovestate}`); } } } 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 zepetoanimator setinteger("state", 1); 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 https //docs unity3d com/scriptreference/animator html 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 import { toggle } from 'unityengine ui'; import { spawninfo, zepetocharacter, zepetoplayers } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script' import { worldservice } from 'zepeto world'; import { animator } from "unityengine"; export default class samplescript extends zepetoscriptbehaviour { public testtogle toggle; private zepetocharacter zepetocharacter; start() { // local player creation code (please delete this section if you are already using local player creation code elsewhere) zepetoplayers instance createplayerwithuserid(worldservice userid, new spawninfo(), true); // code for setting the created local player as a zepeto character zepetoplayers instance onaddedlocalplayer addlistener(() => { this zepetocharacter = zepetoplayers instance localplayer zepetoplayer character; // setinteger example const statetype = animator stringtohash("state"); this zepetocharacter zepetoanimator setinteger(statetype, 30); // statemachine constraintstateanimation this testtogle onvaluechanged addlistener((isactive bool)=>{ this zepetocharacter statemachine constraintstateanimation = isactive; console log(isactive); }); }); } } 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 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 class charactershadow extends unityengine monobehaviour { public target unityengine transform; public autosynctransform boolean; } 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 import { zepetoscriptbehaviour } from 'zepeto script' import { zepetocharacter, charactershadow, zepetoplayer, zepetoplayers } from 'zepeto character controller'; import { toggle } from 'unityengine ui'; export default class shadowcontroller extends zepetoscriptbehaviour { public shadowtoggle toggle; private charactershadow charactershadow; private localcharacter zepetocharacter; start() { zepetoplayers instance onaddedlocalplayer addlistener(() => { this localcharacter = zepetoplayers instance localplayer zepetoplayer character; this charactershadow = this localcharacter context getcomponentinchildren\<charactershadow>(); console log(this charactershadow\ autosynctransform); }); this shadowtoggle onvaluechanged addlistener((isactive bool)=>{ this charactershadow\ gameobject setactive(isactive); }); } }