Dans ce tutoriel, nous ferons tomber un mur en le bombardant de balles, révélant ainsi le logo PSD.
Structure de la scène
Afin de ne pas perdre de temps à mettre en place quelques calques et lumières, le package de fichiers sources contient notre base commune appelée "PSD_C4D_R18_MoG_Voronoi_Bruch.c4d".
Examinons brièvement la structure de la scène d'un point de vue latéral. Tout à droite se trouve un objet plan avec le logo PSD du papillon. Devant, il y a un mur fait d'un simple objet cube. L'éclairage de la scène est assuré par une source lumineuse principale ponctuelle ainsi que par deux lumières de remplissage atténuées. Une caméra est également déjà positionnée, elle est directement orientée vers le mur, mais capture également une partie de l'objet sol.
À l'exception de la simple boule, le mur paramétrique est l'acteur principal de notre animation. Comme l'objet Voronoi Bruch se charge entièrement de la génération des fragments, il peut rester un objet paramétrique de base.
Afin de ne pas être dérangés par des objets de la scène inutiles pour le moment, masquons la boule, la caméra et les sources lumineuses via les commutateurs de feux tricolores ou la désactivation dans le gestionnaire d'objet.
Insertion et configuration de l'objet Voronoi Bruch
Passons en revue le cube de la paroi dans la vue de face (appuyez sur la touche F4) pour avoir une vue d'ensemble dans la vue de l'éditeur.
Assurez-vous que le mur est sélectionné, et ajoutez un objet Voronoi Bruch depuis le menu MoGraph dans notre scène. Appuyez sur la touche Alt tout en gardant l'objet cube de la paroi sous-jacent à l'objet Voronoi Bruch.
L'objet cube de la paroi est maintenant divisé en parties colorées par l'objet Voronoi Bruch. La répartition est basée sur un nuage de points, les lignes de séparation se situent exactement au milieu de deux points. Nous examinerons ces points de plus près sous peu.
Auparavant, jetons un œil au dialogue de configuration de l'objet Voronoi Bruch. Sur la page de l'objet, nous trouvons de nombreuses options pour adapter la rupture à l'objet. Par exemple, nous pouvons contrôler la rupture avec des sélections et des cartes de pondération, limiter la rupture aux surfaces , définir des objets comme étant creux ou trier les fragments par numéro d'index.
Pour tester l'apparence actuelle des fragments sur notre mur, désactivons temporairement l'option Colorer les fragments et définissons un Décalage de fragment de 20 cm.
Comme vous pouvez le constater, en ajustant le Décalage de fragment, vous pouvez régler l'espace entre chaque morceau. Notre mur est correctement divisé en fonction de la découpe interpolée par Voronoi.
Remettons le Décalage de fragment à 0 pour nous concentrer maintenant sur la division du mur en fragments.
Toutes les spécifications relatives à la division se trouvent sur la page des sources du dialogue de configuration. Comme mentionné précédemment, les divisions sont basées sur des informations de points que l'objet Voronoi Bruch peut recevoir de différentes sources.
Par défaut, l'objet Voronoi Bruch possède un générateur de points comme source de distribution que nous ajustons via les paramètres situés plus bas. Comme le suggère le deuxième bouton, des shaders peuvent également être utilisés pour la conception des divisions. De plus, en principe, tous les objets générant des points dans Cinema 4D, qu'il s'agisse de splines, d'objets polygonaux, de générateurs ou même d'émetteurs de particules, peuvent être définis comme source par glisser-déposer.
Notre premier générateur de points doit prendre en charge les fragments grossiers sur le mur. La distribution uniforme actuelle des morceaux suffit, nous augmentons simplement leur nombre et testons une valeur de départ qui nous convient pour les divisions.
Avec un plus grand nombre de points, il y a maintenant plus de fragments qui sont plus proches les uns des autres en raison de l'espace disponible. Les points dont l'interpolation donne naissance aux fragments sont indiqués en vert.
Pour pouvoir distinguer les différentes sources de distribution, nous attribuons un nom significatif comme "Grossier" au champ Nom pour la division grossière des morceaux. Comme les impacts avec la balle ou les balles auront lieu plutôt au milieu du mur, nous voulons encore réduire un peu la largeur de ce nuage de points grossier. Pour ce faire, nous ouvrons la section Transformation dans la boîte de dialogue des paramètres et attribuons une valeur d'environ 0,85 pour la taille dans la direction X.
Nous constatons que le nuage de points est ainsi un peu plus étroit. Le nombre de morceaux reste bien sûr le même, mais nous avons concentré un peu plus les divisions exactement là où les impacts devraient principalement se produire.
Pour affiner davantage les morceaux donnés, nous créons en cliquant sur le bouton Ajouter source de distribution un nuage de points supplémentaire, mais cette fois-ci pour la structure de fragment plus fine.
Nous attribuons immédiatement un nom approprié tel que "Fin" à cette deuxième source de distribution. Plutôt que le type de distribution uniforme, cette fois-ci nous voulons utiliser une distribution plus concentrée vers l'intérieur de l'objet, ce que nous obtenons en réglant Normal dans le menu Type de distribution. En revanche, une distribution plus orientée vers l'extérieur des coins de l'objet nous offrirait l'option Invers-Normal. La distribution exponentielle est déterminée par un axe à spécifier.
La taille de la distribution est en fait déterminée par une boîte englobante de forme cubique qui enveloppe l'objet respectif.
Pour contrôler le nuage de points, le paramètre Écart-type est disponible. Avec des valeurs plus petites, les points se rapprochent, tandis que des valeurs plus grandes les éloignent.
Pour obtenir des morceaux suffisamment petits, nous définissons un nombre de points de 300, et encore une fois nous pouvons varier la division avec une valeur de départ.
Comme nous utilisons maintenant plus d'une source pour la génération des fragments, nous activons également l'option Afficher tous les points utilisés.
En regardant la vue Éditeur, en plus de la source de distribution fine en vert clair pour une meilleure orientation, nous voyons également la source de distribution grossière en vert foncé précédemment créée.
Ce deuxième nuage de points plus fin nécessite également quelques ajustements via les paramètres de transformation pour les préparer aux impacts. Pour mieux comprendre l'effet des modifications, vous devriez expérimenter avec les paramètres. J'ai étiré un peu la source de distribution fine en hauteur et l'ai rétrécie en largeur avec les paramètres de taille, et je l'ai déplacée un peu vers le bas et la gauche avec les paramètres de position.
Nous pouvons afficher à nouveau les objets précédemment masqués via le Gestionnaire d'objets, car la préparation des morceaux dans l'objet de Fracture Voronoi-est terminée. Ces deux sources de distribution devraient suffire à nos besoins. L'ordre des couches de sources dans le champ associé ne joue d'ailleurs aucun rôle.
Il est facile de voir ici la boîte englobante verte générée par l'objet cube de la paroi et modifiée via les paramètres de transformation de la source de points fine.
Doté de propriétés dynamiques
Nous aurons bientôt besoin à nouveau de la boîte de dialogue des réglages de l'objet de Fracture Voronoi, mais en attendant, nous équipons également les objets impliqués dans la simulation de propriétés dynamiques.
Le calque avec le logo PSD et le sol doivent uniquement générer des collisions, c'est pourquoi il suffit d'attribuer un tag d'objet de collision aux deux objets via le menu Tags>Tags de simulation dans le Gestionnaire d'objets.
Dans la boîte de dialogue des deux Tags de corps dynamique en tant qu'objets de collision, nous réduisons l'élasticité à 20 % et augmentons le coefficient de friction à 120 %. Ainsi, les morceaux ne bondiront pas vers le haut et resteront en place sans glisser sur le sol.
La paroi, qui est divisée en fragments par l'objet de fracture Voronoi, nécessite un tag de corps dynamique en tant que corps rigide que nous attribuons à l'objet de fracture Voronoi via le menu Tags>Tags de simulation dans le Gestionnaire d'objets ou par le menu contextuel avec le clic droit.
Dans la boîte de dialogue de réglage associée, nous configurons d'abord la page Dynamics pour assurer que le mur reste intact jusqu'à la première collision avec une boule en utilisant Déclenchement en cas de collision.
Le paramètre le plus important pour nos fragments se trouve sur la page Collision. Ici, l'option Éléments individuels doit être réglée sur Tous afin que les morceaux cassés du mur conservent leurs propriétés dynamiques.
Une valeur faible pour l'Élasticité ainsi qu'une valeur élevée pour le Frottement doivent être configurées en collaboration avec les objets de collision pour maintenir les morceaux cassés au sol.
Pour tirer sur le mur, j'ai préparé un simple objet de type Boule de taille appropriée. Bien sûr, vous êtes entièrement libre en ce qui concerne le type et le nombre d'objets à lancer.
Nous attribuons à notre objet de lancer une Étiquette Body Dynamics via le menu Tags > Tags de simulation dans le Gestionnaire d'objets ou en cliquant avec le bouton droit de la souris, afin de le définir comme Rigid Body.
Il existe maintenant différentes façons de faire entrer la boule dans le mur. Un Émetteur pourrait générer un véritable déluge de balles, ce qui serait un peu exagéré dans notre cas, car en réalité, un simple poussée initiale dans la direction Z positive suffit largement.
Nous pouvons facilement attribuer cette poussée à la boule en utilisant la boîte de dialogue de réglage de l'Étiquette Body Dynamics sur la page Dynamics. Nous activons l'option Vitesse initiale personnalisée et définissons la Vitesse initiale dans la direction Z à 1000 cm. Comme cette première balle peut commencer la simulation, nous laissons le Déclenchement sur Immédiat. Sur la page Collision, nous attribuons des valeurs similaires pour l'Élasticité et le Frottement comme pour les morceaux cassés.
Si ce n'est pas déjà fait, testez l'animation de la balle frappant le mur en cliquant sur le Bouton de lecture. La balle laisse des dégâts initiaux avec nos morceaux de Voronoï et roule ensuite loin de la caméra.
Affiner le matériau du mur
Avant de maltraiter le mur avec d'autres balles, examinons de plus près un rendu de la perspective finale de la caméra. Les morceaux cassés ont tous un matériau gris foncé, semblable à du béton, qui se poursuit également sur les surfaces des fissures. Cependant, il serait plus réaliste d'utiliser un autre matériau plus clair pour l'intérieur des fissures. Un autre matériau plus clair pour le mur est déjà disponible dans le Gestionnaire de matériaux, il ne reste plus qu'à cibler spécifiquement les surfaces intérieures avec ce matériau.
C'est exactement pour ces besoins que l'Objet Voronoï Bruch propose dans sa boîte de dialogue de réglage sur la page Sélections une série de surfaces, arêtes et points souvent nécessaires des morceaux cassés. Comme nous voulons appliquer un autre matériau aux surfaces intérieures, nous activons cette Sélection spécifique pour nos morceaux cassés.
En activant la Sélection des surfaces intérieures, l'Objet Voronoï Bruch reçoit une Étiquette de Sélection générée automatiquement, dans laquelle toutes les surfaces intérieures des morceaux cassés sont répertoriées. Il est maintenant facile d'attribuer une texture distincte à cette sélection.
Attribuez ensuite l'Objet Mur sous l'Objet Voronoï Bruch avec le matériau plus clair de type Mur en faisant glisser et déposer depuis le Gestionnaire de matériaux dans le Gestionnaire d'objets. Dans la boîte de dialogue de l'Étiquette Texturale qui en résulte, faites ensuite glisser la Étiquette de Sélection du Gestionnaire d'objets dans le champ Sélection de l'Étiquette Texturale.
Un nouveau rendu montre que les morceaux du mur présentent désormais des matériaux différents comme souhaité pour l'extérieur et l'intérieur des fissures.
Finalisation de l'animation avec d'autres boules
Après l'impact des premières balles, le logo PSD apparaît déjà un peu, mais pour découvrir entièrement le logo, d'autres balles sont nécessaires. Pour mon exemple, j'ai créé deux duplicatas de la première balle en maintenant la touche Ctrl enfoncée et en les faisant glisser par glisser-déposer dans le Gestionnaire d'objets.
Pour prendre en charge les propriétés dynamiques des balles dès le départ, nous commencerons par placer les deux balles dans des positions favorables pour les lancers. Après que la première balle ait touché le tiers inférieur du mur, nous montons assez haut pour les deux autres balles et les décalons légèrement dans la direction X.
Lorsque nous cliquons sur le bouton de lecture, toutes les balles se mettent en mouvement simultanément. Ce n'est pas pour rien que nous avons réglé le Body Dynamics sur Instantané dans la boîte de dialogue des paramètres. Pour lancer les balles avec un léger décalage, il suffit d'activer le paramètre Activé pour les balles 2 et 3 dans l'onglet Dynamics.
Veillez à ce que le curseur de temps vert soit sur l'image 0, désactivez l'option Dynamics, puis cliquez sur le bouton Image clé avant le paramètre Activé pour enregistrer une clé pour ce réglage. J'ai repris tous les autres paramètres, en particulier la vitesse de départ, de la première balle pour la deuxième balle sans les modifier.
Le moment choisi pour le début de la deuxième balle et donc l'activation du Body Dynamics a été l'image 100 lors d'un autre passage de test.
Il suffit de cocher la case du paramètre Activé dans la boîte de dialogue du Body Dynamics de la deuxième balle et de sauvegarder ce réglage en cliquant sur le bouton Image clé pour un deuxième clé.
La troisième balle suit une fois que la deuxième balle a terminé son travail - dans mon cas à l'image 180.
Pour la troisième balle cela signifie : nous avons à nouveau besoin d'une clé à l'image 0 qui désactive la dynamique jusqu'à ce que nous cochions à nouveau la case Activé à l'image 180 et enregistrions ce réglage dans une deuxième clé. Dans mon exemple, j'ai augmenté la vitesse de départ de la troisième balle à 1500 cm pour que la balle atteigne également son objectif, la libération restante du papillon PSD.
En ce qui concerne le nombre, la taille, la position et la vitesse des balles, des tests approfondis sont bien entendu un facteur décisif. Les paramètres de projet spécifient une durée de 400 images - cela devrait suffire pour que le dernier fragment se stabilise. L'animation est ainsi terminée.
Encodage de la simulation
Lorsqu'une simulation - comme la nôtre récemment terminée - dépend du fait que les éléments MoGraph fonctionnent de manière reproductible sur tous les ordinateurs ou lors du rendu en réseau, il est indispensable de coder la simulation.
Dans la boîte de dialogue des réglages du Body Dynamics du mur en éclats de Voronoi, nous nous rendons sur l'onglet Cache. En cliquant sur le bouton Tout coder, nous nous assurons que non seulement les fragments, mais aussi les balles sont pris en compte lors du codage de la simulation.
Après une courte attente…
… la simulation a été codée avec succès. Cela peut être vérifié sur l'onglet Cache en observant l'espace utilisé, mais aussi sur l'onglet Dynamics en vérifiant les paramètres inactifs. Cela est assuré par l'option Utiliser les données en cache, qui garantit que la simulation ne fonctionne qu'à partir du cache.
Nous pouvons maintenant tranquillement faire défiler le curseur de temps vert sur la timeline, tous les éléments de la simulation MoGraph participent à l'animation sans nécessiter de recalcul.