2012-03-20 11 views
5

Sto cercando di capire il modo migliore per animare proceduralmente la crescita di un impianto 2D in iOS.Animazione procedurale della crescita di un impianto 2D

Voglio che la pianta si animi per dare un senso di invadenza all'utente. Fondamentalmente, per animare la crescita di un ramo, con piccoli germogli che alla fine si animeranno in foglie completamente cresciute. Per respirare un po 'di vita in esso, vorrei anche che la pianta oscilli un po' mentre cresce, piuttosto che sentirsi dipinta a mano sullo schermo.

Un modo in cui ho pensato è usare le curve di CGPaths e Bezier per creare la forma del gambo e delle foglie, ma non sono completamente sicuro di come animare il disegno dei percorsi. Una volta ottenuto il "disegno" del gambo, mi piacerebbe "piantare" piccoli boccioli in certi punti del gambo, mentre la linea sta crescendo/animando e anche questi germogli inizieranno a crescere verso l'esterno dalla pianta.

Qualche suggerimento su quale percorso intraprendere per portare a termine questa attività? Preferirei animare proceduralmente anziché disegnare ogni fotogramma e animarlo in quel modo. Il mio ragionamento è che immagino che l'animazione procedurale richieda meno tempo, mi dia più controllo su diversi aspetti dell'animazione e sia riutilizzabile in altri progetti (per non parlare, sarà divertente programmare!)

I ' ho trovato questo post sul blog per il disegno di linee animate: http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/ Forse questo sarebbe un approccio di partenza per raggiungere i risultati che voglio, ho bisogno di sedermi e passare attraverso il codice che ha postato.

Inoltre, forse questo è qualcosa che sarebbe più facile da fare usando cocos2d o qualcosa di simile? O forse quartzcore e core animation funzioneranno bene.

Grazie per eventuali suggerimenti che potresti avere, qualsiasi informazione è utile a questo punto.

+0

Sei decisamente sulla strada giusta con CAShapeLayers, ma quello che stai cercando di fare è difficile. Tuttavia, ottima domanda! Sicuramente sulla mia lista dei preferiti. – pasawaya

+0

Aggiunti alcuni collegamenti di risorse come non risposta. Forse più di quello che stavi cercando, ma è una zona algoritmica molto ricca (e forse più di quanto stavi cercando). Tuttavia, potrebbe dare alcune idee. –

+0

Ho aggiunto alcune risorse alla risposta CW, ma ho la sensazione che non si stiano cercando algoritmi di generazione di alberi 3D complessi con L-Systems e simili, ma piuttosto su come animare una crescita 2D semplice, da cartone animato, giusto? – pasawaya

risposta

2

(Grande domanda! Pubblicare questo come "wiki della comunità" poiché non è una risposta ma solo alcuni riferimenti e non volevo che i link si rovinassero nei commenti. Forse la gente vuole aggiungere a questo?

Ho fatto una semplice ricerca su "codice di ramificazione dell'albero procedurale" e ci sono stati molti successi interessanti - un'area davvero ricca.

Un post sul gameDev.stackExhange indicò questa grande risorsa: Algorithmic Botany

anche Snappy Tree è abbastanza incredibile e il codice sorgente è disponibile.

Questi due anche suono interessante:

TReal è un programma in grado di generare modelli 3D di alberi realistici.

Arbaro è un'implementazione dell'algoritmo di generazione dell'albero descritto in Jason Weber & Joseph Penn: "Creazione e rendering di alberi realistici" scritto in Java.

Forse più accessibile per l'OP e con un risultato meno complesso sono questi tutorial di ActionScript su fractal trees. Il codice di disegno di ActionScript è facilmente tradotto in Core Graphics.