Showing posts with label tutorial. Show all posts
Showing posts with label tutorial. Show all posts

04 June, 2021

[Blender Grease Pencil / 2D Animation] 2D Character Creation Series : Vlad Von Darkfall

 



In this Three Part Character Creation Series we will be creating a Host called Vlad for an Animated Podcast. 

You can check out Episode One here. Just a quick heads up, the accents are terrible!.

I wanted to see if it was possible for someone like me (Crappy Drawing skills and zero experience) could create something that might resemble an Animation. The results were, not as bad as I though. I mean sure there are plenty of areas that need improvement but for what it is, I am happy with it (kinda..)

 


 

Part One - Character Design.

In this video, we will be designing our Character. First I wanted to jot down some things about Vlad, he would be a Crazy Haired, Friendly Vampire with a slightly old fashion sense. We also need to set up a Construction and Detailing Brush. With our Brushes set up we can then draw three Variations of our character.

We first create some Construction (or sketch) lines to block in the shapes. Using our Construction Brush we can keep the lines messy. The main focus is to make sure the basic shapes look good. Then with our Detailing (or Inking) Brush we can go back and draw the details with much more precision.

If (unlike me) you have any kind of drawing skills, you will find it much easier to design your character. Since my drawing skills are lacking I had to go into Edit mode and play around with some of the strokes. We can also use a bunch of tools from Sculpt Mode (though in this video we didn't use it much).

With the the Three Variations done, I decided to mix and match some features of each character (except the Boris Johnson Looking guy at the end) to create the first draft of Vlad. Then with some Color Fills he was ready for Mobility.








Part Two - Rigging

In this video, we will be taking our Character and creating an Armature (or Rig) and adding some Constraints, giving our character the ability of movement.

We will need to add the rest of the Body and each of them will need to be a separate stroke. Now we have a couple of options when doing this. Instead of adding a new stroke each time (wasting our time needing to set everything up again) we can just use the original Head Stroke.

Simply add a new layer and draw a body part. Then (in edit mode) select only that part and press P. This will bring up the Separation Menu and we can Separate by stroke. You can do this for all the body parts.

We will need a Neck, Torso, Upper Arm, Lower Arm, Upper Leg, Lower Leg and foot. We can duplicate the Arms and legs to make things even easier. Once we have our pieces we can then add an armature.

Starting with a single bone, we can extrude out the part that we need. Then by adding some rotation, transform and Inverse kinematic Constraints we can make our Armature move more fluidly. IK constraints are really easy to set up and only need to do so once.

Then we can parent each of the Body Parts to each of the bones. Add a few empties for control and we are done with the Rigging.

 


Part Three - Lip Syncing (and more..)

In this video, we will be taking a look at my new favorite Modifier in order to not only Lip Sync but it can be used for a number of other things such as Blinks, Eyebrow Articulation, Hand shapes and more!.

With our character rigged and ready to go we just need to draw some Mouth Shapes. There are plenty of Lip Syncing Mouth Charts available online and I suggest using one of them as a guide. 

 

 If you want you can download Vlad's Mouth Shapes here.



 

 

Once we have our Mouth Shapes we can then use the Timer Offset Modifier. (NOTE: The Timer Offset Modifier is broken in Blender Version 2.92 In the video I am using Version 2.93 I believe the Modifier also works in Some Older Versions of Blender).

This Modifier is really useful, not only for Lip syncing but as I mentioned it's great for other things like Blinks, Expressions and anything else you want to quickly change the pose for.

When it comes to the actual Lip Syncing, you may need to "hold the frame" or extend the mouth position. It will always depend on how fast/slow your character is talking. 

For example, in the Video the character says "Hello". We will first add the H shape and extend it for an additional frame. Then the L shape for two frames and then finally the O shape. The Character Extends the O so I think we can hold the position for three or even four frames. Again this will always depend on the speed of your characters Audio.

If we mess things up and the timing is off? Don't worry!. We can move keyframes around and add new ones really easily. It's not too difficult, maybe just time consuming and depending on how long your animation is, you may be there for a little while. In the Animation I had two characters talking for a couple of Minuets and it didn't really take that long.

So in the end it turns out the Grease Pencil is easier to use than I once thought. I enjoyed making these videos and I hope you guys enjoyed them too. If you did enjoy this series be sure to look out for more Grease Pencil Tutorials!.

09 March, 2020

The Text Tool Add-on (version 1.0)


In this video, we will be creating a new add-on I call, the Text Tool Add-on. 
I wanted to create an add-on that would help speed up our workflow when adding text within blender.

We will need a Panel for our button and a Popup Dialog Box to execute the operation (and we have covered this in previous tutorials. Playlist here).

We can add pretty much anything to our Dialog box, and for the Text Tool add-on I want to be able to enter Some Custom Text, Set the Scale,Set the Orientation, Set the Alignment, add a Boolean and if the Boolean is True; I want the text to be extruded.

Then in the next video, we can take a look at tidying up the Dialog box Layout and make it look much better. 

I also have some Ideas for Animated effects. So if you think that sounds good, let us know in the comments below.

If you would like to download the add-on you can find the script here.  

 
I hope you find this video helpful and if you have any comments or suggestions for things you would like to see in future versions, be sure to let us know!.

17 January, 2020

Scripting Continued - Blender Python - bpy



In this video, we will be continuing scripting our "Object Adder" Add-on.

We will add some more functions such as the Smooth Shading option, Add a Modifier and more.

We also look at creating two more panels (for simplicity we call them Panel A and Panel B). After creating the new Panels we can add them to the Main Panel as "Sub Panels". 





It's really easy to add a panel to another panel and it only requires one property. By adding the, bl_parent_id = 'PT_MainPanel' 
we are telling 'Panel A' to be a child of the Main Panel.



By adding the, bl_options = {'DEFAULT_CLOSED'} 
we are telling the Panel to be minimized by default. If you have a whole bunch of panels open by default it can be a pain for the user to navigate to the section they intend to use.




 Once we are happy with the Add-on we need to make sure we add the bl-info at the beginning of the script (you can see the full script below). 

Without this Information, we can not install the Add-on. 







With our add-on now installed, we can use it without needing to run the script nor mess around with any settings.


  

Of course this Add-on is super simple and we can always add, change and improve this add-on but I wanted to create something easy to follow and I hope I have managed to inspire you to take this further and start to make awesome add-ons!..

If you want to use this script you can copy and paste the text below or you can click here.

In the Next Tutorial, we will be creating an Add-on that's a little more advanced but with the knowledge we have learned over the last two videos, it should be easier to pick up.

Again, I hope you found this Tutorial helpful! be sure to let us know what you think of this series or if you want more videos like this? 



Script result : 

__________________________________________________________________________
 


bl_info = {
    "name": "Object Adder",
    "author": "Darkfall",
    "version": (1, 0),
    "blender": (2, 80, 0),
    "location": "View3D > Toolbar > Object Adder",
    "description": "Adds objects and other functions to help our workflow (Tutorial Result)",
    "warning": "",
    "wiki_url": "",
    "category": "Add Mesh",
}

import bpy

    #This is the Main Panel (Parent of Panel A and B)
class MainPanel(bpy.types.Panel):
    bl_label = "Object Adder"
    bl_idname = "PT_MainPanel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = 'Object Adder'
   
    def draw(self, context):
        layout = self.layout
        layout.scale_y = 1.2
       
        row = layout.row()
        row.label(text= "Add an object", icon= 'OBJECT_ORIGIN')
        row = layout.row()
        row.operator("mesh.primitive_cube_add", icon= 'CUBE', text= "Cube")
        row.operator("mesh.primitive_uv_sphere_add", icon= 'SPHERE', text= "Sphere")
        row.operator("mesh.primitive_monkey_add", icon= 'MESH_MONKEY', text= "Suzanne")
        row = layout.row()
        row.operator("curve.primitive_bezier_curve_add", icon= 'CURVE_BEZCURVE', text= "Bezier Curve")
        row.operator("curve.primitive_bezier_circle_add", icon= 'CURVE_BEZCIRCLE', text= "Bezier Circle")
       
       
        row = layout.row()
        row.operator("object.text_add", icon= 'FILE_FONT', text= "Add Font")
        row = layout.row()
       


    #This is Panel A - The Scale Sub Panel (Child of MainPanel)
class PanelA(bpy.types.Panel):
    bl_label = "Scale"
    bl_idname = "PT_PanelA"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = 'Object Adder'
    bl_parent_id = 'PT_MainPanel'
    bl_options = {'DEFAULT_CLOSED'}
   
    def draw(self, context):
        layout = self.layout
        obj = context.object
       
        row = layout.row()
        row.label(text= "Select an option to scale your", icon= 'FONT_DATA')
        row = layout.row()
        row.label(text= "      object.")
        row = layout.row()
        row.operator("transform.resize")
        row = layout.row()
        layout.scale_y = 1.2
       
        col = layout.column()
        col.prop(obj, "scale")
       


    #This is Panel B - The Specials Sub Panel (Child of MainPanel)
class PanelB(bpy.types.Panel):
    bl_label = "Specials"
    bl_idname = "PT_PanelB"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = 'Object Adder'
    bl_parent_id = 'PT_MainPanel'
    bl_options = {'DEFAULT_CLOSED'}
   
    def draw(self, context):
        layout = self.layout
       
        row = layout.row()
        row.label(text= "Select a Special Option", icon= 'COLOR_BLUE')
        row = layout.row()
        row.operator("object.shade_smooth", icon= 'MOD_SMOOTH', text= "Set Smooth Shading")
        row.operator("object.subdivision_set", icon= 'MOD_SUBSURF', text= "Add Subsurf")
        row = layout.row()
        row.operator("object.modifier_add", icon= 'MODIFIER')
       
  
       
    #Here we are Registering the Classes       
def register():
    bpy.utils.register_class(MainPanel)
    bpy.utils.register_class(PanelA)
    bpy.utils.register_class(PanelB)

    #Here we are UnRegistering the Classes   
def unregister():
    bpy.utils.unregister_class(MainPanel)
    bpy.utils.unregister_class(PanelA)
    bpy.utils.unregister_class(PanelB)

    #This is required in order for the script to run in the text editor   
if __name__ == "__main__":
    register() 
                         






12 January, 2020

An Introduction to Scripting (Blender Python - bpy)




In this video,we will be taking a look at Scripting with Blender and Python.

Before we begin, I should mention that I am in no way an expert and in fact, I have only been learning Python (and scripting in general) for a short time. That being said, I went from knowing absolutely nothing - to developing the Darkfall VFX Nodes Add-on, and would like to share with you some tips and maybe a basic introduction into Scripting. 




  We first start by arranging our layout. There are three important windows we need in order to start scripting and they can be placed anywhere in your layout. It's a good idea to save a template file (so you can use a fresh scripting start up file each time). 

Learning Python and Scripting may seem daunting at first but with a little time and patience you can create something useful. 


If you do get stuck and need some help you can always check out the Blender API, there's a stockpile of really useful information along with some nice examples. You can also check out The Blender Stack Exchange, I have been saved many times by helpful people over at the Stack Exchange and certainly recommend using it. 






Blender also comes with many Python Templates for you to check out. I find it a good idea to have a look at how other scripts are structured and many times they can be slightly adapted to fit our needs.

Now, I assume that anyone reading this blog post will have their own idea for an add-on and many things in this introduction may not apply to what you need but I think having a basic understanding of creating a simple script will go a long way when it comes to tackling your own idea. 



In this Introduction, we will be creating a very simple add-on that I dubbed the "Object Adder"... With just a few lines of code we have created our first add-on!. Congratulations!.. 







We created a Panel in the 3D View that has a bunch of buttons, that when pressed add objects. So yeah, it's obviously not that impressive but if (like me) you thought you wouldn't ever be able to code something, you have just made your first steps into the new world of Python.



There are some different ways we can layout the panel and making it look "pretty" can always come later. I like to make sure everything is working and then we can go back and make some adjustments. The first version of the Darkfall VFX Nodes add-on was a mess. Not only did it look bad but it also was not as simple to use as it is now. 

Thanks to those who have downloaded and used the Add-on, I took their feedback and started to develop newer versions. So with that being said, If you find yourself stuck or need help improving your add-on, be sure to take all the feedback you can get. 

Since we could not cover everything in a single Video, I will be creating more videos on scripting and hopefully you guys will find them helpful. If you have any suggestions on what you want to see, make sure you leave a comment in the video and let us know!.

If you guys want to check out the code that we wrote in the video, you can find it here:


import bpy

class TestPanel(bpy.types.Panel):
    bl_label = "Object Adder"
    bl_idname = "PT_TestPanel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = 'My 1st Addon'
   
    def draw(self, context):
        layout = self.layout
       
        row = layout.row()
        row.label(text= "Add an object", icon= 'OBJECT_ORIGIN')
        row = layout.row()
        row.operator("mesh.primitive_cube_add", icon= 'CUBE')
       
        row.operator("mesh.primitive_uv_sphere_add", icon= 'SPHERE')
        row = layout.row()
        row.operator("object.text_add", icon= 'FILE_FONT', text= "Font Button")
       
       
       
       
def register():
    bpy.utils.register_class(TestPanel)
   
def unregister():
    bpy.utils.unregister_class(TestPanel)
   
if __name__ == "__main__":
    register()



26 August, 2019

Patch Node in Blender 2.8



In this video, we will be looking at how to use and create the "Patch Node" (though you can call it what ever you want)

This group of Nodes will help us optimize our workflow and save us a whole bunch of time. There is nothing worse than having to repeat the same group of Nodes over and over again!. 


Creating custom Node Groups, allows us to reuse Nodes that we have created previously. So, if we need the same group of Nodes again, we can easily append in the ones we need. 





It's a good idea to build yourself a library of Node Groups that you use frequently. I tend to use the Patch Node a lot but there are other I find myself using more and more. 





Now (depending on what you are trying to do), you may not always need the same Node Groups

Though if you find that you have created the same group of Nodes more than once, maybe it's time to go ahead and save that group!. 

we first need to save a .blend file that will contain your Node Groups. 

You can think of it as a Library of custom Nodes where you can select the one(s) you need for your current project. Just be sure to name it something memorable, you don't want to waste time looking for an obscurely named file. 

Then we can build our first custom Node Group - The "Patch Node". I know the name isn't great but you can name it what ever you want! (got a better name? let us know in the comments). 




You can download the "Patch Node", "Clone Node" and "Area Fill Node" here(you can just append that node group into your current file). 

As I mentioned, this group of nodes as been used in many different tutorials that we have done in the past, like the River Rapids VFX or the Taipei Towers and more!. 

I hope you not only create this Node Group but also many more. 

If you create an awesome node group be sure to let us know in our Facebook Group

I hope you enjoyed this tutorial or at least found it helpful. 

As always, thanks for reading!. 






11 August, 2019

How to Fix Lens Distortion in Blender 2.8



In this video, we will be fixing our shots that have Lens Distortion / Barrel or "Fish Eye" Distortion (as it's also known)

Most Camera's will have some level of Lens Distortion and none more so than Action Cameras like the GoPro and so on, leaving your shots looking rather disappointing. 

If you would like to follow along, you can download the original video here

You can also download Blender 2.8 here


As we can see from this example, the Lens Distortion is really quite bad. 



If you notice the people on the left, they now seem to be part of the group. 

In the original footage, they look slightly disconnected from the others. 


Though thanks to Blender and only one Node, we can easily fix this problem. 




I should add that I have tried this many times and for the most part, it looks pretty good. If you have multiple shots together, you may need to adjust the settings for each shot. 


I hope you found this helpful and as always, Thanks for reading!.. 

28 July, 2019

Flight of the fireflies in Blender 2.8


In this video we will be creating more fireflies. With the help of the Boid Particle system and a bit of tracking we can easily create a surreal fantasy scene. 

We have done tracking and have used boids in the past, though there are some differences. 

I am using Blender 2.8 (release candidate 3) though this tutorial can be done in previous versions (there may be some differences). If you want to download blender 2.8 then click here.

Tracking the shot was not too difficult and considering the motion of the camera, I only added 10 tracking markers. 

If you are using your own background footage then be sure to remember the focal length that you shot in. 

The background footage I used was downloaded (download here) so I had to let blender work out what my focal length should be. 

Once we are happy with the Average solve error, we can then setup our 3d scene. 

With the click of a single button, Blender has set up our 3d view along with creating the necessary nodes that we need to compose the shot. 

In this example I remove the background layer (but you may want to keep it and have reflections)

Then using a particle system, we change a few settings to get the effect that we are looking for. 

When it comes to rendering, you can render with either Cycles or Eevee. I decided to render with both. I'm not sure if it's a bug but when we activate motion blur in Eevee it doesn't seem to work. 

One of the benefits of rendering with Eevee is the Speed. It took me  about 1 hr and 15 mins for Cycles to render this whole animation. Whereas Eevee took only 20 mins

I also considered adding a light cast to the water but in the end I decided that the Glow from the flies probably wouldn't reach the water. 

If you did want a reflection in the water, you could add a mix node and connect the render layers to that mix node. Then add a translate node and move the position of the new fireflies to be below the original fireflies (I would also add a scale node and scale them on the Y axis a little). Then play around with the blend mode and factor to get something that you like.

You can then add your color grading and finalize your shot.

Hopefully you enjoyed this video and as always, 

Thanks for watching!.. 

22 April, 2019

Taipei Towers [VFX]



In this video we will be turning the Taipei 101 into a Sci-fi Energy Tower. 

Check out the Preview

We will duplicate the Taipei tower a couple of times (though this can be done in any photo editing software, I prefer to use blender incase there is any change in lighting from the camera, it would look odd if it was a single image) and then using the Animation Nodes Addon (link below) we can create an awesome stylized Energy Beam. 

Taipei Towers Tutorial

Now I should note, this is the first time I have used the Animation Nodes Addon and I am still learning how to use it. Since there are tons more nodes to use we can create a whole load of different effects. 

Now some of you may already use Animation Nodes and if you do, then you will already know how to create this Energy Beam effect. I followed along a tutorial by Chris Prenninger, so you guys should certainly check it out the tutorial here.

As I said, I am very new to this addon and would liked to have duplicated the effect two times, and I am sure any seasoned user of Animation nodes would know how to do this very easily. 

If you guys have any comments of suggestions are greatly welcome!.

So yeah, I really like Animation Nodes and will have to set some time aside to learn more about it!. 

Since I couldn't duplicate the effect as I hoped, and I did not find much information that would help, so I decided to render out the effect, then re position the Energy beam in the 3D view, then I rendered it, then re-positioned it a third time and rendered that. 
Then I rendered out the Background video and added the Energy beam in Post. 

As I said, there would certainly be a way to just duplicate the effect rather than having to do it the way I did. 

I hope you guys enjoyed this Video and if you do start using Animation Nodes, let us know what you think of it in the comments below!. 

As always, Thanks for reading!. 


You can download -

Animation Nodes by Jacques Lucke, here.  
Taipei Tower Video, here.

21 March, 2019

Brightwall [Digital Matte Painting]


Brightwall 
[Digital Matte Painting]

In this video I wanted to use Blender 2.8 and more importantly, Eevee to create a Digital Matte Painting.

Brightwall Preview

Digital Matte Painting Tutorial

I would have liked to have more time to spend on this Matte Painting and really make it look a lot better but unfortunately I was short on time. 

The idea behind it though was to show how awesome Blender 2.8 and Eevee is. 
(so I guess it doesn't really matter how crappy this example is, ;))

Using Eevee for our Matte Paintings will not only save us a whole bunch of time with rendering but also with many other improvements we can optimize our process even further. 

I opened up the last Digital Matte Painting we did "Castle Rock" and rendered the same thing. In 2.79 it took around 38 seconds to render one frame but in 2.8 and with Eevee,  it was rendered in a fraction of the time. 

I hope this video shows you how cool 2.8 is and more importantly, how its possible to create a Digital Matte Painting in Blender 2.8

Now get out there and create something awesome (and something better than this example :D). If you do create a cool Digital Matte Painting, be sure to post a link in our Facebook group!. 

As always, I hope you guys enjoyed this video and thanks for watching!.. 

Links - 

Facebook Group

Blender Download

Background Image 001

Background Image 002

Fortress

Town

Face

Waterfall

Smoke Elements

17 March, 2019

Castle Rock [Digital Matte Painting]



Castle Rock 
[Digital Matte Painting]

In this video we will be composing another Digital Matte Painting called "Castle Rock". Check out the Preview Here.

This time we will be using the 3D view to compose our shot. Using GIMP (or any other software of your choice) 

We will first take an image and cut it into a few layers. Then add some Visual Interest in the form of a Castle or two, some Ruins and other assets to build our Matte Painting. 

Once we are happy with our assets, we then export the images (with alpha transparency) and bring them into Blender using the "Image as Plains" tool. 

Once the Layers have been positioned and scaled, we then add some more visual interest with the addition of a Waterfall

To make our work a little easier, the Waterfall video clip has been turned into an Image Sequence. (You could just use the video and create a custom mask).

Then using the same technique as the Waterfall we can add smoke and other moving elements to add more life to our shot. 

With the addition of Motion Blur, Color Grading and finally a nice heavy Sunbeams Effect, we can compose this Matte Painting. 

If you create an awesome Matte Painting and want to share it with us, be sure to post a link in our Facebook Group.  

I hope you guys enjoy this video! and as always, 

Thanks for watching!.. 

Copse Cove [Digital Matte Painting]




Copse Cove
[Digital Matte Painting]


In this Tutorial, we will be creating another Digital Matte Painting called "Copse Cove". Check out the Preview Here

We will be using another "coastal" movie clip and adding some elements in order to create a nice little matte painting.

This Tutorial is similar to other Matte Paintings that we have done before, but there are some differences that you may find useful. 

You can check out the Node Set-up Here.

Don't forget to post your Matte Paintings in our Facebook Group