Is bpy props able to create a list of lists?

Have a look at the templates UI List Simple from Text Editor -> Templates -> Python

Here is an example

import bpy

def get_color_enum(self):
    return self.get('color_enum', 0)

def set_color_enum(self, value):
    COLORS = (
        (1.0, 0.0, 1.0), (1.0, 1.0, 0.0), (0.0, 1.0, 1.0),
        (1.0, 0.0, 0.0), (0.0, 1.0, 0.0), (0.0, 0.0, 1.0))
    self['color_enum'] = value
    self['color_value'] = COLORS[value]

def get_color_value(self):
    return self.get('color_value', (1.0, 0.0, 1.0))

def set_color_value(self, value):
    self['color_value'] = value
    self['color_enum'] = 6

class MyListItem(bpy.types.PropertyGroup):
    name = bpy.props.StringProperty(name="Name", default="Name")
    color_enum = bpy.props.EnumProperty(
        name="Color",
        items=(
            ("PINK",    "Pink",   "", 0),
            ("YELLOW",  "Yellow", "", 1),
            ("CYAN",    "Cyan",   "", 2),
            ("RED",     "Red",    "", 3),
            ("GREEN",   "Green",  "", 4),
            ("BLUE",    "Blue",   "", 5),
            ("CUSTOM",  "Custom", "", 6)),
        get=get_color_enum,
        set=set_color_enum
    )
    color_value = bpy.props.FloatVectorProperty(
        name="Color",
        subtype="COLOR",
        min=0.0,
        max=1.0,
        get=get_color_value,
        set=set_color_value
    )

class MyExportSettings(bpy.types.PropertyGroup):
    colors = bpy.props.CollectionProperty(type=MyListItem, name="Colors")
    active_color_index = bpy.props.IntProperty(name="Active Color", default=-1)
    # ...

class SCENE_UL_my_color_list(bpy.types.UIList):
    def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
        layout.label("", icon="COLOR")
        layout.prop(item, "name",  "")
        layout.prop(item, "color_enum", "")
        layout.prop(item, "color_value", "")

class MyExportPanel(bpy.types.Panel):
    bl_label = "Colors Export Panel"
    bl_idname = "SCENE_PT_my_export_panel"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

    def draw(self, context):
        layout = self.layout
        settings = context.scene.my_export_settings

        layout.template_list(
            "SCENE_UL_my_color_list",
            "my_color_list",
            settings,
            "colors",
            settings,
            "active_color_index",
            type='DEFAULT'
        )

        row = layout.row(align=True)
        row.operator("scene.add_my_list_item")
        row.operator("scene.remove_my_list_item")

class AddMyListItem(bpy.types.Operator):
    bl_idname = "scene.add_my_list_item"
    bl_label = "Add Entry"
    bl_options = set()

    def execute(self, context):
        settings = context.scene.my_export_settings
        settings.colors.add()
        settings.active_color_index = len(settings.colors) - 1
        return {'FINISHED'}

class RemoveMyListItem(bpy.types.Operator):
    bl_idname = "scene.remove_my_list_item"
    bl_label = "Remove Active Entry"
    bl_options = set()

    @classmethod
    def poll(cls, context):
        return context.scene.my_export_settings.active_color_index >= 0

    def execute(self, context):
        settings = context.scene.my_export_settings
        settings.colors.remove(settings.active_color_index)
        settings.active_color_index -= 1
        return {'FINISHED'}

def register():
    for cls in (MyListItem, MyExportSettings, SCENE_UL_my_color_list, MyExportPanel, AddMyListItem, RemoveMyListItem):
        bpy.utils.register_class(cls)

    bpy.types.Scene.my_export_settings = bpy.props.PointerProperty(type=MyExportSettings)

if __name__ == "__main__":
    register()

For further information see the section about bpy.props and their examples, the page of the UIList base class and the description of the of UILayout.template_list function


The normals are reversed on the object for which the Clay Strip brush is currently not working. To prove this, try sculpting on the same object with any other brush. You will find that the new choice of brush will also not work. With the offending object selected, go into Edit Mode, select all faces, and press Shift + n. Now your normals are pointing to the outside of your mesh instead of the inside. You should be able to sculpt on it now.


Convert Sphere UV Coordinates to Object Coordinates

Okay, so it seems I managed to get the Z-Coordinate by utilizing some of the formulars for circle segment calculation that I learned in school but have gone lost like many things. Here is the Node Tree, if anyone is interested:


Sculpters have the opportunity to directly model wrinkles and bumps into their hi-res models for automatic normal map generation, instead of trying to approximate them with hand drawn normal maps later. If you have the patience, you can do that now. As for the diffuse texture, if you want to paint it directly onto the model, you will get best results doing that on the low-poly mesh (you will need to unwrap the model first). To be clear, the high poly model does not need texture coordinates.

After both versions of the model are completely modeled and you have finished unwraping the UVs for the low poly mesh, you can bake the Normal map, Ambient Occlusion map and Curvature map (If you want those last 2 for smarter textures) from the hi poly onto the low poly.


I guess these function have now been transformed into icons, either in the N menu > Tool, or in the Properties panel > Active Tool (first tab)


You are in the 3D view, and only the 3D view. You need to open the properties editor along side of the 3D view.

Move your mouse to the top right corner. The three little hashes in the corner are a button to split and join windows (editors).  What you need to do is click then drag that button to the left.
Now in that new window change it to the properties editor.

Now the reason you got into this situation is because you opened a file that was saved with this view.
To remedy this (instead of changing the view like I described above) you can simply open the file and leave the "Load UI" option unchecked. That will open the file but use the layout from your startup file.


How to add audio to Blender 2D animation?

In the top row you should have

2D Animation | 2D Full Canvas | Compositing | Rendering | +

Click the "+" in the sub-menu of Video Editing click Video Editing.
In the Video Editing tab navigate to your sound file.
Drag and drop the sound file anywhere into the sequencer.

The sound file is directly in your animation.

Go back to the 2D Animation tab and play your animation to see.


How do I remove transient pixels from rendered image?

Solved my problem by setting filter size to 0.00px


CPU baking only uses a fraction of the CPU, starting with 2.90

I found the reason! We were setting the tile size to the size of the map. According to the comment next to the code it was an optimisation recommended on Blender forums, and indeed it was way faster than setting a small tile size on 2.83. On 2.90 however, it was sluggish as hell. Setting a 32 tile size made things much better (it's even a wee bit faster than with 2.83)


This is one way to reduce vertex count.

enter image description here


Slightly adjusted nodes to render fire:

You need to add the bottom four nodes. They utilize the Attribute node's flame setting to detect fire. The ColorRamp node determines the color. The top Multiply node determines the smoke's thickness. The bottom Multiply node determines the fire's thickness.

Result produced by these settings (a lightsaber on fire) ( :) ):

This is your .blend file with the above nodes. I would include a screenshot of your final render instead of my stuff, but I do not have the smoke cache.


Blender 2.81a crashes while trying to render 2.8 file with Radeon ProRender

The problem is with ProRender. I used Color Ramp with displacement node, that caused the problem while rendering at ProRender version 2.2 for Blender.
They partly fixed the issue, but for some particular cases it will still crash, but they are tryng to fix it.


Try increasing the bounces under light paths.

The direct light preset with caustices gives a very dark image

while full global preset gives a golden brown finish.

I also think the SSS being used on the backface may be stopping light passing through the object. The calculation for the mix appears to always give a zero value for the visible faces, by replacing the SSS with another glass shader you get a brighter finish.


The jaw-lower bones are acting to deform its jaw.

I cleaned some weights in jaw and all works fine now.

See the image below, the bone selected and some cleaning in law:


There are several ways to do this:
1: use an armature, slow to make, but makes it much easier for animation.
2: set the 3D cursor to the parents origin, right click on the child, click on, set origin - to 3D cursor. ( this won't work if you want the robot to rotate the children indipendently later. (not recomended for animation)
3: to rotate them, select the parts you want to rotate, with the parent selected last.  set the pivot point to active element and rotate them. (also not reccomended for animation.)

There are other ways to do this too, but I hope this helped.

ps, I think the armature is the best  method, but If you just want to pose your robot for a still image, the other methods will help you.


Can't find the "Default" tab usually located next to "Compositing"

Hi and welcome to Blender community :)

You can use the 'Layout' view as default. The things that changes is that are shown by default some tools focusing on each type of work you will be doing. For me, 80% of my time I use in the 'Layout' tab. Script and Sculpting are for more specific works. But if you feel lost you can go over this '+' icon right next to the other tabs and add the tab you are looking for. Hope it helps


The action actuator will play the animation of the action. This animation consists of several channels. On armature actions these channels are the channels of the single bones. Typical channels are location, rotation, scale.
When the animation plays a channel it sets the pose of the bone regardless what pose the bone had before.
When you want to pose the channel via Python you should ensure this channel is not set within the action otherwise it gets overridden (the animation gets applied after the Python controller set the pose).
Solution
Remove all channels you want to manipulate via Python from within the action

Hint
When you play two actions that share the same channel only one of the actions will be played (unless


Has anyone got the Oscurart tools Add on to work in Blender 2.8?

Make sure the origin point of each of the objects is different. Oscurart Tools won't work if all of the objects have the same origin in space. So before distributing, set each object's origin to the geometry and then try it out.


There is no global solution if you are using an environment texture in your world material.
You can turn off shadows per object/lamp though.
For rendered objects go into the object settings under cycles visibility turn off Shadow.
For lamps go into the material settings and turn off Cast Shadow.
You can do that with multiple objects, select them all and hold ALT while disabling the shadow option. If your objects have mixed settings for this parameter toggle it twice, to unify them.


Is it better to use a cap when using the hair tool to avoid the hair particles from entering the mesh?

Hair caps are usually used because they make controlling distribution of hair strands easier. In my experience vertex groups alone are not always ideal due to how hair children interpolate. A good example is around the things like ears or anything similar should should have a gap in hair emission, where you may have faces with some vertices set to generate hairs, and some space in-between that should not, with vertex groups alone, these partially weighted faces may still get interpolated hairs, but with a cap you can just delete them.

Hair caps may also have slightly different topology that the underlying mesh to control the emission of hairs (e.g. extra loops / edges along where you want a part to be can make the result better defined).

Due to limitations in the collision system for hair they can improve collision handling with some extra setup, see here: How do I stop hair particles going through the body and the head?


Texture seen in viewport is paler compared to the original texture

You are now in the viewport shading - material preview. So your color depends on the lighting you have chosen here. You can change your lighting by tapping on that shading button.
Then choose another lighting you like by tapping on the sphere.
You can even import your own .hdr lighting by tapping on that gear icon.


For this specific case you could try the Fake BPY module, which seems to be designed to solve this:
https://github.com/nutti/fake-bpy-module


Need normalized distance between geometry bounds

The closest thing I found is:

The diagonal highlights can be edited in the UV map


At present the method is not to create instances of the material, but to vary vertex color per object.
Assuming cycles render, cycles allows per object info on the same material as: random, obj index or vertex color.

(For Blender Internal render, there are other methods, it allows object color etc)

Imitating your case, a basic setup looks like this:

instance the object
make sure you have "deep copy" so that each object has a different mesh, (like shiftD manual copy in blender)
color/set vertex color to set vcolor for each object
in cycles use attribute to get that color per object

(note that you don't need to create the vcol before, the node creates it or takes the first existing one)

There are other methods for this simple example. But generally it's better to vary this data than:

having to manage 100 materials only to change a color.
using object index, that may be used in other places, render layers etc
switch 2 materials only for ks for this limited case of pure switch

Also, vcol allows more variations of the color, using combine color node (hsv) to vary hue or any other complex rule.

-

Here's an example that uses object index (pass_index) as 0/1 to switch things.
But this parameter can very well be used in other places and only works with integers (0, 1, 2...100, 200...).

It is not the best. Still, you may need to use this if the object is not a mesh, but a curve or text.
(On texts there are other specific methods too, but for this simplistic switch it's ok)


I believe that you are looking for B. B allows for exactly what you describe -- Box Select. Upon its being pressed, the cursor turns into a crosshair and awaits your  LMB dragging. Note that you can additionally use  MMB to Box Deselect.

It works as an additive or subtractitive tool, only selecting more or less, never affecting ones already selected or deselected. It works in every editor that you can select something (not just the 3D Viewport but the UV Image Editor, Graph Editor, etc.)


There was a nurbs path which wasn't cyclic and was tiny, also without material. When I deleted it everything was exported successfully.
There were also modifiers not applyed and scales and rotations not applied.


2.8 Can't find "Create orientation" in the menus, therefore can't add it to "Add to quick favorites" does not work in Search

Is it what you're looking for? You can right click to create a shortcut:


How to use the Alt + right click in edit mode in Ubuntu 17.xx?

You could use Alt + Shift + <Right Mouse Button> instead.
(This shortcut is normally not used by the system.)
This will have the same effect, except the "Shift" key will make it add the new selection to an already existing one.
So what you should do is:
1. Press A (if needed) to remove any old selections.
2. Press Alt + Shift + RMB.


How to render single frame instead of repeating frames?

Just render your three images into picture files, then import them into your favorite video editing software and make them last any time you'd like.


Why does baking the armature (as an object) stop the bones from moving?

In order to bake the bones actions, you have to be in pose mode. From there you can make a bake of visual keying of bones AND object transforms (just shift select both pose and object in the bake tab).


How can I turn off light in compositing nodes?

When I followed the tutorial, I needed to deselect Ambient Occlusion in the World tab in order to make everything black.

Also, in the compositing nodes, I forgot to connect the image to the second mix node, and that caused my lower text to always appear.


Subdivision surface - dealing with edge support loops (pinching)

You have to be careful about adding edge loops on curved surfaces. As you've already discovered, Subdivision Surface modifiers average out the vertices, so those additional edge loops pull the local faces towards itself. Thus, you should try to only add in support edges around the edges that need support.

Here's the topology I used to get that result:

When you're adding support edges/loops, here's are a few things to keep in mind:

Try to isolate the supporting edges. Have the topology of the model surround the protruding mesh and its supporting edges. In this case, notice how none of the supporting edges go beyond the original mesh from the subdivided cube. Using the Knife tool instead of Edge Loops can help here.
Avoid triangles, n-gons, and impossible faces (Ex: imagine a flat square, then you pull one of the corners upwards along the face's normal. IRL, this would end up as two triangles with an edge across the square's diagonal, but that edge is not added in 3D modelling). These often cause shading issues.
Avoid excessively or unnecessarily close vertices. This isn't always a problem. but if possible, merge them together, making sure you aren't messing up your support loops. This can be done by selecting a vertex and double pressing G to slide the vertex along its connected edges into an adjacent vertex. If you have auto-merge vertices enabled (shown below), the two will be merged together. Alternatively, you can enter Edit Mode and select Mesh > Clean Up > Merge by Distance in the top left corner of the 3D Editor.


Why images are blury when extracting image sequence from video clip?

You need to deinterlace your footage. Try this checkbox in the bottom of the Source panel. and if this doesn't work, you'll need to deinterlace your footage outside of Blender first.


controlling the number of edges in a "object in curve" (Sverchok)

You can use the List-Item node with Int Range which will delete some points along the X axis depending on the step you set in the Int Range node :  ( change the step to get different results )


Reflection in sphere becomes more distorted as subsurf increases?

Even if the Ico sphere has a nice distribution of triangles it isn't the best topology for normals. Worse is that it subdivides very bad since it is all triangles. The results gets worse since the frequency of the subdivision pinches increases.

The UV sphere gives better result but you get pinching deformations at the poles since they are triangles.

To get the best possible result for subdivision use a subdivided cube and add a Cast Modifier (cast type "Sphere") to get it to be a sphere. This creates an all quad topology with only 8 3-edge poles.

To further improve the normals you can add an Edit Normals Modifier set to Radial and enable Auto Smooth in the Mesh properties. Now the normals will go straight out from the centre of the Sphere.


How can I increase the darkness of shadows without increasing the strength of the lamp?

Perhaps it's possible using the Shadow output of the Lightpath node but I couldn't do it.
What I could do, is enable the Shadow pass tick box in the Render Layers panel and then use that shadow pass to darken the shadows of the render with a mix(darken) node. Use a very small factor though as darken can be very intense.
Hope this helps you.


how to reference which particle system the current object is using?

active_object.particle_systems[A].settings.name would return data.particles[B] in this case.


How to avoid pinching on concave shapes with the bevel modifier and subsurf?

It's interesting to have a look at why this happens. This is a transition from  2x Simple subdiv to Catmull-Clark subdiv on a corner beveled with one segment.

It's not 'pinching' in the same sense as the pinching you get at say, the poles of a UV Sphere. It's more like 'leapfrogging'. Under the CC algorithm,the edges of small faces that were next to large faces in their own plane move further than small faces that were next to small faces at an angle to them, to the point that they overtake. This effect is compounded with each iteration, and the smaller the bevel by comparison with surrounding faces, the worse it gets.

I've never been able to think of a solution to fully automate away the need for hand-modified holding loops, or using creases to pin vertices and prevent them from being moved by CC.

Personally I tend to think in 3's, (put in a bevel with 2 segments) and not restrict by angle. Then the extra edge-loops an be 'tied off' (reduced from 3 to 1) elsewhere on the model, if needed. But that's still hand work.


How do I make remove the "tufts" and get this to be better rounded?

Avoid using polygons with more than 4 edges(except on hard flat non deforming surfaces)....that is where your issues are coming from...there are no edges for the subdivisions to adhere to.


Any chance to achieve soapy glass effect?

That's a rather complex effect you're after, but let me tell you how I would go about it. The result looks like this:

First, I would define the components - in this case a "soapy streak" component, and a "clean wipe component".
For the "soapy" component, I used a Wave Texture with the Vectors normalized (so they point towards the center). Because you are looking for sweeping streaks, I went further and warped the (normalized) vector slightly with a Noise Texture. I added a MixRGB mixed heavily with white before connecting to the Vector Math node, to decrease the warp influence - the warp effect can be controlled by this mix factor.

To make the lines look more "soapy", I mixed the result with the darks from another Noise Texture:

To make the "wipe" effect, my first aim was to make a rectangular box (not pictured). I do this by using Wave textures scaled very small so they are only one band, picking one each from two perpendicular directions. To make the rectangle more sharp, I used ColorRamps set to Constant. I then mixed them, set to "lighten, so only the dark areas the two have on common appear in the final image (a rectangle). However, in this case, I added an offset Spherical Gradient Texture to the input vectors to warp (curve) the result so it becomes more of a curve. This is why the straight rectangle is not pictured, and I just show the already warped one instead.

Next, I bring the two "effects" together in such a way that only the white "suds" shows (minus the "wiped" area):

Finally, I use this combo as a mix factor between a white BSDF and a Transparent BSDF. The ColorRamp is to give further control over the transparent influence (I made it pretty strong so it shows up in my screenshots).

I realize that this example is probably not as "precise" as you require - such precision would likely require a sizeable time investment into "tweaking" the final look. Because I don't even know if you'll find any of this helpful, I won't invest the extra time myself, but I feel there's enough here to get you on the right path and you can further tweak it to your liking, if needed. More can be done to the end of the shader to make the whole "pane" reflective (minus the soap if necessary) - I just didn't include it for the purpose of this example. If it's something you need, let me know and I'll add it to the answer.
If anyone's interested in playing around with it, but don't want to rebuild the graph from scratch, I'll include attach the .blend file to this post. I managed to include both the reflection (including a roughness map of sorts) , as well as a very slight Bump Map effect to the soap.
File is here -


How can I report a problem when I can't get Blender (2.79b) to even open?

You need to erase folder in /Users/Username/Library/Application Support/Blender in your mac


I am a beginner at blender but found your question amusing enough to want to find out. According to this source, Blender has just adopted Intel's Open Image Denoiser.

From what I understand (experienced users correct me if I am wrong): It analyses the samples at the pixel level in relation to one another defined by the radius setting. Then using a monte carlo trained deep learning library it identifies noise problem areas and reduces the number of samples to simplify the path traced samples that have acted unrealistically with their random bounces.


How to create and render clouds in blender cycles

Since the initial commit in January 2014, cycles has had volume support.

You can get a development version or any version newer than 2.70 to use it.

To render clouds with it, try sculpting a cloud shape (dynamic topology is useful) or modeling a low poly cloud with a subsurf and a displace modifier:

Smoke simulations look better, but will require more computation time to be baked.

For the cloud material, use a volume scatter node:

Result:

Make sure you set the scattering bounces pretty high in Render settings > Light paths if you want bright, fluffy clouds.


Can I bake the animation of a mesh and get rid of its armature?

The word for that kind of thing is "vertex animation". Blender supports shape keys that can be imported into unity via FBX. They are typically used for cloth animation and facial animations that are difficult to do with bones - if you're looking for movement in general then you'd generally want to stick to the armature and use an armature in Unity as well. You could also try to use a different armature in Unity and retarget the animations with Mechanim - if the armatures are compatible Mechanim usually works great.

If you just converted the keyframed poses to shape keys you might get an animation that looks roughly like the armature-based animation, but shape keys don't interpolate the same way that bones do. If you have to use shape keys you might have to create a shape key for every frame and change the blend shape in Unity in every frame.

You can create a shape key by selecting "Apply as Shape Key" in the armature modifier of the mesh that's controlled by the armature:

This thread might be of intererest to you:
https://blenderartists.org/forum/showthread.php?300572-Is-it-possible-to-bake-armature-poses-into-shape-keys-morph-targets


I don't believe you can call external libraries but you can certainly log messages to the console using 'printf(...)', 'warning(...)' or 'error(...)' function calls. For example :

printf("Point %f,%f,%f\n", P[0], P[1], P[2]);

This can produce the following output :

Point 0.352600 -0.724535 0.683879
Point 0.377360 -0.151356 0.841542
Point -0.081450 -0.115284 0.909532
Point -0.075156 -0.181691 0.885011
Point -0.018898 -0.221594 0.864882
....

The 'warning(...)' and 'error(...)' calls work a similar way but include additional formatting around the output string :

WARNING: Shader warning [my_shader]: Point -0.320504 -0.812141 0.157532
WARNING: Shader warning [my_shader]: Point 0.304608 -0.822310 0.270545
WARNING: Shader warning [my_shader]: Point 0.626177 0.138751 -0.099909

Looking at the OSL spec, there is also an 'fprintf(...)' function that accepts an additional argument for the output filename and will append the output to that file (rather than having to capture the console output and extract the details from there). However, my particular version of Blender (2.76b) does not seem to support that - it's presumably implemented at a later version.


How to fix an object in the view (e.g. corner of the monitor)

It works the other way around: parent you fixed pos object to the camera,

Select the object and place it
Select the camera and parent Ctrl-P


How to tilt (rotate in all axis) a video strip in when editing videos?

https://docs.blender.org/manual/de/dev/editors/vse/sequencer/strips/effects/transform.html

It's not possible, the transform strip only makes 2D transforms.

You can render the video overlay as 3d scene:

a new scene in the VSE project (then it's possible to add the scene directly to the VSE) or a new blend file (then you render the overlay video out and import it to the VSE)
open a 3d view
Use the addon "images as planes" and import your video as a mesh. Select "emit" as shading option.
In the film settings enable "transparent"
Set your iPhone image as background
Enable camera view with numpad-0 key
Transform the movie mesh so that it fits the iPhone screen in the background.
Set the animation length to the frames of the movie.

Two ways to get the overlay in the VSE:

If you used one blend file for both VSE and overlay rendering, then you can add the scene to the VSE.
If you created a new blend file, render the movie out and add it the the VSE. Select "Over drop" or "alpha over" as blend mode.


How can I change a scene using python BGE

When your player dies, change a property
(e.g. "dead" to "1")

Then use a property sensor ("dead" == "1"?) and hook it up to scene actuator.

Okay, there's a bit more to it

I did a collision sensor, colliding with property "damage."  I added property "damage" to everything except the floor!

I added health to your cube player, default 100.  connected collision sensor to property actuator add "-50".

Created property sensor, health less than 1. connected to property actuator, dead = 1

created property sensor, dead equals 1, connected to change scene actuator. Probably could be more efficient, but it works! :)

You'll want to "and" a delay so your dramatic final collision plays out before changing scenes though

Blend File


How to scale a mesh evenly without causing the faces to intersect?

ALTS is to scale along the Normals and if your vertices are all on the same plane they should only move up and down. If not, select all and scale the Z axis to Zero, and then remove doubles - just to keep things simple.

You could start by trying to scale the model just on the X axis and then the Y and see where the distortion starts. After that you will probably need to proportional scale - and it might be handy to turn on connected. You can also move and rotate proportionally.

What you might be thinking when you say 'scale evenly' is probably more correctly offsetting. There are tricks and work-a rounds but most software I have come across runs into trouble with intersecting surfaces.


full single rotation last pass strange behavior (incomplete X / Z rotation)

It is because of the way quaternions work.  To perform a single rotation from q=(1,0,0,0) around axis (0,0,1) it will go from (1,0,0,0) through (0,0,0,1) and return to its original orientation as (-1,0,0,0).  Now it may seem strange to start at (1,0,0,0) and end at (-1,0,0,0) and still be in the same orientation, but that is just the way quaternions work.  q and -q represent the same orientation.

Since you aren't ending your spin at (-1,0,0,0) that means the animation system animates the figure unspinning instead of completing the spin.

I first realized these properties of quaternions back in 2014 shortly after I asked How do I ensure a sequence of quaternions from matrix.decompose() is continuous? .  Take a good look at the difference between the fcurve screenshot in the question and the screenshot in the accepted answer.


Make plane fold in curve (arc) while conserving its length

When you say length should be "conserved," do you mean this in an approximate sense or a mathematically strict sense?  Doing it in a strict sense might be more difficult.

I am a little confused when you are talking about using a bevel modifier but you're showing the use of an armature.  You could certainly use them together, but why not simply parent the plane to the bones of your armature with weight paints to control the influence of each bone in a graduated/curved fashion?

For this example I used linear gradient weight paints for each bone:

I am sure you could tweak the gradients to get the curvature more to your liking.

But maybe this isn't what you had in mind?


Select the end faces, hit U button to unwrap and select Reset from the menu.
Hit U button again and chose Follow Active Quads.
Scale and move the unwrapped faces in the UV/Image editor to desired location.


Why does my Mesh disapear when using Softbody physics?

Check that your mesh is parented to the armature in the mesh-objects modifier stack. Seems to work ok in latest version 2.76b


Automatic weighting gets confused when a mesh is not continuous, non-manifold, with intersections and so on ...

You could separate all your loose parts (P, in edit mode), do the automatic weights on the base mesh, then manually parent the loose parts with their respective bones, then join all the meshes, selecting the base mesh as last (Active) and pressing Ctrl J.


How to increase size of physics time steps (delta t) in BGE?

You can set/reduce the physics substeps, but that only works in reverse (ie 10 physics steps per frame).

But what you may actually be looking for is bge.logic.setLogicTickRate(), so your logic can go faster without increasing frame-rate.

While I have not used them, the API in 2.77 provides some control over time-flow. The one you're probably looking for is bge.logic.setTimeScale(), which allows you to scale the speed of the simulation. Bear in mind that this won't influence physics substeps, so the faster you go, the worse the simulation accuracy will be.


The Scale operation works in relation to the object origin - so for a cube with the origin placed at the centre you get the desired effect - ie, you end up with a larger cube with faces parallel to the original and at a consistent distance.

For more complicated models this same technique does not work as you have found. One solution (depending on your mesh) is to use a Solidify modifier with a negative Thickness.

Another option (if the Solidify doesn't produce useful results) is to duplicate the original mesh and use a Shrinkwrap modifier on the duplicate, set with the original mesh as the Target. Set mode to Project and adjust the Offset for the thickness.


How to make my animation smooth like a curtain falling down

Im not sure for the result ... not clear what it should represent in reality - material, dimension, if it use some metal (or other hard) rings etc.)
Example is just

model scaled in Z axis (to more fit final shape)
Cloth - Preset Denim with Quality 4, Mass 0,8 kg
Collision Quality 8 and enabled Self Collision
first 50 frames used to squeeze cloth up by another Plane collider


Why do my particles grow outside the density vertex group?

One vertex group.

The other vertex group.

If you have multiple vertex group make sure you are viewing and editing the correct one.

Also make sure your blue color is exactly blue.  Paint it again to be sure.  Zoom in from different rotation angles for nooks and cranies.  Rotate the model so you are always facing the mesh face directly while painting.  Delete the vertex group, create it again, and use the new name in the Particle System.


face is flickering in blender and invisible in unity and i cant add a texture

You have some overlapping faces. They will never render correctly. And in unity it's even worse because it uses only single-sided faces. Follow the link given by  Duarte Farrajota Ramos, there are some tips how to get rid of them.
Also try to revise your mesh to avoid face overlapping. In your case it's simpler to model it once again. Just use loopcuts (Ctrl+R) to create points, where the new faces will begin, instead of overlapping them.

look this video.


How can I create a diffuse texture for stylized models?

Download the node setup
Generate an Asset automatically

Base color and blood color

We start with the base color and the Sub-Surface Scattering to add blood to the model.
For the SSS, add an Input > Ambient Occlusion node, you can reduce the Samples for it to 8, you can reduce it even more if the amount of blood visible is subtle. Check Inside to invert it and Only Local. For the Distance use 0.4, it varies depending on the model, this is the size I will use with the Monkey mesh.
Connect the AO output to a Color Mix RGB and connect it to the Factor. Set Color1 to R; 0.7 GB: 0.1.
The Color2 will be the Base Color, add an Input > RGB and connect it.

Connect the Mix node to the Color1 of another Mix node set to Value. For the Color2 plug the RGB node of the base color. This will allow to have the blood with the same value of the base color, if you make the base color brighter the blood will be more visible.

Now add another Mix node for the amount of blood visible. In Color1 plug the RGB node, in Color2 plug the previous Value node. Set the Factor to 0 to have no blood by default.

Here is what our node setup looks like:

Ambient Occlusion

We then add an Ambient Occlusion node, you can enable Only Local if you want. To make it more realistic you can connect it to a mix node to add bluish shadows to fake ambient lighting, for that connect the AO output to the Factor of a Mix node. Set the Color1 to RG: 0 B: 0.1. Set the Color2 to white.

Add a Mix node and connect in the Color1 the node for the amount of blood and in Color2 the Ambient Occlusion effect. Set the node to Multiply and the Factor to 0.8.

The node setup:

Vertical Gradient

The vertical gradient will darker the bottom part of your model to focus the attention at the top of your model.
To create it add an Input > Texture Coordinate, connect the Generated output to a Converter > Separate RGB and use the Blue channel, that's all you have to do for this effect.
Connect the gradient to a multiply node, in Color1 plug the AO amount and in Color2 the Vertical gradient, set the Factor to 0.5.

Here is the result you should get in the viewport (connect it to an Output > Material Output to see it):

Top Lighting

For the fake top lighting effect add an Input > Texture Coordinate (or use the previous node), connect the Normal output to a Converter > Separate RGB, connect the Blue channel in the first Input of a Mix node set to Screen mode, for the second Input keep the grey color (RGB: 0.5), we do that to avoid to have completely dark areas. Then connect it again to a screen node in the first Input with the RGB 0.5 grey in the second color to make the image a bit brighter. Connect the vertical gradient and top lighting to a Soft Light node and set it to 0.8.

Here is the node setup:

And the current result:

For now it is too bright but we will correct the gamma later.

Curvature

The curvature will add an hand painted effect to your texture.
Add an Input > Geometry and connect the Pointiness output to a Converter > ColorRamp. Move the left cursor at 0.45 and the right at 0.55. Connect the fake lighting and curvature on an Overlay node and set it to 1.

Gamma Correction

The texture is too bright, by default Blender works in sRGB, it brighten everything, this was ideal for older screens. We need to fix this to have the middle grey displayed with half the luminosity.
For that set the RGB node used for the base color to a value of 0.5 in HSV mode or type this Hexadecimal code: 7F7F7F.

The base grey color is now in Linear instead of sRGB, but in order to make it blend correctly with the other effects we need to add a node to set it to sRGB temporarly, for that add a Converter > Gamma, in Color connect the SSS node and in Gamma connect a Converter Math in Divide mode with Value 1: 0.5, Value 2: 2.2.

After the last node add a Converter > Gamma and set it to 2.2:

Here is the final result with the gamma corrected:

Here is the result I can get by changing the color and adding a bit of SSS:

Notes

You can now tweak the different factor if you want to add more curvature, more lighting effect, etc. Change the amount of blood on organic models and the Inverted AO distance.

To make the Vertical Gradient and Top Lighting effect work correctly, apply the rotation with Ctrl + A.
You can now directly bake your game texture in Emit mode. If you connect it to the base color input of a shader you must bake in Diffuse mode and disable Direct and Indirect lighting in the baking settings.
You can create a node group, I suggest to replace the Input RGB by the Input of the node and to allow to change the amount of blood. The Blood color and the factor of the other settings aren't necessary.

You can add a slider to switch between a version with no lighting information (PBR) and with the lighting. For that add a mix node between the Top Lighting node and the Curvature, in the first slot plug the Top Lighting in the second plug the first gamma node for the color. You can then add the setting in your node group.

The PBR version looks like this, you will need to bake your AO map separately:


Why are all the movie clips I import into the compositor not working?

I had the frame range set to the wrong set of frames.


How can I use Cylinder Mapping on a complicated object?

The Cylindrical, Spherical and Cubic texture projections in Blender are oriented by aligning an orthographic view before executing the U unwrap command with one of the options in the window with that view.

You can have other 3D views open to keep an eye on things.

On a roughly cylindrical selection of your model you can:

Look directly across its equator, with its poles up and down.
That's ShiftNumpad 7 with a latitude loop of edges (temporarily created and?) selected
You may have to revive the keyboard shortcut for rolling the viewport
Use options something like these:

Or you can:

Look directly down one of its poles
That's ShiftNumpad 7 with a polar face (temporarily created and?) selected
Don't forget you can H hide parts of your mesh to make these operations easier
And use options something like these:


I found a solution to it :)

In the Outliner, change from "All Scenes" to "Blender File" right click on the corrupted object and select "Delete". Now it is deleted...


How to scale plane 2d with bmesh and floatproperty in ui?

Use a setter getter on the property

Can keep the previous value of a property using the custom property ob["scale_factor"] to store the previous value.

Warning will cause an issue if you hit exactly 0.0, which may need to be handled in some way.

import bpy

def draw(self, context):
    layout = self.layout
    ob = context.object
    layout.prop(ob, "scale_factor")

def set_float(self, value):
    prev_sf = self.get("scale_factor", 1)
    sf = value / prev_sf
    self.scale.xy *= sf
    self["scale_factor"] = value

def get_float(self):
    return self.get("scale_factor", 1)

def register():
    bpy.types.Object.scale_factor = bpy.props.FloatProperty(get=get_float, set=set_float)
    bpy.types.TEXT_HT_footer.append(draw)

def unregister():
    pass
    # TODO

if __name__ == "__main__":
    register()

I have done the scaling on an object level here. For a mesh could use bmesh and

bmesh.ops.scale(bm,
        vec=(sf, sf, 1),
        space=Matrix.Translation(-pp), # pivot point (x, y, 0)
        verts=bm.verts)

or simply make the scale and translation matrices and

import bpy
from mathutils import Matrix, Vector
pp = Vector((1, 1, 0))
sf = 2
me = bpy.context.object.data

Sxy = Matrix.Scale(sf, 4, (1, 0, 0)) @ Matrix.Scale(sf, 4, (0, 1, 0))

me.transform(Matrix.Translation(-pp))
me.transform(Sxy)
me.transform(Matrix.Translation(pp))


Boolean difference operation and bevel problems in blender 2.9

When the difference boolean modifier is applied, delete part 2. You have to do this because the modifier doesn't delete it automatically. So even after having successfully applied the modifier, the hole doesn't appear because it is still filled with the original part.


Sculpting with Dynamic Topology, using Inflate Brush, blue Artifacts appear

This is because of bleed through from the inner faces, facing the opposite direction. The darker color indicates the Normals direction. Try to never have interior faces near the sculpting surface while sculpting. If the hair is a separate object, you can completely remove inner faces, as they serve no purpose.

Notice that you will have to do this before you begin sculpting, as sculpting directly affects changes to the mesh. In order to salvage your mesh, you will have to just clean up as carefully as possible, using the Smooth brush and such tools.


Mirror Multiple object or parent and sub meshes

You can transfer Modifier or "Link" them from one object to others.
By selecting multiple objects and pressing CTRL+L you get a menu that looks somewhat like this:

By clicking on modifiers, the modifiers of the last selected Object (your active Object) get copied over to the other selected objects. That way you can Setup one Object the way you want and just transfer the modifier to the other objects.


We can use compositor tricks as you proposed.

Scene

I am going to set the scene such that the shadless objects are in one layer and the others in another.

Add another render layers to catch shading information:

I am going to create a new render layer with exactly the same layers but I am going to set the Material override to a material which is just a diffuse shader. And another one which with the same setting but with excluding the layer with the non shadless objects.

Shading layer:

Shadow layer:

Matrials

The material for the object should be as you described, an emission shader with camera ray as input.

Compositing setup

Since we enabled all passes, we cal selectively apply the only shading we want.

Example 1: Shadows that other object casted:

By subtracting the shadow if the shading layer from the shadow if the shadow layer and then inverting it, I get the shadows that were only casted from other objects and not the object itself.

Example 2: Adding highlights:

I can add the diffuse direct of the shadow layer to the result to get highlights and I can use Indirect lighting.

And you can play with passes to get exactly what you want.


Creating a Grease Pencil Material in Blender 2.8

Use bpy.data.materials.create_gpencil_data(mat) to add grease pencil material settings

import bpy
context = bpy.context
space = context.space_data

# Create material for grease pencil
if "Bright Material" in bpy.data.materials.keys():
    gp_mat = bpy.data.materials["Bright Material"]
else:
    gp_mat = bpy.data.materials.new("Bright Material")

if not gp_mat.is_grease_pencil:
    bpy.data.materials.create_gpencil_data(gp_mat)
    gp_mat.grease_pencil.color = (1, 0, 0.818649, 1)

# Add grease pencil object
gp_data = bpy.data.grease_pencils.new("Bright Pencil")
gp_ob = bpy.data.objects.new("Bright Pencil", gp_data)
context.scene.collection.objects.link(gp_ob)
if space.local_view:
    gp_ob.local_view_set(space, True)

for ob in context.selected_objects:
    ob.select_set(False)
gp_ob.select_set(True)
context.view_layer.objects.active = gp_ob
bpy.ops.object.mode_set(mode='PAINT_GPENCIL')

# Assign the material to the grease pencil for drawing
gp_data.materials.append(gp_mat)

# Draw, using the material defined
bpy.ops.gpencil.draw(wait_for_input=False)


Cryptomatte doesnt output nice clean edges

I assume your screenshot shows what you would see in the image editor if you have rendered cryptomatte passes, and view them directly. In that case, they look absolutely horrible:

However, that's not how they are supposed to be used. The mattes have to be extracted from the created channels first using the Cryptomatte node. You can find it under Add -> Mattes -> Cryptomatte in the Compositor. Connect the nodes like in the screenshot below to extract the object mattes:

If you need to extract material mattes, connect the three material Cryptomatte outputs to the Cryptomatte node instead.

Next comes the tricky part: The Cryptomatte render passes contain all mattes at once using an internal ID. That ID needs to be set in the node. Since these are not simple 1, 2, 3, etc numbers, you have to pick the correct ID using the color picker. That is also the reason why in the screenshot above I have used two Image Editors, one showing the Composite, the other the Viewer node. I can see both images, the Pick one through the Viewer, and the Image through the Composite node.

Now, use the color picker to grab the ID from the bottom image (the one that shows the Pick image):

If you check what's in the Matte socket output, you will see that the created Matte is perfectly anti-aliased:

Of course, this anti-aliasing quality is dependent on the scene samples. But the matte quality always matches the image quality.


place a plane or other object exactly 7mm away from your cylinder
extrude your ring of faces then scale them in the X/Y plane only with Snap to Vertex enabled and snap them to the object created in 1. Make sure the vertex is what's exactly 7mm away from the cylinder.


Smoke simulation values are Resetting automatically

This is because you are turning the domain  into an emitter and then back into a domain.

Each smoke type (domain, flow, collision) plays a different role in the simulation with different settings. By clicking that button, you are changing the active object to a different type.

Generally you'll want to select one of the smoke types for each object and leave them at that. Domain options should be set on the domain object and flow settings set on the flow object(s).

For example, here's a quick setup:

Note that to access the different settings for the domain and flow objects I select the object in question.


If you want to mirror some shape keys without doubling the quantity of movement for the center line of vertices, you need to use at least one weightgroup with all vertex at 1 except for the middle ones which will be at 0.5.

Individual shape will have their movement on center line halved, but it's a common practice. Here I show one weightgroup (1-0.5-1) but you will often see two weightgroups (1-0.5-0) and (0-0.5-1).

You can watch this video tutorial from Angela Guenette for this process, and I highly invite you to watch the whole series.


Does the Principled Shader IOR value effect specular reflection on a transmission material

TL;DR:
the specular value controls the IOR for reflection, the IOR value is indeed just used for refraction.

Background info:
The principled BSDF-Shader is based off of disneys principled BRDF.
It's called principled because of these 5 principles:

Intuitive rather than physical parameters should be used.
There should be as few parameters as possible.
Parameters should be zero to one over their plausible range.
Parameters should be allowed to be pushed beyond their plausible range where it makes sense.
All combinations of parameters should be as robust and plausible as
possible.

Because of their first principle (easy instead of scientific) Disney decided to cloak the fresnel-IOR in a specular reflection value. This is of course a more artistic approach.

from the disney docs: specular - incident specular amount. This is in lieu of an explicit index-of-refraction

and from the blender docs: Specular
Amount of dielectric specular reflection. Specifies facing (along normal) reflectivity in the most common 0 - 8% range.

You can use the formula =((−1)/(+1))2/0.08 to create a node group so you can control both IORs with one slider.

Note that the specular value accepts values above 1.


This question is similar to this one answered by christopheS.

So in the same principle, I just add some more information.

An object has animation data
This data contains curves
A curve is defined by an 'action type' (which is defined in 'data_path') and an 'array index'
Action type and array index will give about what the curve is. For instance an action type equal to 'location' with an array index of 1 is a curve about the Y location of the object
The curve contains keyframe points. Each as a 'co'(ordinate) vector where co[ 0 ] is the frame and co[ 1 ] the value

Additionally you can ask the curve value using 'value = curve.evaluate( frame )'.

The code here is commented, so please tell if it is enough explanation or not.

import bpy

print( '---------' )

# Action types, in order to filter the wanted curves if needed
actionTypes = ('location','rotation_euler','rotation_quaternion','scale')

# Get the object from which we want the animation data
obj = bpy.data.objects['Cube']

# If it has some animation
if obj.animation_data:
    # Iterates over the wanted curves
    # The data_path gives the action's type
    for curve in [c for c in obj.animation_data.action.fcurves if c.data_path.endswith( actionTypes )]:
        # The array_index give the corresponding X, Y or Z index of the curve
        print( curve.data_path, curve.array_index )
        for key in curve.keyframe_points:
            # The curve's points has a 'co' vector giving the frame and the value
            print( 'frame: ', key.co[0], ' value: ', key.co[1] )
    pass
else:
    print("no data")


How do I make a procedural swirl texture?

The Hacky Way

One way to do this is by stretching the mesh, so to speak, rather than the texture. When a mesh is bent by the deform modifier, cycles will give us the coordinates of the unbent mesh, but deformed to match the mesh's deformation. To see how this is useful, consider the following gif:

Unfortunately, for some reason this only works for the surface coordinates; we get undeformed coordinates if we try and use them for a volume shader.
However, it's possible to fake volumetrics using an array modifier.

The complete process:

Create a plane (⇧ ShiftA> Mesh > Plane) and give it a few loopcuts (⎈ CtrlR)
Add a subsurf modifier, set it to Simple and increase the number of subdivisions a bit.
Add a simple deform modifier, set it to Bend, bend it 360°
Add an array modifier, use the Z constant offset to make a "stack" of planes.
Finally, slap on a shader such as this:

The Scale nodegroup performs identically to the scale component of the mapping node while in Point mode. I use it instead in case I wish to connect something to any of the scaling factors, and just because it takes up less screen real-estate if I don't need any of the other transforms

The Real Way

The above method renders fast, but doesn't work so well if you get too close or want to go inside it.
Instead of using some modifier trickery to get blender to generate the coordinates we want, we can generate them ourselves by transforming the default generated coordinates to polar coordinates.
This has the distinct advantage of letting us use real volumetrics:

Nothing special with the object this time, just a solid, flat, doughnut-shaped mesh with no modifiers. Everything is done in the shader:

The first group ("Centered Coordinates") takes the default generated coordinates (which are the normalized object dimensions, i.e. the entire object is within the 0..1 range, with each extreme of the object along a given axis being either at 0 or 1), and subtracts .5 from the X and Y so that 0,0 is in the middle of the object.

The next group ("Polar Coordinates") is where the important stuff is. It transforms the X and Y coordinates of the input to polar coordinates. It leaves the Z untouched.
What this transformation does can most clearly be seen by comparing the way the X and Y coordinates vary before and after:

The add and multiply nodes on the polar Y axis in this example just transform the values from -1..+1 to 0..1 for the purpose of visualization

Before the transform, the X and Y vary along the axes. After the transform, the X varies with distance from the center, and the Y varies with angle to the center.

From here on, the shader looks pretty much like that of the first method. The only major difference being the use of a musgrave texture instead of a normal noise texture, which is, of course, completely up to interpretation.


How to export to .obj with separate map-channels?

The .obj file format only supports a single UV map per object. There is no way to export an .obj file from blender with multiple UV maps. What you should do is use another file format such as FBX which does support multiple UV maps per object.


How to match a separate dome mesh for an eye to an irregular eye hole perimeter?

Your shape is a bit hard to work as it is already high in polygons, you should not work with high-poly as long as you are not satisfied with the whole shape in my opinion (and even afterwards, keep it low-poly, use a Subdivision Surface modifier to smooth, and only apply it if necessary), but, starting with what you're sharing, what you could do is duplicate the outer edge loop, simplify it (header menu > Select > Checker Deselect, then X > Dissolve vertices):

Then extrude inwards and fill:

Put it on the head, make some adjustments:

If you want to smooth it, give it a Subdivision Surface modifier (3 subdivisions) and apply:

Here is what it gives:


Carving openings in a terrain for already built subterrain structures

Sculpt your terrain the way you want it too look. At this point do not worry about covering the entrance to your bunker. Just get the height along the sides and top where you want it.

In this picture I have my terrain set to be partially transparent so you can see the bunker entrance I covered.

Add a cube, transform it so that it sits inside the walls of the bunker entrance. Make sure that the cube extends a bit below the low point of the terrain, and above the high point. In this image my new cube is selected in orange, notice the bunker walls around it on every side.

Now select your terrain and add a boolean modifier. Set the Operation to Difference and set the Object to the cube you added in the last step.

Once you are sure that everything is set, you are not going to move the bunker entrance, and the cuter cube is in the right place, apply the boolean modifier. I always duplicate my object and move it to a different layer before applying modifiers like this

This is what it should look like after you apply the boolean modifier. The door will still be blocked off, but we will fix that next. (circled in red in the image below.)

Last step, Tab into edit mode with the terrain selected. Select all the faces the boolean modifier created, Bottom sides, and any little faces on the terrain that are completely inside the entrance's walls. (you don't need any of the sides, because they are in the entrance object). When you have your selection done, press X or Delete then choose Faces.


Is there a good/industry methodology to setup folders in blender projects?

After many tries I guess there simply isn't a universal method that just works out of the box with every Blender project (or with any project that involves cooperation) imaginable.

It all comes down to the nature of the project itself. Rendering still images or movies might have different requirements than creating game assets.

The universal texture folder might be a good idea at first glance, but once you start altering those textures (painting seams, baking dirt/worn edges) those textures become project- and even object-specific. So once you make changes to the base textures, you might them store in a project-specific area of your file system anyway.

Subfolders within the project folder keep things organized well enough within the Blender project, but they don't necessarily work for export to game engine formats.

Then there's always a difference between working on projects locally on your Computer, in a local network or over the Internet.
If you work locally on your Computer but still want to share the work with other people, you would at least have to share a method how to set up the project folder (that's nothing special to Blender). The same goes for office-like LAN setups, both should be well-organized.

Collaboration over the Internet is a whole different story. The first thing that comes to mind is "hey, let's set up a git/cvs/mercurial repo". It's a good idea in general although there are virtually no distributed version control systems that deal well enough with binary files out of the box (the only one I know of is Perforce but it's not free and requires good hardware to run well).

IMHO the best method to share your work Blender has to offer without any additional work is to pack external data into the .blend file itself. Once you've done that you won't have to think about what to pack into the repo or where and how to store data in a manner that it would work over all setups. The only thing you have to remember is to clean up your file every now and then.


Duplication following a path not rendering

You need to make the duplicates real. Go to Object > Apply > Make Duplicates Real (...or Shift+Ctrl+A)


Script saves the current file, removes all scenes but the context scene and saves that to a file in the current blends directory with name "SCENE_<context.scene.name>" eg SCENE_Scene.blend for the scene.name of "Scene".

After which it reopens the original file, links to the scene in the created file, and deletes the original.

import bpy

class BPC_main_Outsource(bpy.types.Operator):
    bl_idname = "scene.outsource"
    bl_label = "Outsource"

    @classmethod
    def poll(cls, context):
        return bpy.data.filepath != "" and context.scene.library is None

    def execute(self, context):
        from os import path

        compScene = context.scene #get scene
        blendFile  = bpy.data.filepath #get path of current file
        clean_name = bpy.path.clean_name(bpy.path.display_name(blendFile))
        apFilename = compScene.name
        screen_name = context.screen.name
        scene_file_path = blendFile.replace(clean_name, "SCENE_%s" % apFilename)

        if path.isfile(scene_file_path):
            print("Scene file %s already exists" % scene_file_path)
            return {'CANCELLED'}

        bpy.ops.wm.save_mainfile()

        # remove all but context scene
        for scene in bpy.data.scenes:
            if scene == compScene:
                continue
            bpy.data.scenes.remove(scene)

        # save with only compScene
        bpy.ops.wm.save_as_mainfile(filepath=scene_file_path)
        # reopen original,link saved scene
        bpy.ops.wm.open_mainfile(filepath=blendFile)
        scene = bpy.data.scenes.get(apFilename)
        # link the scene back
        with bpy.data.libraries.load(scene_file_path, link=True, relative=True) as (data_from, data_to):
            data_to.scenes = [apFilename]
        # rename the original scene, remove crashes my blender
        screen = bpy.data.screens.get(screen_name)
        scn = screen.scene
        if scene and screen:

            scene.name = "%s_ORIGINAL" % scene.name
            scn = bpy.data.scenes.get(apFilename)
            #c = context.copy()
            print("CONTEXT", bpy.context.window, context.window)
            c = {"scene": scene,
                 "screen": screen,
                 "area": screen.areas[0],
                 "region": screen.areas[0].regions[0],
                 "edit_object": None,
                 "blend_data": bpy.data,
                 "window": bpy.data.window_managers[0].windows[0]
                 }
            bpy.ops.scene.delete(c)
            screen.scene = scn

        return {"FINISHED"}

bpy.utils.register_class(BPC_main_Outsource)

# test run
if bpy.ops.scene.outsource.poll():
    bpy.ops.scene.outsource()
else:
    print("Failed POLL is scene already linked?")


Three different ways to do this currently. Options #1 and #2 only allow to specify distance factors relative to edge length. Option #3 should allow absolute units.

Use vertex slide: Press G,G twice to activate Vertex Slide, while the cursor is hovering the edge with the desired direction. Afterwards press C to deactivate clamping and allow extending beyond current position.

Scale in relation to the other vertex: Place you 3D cursor at the other end of the edge by snapping it to the vertex with Shift+S > Cursor to Selected. Change the Transform Pivot to the 3D Cursor and then scale the opposing vertex with S.

Use a custom transform Orientation: Select the edge with the desired direction. In the 3D View Properties Area from Transform orientations chango to local and press + to add a new one. Select it from the list (should be named Edgeby default), then select your vertex and move it by using G then tapping twice the desired axis to move in local coordinates, in this case Y,Y.


How do I change the radius for proportional editing WITHOUT PgUp/PgDn?

If you have trouble using the standard keyboard shortcuts you can adjust your settings to suit your keyboard.

In File->User Preferences under the Input tab you will find a group called Transform Modal Map, under which you will find the shortcut settings to adjust proportional influence. You can adjust these to anything that works for you, be sure to Save User Settings so that the changes are available every time you start blender.


How can I add multiple points on a circle without changing its shape?

Set the handle type to Aligned
I should have read the question better, re subdividing, to have a new point remain on the circle to change the handle type.

After adding the Bézier circle, select all in edit mode and Control Points → Set Handle Type → Aligned (Or only the two handles being sub'd.) The default Bézier curve has handle type 'AUTO' (look for a link to the handle type.)
After which the result of subdividing produces handles on the tangent.

The active object is the default Bézier circle section subdivide, over the result above.
For a circle, after adding a point as above, can then "point slide" it in its two original handle quadrants by rotating about the circle center pivot point and adjust the handle points to make a sine, cosine ratio.
The left-to-right handle length will be constant. The alignment after rotate will be correct. To keep as a circle is a matter of sliding handles. For example, it would be all horizontal right handle if rotated back to the top, and all vertical left handle clockwise to right original point...
It is somewhat reminiscent of the position in a slot of
How to do Trammel Of Archimedes Animation?
About to add the handle fix to How to rotate bezier control point (viewport not updating) ...
However, for the answer to the question marked as a dupe has gone above and beyond - What is the fastest way to add vertices to a curve at a specific point?


My cursor doesn't stay in the window when scaling

You can enable or disable the behaviour in the User Preferences(ctrl+alt+u), Input tab, under Mouse section. It's called Continuous Grab.


How to separate texture-alpha without premultiplying the color?

The workaround WorldSEnder mentioned above is the only solution:

  Duplicate each Texture Input node and get the RBG value from one, and the Alpha value from the other input.

The stance here seems to be that texture-files are simply not expected to contain unrelated information. The optimization to pack several unrelated channels into one texture-file to improve memory-locality on the GPU is just not that relevant to Blender to warrant a change to the behavior of Texture Input nodes.


Please try following steps

Please select the set of edges on the top of your tank, using Alt + click on the edge as show in image below:

Hit Shift + D to duplicate edges
Hit p to seperate the edges
Go to the object mode and you will get a duplicate in outliner
Go to edit mode - Select edges using Alt + click
Extrude a twice as shown in the picture below:

Select alternative faces and hit X and delete Only Faces

You can do it as a single obect too, I hope it help you


Deformations on back of the head when trying to rotate rig

What you could do is enable transparency with Alt Z, select all this part of your mesh (back of the head), in the Properties panel > Object Data > Vertex Groups, on the right of the vertex group list, click on the dropdown menu and choose Remove From All Groups, then in Weight Paint mode, assign this part to the bone that is supposed to move it.


Cut mesh into two objects along selected edge

No worries, the split option is still there :)

Select your edge
Go Mesh > Split > Faces By Edges
Done.


How to switch to new gizmo in blender 2.8?

In the top menu bar > Edit > Preferences > Viewport > Display > 3D Viewport Axis > choose Interactive Navigation. It would make more sense to put this in the 3D View Viewport Gizmo panel in my opinion.


What you can do is:

Enter edit mode
Select the face you want
click I to inset

this should do.


What does the simplify AO bounces value do?

TL;DR:

To put it simply, after n light bounces, Cycles switches the material shader to a simplified diffuse material (i.e. AO), instead of evaluating the full material node tree.

This Simplify to AO feature can be replicated with this node setup:

Note that because the math node is set to 'greater than 1', the AO node will only kick in at ray depth 2.

Why?

This often give a significant speed up because we author the materials to look good to the camera, all those normal maps, fresnel effects and fancy edge shaders don't really change how the light behaves after a few bounces. For bounced light, all that matters is how reflective the material is(i.e. its albedo), does it bounce back 10% of the light, or 99% of the light?

Here is a more elaborate example of the optimization at work.

We can easily cut the render time in half by falling back to a diffuse BSDF after 1 bounce instead of whatever megashader we are using. This test is an outdoor scene with bounced limited to 3. The rendertime improvement will only get better if there is more bounced light, as with most interior scene.

AO distance setting definitely plays a role in the output image. But it is unclear how other ambient occlusion settings (factor and world color) affects the AO pass.

Effect on perfectly specular surfaces

A question was raised about how this will affect perfectly glossy surfaces. To answer that we can assemble a test scene with 2 parallel mirrors with a subject in the middle:
This is with the bounce turned all the way up to 8. We can see precisely 8 monkeys before the mirror turns black.

If we turn on Simplify to AO to 2, it seems the shader returns the environment color after 2 bounces instead of returning black, which is arguable more energy conserving and correct.

A final comparison: this is with the global bounce setting turned down to 2. Notice all reflection rays after 2 bounces are black.

This is an extreme example, with normal world scenes, it's unlikely we'll need anything with more than 2 bounces.

Take Away:
Always set AO Simplify to 2, or just limit your global bounces to 2 or 3.

If you have a complex shader network, create a diffuse shader for all the non-camera rays. This can be faster and more accurate than the AO simplify option.


For Sound Drivers Addon I do a lot of sound baking, so I thought I'd check out how it would perform running in background mode (this has led to another q re running modal timer operators in bg mode). Anyhow using context override the following bakes in bg mode using command

blender -b ./Desktop/baketest.blend --python-text bake.py

using the following as a text block named bake.py.

import bpy
#from sound_drivers.utils import get_context_area
def get_context_area(context, context_dict, area_type='GRAPH_EDITOR',
                     context_screen=False):
    '''
    context : the current context
    context_dict : a context dictionary. Will update area, screen, scene,
                   area, region
    area_type: the type of area to search for
    context_screen: Boolean. If true only search in the context screen.
    '''
    if not context_screen:  # default
        screens = bpy.data.screens
    else:
        screens = [context.screen]
    for screen in screens:
        for area_index, area in screen.areas.items():
            if area.type == area_type:
                for region in area.regions:
                    if region.type == 'WINDOW':
                        context_dict["area"] = area
                        context_dict["screen"] = screen
                        context_dict["scene"] = context.scene
                        context_dict["window"] = context.window
                        context_dict["region"] = region
                        return area
    return None

c = bpy.context.copy()
get_context_area(bpy.context, c)
obj = bpy.data.objects["Cube"]
obj["y"] = 0.0
obj.keyframe_insert('["y"]', frame=1)

speaker = bpy.data.speakers["Speaker"]
bpy.ops.graph.sound_bake(c, filepath=speaker.sound.filepath)
bpy.ops.wm.save_mainfile()

Note for convenience sake I grabbed the filepath from a speaker's sound.  This successfully baked the sound file onto the "y" custom property of the Cube in bg mode.

Use something like How to pass command line arguments to a Blender Python script? to extend functionality,.

NB: Example of creating a simple sound visualiser using sound_drivers.


Creating a mesh cone with exponential radius

You can do this via the Add Mesh Extra Objects, XYZ surface.  Enable the addon, then add mesh > Math Function > XYX math surface from the add menu.

The parametric equations of a cone from Wolfram.

Here is a quick test, not sure if its the shape you want,


As many have stated above, getting a 'working' clock in blender is possible, although it highly depends on your definition of working.

You can:

manually animate all moving parts using keyframes.
animate all moving parts using drivers.
be fancy, animate one moving part using a driver and link the movement of all the other parts to it's movement, using constraints.

You can't simulate the clocks physics in blender in order to let it drive itself (or at least you probably can't, in any case it would be extremely difficult).

Reasons:

(as far as I know) the physics in Blender are not designed for accuracy and continuum mechanics
models in Blender are not parametric but meshes. That means things like the forces transmitted between your gears will not be calculable by means of simple polynomial or differential equations, but rather FEM (don't even bother with that stuff).

TL;DR: Do, what all the comments above suggested or be ready for a major headache.


My back foot keeps slipping in my animation?

You need to bring correction to the feet positions. What you can do is:

Put your 3D view in Right Orthographic. In the Dopesheet / Action Editor mode, load the walk animation called "stairs". Enable the Only Include Channels Relating To Selected Object option so that you'll only see the selected bone keyframes.

Look when the first slipping happens, it's between frame 23 and 30.

So what you need to do is correct the foot position at frame 30 so that if stays at the same position as frame 23. Delete the current frame 30 keyframe. As your root bone is moving, you can't just copy paste the keyframes of 23, you need to visually position the foot at frame 30 and create new keyframe (i > LocRot). Also make sure that your Graph Editor curves are linear and not bezier (press T > Linear) so that it doesn't smooth the movement. Do the same for the next slippings.


Change material of faces of object with modifiers non-destructively?

You could add a color stripe directly into your material.

Use Gradient texture and ColorRamp as a mask
Add the Mapping node to control position of the stripe
Use mix node to combine different shaders


Is there an option to hide/disable the "volume" display in edit mode?

I think your issue is related to the display camera's clipping distance. Clipping distance is basically the distance the camera can view.

You can change the settings around in the properties panel (N):


Does Blender have a file locking feature?

No, for the same reasons ideasman42 said in his own answer. He suggests some workarounds however, here are mine..

Case A:
You can use PasteAll.org (which has natural support for blend files) to safely upload and password protect a .blend file, you can then send the link and password to the customer.

Case B:
Easy enough, they could work in separate personal files and merge them when ready. Link/Append

Ultimately, you are better off using an actual software that provides encryption such as 7zip.


Blender Not Responding When I Try To Move My Character

All right, thank you for posting your question clearly.
1) Go to the emitter settings (could it be your head or your hair scalp mesh?) and in the emitter settings turn OFF the eye icon. We want to make the hairs INVISIBLE yet, still be available.

Now, try to move your character.
If your viewport perfomance is still laggy:

2)compress every other window and leave only 1 main big 3D window to work and set it to WIREFRAME MODE. Also if your character's hair has dynamics applied, please go to cache and click on FREE ALL BAKES.

Try to move your character again. If POSE mode is still twitchy:

3) Go to the deformers tab on your character, check you only have 1 ARMATURE deformer and that it is pointing to the correct ARMATURE.

Try to go to pose mode again, If pose mode is still unavailable:

4) Check out your outliner. You probably have your armature UNSELECTABLE (which means you should turn on the pointer arrow icon ghosted, CLICK IT to make it active again).

5) You should now have your armature mode selectable, ready to go into POSE mode.

Try moving your character now.

If your character is still laggy and all of the above applied or NONE of them applied, try this:
Create a new scene. Create a plane. Create a 2 chain Bone horizontally in Y+. Parent the plane to the bone. Select the plane again, make a particle emission, change it to HAIR, make it emit 50 particles.

Exit particles (unselect all (A)) and now select bones, go to POSE mode, you should be able to move your plane with the bone deformers and your hair should follow allong.

And since that solves the question, I´d appreciate it if you vote this as the answer. Thanks.

BFCT_Schiller


So how I ended up doing it was, I extruded the circle straight out and then added a whole bunch of loop cuts to the ectruded circle. I then selected the desired circle of vertices and then moved the circle up using proportional editing. It worked beautifully!!


Your topology is bad, you have a lot of ngons, you need quads. What you could do is correct your object this way:

Apply the rotation of your object. Only keep a section, delete the rest:

Create an empty at the origin of your object:

Give your object an Array modifier with the empty as Offset Object. Enable Merge and First Last options:

Rotate your object so that it makes a complete circle:

Correct your topology with the knife or with some joins so that it is made of nice quads, create some bevels, etc (here just the beginning before my computer crashed):


What's the range of values on a sound-baked f-curve?

Sound Drivers

Been doing a lot of sound baking lately too. You'll find different audio files have different levels, so unless you normalize them first using ffmpeg or similar you will have to find a way to deal with them.

What I have done in sound drivers is added a minmax property to each fcurve and using those values added an envelope modifier.  (Had to add the control point code to the python API.. that took a while..)

def fcurve_minmax(self):
    # return ((min, max), (min_index, max_index))
    # it thru keyframe_points
    if len(self.keyframe_points):
        col = self.keyframe_points
    elif len(self.sampled_points):
        col = self.sampled_points
    else:
        return ((0, 0), (0, 0))
        return(driver_minmax(self))
    # check for modifiers
    mods = [mod for mod in self.modifiers if not mod.mute and mod.is_valid]
    if len(mods):
        v = [self.evaluate(p.co[0]) for p in col]
    else:
        v = [p.co[1] for p in col]
    _min = min(v)
    _max = max(v)
    return ((_min, _max), (v.index(_min), v.index(_max)))

bpy.types.FCurve.minmax = property(fcurve_minmax)

After baking, cleaning, smoothing etc I can call

(_min, _max), (min_at_frame, max_at_frame) = fc.minmax

Noticed your other post re driver.  I am baking to a set of custom properties on a speaker object. I chose the speaker as it a convenient way to handle sounds and playback, and somewhere to hang the props that doesn't render.  These properties are then used to drive animations / create visualisers.

Here is what a 16 channel bake looks like on a small wav file.

You'll notice there are 2 envelope modifiers.  One maps each fcurve to its percentage of the maximum action range (Action), the other maps each fcurve across its baked range (Channel) to the mapped range..

Close up of how to set up the modifiers, channel CS8 range [0, 0.246] and the action from [0, 0.305], being mapped to [0, 1].  Top modifier will map it to [0, 0.246 / 0.305] the second to [0, 1].

The channel, freqA, freqB, min, max, and baketimes

I bake first and last in case there is no level at either end.

Ok now I have baked the animation, I can add a driver to any object(s) drive by channel 0 and create a visualizer.  Here is a very simple, and very quick, visualizer on the default cube by animating z-scale with channel0 then selecting grid visualizer.

The amplitudes of the fcurves can now be changed on the fly


Typically, you should be able to leave User Preferences > File > Image Editor blank - as Blender will attempt to find 'gimp' on the system path. The 'Image Editor' preference is there as a means of selecting an alternative Image Editor or specifying where to find it if it isn't already on the path.

Note also that the '.desktop' file is a means of your window manager opening an application - Blender should not be using that as it will invoke 'gimp' directly. However, if you open the '.desktop' file then it will tell you what command clicking the 'Gimp' desktop icon will invoke (ie, where Gimp is installed if it isn't on your path).

Firstly, ensure that 'gimp' is on the path. You can do this by opening a 'terminal' window (I'm not too familiar with Mint but it should be something like 'Terminal', 'XTerm', 'Term', 'Command Window' or something similar) to get a command prompt. Then enter 'type gimp'. This should come back with something like :

gimp is hashed (/usr/bin/gimp)

This tells you that Gimp is available in /usr/bin/gimp and is on the system path.

If this is the case then you should simply be able to leave the 'Image Editor' in the File preferences blank - Blender will find it.

If gimp cannot be found (the 'type' command didn't locate it) then you'll need to specify the full path to 'gimp' (not the '.desktop' file). Locate it on your system and set the 'Image Editor' to that full path - so if 'gimp' is located at /usr/local/myversionofgimp/gimp then set the Image Editor to the full path to your 'gimp' executable (ie, '/usr/local/myversionofgimp/gimp').


Can't find menu to change to left click select

You need to go to Edti > Preferences > Keymap > Select With

Hope that helps.

Good Luck


In the video he had some hesitations but at some step the result is simply to merge two vertices.

In vertex selection mode Ctrl1,

Select the vertex on the left, then Shift select the other one.

Then merge them using AltM then 'At last'.

The model is more or less in this situation:


Different camera settings for different render layers?

You can have multiple cameras, but only one can be used at a time.

As a workaround, you can use two scenes.

Move the object to be rendered in Perspective to the first layer and the object to be rendered in Orthographic to the second layer.

Go to the Layers tab and select Layer 1 to be rendered.

Create a new scene by clicking the + in the Info Panel:

Select Link Objects.
In the new scene, select the camera and press U> Object and Data to make the camera's transforms and settings independent from the original scene.  Then set the camera to be orthographic in Properties > Object data > Lens.
Still in the new scene, go to the Layers tab and select Layer 2 to be rendered.
Set the background to transparent by enabling Transparent in Render settings > Film.
In the composite nodes (for either scene, just keep in mind that they are independent so it's easiest to keep all the nodes in one scene) duplicate the Render Layers node and pick the other scene:

You can now combine them however you want using the compositor. E.g. with an Alpha Over node:

In this render, Suzanne is in orthographic and the rest is in perspective.


After stabilizing a video and rendering it, I have more shake, why?

To stabilize such a simple shot you just need a few trackers in the scene.

This is one of those situations where having more trackers is not necessarily better. 4 trackers spread far apart in the picture will do.

Once you track those points you should have enough information to stabilize, you need to select which ones you want to use to determine location and which ones to use for rotation and scale.

A couple of trackers should be enough for location, but I would use all four for rotation and scale.

Then set autoscale and adjust the Max value so that the image is not too cropped.

You can evaluate the shot by enabling Display Stabilization.

You will notice that she stabilization is far from perfect, but the remaining motion is due to the rolling shutter in the camera, giving you what is called the "Jello Effect" there is nothing to be done about that in blender...

You are ready to render the shot using your current node setup.


How do I set scale pivot point to cursor in Blender 2.90.0?

You need to use Pivot Point > 3D Cursor (right next to it).
Snapping while scaling also works just fine.

Change pivot point to 3D cursor
Select vertices you want to scale, last selected will be active
Enable Vertex Snapping > Active and scale


You need to have a shader between them, like this.

The different shaders are found under Add -> Shader, and they are explained in the manual. Shader Nodes
Commonly used ones are Diffuse, Glossy and Glass, and the Mix Shader is highly useful to combine the effects of several shaders into one material.


The best solution I've seen so far is to open ver. 2.79, import the 3ds file in that, then copy and paste the entire screen to ver. 2.8.  You can then save to a .blend or .dae or .obj file from that.


Wireframe become x-ray alike in edit mode


Switch to Edit Mode, A x 1 (or x 2) to select all elements;
Press Spacebar, search for Symmetrize;
Tweak Direction and Threshold in F6 panel.

NOTE: A partial selection will simply duplicate / mirror the selection. In your case, you just need a correction, so you should select all elements first.


Weird shadows in arrayed floors in EEVEE

You need to increase the quality of shadows in the Render Properties panel. Play with them until they look good. Also, try to make sure the surface area of your light is as small as possible if you want sharper shadows, the larger the surface area, the softer the shadows will be.


First of all, you are going to want to UV unwrap your cube by going into edit mode and using something like "Smart UV Project." If you then go into the "UV / Image Editor" panel, you should see your faces outlined. Go ahead and hit the new button next to the +, and leave the color as black. Click OK and select paint mode from the drop down bar next to the button with a picture of a pin on it. You can now drag while clicking to paint over your texture. When you are done, select "Image > Save as Image" and name and save your texture. If you don't, the texture will be gone when you reopen the blend file. Your texture should look something like this:

Now, go back into your "Node Editor" panel, and add a new emission shader, mix shader, and Image Texture. Connect the your base, non-glowing material to the top "shader" input of the mix shader, the emission shader to the bottom "shader" input, and your Image Texture "Color" to the "Fac" input. Finally, in the Image Texture node, select the texture you drew on earlier. What this does is, in the white areas of your texture, the emission is able to show through, whereas the black areas let the base shader show through. Here's a picture of how it should all have come together:

In the end, your result should look something like this:

Have fun Blendering! Cheers,
Graves Broderick


Pasting long strings into the script parameters for Add 3D Function Surface?

I can't see any maxlen parameters in the script:

https://gitorious.org/blender-scripts/blender-3d-function-surface/source/add_mesh_3d_function_surface.py

And on Windows using Blender 2.70, I can store at least 1,000,000,000 characters in a StringProperty():

>>> C.scene.p = "x"*1000000000
>>> len(C.scene.p)
1000000000

The problem here is that there's a limit at layout level of 399 chars. You can actually type 400 and more letters into a text field, but you won't see the characters appear!

If you paste from clipboard, only the first 399 characters are taken. You can circumvent it by using python:

Go to Scripting screen
Call the XYZ Math Surface operator (parameter fields appear in Redo panel)
Create a new text datablock in the Text Editor
Add the following (substitute x_eq for the other equation fields):import bpybpy.context.active_operator.x_eq = ""
Place the cursor between the two "" quote marks and paste your formula
Click Run Script or hit AltP - it will assign the formula text to the operator's parameter field.
Click e.g. the handle of the U min property in the Redo to panel to force an update (it will not change the mesh based on the manually set equation automatically!). Don't activate any of the equation fields, it may truncate them again!


Baking specific channels only for an animation

Script Solution

Can look at the datapath of an fcurve of an action.  Here is the fcurves of default armature object of  single pose bone with a LocRotScale action

>>> a = C.object.animation_data.action

>>> for fc in a.fcurves:
...     fc.data_path
...
'pose.bones["Bone"].location'
'pose.bones["Bone"].location'
'pose.bones["Bone"].location'
'pose.bones["Bone"].rotation_quaternion'
'pose.bones["Bone"].rotation_quaternion'
'pose.bones["Bone"].rotation_quaternion'
'pose.bones["Bone"].rotation_quaternion'
'pose.bones["Bone"].scale'
'pose.bones["Bone"].scale'
'pose.bones["Bone"].scale'

A script to convert any fcurve of an action to samples (bake it) that has a datapath that ends with "location" or "rotation_quaternion"

import bpy

context = bpy.context

ob = context.object
action = ob.animation_data.action

to_bake = ("location",
           "rotation_quaternion",
           )

fcs = (fc for fc in action.fcurves
       if any(fc.data_path.endswith(p) for p in to_bake))

for fc in fcs:
    fc.convert_to_samples(*action.frame_range)

Further to this, can make a lookup dictionary of the fcurves, then use it based on selected pose bones

The first part of the datapath from a pose bone

>>> C.active_pose_bone.path_from_id()
'pose.bones["Bone"]'

Similar to above, but only baking the location and quat rot of selected pose bones.

import bpy
from collections import defaultdict

context = bpy.context

ob = context.object
action = ob.animation_data.action

to_bake = ("location",
           "rotation_quaternion",
           )

fcurves = defaultdict(list)

for fc in action.fcurves:
    fcurves[fc.data_path].append(fc)

for pb in context.selected_pose_bones:
    path = pb.path_from_id()
    for sfx in to_bake:
        fcs = fcurves[f"{path}.{sfx}"]
        for fc in fcs:
            print("Bake", fc.data_path, "xyzw"[fc.array_index])
            fc.convert_to_samples(*action.frame_range)


Adding Material to Cycles Material library in Material Library VX addon

Got it working. It is possible. But a bit tricky. The filter category has to be off. Then it works. The steps are:

Turn filter categories off
Save Blend file with your new material.
Insert selected Material
Select material in the addon list
Switch to the category where you want to insert it.
Click at arrow button
Turn on filter categories
Refresh Library by clicking at the Filter Category button.


First, select your armature, switch to Pose mode and come back to its Rest position.
Apply the Mirror modifier of your eye object.
Separate each eye with P two make 2 separate objects.
Select each eye and parent it with ctrl P to each eye bone.
It works.


You need to be in edit mode for this to work.

import bpy

i = 0  # this is the index of the bezier point you want

points = bpy.data.objects['BezierCurve']data.splines[0].bezier_points

bpy.ops.object.mode_set(mode = 'EDIT')

points[i].select_control_point = True

bpy.ops.object.hook_add_newob()

bpy.ops.object.mode_set(mode = 'OBJECT')

After setting the value, you may need to call:

points.update()

I can't find any docs on this, but others have had similar issues with this on mesh vertices and calling an update seems to re-synch blender.


How to get old Mapping and Voronoi nodes into Blender 2.82?

Good news. Blender will automatically convert these old nodes for you.
Just get an older Blender version and copy/paste them.

Download Blender 2.80 and create your material.
Make sure the nodes are connected (or it won't work).
Copy/paste an object with the  material into Blender 2.82, the nodes will be converted.


Final result:

Overview:

First of all you need to clean up this mesh to have only quad faces, without it this method won't work. This is a good practice and this is a proper topology. That will allow you to use modifiers, better UVs, animations etc.

Next you will need to Mark Seam in a place which wouldn't be seen much (back of the hand, or near the body).
After that select all and Unwrap the mesh.
Select one face and straighten it in UV Image Editor (W > Align Auto - two vertices at a time).
Again select whole mesh an Unwrap > Follow Active Quad.


Select your asteroid and:

Apply its rotation and scale (CtrlA).
Move it at the same point as the bezier's origin (as it is the center of the scene you can press AltG).
In its Curve modifier choose Deformation Axis > X.
If you apply the curve's scale, bring back the vertices radius to one in the N panel.

It should work.


One way you could do it is join them together (Cntrl J) and then you can bridge the vertices by bridging edge loops, you could also join them and the line the cap as close as you can to the mesh in edit mode and then remove duplicate vertices. this will reconnect them. If you don't have a whole lot of corners to connect you could always merge vertices one at a time, with alt m. If you want further help on how to perform any of these functions just ask. If you are wondering how to connect them and continue using the particle system, just use the same particle settings on the new mesh but use a vertex group of the scalp for the density slot under vertex groups in particle settings.


In Blender 2.8 can I render an image in SVG format?

You can use Freestyle in Blender 2.8 just like in 2.79. The svg export for freestyle has to be activated in the preferences (Edit > Preferences > Add-ons).


DOF in cycle render shows in solid view but not in render

In your case i recommend you to change F-stop to radius in the "Aperture" settings. You'll immediately see the blur.

BUT!

Firstly, you should invert your normals: --> ctrl-n
Youl'll find that's working correct.

Secondly, learn blender basics before doing experiments.


Try using textures to add some subtle displacement and/or normal mapping. Box mapped image textures or procedural textures are perfect for this. For example, here's a simple procedural texture consisting of some high frequency details mixed with a few larger features, normal mapped onto a diffuse shader (plus a touch of displacement):

It may be helpful to throw in some image textures to get some more irregular larger-scale features.

Note that true displacement is required to get those tasty bits of self-shadowing near the terminators prevalent in your example. Displacement is still currently an experimental feature, so to use it you'll have to switch enable experimental features in Properties > Render > Feature Set. Once that's done, be sure to set the displacement method to True in the material settings.

Displacement means the actual geometry is being displaced, so for it to work you need a sufficiently dense mesh. Adaptive subdivision is ideal for this; to enable it, add a subsurf modifier and enable Adaptive under Render.

See Blender Cycles True Displacement for more details.

Also keep in mind that lighting is just as (or perhaps even more) important as the material itself. Part of what makes your example distinctive is the long light-to-shadow transitions which show off the fine details of the material.

Try playing around with lights and different lighting setups while making the material to get a sense of how it behaves under different conditions.


Why do I see the light in the reflection (EEVEE) even if the material is not reflective?

According to the manual:

  The Glass BSDF node is used to add a Glass-like shader mixing refraction and reflection at grazing angles. Glass BSDF

That's why you see reflections with this kind of shader.

If you don't need reflections on the object - use Refraction BSDF


Is it possible to switch objects while still remaining in edit mode?

You can use Outliner editor to press on the buttons next to the object name to enter Edit mode for those objects:

It's needed to press exactly that triangle button which shows mesh datablock inside of object datablock. If you click on the object name it will activate Object mode.

Note that this won't allow to bypass switching interaction modes; there will be Edit mode toggle anyway visible in the actions history, it's just that there will be less clicks:


Baking Ambient Occlusion: Almost entirely black

To this day I don't know exactly what that checkbox "Bake from Multires" does. I had once read that it was a relic from old times (Blender 2.79 and older)...?
Anyway, you can bake the AO in a different way, with the Ambient Occlusion Node, and then bake it as "Emit".
Baking Preparation:

Switch to Cycles, under Color Management, set View Transformation to "Standard" (to get a map with pure colors.)

In the Shading editor, switch to "World" and set the background color to pure white (#FFFFFF). That's the light for the AO map.

Turn off any other lights in the scene and make sure you render only the objects for that you want to bake the AO map. ("Camera" icon in the outliner.)

Baking:

Select the material of the object's that you want to bake. In the node editor, add an Ambient Occlusion node, and a Color Ramp and plug that in an Emitter node, and that into the material output. Adjust the Color ramp to get the desired shading of the AO map.
Add an Image Texture node and select it (= image for the baking result)

In Cycles, under Bake, chose Bake type "Emit", leave "Bake from Multires" unchecked
Check the render settings, select the object, and hit bake!

Clean up:

Save the baked image
in Color Management, set View Transformation back to "Filmic"
Restore the light setup (World background, Lights)
Turn on, the rendering for the objects you want.