Mettre à jour le code de fichier Collada (.dae) depuis A-Frame ou JS

Je charge le fichier collada (.dae) dans A-Frame. Il est bien chargé. Mais maintenant, je dois mettre à jour ce fichier à partir de l'entrée de l'utilisateur comme couleur, etc. Comment mettre à jour le code dans le fichier .dae à partir de html, js ou A-Frame

Il s'agit du code A Frame chargé:

<a-scene> <a-assets> <a-asset-item id="box" src="box.dae"></a-asset-item> </a-assets> <a-entity id="collada" collada-model="#box"></a-entity> <a-entity id="cmr" position="0 1 5" rotation="0 0 0"> <a-camera> <a-cursor color="#2E3A87" > </a-camera> </a-entity> </a-scene> 

Alors, comment puis-je mettre à jour le code dans le fichier .dae depuis la fin de l'utilisateur, en utilisant html, js, A-Frame ou un autre?

Ceci est Collada File: box.dae

Les composants intégrés de A-Frame ne supportent que des remplacements très basiques (vous pourriez être en mesure de définir la couleur d'un modèle en utilisant, par exemple, le material="color: red" , je ne suis pas sûr). Pour tout ce qui est plus avancé, vous devrez utiliser les API THREE.js que A-Frame utilise lui-même. Je recommanderais de regarder la documentation de THREE.js – il y a beaucoup de détails sur la façon de personnaliser les instances de matériel et de géométrie, mais un exemple très simple ici:

  AFRAME.registerComponent('model-overrider', { init: function() { this.el.addEventListener('model-loaded', function(e) { var model = e.detail.model; model.traverse(function(o) { if (o instanceof THREE.Mesh) { // modify o.material or o.geometry here. } }); }); } }); 

Usage:

 <a-entity collada-model="..." model-overrider> </a-entity> 

Documentation pour TROIS.Matériel: https://threejs.org/docs/index.html?q=material#Reference/Materials/Material

Pour un exemple plus compliqué, déformer les sommets individuels, voir <a-ocean/> .


Et bien sûr, si vous souhaitez effectuer une modification manuelle sérieuse, vous voudrez utiliser Blender, Maya ou un autre programme de modélisation 3D à la place. 🙂