Is there a shortcut to repeat the last operation in Blender I'm currently doing a lot of UV mapping work and I find myself repeating the same long shortcuts over and over. For example, aligning the selected uvs in y can be done by pressing s, y, 0 (scale y to 0) then enter to confirm. Since I'm doing this over and over again, I was wondering if there is a Blender shortcut to repeat the last operation, similar to the repeat key ('g') in Maya.

By the way, I know there is actually an align function, but even that requires a couple of of key presses and it's another shortcut to remember, where I find scaling to 0 more intuitive, so repeat is what I'm after here.

Yes.

F3 will give you a list of recent actions. After selecting one action from the list, the next time you press F3 the list will be positioned with the same action under the cursor. This makes it very easy to call the same action over and over quickly by pressing F3 LMB (without having to move the mouse), or F3⏎ Enter.

In the 3D view you can call the previous action with ⇧ ShiftR, however this doesn't seem to work in the UV editor.

Another option is to add a custom shortcut for the align operators.

To do this add a new shortcut in ⎈ Ctrl⎇ AltU> User preferences > Input. You probably want to define it in some reasonable context like Image > UV editor, so expand the corresponding sections and click New shortcut at the bottom of the UV editor section.

Then put uv.align as the operator and assign a key combination:

Note that you also have the option to change the various parameter the operator is called with when the shortcut is pressed (though in this case there is only one parameter):

Even if the drop down appears grayed out, you can probably still change it. It will appeared grayed out if no parameter is specified, in which case the default it used.

Also see: How to add shortcut for 'Only Render'?


Separate By Loose Parts without mesh warping Using a game ripped mesh, when I "separate by loose parts" most of the mesh becomes slightly warped causing face warping, except on one part (one arm/part remains normal.) Joining them back together will join them but the warping is still there.
What can I do to separate the parts without deforming them?
note* once the normals and spec are applied... the warping is only visible in the solid shader/sculpt mode.
**if you select a part in object mode and go into sculpt mode this distortion disappears. same if you join them. only the solid mode still has this "problem"
*** once you use material shader view there is no visible issue. so this isn't so much a problem, as a question that might have insight or a solution.

First of all I think your Q is a bit out of naming convention (or my understanding).
Mesh is not wrapped, but seems to me as Vertex Normals issue. I had no time to investigate deeper, but disabled Auto Smooth Properties > Data > Normals solved it.

Edit: yet not sure why Auto Smooth react so wierd, but since its Vertex Normal issue it is better to search for Set Normals from Face that fix that and you can use Auto Smooth as well.

There would be still visible edges of separated parts, but that is simply because blender dont know  there is a face next to it so cant optimised. Probably there is another function to search in radious or there is a way to fix it manually, but for sure "seams" are gone when you connect parts together like Merge by Distance.


Make an array without separation/line showing between I need help figuring out how to model something and use an array with it on the Z axis so it repeats smoothly..
It doesn't seem to do what i want when I apply a glass material.
I can't seem to figure it out exactly but any help would be appreciated, thanks.

You can try enabling "merge" in the modifiers panel.

You can also try "first last", which will merge vertices from the first object and the last object in the array. (A circle for example.)

Make sure you set the merge distance.

Hope this helps you out.


Why does my mesh not move with the bones parented to it? I'm trying to animate a character that I have created with blender 2.71, but something doesn't work well. As you can see from the screenshot, I have created the bones, I pressed Ctrl + P and then I have chosen the option 'With Automatic Weights'.

However, when I right click on a bone and I try to move it, the meshes of the character don't move; Only the bones do it. What am I doing wrong?

In Object Mode select all objects but the armature. Press Ctrl-J (join) .

Parenting with Automatic weights fails due to duplicated vertices.
With the mesh selected enter Edit Mode select all A then press the Remove Doubles button from the left panel this removes > 3700 vertices.

You probably need to manually edit the middle part of the body because it is not connected. Or try to increase the limit when removing the doubles.

Note that this could also be done with a Mirror Modifier set to clipping.

After parenting with automatic weights your model requires weight painting. In your case I wouldn't recommend to use automatic weights because it adds much weights you only need to remove. Better paint it all manually from scratch.


Connecting semi-spheres to a model Whilst on the topic, how could I make this model more game-ready overall? I'm doing this to just practice.

As for spheres - remove bottom halves that are inside geometry and then just attach using ctr+j to join it with the main mesh.
As for game ready - one idea would be to actually bake the spheres as a normal texture and use it to imitate bumpiness.

For gameready object i would not use subsurface modifier at all, instead I would make a denser model with subsurf (like one you have already), and then I would retopo it - using shrinkwrap modifier  I would create a low-detail version.


Can I paint a texture within the UV viewport? Is there a way to draw something within the UV viewport and not the 3d viewport?

In Uv Editor switch the Mode to Paint. Open a Tools panel (T) and select a brush.

Now you can paint.
Remember to save your image when you're done with painting (Image-->Save As Image). When you see a little star (*) next to the Image in header it means that the image isn't saved.

Here are some useful shortcuts that can be used in a UV Editor window:

press S to pick a color sample
hold S and press LMB to add a color sample to your palette (you may also do it pressing a + button located under the circular color palette).

press F to change the size of a brush
press Shift+F to change the strenght of a brush

After pressing the shortcuts you may also change the attributes of a brush using numerical keyboard buttons.

press E to change the stroke method

Here you can find many interesting options (like a Curve stroke- very useful for precise painting).

press X to quickly flip the color slots


How to join two faces How would I join the two faces as below?:

Using knife, I cut the long edge adjacent to the trapezoid to add vertices, and I also successfully used TinyCAD to add vertices in the same place, but I'm still not able to select only the adjacent edge between the two faces. I can only select the entire edge of the rectangle, not just the adjacent portion. Many thanks in advance if any ideas!

Selecting the top edge of the trapezium is most easily done in Vertex mode - select both ends and switch back to Edge mode. But even then, TinyCad is a bit of a long way round, here.

Vertices must somehow be cut (topologically) into the bottom edge of the rectangle, so alternatives include:

With Snap set to 'Active' and 'Vertex' and Automerge switched on:
AltD duplicate the bottom vertices of the rectangle in their edge, and drag them any old where..
Snap them onto the top vertices of the trapezium

On the whole though, when modeling, you would want the extra edges in the rectangle. If so..

CtrlR and scroll, cut 2 edge-loops into the rectangle
With Snap and Automerge set as before, and your Pivot set to 'Median', in Vertex mode, with one of the new loop vertices active...
SX the new loops, snapping to one of the top vertices of the trapezium.

These are by no means the 'right' ways of doing this.. I'm sure you have/will have your own grab-bag of favorite modeling patterns.


How to snap to vertex on an unstraight/uneven axis? I'm trying to mode the selected edge so that it's aligned with the vertex below. As you can see all the similar edges are uneven, made with the knife tool.

If I hold the red arrow on the gizmo I can snap to the vertex but it would ruin my angled plane at the top of the bridge.

Does anyone know how to do this? Thank you so much!

You can keep using the knife tool then align the edge after, using "edge slide".

Edge slide is a way to grab along edges and is obtained by typing G twice.

So here:

make the cut
select the edge and use GG (double keys does not appears on the cast in the gif below) to align to the edge on the right.
then GG again to place it where you want, but this time the edge is parallel to the one on the right


'Limit selection to visible' button missing in Edit Mode If you see the image, the icon to enable 'Limit selection to visible' is not there.

Am I missing something?

You're in Wireframe shading mode, where the Limit Selection to Visible button would have no effect (as all vertices are visible all the time, so there is nothing to limit to). Change to one of the solid shading modes and it will return:


Can I Put Multiple Animations on a Single Skeletal Mesh? I have a skeletal mesh I want to use in an Unreal Engine game, and I've made a running animation for it.
Is it possible to create multiple animations (e.g. attacking, resting, etc.), and store them all in the same skeletal mesh?
Should I put only a passive animation in blender, and then the create the other animations in Unreal?

As Moonboots said, you have to turn a dopesheet window into an action editor and store every animation as an action, pressing the shield icon to enable the "fake user" function so that you won't loose your stored actions when the software is closed. Then, while exporting in Fbx format you have to enable the "all actions" option, so that the Fbx file will carry all the actions to UE.


Texture painting issue in 2.9+ I've been using blender a while but I don't texture paint often. I'm unsure if there is some new options in 2.9+ or if this is a bug, but my texture painting is all jittery and weird. Also sometimes it just paints big squares instead of the brush. When I open the exact same file in 2.83 it works fine. I've included a video of the issue. Are there any fixes?
Thanks!
https://www.youtube.com/watch?v=grwG99gzmuE

I found the issue. It was the texture size viewport limit setting that wasn't active on my 2.83 version.


How to restore blender's default view? Blender split the 3d view into 4 parts,I don't want this,I want the default blender 3d view,How do I go back?

Here is a screenshot:

This called the Quad View.
You can go back to default View by Pressing Ctrl+Alt+Q


How can I get the location of all the objects in the scene at a desired keyframe using script? I have baked the attached simulation for 500 frames with some keyframes inserted for each object where it follows an animated path after which it free falls according to Blender's rigid body physics. How do I get the location of each of the objects in the scene at frame 500?
This is something I've tried but it outputs the locations at frame 1.
I've attached the .blend file.

import bpy, os

bpy.context.scene.frame_set(500)
#select all objects in scene
bpy.ops.object.select_all(action='SELECT')

SEL_OBJS = bpy.context.selected_objects

# get path to render output (usually /tmp\)
tempFolder = os.path.abspath (bpy.context.scene.render.filepath)
# make a filename
filename = os.path.join (tempFolder, "sample.txt")
# confirm path exists
os.makedirs(os.path.dirname(filename), exist_ok=True)
# open a file to write to
text_file = open(filename, "w")

#loop through all selected objects
for OBJ in SEL_OBJS:
    text_file.write('OBJECT NAME: '+OBJ.name+'\n')
    text_file.write('COORDINATES: '+str(OBJ.location.x)+', '+str(OBJ.location.y)+', '+str(OBJ.location.z)+'\n')
    text_file.write('ROTATION: '+str(OBJ.rotation_euler.x)+', '+str(OBJ.rotation_euler.y)+', '+str(OBJ.rotation_euler.z)+'\n\n')

# close the file
text_file.close()

the obj.location results in the local location, not including parenting relationships. Same goes for the rotation_euler.
loc = OBJ.matrix_world.translation
rot = OBJ.matrix_world.to_euler()
text_file.write('COORDINATES:', str(loc.x), ',', str(loc.y),',', str(loc.z) + '\n')

the matrix_world returns the actual world coordinates of the object after calculating all parenting and constraints.


Fluid simulation render works in viewport, but fluid is missing in image render Fluid Simulation render works in viewport, but will not render the same.
The viewport produces the image I am trying to capture, but whenever I try to render an image, the fluid is missing. All the objects are visible to both the viewport and render engine.

If the name of you water input is [Sphere] it may have its render capability turned off in the outliner.  Please turn on the render setting in the outliner.  That  is the one that looks like a camera.


Turning a complex surface into a volume I have a very detailed mesh (terrain surface), looking like this:

That I would like to give some volume to. A little bit like this:

However, I'm super new to Blender (especially in the modeling department), and I'm wondering if there a any modifier that would take care of this. Once again, the mesh is very detailed, so I would like to use a solution that would use few vertices, hopefully.

If no modifier exists for this kind of operation, how would one model this surface into a volume?

Thanks!

It's actually possible with just 4 verts. Select the corner verts.

Extrude them down with EZ.

Scale them to the same height if needed using SZ0RETURN

Turn them into a face using F.

Select everything with AA and hit F again.

The fill tool is smart enough to fill the holes separately and only generates 4 more ngons.

While my mesh was fine, you can play it safe and hit CTRLN to recalculate the normals. Make sure to give kheetor's comment an upvote.


Question on Rigging and Bone roll So, I've done a lot of searching and I've found a number of questions and posts dancing around this topic, but nothing that gives me a sure answer. I'm going to ask the question again with a little bit more framing in the hopes that someone with more technical knowledge can provide some illumination:

When rigging in Maya, the creation and manipulation of bones happens all within the same system. If I were to explain that in blender terms: object, edit, and pose mode for bones are all combined into the same mode - there is no difference between them.

For that reason, when rigging in Maya it is imperative that we apply the transformations of all the bones as we rig, especially the roll of bones because that affects our rotational axes when animating. Also in Maya, we are constantly cleaning up our history, resetting values to 0, and performing other maintenance to make sure that nothing goes horribly wrong when we skin and begin to animate a rig.

Now then, coming from Maya and going over to blender, suddenly I have an ugly bone roll of 92.3 degrees I can't apply and zero out, there doesn't seem to be a history to clear, and the fact that I don't understand how changes in 'edit mode' translate the fancy 'pose mode' is literally painful; deeply ingrained habits in one program are making me worry about the numbers I see in another program.

So, some questions I have about blender as a maya user:

Does a non-zero bone roll in Edit Mode have an adverse effect in Pose Mode?
Do I need to clear a history? Is node history even a thing in blender?
Is there a way to keep controlling bones and shapes separate, or is that question nonsensical in blender?
Lastly, if I want to export a rig/animation in fbx format, what exactly is being exported, because I'm not finding a lot of things I wish I were when I export.

Also, as a post script, if you need to ask a clarifying question please do; I really want to help you help me :)

A rig could (theoretically) function perfectly well in pose mode without the roll set at zero.  But this depends on the goals of your animation and rig.  Nothing will blow up like in Maya if roll isn't zeroed out.  But it may not bend the way you intend, and an IK constraint might behave strangely too, depending on the poll target.


what is this material for? I'm trying to port a model from sfm to blender and after decompiling i found some textures i've never seen before. What are they for and how to apply such textures? Also every texture called "eye-cornea", so it seems they are related to eyes

The cornea is the transparent front part of the eye that covers the iris, pupil, and anterior chamber

(https://en.wikipedia.org/wiki/Cornea)

So my guess would be that you have found the normal map responsible for creating an apparent bump in the front of the eye.


Blender CAD commands Is there a way in Blender to achieve some CAD commands like extend lines to the intersection (or nearest) point, or trim/extend to plane?

Like this:
http://www.qcad.org/doc/qcad/2.2/reference/en/chapter28.html

Specifically for the commands you mention there exists a CAD add-on called mesh tinyCAD, allows you to easily do the following things (this is not an exhaustive list):

VTX (like _extend):

automatically extend edges towards their projected intersection
generate a vertex at the intersection of two edges  ("weld")

V2X:

generate an unattached vertex at the projected intersection of two edges

XALL:

intersects all selected edges.

BIX:

generates the bisector of two selected edges

CCEN:

given any three selected vertices (in one object), this can recreate a circular set of vertices of any number and scale.

For questions about the add-on or ideas use the project's issue tracker

For _fillet you can use the bevel command: CtrlShiftB With 1 vertex selected

It starts out as a bevel but you can increase the number of segments to turns it into a fillet.
Adjust radius


Can't find active f-curve panel I just started Blender 2 months ago and i'm having a great time.

I'm trying to add a noise f-curve modifier to my camera movement to create shakiness for a toaster animation kind of thing.

However when I add the noise it affects the whole duration of my animation when I only want it to be active for a certain period of time. From doing research it is my understanding that I should be able to have f-curve "parameters" show up in the n-panel on the right side of my viewport. From looking at videos of pre-2.8 blender the parameters show up but I can't find them anywhere.

So my question is : How to find this panel / How to restrict the noise f-curve modifier in Blender 2.8 ?

Thanks in advance.

Press button N  while hovering your mouse over the graph editor or click (or drag) this little left-direction arrow here:


Getting rid of fireflies on render This question has been asked a few times before, but even after following tutorials such as this one

and following the settings, I've been unable to get rid of fireflies in my render. The current render looks like this:

What additional steps can I take to decrease the amount of fireflies / reduce graininess in my renders? I've tried clamping and all of the other techniques in the tutorial but it doesn't seem to help, or at best, has a minimal effect.

Here's the model itself. It's pretty simple, no textures (just shaders).

For reference, the blend file is here: https://transfer.sh/yITqe/spaceship.blend

Increasing the samples amount helps enormously in your scene.
Also, you are mixing up the terms a bit. Fireflies are those white pixels that wont go away even when rendering with a lot of samples.
What you are experiencing is just called noise.

Result with 1000 samples:


Controlling polygons by index value, from list of vertices (sverchok addon) part 2 Edit: there were issues with the original csv file linked below, I've uploaded another csv file of a slightly modified dataset. I've also updated the info regarding the fields in the csv file accordingly.
This question is a continuation of this post: Controlling polygons by index value, from list of vertices (sverchok addon)
I am trying to display polygons of several continents in blender using the sverchok addon. These polygons are stored as a list of vertices (csv file), where each row contains the following information:

fid = index of all the vertices in the list
CONTINENT = name of continent
vertex_part_index = index of the vertices unique to each polygon
index_continent = index of continents (1 through 5 for Africa through South America)
x = x-coordinate of vertex (longitude, in decimal degrees)
y = y-coordinate of vertex (latitude, in decimal degrees)

Using these vertices, I would like to show each each polygon (in other words, create separate ngons with the list of vertices, based on the vertex_part value). Here are two ways to do so, when dealing with only two polygons (from the post linked above):

The first image above shows a node setup that works on a 1 to 1 basis, where 1 node tree can display 1 polygon (i.e. one node setup for Africa mainland, one node setup for Madagascar). The second image above shows a node setup that works on a 1 to 2 basis, where 1 node tree can display 2 polygons, but not more than 2.
My question is, how can I display all of these polygons at once? Without having to copy the first node setup for each polygon.
Here is a link to the (corrected) csv file: https://drive.google.com/file/d/1KLtZVi-uywQU9-l8INUDZbByLWPtH1KT/view?usp=sharing
Appreciate all the help. Thanks,
P.S. I also apologize that the geometry of these continents is not completely correct. For instance, Russia is lumped into the rest of Europe rather than being split into Asia as well. Please ignore the various errors in the geometry.

there is something wrong with data or representation - extra islands appears and it have to be additionally separated as closed polygon. so, data about one country covers all its parts


How to Make Glass Less Reflective? So I am making my first interior scene and I have made a coffee table but am struggling to make it less reflective. It looks as though it's a mirror and I just want to know how can I make it more transparent.

I believe you've most likely got your Normals flipped the wrong way. This makes the surface behave like the inside of the glass and results in an effect called Total Internal Reflection when hit by light at a shallow angle - ie, it effectively acts as a glossy surface.

The solution is to edit the glass mesh (select it and press Tab to go into Edit mode), select all (A until the whole mesh is selected), then go to Mesh/Normals/Flip Normals - or press Space and type 'Flip Normals'. Once done, press Tab to come out of Edit mode. Your glass should now behave as it should.

To demonstrate this, here's an example scene consisting of a cube sitting above a plane with a Glass shader material, with a further plane below and a large doughnut above. With the correct normal this produces the following result :

Note the subtle reflection in the glass as you would expect.

Flipping the normal (so it now points down) produces the following result :

ie, it acts as a mirror. This is a result of the Total Internal Reflection due to the rays acting as if they are hitting a surface on the inside of a block of glass.

Note that a similar effect to swapping the normals can be achieved by using an IOR of less than 1.0. ie, changing the IOR to 1/1.45 = 0.69 would produce the 'correct' result, without flipping the normals as the glass would then behave as its inverse; instead of being a 'block' of glass surrounded by air it would behave as a cavity of air within a block of glass (ie, as if its normals were pointed the ‘wrong’ way).


How do I Make a Transparency to Decal my Object? (Blender Render Only) I can't find an answer to this question. I want to make a decal and add it on top of another texture I've already applied to my object (I can redo it if necessary).

I don't have the decals yet because I still have to make them, but I don't know how. I know that the background has to have something done to it to make it transparent, and I know that Blender has to handle the file as a transparency by adjusting the alpha channel, but that's all I know.

Can someone who has the time please step me through this and make it simple to learn? Maybe an example file that I can study?

Thanks in advance.

All you have to do really is save your texture in an image format that supports transparency. Any with alpha channels should do like PNG, TGA, TIFF, or any other supported by Blender.

You can use any image editing software like GIMP, or Krita, or Photoshop to remove the background of your image and make your decal texture.

Then in Blender add a new texture to your material

Under the Properties Window > Texture Tab > Image Mapping change the Extension mode to Clipping

Under the Mapping panel Change the Coordinates type to Object and bellow pick any object in your scene to control the position of your decal.

You may create an Empty type of object specifically for this, then use it to control the position of the decal, move it about, scale it to set the size, and rotate it to match the surface normal.

Have in mind that this will only work in the rendered view, viewport preview is not supported.

Example file


Is there a way to Time Delay a Constraint (Like Slow Parent) I have a large number of objects, let's say Cube.001 to Cube.100.

I want to be able to rotate Cube.001 on the z-axis and have all the other Cubes rotate with a slight delay starting with Cube.002 and then Cube.003 etc. (much like how slow parenting works).

I've been able to iterate and child/parent all the cubes with python and enable Slow Parent, problem is when I rotate Cube.001 all the Cubes transform their location, which I don't want.

Basically I need something like the 'Copy Rotation' Constraint, but with a Slow Parent like effect. Are their any simple ways of doing this?

The Animation Nodes plugin can be used to generate objects and it has a Delay Falloff node which can transform them in sequence.

This series on youtube has an example.

Example based on link above:

Line Mesh is used to generate the locations
Object Instancer generates the cubes
Replicate Matrix generates transform matrices from the positions
Offset Matrix rotates each item, the delay falloff does them in sequence


Problem with seamlessly fitting objects together I am creating an animation where an object has to split into several parts. I used the bisect tool to separate them, and then created a face where parts got separated. However, when I make these faces, I get strange shadows and valleys in the seams that i did not get when the object was just divided (with no faces in between):

Can someone help me fix it, or do I need to go about this process in a different way?

What's going on is you need to actually separate the geometry before you add those faces.  Bisect just adds an edge loop, it doesn't actually separate the geometry.  So as far as Blender knows, those two pieces are still one surface, and then adding those faces in the middle is creating a kind of geometry that simply doesn't work; this specific problem is called "internal faces."  Internal faces should always be avoided, because 3D modeling software simply isn't built to handle such geometry; for example, creating these weird shading artifacts around the edges of the internal faces.
So, make sure you actually separate the geometry before you add those faces.  You can do this by selecting the bisecting edge loop and pressing Alt-M and choosing "Faces by Edges," or you can select all the faces on one side of the edge loop and press Y.  Both produce the same result.  You can make sure everything really is separated by hovering your cursor over one of the sections and pressing L, which selects all the geometry that is connected to that section.  If it only selects the individual section, you're good to go.  If it selects the whole thing, it still isn't separated.
After you do the separation, you'll have to create those inside faces for each piece.  Once you do this, the smooth shading will inevitably show where the cracks are; you can counter this by toggling on "Auto Smooth", which I show how to find in this screenshot.


How do I select faces in a row incrementally (as opposed to growing a selection in all directions)? I cannot find a way to select faces in a row. In MODO I can press arrow keys and the polygons are added incrementally by pressing the up arrow key. The down arrow key goes backwards and deselects it. It is really fast. Is there a way to do that in Blender?

You probably want Ctrl Shift  Numpad + Select Next Active, which, as far as possible, will use the pattern of relationship between the active element and the previously selected one to predict the next to be selected
.
So, for example, if in a face loop, you have selected two adjacent faces separately, the operation will continue to select in the same direction. If you have skipped a face, the selection will continue to skip faces, and so on. Very useful for selecting at intervals.
Ctrl Shift  Numpad - will deselect back down the sequence.


How to discover the users of an action? This blend file contains a Sphere, a Cube and a Cone.

The action CubeAction acts on the cube. In the Action Editor, it can be seen to have 2 users. So it must also act on another object, but which one, the sphere or the cone?
In this case I can just just select the sphere & cone in turn to see which one causes the Action Editor to focus on CubeAction. But what if there were many objects?
Actions don't seem to appear as a node in the outliner that I could expand to somehow see what objects they are getting applied to.
Blender 2.83.3 on Linux

You can type the name of the Action in the Outliner "Live Search" field :

In this example, "CubeAction" is attached to both Cube and Cone objects.


Is blender a good solution for making a PCB enclosure I want to make a custom PCB enclosure . I was looking at the various alternatives out there and was wondering if Blender is a good choice. Also I was planning on getting it 3d printed. However on my model I would probably need to make four holes for the screws on my board to sit into the enclosure. So what should be a good starting point considering I havent used blender extensively before. Should I move over to some other software which suits my needs better? If so could someone please point that out for me?

Blender has much more than you need to make a case model.
You have to understand Blender good before you're able to work efficiently though.
It's same with most programs suitable for this purpose though.


How do you return a hidden panel in the properties I followed a tutorial on how to hide just the outliner but the tutorial never showed how to bring it back. I can only quit Blender and restart to get it back.

Start by creating (splitting) a new area, then set its type to outliner.

Click and drag the hashed corner overlapping the area you want to shrink in order to make way for the new area.
Click the drop down on the far left of the Header of the newly created area
Select Outliner
(optional)  RMB anywhere on the header and select Header > Flip to Top.

You can read more about the interface system in the manual.


Render out a video of an animation I have been following a tutorial on YouTube that instructs how to create a wrecking ball that uses a rigid body to smash some cubes. In the video, the person who created the tutorial made an animated video of the wrecking ball. How do I do that? Please help with detailed instructions (in Blender 2.7)!

For several reasons but mostly because of the colour range provided by some of the available image formats, you always want to render your animation to an image sequence (preferably .exr in case you are doing serious work) and compile the images into a video container like .mov, .mp4 or whatever afterwards.

You can even compile the sequence using Blenders Video Sequence Editor or any other video package of your choice (depending on what you got access to) like resolve, ffmpeg or handbrake to only name a few out of hundreds of free options: Comparison of video container formats on Wikipedia.


Is there any way to animate specific vertices instead of the whole object? I'm starting to do my first form of (somewhat) major animation in blender, before I've only done things like keyframes on text extrude, object size movement, etc. I want to warp an object in a specific sort, but I've tried creating keyframes on vector positions, and it doesn't seem to work! Is there any way to animate specific vertices instead of the whole object? Thanks!

To do this you need to create shapekeys and then keyframe their influence/strength.

Shapekeys are essentially alternative shapes for you mesh that allow you to interpolate between them and the base shape of the mesh.

see the blender manual for more details


How to define the diameter to a certain size I have made a 3d curved cylinder in blender, Inlet diameter of cylinder is certain size, say: 25 meters and outlet diameter of cylinder is say: 7 meters, I want resize or define inlet dia to 0.95 mm and outlet diameter to 0.75 mm,
is it possible to do it in Blender?

Using curve objects in blender you can set the size of the extruded shell that follows the curve and also adjust it along the path as desired.

There are two ways to turn a curve into a tube. For a quick circular bevel, just set the bevel depth and resolution for the curve, you will also want the fill to be set to full. The other way is to use another curve object to define the outer shape of the bevel.

The bevel depth is radius in blender units of the extrusion. If you use a bevel object then the size of the object used will determine the size of the extrusion.

Each point on a curve has a Radius property. At 1.0 the extrusion will match the bevel size set at that point. Other values will reduce or increase the size, so a point having a radius of 0.25 will be 1/4 the size of the main "pipe".

You can find the radius property in the properties sidebar T under Transform while editing a curve. You can also use ⎇ AltS to change the size interactively. A linear falloff is used between each points radius.

So once you set the main size in the bevel size, to adjust the size of specific points you will need to do a little calculation which can be done while entering the value to use. For example if you have the main bevel set to 0.95 and want 0.75 at a given point, in the radius enter .75/.95 and it will calculate the radius of .789 that you want.


How to set up shape key driver in 2.80? So I have this character animation with a shape key that flattens and unflattens his hat:

(in glorious technicolor here)

It looks good. But the shape key is mucking up all my other Actions now. It is an omnipresent key. I heard that this can be fixed by keying a shape key driver instead of the shape key directly. So I set out to do this. Unfortunately, I hit a nasty bug where my driver says "Mute" as soon as it is created, and I don't know how to get around that. It is possible that I am not using the correct settings, but I was following the official documentation as closely as possible. When I try to set local rotation as the determining factor, I cannot get any result at all. When I try to do local translation as the determining factor, the shape key is "mute"ed from the moment his hat is scrunched (that is, it becomes instantly un-scrunched) to the moment his hat pops back up again (another pop-in transition); The shape key is being muted and it is preventing me from having any idea what I should be doing. Can anyone help me?

I made a painful recording of my struggle here.

IMPORTANT NOTE: This character is going to be exported into Unity so I can't use modifiers that will not export to FBX.

The problem was that I was setting a driver for the MUTE property of the shape key, not the VALUE property. In order to set a driver for the VALUE, right click the value and you will see an option to add a driver.

I was convinced yesterday that it was not possible to right-click the VALUE (as of 2.80) and see an option to add a driver, that I had to right-click the checkbox instead. This was a mistake. Thank you to everyone (@Edgel3D) who tried to help. The problem is now solved.


How to apply Cycles modifier in Graph Editor? Let's say That I need to repeat current keyframes 20 times (it is not a "static" loop, as You can see: there is an offset! (NLA won't work in that case)) and in 20'th copy of the keyframes I would like to change something. So I need to apply the modifier.

It is important becouse I want to export the animation to external programs, so I can not leave this with active modifier: I need real keyframes.

Second thing: I know that there is a "Bake Action" option, but I don't want to generate different keyframes that the only ones that I really need.

So is there any way to apply the "Cycles" modifier in Graph Editor ??? Or do I really need to copy and place keyframes by myself?

What you're looking for is keyframe baking, which does exist. There are two baking operators on animation curves: bake curve and bake action. What you want to use is bake action. They are both terrible operations, in my opinion, but they get the basic job done... I will explain why later.

Select the object or bone in question and take note of the distance between your cycled keyframes (in my example I used 22). Make sure your curves are editable and do a spacebar search for "bake action." This will pop up an option window.

Set your start and end frames accordingly, then change the frame step to the distance between your keyframes (22 here). Click OK and your action will be baked. If you leave "Overwrite current action" unchecked, it will automatically add and activate a new action for the object/bone. This is basically what you're asking for, but here are some snafus:

Tangents are destroyed

This is my biggest pet peeve of this operation. So you spent some time scaling your tangents to get the right kind of curve and cycled it. Great, now you want to edit the positions of some of those keys. Well, too bad, because baking destroys tangents. It will automatically set tangent types to automatic. Again, this totally destroys your work and takes control away from the artist. The only case where this is OK is when all your tangents are completely flat and automatically weighted. Then all you have to do is select all, change pivots to individual centers and scale to 0 on Y. It's a terrible solution.

All channels are baked simultaneously

This would be fine if you're doing pose-to-pose keying, where all keys are aligned to the same frames, but totally useless if you have offset curves.

Automatically cleans keys

Automatically cleaning keys is bad because you want keys on each bake step, so this is not expected or appropriate behavior.

"Bake curve" locks curve from all editing

Obviously locking the curve is out of the question.

You should try both baking operations to see for yourself what they do. They're pretty nasty if you ask me. Unfortunately, these are the only two options I could find.


When should I use different tracker motion models when motion tracking? I'm trying to get into motion tracking but don't know when to use different tracker motion models, or if it makes a difference in the outcome of the track. Could someone please explain, or link me to a video explaining, when to use each model?

The Motion Model switch tells the motion solver for which motion it should look (Blender Documentation). You kind of need to think backwards here. For every camera movement you want to track - which transformation does this cause to the projected image on the sensor which the tracker actualy sees.
Each additional dimension you tell the tracker to look for, the longer it needs to compute
Depending on the implementation (sorry I didn't test it) the more markers you need in theory. For translation you only need 1 for rotation and scale at least 2.

If you enable "Location only" it will only look for changes in translation. For example if you dolly your camera parallel to a wall and want to track something on the wall, you don't need to look for any rotation or scale changes.

For each of the settings you enable different dimensions of movement for the tracker to look for.

Loc, Rot are pretty self explanatory. Use them when your camera keeps exactly parallel to the surface you want to track. Or other way around if you only move and scale things on a surface relative to your Camera.

If your camera is parallel to the surface and you also want to track for zoom you need to enable Scale.

"Affine"-transformation results in shearing of the image. So this settings enables the tracker to approximate perspective.

Lastly Perspective tracking enables the tracker to properly track in all dimensions. Use this for free camera movement.


Overlap unwrapped texture with transparent image I'm working on a briefcase and want to make it look like a thread has been woven into it. However the only result I can get is based on the already unwrapped texture. How do I simply overlay, and create essentially another uv unwrap? See pictures for details and result im trying to achieve.

Setup

Texture for the leather

Result I'm trying to get

The problem, this happens when I texture paint 1 line on one side.

If I understand your problem, you want to create a second UV map because by now a single stroke creates multiple strokes on your texture. This can be done in the vertex tab, clicking the plus icon in the UV panel and re-unwrapping with the new UV selected. Don't forget to add an UV input node for every material you have, to indicate which UV map to use in that material and avoid unexpected projections.


Copy bone transform question What i'm trying to do is to duplicate whole armature and add Copy Transform to each bone on duplicate. Basically i want arm from armature duplicate to have Copy Transform constraint with target on arm from original armature.

Now this isnt hard to do. You just make duplicate, select armature copy,fire up pose mode and then go from bone to bone and add Copy Transform constraint.

Unfortunately armature is kinda complicated and have around 80 bones which makes this process rather long and tedious.
I'm kinda noob when it comes to scripting so is there any faster way to achieve this?
Some sort of magic or am i asking for a miracle?

You will require two armature, one to copy the transformations from and one to copy the transformations to. I have named my armature respectively Armature1 and Armature2.

We can access them through the objects collection inbpy.data.

armatureFrom = bpy.data.objects['Armature1']
armatureTo = bpy.data.objects['Armature2']

Looping through lists or collections in python is done with a for loop. The pose bones (which can have constraints are fields of the armature's pose property.

for boneTo in armatureTo.pose.bones:

We can check for a corresponding bone in the armatureFrom with the Blender API's get() method, which works on all blender collections.

boneFrom = armatureFrom.pose.bones.get(boneTo.name)
if boneFrom == None:
    continue

If you want to remove all constraints from the target bone you can loop through them and remove them with the remove() method.

for con in boneTo.constraints:
    boneTo.constraints.remove(con)

By hovering your mouse over Blender properties you can get their python tooltips. I did so with an existing copy transforms constraint and could find the names of the fields which we need to assign.

copy_con = boneTo.constraints.new('COPY_TRANSFORMS')
copy_con.target = armatureFrom
copy_con.subtarget = boneFrom.name
copy_con.target_space = 'POSE'
copy_con.owner_space = 'POSE'

The completed script is here. Paste it in a text editor area in Blender and press Run Script to run it. Make sure you replace the names of the armatures with the names of armatures present in your file. Also backup your work. There are some destructive thing going on, like removing all constraints.

import bpy

armatureFrom = bpy.data.objects['Armature1']
armatureTo = bpy.data.objects['Armature2']

for boneTo in armatureTo.pose.bones:
    boneFrom = armatureFrom.pose.bones.get(boneTo.name)
    if boneFrom == None:
        continue

    for con in boneTo.constraints:
        boneTo.constraints.remove(con)

    copy_con = boneTo.constraints.new('COPY_TRANSFORMS')
    copy_con.target = armatureFrom
    copy_con.subtarget = boneFrom.name
    copy_con.target_space = 'POSE'
    copy_con.owner_space = 'POSE'


Can I select every object in the scene that is touching the active object? While in object mode, I would like to be able to select all the other objects in the scene that are touching or intersecting a given object. For example, if the active object was Suzanne, this hot key or technique would select all the yellow cubes in the scene instantly.

Is there such a technique? I know in this example it would be easy to select all the yellow cubes by hand, but in a more complex scene this becomes an issue.

Thanks for your help!

An addon to do that:

For 2.79:

It uses a BVH tree to check if meshes are overlapping. BVH trees are built from boundings at first step (presuming boundings are a box) then with bmesh (for the intersecting bounding objects).

Important though: the overlapping test will fail if meshes do not intersect. For instance a mesh which is entirely inside the active one will not be detected.

For information: using bmesh.transform to obtain object's coordinates in world is mush faster than a Python calculation.

bl_info = {
    "name": "Select intersect active",
    "category": "Object",
}

import bpy
from mathutils import Vector
from mathutils.bvhtree import BVHTree
import bmesh
import time

#In this context, utility/debug function to check if bounding test are ok
def BoundingsToMesh( obj, scene ):
    name = obj.name + "_bounds"
    meshData = bpy.data.meshes.new( name )
    meshObj = bpy.data.objects.new( name, meshData )
    meshObj.matrix_world = obj.matrix_world.copy()

    meshObj.data.from_pydata( *BoundingsGeometry( obj ) )

    scene.objects.link( meshObj )

    return meshObj

#Create bounding geometry from an object
def BoundingsGeometry( obj ):
    verts = [Vector(co) for co in obj.bound_box]
    edges = []
    faces = [ (0,1,2,3), (4,5,1,0), (7,6,5,4), (3,2,6,7), (6,2,1,5), (7,4,0,3) ]
    return verts, edges, faces

#Translates bounding geometry in world coordinates
def BoundingsGeometryInWorld( obj ):
    verts, edges, faces = BoundingsGeometry( obj )
    return [obj.matrix_world * v for v in verts], edges, faces

#Get vertices and polygons from an object in world coordinates
def MeshGeometryInWorld( obj ):
    return [obj.matrix_world * v.co for v in obj.data.vertices], [], [p.vertices for p in obj.data.polygons]

#Create a BVH tree from bounding (world co)
def BVHFromBoundings( obj ):
    verts, edges, faces = BoundingsGeometryInWorld( obj )
    return BVHTree.FromPolygons( verts, faces )

#Create a BVH tree from mesh (world co)
def BVHFromMesh( obj ):
    verts, edges, faces = MeshGeometryInWorld( obj )
    return BVHTree.FromPolygons( verts, faces )

#Create a BVH tree from bmesh (world co)
def BVHFromBMesh( obj ):
    bm = bmesh.new()
    bm.from_mesh( obj.data )
    bm.transform( obj.matrix_world )
    result = BVHTree.FromBMesh( bm )
    del bm
    return result

#Test if a bvh tree overlap an object
def IntersectBVHObj( bvh, obj, toBvh ):
    objBvh = toBvh( obj )
    result = bvh.overlap( objBvh )
    del objBvh
    return result

#Test if two objects overlap
def IntersectObjObj( obj, others, toBvh ):
    objBvh = toBvh( obj )
    result = [other for other in others if IntersectBVHObj( objBvh, other, toBvh )]
    del objBvh
    return result

#Test if two objects overlap using boundings method
def IntersectBoundings( obj, others ):
    return IntersectObjObj( obj, others, BVHFromBoundings )

#Test if two objects overlap using mesh method
def IntersectMesh( obj, others ):
    return IntersectObjObj( obj, others, BVHFromMesh )

#Test if two objects overlap using bmesh method
def IntersectBMesh( obj, others ):
    return IntersectObjObj( obj, others, BVHFromBMesh )

#Select objects which overlap another one
def SelectIntersect( obj, scene, others, intersectBounding ):
    result = IntersectBoundings( obj, others )

    if intersectBounding == False:
        #startTime = time.time()
        #for i in range( 1000 ):
            result = IntersectBMesh( obj, result )
        #print( "elapsed", time.time() - startTime )

    for o in result:
        o.select = True

class SelectIntersectActive(bpy.types.Operator):
    bl_idname = "object.select_intersect_active"
    bl_label = "Select intersect active"
    bl_options = {'REGISTER', 'UNDO'}

    intersectBounding = bpy.props.BoolProperty(name="Intersect bounding", default=False)

    @classmethod
    def poll(cls, context):
        scene = context.scene
        obj = scene.objects.active
        return obj and obj.type == 'MESH' and obj.mode == 'OBJECT'

    def execute(self, context):
        scene = context.scene
        obj = scene.objects.active

        #Keep only non selected objects (cumulative selection)
        SelectIntersect( obj, scene, [o for o in scene.objects if o.select == False and o != obj], self.intersectBounding )

        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(SelectIntersectActive.bl_idname)

def register():
    bpy.utils.register_class(SelectIntersectActive)
    bpy.types.VIEW3D_MT_select_object.append(menu_func)

def unregister():
    bpy.utils.unregister_class(ObjectCursorArray)
    bpy.types.VIEW3D_MT_select_object.remove(menu_func)

if __name__ == "__main__":
    register()

Update for 2.8:

bl_info = {
    "name": "Select intersect active",
    "category": "Object",
}

import bpy
from mathutils import Vector
from mathutils.bvhtree import BVHTree
import bmesh
import time

#In this context, utility/debug function to check if bounding test are ok
def BoundingsToMesh( obj, scene ):
    name = obj.name + "_bounds"
    meshData = bpy.data.meshes.new( name )
    meshObj = bpy.data.objects.new( name, meshData )
    meshObj.matrix_world = obj.matrix_world.copy()

    meshObj.data.from_pydata( *BoundingsGeometry( obj ) )

    scene.objects.link( meshObj )

    return meshObj

#Create bounding geometry from an object
def BoundingsGeometry( obj ):
    verts = [Vector(co) for co in obj.bound_box]
    edges = []
    faces = [ (0,1,2,3), (4,5,1,0), (7,6,5,4), (3,2,6,7), (6,2,1,5), (7,4,0,3) ]
    return verts, edges, faces

#Translates bounding geometry in world coordinates
def BoundingsGeometryInWorld( obj ):
    verts, edges, faces = BoundingsGeometry( obj )
    return [obj.matrix_world @ v for v in verts], edges, faces

#Get vertices and polygons from an object in world coordinates
def MeshGeometryInWorld( obj ):
    return [obj.matrix_world @ v.co for v in obj.data.vertices], [], [p.vertices for p in obj.data.polygons]

#Create a BVH tree from bounding (world co)
def BVHFromBoundings( obj ):
    verts, edges, faces = BoundingsGeometryInWorld( obj )
    return BVHTree.FromPolygons( verts, faces )

#Create a BVH tree from mesh (world co)
def BVHFromMesh( obj ):
    verts, edges, faces = MeshGeometryInWorld( obj )
    return BVHTree.FromPolygons( verts, faces )

#Create a BVH tree from bmesh (world co)
def BVHFromBMesh( obj ):
    bm = bmesh.new()
    bm.from_mesh( obj.data )
    bm.transform( obj.matrix_world )
    result = BVHTree.FromBMesh( bm )
    del bm
    return result

#Test if a bvh tree overlap an object
def IntersectBVHObj( bvh, obj, toBvh ):
    objBvh = toBvh( obj )
    result = bvh.overlap( objBvh )
    del objBvh
    return result

#Test if two objects overlap
def IntersectObjObj( obj, others, toBvh ):
    objBvh = toBvh( obj )
    result = [other for other in others if IntersectBVHObj( objBvh, other, toBvh )]
    del objBvh
    return result

#Test if two objects overlap using boundings method
def IntersectBoundings( obj, others ):
    return IntersectObjObj( obj, others, BVHFromBoundings )

#Test if two objects overlap using mesh method
def IntersectMesh( obj, others ):
    return IntersectObjObj( obj, others, BVHFromMesh )

#Test if two objects overlap using bmesh method
def IntersectBMesh( obj, others ):
    return IntersectObjObj( obj, others, BVHFromBMesh )

#Select objects which overlap another one
def SelectIntersect( obj, scene, others, intersectBounding ):
    result = IntersectBoundings( obj, others )

    if intersectBounding == False:
        #startTime = time.time()
        #for i in range( 1000 ):
            result = IntersectBMesh( obj, result )
        #print( "elapsed", time.time() - startTime )

    for o in result:
        o.select_set( True )

class SelectIntersectActive(bpy.types.Operator):
    bl_idname = "object.select_intersect_active"
    bl_label = "Select intersect active"
    bl_options = {'REGISTER', 'UNDO'}

    intersectBounding = bpy.props.BoolProperty(name="Intersect bounding", default=False)

    @classmethod
    def poll(cls, context):
        scene = context.scene
        obj = context.active_object
        return obj and obj.type == 'MESH' and obj.mode == 'OBJECT'

    def execute(self, context):
        scene = context.scene
        obj = context.active_object

        #Keep only non selected objects (cumulative selection)
        SelectIntersect( obj, scene, [o for o in scene.objects if o.select_get() == False and o != obj], self.intersectBounding )

        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(SelectIntersectActive.bl_idname)

def register():
    bpy.utils.register_class(SelectIntersectActive)
    bpy.types.VIEW3D_MT_select_object.append(menu_func)

def unregister():
    bpy.utils.unregister_class(ObjectCursorArray)
    bpy.types.VIEW3D_MT_select_object.remove(menu_func)

if __name__ == "__main__":
    register()


how to generate more "gusts" of wind with the wind force field? the noise amount is on max but i'm still not able to get the quick short random bursts of wind i'm looking for. is there a way to increase this amount or a better way of achieving this?

Maybe you've already thought about that but you could simply keyframe the Strength value of your wind, going, for example, from 100 to 1000 or whatever, then use the NLA to repeat this as a cycle. It looks like creating a Noise modifier in the Graph Editor doesn't have any influence though...


Tips for anime style swift movement and teleportion effects for blender 2.9 I'm trying to figure out how to do anime style swift movements or teleportation like effects but what I do have is either laggy as all hell or effects the background and other objects. I would rather it be in real time, would like to avoid compositing, but if it's the only way then fine. Also, the effect has to effect a single character, nothing around them, unless the other character is moving too. Also, I would like the effect to be flexible, so I can make variants or use it on a single body part.
I’m currently using 2.91 and the eevee. Pictures or videos would be really helpful.

You can try to use KeyMesh which is an addon that will create frame to frame animation (model your speed lines, duplicate, deform, etc..)
Or you can try another 2D approach using grease pencil by following this tutorial>>
which basically shows you how to apply grease pencil over a specific layer. You'd create your character's "smeared" colors and then animate as the video shows.


Bake a texture from a geometric property of the faces in a mesh? I'd like to be able to generate a Black and White texture using the distance the distance each face is from a specific point, scaled between zero and one (i.e. the closest face is a value of one, while the farthest face is a value of zero, while all other faces are linearly interpolated). The calculation for each face is easy enough to do using python, but is there a built in method of applying these values to a texture? Like a face-by-face texture bake?

This script will generate a vertex color map, where each face's color is represented by a grayscale value matching the normalized distance of that face's center from the cursor, inverted (closer is brighter, farther is darker).

You can run this, then bake the vertex color to a texture file to get the image texture based on the distance. You can of course also use another object instead of the 3D cursor as your distance reference.

import bpy

o = bpy.context.object
d = o.data

if not d.vertex_colors:
    d.vertex_colors.new()

color_layer = d.vertex_colors["Col"]
curloc = bpy.context.scene.cursor_location

distances = [ ( p.center - curloc ).length for p in d.polygons ]

# Normalize distances
normalize      = lambda x, minX, maxX: round( ( x - minX ) / ( maxX - minX ), 2 )
minD, maxD     = min( distances ), max( distances )
distNormalized = [ 1 - normalize( v, minD, maxD ) for v in distances ]

for i, poly in enumerate( d.polygons ):
    for li in poly.loop_indices:
        color_layer.data[li].color = [ distNormalized[i] for c in 'rgb' ]


I can only find two formats in import/export I can only find two formats in import/export: Collada & Alembic.

I've checked the add-ons; all the add-ons like fbx, obj (wavefront) are turned on but still not showing in the import/export box. How do I get them to show up?

I just had this issue, to fix it I had to uncheck "Filter Add-ons" under the first tab in the outliner.

Maybe its the answer but could be something else, hope this helps.


Re-Import obj and replace existing I have an obj created from Qubicle Constructor.  I am able to import this into Blender just fine.  The workflow I want is modeling in Qubicle and animation in Blender.  I then try and make changes to my model and export again and then import again into blender but I get suplicate objects in my blender scene.

Example, on the first import I may have a mesh called "Calf_Left", after re-import I get "Calf_Left.001".  Is there a way to get this worklow to not create duplicate meshes and instead just replace whats there if if finds one with the same name?

You could import your externally created models into separate .blend files and link them into a master .blend file containing the scene instead of directly importing them. This way the linked files can be refreshed.

The basic idea:

I uploaded a working sample here

WARNING: The script should not be started from your scene file it first deletes all content. You would need to invoke it from command line see:
Put the following command in a batch file conv.bat

"C:\Program Files\Blender Foundation\Blender\blender.exe"  --background --python batch_convert.py
pause

Save the python script in batch_convert.py

import os
import bpy

# put the location to the folder where the objs are located here in this fashion
path_to_obj_dir = os.path.join('C:\\', 'OBJ')

# get list of all files in directory
file_list = os.listdir(path_to_obj_dir)

# get a list of files ending in 'obj'
obj_list = [item for item in file_list if item[-3:] == 'obj']

# loop through the strings in obj_list
for item in obj_list:
    # select all object
    bpy.ops.object.select_all(action='SELECT')
    # delete selected
    bpy.ops.object.delete(use_global=True)
    # import obj
    path_to_import = os.path.join(path_to_obj_dir, item)
    bpy.ops.import_scene.obj(filepath = path_to_import)
    # rename
    for obj in bpy.context.selected_objects:
        obj.name = item[:-4]
        print(dir(obj))

    # write blend
    path_to_export = os.path.join(path_to_obj_dir, item[:-4] + ".blend")
    print(path_to_export)
    bpy.ops.wm.save_as_mainfile(filepath=path_to_export, check_existing=False )

After exporting an .obj you would only run the batch file and the linked .blend files will be updated.

Related:

How do I reload a linked blender file?
Video Tutorial on appending and linking
Wiki Linked_Libraries


How to align an object so one of its faces are axis-aligned? (make an object upright for eg) I'm considering adding a feature to the 3d-printing tools, or to the Transform menu -- whichever is more appropriate.

Background: When 3d printing, one often must rotate an object so some face(s) lie flat on the xy plane, so it'll print flat.

Present method (which works, but is a lot of steps):

Select the desired face (in edit mode)
Shift+Numpad7 to view it from its local Top
Go to Object mode and add an Empty
Check Align to view (so the empty is aligned to the top-down view of the face)
Parent the object to the empty (empty becomes parent)
Select the empty and clear its rotation (Alt+R)
Select and unparent (Alt+P) the object, using Keep transformation
Success!

Desired methods:
A. Rotating the mesh in edit mode might be satisfactory, so:

Select face
Hit button (Make Face Bottom?) in 3d-Printing tools, which rotates the whole mesh so that face aims down.

Note: Sometimes someone may want to align so this is the top or side face, so the button might be better as: Align object to face, followed by a tool option which allows a selection of: "Top, bottom, left, right"

B. Rotating the object itself might also be desired by some, instead:

Select face
Shift+7 to view from face's "top"
Go to object mode
In the transform menu, select Align object view-rotation.  Tooltip: Rotates object to align the current view's rotation with an axis.(Or something more clear).
Tool-options allow overriding default of -Z with: Z-, Z+, Y-, Y+, X-, X+

Note: Tool-options may also allow a pulldown of the available Transform orientations, defaulting to global.

The easiest and fastest implementation might be a python addition to the 3d-printing tools, but I believe it worthwhile to consider the usefulness of this feature in normal modeling, and therefore its addition to the transform menu -- this has the secondary positive effect of it working on the object instead of the mesh, thereby retaining the object's local transform orientation.

Advice, suggestions, questions, or assistance are all welcome.

Blender doesn't have a tool built-in to perform this operation currently.

If you would write your own tool,
a method you can use to achieve this using Python.

Define the source vector (face normal in this case).
Define the destination vector (the axis vector).
Use the rotation between these vectors to define a 3D rotation(see Vector.rotation_difference).
Then rotate your object by this.

This example uses the normal of the first face, assumes object

import bpy
from mathutils import Matrix, Vector

obj = bpy.context.object
matrix_orig = obj.matrix_world.copy()

# for this example just pick the first face.
axis_src = matrix_orig.to_3x3() * obj.data.polygons[0].normal
# z-axis, could be any direction
axis_dst = Vector((0, 0, 1))

matrix_rotate = matrix_orig.to_3x3()
matrix_rotate = matrix_rotate * axis_src.rotation_difference(axis_dst).to_matrix()
matrix_translation = Matrix.Translation(matrix_orig.to_translation())

obj.matrix_world = matrix_translation * matrix_rotate.to_4x4()


How to apply rigid body animation to frame 1 in Blender 2.81 I am trying to create a Pool Game animation. I have managed to create this so far - Animation
I am using rigid body physics to simulate the game and animating the cue ball. I has worked well, but after I try to animate the cue ball for the 3rd time, the entire set of balls is messed up and rigid body simulation does not give the same result as the last frame of my finished animation.

Is there a way to reset the world, apply the transforms to all the balls from simulation at frame 1 and start animating the cue ball for every shot?

Is there any other way to finish this animation and pot all the balls?

Found a solution after searching for hours-

https://blenderartists.org/t/locking-down-freezing-rigid-body-positions-after-sim/591104/10?u=bharat_justa


how does one install "audioanalyse0.1.1" module in blender? hello im doing a little project I try to analyse sound from a mic. in the bge. I whant to use numpy pyaudio and audioanalyse. the first two are pretty simple. I have some difficulties trieing to install audio analyse. Does someone kniw how to install it and what version of python to use?

cheers, tim

Assuming you mean Audio Analysis v1.1.0 this script was developed for Blender 2.43 (around 2007) and is unlikely to work with the latest releases.

Meanwhile there was an addon Import_Movement_From_Audio_File which could be a better starting point. Unfortunatly it seems that it has been removed from the current distribution (the documentation refers to 2.64.9).

You could get an older Blender version from here.


Creases caused by internal faces (The title reflects the fact that this issue has been fixed. This makes it easier for others to search, I think.)

I have a mesh with unusual creases on both arms and one under the head. This pervades all of my models across multiple versions of Blender. This is version 2.77a.

1: Edit mode is shown. Original vertices are shown.
2: Object mode is shown. Smooth shading is off.
3: I removed all double vertices, which removed no vertices because I had no doubles.
4: I made all normals face outwards, but it isn't the cause.
5: Don't make me triangulate the mesh because it's no good.
6: Don't tell me to use edge split with subsurface. It separates the mesh on the odd boundaries.

Everything is made with quadrilaterals only. Changing the shading from smooth to flat or vice versa on faces/edges/vertices has no effect. Triangulating the mesh only produces stranger subsurface results. There are no marked seams and I cleared them anyway. All normals face outward.

I've visited these places without success: http://feeblemind.tuxfamily.org/blog/index.php?post/2007/08/13/88-how-to-solve-blenders-smoothing-problems, How to smooth shade an object while retaining hard edges?, Keep sharp edges when using subdivision surface, https://blender.stackexchange.com/questions/38828/shading-normals-problem, Weird smooth shading.

This issue is caused by having extra edges or faces between contiguous edges or faces in a mesh. In this case, I had extra faces where I extruded off of quad faces.

An example of extra edges is shown, where the orange line is an extra edge because it doesn't contribute to the face data. Edges that don't cross faces and don't contribute to face data will cause the subsurface modifier to have issues, since it checks edges and faces without regard to their usefulness.

(Answered originally by Denis)


Why is my finger deforming so weirdly and not following the bones? I have copy rotation from the parent bones, and when I rotate the first bone of one finger, the bones don't follow along 100%, and the mesh deforms horribly.

I think it's something with weight paint, but I can't figure out why this is happening. I've attached the blend file.

Any help appreciated!

To solve this:

Select your armature in Object Mode
Hit Ctrl+A and Apply Location
Select your mesh then keep holding Shift and select your armature
Hit Ctrl+P and Parent with Automatic Weighting

This will fix your problem as shown below:

Updated .blend file can be found here:


TIP: How to find total number of unique objects among many instances Is there a way to know how many unique objects (with unique mesh data) are in a Blender scene when you have a lot of instances of different objects? For example, if you have a scene with 500 instances of a cube, and 200 instances of a sphere, how would you know that you only had 2 unique objects? Is this number shown somewhere?

Yes, there are two ways to do this! Blender refers to the number of unique objects as "Meshes", so you can find the number of unique meshes present in your scene within the Outliner panel. The first way is to set the Outliner to "Blender File" (highlighted in cyan color below). The number of unique Mesh IDs is shown as a tiny number beside the Meshes symbol. This is the total number of non-instanced meshes in your scene. On the other hand, the total number of objects (including instanced meshes) is shown as a tiny number beside the Objects symbol. In the sample image below, there are only 2 unique meshes in the scene, but a total of 4 objects, since the cube is instanced 3 times. This question had puzzled me until now, I hope the info helps someone else too. :-)
EDIT: Unfortunately, if you have more than 99 objects in your scene, the tiny number will only say "+99", so it's still not terribly useful to determine the total number of objects in your scene. In this case, you should switch the Outliner to "Data API" mode (shown in cyan color below). From here, you can see a numerical value for the total number of unique meshes even if it exceeds 99.


The active textures don't get recognized as keyframes I'm trying to animate a character's eyes using the F-Curve, I basically want to switch between textures in the animation. The problem is: whether I right click -> Insert Keyframe, or I use "i", or manually edit the curve, the changes I do to the active textures don't get stored in keyframes, if I toggle an active texture and press "i" it doesn't change anything. When I go back to a keyframe where I should have inserted a modify the state of the active textures stay the same. How can I fix this?

As suggested by @Gilderman, you have keyframed the Active Texture Index, hence the texture box being yellow, rather than the Use Textures checkbox.  Only add single keyframe otherwise you will end up with an fcurve for all texture slots, used or not.

The index on the fcurve, which is shown on fcurve editor,  "[1] Use Textures" indicates which slot, starting from zero, the texture is in.

The "Active Texture Index" is more of a UI thing as it indicates which texture details to display on the panel, by setting the active_texture_index of the material.

My suggestion would be to add a custom property for eyes open / closed and then drive the use_texture with this.


Auxetic Foam Cell Structure I want to create a Auxetic Foam Cell Structure with this technique:
Create a sphere in sphere (with boolean diffrence)
Generate particles with add particles and replace with mesh sphere in sphere
for grid distribution la morphologie est obtenu de cette forme
Note: The interference between spheres with holes is equal to the thickness of spheres.

But, if i want the distribution of meshes (sphere in sphere) to be random (50 spheres), how can i do that?
Ex:

http://pasteall.org/blend/index.php?id=50818

add Cube
use addon “Destructability Editor” or official “Cell Fracture” to crack cube into Voronoi shards

Join all shards Ctrl+J
in edit mode - “Remove Doubles” (W)
select all outer faces and choose delete "Edges"
than delete “Only Faces”

add Modifiers - Smooth (here with Factor 2)

Switch to "Edge" select
Select "Random" from menu like 20-50% and delete selection

Subdivide (W) like 2-4

This created net you can render by adding "Skin" modifier, but its very heavy for calculation, so I used here to add Mball to the scene and add Particle system to the net with "Render" > "Object" > "Mball".

Probably would be good to know the purpose of your needs. In some cases could be enough and probably looking better simple Volumetric material with texture type Voronoi or Musgrave.

Under Properties > Render > Geometry > Volume Sampling > Step size decrease value to something like 0.0100. In Blender 2.79 are some changes on Volume Shader, I don't know how to colorised foam to get the same result.


Storing a general python object in a Blender scene I need to store a KDTree in my scene, preferably attached to a specific Blender object.  When storing standard Blender types associated with objects, I use

my_ob["my list"] = my_list

but a KDTree is not a primitive type, and I get the error "TypeError: only floats, ints and dicts are allowed in ID property arrays".

How can I store my KDTree so that I don't have to regenerate it many times over?  This is for an addon, so I don't want to have to save a local file and reload.

Thanks.

For these cases you can use pickle and base64 to string.
But be aware that you need to use cKDTree according to https://stackoverflow.com/questions/37722991/unable-to-pickle-scipy-spatial-kdtree-objects

import pickle
import base64

# store kdtree
def _set_kdtree_for_object(my_obj, my_kdtree):
    pickled_kdtree = pickle.dumps(my_kdtree)
    # pickled_kdtree is binary convert it to a string
    base64encoded = base64.b64decode(pickled_kdtree).decode('utf-8')
    my_obj['my_list'] = base64encoded

# read back
def _get_kdtree_for_object(my_obj):
    base64encoded = my_obj['my_list']
    pickled_kdtree = base64.b64encode(base64encoded.encode('utf-8'))
    my_kdtree = pickle.loads(pickled_kdtree)
    return my_kdtree

Be aware that exceptions may happen due to different pickle implementations when python is updated in blender.

Depending on the usecase you could also use a global store on object name. This will not store the kdtree in your blend file, but you need to be able to recreate the kdtree when it is not available. This solves issues of python updates.

kdtree_lookup = {}

def _get_or_rebuild_kdtree_for_object(obj):
    global kdtree_lookup
    result = kdtree_lookup.get(obj)
    if result is None:
        # rebuild the kdtree
        ...
        # store it
        kdtree_lookup[obj] = result
    return result

You could also rebuild the kdtree's after loading of the blendfile using an handler.


Why the render result is different With the subsurface modifier i made the model. In the 3D view it look good

In the preview render also looks good Shift+Z

But when i click F12 start render i get this unsubsurface result

May i know the reason why the result is different. I copy the only the model  in a new file and render same result. Any suggestion or help. Thanks

Click on the camera icon of your Subdivision Surface modifier


Why are my SVG imports so small? I'm definitely a newbie with blender still, as I've dipped my toe in a bit being a video editor.  My issue is importing .svg saved from illustrator.  Just simple vectors with not too many paths.  Just a thick text company logo.  I want to bring in and extrude, light, etc.  I've done it before in older versions of blender with no problem.  Am I not doing something right? Can someone tell me how to get an eps saved as an svg from illustrator to size correctly?

The Grid Plane in Blender by default is 1m X 1m for every square. When you make a Vector drawing usually your Vector Editor (Illustrator / Inkscape) will be set to something standard like A4 or A3. The longest side of an A4 is about 30 cm. (one third of a meter), an svg the size of A4 would look like this in your Vector Editor.

Imported in Blender that looks like this:

SVG drawings are based on Scalar values, but when you use Vector graphics in a layout program or import into something like Blender the program needs to know what kind of world-dimensions the shape has. It's either pixels, cm, inches, meters, etc.

In Illustrator

You might have a tick-box checked to make your .svg export 'responsive'. From what I read this will omit any width / height / units information -- it assumes you want to use the .svg on the web or something. For more insight about how Illustrator saves / exports .svg files I recommend their built-in manual or support site.

In Blender

currently when the default SVG importer (io_curve_svg) encounters an .svg which has no dimensions or 'SVGUnits' it will treat the coordinates the same as it would if you had set the units to pixels in your Vector Editor.


Accessing Point Data of an Animated Bezier Curve Through Python API I am currently working on the rig for a simple robotic character. This character has tube-like arms which bend and deform smoothly using the curve modifier. This works great, but I had to figure out a way to keep the robot's hands attached to the right point at the end of the arm and to stay perpendicular to the arm path. I wrote a python driver to accomplish this which yielded great results as seen here.

However, the problem is that as far as I can tell Blender only updates the coordinates of Bezier Curve Handles when in edit mode, which means as soon as I attempt to animate the limb using shape-keys the hand is frozen at the last edit mode point regardless of driver dependency updates.. You can see the value I am using for the driver not changing during animation here.

So my question is essentially, where can I get the animated spline data used for object mode? If this is impossible, what are my options.

Thanks

Could you perhaps solve your problem by using Hooks?

Edit the curve
select the endpoint you want controlled by the empty.
Ctrl-h and Hook to New Object

Now moving the freshly-created empty drags the curve control point around.

It is also possible to hook the control points to bones in an armature, or maybe just select the hand and the curve and hook the control point to the hand object.


Get object data for previous frame in driver? In blender drivers, you can access a property value on the current frame through a var. How can a value on a past/previous frame be accessed?

In a scene with an animated plane (along x-axis), and a Cube with a driver added to z-rotation the following python snippet produces the same value as the default var in the driver. Where the evaluate function takes the frame as parameter.

import bpy

for fcurve in bpy.data.objects['Cube'].animation_data.drivers:
    print(fcurve.evaluate(54))


Objects over curved surface I'm using a template that has a curved mesh (I think), as a background. Like the following image:

My problem is that because of the curvature, objects that farther away are cut in half, and I don't want this to happen, shown in the next image:

View from below

I didn't do and do not know how to make that curved mesh, is there a a way that I could make the curvature less soft, or create a new mesh that won't cut the objects?

P.S: I'm a complete noob in blender so please don't get mad if it is supper easy to fix or another reason.

The simplest way to recreate the mesh:
(in Blender 2.8)

1) Add a cube (Add->Mesh->Cube)
Then select and remove all but two sides (Delete->Faces).

2) Bevel the only edge that remained using the Bevel Tool.
Shortcut: Ctrl+B
Set the parameters as desired.

3) Set smooth shading, so it's perfectly smooth.

You're done.
You can now position it as you need.

Tip:
If you're a beginner, switch to 2.8. (or 2.81)
It has waaay more friendly user interface and is much easier to work with.


How to get a clean Ambient Occlusion map with Cycles with low samples? I want to get a clean ambient occlusion without having to increase the samples, is there a way to hide the noise and maybe to fake Anti-Aliasing?

You can use a normal map to blur the images without touching the edges to keep sharp details.

For that use a bilateral blur attach your ambient occlusion map and the normal map in the slot Determinator. You can play with the settings, i suggest you to lower the "Sigma" setting which is too high by default by something like 1.
You can also apply a small blur at the normal map to avoid getting edges too aliased and be closer to an anti-aliasing filter.


During render can I render freestyle lines, then re-insert them back into the scene so other objects may interact with them during their rendering? Clarification, May 31st 2017: User Firewill kindly provided an answer for the first version of the problem I stated, but I think I was after a more broadly applicable solution, so I'm re-stating my problem here in the hope that it helps solicit that.

As far as I can tell when using cycles freestyle to draw lines, those lines are placed on top of the rendered scene, so none of the objects in the scene get to interact with them in any way.

Take for example the scene below. The glass cube refracts light and effects the way we see the other items:

To emphasize the effect it has, let's overlay an image on the plane so we can see how the glass cube distorts and reflects a grid:

Super. Now let's see if we can draw that same grid with freestyle and see how it looks. First, take the plane, select its edges, and use "Mark Freestyle Edge":

Now render the scene. Oh dear, that's not at all what we were after. No distortion of the grid, no reflection of the grid, no hiding or coloring of the grid.

So, my question is, could I use compositor to render the plane and its freestyle grid together, then "re-insert" it into the render flow so that it can interact with everything else? Giving us a result like this, but with all the benefits of freestyle:

If it helps, here's the blend file for that scene:

Thanks very much for any help you can offer.

Original question: I have a mesh terrain, and a cube that intersects it to form the surface of a lake.

Here you can see how I've roughly thrown that together, with the cube placed underneath the mesh, poking through it to form the lake surface:

Here's what that looks like when it's rendered:

I'm then using freestyle to draw lines along the terrain's visible edges. Unfortunately the lines aren't drawn beneath the surface of the lake water, because freestyle thinks they aren't visible.

To correct this I initially tried using the QI Range setting in freestyle to additionally render the lines below the water, however that came with two problems: firstly other unwanted hidden lines in the scene were also rendered (those hidden behind the hills); and secondly the lake bottom lines were drawn on top of the water, and so didn't appear to be "hidden in the depths".

Here I've rendered only those hidden lines, to illustrate the problem:

Since I couldn't solve my problem with QI Range my next thought was to render the terrain and freestyle lines as one image, the water as another, and then combine them in the compositor.

However, while I've done some simple experimenting with the compositor, I can't for the life of me think how to achieve the effect I want with it. Does anyone have any advice? Or am I trying to solve this in a silly way?

Here's a blend file where you can more clearly see what I'm working with:

Update, May 30th 2017: I've done some more fiddling and broken out the land, water, and freestyle lines into their own layers. I'm rendering then combining the land and freestyle lines (which works great), and then trying to add in the water afterwards. However that step doesn't really work out as I just end up with a cube of water plonked on top of the land, and the lake floor in that part doesn't include the freestyle lines (I'm not sure how to get them in there).

Here's the file that produced all that:

I'm sure I'm missing a pretty obvious bit of knowledge about how compositing works. Could anyone with more savvy in this area explain what I should do to get all of this combined?

Thanks for any advice you can offer.

So I broke up the scene into 3 render layers:

A freestyle render layer which just renders the lines
A land+water which renders the land and the water without lines
And a land layer which is used for depth

Then mix like this:
we use land + water as a base, outputting a material index so we can mask the water area.

material index:

Then using the alpha channel of the freestyle layer we mix the original output and the colors we want for both above water and below, using a material to output the depth of the land enabling us to interpolate between surface colors and depth color on the water covered surfaces.

depth land material:

these are the compositor nodes:

and this is the result:

of course you can tweak the colours of the lines and make it look non-terrible :P

Hope this clears up your doubts!

(if you want the file I can give it to you, but I probably broke any kind of settings or order that you had)


Cannot keyframe anymore. All movement stopped and every keyframe is the same In the Dopesheet, I had an animation. Now for an unknown reason, the armature bones move but the object does not, LocRotScale wise. While I can perform the steps of moving my object in OBJECT mode, and inserting or replacing a keyframe, it is updating all the keyframes. As if there were no keyframes. I can't keyframe any rotational or positional motion. Armature keyframes are still moving, but all motion associated with the armature itself... it's lost. The keyframes are there, but they're all the same, and I cannot change them.

Here's a video of my screen.
https://vimeo.com/298955191

In the Dopesheet tracks, you've disabled the speakers icons (Do Channels Contribute to Result), it mutes all the keyframes of the track, therefore you can't see the changes you've made, so it's going to be a bit messy in your scene now that you'll reactivate it


Surface Shader live Camera Projection I need help with a live a surface shader camera projection.
This video, using maya,  shows exactly what I want to do in blender:
https://www.youtube.com/watch?time_continue=1&v=JsnPYpDqhRk

would be thankful for any help

You need the UV Project Modifier.

Make a Material with your Texture
In the Object Data Tab of the Properties create a new UV Map
In the Modifier Tab add the UV Project Modifier, select your Image and your UV and check Override Image.
Add a new Camera to the Scene and put it in the UV Project Modifier Tab as Projector
Go into Textured Mode (AltZ)


Blender won't start, while I used it before on this machine I updated my laptop. It is an old one, but I used blender before on this machine.

I liked it a lot.

Now I want to reinstall it (did a full hd format) and this happens

Please help.

Also,

I want to use blender to make svg for usage in html.
How can it be done?

(design a logo)

thank you for reading,

J.L.

downloaded latest version of blender 1 hour ago

Blender recently switched to opengl 2.1 so you will need to upgrade your hardware to support opengl 2.1 or switch to an older Blender version. The last version to support older versions of opengl is blender 2.76.

You can find a note about that in the release notes of Blender 2.77
https://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.77


What causes Assertion Error during EXPORT of glTF I have a model I have created and when I select EXPORT > glTF I get an error 'Assertion error'.
What could be causing this and what do I need to do to fix the problem? I feel that perhaps there may be another step I need to do before exporting but searching Youtube tutorial and looking in the manual I cannot determine what that step(s) are. I have the addon Import Export: Maps Models Importer installed and enabled.
Here is the output text -

I tried using Export to Extended glTF 2.0 (glb/gltf) for MSFS and that completes succesfully so my work is complete.
I did also try exporting to obj and also fbx which works ok so I am assuming it is a bug when attempting to export to a 'normal' glTF.


Is there a way of setting vertex colors per mesh in an object output node? I have a node tree that generates random vertex colors per object that I have instanced onto a particle system. I have the effect working but have to bake it down to a single mesh and I'm trying to copy each object's vertex color into one final vertex color set on the merged object. I am currently exploring writing my own solution but I wanted to check if someone has come accross this first.

Cheers
Ian

Welcome to StackExchange! First, you should know how to set vertex colors to meshes, this answer explains that in details. Next, note that the mesh resulted from joining all source objects has its vertices ordered such that the first n vertices are those of the first source object, the second n vertices are those of the second source object and so on where n is the number of vertices of the source object. So if we color every n vertices the same color, we will be fully covering each object with the same color.

Let's say we have a list of colors "Colors" where each color represents the color of an object, then we can repeat each color n times using this expression:

[color for color in Colors for _ in range(n)]

If we now set the outputs colors of the above expression to the mesh, we get what we want. But how do we know n (the number of loops)? All we have to do is sum the amount of vertices per polygon using a simple loop. So the full node tree becomes:

Where the script is from the answer I linked. This will produce:


Some faces won't merge as if there was another vertice in the middle of the face Got the latest version of blender  (2.90.1) As you can see, i didn't subdivided any faces more than another, however some faces would correctly merge while some others would stop merging in the middle (picture 1). Even when creating an edge between the two points, the edge would just be raised but not the face, it wouldn't fill the gap in between (picture 2). I also tried pressing F to fix it but it gives me the "canno't merge face" error (please forgive my english). Could someone help me please ? Maybe do i need to use an older version of blender ?

You can't do what you're trying to do with this kind of topology. Actually, in 3D, faces are always made of triangles, for example a quad is made of 2 triangles:

If I move up the top right vertex the line between the triangles will rise up, like you would like in your example:

But if I move the top left vertex it will stay flat:

So in your case, you need to add topology, like that:

To join 2 vertices through a face you need to press J rather than F, F will simply create an edge between 2 vertices over the existing face, it won't cut the face.


Is it possible to bevel (or round) a bezier vector handle? I'm trying to match bezier curves to letters (trace them) so that I can make a neon sign, however the font that I'm trying to use has multiple sharp edges that can't exist (because there are no sharp edges on neon signs). For now, when I encounter a sharp edge, I just do this:

I round them out with simple "Aligned" handle types. However, this method is slow and imprecise, and because I have to eyeball it, it would likely be noticeably different for every letter. Is there any method I can use to round out a "Vector" handle type? They match the sharp corners of edges very well, but I can't have the corners remain sharp.

You cannot use Bevel on a curve. You can, however, bevel a mesh and convert it to a curve.

I used a cube to create this shape, deleted all but one edge loop, and used Alt+C in Object mode to convert to a curve.


Light not effecting volumetrics So I'm rendering a scene out and I'm using the world volumetrics with "volume scatter". Blender Guru has a tutorial on it. When I put a "sun" light in the scene, it doesn't effect the scene at all. Why? Is this a supposed to act this way? I know when I add a plane in with an emission material, it lights it.

Go to the top right and make sure this little guy is enabled other wise EEVEE just uses the Material Preview Settings, with preloaded HDRIs.


Is there a way to add a shadow/drop shadow to one object in a scene? I wanted to add some sort of drop shadow to the letter G (which is an object) in Eevee but I'm not sure how to.

I would say:

In your letter material, disable Screen Space Refraction
Your lights are too strong, lower down their strength and play with their orientation
Give your Point.001 light a Contact Shadow if you use this light
Your material node setups are weird

I hope it will fix your problem?


Why is my 2minute animation taking 5 days to render It's been rendering for 5 days and still going... It's only 2minute animation with music

Why?
It is normal that rendering takes a long time. You should expect that. This is the reason why animations are usually rendered on render farms using many powerful computers. If you are rendering 2 minutes in 4K at 30 frames per second for example, you have 2 x 60 x 30 = 3600 pictures to render and each of them has 3840 x 2160 = 8 294 400 pixels so that's a lot of pixels to compute. So say you are rendering with Cycles and use 2000 samples. Every one of those 8 294 400 pixels is checked 2000 times for every one of those 3600 pictures so that's really a lot of computation and will take a very long time on a single computer. It is often not practical to render on a single computer because it would take many years and there is no other option but to use tens or even hundreds of computers to render.
What can you do
Obviously you may not afford to build a render farm yourself or to buy commercial render farm services since that is expensive, but you can look into SheepIt for your hobby or even freelance projects. It is free in terms of money, but you still have to render projects for other people to collect points. This way you can render for the farm when you are not using your PC(at night for example) while you work on your animation and when the time comes, you can use the farm to render your project quickly. It has disadvantages compared to commercial solutions obviously like for example it is not that hard for other people to access your files, because they need to be sent for rendering and the farm is not that stable, it may experience technical issues more often than other solutions and there is a file size limit, it doesn't support some features like render passes and so on, but it can make certain things possible that wouln't be without it, so it's great.


Set Rotation of Multiple Objects to 0 Degrees I want to set the rotation on the x- and y-axis to 0° to multiple objects.

So if object a has x:10°,y:20°,z:30°, and object b has x:40°,y:50°,z:60° they should all have x:0°,y:0°;z:...° after the transformation.

How can I do that?

I already selected all of my objects at a time (pivot point set to individual origins), pressed r for rotation and x to rotate around the x-axis, but then all of my objects rotated for example 10 degrees around the x-axis. But that is not the result that I want. I want every single object to have their rotation set to x:0°, y:0°; z:...°

I am currently working with a particle system, which emits cubes along a path.

When converting the particle system I am left with tons of cubes, which should all have the following rotation properties: x=0, y=0, z=(stays like it is).

If I click on one single cube, I can adjust the rotation value for x, y, (and z) which gives me what I want. But I really do not want to do this for every single object this way. Is there a faster way to change the rotation of multiple objects simultaneously?

I already tried to work with ctrl-c, copy rotation. But as I said, I want the z-axis to be unchanged! This should only affect the x- and y-axis.

(To better understand why I want to do this: You have to look at this like it would be an architecture. You don't want to walk on a tilted floor. It should be even.)

Thank you for your support!

Select via name, zero x and y euler rotations.

Test script. Finds all objects in scene with name starting with "Cube Emitter" and sets the x and y components of Euler rotation to zero.

import bpy

pattern = "Cube Emitter"
#pattern = "Cube"
scene = bpy.context.scene

cubes = [o for o in scene.objects
        if o.name.startswith(pattern)]

for cube in cubes:
    cube.rotation_euler.x = 0
    cube.rotation_euler.y = 0


How can I present an array of booleans in a panel? I'm trying to provide a tool for an artist on my gameDev project.  They should be able to set a bunch of settings in a panel, and then press a button to start an automated export.  I want to give let them set a bunch of boolean values, but I'm having trouble finding a good way to present a lot of booleans in the Blender UI.

I need to iterate over the values in each list, so having a BoolProperty for every checkbox is not an option.

I am not sure what kind of layout.prop would do this well, or what kind of property data structure to use with it.

On the UI side, prop_menu_enum() seems like it would be perfect...can I use it as to hold multiple UI checkboxes?  Otherwise I could iterate over whatever kind of list of booleans I end up with and a property for each one.

On the data structure side, I see there is a BoolVectorProperty, but it doesn't seem to hold names for each value.  There's a CollectionProperty, but I'm getting a error "TypeError: CollectionProperty(...): expected an RNA type derived from PropertyGroup, failed with type 'builin_function_or_method'" when I try to register a PropertyGroup that has a CollectionProperty as a member variable.

I keep getting the feeling that there's some good way to do this that I don't know about (and I know almost nothing about blender programming).  Any recommendations?

It works pretty well to use BoolVectorProperty and then in the UI to address each element by specifying the index and overriding the (empty) text.  I learned this reading http://blenderartists.org/forum/archive/index.php/t-264624.html .

ex:

myList = ["cat", "rabbit", "fox"]

class SpriteSheetProperties(bpy.types.PropertyGroup):
    sets = bpy.props.BoolVectorProperty(
        name = "Sets",
        description = "Which animal sets to render",
        size = len(SETS),)

class SpritifyPanel(bpy.types.Panel):
    def draw(self, context):
        layout = self.layout

        box = layout.box()
        split = box.split(.25)
        column = split.column()
        for i,set in enumerate(SETS):
            column.row().prop(context.scene.spritesheet, 'sets', index=i, text=set)

Doing this over a few different list, I now have this nice box: