Table des matières

Ensembles 3D

Les ensembles 3D sont des éléments de code qui peuvent être insérés dans la scène à la place d'objets 3D. Ils sont utilisés lorsque l'on souhaite obtenir des éléments composites complexes qui forment une unité et qui doivent réagir comme un modèle unique. Les ensembles 3D peuvent contenir des éléments d'interaction, des animations et des clips audio. En outre, les ensembles 3D peuvent également interagir avec d'autres éléments dans une scène.

Exemple :

Les ensembles 3D sont créés avec AFRAME (https://aframe.io) dans le composant neo-code. En plus de toutes les possibilités offertes par AFRAME, de nombreux autres composants fournis par vrdoro peuvent être utilisés.

L'UI avec laquelle les éléments peuvent être adaptés peut être configurée par un attribut EditorConfig ou EditorConfigGlobal à chaque balise a-entity.

La syntaxe de l'EditorConfig est très vaste et est expliquée à l'aide d'exemples.

Aperçu

Paramètres du composant neo-code

  1. <String> nom: nom du composant néo-code
  2. <Boolean> enabled: Active/désactive le composant
  3. <String> code: sélecteur sur le bloc de code à exécuter (optionnel)
  4. <Array> params: noms des paramètres p0-p14 dans l'ordre séquentiel
  5. <String> p0…: valeur du paramètre correspondant
  6. <Number> codeRunDelay: délai d'exécution du bloc de code
  7. <Boolean> updateShadowMap: Active/désactive une mise à jour de la shadowMap après l'exécution du bloc de code

Analyse des valeurs des paramètres

Le type de paramètre par défaut est Chaîne. L'analyse syntaxique automatique a lieu dans les cas suivants :

  1. Valeur : 'true' ou 'false' → Booléen
  2. Valeur : '123.45' (valeur numérique unique) → '123.45' → '123.45' → '123.45' → '123.45'. Number
  3. Valeur : '0 1' (deux valeurs numériques séparées par un espace) → Number. Vector2
  4. Valeur : '0 1 2' (trois valeurs numériques séparées par des espaces) → Vector Vector3
  5. Valeur : 'val1, val2, val3' (valeurs séparées par des virgules) ou le nom du paramètre se termine par '[]'. → Tableau

Syntaxe de l'attribut editorConfig

La syntaxe suivante s'applique :

  1. La syntaxe générale est la suivante : editorConfig[Global]=`AttributeControl|[AttributeControl]*`
  2. Un AttributeControl se présente sous la forme suivante : Attributs=Domaine de valeurs ou ComponentName=Property:Domaine de valeurs
  3. Plage de valeurs : de~à ou bool ou color ou select

editorConfigGlobal vs. editorConfig

Les contrôles définis par editorConfigGlobal sont affichés dans la section supérieure 'Paramètres de la scène' de l'interface utilisateur du Room Viewer. Les valeurs editorConfig sont affichées pour chaque élément de la pièce sous Éléments de la pièce.

Attributs vs. Propriétés

Les valeurs pour les propriétés telles que Position ou Color sont des valeurs pour les attributs d'entité correspondants. Les attributs peuvent également être des composants qui possèdent à leur tour des attributs. Ceux-ci sont alors appelés (voir les documents AFRAME) Properties. Par exemple, le composant material (défini comme attribut d'une a-entity) a les propriétés src et color.

Grâce aux indications editorConfig, les valeurs configurables et les domaines de valeurs sont en général traités de la même manière pour les attributs et les propriétés. Ainsi, par exemple, une sélection de couleurs sur un a-plane avec color=color ou à la material-avec material=color:color peut être sélectionnée.

Dans la suite du texte, on parle généralement d'attributs, mais en règle générale, les déclarations s'appliquent également aux propriétés de composants.

Modifications des valeurs d'attributs

Il existe différents types de valeurs d'attributs :

  1. Valeurs numériques
  2. Valeurs booléennes
  3. Valeurs de couleur
  4. Valeurs fixes dans une liste de sélection

Valeurs numériques

Les valeurs numériques sont configurées à l'aide d'un curseur. La syntaxe est la suivante :

minValeur et maxValeur peuvent aussi être représentées par - peuvent être remplacées, ce qui signifie illimité.

Si minValue et maxValue sont égales (pour les vecteurs, la paire respective), alors aucune sélection n'est possible et la valeur est fixe.

Si la valeur max (impossible pour les vecteurs) est suivie d'une valeur numérique entre parenthèses, cela indique l'incrément. Ainsi, par exemple, signifie count=1~10(1)que seuls les nombres entiers compris entre 1 et 10 sont possibles.

Valeurs booléennes

Les valeurs de vérité (True ou False) peuvent être définies par la spécification de bool comme valeur.

Exemple :

Une case à cocher s'affiche alors dans l'IU.

Valeurs des couleurs

Les valeurs de couleur peuvent être modifiées en indiquant color comme valeur.

Exemple : la couleur :

Un élément de sélection de couleur est alors affiché dans l'UI.

Valeurs fixes dans une liste de sélection

Une liste de sélection peut être créée en indiquant les valeurs entre crochets, séparées par une virgule.

Exemple :

Un élément de sélection de couleur est alors affiché dans l'UI.

Labels

Les labels pour les éléments UI peuvent être ajoutés après la propriété, séparés par un tilde ('~'). Les labels sont alors indiqués en anglais. Si le dictionnaire contient une traduction pour le label, le mot est alors traduit dans la langue correspondante. Pour les mots séparés par un trait de soulignement ('_'), les différents mots sont traduits séparément et le trait de soulignement est remplacé par un espace.

Exemple : functionName~Info:bouton~show

Traductions

Les noms des labels, s'ils ne sont pas explicitement indiqués, résultent des noms d'attributs indiqués dans l'editorConfig.

Création de clés de traduction

La formation des clés suit les règles suivantes (dans les exemples, la clé est indiquée en gras après le ':') :

Si la plage de valeurs est un vecteur (par exemple pour position ou material.repeat), la clé est suivie d'un '-' suivi de x (y,…) est ajouté à la clé afin de pouvoir adresser et contrôler les valeurs individuellement.

Le room viewer vérifie pour chaque étiquette (getTranslationForKey(key)) s'il peut en trouver une traduction. Il existe deux catégories de traductions :

  1. contrôleur : Traductions pour les étiquettes de contrôle standard
  2. environnement : Traductions pour les étiquettes des éléments de la pièce

Le contrôle est effectué dans l'ordre spécifié. Cela signifie que la traduction des étiquettes de contrôle standard ne peut pas être écrasée par les traductions des éléments.

Note : Les clés de traduction (comme pour ember-intl) doivent être utilisées en respectant la casse.

Les caractères précédés d'un trait de soulignement “_” sont supprimés lors de la recherche d'une traduction. Le trait de soulignement est remplacé par un espace. Cela permet de ne traduire que la première chaîne de caractères.

Exemples (chaîne de caractères) :

Traduction des clés

La clé est d'abord vérifiée dans son intégralité (sans la partie située après “_”), puis raccourcie à partir de la fin jusqu'à “-” pour former une nouvelle clé à vérifier.

Exemple :

Note : Il n'est actuellement pas possible d'ajouter des traductions dans le Visualiseur. Toutefois, les clés existantes peuvent être utilisées.

Exemples de configuration

⇒ échelle dans la plage par défaut de '0 0 0~2 2 2'

Exemple pour contrôler plusieurs valeurs simultanément (commenté dans le code avec 'alias list') :

Exemples de changement de matériaux avec le composant modeleffects :