Blender to Sprite


#1

I spend the last 2 days learning blender. main reason is, i am too lazy for massive sprite work, but want smooth animations. so i thought, 3d is a fast way.
developing, and render process still needs to improve alot, but here i am 2 days later with an animation of 600 frames, wich would have taken me weeks to make, even tho handdrawn looks better imo.

this animation is a short version of 250 sprites.
blender

and clothes, hair and armor updates for every animation will be much much faster.

Tools i used:
Blender 2.76 (cause old pc/latest version to support <GL3), daz studio, DesignDoll, Mixamo.
I used Design Doll first, to make the general body type, then i make some fine adjustment in daz, then used mixamo to rig the body for me and animate. then used blender to texture paint, set the materials and shaders to best suit my needs for a sprite and finally set up all sorts of render options, to get a sprite looking result.

Has anyone here expirience with this process and can share some insights?
my knowlage of phython is close to zero, but the option to write scrips that do the tidious steps sounds alluring to me.

I like the result:
https://www.deviantart.com/cytherslash/art/BlenderAnims-860383069


#2

You should have use Blender 2.8…it has Real time render support…My Gpu Burned out for 3 month now …I can still use that without gpu for simple modeling and animation. And Blender 2.76 is very bad in my opinion try to use 2.79 at minimum .


#3

I use Blender for everything (from modelling, animation, texturing, etc). then export all frames and then I make adjustments frame by frame with Photoshop.
If you want to render directly with a pixel art style, google for “blender pixel” and you will get a lot of examples on the subject.


#4

as stated in OP, 2.76 is the latest version i can run.


#5

I tried to make a script that does the rendersteps for me, but for some reason my filepath seems unreadable

Here the script:

import bpy
from math import radians
from os.path import join

S = bpy.context.scene

renderFolder = "C:\Users\gertrud\Documents\GDevelop projects\Hunters\Myproject21\sprites\thief suit\noWeapon\runRoll"

camParent = bpy.data.objects['rotationmask']

startFrame = 1 # replace with your start frame
endFrame  = 43 # replace with your end frame
numAngles = 8
rotAngle  = 360 / numAngles

for i in range(numAngles):
# Set camera angle via parent
angle = i * rotAngle
camParent.rotation_euler.z = radians( angle )

# Render animation
for f in range(startFrame,endFrame + 1):
    S.frame_set( f ) # Set frame

    frmNum   = str( f-startFrame ).zfill(3) # Formats 5 --> 005
    fileName = "angle_{a}_frm_{f}".format( a = angle, f = frmNum)
    fileName += S.render.file_extension
    bpy.context.scene.render.filepath = join( renderFolder, fileName )

    bpy.ops.render.render(write_still = True)

but i only get this error massage:

Any clue?


#6

Solved the issue by putting an r in front of the path.
The script works! :smile:


#7

Hey I didn’t get it what you was trying to do?


#8

Render an animation and when it’s done rotate the camera by 45 degree around the char and render it again. Repeat till the animation is rendered from 8 angles (directions).

Very useful cause the pc I am working with has no graphic card and takes a minute to render a 128px sprite.
With this script setup I do not have to check the pc every 17 mins to render a 17 frames animation, turn the camera by 45 degree and render again. This way I can let the pc do the rendering of bigger animations over night too.


#9

Oh… Are you using cycles render engine or open gl?


#10

cycles [20characters]


#11

I fell sad for you :disappointed_relieved:waiting for render is the worst … new blender versions are faster than 2.76…even 2.79 is very fast and in evee in 2.8 it is a work of min… If you need Rendering help My pc is capable enough to lend a hand…


#12

I didn’t even consider that option. Would that even work? I mean if you open my file would it load the render settings? Would it look the same?
Are old versions compatible in 2.8?

It would be awesome and we can give it a try.
The pc atm is the world most inefficient renderfarm. Should be done in like 6h then I’ll send you the file.
Would be nice to actually work on my games again


#13

Idk 2.76 but I use 2.79 and 2.83 in daily basis …and my 2.79 files open in 2.83 and 2.83 file also open in 2.79.
I think 2.76 file can be open with 2.79 then I can open that in 2.83.
if u using some kind of new shader that may make some problem.


#14

No custum shader, just the default nodes for cycles.
2.79 hopefully opens 2.76 files perfectly. Would make sense, since there the same iteration of blender.


#15

Yea as I thought so … we have to try first, send me a sample and setup everything in your file I will just open that in my pc and start the render


#16

i wonder if you have to reassign all the materials, cause of directory change.
If there is any trouble with the material assignment i can try to export as dae. on import the materials might be assigned correctly.


#17

Is everything looks ok(Maybe some cloth mat is missing)? Else you can Pack the blend file and send it again… Btw try to use Wetransfer.com for sending usual files its fast.


#18

seems like my render settings are gone.
did you use cycle? should be a 128x128 px sprite.
i tried backing, but got an error massage with path directory again. Maybe it works anyway.
Package is on the way.

the result should look like this:
walk_900001


#19

You have animated 20 frame right?
I rendered 1 frame I hope its ok.
png0001
And here check the lighting


#20

actually there 251 frames for each (8) camera angles.
this looks good but the boots are without texture.