Destructive workflow (easy but requires joining meshes)

first put another plane, the same size as your probe plane, just below the two objects, to represent the zero level
Join all the "target" meshes (including the "zero" plane, excluding the probe plane) in a single object, by selecting all of them and hitting CtrlJ
Subdivide your probe plane as much as the resolution you require

On your probe plane, add a Shrinkwrap Modifier. Use your target mesh as "target", and the options: "Project", "On surface", Axis: "Z", both "Negative" and "Positive"

In the viewport you will see an overlap between your probe and your target (which is what you wanted! but it looks weird). So I applied the modifier (Apply) and moved the probe a bit up, and used X-Ray for visualisation purposes:

Add: with a Catmull-Clark Subsurface Modifier and a purpose-made shader:

or you could even duplicate the object (without subdivision surface!), and on the duplicate use a black material and a Wireframe modifier to make it look more like a plot:

Non-destructive workflow

You will need:

a zero-level plane, with one "Boolean" modifier of type "Union" for each object in your scene. This way, you will be able to modify the objects separately, while their changes will be reflected real-time on the "zero-level" plane
your target plane, with

Shrinkwrap set as in the workflow above, using the "zero-level" plane as a target
A Displace modifier without texture, acting only along the Z axis
A shader like the one above

This is the result:

And the file (requires Blender 2.8 and may not be compatible with post-Alpha versions):


Update target with new same name object+suffix added

When Blender creates a new object, if one of that name already exists then it adds the suffix to make it unique. You can pickup that name immediately after creation via the 'name' property.
In your case you simply need to use o.name in place of empty_name :
import bpy

empty_name = 'MyOwnEmpty'

o = bpy.data.objects.new( empty_name, None )

bpy.context.scene.collection.objects.link( o )

o.empty_display_size = 4
o.empty_display_type = 'ARROWS'

for x in bpy.context.selected_objects:
    objs = x.constraints.new(type='COPY_LOCATION')
    objs.use_offset = True
    #objs.target = bpy.context.scene.objects.get(empty_name)
    objs.target = bpy.context.scene.objects.get(o.name)


How do I link vertices between two objects?

On the bottom grid apply a Shrinkwrap modifier in Project mode and select the upper grid as the target object.

The two meshes will connect. Move the offset value on the modifier so the vertices go back to their original position.

Now when you move the vertices on the top grid the corresponding vertices on the bottom will follow.


Does the vertex count of a mesh affect the size of the normal mapit generates?

No, the vertex count of the mesh you're baking has no effect on the size of the baked texture. The only thing affecting this is the target texture (the one you create in the process of baking) size.


You always have the possibility to handle the I/O using FBX. FBX can save skeletal and skinning information. Constraints and controls would have to be rebuild. Also the bone orientations and rotation orders might be different and need to be adjusted manually, depending on the import and export settings. All in all if you manage to reduce the source file to just skinned mesh, you should be able to reuse at least some of the work you have already done.


Nevermind, I fixed it. So, even though I was applying each keyframe with "whole character" I only ever had one bone selected while doing so. I tried doing the same thing with the entire rig selected and it didn't mess up. I'm not really sure what the correlation is between my issue and applying keyframes like that, or why I didn't need to do it that way for all my other animations, but what's fixed is fixed.


Shadowcatcher, how to separate shadow and object

Your question is a bit confusing as to what exactly you want. Anyway, here is a way to split basically every object and shadow however you want, if this isn't exactly what you want you can definitely alter it with the methods shown in the nodes.


Animate two objects with different armatures

For this I see two Solutions:

use for each armature an own animation
put all animations into a single animation

What is now the best to choose?

That depends on in which way you use these animations.

If your arm- or gun-animation is alway the same, then it is probably better to make seperate animations. But if the arm-animation is dependend on the gun (or reversed), then I suggest to put all animations into a single one.

For declaration:

Action ~ combination of animations that are working together

Examples: Idling, Aiming, Shooting, Reloading

Animation ~ A set of keyframes

Examples: IdlingArms, IdlingGun, AmingArms, AminingGun

OPTION: Use for each armature an own animation

Foreach Armature and foreach action you create an animation. Make sure you give your animations meaningful names.

Note: This option is simple but animating can get hard, because for each action you have to make sure, each armature has it's own animation. And you will have many animations to handle.

OPTION: Put all animations into a single animation

Foreach action repeat following process:

For each armature go into 'Pose Mode'
Go to the DopeSheet-Editor
Change Mode from 'Dope Sheet' to 'Action Editor'
Add a new Animation by clicking '+ New'
Maybe give your animation a name
Select all other armatures and select the created animation

Any Keyframe you insert will be in the same animation

In that way you will have the same amount of animations as you have of actions.

Note: In the 'Dope Sheet Summary' you will only see the keyframes from the selected armature.

I hope I could help.


How to transmit uv and texture when using Tissue

With the small part of the mesh selected apply scale and rotation and unwrap the image.

Take a mesh that tissue is going to apply (i have taken a cube and subdivide few times)

Select the small mesh and hold shift and click Cube and click on tessellate in tool shelf

Now we got the new shape of the mesh from the Addon with no material and no uv applied to it. Go to edit mode and select all faces and Press Ctrl+N (flip Normal)

In the Edit mode Press L key on one face which select the small part of the mesh.

With the small face selected Press Shift+G -> Area

And now the complete mesh is selected

Press U to unwrap

And apply material on to it.


Converting an image sequence with an alpha channel to video and keeping the transparency

I suppose that when you add your image sequence to the video sequencer (VSE), you see a checkerboard background for the transparent regions? If so, you can render this out as a video file with the transparency conserved by choosing the correct codec (see also the comment of duplicate post). Which codec. The key is to pay attention to the color attribute of the Output panel. There are two possibilities: RGB or RGBA. The latter is a codec that supports transparency. In the first screenshot, I have chosen for the FFmpeg Video file format, the Matroska container and the PNG video codec. This is a codec that supports transparency. The second screenshot with the MPEG-4 and H.264 codec does not support transparency. You can tell it because the A-option in RGBA is not available.
You can test this very easily by rendering out the sequence and adding back the previous output file to the sequencer. You should see a checkerboard.


Is it possible to import tensorflow into blender?

The problem: Blender has bundled numpy with a version not compatible with your tensorflow version.

Solution: Use a blender version with a compatible bundled numpy.

I imported it on my machine successfully with Blender 2.72b with my system python  3.4.3

I use Gentoo Linux but it should not be problem. Please try Blender 2.72b


My texture isn't working with my baked normal

You are looking at the wrong model. The image shows your high poly, which is not (and does not need to be, because that's why you bake to a low poly) unwrapped. Your low poly model is on another layer.
The texture should go on your low poly. Then it looks fine.


To summarize, FBX supports two kinds of smoothing:

Smooth groups (inherited from 3DMax), i.e. groups of faces that have smooth edges inside, and sharp edges on their boundaries.
Normals per vertex per face (aka split normals in Blender), where the whole mesh is set smooth, but shading of each face is influenced by its vertex (or corner) normals - two faces sharing a common edge which vertices have different normals will show a sharp edge (if shader system of target supports it of course).


The issue is that you are not editing the tongue and gums.  Try exiting edit mode, selecting one of them, and then switching back.  That should fix it.


Just for fun you can do this procedurally :)
Start with five circles and a bezier curve and add modifiers...

Screw modifier
Array modifier
Curve modifier and target the Bezier curve
Simple deform modifier > Twist
Simple deform modifier > Bend


Objects will rotate around their Origin Point. So, one simple way would be to move the objects Origin Point. Move the cursor to your desired axis then in “Object Mode” select the “Set Origin” drop down menu in the tool bar (Press T to toggle on and off) then select “Origin to 3D cursor”.

Another option would be to add an “Empty” to your desired axis and then parent the object Ctrl+P to the “Empty” and then rotate the empty.


You can press ⎈ Ctrl⇧ Shift ScrollWheel, or ⇧ ShiftNumpad 4 and ⇧ ShiftNumpad 6.

Currently the scrollwheel binding doesn't exist in 2.8, however you can add it back yourself. Under User Preferences > Input > 3D View > 3D View (Global), press Add New and set the operator to view3d.view_roll. Create a binding for both left and right:


Boolean Difference function adding new face unexpectedly

You can't create a face within a face without edges that connect this inner face to the outer face, thus the edges you're showing, otherwise the outer face will overlap the inner face, meaning the inner face couldn't exist, or it could exist but it wouldn't be part of the same mesh. As for your texture question, I don't see in what way it will cause any issue, just select the front faces and unwrap.


Is it possible to save CMYK renders from Blender?

CMYK is a device-dependent color model. This means essentially that if we don't know the device where color will be reproduced, the values expressed in this model are meanlingless, as they aren't enough to provide any colour accuracy.

RGB is also a device-dependent color model.

In theory, both RGB and CMYK images should be always tagged with their corresponding colorspace definitions (usually in the shape of icc profiles) to tell our software's color management whether a colorspace conversion is needed to ensure the proper color rendition.

For practical reasons and to a certain extent because images for the web need to be small, it is commonly assumed that an RGB image without an embedded profile is in the sRGB colorspace.
However, there isn't such assumption for CMYK files: They have to be tagged properly, otherwise you can't know the device where they are supposed to be printed.

To make things even worse, the "device" in this case doesn't only mean the machine where the piece will be printed, but also the type of paper, inks, setup, etc. that will be used for printing.
This means that there's no such thing as "CMYK" if you don't specify "which CMYK", so producing a proper CMYK file from any software requires to know a few things about how the image will be printed.

Failing to anticipate those things will most likely cause you and your printer a lot of troubles and cost you a lot of money, so it's not something you want to take lightly.

In desktop publishing ICC Color Management takes care of these aspects as long as files are tagged properly with ICC profiles. But Blender, as most of the 3D and VFX programs, doesn't support ICC profiles.

So first problem: Blender can't deal with ICCs, so the conversion has to be done externally.

Apart from that, producing CMYK colors from an RGB original is a destructive and irreversible process where a part of the RGB gamut (the non-printable colors) are lost irremediably. For that reason, CMYK is not a very good model for editing if preserving quality and color accuracy is your goal. Converting to CMYK is something you want to do at the very end of your creative process, when everything else is done.

It may feel tempting to skip a step and move to CMYK as soon as possible, but it ends up being a terrible idea as your files will be only good for a single printed output, they will be heavier in size and they will need to be converted back to RGB for any non-printed output, with the huge drawback of having lost a big chunk of their color latitude.

So yes, it is sort of possible to save CMYK right away from Blender with a script like the one proposed here, but it's not really a good idea.
It's more sensible to save your renders in the maximum quality and color fidelity possible (RGB from blender with no further conversions) and adopt a good workflow where the separation to CMYK is done properly with the right tools and at the right moment.
Imagemagick (the tool used for the addon proposed in the other answer) has the facilities for converting to CMYK properly, but it's advisable to perform the conversion on an already saved high quality RGB file taking care of all the parameters required for printed output (size and resolution, colorspace conversion and embedding, file format, etc.)


You might have switched from the selector to the 3d cursor
watch
https://www.youtube.com/watch?v=8AqaKD0d5v0


Does anyone know of other examples that exist

blendswap have alot of those procedural materials,
some examples:
-procedural wood
-procedural leather
-fabric
-clouds
-polystyrene
-metal


Text information about parameters in the picture (render result)

You have the text for output in metadata chapter of render tab in properties editor. You can access it from your script. I've used something like this to output some values:

import bpy

def driverFunc():
    'it returns clamp indirect value based on frame number, also changes text in the stamp'

    frame = bpy.context.scene.frame_current
    samples = bpy.context.scene.cycles.samples
    cli = bpy.context.scene.cycles.sample_clamp_indirect

    cli = 30.0
    #set stamp text
    bpy.context.scene.render.stamp_note_text = "s" + str(samples) + "; cli" + str(cli)
    return cli

    if (frame == 1):
        cli = 0.0
    else:
        if (frame < 11):    #first ten = +1.0
            cli = (frame - 1) * 1.0
        else:               #all next = +10.0
            cli = (frame - 10) * 10.0

    #set stamp text
    bpy.context.scene.render.stamp_note_text = "s" + str(samples) + "; cli" + str(cli)

    return cli

bpy.app.driver_namespace['driverFunc'] = driverFunc    # add function to driver_namespace

I added driver for clamp value, you can use some unused property of some object just to get this work on render. Otherwise it will not update the props. In the driver expression I used this driverFunc() call, (which value could matter or not), but it has a side effect - it sets bpy.context.scene.render.stamp_note_text.
Just create the empty text with ".py" extension, paste the code, fix it to show your own values, run the script, and then you can use the name of the function in any driver.
Do not hesitate to output metadata, it will show only in combined layer of render result. When you save the multi-layer exr, for example, no source layers contain the text, so you can freely compose them to the final image.
Hope it will help.

And I used it for an interior as well :-)


Is it possible to scale F-Curves linearly?

What scaling does depends on your pivot point for that graph editor viewport.  Try this: set your pivot point to 2D cursor.  Open a sidebar in the graph editor.  On the "view" tab, set the cursor location to 0,0.  Then select all and scale by 2.0 in the Y axis.  This will scale all the points about 0,0, which means multiplying all values by 2.  Is that what you want?
(Not at all clear what you expect to happen with your generator.  Again, the x in question here is frame count.  The X is an input, and if it's 201, it's because you're currently looking at frame 201.)


This is not a question about blender really, you can determine, and should know, where your files download to, it's a setting on your browser. Having said that, blender can be used two ways,

One is installing it using the msi file, in which case it makes  no difference where you downloaded the file to, because once you run the install file it will install to your programs folder. At that point you can safely erase the msi file.

If you choose not to install blender, use the .zip file. You just have to unzip (uncompress) the file and run the blender.exe program from the resulting folder. Just make sure that you don't download and use a temp file that might get erased next time you open the computer.


The part, which is purple, has different material applied then the rest of the dress.It's DiffuseMap.001 instead of DiffuseMap, they have different diffuse textures, so you can't paint both of them at the same time.


Fix/Freeze/Clamp Object Info at certain value

You can use "baking" for this. Colors can be written on image texture.

1) First, setup UV for all objects. Select all objects, press Space and search for "Smart UV Project".

2) Next, connect what you want to bake to emission shader. Add an image texture and put it on node setup like this:

3) Find "Bake" section in render settings, select type to "emit" and press "Bake"

4) If you will do everything right you will get an image like this, save it.

5) Finally, connect image node to your node setup


This effect can be done by reversing the IK string ([w] -> "Switch bone direction") and placing the IK constraint on the "first" bone targeting the bone that used to come before it. Give the "last" bone (that used to have the IK constraint) a Copy Transforms constraint of the old IK target.

However, there are a couple things wrong with this method:

If the target is brought outside of the maximum length of the bones, instead of the bones pointing toward the target, they will follow the target and point at the other bones.
The rotation of the new target must be accounted for.


Animate camera alternating constrained paths

Yes you can use multiple paths.
The influence value in the follow path modifier can be animated. A value of 0 means that the modifier will have no influence on the object's trajectory.


Why are objects rotation rotated a little bit when they are set to 0?

All terms of the orientation matrix are expressed in float values (floating point numbers). These numbers have a specific precision. This means when you calculate with them you get very small, but existing deviations from the "ideal" number.

This is especially noticeable around zero. Therefore you might print something like -0.0. This seams illogical but it means you have a number that is smaller than the precision of the formatter.

Unfortunately you did not include any further details such as what term you are reading and what the value is or what your code is.

My own investigation shows me:

<Matrix 3x3 ( 1.0000, 0.0000, 0.0000)
            ( 0.0000, 1.0000, 0.0000)
            (-0.0000, 0.0000, 1.0000)>

The [2][0] value is indeed -0, but it has no further consequences. You will not notice that in your scene.


New Blender 2.8 Subdivision Surface UV Smooth isnt working

Ok, in order to make it work now  you have to get rid of ngon


How to get index or location of point selected in edit mode using python API?

Using this question and its numerous answers as a base for an efficient code, you can use this script :

import bpy
import numpy as np

mode = bpy.context.active_object.mode
# Keep track of previous mode
bpy.ops.object.mode_set(mode='OBJECT')
# Go into object mode to update the selected vertices

obj = bpy.context.object
# Get the currently select object
sel = np.zeros(len(obj.data.vertices), dtype=np.bool)
# Create a numpy array with empty values for each vertex

obj.data.vertices.foreach_get('select', sel)
# Populate the array with True/False if the vertex is selected

for ind in np.where(sel==True)[0]:
    # Loop over each currently selected vertex
    v = obj.data.vertices[ind]
    print('Vertex {} at position {} is selected'.format(v.index, v.co))
    # If you just want the first one you can break directly here
    # break

bpy.ops.object.mode_set(mode=mode)
# Go back to the previous mode


VSE snap a strip to the begining of your editing

Group all of your strips (Make them a Meta Strip Ctrl+G) and then with your current Frame being 1 (position the green playhead) press Shift+S to Snap the Meta s to the beginning. Alternatively set the Meta Strips Start Frame to 1. Then UnMeta/ungroup the Strip again: Alt+G.


How to attach multiple objects to an armature?

first delete all vertex group, second, click in earrings, click in armature, go to pose mode select just bone head and press ctrl + p, select bone


Enable Multisample in User preferences > System:

Note that you might have to restart blender for the multisample setting to take effect.


I think what happened here was just a misclick in your render layer settings. It looks like you accidentally added a layer as a mask layer.

What is a mask layer

A mask layer is a layer that is used as a mask to turn parts of a renderlayer transparent depending on if anything (that appears in the render) is infront of something from that renderlayer.

What's the issue?

Your issue, is that you have your first layer (the one that has all your objects on it), set to be a mask layer, so essentially what is happening, is that instead of rendering the objects, there shape is filled with transparency. I just doesn't appear transparent because you don't have film transparent checked.

To fix this, simply uncheck that layer from the mask layers.


Is there a faster way to fill in a set of missing faces?

If you select just the far edge and hold your mouse in the direction you want to create a face, you can repeatedly press (or even just hold down) F:


Dark Emission when using MixRGB with Colour and Image

You should plug the alpha output of your image texture into the alpha input of the principled BSDF, then use the color output directly in the color input of the BSDF.

Make sure to check the blend mode to something else than "opaque" in the settings of the material. Press N to open the panel when in the shading node editor then go to Options>Settings>Blend Mode. Depending on your blender version you might have to try different ones to achieve your goal.


Imported a 3ds w vertex groups(?) How do I rig it properly in blender?

Short Answer: You will probably have to manually fix and rig your object by hand

Long Answer

3DS File format is a very basic and old interface file format, with antiquated features and limited capabilities.

It does not support many organization structures, nor does it doesn't support animation, rigging, armatures or vertex groups. I am not even sure if it supports any type or hierarchy at all like parenting; and it certainly doesn't support Blender specific features like vertex groups.

Bottom line is if you only imported your model directly from a 3Ds file those can't possibly bones nor any type of control for your objects.

The objects you show selected in your screenshot are of Mesh type, you can tell from the Properties Window active Object Data icon.

My blind guess is, from the look of your model is that it was somehow modeled in some sort of CAD-like software with iether NURBS or ACIS Solid based geometries, which often don't support Blender-like traditional rigging systems either.

Those types of software also often don't have a concept of "object centers* or explicit "origin points" nor "local coordinate systems", which often results in objects not having a specific, or expected origin or pivot of transformation when imported into mesh based modelling applications like Blender.

So even if those centers were successfully imported there is no guarantee they would get where you need them to be by default.

Those may be stubs or remains of any CAD specific structures that were left over while exporting the model, as much as they can be representative of some sort or "object origin" from the origin application.

Bottom line is, if you want to animate this you will probably have to manually assign correct origins to all your objects one by one, parent them properly, and create your own skeleton or constraints based rig.


What is the actual definition of "Render"

It will depend a bit on whether you're trying to explain this to a layman, trying to draft a professional description (like for LinkedIn or other professional profile), or just trying to generally understand the technical definition. If you can add this info to your question, it'd be helpful.
That being said...
The Merriam-Webster definition is actually useful in beginning the description, particularly definitions 4 & 5:

4a (1) :  to cause to be or become b (1) :  to reproduce or represent by artistic or verbal means :  depict (2) :  to give a performance of (3) :  to produce a copy or version of (4) :  to execute the motions of
5:  to direct the execution of

Wikipedia's definition is a little bit more accessible:

Rendering is the process of generating an image from a 2D or 3D model (or models in what collectively could be called a scene file) by means of computer programs.

But the most useful description would probably be the one that I (very officially) just came up with:

Rendering is the process of turning the digital description of a scene, at a particular moment in time, into an image. Rendering is a lot like taking a photograph of a scene that only exists in the computer. Scenes are described in simplified, human-accessible ways, and the computer then uses that description to calculate all of the implied (non-explicit) things to determine the color of each pixel in the entire image.

A very useful analogy in describing this process is telling someone else what to draw. I could write a letter to someone, describing what I wanted them to draw (without using any pictures), and the process of them reading what I wrote and turning it into a picture is almost EXACTLY the same as rendering in Blender (in fact, in the art world, the physical process of putting marks on paper is actually called 'rendering'). In fact, it's so similar that I could even add a tiny drawing of what the bumps on one of the bricks looks like, and that's a LOT like using an image texture in Blender.
The ONLY difference between this and rendering with Blender is that humans can make assumptions, but Blender can't. The letter could say "a double-hung aluminum window with 6 equal panes," and a person would have a very clear idea of what that looks like, but Blender would need a LOT more information.
I hope that helps!


Stitch 2 mesh parts like in the UV stiching function

As long as the loops match, you can turn on snapping and auto merge in Edit Mode to do this:

Turn on snapping (Shift+Tab)
Set snapping mode to vertex (Shift+Ctrl+Tab)
Turn on auto merge

Then move the part of the mesh:


Install packages in Blender 2.80 using pip

It is probably possible to use blender's built-in version of python to get a package using pip, but there are many difficulties with that route, as you are most likely finding yourself.

Luckily, blender also has an easier way to install python packages.

If you go to preferences > File Paths > Data (shown below), you can add python packages to blender.

The Scripts field can be used to specify a location for blender to look for external packages. You can install packages to any location (even using your system python), and then tell blender to just look for the packages in the folder with the python packages.

To quote from another answer, "Note that this folder must contain 3 sub-directories : addons, modules, and startup. So you can install the library in the modules folder."

Another option is to install packages into the lib subfolder inside the blender application. If your system python matches the blender python, you might be able to do that with normal pip while specifying a new install location.

See this answer for more details and strategies.


Depending on what you wish, one basic way could be using a wave modifier with a texture, maybe?

edit: to make only top vertices assign them to a vertex group, and set that "vertex group" name in the modifier:


How do I make spiraling loop cuts around a cylinder?

I'm sure there are more ways of doing this,but I can think of 2 ways:

First one, with tools you already have:
screw modifier and array modifier:

Second one with addons Add Curve: Extra Objects and F2 addon.
Extra objects addon allows you to to create spiral curves, and F2 addon enables you to fill in the spaces quickly

Create the spiral curve with the extra objects addon, and pres Alt+C to convert it to mesh, then, with the F2 addon fill in the cylinder

and in both cases you find the end of the spiral, place a cursor on it, select the rest of the loop and pres S + Z + 0

and finally, remove the double verticesyou have from the scaling


Can undefinied nodes be converted via scripts?

Very strange. I was the one who asked this question, but my account doesn't say I asked it and I cannot comment on the Ron Jensen comment chain. The solution to my problem was that I was using blender 2.8 and updating to 2.83 LTS changed the node from Undefined and back to Mapping.


Removing automaticly generated (automatic weights) weight paint

What causes the problem is the Mirror modifier in the shoes. The Vertex Groups option of Mirror modifier is on by default, and it's unchanged here. That option mirrors weight in vertex groups with symmetrical names. That is, for every pair of vertex groups suffixed with .L and .R, Blender will just match vertex weights in both, even if you only assign weights to one of them.

The problem is, Blender assumes the object's symmetry coincides with armature name symmetry, while your objects are not. Instead of mirroring the left shoe for the right shoe, thereby matches the armature's shoe.L and shoe.R and works as expected, you're mirroring each half of each shoe.

The solution is easy: For each foot, either delete the (unused) vertex group for the other foot, uncheck Vertex Groups in the Mirror modifier's setting, or apply the Mirror modifier.


The objects were moved but their keyframes for the location weren't updated. Once you re-open the file they will snap back to their original keyframe location. To update the position of an object select the frame you want to edit in the timeline, then move the object to the desired position and press I. Select Location from the menu or a combination that includes the location.


Can blender game engine hide vertices that are not visible to the camera?

Yes, it can. This is done by using the Occlude physics type; this makes an object hide all other objects (or parts of objects) behind it. This does, however, mean that it can only be applied to Static (physics type) objects, since an object can't have two physics types, and the Occlude type works like the Static type (i.e. it doesn't move).

Keep in mind that:

  If the occluders are small and don't hide many objects.

  In that case, occlusion culling is just dragging your CPU down).

  If the occluders are large but hides simple objects.

  In that case you're better off sending the objects to the GPU).

You can read the wiki for more details about performance.


How do you make a torus 'telescope' open?

You could do this easily with a torus curve, if you dont mind the bezier curve object.

Just add a Bezier Curve Circle, make its handles Free type and erase the bottom half (or whichever suits your design).

Make it 2D type with None fill so it is like a torus.

Adjust the bevel radius and resolution as desired.
Add a Mirror modifier in the corresponding axis to mirror the animation.

You can now animate the aperture with the *Bevel Factor > Start and end factors.

Alternatively if symmetry is not your concern, you may simply turn the circle into an open shape by duplicating one of its vertex and erasing one segment, and then controlling both the Start and End Bevel Factor values independently.


At least make sure that your armature is symmetrized. As you can see it is not. So in Edit mode select the left (or right) part and Symmetrize. Also, you'll have to correct the Pole Angle of some bones like the forearm, fingers...


Why bones IK change positions by itself?

When an IK chain change position in weird ways, it's because of one of this problems:

the ik traget location is modified by the movements of one bone of the chain itself: so there is an endless circularity. Check if it has constraints related to any bone of the chain, or if it is child of a bone related to the chain.
some bends have a flipped position that can resolve the IK request, so you need to establish a pole target to have full control of the behaviour of the chain


Can not edit object after failed Normal Map Bake

Opened the file again and hit / in the number pad a couple times.  This was one of the first things I tried but for some reason this time it took.  The high res. object can be edited again and I was able to bake a Normal Map. The Normal Map pointed out some problems that need fixing but everything seems to be working again.


The technique you're using is to organicly bend joints. Since your character is pretty blocky, I guess you're trying to make the joints move in a more anorganic way (like robots, minecraft characters and so on).

I recommend disconnecting the lower arm from the rest of your mesh and assign it's vertex group to the corresponding bone with the value of 1 in the vertex tab. Maybe scale it down a little so you don't have overlapping faces.

If you were going for a organic look to bend joints, the weights are painted too sharp. I recommend painting with the "Average Brush" in Weight Paint Mode to even out the influence of your bones. Once you're happy with the result you can use the "Blur" brush to fine tune the result.


It's missing from the Keymap, but you can add it manually. Go to Preferences>>Keymap>>Outliner. Click on Add New then type in outliner.id_delete for the identifier for the new item. Assign the Delete key or what you want and choose Any or Release for the press method, because for some reason it doesn't work with "Press". Now you will delete the item which below of the mouse cursor, not the selected.


Why is this bone not pointing up / downwards?

Perhaps the designer of the armature .. or rig decided they needed a convenient handle on the armature. Like a coffee cup has a handle or that plastic attachment for cell phones is a handle. Bones can be used for many different things.  Blender Bones can be for human, monster, and other organic creatures.  Bones can control meshes that represent hard objects as well like a car.  You can change the appearance of bones.  The bones of an armature can have zero or some effect on the mesh.  They are flexible in their use. That bone may serve as a handle to indirectly control other bones which directly control mesh.  That control can be changed or deleted.  If the mesh has a vertex group that has the same names as a bone then it can have some effect.  If you decide to delete the vertex group then that connection will be destroyed. Weight painting can change the weights in a vertex group.
So parenting an armature to a mesh with automatic weights is just one use of armature bones.  Some time you might like to control many things at once and bones can do that as well since you might assign a hard object to each separate bone.


Question about smoothing issues to the model

You need to do 3 things to get a clean shading:

You have sharp edges, so, in Edit mode, CtrlE > Clear Sharp
You have overlapping vertices, so, Edit mode, select all and (in 2.79) W > Remove Doubles
As I said, in the Properties panel > Object Data > Geometry > Clear Custom Split Normals Data


in python load blender file & delete objects

Instead of looping on all object you can do this:

bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete(use_global=False)

If you want to delete some specific objects you can use the below script. I had a .blend file (provided below) which has three cubes Cube Cube.001 and Cube.002, in this script I deleted both Cube and Cube.001 where Cube.002 is not deleted.

import bpy

C = bpy.context
scene = C.scene
bpy.ops.object.select_all(action='DESELECT')
for ob in bpy.data.objects:
    if ob.name in ['Cube','Cube.001']:
        ob.select = True
        scene.objects.active = ob
bpy.ops.object.delete(use_global=False)

.blend file can be found here:


The animation looks really slow in the rendered video

The problem was the distance between the keyframes.
After scaling them down, the animation looks fluid.
To scale up or down keyframes, in the Dope Sheet, select all of your keyframes press S and use the mouse to resize the length of your animation.


When I Render, it renders a still image of one of my textures and not the camera view and animation

You have your composite node set up to apply your movie over top of the entire render.  Just uncheck Compositing under Post Processing


disable render of all collections with python in blender 2.8

With recursion

As well as setting attributes on all collections in bpy.data.collections can recursively walk the children.

This will only set the property on descendants of the collection. In this case bpy.context.view_layer.layer_collection.collection

import bpy

def traverse_tree(t):
    yield t
    for child in t.children:
        yield from traverse_tree(child)

coll = bpy.context.view_layer.layer_collection.collection

for c in traverse_tree(coll):
    c.hide_render = True


If you want to join the faces back together, you can either select both faces, and press F in edit mode, or you can select the vertices around the faces and press F.


Answer
Yes it is possible to track vertical video, so that is not the issue at all.
Not an answer, but getting to the core of the issue.
The most common problem with tracking is using the wrong model for solving. If the camera is stationary or just rotating (paning and tilting) then you need to solve as "tripod".
Read:
How can I get better results when doing camera motion tracking?.
To help you further you would need to edit your original post and show a link to the video, and share some images of the interface showing what you have so far.


How to add textures to faces that are facing a certain direction

In Cycles you can make a node setup like this:

What's happening is the Geometry node is providing the object's normal data (information about the directions its faces are pointing) in the form of color values. The Separate XYZ node is taking that all in but only returning the values for the Z axis (up and down). That data is then being used to factor between the red and blue.

In this example the factor is mixing two shader nodes, but it could just as easily be color nodes or any node that can receive a factor input.

If you wanted to change the direction you could use X or Y outputs instead of Z.


How does exporting a hierarchical model to obj manage coordinates?

The .obj format is very simple and stores all vertices in global coordinates. It can't be local coordinates because there is no definition of a world matrix per object in the file format, which would be required to perform a conversion from local to global coordinates.


How to efficiently remove a huge number of UV Maps from an object?

as in https://blenderartists.org/forum/showthread.php?254004-Accessing-UV-data-in-Python-script

import bpy
obj= bpy.context.selected_objects
for ob in obj:
    if ob.type == 'MESH':
        bpy.context.scene.objects.active = ob
        while(len(ob.data.uv_textures)):
            bpy.ops.mesh.uv_texture_remove()


Not directly, but extrude works like this: when you press E, blender

creates new connected geometry
immediately enters "grab" mode (but not using Proportional)

If you cancel(ESC or right click), you cancel only the last "grab" action, thus leaving the new geometry where it was before entering the "grab mode", and still selected.

You could issue this as a bug or a feature request, though, imho.

So, you can just enter "grab mode" again (eg pressing G) but now your enabled Proportional Editing will work


I have created a glove on Blender and I want to apply Voronoi on it's surface via Sverchok. How can I do that?

It's not exactly clear to me what is texture for you (image or image' geometry representation)
import this node tree in sverchok with import panel (copy link)
https://gist.github.com/86bc3942e438f8b78313afa21858daad


Is there a way to save all settings of the sequence editor to disk and load them when needed?

Sequence Editor belongs to the scene.
The settings shown are on data that belongs to each scene. A new scene will use blender's defaults.
Python console. Create a sequence editor in the context scene. It is of type bpy.types.SequenceEditor.  The value for overlay_frame is shown
>>> sed = C.scene.sequence_editor_create()
>>> type(sed)
<class 'bpy.types.SequenceEditor'>

>>> sed.overlay_frame
0

.
To have the same settings in another scene, would suggest creating a new and copying the attributes of the old, or copying the scene and unlinking from it unrequired data, including strips. Be a good candidate for an operator with presets.
Alternatively save it as a scene in another blend and  append the scene each time instead of  creating a new one.
Another option would be to save a workspace template or startup file with the settings desired.


The Boolean joins the two objects into a single mesh, with no inside faces, and no intersecting edges. This is important if you're trying to create a manifold mesh, or don't wan't overlapping faces. Of course when using union there is no visual difference, since the meshes are being added and the total surface remains...


How to make an object fade out from one end?

You can use an object as mapping coordinate for a coloramp, and by moving it around you can tune up the effect or transparency which is obtained by mixing a transparent and a diffuse shader in this case. Just an example.

You can also use the generated mapping coordinate depending on your geometry. In the last picture i had put the object used for mapping a little backward in the scene. Here the input is a texture coordinate node and the mapping is slided on x


How do I set the location of the 3D axis?

The 3D-Cursor is one of the unique and very useful features of Blender, albeit sometimes confusing to new Blender users.

The issue you mentioned seems to be because of the pivot center for rotation and scaling set to use the 3D cursor PERIOD key (the before the ? key).

If you press COMMA key the rotation/scaling transformations occur about the Bounding box of the current selection.

The 3D cursor has many uses in Blender.

The 3D cursor is where new objects get added in the scene
The 3D cursor can also be used for setting a temporary pivot axis for an object and then perform rotations and scaling (by pressing PERIOD). To reset the 3D cursor back to world origin, press SHIFT + C

Custom 3D Cursor placement behavior

If you really do not want the 3D cursor to be shifting when LMB is clicked, then you can customize it from the user preferences. This is an advanced customization step and must be followed carefully.

Invoke the User Preferences Window CTRL + ALT + U
Search for Set 3D Cursor
Click the white triangle to expand the key map.
If I want the 3D cursor to be placed when I hold SHIFT and CTRL keys and then press the left mouse button, so I check SHIFT and CTRL.
Try it out in 3D view
If satisfied, save the user preferences.


The soft bodies are attracted to each other. Why?

I checked your file and first, I fixed the normals of the wire cube.  (flip normals)
I also applied the scale to the wire cube >  (ctlr+a) apply the scale.
But what really fixed it was altering the soft body and cloth physic :
Keep thickness outer the same but set inner to 0.001
That was a kinda weird problem to solve, I've never seen anything like it before.
In fact, I think this might be useful as well, lightning strike effects or so..


Thanks to Polosson's help I discovererd that I was on a different layer.
For others with this problem make sure your layers looks like this

And not something like


For normal images like these, you can use the Windows Texture Coordinates:


Is it possible to use an image to edit a mesh to the image's size?

There are two methods I'm thinking of.

The first is using an SVG of the image contour.
Loading the image in Blender Using Import Images As Planes.
Import the SVG.
I converted the SVG to Mesh and applied the same material of the image.

The second try is using the Knife topology tool ( K ) direct to the imported image to cut the subject. No need for a vector-based program. Delete the unwanted faces.
This method was faster because all is done inside Blender.
Note we have to do short cuts to smooth corners.


What is the best way to make sure a clothing piece will animate with a body mesh and not clip?

One popular way is to hide body mesh parts under cloth using mask modifier. Other is to use Lattice modifier to deform cloth. Here is a tutorial on this topic


Not getting anything sensible from rotation_quaternion

There are two problems with what you are doing:

Rotations are ambiguous:

For euler rotations there are the problems of gimbal lock and the order in which the rotations are applied.
Quaternions on the other hand will give the rotation which their corresponding normalized Quaternion would produce. This means that all scaled versions of a quaternion will result in the same rotation. The Blender Wiki gives a good overview about the meaning of the different rotation modes.

The values of the other rotation modes are only set when you switch to them. The value you are reading from rotation_quaternion is a default value.To switch to another rotation mode in python set bpy.data.objects['Cube'].rotation_mode to one of the following values:
'QUATERNION', 'XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX' or 'AXIS_ANGLE'

You might also see different rotation values than which you set using python when you look at the properties of the object. The values in the image below are displayed after executing bpy.data.objects['Cube'].rotation_euler = (22.5,22.5,22.5).


How to connect nodes to node group inputs and outputs in python?

As a rule of thumb, you should try to avoid operator calls in scripts and use api functions directly as much as possible (if you do this, no need to override). So the snippet below is not needed.

for area in bpy.context.screen.areas:
    if area.type == "NODE_EDITOR":
        override = {'screen': bpy.context.screen, 'area': area}
bpy.ops.node.select_all(override, action='DESELECT')

Through some experimenting, I found it's easier to not use group_make as the default GroupInput and GroupOutput nodes it creates can be a bit unwieldy and adding a Socket to a tree creates a template rather than an actual socket (the lists displayed in Interface panel).

Rather, it's easier to create a new node group with bpy.data.node_groups.new and work with that.

import bpy

group = bpy.data.node_groups.new(type="ShaderNodeTree", name="testgroup")
group.inputs.new("NodeSocketFloat", "Input One")
group.inputs.new("NodeSocketFloat", "Input Two")
input_node = group.nodes.new("NodeGroupInput")
input_node.location = (0, 0)

group.outputs.new("NodeSocketFloat", "Out")
output_node = group.nodes.new("NodeGroupOutput")
output_node.location = (600, 0)

gtr_math_node = group.nodes.new(type='ShaderNodeMath')
gtr_math_node.operation = "GREATER_THAN"
gtr_math_node.name = "greater"
gtr_math_node.location = (200, 100)
group.links.new(input_node.outputs["Input One"], gtr_math_node.inputs[0])

lss_math_node = group.nodes.new(type='ShaderNodeMath')
lss_math_node.operation = "LESS_THAN"
lss_math_node.name = "less"
lss_math_node.location = (200,-100)
group.links.new(input_node.outputs["Input Two"], lss_math_node.inputs[1])

add_math_node = group.nodes.new(type='ShaderNodeMath')
add_math_node.operation = "ADD"
add_math_node.name = "add"
add_math_node.location = (400, 0)

group.links.new(gtr_math_node.outputs["Value"], add_math_node.inputs[0])
group.links.new(lss_math_node.outputs["Value"], add_math_node.inputs[1])

group.links.new(add_math_node.outputs["Value"], output_node.inputs["Out"])

tree = bpy.context.object.active_material.node_tree
group_node = tree.nodes.new("ShaderNodeGroup")
group_node.node_tree = group

The above gives you


One option that may work for you depending on what your objects are, their size, shape, etc. is to join the three objects together, unwrap the combined object so that the scale is exactly the same, and then split the object back into the original 3 parts.

If you ever need to make any tweaks to your texture scale after splitting the objects simply use numeric input so that you can scale each UV map by the exact same amount.


How can I count objects that are in a collection instance using Python?

You can use Object.instance_collection to get the reference to the original collection per object and iterate through Collection.objects. Recommend use the python console to figure out:

>>> C.object
bpy.data.objects['Collection']

>>> C.object.instance_type == 'COLLECTION'
True

>>> len(C.object.instance_collection.objects)
3

Basic demo on how to get all objects of a collection instance:

import bpy

C = bpy.context

objs = []
if C.object.instance_type == 'COLLECTION':
    for ob_col in C.object.instance_collection.objects:
        objs.append(ob_col)

print ("{} objects in collection instance".format(len(objs)))
print (objs) # Print object references

Basic demo on how to append all object names in selection as well as the object names of the selected collection instances to one list and and count the items:

import bpy

C = bpy.context

objs = []
for ob in C.selected_objects:
    if ob.instance_type == 'COLLECTION':
        for ob_col in ob.instance_collection.objects:
            objs.append(ob_col.name)
    else:
        objs.append(ob.name)

print ("{} objects in selection".format(len(objs)))


How to solve the "Camera" is not multi-view error"?

You need to do one of this:

1) Set Stereo 3D instead of Multi-View, if you want to use one camera

2) Or if you select  Multi-View add as many cameras as you have views here:

and add a suffix to camera names from camera suffix setting. Like in my case, I have 2 views and set up 2 cameras:


There are many duplicate vertices.

In edit mode, select all (A), then Right click > Merge > By distance.


How do I do topmod style loops in Blender?

I'm not completely sure about your question but if you want to do what we see on the top right:

Create a flat vertical curve, Create a rectangle, give it an Array modifier:

Twist it with a Simple Deform modifier / Twist mode (Z axis here):

Give it a Curve modifier with the curve as Curve Object:

Bend your curve. Make sure that its normals go in the right direction. Add more array count if necessary:

If you need the tip of the curve to stick to a face, first hook it to an empty, then parent the empty to 3 vertices of the face:


Turn out that there were rotation locks on it.


Maybe you have an object just for the label, in this case use an 'add' shader to combine your diffuse and glossy shaders and connect them to the mix.

If you had only one object and your specular was supposed to be applied to metal parts only, then you could use a mix with the inverted alpha as factor.

You can mix and add shaders without limits so setting up these kind of material is preferable in some cases (if you wanted to add a texture that affects both the can and the label).

This is what I mean:


How to add glossiness on a cartoon shading?

A BSDF shader requires three parameters: normal, size and smooth.

If the mix-shader doesn't produce the results you want you can still write your own shader using OSL.

shader Toon(
float diffuse_Fac = .5,
float glossy_Fac = .5,
color diffuse_color = .8,
color glossy_color = .8,
float diffuse_size = .5,
float glossy_size = .5,
float diffuse_smooth = 0,
float glossy_smooth = 0,
normal diffuse_normal = N,
normal glossy_normal = N,
output closure color BSDF = background()
)

{
BSDF = diffuse_Fac * diffuse_color * diffuse_toon(diffuse_normal, diffuse_size, diffuse_smooth)
     + glossy_Fac * glossy_color * glossy_toon(glossy_normal, glossy_size, glossy_smooth);
}

This one was adapted from this BA Thread where you also find pointers on this topic.

You only need to enable OSL in the render settings (this implies that it can't any longer be process by the GPU) and add a Script Node as shown in the image.

You could also try specular_toon() I wonder why this is not accessible from the Add Menu.


Is there a node that can separate colors by scale?

The geometry node does what you want. The geometry node looks like this:

And has a vector output for position. The separate xyz node can be connected to that and it'll isolate the z component of the vector. Then you can use a math node set to greater than and a couple of mixRGB nodes to combine colors.
What's a vector and why does this work?
Vectors are extremely important for anything procedural in blender. Simply, a vector is a combination of 3 components. In this case these components are x, y, and z. A color (having r, g, and b components) can also be considered a vector. The geometry node outputs a vector which maps x, y, and z for every point on the mesh. It's difficult to work with a vector, though, because it's hard to deal with multiple things at once. It's much easier to work with a scalar, or a single component of the vector. The separate x, y, z node separates a position vector into 3 scalars which you can modify with normal math nodes. There's also a vector math node which can be used in this scenario, but it's not as easy to conceptualize.
Here's the whole node setup which outputs a 1 for every point above 0.5 on the z axis:


After double tapping G with an edge-ring selected, you enter edge-slide mode now press E to access a model operator that attempts to align the edge-ring with either of the neighboring edge-rings.  You can choose which parallel ring to align with by pressing the F key.

Note that that the header also shows the keys:

The same thing works for Loop Cut and Slide Ctrl+r, the only problem this function is that it works best for meshes that are uniform along all three axis.  If the object is really long along one axis; the edge-align tool will behave as if the Object has non-uniform scale even if it does not.


Shape keys, Relative or Absolute, may only be edited at 1. That is their fixed point of reference. In the case of Relative shape keys, what is stored is the difference between that fixed point of reference and whatever is in the 'Relative To' field of the key.

Relative interpolations are linear. Setting a value outside 0-1 is calling for a linear extrapolation, beyond 0-1, of the imaginary straight lines in object space down which vertices travel between value 0 and value 1.

Using 'New Shape from Mix' in the menu under the little down chevron on the right of the keys list, you can take your -1 extrapolation of the 'Tall' shape key and make it into a key in its own right; say.. 'Short'.

You can now edit the Short key.

How you deal with the keys after that is up to you.. if you want to return to just 2 keys, you could, for instance, delete the Basis, and have a single relative key from 0=Tall to 1=Short, but beware, the whole journey (the new straight line) will not pass through what was 'Basis'before.

You may go for Absolute keys, perhaps re-ordering them. In that case 'Tall', 'Basis'and 'Short' will be put in a single continuum, and you will have to alter only one 'Evaluation Time' value to pass through all three reference shapes, (with a choice of interpolation methods)


Is it possible to update a StringProperty as it's being typed?

There is an option for this.
Create the StringProperty with options={'TEXTEDIT_UPDATE'}:

prop = StringProperty(name="Test", options={'TEXTEDIT_UPDATE'})

https://docs.blender.org/api/2.79/bpy.props.html#bpy.props.StringProperty


How can I remove multiple overlapping vertices?

I'm not sure I understand your question, but I believe you are asking how to remove overlapping vertices, or how to get rid of obscured vertices under a face.

For the first case: Press A to select everything in the scene. Then press w. A menu will pop up, and one option will be "Remove doubles." "Remove doubles" gets rid of all overlapping vertices.

For the second case, I would go into wireframe mode(press "z") and check if I could get rid of the problem manually by selecting and deleting the vertices. If that does work, I'd select around the problemed area using circle select(press "c"), and then bring up the delete menu(press "x") and select "limited dissolve." On the left-hand side in the toolbar tab, there will be a section that says "normals" with an adjustment bar. Fidget with the adjustment bar to see if any condition works.


Shape key is affecting the normals of faces its not attached to

I was able to solve this problem by selecting the vertex group associated with the bottom lid blink shape key and separating by selection by pressing 'P' then rejoining the objects by selecting the bottom lid and the face in object mode then pressing ' CTRL + J' to join the objects.
No more jittering.


How to specify multiple restrict frame ranges for the F-curve Noise modifier?

One way to let the F-Curve modifier affect the animation in several frame ranges is to setup several F-Curve modifiers. So one modifier will be responsible for the 1-st frame range, another one - for the second and so on.

You can copy / paste modifiers with buttons in the top part of the Modifiers tab in the Properties region of the Graph Editor. Once modifier was copied change its frame range to make it affect another part of animation.


Go to User Pereferences/Input tab/3D View/3D View (Global)
There is no entry for "Lock Camera to View", so we will add a new one.
Click "Add New"
Open the "none" line that was created
In the text field which says "none", type: wm.context_toggle, and press ENTER
A new text field labelled "Context Attributes" appears. Type: space_data.lock_camera, and press ENTER
Define the shortcut. (Some more trial and error could be necessary to find a free one). The shortcut should work already.
Don't forget to also press "Save User Settings" in the User Preferences window.

In the following screenshot I just added the shortcut Ctrl-K:

Also see this blenderartists thread.


Multiple instances of a single image node, each with a different vector input

Both objects share same material and have UV map, but only Cube uses it due to different Vectors plugged into MixRGB node. Separation mask based on Object Info data and plugged into Factor of MixRGB.


The problem was modifying overall shapes of a pre defined basemesh using "grab" brush.

changes in major shapes of a basemesh using grab brush creates artifact using multires
subdivision


Is there a line render engine for Blender?

Blender Internal
BI can render wireframes on edge only meshes, whether shaded or shadeless:

BI can also render halos, which work on vertex only meshes (there are a few in the middle of the above scene), but they are affected by distance.
OpenGL
However, you could try using the openGL preview render (using the same system that renders the viewport)
Unfortunately, options for coloring objects individually is rather limited using meshes without faces. You can tweak some things (e.g. vertex size) by editing the themes, but this is obviously not what it was designed for.
You can render animations and stills with openGL render by clicking the buttons in the header of the 3D view, or in the render menu in the Info panel (at the top of the window):

For example:

Original answer:

Freestyle can render a scene as svg, using either SVGwriter or this set of python scripts.
Note that freestyle requires faces to work.


What is the significance of this traceback?

I still don't know how to interpret the traceback, but I found out what triggered it. I exported the elements of the original ~.blend file to ~.dxf format one by one, with all but one of them exporting successfully. The problem triggering the failure of the import turned out to be in one portion of export, where there was one duplicate vertex, which I removed by using the "remove doubles" special menu option. After removing the stray vertex, the formerly misbehaving element exported normally, with no error and no traceback.


Change origin point in edit mode without 3d cursor

I don't know the shortcut but I do know how to do it without one.
In the top right corner, check Origins and with the move tool you can freely move your origin. When you are done check the Origins button again and you can move stuff around normally again.


Apply subsurf modifier to only part of an object

This is possible on some modifiers via vertex groups, however this is not possible with subsurf modifier.
You could instead try some of these:
For reference, here is the original subsurfed mesh:

Separate the pedestal and goblet into different objects (P > By Selection). E.g. by separating the face of the cube on the +X axis:

You can Split off geometry in Edit Mode with Y. This will give basically the same result as Separate, but within a single object:

You could also use the Edge Split modifier the same way, by either using Ctrl + E > Mark Sharp, or with the Edge Angle property.

Use supporting geometry (i.e. edgeloops) to make edges less round. You could use Ctrl + R to add loopcuts, or use Ctrl + B to bevel edges (using the mousewheel to adjust the number of segments). E.g. bevel with 2 segments:

Use Mean crease to make edges less round (Shift + E). E.g. with a Crease weight of 1:


My suggestion would be to:

Increase the bevel Depth value of the curve on the curve properties to give thickness to the curve
Make sure the Fill type for the curve is set to Full instead of half. So that the curve is a cylinder instead of a half cylinder. (Increase bevel Resolution for a smoother curve profile)
Assign separate materials with different colours to each curve. The curve now has a thickness so that materials can be displayed.

You should be able to incorporate the steps above into your script:

Something like the image below can be achieved:

Of course, a disadvantage may be that this only works for Object Mode and not Edit Mode.


Avoid boolean to create holes in a mesh. It will always create really bad topology and then when you apply subdivision and smooth shade, everything is going to fail.


Is there a way to properly mirror an animation?

Add an Empty and place it in the same position where the origin point of your armature is. In Object Mode select your rig, then an Empty and press Ctrl+P.

Now select the Empty and scale it by -1 (S,X,-1).
Note that this may not be the proper way to do it. I think you should find the root bone (which controls all the other bones location) and rotate it by 180 degrees.


What you may do is to enable the Snapping Tool, change the snapping type to Vertex, then scale your object along the X axis (S,X) until it snaps to the other object. Then change the Y and Z  parameters of Scale in Transform panel to the same as X has (hover the cursor over the X value window, hold LMB and drag it down to copy the X value to other windows).

Before scaling an object make sure you snapped your 3D Cursor to its origin point (select an object in Object Mode, then press Shift+S-->Cursor to Selected). Also the pivot center type has to be set to 3D Cursor.


How To Have Fine Control Over Rotating Objects

This rig is over complicated: it has an IK bone that follows an empty, which rotates following a curve (circle); the animation is controlled by the evaluation time parameter of the curve, which has a cycle modifier in the graph editor, that you can see if you select the curve (and can be animated by hand using the 0-100 values, but it's difficult to achieve a smooth transition between different speeds due to its cyclic mode.

I think it would be better to delete the circle, the IK bone and the rotating empty, then select the bone called "prop rotate.L" in the "Armature prop L", set it as "Euler XYZ", and animate its Y rotation. So you can control the speed of the rotators by a simple use of ease in and ease out of a bezier curve in the graph editor.


You have to subdivide this certain area, where the bend is happenning, just add a couple of loopcuts


How to model the rounded outline of a column

I'm not sure there is a best way, but using a Curve and the Screw Tool allows you to edit the profile non destructively and get nice flowing curves by using the Bezier handles.

Tools needed.

Import image as background (or use Import Image as Plane addon.. if you want to get work done)
Curve Object, with origin placed on the point you want to rotate around.
Use the Screw modifier, to "Lathe" the Curve geometry.

The trick with Curve object is you can have straight and curved sections in one Curve object, and each curve section can have a different level of subdivision.

If you want straight section: select the two handles of the section you want straight and press V and choose Vector.

If you want a section curved select the handles for that section and V and choose Free then move them around.

To help see stuff, you might want to change the Normal size, else it just looks like random lines fanning out from your curve.

Adding sections of curve is easy, select the last Knot ( not handle ) and press extrude and drag away, just like with vertices.

On its side that Curve looks something like this, it was done fast only to give an impression. Take your time to include transitions and change the subdivision per segment if you can get away with reducing geometry.

Quick recap


Why is my model shrinking when weight painted?

This issue arises when the armature and the mesh have different scales. To fix that, press Ctrl+A and then select Scale from the menu.

This will apply the scaling so there is a zero scaling value. If you do this for both the mesh and the armature, then this issue should be resolved.


I solved the problem by using using a texture made for clay and editing the colour to orange. I also tried some things out with the normal map, you could propably do a better job if you just create your own normal map and put an orange image texture on it.


How to a create a slate roof tile with rough edges?

I would solve the problem with microdisplacement.  I think you're in the ballpark.
My model is a cube that I scaled down on the Z axis and gave some loop cuts to.

Then I grabbed the top and bottom outer edge (in edge select mode) and beveled with a couple divisions.

And that's it, slap some adaptive subdivision on there and head to the node editor.  Set your object's material to Displacement and Bump.

In the shader editor, you can use a Vector Math node to multiply the object coordinates by itself a couple of times and then run that output through a Gradient Texture set to Spherical to generate this interesting output.

You can use a Color Ramp here to define the cutoff between the jagged edge and the smooth plane.  For whatever reason I used an Invert node here, but you can just flip the Color Ramp around.

This is the scale input of your Displacement node.  Multiply it by a value that makes sense(0.04?), plug it in, and put all of this aside except for the Displacement node.

Now grab some fresh coordinates and start with a Voronoi texture as you first suspected.  I've used a Mapping node to squish it on the Z axis which I think is more accurate to the reference.  If you plug this into the height input, and plug the Displacement node into the Material Output we get immediate results because we've already set up our scale.

With some adjustment to the Color Ramp from before, the scale of the texture, and the Midlevel of the Displacement node, maybe this is enough for what you need.
The thing to know to actually use this is that since we're using Object Coordinates if you need to scale the object and Apply Scale, you have to go into the shader editor and make an inverse change to the Mapping nodes.  This is kind of an annoyance and a failing on my end because I gave up on making this work with generated coordinates.
For example, if you've scaled this model on the X axis, you also need to decrease the scale of the X axis on the bottom Mapping node.  Here's a view of how our change in the Mapping node is represented in rendered view.  (This does get fiddly and again I apologize.)

You can, of course, go much further than this.
...And I have...
Around here you start getting some good results.

Just kidding, here's the blend file.

This is what this crazy graph looks like set to Bump Only.

And here's a showcase with displacement and RTX ON.

Every instance of the object is slightly different.

Microtexture in the Bump layer.


How to get a gradient on an angle in cycles nodes?

What you did is "quite" correct, you'll probably just have to find the right transformation parameters for your scene. But with this kind of setup it's not easy to figure them out.

I see you are using a Diagonal Gradient texture type, but at the same time you are also rotating the input coordinates, so as you are rotating something that is already rotated... well, it's easy to get lost.

I would suggest to use a simpler node tree, based on a Linear type, that lead to a behaviour that it's easier to predict, like the floowing.

But my real suggestion would be to use use an Empty to control the Texture Coordinates for the Gradient. This way you'll be able to visually adjust the orientation, the location and the scale of the texture.

Use the Arrows empty's type and remember that the texture lays in the XY plane (so empty's Z axis sould point toward global X).

Here's the shader in action:


X-axis mirror will accomplish this for you. Go into edit mode, and under the options tab of the tool shelf you'll find the checkbox. See the GIF for a  visual.


No, there's no addon that I know of that can do what you want automatically, you will likely have to do it by hand, one way or another. There are a few workarounds that can fake it, though.

It's an approximation, but you could use a Bezier Curve, with a square section used as bevel object and manually draw your text shapes.

Have in mind that it wont correctly make the beveled ends like in your reference image. You would have to do those manually by hand in the end by converting the curve to mesh first.

EDIT

Create a new plane mesh object, rotate it $45º$ in Z Axis, apply the rotation with Ctrl+A > Rotation then convert it to mesh with ALt+C > Curve from Mesh.

Now add a new Bezier Curve object that will make up your text. Under the Properties Editor > Object Data > Bevel Object pick the plane created in the previous steps.

Adjust the square plane size as needed.

That should get your bevel started, now just manually edit your curve object so it is shaped like the letters of the text you want.

As mentioned earlier this method wont cap the ends correctly with a bevel like in your image. You will have to manually create those yourself if you want, by converting (a copy) to a mesh first. Keep an original copy around as curve just to be safe.


toggle Object Mode  Pose Mode by script code

Probably the easiest way for you to toggle between Object Mode and Pose Mode is to simply call bpy.ops.object.posemode_toggle() again. If you're in Object Mode, that will switch you to Pose Mode. If you're in Pose Mode, then you'll go to Object Mode. Here is a link to the Blender 2.83 API, though unfortunately the description is sparse.

Here's a quick script you can run to test, where here I've also created an armature and showed one way to move it via keyframing (since it seems like you were interested in doing that).

import bpy
from mathutils import Vector

# Make armature
bpy.ops.object.armature_add(enter_editmode=False, location=(0, 0, 0))
arm = bpy.context.object

# Enter pose mode.
bpy.ops.object.posemode_toggle()

# Assign keyframes to the armature.
arm.pose.bones['Bone'].keyframe_insert('location', frame=0)
arm.pose.bones["Bone"].location += Vector((0,2,0))
arm.pose.bones['Bone'].keyframe_insert('location', frame=20)
arm.pose.bones["Bone"].location += Vector((0,0,2))
arm.pose.bones['Bone'].keyframe_insert('location', frame=40)

# Return to object mode.
bpy.ops.object.posemode_toggle()

If the code above is in a file test.py, then run blender -P test.py.

If the last line is commented out, you will see this when Blender opens in Pose Mode:

If you leave it un-commented in the code, then you will see this when Blender opens in Object Mode:


Blender Game Engine dynamic text wordwrap

You can easily achieve it by using the Python standard library's textwrap module. I've written this article about text alignement in BGE some time ago, you may find it useful (it's in brazilian portuguese, you may try to use Google Translate on it). Here I will explain about left alignement, but in the article I explain about center and right alignement as well. Example file with all the modes provided below.

Left aligned text

With this simple setup:

The following code:

import bge
import textwrap

def main(cont):

    # Objects
    own = cont.owner

    # Sensors
    sensor = cont.sensors[0]

    # Properties
    text = 'The Blender Game Engine is a component of Blender, a free and open-source 3D production suite, used for making real-time interactive content. The game engine was written from scratch in C++ as a mostly independent component, and includes support for features such as Python scripting and OpenAL 3D sound.'

    #### INITIALIZE ####
    if sensor.positive:

        # Max number line characters before line breaks
        line_size = 35

        # Left alignement
        own.text = textwrap.fill(text, line_size)

It results in:

Example file


How can I smoothly transition between two UV maps?

I'm with Ray on this. It sounds like the wrong solution for the problem at hand.

Anyway, you can't really "change between" UV maps, but you can transition between them at shader level.

Since UVs are vectors like RGB values, you can work around it by using a Color Mix node to "mix" between two UV layers.

UVWarp, or UV Project may be more adequate solutions


as Ratt said you can do it like so:

first: Shift - A -> Add plane

scale, rotate, place it as you need it

add a light

select your plane and tap on vertices

Shift - select your light -> now you got 4 lights which move with your plane

add an array modifier...now you got 4 x count lights ;)


You need to install NVIDIA drivers separately via flatpak to enable GPU rendering.

Run  flatpak list  in console.
Check if you have a package with application id similar to org.freedesktop.Platform.GL.nvidia
If not run  flatpak install org.freedesktop.Platform.GL.nvidia
and install the latest drivers.At the time of writing this the latest driver was org.freedesktop.Platform.GL.nvidia-460-27-04


Weird normals(I already Recalculate Normals,Remove doubles)

Ok, there are a couple of problems here.
The first and foremost is that you have many edges marked "sharp".

To fix this, simply enter edit mode, select the whole mesh (A), right-click and select "clear sharp"

However, as you can see, the mesh is still affected because of "ugly" topology. Blender favors the use of Quad based topology, and though sometimes tri's or n-gons are unavoidable, they are best kept on flat (non curved) surfaces. To reduce the chance of shading based artifacts, always try to keep your mesh as quad-based as possible.

To fix this for your project, you can either re-topologize it manually, or an easier approach would be to use a Remesh Modifier, either in it's own, or in conjunction with manual adjustments.

Once this is done, if you want your mesh "smooth" again, you could add a Subdivision Surface Modifier, and shade smooth. (NOTE - the smooth shading did not work properly for me until I applied the Remesh Modifier. I am currently using 2.9, so I'm not sure if it's unique to this version, but if it isn't shading smooth for you, try applying the modifier first)


Use of motion constraints for robot's movement simulation

In a simple case like the example you can use Limit_location constraint on one axis , but for more general case you can use the follow path constraint

to get the previous configuration :

add follow path constraint with the following settings then click animate path

to take coontrol of the robot position you have to check Fixed position  and use the Offset slider to animate it.
for precise movement, the curve used for constraint is the same one used for creating the frame
the frame is created with Array modifier and curve modifier as follows :


Bevel placement uses the object origin as center, check your bevel object local origin and place it accordingly where desired, like at one of the ends, for example.

Both your curves need severe cleanup, and require several steps to achieve good bevel.

First you need to set the center of the bevel object correctly using the 3D cursor. Enter edit mode on the bevel object, select the desired vertex for center, then use the snap menu Shift+S > Cursor to Selected*

Exit edit mode and press Shift+Ctrl+Alt+C > Center to Cursor

Your bevel will come out inverted, so you will need to scale the bevel object by a factor of -1 in the X axis

It will also seem out of scale because the circle is not uniformly scaled. Apply the scale to the circle with Ctrl+A > Apply > Scale*, then enter edit mode, select all vertex and in the properties shelf use the Radius property to set the radius of all vertex to 1.0

You may also need to invert the bevel object curve direction in edit mode using the Switch Direction button under the tool shelf.


Is it possible to expand/collapes all panels in a region with a keystroke or shortcut?

Ctrl+LMB on a panel header will close all other panels.


Planes don't show assigned colors/ images

The problem:
You are using the Compositor Editor.
This will never work, you need to use the Shader Editor.

How to:
1) Open the Shader editor.
2) Select your object and click the + New button, to add a new material.
3) Add an Image texture node and select your image.

Open your Shader editor.
With your object selected, click the New material button.

Add the Image Texture node, and connect it like this.
Then click Open and find your image texture.

This is the result.
If you want to see it, you need to be in the Material Preview or Rendered Preview.

If you're a beginner, I wholeheartedly reccomend BlenderGuru's Donut tutorial series for beginners.
Spend some time there, and you'll learn much more :).

Good luck! :)


How to avoid a double shape when extruding with the mirror modifier

Press B when you inset the face that you are now extruding, so that the ends which are matching the other mirrored side are joined together at the middle. You might have missed the part where Andrew explained this problem in his tutorial at 07:12. He explains it quite well so sure you will understand.


Why does my particle hair look so patchy?

That is a https://en.wikipedia.org/wiki/Moir%C3%A9_pattern
Add a small amount of randomness to the vertices to avoid that.


Planes rotating to face the camera, but only along one axis


To add Alpha to GIMP layer

Right click on a layer in GIMP and select "Add Layer Mask..."
You will see a second thumbnail appear on the layer. Select the thumb.
Paint over your image where you want Alpha in Black and White.
When it is transparent you will see a checkered background in GIMP.

Note on Blender
There are a few ways alpha can be implemented, I am just sharing the simplest IMO. Implementing an image that has an alpha channel built in will depend on what render engine you are using. In Cycles you will need to use a Transparency node in addition to whatever node setup you are using to utilize Alpha. BI will need several settings changed to setup alpha (A couple in the texture properties and enabled transparency in the material if memory serves me, been many years since I last used BI). EEVEE, not officially released as of time of writing doesn't seem to be working correctly using latest build on my system so will have to update later if you need to know about that one.

Edit:
It should be mentioned, You do not have to use GIMP for painting in Blender (But it can be a nice addition afterwards for more advanced editing), you can make your texture file in Blender and then go to paint mode on your object. Blender does have some performance limitations doing this at high resolution.

To create a new texture file for painting go to your UV image editor and click "New", then type in your file name, resolution and make sure "Alpha" is checked.
Once thats done apply your new image to your material so it is seen in the viewport on the model you want to paint
Go to texture paint mode and have fun
Always remember to save your texture file outside Blender or it will be deleted!


Change the size of multiple selected polygons as a post-extrude operation

To create something like that initially, use individual inset (II):

Once the geometry is created, you can resize it with Edge slide (GG):

Note that the direction edges are slid is defined by what side the cursor is on when the operator is called, so if you want to make all the edges go in the same direction, make sure you have the cursor off to one side when you press GG.


NODE – exclude from tree (Node Wrangler)

There is Detach From Outputs function which does that, also leaving inputs of the node you moved out from the tree attached. Press Shift+Alt+D with node to detach:

Or from the Node Wrangler toolshelf (N in the UV editor, Node Wrangler tab):


How to fix inconsistent behavior of two quads defined by the same corner vertices?

Edit (Better understanding of OP)
If you show the internal triangulation for rendering by using a Wireframe node, you can see that the (non-planar) quads are indeed triangulated in opposite directions:

..(and here the shipped add-on Measureit has been used to show vertex indices at a reasonable size.)
I've found that can be flipped by CtrlT manually triangulating with a real, editable edge, selecting the appropriate direction, 'Fixed' for 1st and 3rd vertices, 'Fixed Alternate' for 2nd and 4th:

Then CtrlX Limited Dissolving the new edge, setting the angle high enough to lose it:

After that, the internal triangulation appears to follow the hint:

.. and you get good ol' Z-fighting between the coincident faces, which is what you would expect.


If on a spherical mesh, you can start with a cube (rotate its UV to fit your map), then add:

Subdivision modifier with "simple" algorithm (we don't want to smooth but just to give more geometry for the cast below)
Cast to sphere modifier


Change the Pivot point to individual origins

Also. when you find yourself doing the same thing on many similar pieces, it is time to think of using instancing or arrays, so that you edit only one object and the copies are changed as well.


You were right. thx Polosson. :)

Step by step if you want to mute all audio files in your sequence editor:
1 Make your timeline visible
2 Click on Playback (You can find it on your timeline bar)
3 Choose "Audio muted" from the list and mark it.
If you want to back your audio audible, just unmark "Audio Muted"


Everything looks fine in edit mode, but distorted in object mode

I downloaded the .blend file and can't reproduce the issue. Maybe disable some addons, get a clean install of Blender, etc. Here's what I did right after opening the file, everything seems fine to me, let me know if I missed something:


Can blender game engine detect if a character is falling and play an animation?

KX_GameObject.worldLinearVelocity

On a Physics object the Z-axis of the coordinates would be negative.

As static objects do to move (via Physics engine) this attribute will remain (0,0,0). This will be the case on physics types Static, Occluder, Sensor, Navigation Mesh, Character. This is a bit strange as this types (except Static) have not really much to do with physics (it is more a purpose type). Changes in location (which is basically a teleportation), can only be tracked by recording the previous position and comparing it to the current one.

Here is an example:

import bge

PROPERTY_LAST_POSITION = "last.position"

gameObject = bge.logic.getCurrentController().owner
currentPosition = gameObject.worldPosition
lastPosition = gameObject.get(PROPERTY_LAST_POSITION, currentPosition)
gameObject[PROPERTY_LAST_POSITION] = currentPosition.copy()
positionDifference = currentPosition - lastPosition

isFalling = (positionDifference.z < 0)

controller = bge.logic.getCurrentController()
for actuator in controller.actuators:
    if isFalling:
        controller.activate(actuator)
    else:
        controller.deactivate(actuator)


Is it possible to change the brush on the vertex paint option?

Yes, you can use textures to serve as a brush. Here's what you do.

Make or find a brush texture. I quickly drew one in GIMP. As far as I know, the color of the brush doesn't matter, just the alpha channel. That means you can play with brushes that fade towards the edges, etc.

In the texture panel, add a texture as an image and assign your brush image to it. Make sure Use Alpha is checked! See image below:

Now you have a texture available that will serve as a 'brush'. Back in the uv editor you can start painting. Expand the Texture panel below the brush settings and click on the big checkerbox button. Select your texture and you'll be able to paint using the texture as a brush. Note the Brush Mapping drop down. In the image below, I used Tiled, View Plane, and Random. I assume you'll probably want View Plane to start.

Two cool things:

I like the Rake feature. It will rotate the brush depending on the direction you're painting. Awesome!

I haven't tried this yet, but you could probably paint a texture in Blender and then use it as a brush. Now that's Meta!

P.S. I made this fur texture thing using that brush (for demonstration purposes)

P.P.S I am not a texture artist.


"Failed to find Grease Pencil data to draw into" when using 'bpy.ops.gpencil.draw()'

Don't use the operator

The error is alerting you that there is no current grease pencil assigned to that scene, and with no gp it doesn't poll.  Have a hunch tho, that adding one will lead to next poll error of incorrect area, when script is not invoked, or overridden with context of a 3d view. See here

The operator command bpy.ops.gpencil.draw is using 2d coordinates of the 3d viewport they were drawn in. These will change based on the orientation of the view. Would be far better off adding grease pencil using the API methods available. (note add links).  Each point can be given a specific 3S location. This is what the UI is doing for you, akin to placing 3d cursor

Similarly to Mr @TLousky's Answer, without using any operators  add a grease pencil, layer, frame stroke and finally points to draw a 2 x 2 square on the XY plane.

import bpy

context = bpy.context
scene = context.scene
gp = scene.grease_pencil
if not gp:
    gp = bpy.data.grease_pencil.new("GP")
    scene.grease_pencil = gp

# Reference grease pencil layer or create one of none exists
if gp.layers:
    gpl = gp.layers[0]
else:
    gpl = gp.layers.new('gpl', set_active = True )

# Reference active GP frame or create one of none exists
if gpl.active_frame:
    fr = gpl.active_frame
else:
    fr = gpl.frames.new(0)

# Create a new stroke
str = fr.strokes.new()
str.draw_mode = '3DSPACE'
str.line_width = 5 # default 3

points = [(-1, -1, 0),
          (-1, 1, 0),
          (1, 1, 0),
          (1, -1, 0),
          (-1, -1, 0)]

str.points.add(len(points))
for p0, p in zip(points, str.points):
    p.co = p0


The Remesh modifier only generates quads.
If you need proof, select your object and with the remesh modifier applied, run this script.

import bpy

for polygon in bpy.context.object.data.polygons:
    print(len(polygon.vertices))

It will print out the number of vertices for each face in the selected object.

Even for areas that look like triangles, they really are quads just with vertices doubled up. In this gif, I move two vertices that are doubled up in a mesh with the remesh modifier applied.


Why doesn't the "Disable for viewport selection" button doesn't show up in the Outliner?

Look in the top right of the Outliner tab (in the Default workspace, this appears in the top-right) for a sub-menu called "Restriction Toggles"; it has a symbol that looks a little bit like a triangular key on it. In that sub-menu, you can choose which Restriction Toggles to make visible. By default in 2.80, only Visibility is present, but in this sub-menu you can turn on/off the Selectability, Renderability, etc restrictions toggles as needed.

The Outliner tab appears here in the Default workspace:

Within the Outliner, can find the relevant sub-menu here:

Inside this menu, you can choose from several available Restriction Toggles that you either do or don't want to have appear in your Outliner:


How to give specific color in specific area?

You can assign any one material to a face at a time. However, you can apply a uv image to the object. This will allow you to paint freely on the object in as much detail as you wish.


use proportional editting. press 'O' as in Oscar on the keyboard. a little box in the top middle of the screen will highlight. next to that is a dropdown for curve shape or lack there of.
edit: you want to run a remesh modifier. yeah that looks like a nightmare.


Import multiple STL files and modify the incoming objects in one go?

Similar to Import STL via python, you can use the ImportHelper class if you'd like to import and modify objects. Have a look into the Operator File Import template that comes with Blender.
In order to join the objects, see @batFINGERs answer on: How to join objects with Python? How to import multiple objects using the file browser, you can find here: How to batch import Wavefront OBJ files?
# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>

bl_info = {
    "name": "Custom Batch Import Stl (.stl)",
    "author": "brockmann",
    "version": (0, 1, 0),
    "blender": (2, 80, 0),
    "location": "File > Import-Export",
    "description": "Import Stl files and join them",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "Import-Export"}

import bpy
import os

from bpy_extras.io_utils import ImportHelper
from bpy.types import PropertyGroup
from bpy.props import StringProperty, CollectionProperty

class ImportSomeData(bpy.types.Operator, ImportHelper):
    """Batch Import Stl files and join them"""
    bl_idname = "import_scene.custom_stls"
    bl_label = "Import multiple OBJ's"
    bl_options = {'PRESET', 'UNDO'}

    # ImportHelper mixin class uses this
    filename_ext = ".stl"

    filter_glob: StringProperty(
            default="*.stl",
            options={'HIDDEN'},
            )

    # Selected files
    files: CollectionProperty(type=PropertyGroup)

    def execute(self, context):

        # Get the folder
        folder = os.path.dirname(self.filepath)

        obs = []
        # Iterate through the selected files
        for i in self.files:

            # Generate full path to file
            path_to_file = (os.path.join(folder, i.name))
            bpy.ops.import_mesh.stl(filepath=path_to_file)
            # Append Object(s) to the list
            obs.append(context.selected_objects[:])
            # Print the imported object reference
            print ("Imported object:", context.object)

        # Join the objects based on:
        # https://blender.stackexchange.com/a/133024/
        obs = [x for sublist in obs for x in sublist]
        c = {}
        c["object"] = c["active_object"] = context.object
        c["selected_objects"] = c["selected_editable_objects"] = obs
        bpy.ops.object.join(c)

        return {'FINISHED'}

# Only needed if you want to add into a dynamic menu
def menu_func_import(self, context):
    self.layout.operator(ImportSomeData.bl_idname, text="Stl Batch & Join (.stl)")

def register():
    bpy.utils.register_class(ImportSomeData)
    bpy.types.TOPBAR_MT_file_import.append(menu_func_import)

def unregister():
    bpy.utils.unregister_class(ImportSomeData)
    bpy.types.TOPBAR_MT_file_import.remove(menu_func_import)

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.import_scene.custom_stls('INVOKE_DEFAULT')

Note: If you get paid for that and my code got your job done, please consider making a donation here: https://www.blender.org/foundation/donation-payment/ to make up for that.


How to wrap fingers around a cylinder (handle)?

You can rotate portions of the mesh around the 3D cursor. The position can be established by first selecting a ring of vertices in Edit Mode, and then ShiftS and choosing cursor to selected. Press the period key . to choose the 3D cursor location as the rotation point. Select the rest of the mesh you wish to rotate and ...rotate.

Perhaps later you will want to rig to accomplish the same thing - in which case you will want to create your mesh from quads to avoid distortion. In this case I used ALTJ to convert the tris to quads and re-distributed the vertices. The rotation also has proportional editing enabled. While bones and weight paint can achieve the same thing, this is a good way to test bends.


You are probably in this situation:

The problem is due to the ngons surrounding the hole: they are not easily processed by the subsurface modifier, so you need to change them into quads.

Enter edit mode
Set mesh select mode to "face" CtrlTab
Select the ngons
Triangulate CtrlT
Make quads AltJ (reselect and redo it as needed)
There is some glitches at the corner
So surround the hole CtrlR
And adjust the position of the surrounding section


In general, when you save or create something in a newer version of a software then you can't open it in older ones. If you want to keep working your file in 2.79 try opening that version of the program and on the top left corner go to File>Recover>Auto Save... I'm using 2.90 though but I hope that's the same in 2.79 as well.


In Scripting mode,how do I select multiple bones?

This is a script which selects Bone and Bone.005 from Armature.003

import bpy

arm = bpy.data.objects['Armature.003']
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.armature.select_all(action='DESELECT')

bones_to_select = ['Bone','Bone.005']
for bone in arm.data.edit_bones:
    if bone.name in bones_to_select:
        bone.select = True


With one material shared between all the rectangles, you can add randomized attributes, as long as each rectangle is a separate mesh object.

The trick is using the Object Info Node with the Random output as a factor in texture position as well as in a colour overlay.

Here's the modified Material node tree. All collapsed nodes are unchanged from the original material from the original question.

Here's a sample screenshot of the single material across the 48 rectangular meshes (16 groups of 3). It demonstrates the randomization of the colour overlay as well as the shift in Texture coordinates.

Randomizing Colour

The colour overlay is easier to explain. You take the Random value into the Factor of a Colour Ramp and then mix that over top of your base colour. The Random value will apply a different position value from the colour ramp to each of the mesh objects, giving you the colour variation you need. Adjust the colour ramp to make it as subtle as you want.

Randomizing Texture Position

This part is a little trickier. Essentially we want to modify the X and Y values of the Texture Coordinate. It's important to know that Adding to these values moves the textures, and Multiplying a number by these values Scales the Texture Coordinates. We don't want to scale here, we just want to randomly change the X and Y values of the coordinates.

The problem is that we can't do this with the Mapping node, so we need some math nodes.

First we take the output of the Mapping Node and split the XYZ values with a Separate XYZ node.
Then we add the Random value to the X and the Y values
Then we use the Combine XYZ node to combine the altered XY values with the unchanged Z value.
At this point we pipe the vector output into the rest of the node tree as was originally set up.

This way we are adding a random integer to the X and Y value and shifting the texture coordinates for each mesh that uses our single material.

Note: In this example I did not randomize the Glossy material, although you could certainly do that as well.

Tip: If you want to learn more about modifying texture coordinates, I would highly recommend Bartek Skorupa's video: "Manipulating Texture Coordinates Like A Boss"


A mess happens when i try to unwrap my model, any idea whats causing this?

the problem is your model. You have got a lot of strange faces in the inside of your sword, and on top of the sword some vertices that are not connected while they should be. So you have to delete all the inner faces and connect the vertices that should be connected. And then add the seams and UV-unwrap the model
In the blendfile I add, I corrected it all so you can see the difference.


Bug in addon to Change header color dynamically

I think that the issue comes from changing preference data during a UI draw, that is, you are accessing data that should not be altered while drawing the UI.

An alternative approach that seems to work is using handlers to alter the theme settings. In 2.80 the scene_update_* handlers have been renamed to depsgraph_update_*.

def TEST_prefset(scene):
    prefs = bpy.context.preferences

    if scene.tool_settings.use_keyframe_insert_auto == True:
        prefs.themes[0].topbar.space.header = (0.4, 0.000000, 0.000000, 1.000000)

    else:
        prefs.themes[0].topbar.space.header = (0.137255, 0.137255, 0.137255, 1.000000)

def register():
    bpy.app.handlers.depsgraph_update_post.append(TEST_prefset)

def unregister():
    bpy.app.handlers.depsgraph_update_post.remove(TEST_prefset)