Je veux créer une pizza réaliste et permettre à l'utilisateur d'interagir avec elle.
Ce que je veux:
Ce que j'ai créé:
J'ai créé le modèle de la pizza (8 pièces) dans Blender, puis je l'ai importé dans Unity. Le morceau de pizza semble très artificiel, principalement parce qu'il s'agit d'un "triangle rigide".
Comment puis-je faire étirer et casser le fromage lorsque l'utilisateur déplace un morceau?
Réponses:
La voie simple
Ajoutez un quad qui relie les tranches adjacentes les unes aux autres. Texture ceci avec une belle texture de fromage fondu, avec des trous. Au fur et à mesure que la tranche est éloignée, le quad est naturellement étiré et ainsi étire et biaise la texture.
Cela devrait sembler raisonnable, mais il n'y aura pas de pause. Que faire ici est de rendre cette texture animée. Parcourez l'animation en fonction de la zone des quads (ou simplement de la distance entre les tranches) au lieu du temps. À mesure qu'il s'éloigne, plus de trous apparaîtront en raison de la progression de l'animation.
Finalement, lorsqu'un seuil de distance est atteint, divisez le quad en deux, rétrécissez par programme les deux quads dans le sens de leurs tranches attachées pour les rétrécir un peu et continuez à jouer l'animation qui montre l'accrochage. Gèle l'animation à la fin.
Pour un peu plus de dynamique, vous pouvez attacher le quadruple aux deux tranches à l'aide d'un joint dans un moteur physique.
À la dure
Utilisez un moteur physique du corps mou ou écrivez-en un. Définissez une section de tissu entre les tranches et texturez-la avec du fromage. Permettre au moteur physique de modéliser la dynamique de l'étirement et de l'accrochage des matériaux.
Il s'agit d'une méthode beaucoup plus intensive, mais plus généralement applicable. Il peut également être très incontrôlable mais pourrait être un effet global plus convaincant.
la source
Utilisation d'une animation prédéfinie:
Créez donc une animation prédéfinie dans un logiciel de modélisation 3D comme Maya / Blender qui a des fonctionnalités telles que des corps souples et un tissu qui peuvent faire un bon travail en simulant le déchirement de la pizza. Exportez à la fois la texture de la pizza ET l'animation du modèle vers Unity (probablement sous la forme d'un ensemble de modèles .obj ou autres).
L'animation du modèle représente le fromage étiré et déchiré à l'aide de nombreux triangles, que vous pouvez charger sous forme d'un ensemble de tri-mailles dans Unity. Ils sont une collection de nombreux états de maille, chacun représentant la pizza au fromage à différentes positions d'étirement. Selon l'endroit où l'utilisateur positionne la tranche de pizza, vous passerez à cet «état de maillage» et afficherez ces triangles.
Il y a bien sûr quelques problèmes. L'interaction utilisateur est un peu restreinte. Si le fromage est déjà un peu déchiré, vous ne pouvez pas revenir à l'état «non déchiré» pour cette zone de fromage. Si l'animation prédéfinie supprime la tranche 1 puis la tranche 2, l'utilisateur sera obligé de supprimer les tranches dans cet ordre. La taille des données exportées peut devenir assez importante, en fonction de la granularité du maillage et de la durée de l'animation de déchirement.
Mais cela peut sembler très réaliste, si l'artiste modèle fait du bon travail lors de la création de l'animation prédéfinie. Et vous n'avez pas besoin d'implémenter un simulateur de corps mou.
Utiliser Unity:
Mais si vous êtes intéressé, Unity implémente son propre tissu Skinned et Interactive Fabric composants . Le tissu interactif supporte le déchirement. Mais leur support est limité à quelques plates-formes, la dernière fois que j'ai vérifié.
En utilisant vous:
En fin de compte, vous pouvez toujours implémenter votre propre simulateur de corps mou. Voici un exemple de document de recherche qui est assez populaire. C'est tres amusant :). Bonne chance.
la source
Les réponses de @ originalDaemon sont bonnes! Je pense qu'il y a une voie médiane qui peut obtenir de meilleurs résultats que la première approche et nécessitera un effort raisonnable (peut-être contrairement à l'approche "The Hard Way").
Ce que je suggère, c'est trop de modeler la "toile" du fromage, ça me ressemble beaucoup aux stalactites. Modelez quelques morceaux de fromage extensible. Positionnez-les au hasard sur les bords du triangle de la gourmandise et redimensionnez-les à 0
y-axis
et lorsque le triangle est retiré de ses compadres, redimensionnez-les lentement sur l'axe des y jusqu'à la taille requise.Vous devrez peut-être choisir un autre axe au lieu de
y
si vous prévoyez de retirer légèrement le triangle. Quoi qu'il en soit, je pense que même si une texture plate serait beaucoup plus facile et rentable, la modélisation du fromage pourrait se révéler plus réaliste pour le gros plan, bien qu'une texture puisse également fonctionner. Si vous choisissez une texture, utilisez peut-être plusieurs couches pour obtenir une sensation plus réaliste. N'oubliez pas non plus d'ajouter un peu de vapeur pour souligner la chaleur de la pizza dans le cliché.Une autre chose que j'ai remarquée, c'est qu'il semble que le pepperoni n'est qu'une texture en ce moment. J'envisagerais certainement de le modéliser ou d'ajouter des détails dans ce domaine au modèle existant. Vous pouvez le faire glisser avec le fromage extensible pour plus de réalisme.
la source