¡Esta es una revisión vieja del documento!
Tutorial de Arte ASCII
Este es una versión cariñosamente wikificada del tutorial “Técnicas Gráficas ASCII” de Rowan Crawford.
1. Introducción
Producir imágenes a partir de ASCII es una idea extraña, pero los resultados a veces pueden ser bastante impresionantes. Aunque existen muchas formas diferentes de arte ASCII, todas utilizan básicamente las mismas ideas para producir el resultado final.
Las técnicas que utilizo se basan en unas reglas sencillas. Estas reglas me ayudan a decidir qué carácter usar y dónde colocarlo. Claro que no son reglas estrictas, pero constituyen una buena base sobre la que construir una imagen.
Esta no pretende ser una guía definitiva para la creación de ASCII, sino simplemente un análisis de mi enfoque en el tema.
2. Arte lineal
El arte lineal consiste en representar una imagen únicamente mediante sus contornos y detalles. El cómic es un buen material para este tipo de trabajo, ya que se cuenta con un contorno definido a partir del cual trabajar. Sin embargo, cualquier imagen puede reproducirse simplemente definiendo sus límites.
Hay muchos caracteres estándar que se pueden aplicar a esta forma de arte ASCII. Estos son los más obvios:
/ \ | - _ + ( ) < > , . ~ ^ " V X T Y I l L : ` ' ! j J 7
Empieza por encontrar un área de la imagen bastante simple. A partir de ahí, recorre el perímetro creando un contorno usando solo estos caracteres ASCII básicos:
/ \ | - _ ( )
Intenta que las proporciones sean correctas en esta etapa, ya que es importante, y cuanto más tardes en hacerlo, más difícil será corregirlo. También puedes dibujar algunos de los detalles más grandes en esta etapa, lo que puede ayudar a que las proporciones sean correctas.
Una vez que estés satisfecho con eso, es hora de revisar todo y trabajar en el suavizado. Me gusta que *todas* las líneas estén conectadas, sin dejar espacios grandes como:
<code>~~~~~~~~________</code>
Si me encuentro con un área donde no hay una selección definitiva de caracteres, puedo decidir añadir un detalle adicional. Por ejemplo, las líneas casi verticales son prácticamente imposibles en ASCII. Aquí tienes algunas opciones:
| | | | |
| l l. \ l
| I `| Y `L
| | | | |
COMIENZO ^----------OPCIONES--------^
Como pueden ver, ninguno de ellos produce los resultados “perfectos” que me gustaría. En este caso, intentaría añadir algún tipo de detalle para así eliminar el problema. No siempre funciona, pero vale la pena intentarlo.
Las líneas casi horizontales son mucho más fáciles (por suerte). Usando estos caracteres: ( ~“-.,_ ) se puede producir fácilmente una línea bastante decente. El ejemplo anterior (horizontal) se convertiría
__
"~~"----..,___
O al menos algo parecido. Suelo ser muy quisquilloso y coloco la coma justo antes del guion bajo, ya que está un píxel más abajo que el punto (”.“). También me gusta seleccionar cuidadosamente entre ” y ~, ya que cada uno tiene sus propias propiedades distintivas. Evita usar esta técnica en ángulos de alrededor de 30 grados (se ve un poco extraño) y en ángulos muy pequeños (ya que resulta en una línea larga de puntos, lo cual no queda bien).
De hecho, la selección de la imagen es muy importante para determinar el aspecto final. También puedes cambiar ciertas partes de la imagen para que funcionen mejor en el formato ASCII. Por ejemplo, en lugar de intentar crear una línea casi vertical, hazla perfectamente vertical.
Las curvas también juegan un papel importante en el arte ASCII. Aunque el conjunto de caracteres ASCII estándar no admite curvas directamente (aparte de “(” y “)”, por supuesto :), puedes obtener curvas bonitas con un poco de práctica.
Estos son los caracteres más utilizados para crear curvas:
/ \ - _ ~ " . , ' ` ! I l Y
Y aquí hay un par de curvas de muestra para demostrar la idea:
___
.-~" "~-. /
/ \ _.-~
Y Y ,^
| | /
l ! /
\ / __.-~
"-.,___,.-"
CIRCULO CURVAS SUTILES
A algunas personas no les gustaría el uso de “Y” y “^”, pero para mí, las ventajas superan las desventajas. Observe también el uso de “l” y “!” para que la transición de vertical a angular sea menos pronunciada.
También considero importante la elección entre “.” y “,” porque afecta la suavidad de la línea. Por ejemplo, en la parte de la curva anterior: _.- :parece que “,” podría haber sido una mejor opción:
/
_,-~
,^
/
/
_,-~
CURVA USANDO COMA
Pero como puede apreciar aquí, el uso de la,ha alterado ligeramente la fluidez de la línea. Ahora aparece mas como un “escalón” que como una línea en ángulo.
Las intersecciones requieren otra estrategia. A menudo, encontrarás que una línea debe unirse con otra en un punto donde la unión no es precisa:
"-._ / "-._ /
/ 7
/ /
INTERSECCIÓN CORREGIDA
Aquí la línea que intersecta debería unirse a la primera parte en su sección media a través de un “/”. Es aquí donde podrá usar algún otro caracter. En este ejemplo, un “7” funciona adecuadamente, como se aprecia en el ejemplo corregido.
También puedes probar “Z”, “X”, “T”, “Y” como reemplazo, pero depende completamente de lo que suceda alrededor de ese punto para determinar qué carácter funciona mejor. Otros caracteres que funcionan bien en estas situaciones son “K”, “<” “>”, “r”, “L”, “j”, “J” e “I”, ya que todos apuntan en al menos tres direcciones.
Después de practicar, puedes aplicar el suavizado mientras dibujas el contorno principal. No es que realmente marque ninguna diferencia.
Esto básicamente cubre las técnicas de contorno. Los detalles más pequeños son el siguiente y último paso. Agregar detalles no siempre es necesario, pero lo será en la mayoría de los casos. Ojos, narices, uñas, interruptores, perillas, manijas y muchos otros elementos suelen estar confinados a uno o dos espacios de carácter, por lo que la elección de los caracteres es muy importante.
Los ojos son un ejemplo común. Tienes varios personajes diferentes disponibles que funcionan bien como ojos, pero tú decides cuáles funcionan mejor. Debes decidir qué emoción quieres representar y luego encontrar el personaje adecuado.
Por ejemplo, he usado dos “6” para un canguro, una combinación de “bd” para un caballo, un par de “r” para una jirafa y -=b- como el ojo de un águila. En cada caso, probé varias combinaciones diferentes hasta que quedé satisfecho con la selección.
.
/\ /| . , ___,A.A_ __ _____
((.Y(! |\/| \ , 7"_/ / ~"-.
\ |/ bd "n. ~"T( r r) Y -=b-. _)
/ 6~6, / _,"n | \ Y l c"~o \
\ _ +-. <co>'\ | ~\ .| \_.-~"~--. )
\`-=--^-' ~~ | |`-' )/
\ \ '
Otros detalles son igualmente importantes, y se utiliza la misma técnica. Simplemente se prueban diferentes combinaciones de personajes hasta encontrar una “solución”. A veces no hay una disposición óptima, así que hay que aceptarla o reorganizar las cosas lo justo para obtener un nuevo enfoque.
____
.-~. /_"-._
/ /_ "~o\ :Y
/ : \~x. ` ')
! | Y< ~-.__j
: l l< /.-~
l /~\ \<|Y
'.-~\ \L|
"--'
<code>
> Esta cabeza de Tiranosaurio Rex demuestra cómo aprovechar al máximo las formas de los personajes. La "''L''" de la parte inferior une tres conexiones a la perfección, al igual que la "''Y''" en la parte posterior de la boca. Estos son aspectos a tener en cuenta al crear una imagen, y al usar los personajes de esta manera, se puede obtener una gran cantidad de detalle en un área pequeña.
====3. Arte pequeño/de firma====
Las obras de arte más pequeñas requieren un enfoque ligeramente diferente al de las piezas grandes. Debido al área más pequeña, no siempre es posible recrear una imagen a la perfección, por lo que se requiere una mentalidad diferente.
Tomemos, por ejemplo, la cabeza de canguro de arriba. La nuca debería ser curva, por supuesto, pero esto no fue posible con solo dos personajes.
Sin embargo, en imágenes pequeñas, no siempre es necesario ser tan detallado; es más importante centrarse en que el objeto sea inmediatamente identificable.
Las imágenes ASCII pequeñas suelen partir de un motivo o idea simple. La forma en que ciertos personajes encajan a menudo crea la idea, y una vez encontrada, se tiene una base sobre la que trabajar.
___
{~._.~} This little koala pic is a good example of how a
( Y ) relatively simple collection of characters can
()~*~() produce a very "familiar" result. Some experimenting
(_)-(_) was done with the eyes, "bow tie" and the bottom "-",
with these being chosen simply because they worked the
best. Different "eye" characters produced different emotional feelings
(which is how the "Koala Collection" came about), but the simple "."
resulted in the most familiar appearance.
Remember, shape is the most important aspect of small ascii art. There
are so many different shaped ascii characters available that there
is bound to be one which fits the needs
_ . of the picture. This example is a "mini"
__CL\H--. Millennium Falcon. Since I'd already
L__/_\H' \\--_- drawn a bigger one, I knew exactly what
__L_(=): ]-_ _-- - shape it needed to be, and what features
T__\ /H. //---- - it needed to make it look like the Falcon.
~^-H--'
" Identificar las características principales es un buen paso y luego buscar personajes que se asemejen mucho a ellas. Por ejemplo, los blásters del Falcon se emularon bien con el "=". La combinación de "CL" funcionó a la perfección como cabina, al igual que un simple ":" para las marcas distintivas en su parte trasera.
La simplicidad es clave en el arte pequeño, pero eso no necesariamente facilita las cosas. Muchas cosas simplemente no se pueden dibujar con éxito en tamaños pequeños, por lo que un poco de planificación a veces ayuda.
====4. Arte Sólido====
El arte ASCII sólido se diferencia del arte lineal en que la imagen resultante es más una "silueta" que un contorno.
Al usar un carácter "pesado" como: W M H 8: se crea una silueta básica (contorno relleno) y luego se usan otros caracteres para suavizar la imagen.
"W" y "M" son los caracteres más oscuros en la mayoría de los sets de caracteres, pero varían bastante y son demasiado recargados en la parte inferior y superior, lo que arruina un poco el efecto. "H" y "8" también producen patrones de oscuridad similar, pero resultan en dos "aspectos" diferentes. La "H" es más austera y rígida, mientras que la "8" produce una apariencia más burbujeante (que, al parecer, se imprime bastante bien).
<code>
WWWWWWWW MMMMMMMM HHHHHHHH 88888888
WWWWWWWW MMMMMMMM HHHHHHHH 88888888
WWWWWWWW MMMMMMMM HHHHHHHH 88888888
WWWWWWWW MMMMMMMM HHHHHHHH 88888888
Originalmente usaba “M” y “W” porque combinaban bien con la fuente que usaba antes, pero ahora uso “H” porque me gusta su consistencia. Otras personas prefieren “8”, así que es solo cuestión de gustos. De hecho, reasignar una imagen de un tipo a otro es bastante sencillo y no debería afectar la imagen en absoluto.
Se pueden crear diferentes efectos variando la textura elegida en varias secciones de la imagen (sombreado). La elección del carácter también puede basarse en el tema; por ejemplo, si se trata de dinero, la opción obvia sería un “$”. Sin embargo, intenta evitar usar “*”, ya que queda un poco cursi (en mi humilde opinión).
Una vez definida la forma básica con el carácter elegido, el siguiente paso es el suavizado. Los caracteres más utilizados son:
d b P F 9 V T Y A U _ , . - * ^ ~ " ` ' n a o l L j J k [ ] ( ) : \ / | !
Cada personaje tiene un propósito según su forma, aunque hay casos en los que ningún personaje produce resultados perfectos. En estos casos, hay que improvisar lo mejor posible o remodelar esa zona específica de la imagen, lo que proporciona un enfoque innovador.
Volviendo a los ejemplos de “curvas” anteriores, aquí están en forma sólida:
.adAHHHAbn. JHH
dHHHHHHHHHHHb _.adHHH
dHHHHHHHHHHHHHb ,AHHHHHHH
HHHHHHHHHHHHHHH dHHHHHHHHH
VHHHHHHHHHHHHHP JHHHHHHHHHH
YHHHHHHHHHHHP _.adHHHHHHHHHHH
"^YUHHHUP^" HHHHHHHHHHHHHHHH
"~"
ESFERA COLINA CURVADA
Es importante comprender bien cómo usar mejor los caracteres. Las formas básicas son las siguientes:
_,.aomdAHAbmon.,_ For the upper curves.
"~^*YUHUP*^~" For the lower curves.
Los caracteres: d b P son extremadamente útiles, pero no hay un carácter equivalente para la parte inferior/izquierda. Sin embargo, hay cuatro caracteres disponibles que funcionan bastante bien: T Y V 9. El 9 funciona bien para algunos conjuntos de caracteres, pero generalmente tiene un gran gancho en la parte inferior, por lo que no es tan útil.
Observa cómo usé “A” y “U” para suavizar la transición de “H” a “d”/“b” (e “Y”/“P” respectivamente), aunque el efecto es bastante subliminal. Un detalle menor, pero ayuda. No suelo usar “_” en este tipo de imágenes por la forma en que toca la parte superior de la “H”. Sin embargo, a veces resulta útil.
Las curvas laterales requieren un enfoque más preciso. Los caracteres:
l [ ] : j i : son muy útiles para suavizar curvas verticales, y también he visto el uso de “(” y “)” (aunque yo no los usaría). La consistencia en el contraste es muy importante.
Añadir detalles con la técnica ASCII sólida es un poco más difícil que en el arte lineal, ya que no hay el mismo número de opciones posibles para cada posición. Las letras: a n o : son muy útiles porque son caracteres sólidos que solo ocupan la mitad inferior del espacio, pero no hay una buena alternativa para la mitad superior.
dHF^^^ See how the bottom arm fits in with the solid
dHP appearance of the main part, yet the "^" (which
dHBooan is the closest char available) doesn't look so
beefy. Even the "^" varies across different char
sets, so that leaves just: " ~ : which are of no use at all. In that
particular case, it is necessary to expand the picture by one line:
anpoan Note the use of the "p" to make the effect just
dHP that little bit more effective. An "r" could also
dHP work well at the end of each arm. Purely cosmetic
dHBooan though. Note that if you're using "M" or "W", then
"m" and "w" can be used to keep it consistent.
Details aren't always as simple as that example though (unfortunately).
HHHH aann .aoon.
HHHHHHHHHHHHH aanndHHHHHHP" "^vaondAHHHHHP"
HHHHHHH "~^YHHHHH "~^SHHHHH
HHHHHHHHHH dHHHHHHb .adHHHHHHh,
HHHHHH ~^VHHHP ~^VHHHP
HH YHP "VP
COMIENZO PROGRESANDO TERMINADO
Aquí se pueden ver los diferentes pasos. Comienza dibujando la forma (la cabeza de un mago, por cierto) usando el personaje elegido. A continuación, repasa todos los bordes, haciendo los reemplazos obvios. Eso significa usar:
d P b Y V' a n :más el ocasional: “ ~ :si hay un lugar obvio para ello. Solo lo suficiente para darle forma.
La etapa final requiere un poco más de trabajo. Comienza con ”A“ y ”U“/”V“, y luego el resto es pura experimentación. Se eligió la “S” porque parecía tener la forma correcta, aunque hay muchos caracteres que
realmente podrían ir ahí.
La sección curva de la parte posterior requirió bastante trabajo. Una ”a“ parece ser el mejor opuesto a una ”n“, y para tramos largos, me gusta usar
algunas ”o“ para variar un poco. La pieza: ”^ :al final era una combinación obvia, así que solo era cuestión de encontrar un carácter
que conectara la “a” con el “^”. Resultó que la “v” estaba hecha a medida para esa posición.
WMHI: .:IHb. I Smooth shading can be created by using
MH[: .adAHHHI:. :H different chars to fade out at the edges,
HI: .:IHHHHHI:' .jIH instead of the anti-aliasing (which
Y: `:YHHI:' .:|IHM produces hard edges).
Buenos caracteres “exteriores” son: . , : ; ' '`
Para la transición del borde sólido al exterior: I H A U V T Y | i j d b
n a o [ ] : o básicamente cualquier cosa que produzca el efecto deseado.
Tanto las técnicas de línea como las de sólido se pueden combinar, dando como resultado una apariencia de cómic. Cada forma de arte ASCII funciona bien en ciertas circunstancias, así que ¿por qué no aprovecharla? El arte lineal se utiliza para los contornos y pequeños detalles, y el arte sólido para áreas oscuras grandes.
5. Arte tridimensional
El arte ASCII 3D es básicamente una extensión de SIRDS, que permite crear la ilusión de profundidad en una superficie plana. Esto se consigue creando dos versiones ligeramente diferentes de una misma imagen y colocándolas a cierta distancia.
. . Focus Point
/ \
/ \ x Where the image appears
/ x \
--- --- __ The original pictures on the screen
/ \
/ \ /\ Where your eyes are looking
/ \
O O OO Your eyes
PLAN VIEW
Aunque la escala y los ángulos son un poco diferentes, el principio básico se puede apreciar en el diagrama anterior (visto desde abajo). Las dos versiones de la imagen se encuentran en la pantalla, pero no miras hacia allí. Debes enfocar un punto *más allá* de la pantalla, lo que produce una tercera imagen en “x”.
Esta imagen resultante se produce debido al funcionamiento de los ojos. Solo pueden enfocar una “profundidad” a la vez, y cualquier cosa que esté más lejos o más cerca se ve borrosa. Estos “desenfoques” son simplemente dos vistas diferentes del mismo objeto, producidas por los dos ojos que ven cosas distintas.
Prueba esto: colócate a un metro de una pared. Ahora, levanta dos dedos a aproximadamente 30 cm de tu cara y separados por aproximadamente 1,5 centímetros. Mira entre los dedos y enfoca la pared. Mantén la vista fija en la pared, pero mira hacia el primer plano, a tus dedos. Deberías ver una imagen fantasma de ambos dedos convergiendo en el centro. El truco está en que las dos imágenes fantasma se superpongan, resultando (con suerte) en una sola imagen sólida. Esta imagen debería aparecer en un nivel diferente al de las originales:
| | | | |
| | | | |
DOS DEDOS IMAGEN RESULTANTE
Los resultados de este experimento no serán 100% perfectos, ya que es probable que tus dos dedos sean diferentes, pero es una buena manera de comprender el concepto. Con un poco de práctica, deberías poder enfocar imágenes 3D reales sin demasiado esfuerzo.
- – — Note that if you cross your eyes instead of using the
\ / above technique, you actually see the picture in reverse.
\/ This diagram shows the effect from above, and the resulting
/\ image will appear where the lines cross over. Since most
/ \ stereograms (STARE-eograms?) are created to go into the
/ \ screen, looking at them this way will produce an incorrect
O O vision (and is somewhat harder on the eyes).
Ya hemos superado lo difícil, ahora un poco sobre cómo crearlos. Volviendo al ejemplo del pequeño koala (que tiene el tamaño perfecto para este tipo de trabajo), vamos a llevarlo a tres dimensiones.
X X Here I have placed two koalas 10 chars
___ ___ apart from each other. Generally, a good
{~._.~} {~._.~} distance would be between 7 and 15 chars,
( Y ) ( Y ) although you can use any distance you like.
()~*~() ()~*~() Values outside those bounds tend to be
(_)-(_) (_)-(_) difficult to focus on however.
La distancia determina cuánto se integra la imagen resultante en la pantalla. Si la distancia es 0 (es decir, sin separación), la imagen es neutra, lo que significa que aparece en la pantalla. A medida que aumenta la distancia, la imagen resultante se integra más en la pantalla.
Al tener muchos koalas distribuidos en la pantalla (todos separados por la misma distancia), el efecto se vuelve ligeramente más fácil de enfocar. Cualquier capa adicional debe agregarse a lo largo de toda la imagen, con un resultado bastante efectivo.
La imagen es bastante aburrida hasta ahora, con solo una capa 3D creada, así que el siguiente paso es agregar una o dos capas más. El método más probado es agregar un poste frente a él, y como lo queremos frente a la capa existente, cada poste debe estar separado por 9 caracteres.
_ _ _ _ _ _ _ _
(_) (_) (_) (_) (_) (_) (_) (_)
H___ H ___ H ___ H ___ H ___ H ___H __H
{H._.~} H~._.~} H{~._.~} H {~._.~}H {~._.~H {~._.H} {~._H~}
H Y ) H( Y ) H ( Y ) H ( Y ) H ( Y )H ( Y H ( YH)
(H~*~() H)~*~() H()~*~() H ()~*~()H ()~*~(H ()~*~H) ()~*H()
(H)-(_) H_)-(_) H(_)-(_) H (_)-(_)H (_)-(_H (_)-(H) (_)-H_)
H H H H H H H H
~"~~~~~~~~"~~~~~~~~"~~~~~~~~"~~~~~~~~"~~~~~~~~"~~~~~~~~"~~~~~~~~"~~
Observa que, dado que el poste debe aparecer delante del koala, en realidad lo reemplaza en la zona donde se superponen. Aquí está la misma imagen, solo que el poste aparece detrás del koala:
_ _ _ _ _ _
(_) (_) (_) (_) (_) (_)
___ H ___ H ___ H ___ H ___ H ___ H___
{~._.~} {~._.~}H {~._.~} H {~._.~} H{~._.~} {~._.~} {~._.~}
( Y )H ( Y ) H ( Y ) H ( Y ) H ( Y ) H( Y ) ( Y )
()~*~() ()~*~()H ()~*~() H ()~*~() H()~*~() ()~*~() ()~*~()
(_)-(_) (_)-(_)H (_)-(_) H (_)-(_) H(_)-(_) (_)-(_) (_)-(_)
H H H H H H
~~~~~~"~~~~~~~~~~"~~~~~~~~~~"~~~~~~~~~~"~~~~~~~~~~"~~~~~~~~~~"~~~~~
Ahora bien, como el poste debe aparecer detrás del koala, sus caracteres no se superponen. Los postes aquí están separados por 11 caracteres, por lo que aparecen un paso detrás del koala. Todas las capas se construyen así, y, por supuesto, podría tener los postes tanto detrás como delante del koala en la misma imagen. Aquí hay un ejemplo de varias capas:
_ _
.-~ \ .-~ \
/ \ _ / \ _
~x .-~_)_ ~x .-~_)_ This picture has 3 distinct layers:
~>x".-~ ~-. ~x".-~ ~-. the hat, head and face. There are
( / \ ( / \ many other examples of 3D ascii
T o o Y T o o Y around, plus there are programs
l < ! l < ! available for the easy creation
\ .__/ / \ ._/ / of SIRDS.
"-.___.-' "-.___.-'
Un rápido vistazo a la imagen de arriba muestra que la cabeza (círculo), parte del sombrero y parte de la boca tienen una separación de 15 caracteres. El resto de la cara tiene una separación de tan solo 14 caracteres, y la parte superior del sombrero tiene una separación de 16 caracteres.
Tenga en cuenta que toda esta información se basa en la observación, por lo que podría no ser 100 % precisa.
6. Conclusion
Perhaps there's more to ascii art than
meets the eye? Before writing this, I .
had no idea just how much thought goes /\ /l
into creating ascii pictures, and I ((.Y(!
imagine that I haven't even begun to \ |/
cover it all. / 6~6,
\ _ +-.
Analyzing the work of other people is \`-=--^-'
a great way to learn what works, and \ \
what doesn't. Analyzing "art" may seem _/ \
like a strange concept, but it does ( . Y
open your awareness to the art form, and /"\ `--^--v--.
it's a great way to learn the various / _ `--"T~\/~\/
techniques. I hope that you have found / " ~\. !
my ideas about ascii interesting. _ Y Y./'
Y^| | |~~7
In the end however, it's up to the | l | / ./'
individual artist to work the way they | `L | Y .^/~T
want to, and not necessarily the way | l ! | |/| | -Row
someone else would do it. Finding | .`\/' | Y | !
your own style is all part of the fun, l "~ j l j_L______
and perhaps this text will aid people \,____{ __"~ __ ,\_,\_
in finding that style.
