Comment développer (créer) procéduralement un arbre artistique (2D) en temps réel (L-System?)


20

Récemment, j'ai programmé un module L-System , cela m'a intéressé davantage. Je suis aussi accro à Plants vs Zombies, j'ai vraiment aimé le concept de Tree of Wisdom. J'adorerais créer un art procédural similaire juste pour le plaisir et en savoir plus.

Question: Comment dois-je aborder le processus de création dynamique d'un arbre artistique (2d peut-être avec une caméra / perspective fixe)?

Idéalement, je voudrais commencer avec une plante (seulement une tige avec une feuille) et la cultiver dynamiquement en utilisant une certaine influence (entrée / action de l'utilisateur) sur sa structure. Ces influences peuvent entraîner différents types de ramification, des courbes dans les branches, sa propagation, l'emplacement des fruits, la couleur des fleurs, etc. Voulez-vous qu'il soit vraiment plein de vie / d'esprit. :)

Plants vs Zombies: Tree of wisdom Ce serait formidable de développer dynamiquement un arbre similaire, mais avec beaucoup plus de variations et d'animations.

Mon expérience: le programmeur a utilisé peu de moteurs de jeu (Ogre3d, cocos2d, unit). N'ont pas vraiment programmé directement en utilisant openGL, essayant de résoudre ce problème :).

Je suis prêt à passer un temps considérable, veuillez me faire connaître les API? et comment un expert comme vous aborderait-il ce problème?

Pourquoi 2D? Je pense qu'il est plus facile de résoudre le problème en ne considérant que 2 dimensions.

Inspirations artistiques:

Seul l' arbre, avec des fruits et des feuilles, sans les arbustes en bas

Le grand arbre (branches visibles, feuilles vertes, fleurs, fruits, etc.) à gauche, derrière le singe.

PixelJunk's Eden (inspiration de style Art).

Pommier généré de façon procédurale à l'aide de fractales

Veuillez me faire savoir s'il vous a été facile de comprendre la question, je peux développer davantage.

J'espère qu'une discussion sur différentes approches serait utile pour tout le monde. Vous êtes géniaux les gars.


2
Je n'ai peut-être pas de réponse pour vous, mais j'aimerais vraiment voir où cela va. Concept génial!
Bloodyaugust

Grande question, je m'intéresse aux L-Systems depuis un moment mais je n'ai rien fait avec cet intérêt :)
Luther


1
@Stephen juste pour que vous sachiez que cette question date de 2011 et qu'elle a été mise au sommet par l'utilisateur posant la question à Student/partir deStudent/Programmer
PeterT

@lalan Veuillez uniquement apporter des modifications substantielles à la question, le fait que vous ne soyez plus étudiant n'est pas un changement substantiel, ni une raison de modifier.
MichaelHouse

Réponses:



8

Quelques idées pour votre "jeu":

  • Demandez d'abord à l'utilisateur un nom pour son arbre. Utilisez ce nom pour générer une graine pour l'algorithme. Ainsi, chaque nom aura son arbre unique. La graine pourrait également influencer le type de feuillage et de fruit de l'arbre.
  • Vous pouvez implémenter une sorte de " tamagotchi d' arbre " où l'arbre grandit et devient plus beau plus l'utilisateur s'en soucie (fertiliser, arroser, etc.)
  • Créez une liste de meilleurs scores des arbres les plus élevés. Une autre idée serait d'afficher les hauteurs et les noms des autres utilisateurs à côté de votre arbre. Ainsi, vous pouvez comparer la hauteur de votre arbre directement aux autres utilisateurs. Regardez cette vidéo à titre d'exemple. Les nuages ​​indiquent la hauteur atteinte par d'autres utilisateurs.

Il existe de nombreux algorithmes et articles pour la génération d'arborescences procédurales ( ce fil pourrait être intéressant ). Une tâche difficile est de bien mélanger les branches. La 2D sera certainement plus facile à cet égard, car vous pouvez résoudre ce problème avec l'alpha-blending.

Puisque vous êtes expérimenté avec Ogre3D, Unitiy et cocos2d, vous pouvez aller de l'avant et implémenter cette chose (pas besoin de commencer à apprendre OpenGL maintenant à mon humble avis). Personnellement, je choisirais cocos2d et je le sortirais pour iPad et / ou iPhone, afin que tout le monde puisse transporter son arbre avec son appareil mobile.


1
Je voudrais par ce jeu juste pour jouer avec L-Systems d'une manière sociale / compétitive.
deft_code

1
Merci de m'avoir pointé sur le fil gamedev .. Belles idées, tamagotchi et goo-tower .. l'application mobile serait vraiment cool. trouvé une vidéo de plugin 3DS Max - qui est un lien assez génial ..
lal

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.