Créer et contrôler des PNJ
Learn how to create NPCs from ZEPETO Characters.
Apply the sample scripts provided for each feature to add the NPC of your choice to your World.
Créez un NPC à l'aide d'un identifiant ZEPETO.
- L'apparence du NPC et les objets qu'il porte seront identiques à l'identifiant ZEPETO saisi.
- Il est recommandé de créer un personnage ZEPETO avec une apparence spécifique avant de créer un NPC.
- Implémentez par défaut le code de création de personnage ZEPETO dans votre Scène.
📘 Veuillez vous référer au guide suivant. [Créer un personnage ZEPETO]
- Créer une hiérarchie > Créer un objet vide et le renommer NPC.
- Un objet pour stocker l'emplacement où le NPC sera créé.
- Définir la position, la rotation.
1) Créez le projet > Create > ZEPETO > TypeScript et renommez-le en NPCCreator.
2) Ecrivez un exemple de script comme ci-dessous.
Le déroulement du script est le suivant :
- Start()
- Créer un NPC dans l'emplacement de l'objet NPC en utilisant la fonction ZepetoCharacterCreator.CreateByZepetoId() et le sauvegarder dans _npc.
3) Une fois que vous avez fini d'écrire le script, ajoutez-le à l'objet NPC.
4) Attribuer l'identifiant Zepeto dans l'inspecteur.
- Zepeto Id : L'ID ZEPETO du NPC.
5) Appuyez sur le bouton de lecture pour exécuter et le NPC sera créé.
6) Ajoutez un objet de localisation de NPC de la même manière, et ajoutez un script de NPC pour créer facilement plusieurs NPC.
Vous pouvez apposer des étiquettes sur vos NPC pour les distinguer des joueurs.
1) Créez un Hierachy > UI > Canvas et renommez-le PrefNameTagCanvas.
- Réglez le mode de rendu sur World Space.
2) Créez Hierarchy> UI > Text comme enfant de PrefNameTagCanvas et renommez-le en NameTagText.
- Texte représentant le nom.
- Ajoutez un composant "Content Size Fitter" pour que le texte ait la bonne taille.
3) Une fois que vous avez terminé, faites-le glisser vers la fenêtre de projet pour en faire un Prefab, puis supprimez le PrefNameTagCanvas qui se trouve encore dans le surligneur.
1) Créez un projet > Create > ZEPETO > TypeScript et renommez-le NPCCreatorWithNameTag.
2) Rédigez un exemple de script comme indiqué ci-dessous.
Le déroulement du script est le suivant :
- Start()
- Appeler la fonction personnalisée SetNameTag().
- SetNameTag()
- Génère dynamiquement un badge pour le NPC et ajuste la position du badge généré au-dessus de la tête du NPC.
- Définit le texte à l'intérieur de la balise de nom.
- Update()
- Appelez la fonction personnalisée UpdateCanvasRotation() pour faire pivoter le canevas en fonction de la caméra.
3) Lorsque vous avez terminé d'écrire le script, ajoutez-le à l'objet NPC.
4) Dans l'inspecteur, assignez les éléments Zepeto Id, Name Tag, Name Tag Prefab, et Name Tag Y Offset.
- Name Tag (étiquette de nom) : Le nom qui apparaîtra sur le badge du NPC.
- Préfabriqué pour badge : Le préfabriqué de la toile de l'étiquette de nom.
- Name Tag Y Offset : Une variable qui stocke la valeur de décalage de l'axe des y pour l'objet Name Tag Canvas. Lorsque vous placez le badge au-dessus de la tête du personnage, vous pouvez ajuster la distance entre le personnage et le badge.
5) appuyez sur le bouton de lecture pour l'exécuter, et le NPC avec l'étiquette de nom sera créé.
Vous pouvez contrôler les actions des NPC.
Utilisez l'API de personnage ZEPETO pour faire sauter le NPC.
Vous pouvez utiliser l'API des caractères ZEPETO pour mettre en œuvre un plus grand nombre de comportements.
📘 Veuillez vous référer au guide suivant. [ZEPETO Character]
1) Allez dans Projet > Créer > ZEPETO > Créer TypeScript et renommez-le en NPCJump.
2) Rédigez un exemple de script comme indiqué ci-dessous.
Le déroulement du script est le suivant :
- Start()
- Appeler la coroutine JumpCoroutine().
- JumpCoroutine()
- Appelez la méthode Jump() pour que le personnage NPC saute toutes les 5 secondes.
3) Une fois que vous avez fini d'écrire le script, ajoutez-le à l'objet NPC.
4) Appuyez sur le bouton Play et le NPC sautera.
Utilisez le contrôleur d'animation pour implémenter des gestes pour les NPC.
Vous pouvez utiliser le contrôleur d'animation pour mettre en œuvre une plus grande variété de comportements.
📘 Unity Animator Controller https://docs.unity3d.com/Manual/class-AnimatorController.html
- Utilisez le guide suivant pour préparer le clip d'animation gestuelle que votre NPC doit réaliser.
📘 Veuillez vous référer au guide suivant.
1) Project > Create > Create un contrôleur d'animateur et renommez-le en NPCAnimatorController.
2) Sous l’onglet Animateur, Créer un State > Empty.
3) Dans l'inspecteur, renommez-le de manière appropriée et affectez le clip d'animation à Motion.
1) Créez un projet > Create > ZEPETO > TypeScript et renommez-le NPCGesture.
2)Rédigez un exemple de script comme indiqué ci-dessous.
Le déroulement du script est le suivant :
- Start()
- Récupère le composant Animator de l'objet NPC et le place sur le contrôleur d'animation spécifié par la variable npcAnimator.
3) Une fois le script écrit, ajoutez-le à l'objet Location où le PNJ sera créé.
4) Dans l'inspecteur, assignez le Zepeto Id, Npc Animator.
- Npc Animator : Le contrôleur d'animation du NPC.
5) Appuyez sur le bouton "play" pour l'exécuter et vous verrez le NPC faire un geste.
6) Vous pouvez appliquer ce principe pour créer des NPC qui effectuent d'autres actions que des gestes et des sauts.
Bulles sur les NPC
You can create a Canvas above an NPC's head, display an image or text, and make it bubble.
1) Créez un Hierarchy> UI > Canvas et renommez-le PrefSpeechBubbleCanvas.
- Réglez le mode de rendu sur World Space.
2) Créez un Hierarchy> UI > Image comme enfant de PrefSpeechBubbleCanvas et renommez-le SpeechBubbleImage.
- Il s'agit de l'image qui constituera l'arrière-plan de la bulle.
3) Créez Hierarchy> UI > Text comme enfant de SpeeachBubbleImage et renommez-le en SpeeachBubbleText.
- Il s'agit du texte à l'intérieur de la bulle.
- Ajoutez un composant "Content Size Fitter" pour que le texte ait la bonne taille.
4) Une fois que vous avez terminé, faites-le glisser vers la fenêtre de projet pour en faire un Prefab, puis supprimez le PrefSpeechBubbleCanvas qui se trouve encore dans le Highlight.
1) Créez un projet > Create > ZEPETO > TypeScript et renommez-le NPCSpeechBubble.
2) Rédigez un exemple de script comme indiqué ci-dessous.
Le déroulement du script est le suivant :
- Start()
- Appeler la fonction personnalisée SetBubble().
- SetBubble()
- Créer un canevas de bulle de dialogue (speechBubblePrefab) et positionner la bulle créée au-dessus de la tête du PNJ.
- Appelez la fonction personnalisée SetBubbleText() pour définir le texte à l'intérieur de la bulle.
- SetBubbleText()
- Active le canevas de bulle de dialogue du PNJ (_speechBubbleObject).
- Affiche la chaîne donnée en paramètre (bubbleText) à l'intérieur de la bulle de dialogue.
- Update()
- Appelez la fonction personnalisée UpdateCanvasRotation() pour faire pivoter le canevas en fonction de la caméra.
3) Lorsque vous avez terminé d'écrire le script, ajoutez-le à l'objet Location où le NPC sera créé.
4) Dans l'inspecteur, attribuez l'identifiant Zepeto, le texte de la bulle, le préfabriqué de la bulle et le décalage Y de la bulle.
- Texte de la bulle de dialogue : Cette variable stocke le dialogue que le NPC dira dans la bulle. Dans notre exemple, nous stockons le dialogue suivant : "Hello World".
- Préfab. de la bulle de dialogue : Cette variable stocke le préfabriqué de l'objet de jeu Speech Bubble Canvas.
- Décalage Y de la bulle de dialogue : Cette variable stocke la valeur de décalage de l'axe des y pour le GameObject Speech Bubble Canvas. Cela vous permet d'ajuster la distance entre le personnage et la bulle de dialogue lorsque vous placez la bulle de dialogue au-dessus de la tête du personnage.
5) appuyez sur le bouton "play" pour l'exécuter, et vous verrez une bulle de dialogue flotter au-dessus de la tête du NPC.
L'interaction avec les NPC permet de créer un contenu amusant.
Dans ce guide, nous allons utiliser un exemple pour implémenter une bulle de dialogue qui change lorsqu'un NPC est approché.
1) Ajoutez un composant Collider à votre objet pour interagir avec le NPC et vérifiez isTrigger.
2) Redimensionner le collisionneur de manière à ce que le joueur puisse interagir avec le NPC.
1) Créez le projet > Create > ZEPETO > TypeScript et renommez-le en NPCInteraction.
2) Rédigez un exemple de script comme indiqué ci-dessous.
Le déroulement du script est le suivant :
- OnTriggerEnter(), OnTriggerExit()
- Lorsque le déclencheur est détecté en entrant dans la zone de collision, appelez la fonction personnalisée SetBubbleText() pour définir le texte à l'intérieur de la bulle vocale sur changedSpeechBubbleText.
- Lorsqu'elle quitte la zone de collision, appelez la fonction personnalisée SetBubbleText() pour définir le texte à l'intérieur de la bulle en speechBubbleText.
3) Lorsque vous avez terminé d'écrire le script, ajoutez-le à l'objet Location où le NPC sera créé.
4) Dans l'inspecteur, attribuez l'identifiant Zepeto, le texte de la bulle, le préfabriqué de la bulle, le décalage Y de la bulle et la bulle modifiée.
- Texte de la bulle de dialogue : Cette variable stocke le dialogue que le NPC dira dans la bulle. Dans notre exemple, nous stockons le dialogue suivant : "Hello World".
- Préfab. de la bulle de dialogue : Cette variable stocke le préfabriqué de l'objet de jeu Speech Bubble Canvas.
- Décalage Y de la bulle de dialogue : Cette variable stocke la valeur de décalage de l'axe des y pour le GameObject Speech Bubble Canvas. Cela vous permet d'ajuster la distance entre le personnage et la bulle de dialogue lorsque vous placez la bulle de dialogue au-dessus de la tête du personnage.
- Changed Speech Bubble : Enregistre le dialogue qui sera affiché dans la bulle du NPC lorsque le joueur entrera dans la zone de collision du NPC.
5) appuyer sur play pour exécuter, et lorsque le joueur s'approche du NPC, le texte dans la bulle change.
Pour créer un format de dialogue, créez une interface utilisateur à l'aide d'un panneau.
Voici un exemple de dialogue simple composé de panneaux et de boutons.
Il s'agit d'un exemple de script qui ouvre des dialogues lors de l'interaction avec les NPC et les traite lorsque chaque bouton est pressé.
Appliquez ce principe pour mettre en place un contenu intéressant.