2012-03-20 8 views
5

Estoy tratando de encontrar la mejor manera de animar el crecimiento de una planta en 2D en iOS.Animación procesal del crecimiento de una planta en 2D

Quiero que la planta se anime para dar una sensación de invasión al usuario. Básicamente, para animar el crecimiento de una rama, con pequeños brotes que eventualmente se animarán para formar hojas completamente desarrolladas. Para darle un poco de vida, también me gustaría que la planta se balancee un poco a medida que crece, en lugar de sentirse pintada a mano en la pantalla.

Una forma en la que he pensado es utilizar curvas CGPaths y Bezier para crear la forma del tallo y las hojas, pero no estoy muy seguro de cómo animar el dibujo de las rutas. Una vez que obtenga el "dibujo" del tallo, me gustaría "plantar" pequeños brotes en ciertos puntos del tallo, ya que la línea está creciendo/animando y estos brotes también comenzarán a crecer hacia afuera de la planta.

¿Alguna sugerencia sobre qué ruta tomar para llevar a cabo esta tarea? Preferiría animar procedimentalmente en lugar de dibujar a mano cada fotograma y animar de esa manera. Mi razonamiento es que imagino que la animación procesal consumirá menos tiempo, me dará más control sobre diferentes aspectos de la animación y será reutilizable en otros proyectos (¡sin mencionar que será divertido programar!)

I ' he encontrado esta publicación de blog para el dibujo de líneas animadas: http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/ Quizás este sería un enfoque inicial para lograr los resultados que quiero, necesito sentarme y revisar el código que publicó.

Además, tal vez esto es algo que sería más fácil de hacer con Cocos2d o algo similar? O quizás la animación de cuarzo y núcleo funcionará bien.

Gracias por cualquier sugerencia que pueda tener, cualquier información es útil en este punto.

+0

Definitivamente está en el camino correcto con CAShapeLayers, pero lo que está tratando de hacer es complicado. Sin embargo, gran pregunta! Definitivamente en mi lista de favoritos. – pasawaya

+0

Agregó algunos enlaces de recursos como no respuesta. Tal vez más de lo que estabas buscando, pero es un área algorítmica muy rica (y tal vez más de lo que estabas buscando). No obstante, podría dar algunas ideas. –

+0

Agregué algunos recursos a la respuesta de CW, pero me da la sensación de que no estás buscando algoritmos complejos de generación de árboles en 3D con L-Systems y cosas por el estilo, sino más bien cómo animar un simple crecimiento en 2D de árbol caricaturesco, ¿verdad? – pasawaya

Respuesta

2

(¡Gran pregunta! Publicar esto como un "wiki comunitario" ya que no es una respuesta sino solo algunas referencias y no quería que los enlaces se estropeasen en los comentarios. ¿Quizás la gente quiera agregar algo a esto?)

Hice una búsqueda simple en "código de ramificación de árbol de procedimiento" y hubo muchos éxitos interesantes - área muy rica.

Un post en gameDev.stackExhange señaló a este gran recurso: Algorithmic Botany

también Snappy Tree es bastante sorprendente y el código fuente está disponible.

Estos dos también suena interesante:

TReal es un programa capaz de generar modelos realistas en 3D de árboles.

Arbaro es una implementación del algoritmo de generación de árbol descrito en Jason Weber & Joseph Penn: "Creación y representación de árboles realistas" escrito en Java.

Tal vez más accesibles para el OP y con un resultado menos complejo son estos tutoriales de ActionScript en fractal trees. El código de dibujo de ActionScript se traduce fácilmente a Core Graphics.

Cuestiones relacionadas