Comment contrôler les mouvements humains dans 3DEXCITE à l'aide de JavaScript

13 février 2025 6 minutes de lecture
Partager

Mouvements humains contrôlés par clavier dans 3DEXCITE

Dans l' 3DEXCITE Creative Experience , vous pouvez faire déplacer un personnage humain le long d'une trajectoire prédéfinie en appuyant sur une touche du clavier. Pour ce faire, commencez par configurer le comportement de mouvement, puis créez un script d'événement et enfin, configurez un scénario dans Storytelling. Ce guide vous accompagnera pas à pas dans l'activation du contrôle des déplacements humains au clavier dans 3DEXCITE, vous permettant ainsi de contrôler précisément les mouvements de votre personnage.

Passons en revue le processus étape par étape !

Étape 1 :Importer le modèle humain

Avant toute chose, nous devons introduire un personnage humain dans la scène.

  1. Ouvrez votre scène dans Creative Experience.
  2. Ensuite, cliquez sur Importer et sélectionnez un modèle humain parmi les ressources disponibles.
  3. Une fois le modèle importé, vous devez ensuite positionner le personnage humain à l'endroit où vous souhaitez qu'il commence.

Étape 2 : Ajouter un comportement de mouvement

Maintenant que le modèle humain est en place, nous pouvons nous concentrer sur l'ajout du comportement de mouvement.

  1. Tout d'abord, sélectionnez le sujet humain dans la scène.
  2. Ensuite, allez dans l' Propriétés .
  3. Ensuite, cliquez sur Ajouter une bibliothèque et choisissez Comportement de mouvement humain.
  4. Attribuez ce comportement au modèle humain.

De ce fait, l'humain pourra se déplacer le long d'un chemin en réponse à l'événement programmé.

Figure 1 : Comportement moteur humain – Creative Experience

Étape 3 : Créer un chemin pour l'humain

Avant de passer à la scénarisation du mouvement, définissons d'abord le chemin que suivra l'humain.

  1. Tout d'abord, rendez-vous dans l' Essentiels .
  2. Ensuite, cliquez sur « Tracé » et commencez à dessiner votre tracé dans la scène.
  3. Si nécessaire, ajustez la forme du tracé pour assurer un mouvement fluide.
  4. Enfin, enregistrez le chemin et assurez-vous qu'il est correctement connecté à la scène.

Ce chemin servira de guide de déplacement lorsque le script sera déclenché.

Figure 2 : Créer un chemin pour l'humain

Techniques JavaScript pour la saisie au clavier dans 3DEXCITE

Étape 4 : Créer un acteur scénarisé

À ce stade, nous devons configurer un acteur scripté pour gérer les entrées clavier et déclencher les mouvements du personnage humain.

Figure 3 : Création d'un acteur scripté en JavaScript
  1. Commencez par sélectionner Créer un acteur scripté dans les logiques .
  2. Copiez et collez le code JavaScript suivant dans l'éditeur de script :

var TriggerEventClass = function () {
EP.Event.apply(this, arguments);
};

TriggerEventClass.prototype = Object.create(EP.Event.prototype);
TriggerEventClass.prototype.constructor = TriggerEventClass;
TriggerEventClass.prototype.type = 'TriggerEventType';

if (!STU.TriggerEvent) {
STU.TriggerEvent = TriggerEventClass;
}

if (!EP.EventServices.getEventByType(TriggerEventClass.prototype.type)) {
EP.EventServices.registerEvent(TriggerEventClass);
}

beScript.onStart = function () {
// Code à exécuter au démarrage du script.
};

beScript.onStop = function () {
// Code à exécuter lorsque l'expérience s'arrête.
};

beScript.execute = function (context) {
// Exécuté à chaque image.
// 'context.deltaTime' fournit le temps écoulé depuis la dernière image.
};

beScript.onAllKeyboardRelease = function (iEvent) {
// Décommentez la ligne suivante pour déboguer les relâchements de touches.
// console.log(iEvent.key);

if (iEvent.key === this.KeyCode) {
let newEvent = new STU.TriggerEvent();
this.actor.dispatchEvent(newEvent);
}
};

 

Étape 5 : Comprendre le code JavaScript

Analysons ensemble ce que fait ce script et comment il fonctionne dans Creative Experience.

1️⃣ Création d'un événement personnalisé

var TriggerEventClass = function () {
EP.Event.apply(this, arguments);
};

Ceci définit une classe d'événement personnalisée appelée TriggerEventClass. Elle étend la EP.Event , ce qui la rend reconnaissable comme un événement dans Creative Experience.

2️⃣ Mise en place du prototype d'événement

TriggerEventClass.prototype = Object.create(EP.Event.prototype);
TriggerEventClass.prototype.constructor = TriggerEventClass;
TriggerEventClass.prototype.type = 'TriggerEventType';

Ici, nous créons un prototype d'objet basé sur EP.Event et définissons un type d'événement personnalisé, TriggerEventType.

3️⃣ Enregistrement de l'événement personnalisé

if (!STU.TriggerEvent) {
STU.TriggerEvent = TriggerEventClass;
}

if (!EP.EventServices.getEventByType(TriggerEventClass.prototype.type)) {
EP.EventServices.registerEvent(TriggerEventClass);
}

Pour garantir un fonctionnement optimal, ce programme vérifie d'abord l'existence de STU.TriggerEvent. Si ce n'est pas le cas, il lui assigne notre classe TriggerEventClass . Il vérifie également que TriggerEventType est enregistré dans les services d'événements afin de pouvoir être déclenché ultérieurement.

4️⃣ Fonctions du cycle de vie des événements

beScript.onStart = function () {
// Code à exécuter au démarrage du script.
};

beScript.onStop = function () {
// Code à exécuter lorsque l'expérience s'arrête.
};

beScript.execute = function (context) {
// Exécuté à chaque image.
// 'context.deltaTime' fournit le temps écoulé depuis la dernière image.
};

Ces fonctions définissent le cycle de vie du script :

  • onStart: S'exécute au démarrage du script.
  • onStop: S'exécute lorsque l'expérience s'arrête.
  • exécuter: S'exécute à chaque image (utile pour les actions continues).
5️⃣ Gestion des entrées clavier

beScript.onAllKeyboardRelease = function (iEvent) {
// Décommentez la ligne suivante pour déboguer les relâchements de touches.
// console.log(iEvent.key);

if (iEvent.key === this.KeyCode) {
let newEvent = new STU.TriggerEvent();
this.actor.dispatchEvent(newEvent);
}
};

Cette fonction est déclenchée à chaque relâchement d'une touche. Elle vérifie si la touche relâchée correspond à notre KeyCode. Si c'est le cas, elle crée une nouvelle instance de l'événement personnalisé (STU.TriggerEvent) et la transmet à l'acteur.

Étape 6 : Configurer le capteur

Ensuite, pour détecter l'événement de pression sur la touche, nous devons configurer un capteur.

  1. Tout d'abord, allez dans l'onglet Capteurs et créez un nouveau capteur.
  2. Ensuite, définissez le type sur ÉVÉNEMENT.
  3. Ensuite, définissez l' ID sur TriggerEventType.
  4. Définissez l' alias sur Exécuté.
  5. Cliquez sur l' icône Lecture pour activer le capteur.
Figure 4 : Créer un capteur
Définir une propriété KeyCode

Autrement dit, pour préciser quelle touche déclenche le mouvement :

  1. Dans l' onglet Propriétés, cliquez sur Ajouter une nouvelle propriété.
  2. Définir le nom sur KeyCode.
  3. Définir le type sur Entier.
  4. Définissez la valeur sur 73 (ce qui correspond à la touche « I » dans le guide de l’API JavaScript).
Figure 5 : Créer des propriétés KeyCode

Étape 7 : Créer un scénario narratif

Après avoir configuré le capteur, nous définissons maintenant comment l'humain réagit à l'événement.

  1. Cliquez sur « Créer un scénario » sous l' « Narration » .
  2. Ajoutez un nouveau bloc « À chaque exécution de l'acteur de script »
  3. Définissez l'action sur Activation humaine.
  4. Ensuite, ajoutez un autre bloc pour le chemin de suivi humain.
  5. Reliez-les entre eux afin que, lorsque l'événement se produit, l'humain s'active et suive le chemin.
Figure 6 : Créer un scénario narratif

Étape 8 : Lancer l’expérience

Tout est prêt ! Maintenant, testons-le :

  • Cliquez sur « Jouer » pour lancer la simulation.
  • Appuyez touche I de votre clavier.
  • Ensuite, l'humain devrait commencer à suivre le chemin.

Conclusion

Dans ce tutoriel, nous avons détaillé le processus suivant :

  • Importer un modèle humain dans la scène.
  • Ajout d'un comportement de mouvement pour permettre le déplacement.
  • Créer un chemin que l'humain puisse suivre.
  • Écrire un script JavaScript pour détecter les entrées clavier.
  • Configurer un capteur pour déclencher un événement.
  • Enfin, utiliser la narration pour faire réagir l'utilisateur lorsqu'il appuie sur la touche « Je ».

De plus, cette méthode peut être étendue pour créer des interactions plus complexes, comme le déclenchement d'animations, le contrôle de plusieurs personnages ou l'intégration d'événements supplémentaires.

Enfin, dans le prochain article de blog, nous explorerons l'automatisation des postures et des gestes à l'aide de JavaScript.

Postures humaines en 3DEXCITE

Hanen Bdioui
S'abonner
Notifier de
invité

1 Commentaire
Le plus ancien
Les plus récents Les plus populaires
rétrolien

Dans notre précédent article de blog, nous avons exploré comment faire suivre un chemin prédéfini à un humain à l'aide de JavaScript. Si vous l'avez manqué, consultez-le !

1
0
J'aimerais beaucoup avoir votre avis, n'hésitez pas à commenter.x