{"id":21,"date":"2026-08-08T13:19:34","date_gmt":"2026-08-08T16:19:34","guid":{"rendered":"https:\/\/freeanimationpower.org\/blog\/?p=21"},"modified":"2026-08-08T13:19:34","modified_gmt":"2026-08-08T16:19:34","slug":"onion_skin_viendo_pasado_futuro","status":"publish","type":"post","link":"https:\/\/freeanimationpower.org\/blog\/onion_skin_viendo_pasado_futuro\/","title":{"rendered":"Onion Skin: Viendo el Pasado y el Futuro de tu Animacion en un Solo Frame"},"content":{"rendered":"<h1><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-346 size-full\" src=\"https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-133449.png\" alt=\"\" width=\"2551\" height=\"916\" srcset=\"https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-133449.png 2551w, https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-133449-300x108.png 300w, https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-133449-1024x368.png 1024w, https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-133449-768x276.png 768w, https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-133449-1536x552.png 1536w, https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-133449-2048x735.png 2048w\" sizes=\"auto, (max-width: 2551px) 100vw, 2551px\" \/><\/h1>\n<p>En los estudios de animacion tradicional de los anos 30, los animadores trabajaban sobre mesas de luz. Colocaban una hoja de papel sobre otra y la luz inferior les permitia ver el dibujo anterior por transparencia. Asi nacian los principios de anticipacion, seguimiento y arcos. Esa tecnica tiene nombre: onion skin, piel de cebolla, por la forma en que las capas se superponen como las peliculas del bulbo.<\/p>\n<p>FAP Mobile Web lleva esa tecnica centenaria al lienzo digital con una implementacion que te permite ver no solo el pasado de tu animacion, sino tambien su futuro.<\/p>\n<h2>La mecanica de las capas fantasma<\/h2>\n<p>El sistema de onion skin de FAP muestra seis frames fantasma superpuestos sobre tu frame actual: tres anteriores y tres posteriores. Los frames previos aparecen tenidos de rojo <code>#FF4444<\/code>. Los frames posteriores, de verde <code>#44FF44<\/code>. La opacidad se degrada con la distancia al frame actual siguiendo una formula lineal:<\/p>\n<pre><code>alpha(i) = 0.35 <em> (1 - (i - 1) <\/em> 0.25)<\/code><\/pre>\n<p>Donde <code>i<\/code> es la posicion relativa al frame actual. El frame inmediatamente anterior (i = 1) tiene <code>alpha = 0.35<\/code>, un 35 por ciento de opacidad. El segundo (i = 2) baja a <code>alpha = 0.2625<\/code>, aproximadamente 26 por ciento. El tercero (i = 3) cae a <code>alpha = 0.175<\/code>. Los tres frames posteriores siguen la misma degradacion pero en el canal verde.<\/p>\n<p>Esta asimetria cromatica no es arbitraria. El rojo y el verde son colores complementarios en el espectro visible. El ojo humano los separa con facilidad incluso en condiciones de baja opacidad. Puedes ver simultaneamente de donde viene tu personaje y hacia donde va, sin confusion visual.<\/p>\n<h2>La optimizacion silenciosa: strokeCanvases<\/h2>\n<p>Aqui entra una de las decisiones arquitectonicas mas elegantes de FAP Mobile Web: los <code>strokeCanvases<\/code>. Cada frame tiene dos representaciones en memoria. El <code>frameCanvas<\/code> contiene el dibujo completo con su fondo blanco. El <code>strokeCanvas<\/code> contiene exclusivamente los trazos, sin fondo, sobre un lienzo transparente.<\/p>\n<p>Cuando el sistema necesita aplicar onion skin, no puede simplemente superponer los <code>frameCanvases<\/code>: el fondo blanco de cada uno taparia todo lo demas. En cambio, toma los <code>strokeCanvases<\/code> de los frames adyacentes, les aplica el tinte y la opacidad correspondientes, y los dibuja encima del frame actual usando <code>globalCompositeOperation = 'source-atop'<\/code>.<\/p>\n<p><code>source-atop<\/code> es una de las operaciones de composicion definidas por el estandar Porter-Duff del W3C. Dibuja el nuevo contenido solo donde el destino ya tiene pixeles opacos, respetando la transparencia del destino. En terminos practicos: el fantasma rojo o verde aparece unicamente donde tu frame actual tiene trazos, creando una superposicion limpia y legible.<\/p>\n<h2>De los trazos a la fluidez<\/h2>\n<p>La funcion <code>tintAndDraw<\/code> es el corazon del onion skin. Recibe un <code>strokeCanvas<\/code>, un color de tinte y un valor de opacidad. Primero dibuja el <code>strokeCanvas<\/code> sobre un lienzo temporal con el color solido. Luego aplica <code>globalAlpha<\/code> para la transparencia. Finalmente compone el resultado sobre tu <code>drawCanvas<\/code> usando <code>source-atop<\/code>.<\/p>\n<p>Todo esto ocurre en menos de 16 milisegundos, el presupuesto de tiempo para mantener 60 FPS en el navegador. Los calculos de opacidad son operaciones de punto flotante que el motor JavaScript resuelve en nanosegundos. La carga de los <code>strokeCanvases<\/code> adyacentes se hace bajo demanda con <code>ensureFrameCanvas<\/code>, que verifica si el buffer ya existe en memoria y, si no, lo reconstruye desde el almacenamiento.<\/p>\n<h2>Por que el onion skin cambia tu forma de animar<\/h2>\n<p>Sin onion skin, animar cuadro por cuadro es como dibujar a ciegas. Cada frame es una isla. Con onion skin activado, cada frame es un eslabon visible de una cadena temporal. Puedes ver la trayectoria completa de un movimiento mientras lo dibujas. Detectas errores de interpolacion antes de llegar al frame 10. Ajustas timing y spacing con precision milimetrica.<\/p>\n<p>Los grandes animadores de Disney pasaron decadas perfeccionando esta tecnica sobre mesas de luz de madera y vidrio esmerilado. Tu tienes la misma capacidad, con tres frames de pasado y tres de futuro, con codigo abierto y en tu telefono. La unica diferencia es que no necesitas bombillas.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-347 size-full\" src=\"https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-131943.png\" alt=\"\" width=\"1906\" height=\"867\" srcset=\"https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-131943.png 1906w, https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-131943-300x136.png 300w, https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-131943-1024x466.png 1024w, https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-131943-768x349.png 768w, https:\/\/freeanimationpower.org\/blog\/wp-content\/uploads\/2026\/08\/Captura-de-pantalla-2026-08-07-131943-1536x699.png 1536w\" sizes=\"auto, (max-width: 1906px) 100vw, 1906px\" \/><\/p>\n<hr \/>\n<p><strong>Hashtags:<\/strong> #onionSkin #pielDeCebolla #animaci\u00f3nTradicional #traditionalAnimation #mesaDeLuz #lightTable #framesFantasma #ghostFrames #pasadoYFuturo #pastAndFuture #tinteRojo #redTint #FF4444 #tinteVerde #greenTint #44FF44 #coloresComplementarios #complementaryColors #degradaci\u00f3nDeOpacidad #alphaDegradation #strokeCanvases #frameCanvas #drawCanvas #tintAndDraw #PorterDuff #sourceAtop #compositingStandard #W3Cstandard #globalCompositeOperation #60FPS #16milisegundos #16msBudget #ensureFrameCanvas #cargaBajoDemanda #lazyLoading #timing #spacing #precisi\u00f3nDeAnimaci\u00f3n #animationPrecision #anticipaci\u00f3n #seguimiento #arcos #animationArcs #12PrincipiosDeAnimaci\u00f3n #DisneyAnimation #eslab\u00f3nTemporal #timeChain #visualizaci\u00f3nTemporal #temporalVisualization #animaci\u00f3nCuadroPorCuadro #frameByFrame #c\u00f3digoAbierto #openSourceAnimation #mesaDeLuzDigital #digitalLightTable #onionSkinM\u00f3vil #mobileOnionSkin #sinBombillas #lightlessAnimation<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En los estudios de animacion tradicional de los anos 30, los animadores trabajaban sobre mesas de luz. Colocaban una hoja de papel sobre otra y [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-21","post","type-post","status-publish","format-standard","hentry","category-fap-mobile-web"],"_links":{"self":[{"href":"https:\/\/freeanimationpower.org\/blog\/wp-json\/wp\/v2\/posts\/21","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/freeanimationpower.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/freeanimationpower.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/freeanimationpower.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/freeanimationpower.org\/blog\/wp-json\/wp\/v2\/comments?post=21"}],"version-history":[{"count":4,"href":"https:\/\/freeanimationpower.org\/blog\/wp-json\/wp\/v2\/posts\/21\/revisions"}],"predecessor-version":[{"id":348,"href":"https:\/\/freeanimationpower.org\/blog\/wp-json\/wp\/v2\/posts\/21\/revisions\/348"}],"wp:attachment":[{"href":"https:\/\/freeanimationpower.org\/blog\/wp-json\/wp\/v2\/media?parent=21"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/freeanimationpower.org\/blog\/wp-json\/wp\/v2\/categories?post=21"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/freeanimationpower.org\/blog\/wp-json\/wp\/v2\/tags?post=21"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}