GARUDA RAMUDA

Dragon's Crown Elf - Vagrant Story style

Ever play Vagrant Story? It was a few years too many before my time, but I recently heard about it from a friend and found myself enamored with its unique and remarkably well-aged artstyle. The textures manage to incorporate smooth blending while also having prominent pixel-level details, making the most of the texture space available.

I was particularly impressed by the model for Neesa. The face detail, skin shading, and overall impression she gives off makes her easily the most memorable design in my mind. I decided to use her as the primary reference for the model, and then moved on to picking out a character to adapt into the style.

In the end, I settled on the Elf from Dragon’s Crown for a number of reasons. Her design is relatively clean and simple, yet features highly distinctive elements like the notched tunic and high boots. Moreover, her cloak, bow and quiver provide a lot of visual intrigue and really help buff out her relatively plain figure when she’s in active poses.

UV Map lessons

The first major lesson I learnt from my reference was some great practices for UV unwrapping lowpoly models. While the UV packing of Vagrant Story is extremely unfriendly to mipmaps due to the lack of padding, it is great for models that are always going to be viewed relatively close to the camera, and the performance overhead of such lowpoly models with low-res textures is quite minuscule by today’s standards, anyway.

More than anything, I wanted to try my hand at achieving the same level of space efficiency and tight packing. It almost feels like a jigsaw puzzle, with some additional tricks related to UV stacking and scaling to really push the most out of the limited space available.

How do you render, anyway?

That’s a tough question! I hardly had much of an idea myself prior to this model; I had mostly opted for simple shading that differentiated forms and gave my models depth even in the absence of any lighting or shadows. In the leadup to texturing, I spent several days on rendering studies to give me more understanding of how light interacts with the skin.

Once I felt ready, I finished the base mesh and UV unwrapping process, exported a color-blocked texture, and used it as a guide for rendering over top of it in Clip Studio Paint.

I then exported this image to use as a guide for making the pixel version of the texture. With the skintones laid out in CSP, I condense the colors to a smaller palette that I use to shade the skin on her face, arms and legs. I also make a few affordances on details like the eyes that are too small to be replicated on a pixel level, adapting them to be more appropriate for the style.

Since this project, I’ve cut out the middleman and started rendering skin in pixel art to boot.

The final texture and UV map.

What’s going on with that bow?

I’m glad you asked! For the bow, I took an alternative approach to shading. Rather than manually picking out colors for the palette and applying anti-aliasing and blending by hand in Aseprite, I instead made heavy use of Blender’s built-in texture painting tools to lay out and blend colors with more automation. Once shaded in Blender, I took the bow’s texture into Aseprite once more and used its automatic palette tools in order to compress the palette and automatically combine similar colors on the texture, bringing it in line with the appearance of the main body.

This approach was advantageous in allowing me to paint details that appear smooth from a distance while still adhering to a reasonable color count.

Final thoughts

And that’s about it! Here’s some close-up shots highlighting the final product.

I’m quite a fan of her braids.

Simple and effective was the idea for the cloak’s shading. This was necessary due to the immense amount of UV distortion it incurred just to fit onto her UV map.