Le but de cet article est d’aborder simplement l’import et la récupération en Flash d’un objet modélisé en 3D composé de plusieures parties distinctes.
ActionScript 3 et Papervision 2.0 sont utilisés ici.
Modélisation
La plupart des logiciels connus conviennent parfaitement pour cette partie (3dsmax, maya, cinema4D, blender, etc ..)
Lors de la modélisation de notre objet 3D, deux solutions s’offrent à nous :
- soit nous nommons les différentes parties de l’objet 3D afin de pouvoir les récupérer par la suite
- soit nous exportons chaque partie de l’objet dans un fichier (.dae) différent.
Selon le logiciel utilisé, l’export des objets nommés nécessite parfois quelques retouches « à la main » au niveau du dae pour être exploitable.
Dans le second cas il est important que les différents objets exportés soient issus du même fichier 3D et aient le même centre de rotation si nous voulons reconstituer la scène à l’identique en flash.
Export au format DAE
Apres la modélisation, et une fois notre logiciel 3D équipé d’un plug-in COLLADA, nous allons pouvoir exporter au format “dae”.
Si nous avons modélisé l’intérieur d’une pièce par exemple, nous allons certainement avoir besoin de récupérer les différents éléments qui la compose ( canapé, table, télé, etc … ).
Dans notre soft 3D, si nous avons nommé un objet « table» nous devons retrouver cet identifiant dans notre dae à au moins 2 endroits : au niveau des nœuds « library_geometries » et « library_visual_scenes »
<library_geometries>
<polylist count=”154″ material=”table”>
</polylist>
</library_geometries>
<library_visual_scenes>
<instance_material symbol=”table” target=”#lambert2″>
</instance_material>
</library_visual_scenes>
Exemple d’objet nommé sous Cinema4D :

On peut ainsi isoler et récupérer par la suite en ActionScript plusieurs objets au sein d’une même scène. Le but étant d’appliquer des comportements et des textures différentes sur chaque objet.
Import en Flash
papervision3D prend très bien en charge le format .dae, il suffit d’appeler la methode load() de la classe DAE pour charger le fichier.
item_dae = new DAE();
item_dae.load(”objet.dae”, materialsList);
Mapping
Nous pouvons maintenant appliquer une texture à chaque objet nommé.
Par exemple si nous voulons appliquer un rouge uni à l’objet “table”:
var red_mat:ColorMaterial = new ColorMaterial(0xFF0000);
var materialsList:MaterialsList = new MaterialsList();
materialsList.addMaterial(red_mat, “table” );
dans le second cas de figure où nous avons exporté un fichier dae par objet, nous appliquons donc la texture sur l’objet entier :
materialsList.addMaterial(red_mat, “all”);
Voilà pour la partie théorique sur l’utilisation du format dae en 3D dans Flash.
Nous reviendrons avec des swf qui bougent, de la 3d qui tourne, et une explication sur les textures “complexes” de Papervision.
En attendant vos commentaires et suggestions sont les bienvenus !

















Il manque juste un petit “l” à :
Très bon article by the way !
Répondre
Il manque juste un petit “l” à : /ibrary_visual_scenes
Très bon article by the way !
(J’ai reposté le commentaire sans les qui sont interprétés apparemment…)
Répondre