Aller au contenu

Travailler avec les prefabs

L'utilité d'un prefab réside dans le fait de pouvoir ajouter des structures d'arbres complexes en un clic. La procédure de création se résume à quelques étapes simples.

Créer un prefab

L'interface graphique de VRmaze permet la création de prefab en un clic. En effet, le panneau de propriété de l'objet sélectionne donne accès à la commande de création tout comme la barre d'outils verticale.

Un prefab est donc une structure partant d'un nœud racine qui sera ajoutée possiblement à un arbre de protocole. La fonction même d'ajout exclut de facto un certain nombre d'entités ne pouvant être ajoutée. Il n'est ainsi pas possible de créer un prefab ayant comme nœud racine un protocole (il s'agit dans ce cas d'un fichier protocole complet). Il n'est pas non plus possible de créer un prefab à partir d'un noeud qui n'aurait pas été ajouté, mais qui serait présent dans la structure native du nœud parent : il n'est, par exemple, pas possible de créer un prefab sur le noeud labyrinthe d'une expérimentation de piscine de Morris puisque VRmaze n'en permettra pas l'ajout. Dernière contrainte, il n'est pas possible de créer un prefab d'une liste.

Prefab d'une liste

Il n'est pas possible de faire un prefab d'une liste. Par contre, il est possible de faire un prefab d'un nœud logique simple contenant une (ou plusieurs) liste(s). La structure logique prend tout son sens ici : une structure logique bien établie permet une compréhension simple et une re-utilisabilité potentielle plus grande.

Attention aux liens vers d'autres objets

Lors de la création de prefab, seuls les objets de la structure sont sauvegardés et avec eux, les liens et références vers les objets et entités tiers. Si ces entités ne font pas partie de la structure interne du prefab, ils ne seront pas sauvegardés. Lors de l'ajout du prefab dans un nouveau protocole, la référence externe ne sera pas trouvée, et le comportement du prefab sera différent voire problématique.

Lors de la création d'un prefab, le nom du prefab dans le menu contextuel d'ajout sera celui du nœud racine, tandis que l'info-bulle prendra le contenu de la description.

Procédure de création

La procédure de création est simple. Le plus complexe reste évidemment de créer sa structure logique. Dans l'exemple suivant, nous avons créé une structure logique simple sous l'essai. Nous allons créer un prefab de l'essai de manière à pouvoir l'ajouter lui et toute sa structure hiérarchique.

Procédure capture
Créons une structure hiérarchique simple, pour l'exemple, et sélectionnons l'essai qui servira à la création du prefab. !
Affectons un nom et une description à l'essai !
Cliquons sur le bouton de création de prefab de la barre d'outils verticale !

La procédure de création est terminée. Nous pouvons maintenant utiliser notre prefab.

Utiliser un prefab

!

Le menu contextuel affiche le prefab et sa description

Un prefab est considéré comme un nœud logique dans VRmaze. Il est ainsi possible de l'ajouter via le menu contextuel d'une entité accueillante. Dans notre cas, nous avons créé un préfab d'un essai. Nous pouvons ainsi ajouter l'essai à un conteneur logique, c'est-à-dire une liste d'essais. En faisant un clic droit de la souris sur une liste d'essais, nous pouvons voir notre prefab d'essai, il est ainsi possible de l'ajouter. Lors de l'ajout, l'ensemble de la structure logique est ajouté.

Il faut noter que le prefab est copié intégralement dans la structure d'arbre l'accueillant. Ainsi, il est possible de modifier la structure ajoutée via le prefab, sans pour autant modifier le prefab dans la base de données. Chaque ajout de prefab est indépendant du prefab d'origine, il est tout à fait possible de le modifier à loisir, comme un nœud conventionnel.

!

Le prefab ajouté et modifié (ajout d'un nouvel objet 3D).

De même, la suppression du prefab dans la base de données ne provoquera pas une perte de données dans tous les protocoles ayant ajouté ce prefab.

Utilisation d'un prefab

L'ajout d'un prefab dans une structure logique est soumis aux mêmes contraintes que les nœuds eux-mêmes. En effet, une vérification de compatibilité sera effectuée avant d'offrir la possibilité d'ajout. Dans notre cas d'utilisation, l'essai ne sera compatible qu'avec le type d'expérimentation parente. Tous les prefabs ne sont donc pas disponibles tout le temps et dans toutes les conditions.

Structure du dossier de stockage des prefabs

Lors de la création d'un prefab, VRmaze va stocker la donnée sous forme de fichier .Xml dans le dossier Prefabs du dossier de données utilisateur. Cette base de données est structurée sous forme de dossier par type d'entité.

!

La structure de la base de données de prefabs

Nous pouvons retrouver notre prefab, basée sur le type GenericTrial, dans le dossier du même nom. La nomenclature du nom de fichier est la suivante : NomObjet-DateCreation.xml.

!

Notre fichier prefab d'essai.

Modification de prefab

La modification d'un prefab source est impossible visuellement après la création. VRmaze n'offre pas la possibilité de modifier des prefabs enregistrés. Il est possible, mais très déconseillé, de modifier le fichier .Xml avec un éditeur de texte. La méthode la plus simple est d'ajouter le prefab dans une structure d'arbre, de le modifier et de créer un nouveau prefab. Pour finir, il suffira de supprimer l'ancien prefab.

Suppression d'un prefab

L'interface graphique de VRmaze ne permet pas la suppression des prefabs. Toutefois, la base de données de prefabs, disponible dans le dossier de données utilisateur, stocke les prefabs sous forme de fichiers. La suppression d'un fichier provoque la suppression du prefab dans la base de données.