Aller au contenu

Asset bundles

!

L'Asset Bundle contenant une scène de cinéma projetant un film.

Les Assets Bundles de Unity sont des conteneurs d'objets Unity sous forme de fichiers. L'idée de ces Assets Bundles est de stocker des données pouvant être chargées à tout moment dans une application Unity.

Asset Bundle scène / objet

VRmaze prend en charge ces Assets Bundles pour permettre un chargement de données tierces préparées dans un éditeur Unity et donc optimisées pour l'exploitation. VRmaze propose principalement 2 types d'objets 3D permettant de prendre en charge une grande variété d'objets intégrables dans un Asset Bundle. Il est ainsi possible de charger un objet simple, un prefab Unity ou une scène complète.

Prefab dans un Asset Bundle

Un prefab chargé via un Asset Bundle ne représentera qu'une seule entité dans l'arbre de protocole, même si le prefab contient des milliers d'objets visuels.

Scène dans un Asset Bundle

Pour utiliser une scène contenue dans un Asset Bundle, on utilise l'objet 3d Unity Asset Bundle Scene de VRmaze.

Paramétrage d'une scène

À la différence d'un prefab Unity, la scène chargée ne peut pas être déplacée.

Textures de lumière dans une scène

Les textures de lumières sont intégrées à la scène dans l'Asset Bundle. Dans ce cas d'utilisation, il convient d'utiliser la même version de Unity que le visualiseur VRmaze.

Version d'Unity

La version d'Unity utilisée est la 2020.2.1f1. Il est possible d'utiliser une autre version proche de cette version pour la création d'Assets Bundles, avec des risques de perte de données concernant les maillages, les coordonnées de mapping ou les textures de lumières.

Fichier manifest

Lors de la création de fichier Assets Bundles, un fichier manifest est généré. Ce fichier manifest, du même nom que le fichier Asset Bundle, contient les informations de données intégrées dans l'Asset Bundle, cela permet de retrouver tous les noms des données intégrées.

Fichier Manifest et archivage de protocole

Le fichier manifest, lié à l'Asset Bundle n'est pas inclus dans le fichier zip d'archivage de protocole.

Nettoyage de la base de données d'asset bundles

Unity stocke les Asset Bundles préalablement chargés par leur nom dans une base de données qui lui est propre. En cas de modification d'un asset bundle, il est possible que le visualiseur de VRmaze charge la donnée contenue dans la base de données de Unity. Il est possible d'effacer cette base de données pour être certain d'utiliser la dernière version de l'asset bundle.

VRmaze dipose d'un outil permettant de supprimer cette base de données sous le menu général Clear Asset Bundle Cache.

!

L'Asset Bundle contenant une scène de cinéma projetant un film.

Effacement du cache

Avant de vider le cache d'Asset Bundles, il faut faire en sorte de n'avoir pas d'Asset Bundle chargé dans VRmaze, auquel cas, la suppression ne fonctionnera pas. Le meilleur moment pour vider le cache est juste après le lancement de VRmaze.

Scripts dans les Assets Bundles

Les données concernant la visualisation, les matériaux, les maillages et les structures hiérarchiques sont préservés lors de la création des Assets Bundles. Un problème se pose lors de l'utilisation des comportements (MonoBehaviour). En effet, ces comportements ne sont pas inclus dans l'Asset Bundle uniquement sous forme de référence. Si les comportements fournis par Unity sont nativement pris en charge dans VRmaze, les comportements développés par l'utilisateur ne seront pas intégrés complètement à l'Asset Bundle. Seules les références aux scripts sont conservées.

Intégration des scripts

Les scripts doivent être intégrés au projet Unity sous forme de fichier .Dll. La copie de ces fichiers .Dll dans le dossier Plugins du dossier d'installation de VRmaze permet d'intégrer pleinement les scripts ou tout autre code informatique nécessaire à l'Asset Bundle. Un tutoriel sur la création d'une librairie de comportements est disponible ici

Création d'un Asset Bundle

La création d'un Asset Bundle Unity est une procédure simple. VRmaze est fourni avec un dossier spécifique nommé UnityReflectExporterProject et présent dans le dossier de données utilisateur. Ce dossier contient un sous-dossier \Assets\Editor. Il suffit de copier ce dossier Editor dans le projet Unity. L'éditeur Unity disposera alors d'un nouvel outil permettant la création de l'ensemble des Assets Bundles du projet.

La création et l'utilisation d'Assets Bundles dispose de leur propre section documentaire.

Moteur de rendu

La version 2021 de VRmaze utilise le rendu "Built-In Render Pipeline" de Unity. Il est donc important que les Assets Bundles soient créés dans cette version du moteur de rendu (pas d'URP ni de HDRP). Dans tout autre moteur de rendu, les géométries apparaîtront roses.

Écriture des fichiers Assets Bundles

Les fichiers Assets Bundles sont créés dans le dossier AssetBundles du dossier d'Asset du projet Unity. Il convient de copier ce dossier dans le dossier de données utilisateur de VRmaze pour pouvoir utiliser l'ensemble des Assets Bundles.