Généraliste DataChannel de 3dsMax

GO TO ADMIN PANEL > ADD-ONS AND INSTALL VERTIFORO SIDEBAR TO SEE FORUMS AND SIDEBAR

malikarn

Membre très actif
#4
Re
Alors MCG c'est un peu différent, c'est davantage pour créer des plugin (controllers, modifiers, primitives etc.). Tout ce que tu fais en MCG tu peux le faire en maxscript. Simplement, le MCG propose une approche visuelle et nodale qui est peut être plus simple a apprehender qu'un IDE. Il propose par ailleurs une "banque" de fonctions pré-faites qui sont quand meme bien commodes car tu n'as pas à la réécrire "from scratch".

Le DC modifier, lui, permet de rediriger des informations topologiques (position, curvature, normale, UVs, velocity, dot/cross vector etc.) vers d'autres channels pour différentes usages.
Par exemple convertir une position en couleur qui a son tour permet de piloter un masque.
Convertir une map en position pour piloter - comme sur ton exemple - la position du mesh en fonction d'une texture
Déformer un mesh en fonction de la vélocité des points.
Et un million d'autres choses.

Sur ton exemple, il est tout à fait possible de faire ça en datachannel mais il y a peut etre plus simple. Perso je créerais plutôt un plan avec 12x12 subdivs, j'appliquerai un modificateur displace assorti d'une map de noise pour la déformation, puis un modificateur lattice au sommet de la pile pour masquer le plan et générer des sphères a chaque vertex.
Rester à animer de facon adéquat la phase du noise pour faire bouger les spheres, éventuellement le mixer avec une solid color pour neutraliser le mouvement lorsque les spheres deviennent coplanaires.
Pour la couleur, soit tu animes un shader que tu appliques à cet objet, soit tu sors un "light select" et tu colores en comp.

En datachannel, c'est un peu différent, il faut que tu crées le réseaux de spheres (12x12), que tu recuperes le channel uv1 sur lequel tu auras pris soin d'animer un noise comme dans l'autre approche, que tu utilises absolument le geoquantize sinon tes spheres vont se déformer (et il faut qu'elles restent rondes), éventuellement tu normalize - c'est plus simple pour la suite -, tu multiplies par un scalaire pour matcher l'échelle de ta scène et ajuster la quantité de déplacement (ce serait la facteur entre ta map de noise et le déplacement sur Z) et tu réinjectes le tout sur le channel position. Ca devrait donner la base du setup, reste a animer le noise de manière adéquat comme précédemment et idem pour la couleur : en shading ou en comp.

Si je trouve un moment entre deux bouteilles de champ', je te bricole un exemple. ^^

++
 

malikarn

Membre très actif
#6
Re.
Hop voici comme promis un setup qu'il te faudra ensuite affiner selon ton besoin spécifique :
https://1drv.ms/u/s!Agne0GyPA7NUgqdOPJGzVBk8RVcOaw

(~200 Ko)
C'est un .max au format 2018, l'unité est en mètres, le renderer scanline.
Le lien tombe sur mon cloud public, il s'agit du fichier 3DVF_DC_OO.zip
Voici ce que j'ai fait :



Du coup c'était plus simple que prévu car je pensais passer par un input vertex / position puis récupérer l'uv mais en fait l'input color elements fait tout dans le meme operator : j'ai plug directement le noise, donc pas besoin d'opérator sur les uv et il fonctionne entre autres by elements, donc pas besoin de geoquantize non plus. Et il est déjà normalisé car il s'agit d'uv en output. Tant mieux. ^^ (j'ai choisi le channel 2 en output car il est libre, tu peux checker la présence des datas sur le channel 2 avec l'utilitaire channel infos si jamais).

Apres je convertis la color by face en vertices (beaucoup d'operator ne fonctionnent qu'en mode vertices)
Puisque seule la coordonnée sur Z m'intéresse je cast en float (je ne récupère que la composante Z)
Comme dit précédemment, j'ajoute un scale qui me donne le contrôle sur la quantité de déplacement.
Puisque c'est normalisé (c'est à dire que les valeurs sont sur l'intervalle 0-1) c'est "easy math" : un scale de 2 double le déplacement, 3 le triple etc.
Et enfin j'output le résultat sur la position Z en mode "add" plutot que "replace" pour garder l'offset initial. Ca c'est affaire de préférences...

Restait à animer la phase du noise pour faire varier la texture au cours du temps, si tu bouges la timeline, les balles oscillent dans le respect de la map de noise.
Il te faudra bien sur travailler sur la map de noise pour qu'elle varie comme tu l'entends. Tu peux créer un plan sous les balles et appliquer la texture dessus, ca te donnera un aperçu visuel du noise pour mieux apprécier ce qui monte (noise blanc) et ce qui descend (noise noir)

En espérant que ça t'aie un peu aidé ^^
++
 
#7
Salut je te souhaite une bonne Saint-Sylvestre, j'ai regardé le fichier et vraiment c'est sympa ce que l'on peut faire !! Je vais essayer de voir le problème de boucle car mon anim est sur 600 images et du coup il y une oscillation trop longue ;)
 
Haut