Salut Glurp, et merci bcp pour ta
(prompte) réponse

Citation (glurp @ Jul 23 2009, 05:03 PM)
sache que tous les w3d importés sont des mondes (world) à par entière et non juste des models.
Râaah... Ben figures-toi que ça, je ne l'apprends que maintenant !
...Parce qu'en fait, en raison de certaines contraintes techniques,
j'ai pris l'habitude de grouper mes models dans 3dsMax avant l'export, ce qui interdit ce que tu décris ! ( Voir à ce sujet: [résolu] Connaitre le type d'un parent )Cela dit, maintenant que tu m'apprends ça, je vais éviter les "groupes" dans 3ds au moins pour mes lumières, pour pouvoir faire comme tu le préconises
Histoire de résumer un peu ce que je faisais habituellement, j'utilise plusieurs .W3d parce que j'ai :
- D'une part, des models avec un
modifieur "Skin" nécessitant que soient groupés les
#models avec leur
#bones- D'autre part, des éléments qui seront redondants dans ma scène et que je
clone donc à la volée en Lingo pour optimiser les (télé)chargements ; dans ces différents autres .W3d, je suis parfois aussi amené à créer des "groupes" de models
( rotations de groupes, etc... ) Or,
lorsqu'on groupe les models dans 3dsMax9, il semblerait donc qu'il devient ensuite impossible d'accéder aux références individuelles de ces models groupés, une fois ensuite dans Director, via Lingo :
J'ai fait différents tests et recherches à ce sujet, et la question a notamment été abordée sur certains forums U.S. où ils en viennent également tout simplement à la conclusion que ce serait impossible.
En effet, dans ce cas précis,
LINGO traite les groupes de models (faits sous 3ds) comme un model unique ( mais pas comme un groupe LINGO contenant plusieurs models ! )D'ailleurs, c'est ainsi que j'intègre mon .w3d dans le shockwave principal vide
(gWorld3d) :
Lingo
gWorld3d.loadfile("fileName.w3d", false, false)
mTerrain = gWorld3D.model("my3dsGroupOfModels")
Pour pouvoir quand même
re-texturer à la volée, et individuellement, des models groupés comme ceux décrits ci-dessus, j'ai quand même ma propre petite astuce ; j'exporte depuis 3dsMax9 en laissant coché seulement :
[X] Scenegraph hierarchy
[X] Geometry Resources
[X] Shaders
Puis, je crée mes propres
#shaders avec textures et materials, plus tard, à la volée
(en LINGO) que j'applique ensuite à chacun de ces "sous-models" de mon "multi-model" grâce à la propriété
shaderlist() ( à défaut de pouvoir accéder individuellement à chaque model groupé, par son petit nom, comme d'hab, donc ) Dans ce cas très précis, chaque index de
shaderlist() corresponds alors aux shaders d'un de ces models groupés.
( Pour que cette astuce avec shaderlist() fonctionne, il est par contre important de laisser coché "shaders" à l'export même si on crée finalement des "new shaders()" après en Lingo)Bref, c'est avec cette habitude de configuration là que j'utilise beaucoup et pour laquelle tout mon code a été optimisé ("groupage des models dans 3ds") que j'ai finalement crée mes lumières, d'où mes inquiétudes sur la façon de parvenir à y accéder ensuite individuellement en Lingo
( J'espère que je me suis bien expliqué, ça peut paraître un peu dur à comprendre !? )En fait, si tu groupes plusieurs lumières dans un même groupe(3ds) avant export de ton .W3d
( Par exemple pour une animation pré-calculée combinant rotations et translations, comme sur un carrousel ) tu ne dois plus pouvoir accéder individuellement à chaque lumière ensuite avec Lingo
( en tout cas ça ne marche pas pour les meshes groupés, ça c'est sûr !)Du coup, je vais éviter les groupes dans 3D studio lorsqu'ils ne sont pas complètement nécessaires pour pouvoir essayer ce que tu dis et ça devrait nettement me faciliter la vie (merci) !