Blender 2.8 character project – Part 1 – Sculpting – Freestyle rough draft

Software:
Blender 2.8

This is the first part of a personal project I began working on,
Development of a realistic character in Blender 2.8 for games and animation.

<– Go to the project home

The first step of the project is a completely free-style / free-form ~5.5 hour sculpting session in which I’m not really trying to do anything accurate but just get used to 3D sculpting in Blender 2.8.
I’m imagining an elder Asian action character, at this point not sure what he’ll end up being. possible themes are:
ninja, samurai, cyber themed ninja or tough detective.

Result after part 1:
> Total accumulated work time: ~5.5 hours

 

Go to part 2 of the project –>

Blender Python – Accessing mesh triangles

Software:
Blender 2.81 | Python 3.74

By default, mesh triangles are not accessible to Python in Blender.
When accessing the mesh triangles is needed, they must be calculated first using the ‘calc_loop_triangles’ Mesh object method.
Before the calc_loop_triangle method has been called, the loop_triangles property of the Mesh object will reference a empty collection.
After calling the calc_loop_triangles method, the loop_triangles property will reference a collection of MeshLoopTriangle objects, in which the vertices property will hold an array of 3 integers that are the indices of the triangle vertices.

The following example script creates and places sphere objects at the centers of the cube’s triangles:

import bpy
mesh = bpy.data.objects['Cube'].data
mesh.calc_loop_triangles()
for tri in mesh.loop_triangles:
     tri_center = (mesh.vertices[tri.vertices[0]].co * 0.333) +\
                  (mesh.vertices[tri.vertices[1]].co * 0.333) +\
                  (mesh.vertices[tri.vertices[2]].co * 0.333)
     bpy.ops.mesh.primitive_uv_sphere_add(radius=0.1,
                                          enter_editmode=False, 
                                          location=tri_center)

* note that when copying and pasting a script from this example, the indentation may not be pasted correctly.

Download and example file here

Annotation 2019-11-23 224800.jpg
Related:
Python for Blender – Batch Rename Objects

Advanced Procedural Wood for Blender & Cycles

Software:
Blender 2.8 | Cycles

https://vimeo.com/274247551

CG-Lion Wood Presets Pack 1.0 is an advanced 3D procedural wood shader I developed for Blender and the Cycles render engine that produces consistent wood pattern on all sides of the model without requiring UV coordinates.
The shader has many tweak-able parameters for easy customization of the wood pattern, and also has built-in varnish coat and paint layers.
CG-Lion Wood Presets Pack 1.0 ships with a ready-to-use material preset library.

CG-Lion Wood Presets Pack 1.0 is available on Blender Market:
https://blendermarket.com/products/cg-lion-wood-presets-pack-1

CGL_Wood_Presets_Pack_1.0_Node_B.jpg

This slideshow requires JavaScript.

CGL_Wood_Presets_Pack_1.0_Previews_Natural

CGL_Wood_Presets_Pack_1.0_Previews_Matte_Varnished

CGL_Wood_Presets_Pack_1.0_Previews_Varnished

Related:
Realistic Spotlights for Blender & Cycles
Optimized Architectural Glazing Shader for Cycles
Customizable Photo-realistic Car-paint shader for Cycles

 

Blender Skeleton (Armature) Mirroring

Software:
Blender 2.8

To mirror a skeleton (Armature) in Blender:

  1. Create bones for one side of the rig and name them with “.L” for Left or “.R” for right.
  2. Select all the bones on that side.
  3. In Armature Edit Mode choose:
    Armature > Symmetrize

Blender will create mirrored copies of all the bones with respect to the Armature origin and flip their names to names ending with the opposite side.

  • When editing properly symmetrized bones,
    The X-Axis Mirror tool option will simultaneously update both sides of the Armature to maintain symmetry.

Untitled-1

 

Untitled-3.jpg

Untitled-4

 

Cycles render – Using the Normal Blue channel for top side effects

Software:
Blender 2.8 | Cycles Render

1.jpg

The shading normal‘s Z component can be easily used as a ready-to-use procedural mask for ‘covering effects’ like dust, snow, and if baked, also as a base for particle effects like debris and vegetation.

This simple shading flow example the shading normal‘s Z component, that represents how much the surface is facing upwards is separated , mixed (multiplied) with a noise textured and than fed into a ColorRamp Converter node for fine tuning the resulting mask:

2

This is the full shading flow of the snow effect in the image above:

3.jpg

Customizable Photo-realistic Car-paint shader for Cycles

Software:
Blender 2.8 | Cycles Render

CGL Car Paint Presets Pack 1.0 is a highly customizable photo-realistic car-paint shader I developed for Blender & the Cycles render engine.
The shader has built-in realistic effects like color blending, metallic flakes, clear-coat etc.
And ships with 32 ready-to-use real world car paint material presets.

CGL Car Paint Presets Pack 1.0 is available on Blender Market:
https://www.blendermarket.com/products/cg-lion-car-paint-presets-pack-1

https://vimeo.com/283194514

CGL_CarPaint.jpg

CGL_Cycles_Car_Paint_Presets_Pack_1.0_No_Numbers

This slideshow requires JavaScript.

Related posts:
Realistic Spotlights for Blender & Cycles
Complex Fresnel texture for Cycles
Optimized Architectural Glazing Shader for Cycles
Procedural Wood Shader for Cycles

Blender – assign different cameras to different view-ports

Software:
Blender 2.79

By default, the view-ports Camera view in Blender displays the view from the camera that is set as the scene’s Active Camera.
If you split the view and in the new view select a different camera and set it as the Active Camera, the view in other view-ports set to camera view will update to display the new Active camera.
In short, by default, it seems you can’t assign different camera views to different view-ports..

But you can…

You just have to unlock the wanted view-port from the scene’s Active Camera by de-activating this button:

Untitled-2

When the Use the scene’s Active Camera and layers in this view button is de-activated, your allowed to set an Active Camera for the specific view-port without changing the scene’s Active Camera setting, therefore not affecting other view-ports displaying the camera view.

Untitled-1

Blender – Create constraints quickly

Software:
Blender 2.79

To create constraints quickly:

  1. Select the target object.
  2. Shift + Select the object to constrain (Active Object)
  3. Press Ctrl + Shift + C
  4. Choose the wanted constraint type.
  5. select the constrained object to set the constraint parameters.

cons

cons2
Related post:
Copy bone constraints

Blender – Checker Deselect

Software:
Blender 2.79

Fast way to select every other element is to select a sequence like an edge loop or ring and than choose:

Select > Checker Deselect

This can be very helpful when needing to reduce the resolution of parts within a mesh.

Checker_Deselect.gif

Blender Python – Make an unselectable object local so it can be selected..

Software:
Blender 2.79

If you happen to link an external object that was made unselectable in the original blend file, You will have no interactive way to make it selectable again, or local, or even delete it from the current blend file.

The good news is that it can easily be done by a very short Python script:

import bpy

obj = bpy.data.objects['the_untouchable_object']
obj.make_local()

It should also be very easy script a loop that will find all those linked objects,
I will post an example when I’ll have a minute to breathe… 😀