I absolutely love this addon! I had been searching for a way to do this exact thing for so long and you've freaking done it! Over the past year or so, this has pretty much become the basis of my entire workflow for making games with with my brother. Cheers my dude!!
That's amazing! Can you show some other work? If you run into any problems again feel free to send the blendfile. I'm really busy right now, but I can always try to find some time to fix it.
Loved your work! For anyone using Blender 4.0 or newer version. There's a way to work around while waiting the author to update. Edit the script using Notepad (or anything you prefer) Replace "group.outputs.new("NodeSocketFloat", "LightingData")" with "group.interface.new_socket(name="LightingData", in_out='OUTPUT', socket_type='NodeSocketFloat')" Save then re-install the add-on (create new file to work correctly). To be clear that this is only a temporary fix, some nodes he used in the video are different now (e.g Mix RGB is now Mix Color in Color tab). Cheer.
This was a fantastic watch… Regarding the inner border outlines, what video games do for their toon shade hacks is that they also use a normals buffer… two pixels could be close enough in Z-depth (like the inner solid corner of the box in your example) but their normals can differ greatly as that corner pixel have three different planes hitting it: the top right, bottom right and bottom left faces. The threshold test would be exactly the same as the Z test (+X, -X, +Y, -Y) but doing a “abs(dotProduct(n1, n2) > someThreshold)” however that translates into blender (I’m quite a Blender illiterate begginer). I saw there some normals render layers I think?
I dont think so... the issue is that the Eevee version only has a binary light/shadow thing. The entire reason i moved to cycles is that it has so many more options to work with.
@@LarsMezaka There's a trick where you use lights where each one is either full red, green, or blue so you can get more information in the material in Eevee.
Thanks for the great inputs and some starting points to blender shading nodes. I noticed that in the explained technique for the "advanced" outlines, the boarders can start to clip the wrong colors. Freestyle used to take the boarder from inside the object, which has the proper line color in the mask image, but when checking for +/-1pixel the border is on the edge, if there is no background the bg pixels (in my case are white) which then renders some white pixels with the borders. Maybe you have an idea how to fix this. In classical computer graphics you would scale the objects slightly bigger for this render pass to get the outline, but only scaling the image does not work unfortunately. :) thanks, keep it up!
I think the video also shows a solution that uses the depth buffer... in general its really easy to get outlines if you have buffers that can tell objects apart. Could be depth, color, object index etc - then you check if any of the surrounding pixels belongs to a different object or has enough difference in depth/color to draw the outline
Hey! Great tutorial! I'm stuck with the IsBorder node. Can you please help? I'm not getting the borders in render preview like shown in 9:07 with this node setup. Also for anyone wondering about the costumcameramapping node group, It's already there you just have to create a nodegroup then select this group instead (was struggling a bit with this) Thanks a lot for this amazing tutorial!
Hey :) Thanks! Do you mean the cycles viewport with "render preview"? If so its just not supported. I cant make that work. If you mean the regular Render Result i can only guess. Is the compositor set up correctly? As long as the node has "IsBorder" as a label it should switch properly. If that doesnt help send me the blendfile via email (its linked in the youtube channel)
@@LarsMezaka Thanks for replying. Yes, figured out I have to setup the compositor first to get the borders in render preview (Render result I mean) To get a solid one color outline I used same color value for both sliders in tangent modifier and that worked. Setting the label of value node as IsBorder was what I missed here. This solved the problem. Thanks again!
I would like to see what an animation looks like with this effect, perhaps a camera pan with the windmills spinnig. (edit) Nevermind, already saw it in the twitter.
That's awesome!! Thank you so much for making this incredible tutorial and add-on free! Just one question, what does the render pixel art button do accept of rendering? If i want to render an animation, can i just render it with blender's tool, or is there an extra thing i need to keep in mind?
Did you download the latest version? There should be a render animation button that renders a PNG sequence. If not let me know and I will check. Unfortunately it doesn't just render, but it runs through a process of creating multiple images that are composited together.
I really like the result and this (and your previous) tutorial. :) I am aware that you probably spent a lot of time to make this into an AddOn. But as someone who wants to control everything, I would be really interested in knowing to to achieve this (compositing? and render settings) in vanilla blender. Aka: what does the Plugin do, That i could set myself. I am not sure if this is something you would want to make a video on, but I would welcome it. :) Thanks for your awesome content. :)
The basics are already explained in the video: Most of it is similar to the eevee process. Except the custom shader to RGB thing. If you want to do that by hand just create a white diffuse material, render the scene with it (use more samples than in the pixel renderer) and then use it in a material using the window mapping node. FOr the borderbuffer, create a bunch of materials that you can flip from bordercolor to final color and render a mask for them. This is all really tedious. Thats why i created the addon in the first place. It takes way to long to do it by Hand. So it just runs through the steps for you. But its basically still vanilla Blender.
Coming to this in April 2024 and it seems the script has stopped working in 4.1, have you tried it recently? I have no clue with blender scripting unfortunately. But if I can do it all thru watching this tutorial then I guess it's cool, will try it tomorrow!
Thats amazing, but when i render pixelart (the first time, at 7:30) the sphere and the plane is completely purple :(, is like the light is not affecting the material. I am using Blender 2.91 Any solution about this?
Sorry, when I click Setup Pixelart Rendering it show message All python errors are preceded by "Traceback (most recent calls last )" How can I fix this? Thanks
Yeah, I had to install blender 3.0 to get this working, it spits a lot of errors in 4.0, and all the nodes created are not plugged into each other. Also the CustomCameraMapping group in 4.0 is now empty. It would be amazing if it receives an update, Thank you!
This technique could be use in animation? I mean if you change the perspective and make zoom and other things, Would it still look good? Or do you need to change values at the same time meanwhile you change the camera's perspective.
I already added an animation feature to the addon! So it does allow for changing perspectives etc. You can see an example here: twitter.com/Mezaka_/status/1393874708400152581
@@LarsMezaka Warning: 'OBJECT_PT_custom_panel_' doesn't have an alpha-numeric suffix Pixelart Setup Info: No new files have been packed Python: Traceback (most recent call last): File "C:\Users\HP\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\Pixelart.py", line 323, in execute renderPixelArt(context.scene.pixel_props.final_samples) File "C:\Users\HP\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\Pixelart.py", line 289, in renderPixelArt assert bpy.data.filepath # abort if .blend is unsaved AssertionError location: :-1
What I learned from this: light source = lamp. What is the sun, really, if not IKEA-built and constantly running out of bulbs? /j Also: look at what you made! (I hope you enjoy this e-mail notification.)
This is really cool! But I assume this is mainly for still images? I have been playing around with the addon a bit and it's great, but I haven't found a good way to automate animations yet.
Very promising work! Unfortunately I get python errors after pressing render pixelart button. I tried on 2.93 and 3.0 Blender versions. Do you plan to continue addon development?
Give it another try. I added a blender 3 download link. Also make sure you save the file. If that doesn't help just send me the error message so I can debug it.
@@LarsMezaka Python: Traceback (most recent call last): File "/Users/pau/Library/Application Support/Blender/3.3/scripts/addons/Pixelart.py", line 323, in execute renderPixelArt(context.scene.pixel_props.final_samples) File "/Users/pau/Library/Application Support/Blender/3.3/scripts/addons/Pixelart.py", line 306, in renderPixelArt renderBuffer("DIFFUSE_BUFFER") File "/Users/pau/Library/Application Support/Blender/3.3/scripts/addons/Pixelart.py", line 234, in renderBuffer bpy.ops.render.render(use_viewport=True, write_still=True) File "/Applications/Blender.app/Contents/Resources/3.3/scripts/modules/bpy/ops.py", line 113, in __call__ ret = _op_call(self.idname_py(), None, kw) RuntimeError: Error: Cannot write a single file with an animation format selected
Very neat! I'm able to duplicate this in a new blender file, but when I try to apply it to an existing blender file that I'm working on, the shading isn't right. For example, that sphere at 8 minutes would be only dark purple (or whatever that color is). Any idea what could be causing this? I have a sunlight source, camera, and everything else seems the same...
Hey :) I used a material with a mix shader of a 0 roughness glossy shader and a blueish emission shader. It does have some limitations tho: it will not be able to accurately reflect surfaces that are not visible to the camera
Python: Traceback (most recent call last): File "C:\Users\KAICHI\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Pixelart.py", line 323, in execute renderPixelArt(context.scene.pixel_props.final_samples) File "C:\Users\KAICHI\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Pixelart.py", line 292, in renderPixelArt nodes = bpy.data.node_groups["CustomCameraMapping"].nodes KeyError: 'bpy_prop_collection[key]: key "CustomCameraMapping" not found' location: :-1 I don't know why addon like this , who can teach me? please.....
Hey! This is an excellent video, but, would there be a way to get the map that you have done at the start? it would really help me understand some of the things!! c:
Hi, great tutorial. I have a question about water reflections that you can see at the beginning. How did you make them? No matter how I set the angle of incidence of light, the reflection in the water is always the same.
Hey, you can watch the ocean observatory video to see how i set that up. Just skip to the part where i add the ocean. The reflection does not depend on the rotation of the sunlamp (if thats what you mean) it only depends on the rotation of the floor and your cameras position/rotation
Hi, this is a really cool tutorial. I saw on your Twitter post where you made the animation, but whatever I do, when I click the "pixelart animation render" button, my blender starts to hang and refuses to work further. Can you tell me what I'm doing wrong? thanks in advance)
It is kind of supposed to do that. Make sure that rendering a single image is fast enough and then just wait. If there are images appearing in your output folder, everything is working fine. Otherwise its really hard to guess what went wrong.
@@LarsMezaka Thanks for the answer. The problem was with my export settings. I just didn't understand the addon well, and thought that something was wrong.
Yes. If you map the dither texture to align with the screenspave pixels you should be able to add that to your light similar with the checkers. I think I even tried it, but had some problems with the mapping.
Hey Lars, thank you so much for going through all the work to make an add on. I love it. I do have one question regarding animation: How do I get my animations to be super clear, crisp, and enlarged like yours? I made an mkv file from a sequence of PNG's and the resulting animation is very grainy: ruclips.net/video/H1xgtGwhyls/видео.html Thank you again!
Hm... I guess that really depends on the program and settings used for encoding the video... It's been a while but if I remember correctly I used the program ScreenToGif for encoding an mp4 (or was it a gif?)
@@LarsMezaka I will check that out, thanks man :) Also I found a way to enlarge the "strip" to a larger canvas in the video editor! It came out pretty crisp looking Here is a little animation I made! ruclips.net/video/k00rsCuPXzs/видео.html
This is really clever, but it's disingenuous to call this pixel art. It's low resolution cgi attempting to mimic the aesthetic of pixel art; by not being completely hand drawn, it doesn't match the criteria of what pixel art is.
Hey :) That's a fair point depending on your definition of pixel art. To be honest I personally don't really care much about categorizing it as one or the other. For me it's just important that the process is fun and delivers nice results.
that's really cool! but I coudn't see the effect because when I press "setup pixelArt Rendering",it goes error, which ,and I have saved the file, that makes the setps after that goes error too,the error message are below:"Python: Traceback (most recent call last): File "C:\Users\liudls\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Pixelart.py", line 195, in execute createExampleMaterial() File "C:\Users\liudls\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Pixelart.py", line 79, in createExampleMaterial links.new(mixNode.outputs[0],matPix.node_tree.nodes["Emission"].inputs[0]) KeyError: 'bpy_prop_collection[key]: key "Emission" not found' location: :-1
love the content! Truly very informative. However, I can hardly hear it even with volume all the way up and headphones on. Any other video on lowest volume before being muted is still louder than this video turned all the way up!
Thanks for sharing super cool technique. I'm really impressed by your idea because I've been interested in making pixel art using 3D tool for a long time. So I tried out your add-on but ended up whith this error when I press "Render Pixelart": ---------------------------------- Python: Traceback (most recent call last): File "C:\Users\bbb\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Pixelart.py", line 323, in execute renderPixelArt(context.scene.pixel_props.final_samples) File "C:\Users\bbb\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Pixelart.py", line 305, in renderPixelArt setRenderSettings(samples = samples, denoising = True, diffuse_override = True) File "C:\Users\bbb\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Pixelart.py", line 267, in setRenderSettings viewLayer = scene.view_layers["View Layer"] KeyError: 'bpy_prop_collection[key]: key "View Layer" not found' location: :-1 ----------------------------------- I saved my blend file and "Setup Pixelart Rendering" seems to work fine. I would be grateful if you could help me.
@@LarsMezaka thank you! as FV7VR3 mentioned above, changing word from “View Layer” to “ViewLayer” is the solution. thanks again for sharing nice addon!
oh, This is really cool! amazing pixel art.But i don't know why,i've get an error message when i press render pixel art.I've already saved blendfile. Can you help me.Thank you. this is KeyError:bpy_prop_collection[key]: key"Texture Coordinate" not found
and this is the console said: Rendering Pixelart Python: Traceback (most recent call last): File "C:\Users\linko\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Pixelart.py", line 323, in execute renderPixelArt(context.scene.pixel_props.final_samples) File "C:\Users\linko\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Pixelart.py", line 303, in renderPixelArt links.new(nodes["Texture Coordinate"].outputs[5], nodes["Image Texture"].inputs[0]) KeyError: 'bpy_prop_collection[key]: key "Texture Coordinate" not found'
@@三目白血 Thanks for including the error message! It basically says it cant find the Texture coordinate node in the Custom Camera Mapping Node Group. Did you change anything in there? (it always tries to switch between the custom mapping and Window mapping, dependign on wether you use an ortographic or a perspective camera)
Previous video on this explains that and it’s a great watch overall. Also regarding orthographic: isometric pixel art have (in general) no perspective, hence why orthographic. Nothing stops you from trying perspective cameras though, pretty sure it could yield interesting results too!
that's really cool! but I coudn't see the effect because when I press "setup pixelArt Rendering",it goes error, which ,and I have saved the file, that makes the setps after that goes error too,the error message are below:"Python: Traceback (most recent call last): Python: Traceback (most recent call last): File "C:\Users\88690\AppData\Roaming\Blender Foundation\Blender\3.1\scripts\addons\Pixelart (1).py", line 323, in execute renderPixelArt(context.scene.pixel_props.final_samples) File "C:\Users\88690\AppData\Roaming\Blender Foundation\Blender\3.1\scripts\addons\Pixelart (1).py", line 289, in renderPixelArt assert bpy.data.filepath # abort if .blend is unsaved AssertionError location: :-1
This yields better results than a paid addon I had bought a few days back, can't believe you're providing it for free. Thanks!
I absolutely love this addon! I had been searching for a way to do this exact thing for so long and you've freaking done it! Over the past year or so, this has pretty much become the basis of my entire workflow for making games with with my brother. Cheers my dude!!
That's amazing! Can you show some other work? If you run into any problems again feel free to send the blendfile. I'm really busy right now, but I can always try to find some time to fix it.
that checkerboard trick is amazing! really great video.
Thank you so much for the add-on! It's a great help
You're welcome:)
Loved your work!
For anyone using Blender 4.0 or newer version. There's a way to work around while waiting the author to update.
Edit the script using Notepad (or anything you prefer)
Replace "group.outputs.new("NodeSocketFloat", "LightingData")" with "group.interface.new_socket(name="LightingData", in_out='OUTPUT', socket_type='NodeSocketFloat')"
Save then re-install the add-on (create new file to work correctly).
To be clear that this is only a temporary fix, some nodes he used in the video are different now (e.g Mix RGB is now Mix Color in Color tab).
Cheer.
You deserve so much more attention! Like damn! Keep up the good work
This is so cool! Can't wait for more. Keep doing what you're doing! 👏👏👏
Awesome! Thank you, Lars!
This is awasome! Thank you!!
You're welcome :D
Thats great! Keep it up!
Really interesting... I will try it.
Thank you for your tutorials!
cant wait to try it out great job
HI, first of all, i love your tutorials
and the second thing was a problem that i solved so ... XD
@@seagull5864 cool cool cool :D
Such a good technique. Damn.
wow. looks amazing. thank you very much!
This is exactly what I needed!!
Amazing! Love it... I think it's coming along very very nicely!! LOVE IT!!! ❤
This was a fantastic watch…
Regarding the inner border outlines, what video games do for their toon shade hacks is that they also use a normals buffer… two pixels could be close enough in Z-depth (like the inner solid corner of the box in your example) but their normals can differ greatly as that corner pixel have three different planes hitting it: the top right, bottom right and bottom left faces.
The threshold test would be exactly the same as the Z test (+X, -X, +Y, -Y) but doing a “abs(dotProduct(n1, n2) > someThreshold)” however that translates into blender (I’m quite a Blender illiterate begginer).
I saw there some normals render layers I think?
Thanks for sharing!
This is so cool thank you!
Wow, this is game changing for Pixel Art. I would love to see this develop more and more!
Is it possible to extend Eevee to do the checker board technique, etc that you did with Cycles?
I dont think so... the issue is that the Eevee version only has a binary light/shadow thing. The entire reason i moved to cycles is that it has so many more options to work with.
@@LarsMezaka There's a trick where you use lights where each one is either full red, green, or blue so you can get more information in the material in Eevee.
Really really cool
Thanks for the great inputs and some starting points to blender shading nodes. I noticed that in the explained technique for the "advanced" outlines, the boarders can start to clip the wrong colors.
Freestyle used to take the boarder from inside the object, which has the proper line color in the mask image, but when checking for +/-1pixel the border is on the edge, if there is no background the bg pixels (in my case are white) which then renders some white pixels with the borders.
Maybe you have an idea how to fix this. In classical computer graphics you would scale the objects slightly bigger for this render pass to get the outline, but only scaling the image does not work unfortunately.
:) thanks, keep it up!
I think the video also shows a solution that uses the depth buffer... in general its really easy to get outlines if you have buffers that can tell objects apart. Could be depth, color, object index etc - then you check if any of the surrounding pixels belongs to a different object or has enough difference in depth/color to draw the outline
POG
for once in a life time google recommended a proper video -_-
I feel ya :D But there is a super secret technique to improve that: subscribe and hit that bell :P
@@LarsMezaka already did the moment i played the video. looking other tutorials on your channel amazing work you put to gather hats off to ya :D
amazing content!
Thank you very much!
the node "isBorder" is missing.
it was not possible to change the color from white.
Great stuff! Salutations
i died when you saved the file asdasdfafsaf 😂🤣🤣
:D life is to short for proper file names. (At least for temporary tutorial files)
How’d you reply if you’re dead
yay!
Thank you so much!
Hey!
Great tutorial!
I'm stuck with the IsBorder node.
Can you please help?
I'm not getting the borders in render preview like shown in 9:07 with this node setup.
Also for anyone wondering about the costumcameramapping node group, It's already there you just have to create a nodegroup then select this group instead (was struggling a bit with this)
Thanks a lot for this amazing tutorial!
Hey :) Thanks!
Do you mean the cycles viewport with "render preview"? If so its just not supported. I cant make that work.
If you mean the regular Render Result i can only guess. Is the compositor set up correctly? As long as the node has "IsBorder" as a label it should switch properly.
If that doesnt help send me the blendfile via email (its linked in the youtube channel)
@@LarsMezaka Thanks for replying.
Yes, figured out I have to setup the compositor first to get the borders in render preview (Render result I mean)
To get a solid one color outline I used same color value for both sliders in tangent modifier and that worked.
Setting the label of value node as IsBorder was what I missed here. This solved the problem.
Thanks again!
@@Heartrace.nufsat Great! Let me know if you have somethign cool to show :)
Can you give me tips how to replicate "Industry Giant 2" graphics?
I want to create some buildings, or maybe animals.
I would like to see what an animation looks like with this effect, perhaps a camera pan with the windmills spinnig.
(edit) Nevermind, already saw it in the twitter.
Link please? :)
oh i found, for anyone looking:
twitter.com/Mezaka_/status/1393874708400152581
That's awesome!!
Thank you so much for making this incredible tutorial and add-on free!
Just one question, what does the render pixel art button do accept of rendering? If i want to render an animation, can i just render it with blender's tool, or is there an extra thing i need to keep in mind?
Did you download the latest version? There should be a render animation button that renders a PNG sequence. If not let me know and I will check.
Unfortunately it doesn't just render, but it runs through a process of creating multiple images that are composited together.
This Is Really Cool
Serious shork hike vibes
I really like the result and this (and your previous) tutorial. :)
I am aware that you probably spent a lot of time to make this into an AddOn. But as someone who wants to control everything, I would be really interested in knowing to to achieve this (compositing? and render settings) in vanilla blender. Aka: what does the Plugin do, That i could set myself. I am not sure if this is something you would want to make a video on, but I would welcome it. :)
Thanks for your awesome content. :)
The basics are already explained in the video:
Most of it is similar to the eevee process. Except the custom shader to RGB thing.
If you want to do that by hand just create a white diffuse material, render the scene with it (use more samples than in the pixel renderer) and then use it in a material using the window mapping node.
FOr the borderbuffer, create a bunch of materials that you can flip from bordercolor to final color and render a mask for them.
This is all really tedious. Thats why i created the addon in the first place. It takes way to long to do it by Hand. So it just runs through the steps for you. But its basically still vanilla Blender.
@@LarsMezaka Thanks
Great
Coming to this in April 2024 and it seems the script has stopped working in 4.1, have you tried it recently? I have no clue with blender scripting unfortunately. But if I can do it all thru watching this tutorial then I guess it's cool, will try it tomorrow!
any help trouble shooting the pixelart tab not appearing on the rendering menu?
Thats amazing, but when i render pixelart (the first time, at 7:30) the sphere and the plane is completely purple :(, is like the light is not affecting the material. I am using Blender 2.91
Any solution about this?
Sorry, when I click Setup Pixelart Rendering it show message All python errors are preceded by "Traceback (most recent calls last )" How can I fix this? Thanks
Yeah, I had to install blender 3.0 to get this working, it spits a lot of errors in 4.0, and all the nodes created are not plugged into each other. Also the CustomCameraMapping group in 4.0 is now empty.
It would be amazing if it receives an update, Thank you!
Edit; I missed that part in the description somehow. I'll checkout the improved one!
This technique could be use in animation? I mean if you change the perspective and make zoom and other things, Would it still look good? Or do you need to change values at the same time meanwhile you change the camera's perspective.
I already added an animation feature to the addon! So it does allow for changing perspectives etc. You can see an example here: twitter.com/Mezaka_/status/1393874708400152581
I don't know why, i got an error message when click render pixel art
KeyError :'bpy_prop_collection{key}: key"image texture"not found'
Hm. Can you open the console and tell me what it say there? -> Windows -> Toggle System Console
@@LarsMezaka Warning: 'OBJECT_PT_custom_panel_' doesn't have an alpha-numeric suffix Pixelart Setup Info: No new files have been packed Python: Traceback (most recent call last): File "C:\Users\HP\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\Pixelart.py", line 323, in execute renderPixelArt(context.scene.pixel_props.final_samples) File "C:\Users\HP\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\Pixelart.py", line 289, in renderPixelArt assert bpy.data.filepath # abort if .blend is unsaved AssertionError location: :-1
@@littledaisy9102 Have you saved the blendfile? It needs to be saved before the addon can function properly.
It works,thank you
What I learned from this: light source = lamp. What is the sun, really, if not IKEA-built and constantly running out of bulbs? /j
Also: look at what you made! (I hope you enjoy this e-mail notification.)
thankx!
Would it be possible to update the script to work with 4.0? I am getting a bunch of errors!
Awesome!!! You are wizard!!! My question how this addon work with transparent material like glass, and how it works fith fire or smoke?)))
wavooowowowo
This is really cool! But I assume this is mainly for still images? I have been playing around with the addon a bit and it's great, but I haven't found a good way to automate animations yet.
I actually added a feature to render animations already! So give it a try :)
@@LarsMezaka Dude whoa! I will definitely take a look at that then, thanks!
Very promising work! Unfortunately I get python errors after pressing render pixelart button. I tried on 2.93 and 3.0 Blender versions. Do you plan to continue addon development?
Give it another try. I added a blender 3 download link. Also make sure you save the file. If that doesn't help just send me the error message so I can debug it.
@@LarsMezaka
Python: Traceback (most recent call last):
File "/Users/pau/Library/Application Support/Blender/3.3/scripts/addons/Pixelart.py", line 323, in execute
renderPixelArt(context.scene.pixel_props.final_samples)
File "/Users/pau/Library/Application Support/Blender/3.3/scripts/addons/Pixelart.py", line 306, in renderPixelArt
renderBuffer("DIFFUSE_BUFFER")
File "/Users/pau/Library/Application Support/Blender/3.3/scripts/addons/Pixelart.py", line 234, in renderBuffer
bpy.ops.render.render(use_viewport=True, write_still=True)
File "/Applications/Blender.app/Contents/Resources/3.3/scripts/modules/bpy/ops.py", line 113, in __call__
ret = _op_call(self.idname_py(), None, kw)
RuntimeError: Error: Cannot write a single file with an animation format selected
Very neat! I'm able to duplicate this in a new blender file, but when I try to apply it to an existing blender file that I'm working on, the shading isn't right. For example, that sphere at 8 minutes would be only dark purple (or whatever that color is). Any idea what could be causing this?
I have a sunlight source, camera, and everything else seems the same...
I think it doesnt set up the compositor if it already finds sth else there. That might be the issue.
does this not work in new Blender?
im completely new to blender and i decided of course to jump in the deep end. Would the updated version of blender be causing me some issues
Haha :D I hope you didnt get demoralized to much. Blender is a tough tool to learn. But its definetly worth it!
@@LarsMezaka demoralized for an evening lol, still going
will you update
Amazing work how did you setup the water reflection please?
Hey :) I used a material with a mix shader of a 0 roughness glossy shader and a blueish emission shader. It does have some limitations tho: it will not be able to accurately reflect surfaces that are not visible to the camera
@@LarsMezaka thank you i realized it away 🙈
If you can make a video showing us how to make these pixel art pieces animated. That would be also great.
I'm pretty sure you do everything the same but render it as an animation.
Python: Traceback (most recent call last):
File "C:\Users\KAICHI\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Pixelart.py", line 323, in execute
renderPixelArt(context.scene.pixel_props.final_samples)
File "C:\Users\KAICHI\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Pixelart.py", line 292, in renderPixelArt
nodes = bpy.data.node_groups["CustomCameraMapping"].nodes
KeyError: 'bpy_prop_collection[key]: key "CustomCameraMapping" not found'
location: :-1
I don't know why addon like this , who can teach me?
please.....
same issue!
Hey! This is an excellent video, but, would there be a way to get the map that you have done at the start? it would really help me understand some of the things!! c:
Do you basically bake a texture then ColorRamp this texture before Emission shader?
Yes! Thats the core idea. Its sort of like a screenspace Lightmap.
Hi, great tutorial. I have a question about water reflections that you can see at the beginning. How did you make them? No matter how I set the angle of incidence of light, the reflection in the water is always the same.
Hey, you can watch the ocean observatory video to see how i set that up. Just skip to the part where i add the ocean. The reflection does not depend on the rotation of the sunlamp (if thats what you mean) it only depends on the rotation of the floor and your cameras position/rotation
@@LarsMezaka
Thanks for the tip, I will look at the video of the tower in the ocean. Thanks for the help :)
Hi, I'm wondering do you know how can I install the addon on your link in the description to Blender 3.4.1? I installed it but nothing happened tho
Hi, this is a really cool tutorial.
I saw on your Twitter post where you made the animation, but whatever I do, when I click the "pixelart animation render" button, my blender starts to hang and refuses to work further.
Can you tell me what I'm doing wrong?
thanks in advance)
It is kind of supposed to do that. Make sure that rendering a single image is fast enough and then just wait. If there are images appearing in your output folder, everything is working fine. Otherwise its really hard to guess what went wrong.
@@LarsMezaka Thanks for the answer.
The problem was with my export settings.
I just didn't understand the addon well, and thought that something was wrong.
Will this work with standard video clips? Like just an mp4
Not directly. You will need to render a PNG sequence first and then encode that to mp4
can this be done to characters? or is that not feasible?
Yes! I do recommend a manual paas afterwards tho... since characters are so important.
Is it just a picture or can you move the camera with the pixel look?
You can move the camera. But the results will probably not be that great
the audio is pretty low :(
Yeah. Im sorry
This is really amazing, thank you for sharing! Is there a way to use a dither texture instead of the cherckers texture for color blending?
Yes. If you map the dither texture to align with the screenspave pixels you should be able to add that to your light similar with the checkers. I think I even tried it, but had some problems with the mapping.
Why didn't you stay with Eevee, but chose Cycles instead?
What version of Blender do you use for this script? Because i'm getting errors.
Sorry the problem was that the .blend file was unsaved.
im lost, the material shader of the previous video (with shader to RGB node) doesn't work with this plugin? since its cycles
Yes! You cant easily switch between them. You will need to use the new material type as shown in the example material in the addon.
its not working :|
I don't know why, i got an error message when click render pixel art tks!!!
Python: Traceback (most recent call last):
File "C:\Users\88690\AppData\Roaming\Blender Foundation\Blender\3.1\scripts\addons\Pixelart (1).py", line 323, in execute
renderPixelArt(context.scene.pixel_props.final_samples)
File "C:\Users\88690\AppData\Roaming\Blender Foundation\Blender\3.1\scripts\addons\Pixelart (1).py", line 300, in renderPixelArt
links.new(nodes["Vector Math"].outputs[0], nodes["Image Texture"].inputs[0])
KeyError: 'bpy_prop_collection[key]: key "Vector Math" not found'
location: :-1
Hey Lars, thank you so much for going through all the work to make an add on. I love it. I do have one question regarding animation:
How do I get my animations to be super clear, crisp, and enlarged like yours?
I made an mkv file from a sequence of PNG's and the resulting animation is very grainy:
ruclips.net/video/H1xgtGwhyls/видео.html
Thank you again!
Hm... I guess that really depends on the program and settings used for encoding the video... It's been a while but if I remember correctly I used the program ScreenToGif for encoding an mp4 (or was it a gif?)
@@LarsMezaka I will check that out, thanks man :) Also I found a way to enlarge the "strip" to a larger canvas in the video editor! It came out pretty crisp looking
Here is a little animation I made!
ruclips.net/video/k00rsCuPXzs/видео.html
This is really clever, but it's disingenuous to call this pixel art. It's low resolution cgi attempting to mimic the aesthetic of pixel art; by not being completely hand drawn, it doesn't match the criteria of what pixel art is.
Hey :) That's a fair point depending on your definition of pixel art. To be honest I personally don't really care much about categorizing it as one or the other. For me it's just important that the process is fun and delivers nice results.
@@LarsMezaka It definitely has it's use (and the results speak for themselves) I'll have to try it out myself sometime.
that's really cool! but I coudn't see the effect because when I press "setup pixelArt Rendering",it goes error, which ,and I have saved the file, that makes the setps after that goes error too,the error message are below:"Python: Traceback (most recent call last):
File "C:\Users\liudls\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Pixelart.py", line 195, in execute
createExampleMaterial()
File "C:\Users\liudls\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Pixelart.py", line 79, in createExampleMaterial
links.new(mixNode.outputs[0],matPix.node_tree.nodes["Emission"].inputs[0])
KeyError: 'bpy_prop_collection[key]: key "Emission" not found'
location: :-1
oh! I found that problem: the language shoud be English……and I used Chinese
Ah yes sorry. Multi language support would have taken a lot longer, so I chose English.
love the content! Truly very informative. However, I can hardly hear it even with volume all the way up and headphones on. Any other video on lowest volume before being muted is still louder than this video turned all the way up!
:D I know! I am so sorry. Ill check this more carefully next time. Glad you liked the content tho!
Thanks for sharing super cool technique.
I'm really impressed by your idea because I've been interested in making pixel art using 3D tool for a long time.
So I tried out your add-on but ended up whith this error when I press "Render Pixelart":
----------------------------------
Python: Traceback (most recent call last):
File "C:\Users\bbb\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Pixelart.py", line 323, in execute
renderPixelArt(context.scene.pixel_props.final_samples)
File "C:\Users\bbb\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Pixelart.py", line 305, in renderPixelArt
setRenderSettings(samples = samples, denoising = True, diffuse_override = True)
File "C:\Users\bbb\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Pixelart.py", line 267, in setRenderSettings
viewLayer = scene.view_layers["View Layer"]
KeyError: 'bpy_prop_collection[key]: key "View Layer" not found'
location: :-1
-----------------------------------
I saved my blend file and "Setup Pixelart Rendering" seems to work fine.
I would be grateful if you could help me.
Hm I'm not sure. Are you using an English version of blender? I'm not sure wether that might cause issues.
@@LarsMezaka thank you!
as FV7VR3 mentioned above, changing word from “View Layer” to “ViewLayer” is the solution.
thanks again for sharing nice addon!
oh, This is really cool! amazing pixel art.But i don't know why,i've get an error message when i press render pixel art.I've already saved blendfile. Can you help me.Thank you.
this is KeyError:bpy_prop_collection[key]: key"Texture Coordinate" not found
and this is the console said:
Rendering Pixelart
Python: Traceback (most recent call last):
File "C:\Users\linko\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Pixelart.py", line 323, in execute
renderPixelArt(context.scene.pixel_props.final_samples)
File "C:\Users\linko\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Pixelart.py", line 303, in renderPixelArt
links.new(nodes["Texture Coordinate"].outputs[5], nodes["Image Texture"].inputs[0])
KeyError: 'bpy_prop_collection[key]: key "Texture Coordinate" not found'
@@三目白血 Thanks for including the error message! It basically says it cant find the Texture coordinate node in the Custom Camera Mapping Node Group. Did you change anything in there? (it always tries to switch between the custom mapping and Window mapping, dependign on wether you use an ortographic or a perspective camera)
@@LarsMezaka Thank you. It's working and your plugin is fine. The previous error was because I had a problem with my preferences.Have a good day.
Hi, Mezaka, tell me, please, if you set the resolution to 512×512, will the addon work? And another question, why is the orthographic mode important?
Previous video on this explains that and it’s a great watch overall.
Also regarding orthographic: isometric pixel art have (in general) no perspective, hence why orthographic. Nothing stops you from trying perspective cameras though, pretty sure it could yield interesting results too!
Great
that's really cool! but I coudn't see the effect because when I press "setup pixelArt Rendering",it goes error, which ,and I have saved the file, that makes the setps after that goes error too,the error message are below:"Python: Traceback (most recent call last):
Python: Traceback (most recent call last):
File "C:\Users\88690\AppData\Roaming\Blender Foundation\Blender\3.1\scripts\addons\Pixelart (1).py", line 323, in execute
renderPixelArt(context.scene.pixel_props.final_samples)
File "C:\Users\88690\AppData\Roaming\Blender Foundation\Blender\3.1\scripts\addons\Pixelart (1).py", line 289, in renderPixelArt
assert bpy.data.filepath # abort if .blend is unsaved
AssertionError
location: :-1
Hm looks like you didnt save the file. In case you did it might have sth to do with read/write permissions on your hard drive.