Come proceduralmente (creare) far crescere un albero artistico (2D) in tempo reale (L-System?)


20

Di recente ho programmato un modulo L-system , mi ha interessato ulteriormente. Sono anche un drogato di Plants vs Zombies, mi è piaciuto molto il concetto di Tree of Wisdom. Mi piacerebbe creare arte procedurale simile solo per divertimento e saperne di più.

Domanda: come dovrei affrontare dinamicamente il processo di creazione di un albero artistico (2d forse con telecamera fissa / prospettiva)?

Idealmente, vorrei iniziare con una pianta (solo uno stelo con una foglia) e farla crescere in modo dinamico usando una certa influenza (input / azione dell'utente) sulla sua struttura. Queste influenze possono provocare diversi tipi di ramificazione, curve nei rami, diffusione, posizione dei frutti, colore dei fiori, ecc. Vuoi che sia davvero pieno di vita / spirito. :)

Plants vs Zombies: albero di saggezza Sarebbe bello far crescere in modo dinamico un albero simile, ma con molte più variazioni e animazioni in corso.

Il mio background: programmatore, ho usato pochi motori di gioco (Ogre3d, cocos2d, unity). Non ho davvero programmato direttamente usando openGL, cercando di risolvere il problema :).

Sono pronto a dedicare molto tempo, per favore fatemi sapere sulle API? e come potrebbe un esperto come te affrontare questo problema?

Perché 2D? Penso che sia più facile risolvere il problema considerando solo 2 dimensioni.

Ispirazioni artistiche:

Solo l' albero, con frutti e foglie, senza gli arbusti sul fondo

Il grande albero (rami visibili, foglie verdi, fiori, frutti, ecc.) A sinistra, dietro la scimmia.

PixelJunk's Eden (ispirazione stile artistico).

Albero di mele generato proceduralmente usando frattali

Per favore fatemi sapere se è stato facile per voi capire la domanda, potrei approfondire ulteriormente.

Spero che una discussione su vari approcci possa essere utile a tutti. Voi ragazzi siete fantastici.


2
Potrei non avere una risposta per te, ma mi piacerebbe sicuramente vedere dove va. Concetto fantastico!
Bloodyaugust

Ottima domanda, sono stato interessato a L-Systems per un po ', ma non ho fatto nulla con quell'interesse :)
Luther


1
@Stephen solo per sapere che questa domanda è del 2011 e ha ottenuto il necro'd in cima da parte dell'utente che ha posto la domanda di modifica Student/daStudent/Programmer
PeterT

@lalan Effettua solo modifiche sostanziali alla domanda, il fatto che non sei più uno studente non è un cambiamento sostanziale o un motivo per modificarlo.
MichaelHouse

Risposte:



8

Alcune idee per il tuo "gioco":

  • Chiedi prima all'utente un nome per il suo albero. Utilizzare quel nome per generare un seme per l'algoritmo. Quindi ogni nome avrà il suo albero unico. Il seme potrebbe anche influenzare il tipo di fogliame e il frutto dell'albero.
  • Potresti implementare una sorta di "albero tamagotchi " in cui l'albero diventa più grande e più bello più l'utente si preoccupa (fertilizzante, acqua, ecc.)
  • Crea un elenco di punteggi migliori degli alberi più alti. Un'altra idea sarebbe quella di mostrare altezze e nomi di altri utenti accanto al tuo albero. Quindi puoi confrontare l'altezza del tuo albero direttamente con altri utenti. Guarda questo video come esempio. Le nuvole indicano l'altezza raggiunta da altri utenti.

Esistono molti algoritmi e documenti per la generazione di alberi procedurali ( questo thread potrebbe essere interessante ). Un compito difficile è fondere bene i rami. Il 2D sarà sicuramente più facile in questo senso, dal momento che puoi risolverlo con l'alfa-blending.

Dato che hai esperienza con Ogre3D, Unitiy e cocos2d puoi andare avanti e implementare quella cosa (non è necessario iniziare a imparare OpenGL ora IMHO). Personalmente sceglierei cocos2d e la versione per iPad e / o iPhone, in modo che tutti possano portare con sé il proprio albero con il proprio dispositivo mobile.


1
Con quel gioco mi limiterei a giocare con L-Systems in modo sociale / competitivo.
deft_code

1
Grazie per avermi indicato il thread di gamedev. Belle idee, tamagotchi e goo-tower .. l'applicazione mobile sarebbe davvero fantastica. trovato un plug-in video 3DS Max - che è abbastanza impressionante collegamento ..
lal

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.