Only break object when colliding with another? I have recently been getting into some physis simulations with blenders rigid body. I have a basic understanding of cell fracture and rigid body constraints.
Here is what I don't know how to approach: Let's suppose I have a large wall and want to break a comparably small hole into it (for example with some bullet). What I would do is cell fracture the wall, connect the particles with constraints and setting the breakable threshhold to such a value that only the desired area breaks. However, there are still seams between all the other parts of the wall which are in no way affected by the simulation.
How can I do a simulation in such a way that only the relevant particles are fractured and the rest remains untouched?

What I mean can be seen at about 8:57 in this great video (I didn't make it, just my opinion): The part of the cube that isn't shattered still has fractures which shouldn't be there.

If you're unfamiliar with masking, read up what you can for your particular version of Blender.  See Here for a general description.
The example here is using a 3D mask and rendered in OpenGL but plain ol' vanilla 2D masks work just as well.

As for the cell fracturing, that was simply a cell-fractured cube the same size as the mask and hole.  It was placed inside the wall. A few particles were emitted from the same area for small debris effect.
The hole in the wall can be any shape you wish.  This one came from a subdivided cube.  It was given the 'Randomize' beauty treatment so it ended up jagged on all sides. (Tools panel)
That was then sliced in Edit mode so it ended up like a thick slice of bread, two flat walls (the bread) with it's crusts still jagged.

The flat front face was removed and used for the mask, the back one deleted and the jagged sides left as they were to give the hole it's depth.

The front face (removed) is moved to a separate layer which is designated to be the Masking layer.
Anything placed in there automatically becomes a mask and will cut a hole through the other layers .
This particular hole will obviously need it's walls but the mask is going to take them out.
We get around that by doing two renders to mix in the VSE.  One overlaying the other.
The 1st is called 'Top'.  That is alpha layered so the hole is rendered as transparent.
The 2nd is called 'Bottom' and that doesn't need (or want) an alpha layer, nor does it include the mask layer.  (An extra brick was inserted in the wall for effect)
.
When the two are mixed in the VSE, 'Top' on the upper strip, 'Bottom' underneath, we get the result shown at the top of this answer.
Note - the Top strip has to be set to "Alpha Over" in the VSE at right.  (Press N)


Unselect hidden mesh after unhide Is it possible to unselect only the parts that were hidden, after the unhide command (AltH)? I want to keep the previous selection.

There may be a more elegant solution, but i believe this process gives you the result you are seeking.

Select the mesh vertices you are interested in.
Invert your selection (Ctrl + I).
Unhide the hidden mesh components (Alt + H).
Invert your selection with Ctrl I again.


Blender Surface Roughness I'm trying to model a cube with a rough surface on only one side of the cube, while keeping the other sides relatively smooth. I've been looking around, and so far, all I can find is subdividing and then the displacement modifier. I'm pretty new to Blender, and I'm confused as to how I can apply a rough surface ( not just textured with an image - I'd like the cube to physically have those bumps ) to the cube? I can only find tutorials for working with a plane and making it rough via subdivisions. Any help would be greatly appreciated!!

EDIT: @Carlo, yes it's because I'm unable to pick on of the six faces. Basically what I'm looking to do is to create only one surface of the cube rough, while every other side remains smooth. Does this clarify my question a bit? Sorry about the delay in response!

Solution is simple:

You go in edit mode and select desired face.
Click W, than select Subdivide.
Either repeat previous step multiple times or on the bottom left part of screen you will see a value Number of Cuts that you can adjust to your needs.
Select the subdividen faces and in Mesh tab add a new vertex grop and assign those objects to it.
Add displacement modifier, select the verex group under it's setting, select texture and adjust values.

Done! ;)


How do I link armature on separate objects to work together? I have created a character with separate objects for arms/legs/body/head.

I can add an armature to each object separately and they all work independently, they are not connected to each other but I would like to somehow link the arms/legs/head to the body so that when I move the body the rest move with it.

How do I link armature in different objects so they work with each other?

So I got this going with a little help from a video tutorial, here is the quick run down:

Add an armature single bone.
Press E to extrude a new bone from the first bone.
Press ALT+P to detach the bone.

You can then move it and parent the bone to different objects but they remain linked and still work together when you pose them.

Credit goes to this video - https://www.youtube.com/watch?v=B9iL1hmJXrI&t=153s&list=WL&index=6


Set the Edges Invisible [Feature-not-yet-supported] We have a mesh using the mirror modifier. How could we set the central edges (yellow arrow indicators pointing at) used for mirroring invisible during working on the mesh? Like in Lightwave or Nevercenter Silo 2.

The left is the original model, and the right is the wanted symmetrical line hidden model:

This keeps the model looks neater when working on central parts of the model, like the nose:

You need to apply the Mirror modifier, with merge and clip enabled, then in Edit mode Alt + Right mouse button click on one of the edges to select loop, then  X and select Dissolve Edges from the pop up menu.


Hair Particle, final Render shows less particles than in the viewport I'm using Blender 2.8 and having a problem. I'm following a towel tutorial and I've set the number of hair particles to 1000000 and i get a result like this:

Problem

The only way it will fill up the towel is if i set the view port display at 100%

Settings

Final

Every video I've seen on hair doesn't say this is necessary. Have i missed something here? is it a 2.8 bug? Thanks in advance!

Tony

So i figured it out!!! It happens when the hair dynamics button is checked. I have unchecked it and it works as it should

Is this a bug?


How to create a procedural chevron like texture/material? I'm playing around with nodes within cycles and I'd love to create a chevron like texture like the image below. Anyone an idea how to accomplish this?

Start with Wave procedural texture and create tiling in X axis with Repeating patterns on procedural textures. After that clamp the values into stripes with a ColorRamp node set to constant:

 (^click to enlarge)

You can adjust the stripes with the ColorRamp node:

For mapping procedural textures onto spherical objects there has to be additional transforming of mapping coordinates:

For procedural cylindrical projection this node group:

And for procedural spherical projection this node group:

Using the spherical projection with the tiled chevron procedural texture:

Here we also added an extra Mapping node to control stretching of the texture around the surface.

Download the .blend file with append-able node groups here:

On the egg shape cylindrical projection looks the best:


Ray can't detect sensor objects? My ray cannot detect a sensor object. I can't make the object anything other than a sensor. How can I have a ray detect sensor objects?

Sensors are not detectable via ray detection.

Typically sensors sense other objects rather then being detected.

Workaround:
Add another object that fills the sensor object. Give it a physics type that can be sensed via ray. Parent it to the sensor (or the other way around). Ensure your sensor ignores this object. This way the ray can detect the new object.


I want to use the light probe as a fisheye or spherical camera in Eevee. How can I directly access image data produced by the lightprobe? I want to use the light probe as a fisheye or spherical camera in Eevee. I assume a panoramic fisheye option will be developed for Eevee at some point, but in the meantime perhaps the light probe can meet my needs.

I made a pretty hacky rig, in which light probe-driven reflections are used on a sphere. A camera points at the sphere and produces a passable fisheye, but this isn't a very elegant solution and you lose some information, like alpha.

Ideally, I'd like to have a composite node or image-type object that provides access to the data. I don't mind Pythoning my way to it though if I can get pointed in the right direction. The bottom line is if I can get whatever image the light probe is producing, I can work with that to get what I need.

The light probe/reflection cubemap is created with 6 image planes in a specialised image format like DDS. It's not spherical.

It is however possible to convert a cross image (composed of 6 renders from each axis into a cross) to a longitude/latitude image using CMFTStudio or Knald Lys.


Rigify and automatic weight painting error I have a model that I am trying to rig using rigify. The bones are placed, the rig generated, but when I try to apply as parent with automatic weights, nothing happens. No weight painting at all (see pictures)

If you need the .Blend, I can upload.

Clear parent relationship, select the mesh, edit mode, remove doubles 0,001, then parent again.

Seems to work (i've tried with a brand new rigify generated armature)


Help to create a texturized material I need help to reproduce this material with this "texture". It is a playing card, it can be vynil, or simple hard plastic. I know it is not that hard, but I still have some problems with nodes. The main objective is to replicate the bumps perfectly. I'm more interested on bumps, and this kind of "texture" than on colors or lightning. You can ignore this gradient, and even the colors white and black. Look only to the pattern of the bumps.

Thanks in advance Blender People

Try something like this.

All I really did was warp the vectors of a couple of Noise Textures by adding the Vectors of Wave Textures using a Vector Math Node. This produces "uneven" wave lines. I made a second of the same, rotated 90 degrees with a Mapping node. so it has that crossed thatch appearance, and then increased the wave distortion slightly, so it doesn't look linear, even, and fake. I also incorporated another Noise Texture to give some underlying bumps. You can see that I lightened both the values by mixing with white before multiplying them together, but even then the effect was almost still too strong - make sure to check your strength/appearance, and mix with white when needed before connecting to the Bump Node. You might be surprised how much more realistic a "slight" effect looks compared to a "deep" one (if that makes any sense)
Lastly, I just took some Ambient Occlusion from the Wave combo and multiplied it with a neutral grey to make the ridges pop slightly more. Have a try and see if it works for you.
If you want to go one farther, you can use yet another Noise Texture to "block" some portions of the wave mix, so it's not so uniform, and thus more realistic. I also elaborated on what I mentioned before about a "slight" bump effect, by mixing the whole mix with white again before the Bump node. I also lightened the color slightly, and increased the roughness (both things also can work to reduce bump effect as well). Here is the final result of the (more complex but improved) new mix:


UVs don't display on one specific part of the model The UVS on the foot for my model display no texture. It is just flat gray. It should look half blue half gray from where the UVs are in the texture. If I move them they are still just gray. I tried duplicating them, recalculating normals, adding more faces. But nothing will get the faces to display the texture. I'm using Blender and Substance Painter the UVs were auto unwrapped by Substance and the foot is a duplicated and modified version of the hand. Any ideas to get the texture to display?

There was an extra material on the foot. Once I deleted that material the texture then displayed correctly.


How to use a texture in real world scale? How to apply texture on an object in real world scale? I mean can I control the texture scale mathematically like in 3DS Max? If I have the pattern which is 1000 by 1000 mm, I need to apply it on a model with this exact size to represent the product I design as defined as possible.

There are multiple choices of texture spaces you can use in Blender.

If you decided to use Object space instead of the UV space, you would have some control over it in the Object Data Properties panel in the Properties Editor:

However with UVs typical thing to do to control the scale of the texture would be to use a Vector Mapping node in the material as you see in the example or to scale the UVs themselves. UV space can and often must be warped and shaped in many ways that are impossible to match to the actual scale of the object so if you want a UV mapped texture or parts of it to match the real size you have to make sure that happens yourself.

You could make yourself a plane of the same size you have the texture, place the texture on it and then match the scale of it on the object visually or you could project the UVs in a specific way so you know that what you project is some specific length compared to your texture and maintain the ratio by scaling the UVs by that ratio... there are probably hundreds different situations and hundreds of ways of doing this so you just have to come up with one that suits your situation best.


How to restore custom layout/panels when loading a blend file with different settings? I've downloaded a .blend file recently and all of the interface elements look very small. Is there a way to quickly resize the buttons within the panels according to my personal settings?

If this is happening on a file you didn't create, and want to preserve your own default layout, uncheck the LoadUI box when loading the file.


Eevee film grain type filter? I have been searching on Google if there is any scratches/film grain type filter for Eevee while in realtime? Is this kind of filter even possible in Eevee. I have seen it done in game engines. Or would I just have to render the scene and do it in post production as I normally do.

Thanks, James.

There's currently no way to emulate film grain without the compositor.

This is obviously a crude workaround, but you could find a film grain image sequence or video, (or somehow make one procedurally using nodes), and use it as an alpha texture for a plane. Then, constrain the plane's rotation and location to always be right in front of the camera. This wouldn't work if you need Depth of Field, but it would probably work ok if you didn't use DoF.


Weird color behaviour new to blender, so pardon me if this is a silly question.
I have two geometries and want them to have the same color , yellow. The color of the object needs to be diffusive , means that I do want the color to be there regardless the lights I have in the scene.
The two geometries have the same material, but they are behaving differently , the
face one is correct, the moon is not.
What I can see is that the face has a yellow color regardless the light while the moon is grayish and turns out yellow only when the light bounces the surface.
Moon has 1 material only
Face has 1 material only
I have removed the garbage and you can see just 1 material per object

It's not a camera issue as I not using this models within blender but exported as gtlf and while the face behaves well in both blender and gtlf , moon is yellow only when there is light on both blender and gtlf, so issue is not with the camera or the lights, issue is within the model itself.

Below the two materials

Probably the best way to approach it is to use a flat shader (color shader) without diffuse, the other way is to use the objects' normals in order to create a "fake" light and keep them always consistent regardless the light conditions in your scene (as it is done in most NPR approaches).
this is how a flat shader would look like (just an emission shader in Blender's context)
Emission Shader (flat)

and that's how an NRP would look like
Dot Product (Geometry Position)

or like this
Dot Product (Geometry Normals)

check the material setup here:

the second vector in the Dot Product node (math vector) will be  the source of your fake light.

Keep in mind that Dot Product gives also negative values, so you may need to clamp it for certain occasions


How make particle objects follow z axis while also following the ground? I am using the particle system to spawn thousands of grass objects which are just planes (imagine 10cm tall, 2m wide) with texture mapped on them. How do I get the planes to follow the ground (rest on ground) while also being vertical. There are questions about hairs but not about this specific issue.

Like this:
https://i.imgur.com/0PryYku.png

The particle system uses the normals from the mesh to grow the 'hair'. So, if you want to make all the particles grow upright and follow the terrain, what you should do is:

Create another mesh above the terrain (as simple as possible, like a
plane, or circle)
Subdivide it a few times
Use a Shrinkwrap Modifier on the new mesh, so it follows the
terrain, at the same time preserves the normals pointing upwards
You may use Wrap Method as Nearest surface point and Above Surface, but you may try other methods if you like
Make the particle system on this new mesh; (on the modifiers list,
the Shrinkwrap must be above the particle system).

This way your grass will grow upwards, and the roots will follow the terrain.


Is there a way to get Blender display the nodes and edges of the national_trade_graph.x3d? I am trying to get started.

Pajek does well with outputing 2D graphs, e.g as SVG or JPG, but suggests X3D and several other choices for 3D output.

I would prefer a Blender solution for visualization of 3D graphs because of Blender's additional capabilities, if I succeed with getting the hang of it for simple uses, as I am a total novice with Blender now.

Blender does not complain about the X3D file I output from the Trade.net sample data set for Pajek on relations between nations in global trade. But Blender by default does not display the nodes and edges of the national_trade_graph.x3d I exported, just a cube with a central set of blue, red, and green axes around an orange square surrounded by orange and white circles.

If you have a suggestion to point out how to have Blender display the nodes (nations) and edges (trade) I would appreciate it.

Additionally, I only found one reference to use of Blender (for astronomical data), but none for social network data; if you know of any others using Blender like I want to, I would appreciate it.

I can provide sample data, a JPG image and the X3D file if you want.

I am willing to read the fine manual for Blender if you can point out to me where. Otherwise I will go back to Youtube tutorials.

Original data, JPG 2D image, and X3D file, requested by Duarte Farrajota Ramos in his edit, are hopefully now in Blend-Exchange but original data file, Trade.net provoked the message "You can't upload files of this type.",
and national trade graph.jpg provoked same message, and also for national_trade_graph.x3d so my Upload there seems to be a failure. I guess Blend-Exchange is limited to .blend files.

I next tried Google Drive where I succeeded in uploading the files (and included national_trade_graph.x3d.blend) and have a link readable by anyone with it, no sign-in required
https://drive.google.com/drive/folders/13xNc92zIJ2iAUwIekMRzbhgOjANKkfdr?usp=sharing

I saved national_trade_graph.x3d.blend and attempted to upload it to Blend-Exchange but got the message for this URL,
https://blender.stackexchange.com/posts/143893/edit
"The provided url is not valid, please copy and paste the entire url, including the "https://" header." I tried without the /edit but got same error message.

I hope with that trail of partial failure there may be clues of what I might do to correct the provision of data and graphs for this discussion.

Blender defaults show a Cube along with a Camera object and a basic Lamp. This allows a first time user to immediately render a scene.

The most common instructions in Blender tutorials are to Delete this Cube so you can get on and do your own work.

Select the Cube with a Right mouse click (current Blender version 2.79b, changes in 2.8 to a Left click) and press delete and confirm to remove the Cube from the Scene.

From the File menu select Import and X3D Extensible 3D(.x3d,.wrl).

Select your file and press the Import X3D/VRML2 button.

After a short while your model and all its components are loaded and visible.

All the components making up the diagram are now listed in the Outliner and it is worth learning how to use the Select Pattern function.

Press a to deselect everything and then Click the Select menu and Select Pattern ...

In the Select Pattern dialog change the Pattern from * to Shape_Text*

This will select all the Text elements and you can now move them with g(Grab) and y along the Y axis. Which allows you to nicely move the Text into the foreground or background.


How to fix inconsistency of mesh into the "body" in 2.80? I am relatively new to Blender 2.80. I am making a hair mesh when I see this:

You can see the yellow arrows pointing to the "outstanding" faces, which just looks weird for a hair. Hair needs to be smooth!

In Blender, I tried selecting these faces and their adjoining faces,
hitting "F". The result is still "outstanding".
I also tried "merge-to center" but...still looking even more absurd.

What is the proper way to cope with the naughty faces?
Here is the project file:

The problem seems to be that you have misplaced sharp edges, although I think it was also made worse by duplicate vertices. The first thing I did was merge by distance, which removed 1000+ vertices, then I started selecting the sharpened edges that didn't seem to flow with the rest. I then cleared the sharpened edges. See below:
The result is a much smoother look, with the offending faces "gone". I only did this on a handful of edges to test - there are quite a few of these places where you might want to unsharpen the edges, but probably also some others where you want to add some sharpness. You will have to look over your model and decide for yourself.

Hope this helps


Invert Fly Mode Mouse Control? When using Fly mode (Shift+F in the 3D view),
moving the mouse up rotates up, and moving down rotates down. Is it possible to invert this so moving the mouse to the bottom of the screen rotates up?

Using the macOS version of Blender v2.80 & v2.82a the settings can be found under Preferences -> Navigation -> Natural Trackpad Direction.


VSE: Select all the strips of a given track? Is it possible to automatically select all the strips of a given track, for example of the track of the selected strip (a kind of equivalent of L in the Dope Sheet)?

Select a strip on the channel you want, then use Select > Channel > Both sides.
bpy.ops.sequencer.select_side(side='BOTH')


how to create and extrude a bmesh face I would like to programmatically create and extrude polygons. I've found several examples of code (e.g. here), but none of them are currently working for me. As a simple example, I am trying to get things working first with a defined circular face and then extrude that face. Here is the code defining the circular bmesh:

import bpy, bmesh
from math import *

NUMVERTS = 1000
Dphi = 2*pi/NUMVERTS
# calculate x,y coordinate pairs
coords = [(cos(i*Dphi),sin(i*Dphi),0) for i in range(NUMVERTS)]

bm = bmesh.new()
for v in coords:
    bm.verts.new(v)
bm.faces.new(bm.verts)

bm.normal_update()

me = bpy.data.meshes.new("circle")
bm.to_mesh(me)
# add bmesh to scene
ob = bpy.data.objects.new("circle",me)
bpy.context.scene.objects.link(ob)
bpy.context.scene.update()

Which results in a 2D circle

I then want to extrude that face in z by some amount resulting in something like:

I would like to do everything in a python script without having to select anything in the GUI. Also, I'm using a circle as a placeholder example here -- I ultimately want to import much more complicated 2D (XY) polygons and extrude them in Z by some amount. Thanks!

Here is the extrusion part filled in:

import bpy, bmesh
from math import *
from mathutils import Vector

NUMVERTS = 1000
Dphi = 2*pi/NUMVERTS
# calculate x,y coordinate pairs
coords = [(cos(i*Dphi),sin(i*Dphi),0) for i in range(NUMVERTS)]

bm = bmesh.new()
for v in coords:
    bm.verts.new(v)

# think of this new vertices as bottom of the extruded shape
bottom = bm.faces.new(bm.verts)

# next we create top via extrude operator, note it doesn't move the new face
# we make our 1 face into a list so it can be accepted to geom
top = bmesh.ops.extrude_face_region(bm, geom=[bottom])

# here we move all vertices returned by the previous extrusion
# filter the "geom" list for vertices using list constructor
bmesh.ops.translate(bm, vec=Vector((0,0,1)), verts=[v for v in top["geom"] if isinstance(v,bmesh.types.BMVert)])

bm.normal_update()

me = bpy.data.meshes.new("circle")
bm.to_mesh(me)
# add bmesh to scene
ob = bpy.data.objects.new("circle",me)
bpy.context.scene.objects.link(ob)
bpy.context.scene.update()

The hard part is grasping the habit of having this dictionary return type from the operations. It's a dictionary containing definition for "geom" that contains a single list where all the verts, edges and faces are listed one after another. You are then supposed to make a list of the verts, edges or faces with python list construction where you check for the element type using isinstance(), depending on what you need for each operation.


How to change armature animation so it depends on rotation not translation I have a .bvh file of an armature with some bones; it has an animation but it's based on the translation of these bones not rotation. Is there a way I can make the same animation with rotations instead? As this armature is parented and weighted to a mesh.

The bvh data is of a facial animation. The final animation needs to be exported to an application that doesn't support bone translations.

If anyone could, please advise.

You can create new bones within the head, add a stretch to constraint and then bake the animation to get bones that rotate and scale and not translate.

Select a bone on the face (forehead1 in this example)
Snap cursor to bone ShiftS Cursor to Selected
Select tip of the base bone (that is parent of all others)
Extrude a new bone E
Snap the tip of the new bone to the target bone ShiftS Selected to cursor
Name the new bone to forehead1.new (see later)
Add a stretch to constraint and set the target to Armature then bone to forehead1

Repeat these steps for each bone

Bake the animation (Pose->Animation->Bake action, enable visual keying and clear constraints), this will turn the movement created by the constraints into rotations and scales for the bone so that the constraint can be removed. This allows the final animation data to be exported as constraints are blender specific.

select forehead1 and delete the bone
select forehead1.new and rename it to forehead1

Repeat for each bone

This is needed to keep the vertex weights in effect for the new bones, giving the new bones control of deforming the mesh. If you rename the original bone the vertex group will get renamed to match, therefore we need to delete the original bone and rename the new bone to match after the animation has been baked.

Edit:
I have made an addon called Rotation Armature to perform this task. Save the script from the link, then install and enable it you will then find a button in the tools tab called Create rotational bones which will perform the steps listed above. This is currently rather specific to the test armature you used, I may update it later to be more versatile.


Render result does not appear when file is reopened I can't find the rendered image result. The render work perfectly but when I reopen the file there is only a blank grey screen. This has not happended before.Please help.

Blender does not save the render result with the file.  If you close the file without saving the render it will be lost.

You can save a rendered image by going to Image > Save Image in the UV/Image Editor (hotkey Alt+S).

If you need to save all the render layers and passes with extended dynamic range for future post-processing in Blender, you can save to a Multilayer Open-EXR image file and import it into the compositor next time with an Image node.

Also see: How to save the render result within Blender.


Time series animation of voxel data I would like to render a time series of image stacks using Blender voxel data similar to here: Rendering stack of 2D images as a 3D object?

My original data are a TIF stack that contains XYZT data (time series of the slices interleaved). I can deinterleave it in any form, at the moment I have generated single files with z0000*Z*t0000*T* where Z and T are counting for slice number and frame.

How can this be done? I basically need to exchange the source files for every frame of the animation. It somehow seems not to be possible using drivers to manipulate the source files. I also thought about creating a script for the entire scene and replace the files by variables to generate every single frame of the animation with one run but this seems to be not the most efficient way.

I would be glad for any help!

I found a solution to my problem in the mean time. Similar to here: http://pythology.blogspot.com/2014/08/you-can-do-cool-stuff-with-manual.html I used the Blender voxel data format (I also tried 8bit RAW, works too).


How do I add a new tab to the 3D Viewport? I'm creating a Panel that sits in the 3D Viewport.  Right now when it runs, it is inserted under the Misc tab.  I'd like to create my own tab to place it in.  How do I do that?
class NormalToolPropsPanel(bpy.types.Panel):

    """Properties Panel for the Normal Tool on tool shelf"""
    bl_label = "Normal Tool Properties Panel"
    bl_idname = "OBJECT_PT_normal_tool_props"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'

    def draw(self, context):
        layout = self.layout

        scene = context.scene
        settings = scene.my_tool

        col = layout.column();
        col.prop(settings, "strength")
        col.prop(settings, "normal_length")
        col.prop(settings, "selected_only")

Mr batFINGER always has the good stuff, but this should get you started:
import bpy
from bpy.types import Panel

class TestPanel(Panel):
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_label = "Test Panel"
    bl_category = "Test Panel"

    def draw(self, context):
        pass

class TestPanelSub(TestPanel, Panel):
    bl_parent_id = "TestPanel"
    bl_label = "Test Panel Sub Panel"

    def draw(self, context):

        layout = self.layout

bpy.utils.register_class(TestPanel)
bpy.utils.register_class(TestPanelSub)


How to know if the toolshelf/properties/header is ON/OFF with python? i'd like to have a boolean return value with thoses three toggle operator

bpy.ops.view3d.toolshelf()
bpy.ops.view3d.properties()
bpy.ops.screen.header()

id like to toggle them only if they are 'ON', but i don't see any way i can do that

there's no official way to know, you can just know, i just found a trick with the interface region width

import bpy

bpy.context.area.ui_type = 'VIEW_3D'
area = bpy.context.area

for region in area.regions:
    if region.type == 'TOOLS':
        if region.width == 1:
            print("toolshelf closed")
        else:
            print("toolshelf open")
    elif region.type =='UI':
        if region.width == 1:
            print("properties closed")
        else:
            print("properties open")
    elif region.type =='HEADER':
        if region.width == 1:
            print("header closed")
        else:
            print("header open")


boolean modifier leaves cutting edge on face I have 2 cylinders where I make a difference with boolean modifier.
After applying, I see in the Edit mode that there are 2 edges connecting the outsite with the inside. Is there a way to avoid this or to join the separate faces?

thanks

If you want to convert that Ngon into quads delete it and use Ctrl+E > Bridge Edge Loops; it should work nicely if amount of vertices is the same.

However you can use more convenient way in order to construct cylinder like on your screenshot.

Start with simple cylinder, select its top and bottom faces (Ngons) and  inset them. Press I and drag the mouse to change effect.
With both Ngons still selected use Bridge Edge Loops.


Render glow over transparent background blender 3D evee How i can render glow from emission material over transparent background in blender 3D eevee, thanks!

Okay, I am not good with compositing but maybe will be able to help you a bit. It is a bit cheatish way to create a false bloom using gaussian blur.
This should work with both cycles and eevee, my example is in eevee, which does not support lighting from emission material.

First a basic scene with sphere, cube and transparent background:
What we want to do is to make the cube glow. We will do it like this:

Add a new view layer, so we have two view layers.
Sphere will be excluded from one view layer, cube will be excluded from another, each of them will have their own view layer.

Lets add view layer:

Lets add collection and put cube into that collection

Set viewlayer to our first layer (defaultly named View Layer), select Collection 2 and exclude it from the layer:

Set view layer to the one we have added in step 3:

Select first collection (one with sphere, light and camera), right click it and exclude it from currently selected view layer:

What we've done so far is set two view layers, have cube in collection 2 included in View Layer.001, and Camera, Sphere and Light included in View Layer.

Now lets add emission material to our cube:

Open Compositing window, turn on Use Nodes, Auto Render and Backdrop. Two last options make preview of the render be rendered in the background whenever you change something in compositing nodes. As of this moment it seems to be requiring you to make one render before it starts working (just press f12 to render and then close rendered image).

What we are doing now is splitting image into two Render Layers, one for View Layer (with sphere) and other for View Layer.001 for Cube. Cube is blurred to create lighting aura effect and then added to cube (so we get a solid cube with blurred cube behind it). Then we add sphere from view Layer on top of that. Connecting to Composite node causes it to be renders output, Viewer node is required for Backdrop to display.

And final render:


How to adjust color of custom brush in texture paint mode? (issues with color ramp) I have an image where the brush part is black and the background is white.

After I loaded the custom brush in texture paint mode, I thought that I could adjust the brush color and background color using the color ramp in the textures menu (image below).

From how I understand it, I thought that the color ramp would map blacker values in the image to the tick color on the left, and whiter values to the tick color on the right.

So to test this, I tried setting the left tick as black with 1 alpha, and the right tick as white with 0 alpha. But then the brush draws nothing. Sliding the left tick around did not help. (What I expected was that the brush part would draw black, and the background would be transparent.)

What am I misunderstanding?

My end goal is to adjust the color of the custom brush (for example, toggle between black and white, like with the default brushes) within texture paint mode whenever I want, without having to edit the brush image externally.

Black is nothing, white is full. If you want to use a color ramp, set the main value as white and the zero alpha as black, and then choose the color in the actual brush color picker in the tool bar.


How are blender UVs stored in relation to individual vertices? I recently decided to make  a binary exporter to load into a game engine I am also writing, but I'm very much stuck on blender UVs. I understand that the UVs have to for loop indices because of hard edges, but I have no idea how to pair the UV up with their respective vertices.

What is the relationship between a UV coordinate and a vertex in blender? I would like to be able to remove the duplicate vertice/UV pairs to cut down on buffer data in my program (which I would imagine would save a LOT of data for a handful of complex models), but I can't seem to pair the two together.

I can see how loop indices pair with vertices in the polygons class and via the vertex_index property of loop indices, but I have no idea how to relate these to the appropriate uv_layers data. Any help would be greatly appreciated; thanks for your time!

The UVs and Vcols (vertex Colors) have the same logic of "per vertex in a face" order, flated in a simple sequence.

You have the polygon vertex indices and vertices list, so it can be deduces from here. Simple and very useful. More so, if u actually generate the mesh data and not read from an object.
You can access the mesh loops (the very rule of vert per face etc) to read what contains the vert index / uv. This should be done probably with foreach_get/set function that is more efficient.

Let's see var 1, as you actually seam to know these but just miss the relation poly/vert index

(note that I create list of indices of the uv/vcol and verts, for precise coords etc you can further use them to read or write to actual data):

creating perPolygon and perVertex lists of lists
like [[1, 3],[2, 5], [6, 8, 9]..] that correspond to the polygon / vertex list

    perPoly = []
    perVert = []    # best variable name yet :D

    if Object is not None and getattr(Object, 'type', '') == "MESH":
        # these are the poly vertex indices (as in the vert list)
        polyIndices = [p.vertices for p in Object.data.polygons]

        # create an list with empty lists for all verts
        perVert = [ [] for i in range(len(Object.data.vertices))]

        increment = 0
        for poly in polyIndices:
            lenP = len(poly)

            perPoly.append(i + increment for i in range(lenP))
            for i, vi in enumerate(poly): perVert[vi].append(i + increment)

            increment += lenP

Note that I have not even read the uv (or vcol) data, if any. So you can use this in the very process of creating your own mesh or where there is no uv/vcol yet.

perVert / perPoly contain indication to positions in the ...uv_layers[0].data

the opposite, creating a list that parallels the uv list but contains the vertex index goes by flattening the polygon indices (polygon.vertices) list
Basically, that is the way the uv list is done..

# explicit
flatVertsLikeUVs = []
for poly in Object.data.polygons:
    for i in poly.vertices:
        flatVertsLikeUVs.append(i)

or using chain, same stuff..

from itertools import chain

flatVertsLikeUVs = list( chain.from_iterable([p.vertices for p in Object.data.polygons]) )

an example:

uvs = Object.data.uv_layers[0].data
matchingVertIndex = list(chain.from_iterable(polyIndices))

# example, matching list of uv coord and 3dVert coord:
uvs_XY = [i.uv for i in Object.data.uv_layers[0].data]
vertXYZ= [v.co for v in Object.data.vertices]

matchingVertIndex = list(chain.from_iterable([p.vertices for p in Object.data.polygons]))
# and now, the coord to pair with uv coord:
matchingVertsCoord = [vertsXYZ[i] for i in matchingVertIndex]

-

ps:

getting the mesh loop data/ uv layers with another option, but logic is the same:
you may wanna look here for populating the list with fromeach get / set
http://blenderartists.org/forum/showthread.php?391847-Efficient-copying-of-vertex-coords-to-and-from-numpy-arrays&highlight=numpy

you can skip the numpy part and just populate a previously created list, (like the perVert above).


Why Blender Rendering and Previewing Wrong Colors in Video Editor? I'm quite new in Blender and I have encountered a problem while I was editing a video with Blender Video Editor. Blender makes the colors of my video worse and wrong. Before rendering the video I didn't notice that, but after rendering there was a remarkable difference between the original and rendered colors. I tried some suggestions given on the internet but they didn't work, anything didn't change in both preview and render. I will give an instance here:

In the image above, in comparison to the real one, Blender rendered video has completely wrong colors. It makes my video white to gray. As I mentioned, it is not only happening in the render section, also occurs in the video preview. So while editing the video I can see the difference. When you once noticed that you cannot prevent looking for the wrong colors and it became really terrible situation for me. I have already tried to change my output settings, I tried nearly all the options about video. Also, I tried rendering it as an image in different image formats. But it still occurs and nothing is changing. Do you have any other suggestions about this problem? What are your thoughts about it?

Eventually, I fixed the problem. As I said, I'm quite new and haven't got a comprehensive knowledge about the panels and settings in Blender.

Instead of deleting the question, I will answer it and help the other people who have encountered this problem. Let me explain how I solved it briefly:

Under the "Render Context Tab", there is a setting called "Color Management". As a default, its "View Transform" is "Filmic", let's change it to "Standart" or "Raw". The problem will be fixed in this way.

In a nutshell, Render Context -> Color Management" -> View Transform -> Standart.


Why are bright textures showing up in shadows on EEVEE? I made a procedural material for a moon and in the shadows you can see bright parts of the moon, it should be all shadow. I'm only using 1 directional light but I think the problem lies with my procedural background world material. So I guess the question is, how do I get the world material to not affect my objects textures/lighting?
I have included the moon and the material of that moon screenshots plus a link to the world material tutorial.
https://www.youtube.com/watch?v=GvkW7PDni40

By adding a color ramp between the base color and the divide i was able to fix it


Creating borders for flat models I'm building a puzzle game and this is the method i'm using to create the puzzle pieces.

Create designs in illustrator.
Save the design as SVG. Import SVG to blender.
Save the model as fbx.

This is working well, but i need to have outlines around my puzzle pieces. For example, i need a piece to be black with white outline:

Please help me with this.

You could try adding a raster image to your model as a texture:

Probably the easiest way to add a texture to your model is by dragging and dropping an image from a file manager onto your object in the 3D view:

Note that you'll also need to UV unwrap your object.

For simple 2D objects extruded along the Z (like the one in the above gif), you can probably get away with looking at your object from the top (Numpad 7) in edit mode (↹ Tab), and with everything selected (A), pressing U> Project from view.

For more detail, see

The wiki on UV unwrapping
The wiki on texturing
How to properly unwrap my mesh?


Vary Color of Object Based on Object Dimensions (Size) I have a DNA model that I created and imported from a 3D chemistry modeling program (Avogadro). I exported the model in .wrl format (the only 3D format allowed for export by Avogadro) and imported into Blender. Unfortunately, there's a bug in Blender 2.8x that does not allow color to be imported in .wrl format.
So, I need a workaround. I need to color each molecule a different color based on its object dimensions. For example, the phosphorous molecule is a particular size as are carbon, oxygen, nitrogen, and hydrogen. I've spent a few hours now scanning the various forums for an answer. I have yet to find a solution.
Ideally, I'd also like to color the little stick bonds between each atom based on the colors of the two atoms it is binding together. That's not a deal-breaker, though. I can get away with making the stick bonds a single color.
See the attached images for the shader setup I have right now and the result it's producing.

You're so close - you just need to swap one of your Math nodes for a Vector Math node, and the other for a MixRGB. Note the divide factor for the mix node is set to 1 (anything less covers less than the whole surface).  See below:

NOTE - The scale I had initially was too big, apparently, I had to scale all the objects down (except for the empty) to get it to look right, but I was working fast and carelessly. I'm sure it can look "right" at any scale, it may just have to be adjusted by adding a Map Range node between the MixRGB and the ColorRamp - Just connect the color output of the MixRGB to the value input of the Map Range.


How to make a button that changes lamp energy in BGE? I am creating an options menu for a simple game. I want to make a button that will adjust my lamps energy up or down.

I would like both ways,  a button that adjust the lamp energy up and a way to adjust it down.

scene = bge.logic.getCurrentScene()
cont = bge.logic.getCurrentController()
light = scene.lights['Lamp']

if cont.sensors['Mouse1'].hitObject.name == 'button.up' and cont.sensors['Lclick'].getButtonStatus(bge.events.LEFTMOUSE) == bge.logic.KX_INPUT_JUST_ACTIVATED:
    light.energy += 0.5

if cont.sensors['Mouse1'].hitObject.name == 'button.down' and cont.sensors['Lclick'].getButtonStatus(bge.events.LEFTMOUSE) == bge.logic.KX_INPUT_JUST_ACTIVATED:
    light.energy -= 0.5

Attach this script to your two buttons with these logic bricks. The two buttons must be named button.down and button.up, or you will have to change the names in the script.

The two buttons will increase and decrease the default Lamp energy by 0.5 per click.


Random objects to grid (Animation Nodes) http://prntscr.com/ixcbym

How to assign, for some points of grid one object from group 'sec'. And for other points, other objects from the same group?

Starting from version 2.1, we have a Transform Mesh Node instead of the Replicate Mesh Node. First, we create a list with all possible meshes (One can use the Objects From Group Node to get all objects in a group and get the meshes from them.), then using the Random List node, we generate a list filled with the possible meshes, then meshes are transformed to the required location using the Transform Mesh Node. Which results in:

If it is not required that the output be a single mesh, one can instance a group of empty objects using the Object Instancer Node and then copy the meshes from a list filled with possible objects just as we did before. Which results in:

If you want to selectively add an object at some indices, then manual source object list creation is needed. For instance, if one wants to use the object Cube for the vertices at indices 0,1,...,9 and 40, 41,...50 and use the object Icosphere for the rest, then the object source list can be created as follows:

The Fill List Node can be used to fill a list with a certain number of objects, and the Combine Object List node can be used to combine multiple lists, so we can combine an object list filled with 10 Cube then another filled with 40 Icosphere and then another filled with 10 Cube. Then we can use the Fill List Node to fill the rest of the elements with Icosphere.


Editing a multi-file addon? How would I approach editing/reloading/printing to console a multi-file addon?

There's a (someone else's) multi-file addon with a complex structure of libraries and classes with a bug in a particular class and I'd like to try to fix it. However I never made an addon with several separated files and I don't understand how to reload it properly. At the moment I edit the original .py file and restart Blender which seems like a terrible workflow.

Not sure why Reload Scripts didn't work at first for me, maybe I didn't save the correct file or whatnot, anyway, that's a possible way. My issues were however with this method is that

I have to edit files in Blender addons folder, not in my project folder;
this reloads all the scripts, on my machine with a lot of addons installed it takes about four seconds and plus after that some addons reset their settings;

In the end I followed this article for creating and debugging multifile addons. Author suggests using a specific setup for the __init__.py file and then provides a Blender script in the second part of the article to update only a specific addon. I've assigned this script to a hotkey and it works much faster than reloading all the scripts.

Here are the final scripts from the article. __init__.py:

bl_info = {
    'name': 'Test Multifile Addon',
    'category': 'All',
    'version': (0, 0, 1),
    'blender': (2, 80, 0)
}

modulesNames = ['addCube', 'addCubePanel'] # a list of imported module names

import sys
import importlib

modulesFullNames = {}
for currentModuleName in modulesNames:
    if 'DEBUG_MODE' in sys.argv:
        modulesFullNames[currentModuleName] = ('{}'.format(currentModuleName))
    else:
        modulesFullNames[currentModuleName] = ('{}.{}'.format(__name__, currentModuleName))

for currentModuleFullName in modulesFullNames.values():
    if currentModuleFullName in sys.modules:
        importlib.reload(sys.modules[currentModuleFullName])
    else:
        globals()[currentModuleFullName] = importlib.import_module(currentModuleFullName)
        setattr(globals()[currentModuleFullName], 'modulesNames', modulesFullNames)

def register():
    for currentModuleName in modulesFullNames.values():
        if currentModuleName in sys.modules:
            if hasattr(sys.modules[currentModuleName], 'register'):
                sys.modules[currentModuleName].register()

def unregister():
    for currentModuleName in modulesFullNames.values():
        if currentModuleName in sys.modules:
            if hasattr(sys.modules[currentModuleName], 'unregister'):
                sys.modules[currentModuleName].unregister()

if __name__ == "__main__":
    register()

Blender script to reload the addon:

import os
import sys

filesDir = "d:/Python/TestMultifile"

initFile = "__init__.py"

if filesDir not in sys.path:
    sys.path.append(filesDir)

file = os.path.join(filesDir, initFile)

if 'DEBUG_MODE' not in sys.argv:
    sys.argv.append('DEBUG_MODE')

exec(compile(open(file).read(), initFile, 'exec'))

if 'DEBUG_MODE' in sys.argv:
    sys.argv.remove('DEBUG_MODE')


Bone sharing weights with another bone? When working on a character rig (First time) I attempted to go in and fix it's weights. Apparently afterwards I gave the, "Neck" bone of our character the weights of the, "Chest" bone. No matter as I go in and remove the weights that the Neck Bone has influence on. However even after removing the weights the Neck bone had influence on, the mesh beforehand still moves with the Neck Bone even after removing the weights, I've never seen this personally. In fact when scaling the Neck bone, it acts with it's normal weights yet rotating it gives it the influence of the removed weights mentioned previously.

Here is a, "Before" picture of the mesh and Armature before fixing the weights as mentioned.

The selected bone in this picture is the, "Chest" bone with it's appropriate weights assigned.

Afterwards this is the same file with the, "Neck" bone selected. As you can see, no weights are assigned to the mesh below it.

Here is an example of what it's SUPPOSED to look like after rotating only the, "Neck" bone.

However in this example, this is the file AFTER I adjusted the weights to fix them (Moved the hair out of the way) in it's rest position.

As you can see, once I move the Neck bone in the new file with the adjusted weights, part of the character's scarf moves along with the Neck bone even though there are no weights assigned.

I've no experience in weight painting, only a couple of tutorials here and there. The specifics of this problem I am not familiar with.

NOTE. While I was fixing the weights I also added two new bones in her armature, "Shoulder" bones. They have no weight influence and they have not been touched since then. They were created by duplicating the, "Chest" bone and renamed and parented since then. I'm not sure if that has any influence on anything?

Thank you for any help on this matter. Usually when I run into problems I can fix them on my own by searching them up but this is something I'm having a hard problem finding/figuring out and had to resort asking on here. Any help is appreciated, thank you!

Edit 1: Here are the BEFORE and AFTER files of the weight paint changes.

Before:

After:

Thank you for any help!

Alright so I came to a solution but it's not exact. This is more of a, "Soft" fix. In other words it's more of a workaround rather than an actual solution. I explain my findings in complete detail in this video I made for it:

https://www.youtube.com/watch?v=wW3u6qJk2TQ

For those who cannot watch the video, basically both the Neck Bone and Chest Bone as mentioned in the main post are currently connected via parents. By removing the parent-child relationship from the Neck bone of the Chest bone, the problem of the Neck Bone sharing the weights goes away.

Again this is not really an absolute solution but it works for now. I can make this a workaround by parenting the two bones via, "Offset" however making them parented via, "Connected" causes the issues of the weights.

If anyone still knows anything about this a solution is very appreciated. For now this is just a soft-fix. Thanks for all the support!


How can I normalize weights to a limited subset of weights on a model with shapekeys? I just created a lot of shapekeyed facial expressions on a head/neck with appropriate head/neck weights, weights that I want to keep.  I would like to create vertex groups like mouthCenter and mouthLateral so that I can play with limiting the shapekeys to various parts of the face.  I would like these groups normalized to each other so that I could, for example, apply SmileLateral and smileCenter both at 1.0 to create the entire shapekey.

However, the normalize all tool from weight painting won't work for this, because it will normalize my (armature) deforming groups along with my non-deforming groups. Even if these groups are locked, it will normalize around them.  I've tried using the Shapekey Helpers add-on to apply a data transfer from a different model, but it doesn't apply the data transfer (when using its apply modifiers and keep shapekeys option from the shapekeys menu.)  The shapekeys appear to be applied prior to modifiers, so I believe I have to apply any data transfer I get for weights to restrict the shapekeys themselves.

I imagine the same would go for a vertex weight mix, even if I were to figure how to use that to normalize vertex groups to a limited subsection of all groups.

Any ideas?

Okay, it was easy.  It turns out that you can apply a data transfer modifier to a mesh even if it has shapekeys, which I didn't realize.  So I could make a copy of the mesh, delete deforming groups from the copy, normalize all the copy, then data transfer the groups back onto the main mesh.  Good to know.


How to customise (add properties to) existing Blender data? Is it possible to to customise Blender specific data structures?
For example how could I add a python list data type to a Blender action?

You can use a CollectionProperty to store a variable amount of items like a list, the properties per item need to be declared beforehand:

import bpy

class VectorPropGroup(bpy.types.PropertyGroup):
    # name = StringProperty() # this is inherited from bpy.types.PropertyGroup
    vector = bpy.props.IntVectorProperty(size=3)

bpy.utils.register_class(VectorPropGroup)

bpy.types.Action.my_collection = bpy.props.CollectionProperty(type=VectorPropGroup)

action = bpy.data.actions.new("My Action")

item = action.my_collection.add()
item.name = "First"
item.vector = (1,2,3)

item = action.my_collection.add()
item.name = "Second"
item.vector = (2,3,4)

print(action.my_collection[0].name, action.my_collection[0].vector[:])
print(action.my_collection[1].name, action.my_collection[1].vector[:])

It will print:

First (1, 2, 3)
Second (2, 3, 4)

Note that you can't add() items from within a draw() method. You need to call it manually (text editor / Python console) or create an operator for the user to be used in a UI.


Change opacity transparent image texture? I'm using a transparent image texture of humans on a plane for architectural scenes. Before I load the image to the Image Texture Node, I change the opacity in Gimp, like 50%, so that you can see through just a little bit. But I wonder if there is a simple way to do this in the node setup instead of Gimp?

I have search but I just find tutorials about how to use transparent images, but that I already know about.

This is the node setup I'm using:

Let's say you have an image with an alpha channel:

Which in turn, is nothing but a mask: an image with a black and white channel that determines the opacity of the RGB information. Black (0) is considered transparent, white (1) opaque.

If one were to use the image as color for the texture we get an opaque texture, because the alpha channel is not being used, just the RGB information.

Adding a transparent shader and using the alpha information to control the mix will make the black (0) pixels of the alpha channel be transparent and the white ones opaque (1).

To change the opacity of the alpha channel, you would need to make the white areas darker. To do that thre are quite a few options:

using a MixRGB node, multipy the alpha channel image with a black (0) color , that way the white areas of the mask (or alpha channel) will be less opaque.

By changing the value mix factor you'll get different degrees of opacity.

Alternatively you can subtract white (1) from the values of the alpha channel and get the same effect.

Using a math node with the multiply operation will also give you the same control by using values between 0 and 1:

Using a Bright Contrast Node with negative numbers for brightness will also have the same effect.

Or it can also be done with RGB curves

Or if you don't want to alter the values for the alpha channel for whatever reason, a different alternative is to use another mix shader and plug the result of the previously shown shader and mix it again with a transparent shader. Changing the fac values will change the opacity.


Can't control knee in blender 2.92 I'm new to blender. I want to make some animation using rig. When moving foot_ik.L, the knee has strange behavior. I Have searched and viewed some Youtube videos then I noticed I am doing something wrong. I found this link as most relevant video to my issue.
I tried to remove red-marked bones(first image) in order to add pole bone but can't select them(can't select red-marked, but can select green marked bones).
Note: Edit > Lock Object Modes is deactivated
Please guide me for this approach or offer better solution.

After hours of searching google and youtube found the solution finally. For those who may face this issue:
1- Select metarig
2- go to edit mode
3- rotate thigh.L and thigh.R (90 degree in my case)
4- go back to pose mode
5- under Object Data Properties > Rigify Buttons activate Advanced Options then Overwrite then click on Generate Rig
If any bone has problem for generating rig:
1- copy the bone name
2- remove it
3- create exact same bone(start and end points are important)
4- set parent
5- set children
6- set the name again
7- rigify again
Don't forget to apply transforms before any generations specially for rigify!


Customizing the Rigify meta-rig, Constraints & Custom Drivers, what's the solution? basically as the title says I am interested in two things:

How do I add constraints (Copy Rotation, TrackTo, etc.) to bones in the metarig, and then have them created/applied to/copied to the appropriate bone layers when you click the generate button.
Similarly, same for drivers. If I add a driver to a bone in pose mode on the meta rig, I see that it appears in the ORG layer when I click generate. How would I go about adding custom drivers so they appear on the appropriate working bone layers? Ideally for following this tutorial here: https://www.youtube.com/watch?v=LnsYKGDpBtQ I basically would prefer not to redo this if I need to make a change to the meta rig.

If there are some alternative solution or workflow to get the end effect, I'd be interested. I am tempted just to make my own rig, but some of the template subrigs like tentacle are very useful though, especially the IK/FK setup and that seems to be a pain to learn how to make.

You can't, at least not easily. The only rig type that preserves constraints after generation is the Raw Copy. And that one is pretty advanced and I am not sure what the correct usage for it is.
The only thing that would work without serious coding knowledge is to finalize your meta rig and add your constraints on the generated rig.


What is the best way to copy/append geometry from one bmesh to another I get geometry from bisecting some mesh bm_tmp by a plane and I want to copy/append the resulting geometry r['geom_cut'] (only the edges and vertices of bisection) to another bmesh bm. I solved it by the following snippet, but I was wondering if there is a better and more efficient way to copy geometry to another bmesh

import bpy
import bmesh

bm_tmp = bmesh.new()
bmesh.ops.create_monkey(bm_tmp)

geom = bm_tmp.verts[:] + bm_tmp.edges[:] + bm_tmp.faces[:]
r = bmesh.ops.bisect_plane(bm_tmp, geom=geom,
    plane_co=(0, 0, 0), plane_no=(0, 0, 1))

# Get all the vertices and edges
verts = [v for v in r['geom_cut'] if isinstance(v, bmesh.types.BMVert)]
edges = [e for e in r['geom_cut'] if isinstance(e, bmesh.types.BMEdge)]

# Copy geometry
bm = bmesh.new()
vertmap = {}
for v in verts:
    new_vert = bm.verts.new(v.co)
    vertmap[v.index] = new_vert

for e in edges:
    idx0, idx1 = e.verts[0].index, e.verts[1].index
    bm.edges.new([vertmap[idx0], vertmap[idx1]])

I tried bmesh.ops.duplicate(bm_tmp, geom=r['geom_cut'], dest=bm) but it is not implemented yet: NotImplementedError: duplicate: keyword "dest" type 4 not working yet! for Blender 2.79.

Your bmesh is just a python representation of the mesh thats in your scene. As long as you don't write your bmesh back into the mesh-datablock (bm.to_mesh(me)), you can use it for anything you want to do with it.

This means you can create a new mesh datablock and then use

bm.to_mesh(new_mesh)

since it's just a python object, you can copy it with a python copy method:

bm2 = bm.copy()

Which will give you a fully editable bmesh that is disconnected from your first bmesh. So you don't have to copy every vert & edge manually.

edit: this is how you seperate the mesh into two halfs that were split. You can then write it back into the edit mesh and separate the loose parts which will give you two objects. Because with your current code you get vertices and edges that define where your mesh is being cut, and not the actual geometry. -> your result:

My code example:

import bpy
import bmesh

bm_tmp = bmesh.new()
bmesh.ops.create_monkey(bm_tmp)

geom = bm_tmp.verts[:] + bm_tmp.edges[:] + bm_tmp.faces[:]
r = bmesh.ops.bisect_plane(bm_tmp, geom=geom,
    plane_co=(0, 0, 0), plane_no=(0, 0, 1))

bmesh.ops.split_edges(bm_tmp, edges=[e for e in r['geom_cut'] if isinstance(e, bmesh.types.BMEdge)])

bm_tmp.to_mesh(bpy.context.selected_objects[0].data)
bpy.ops.mesh.separate(type='LOOSE')

Visual result from this code:

Edit 2:
in that case, that you want to slice it multiple times -
instead of writing it to a new bmesh after each bisect, do this:

bmesh.ops.split_edges(bm_tmp, edges=[e for e in r['geom_cut'] if isinstance(e, bmesh.types.BMEdge)])

to apply the bisection to your bmesh and actually separating it by parts.
In the end you can write it to a actual mesh. Only then i would combine it with your other bmesh. You can't simply add two bmesh together.
so i'd suggest combining them like this, because it is the simplest way:

bm = bmesh.new()

bm.from_mesh( m1 ) # Add mesh 1 to bmesh
bm.from_mesh( m2 ) # Add mesh 2 to bmesh


Blender 2.8 removed use_environment_light API, what to use instead? So I found at the very bottom of this page that Blender removed the old use_enviroment_light API from bpy.types.WorldLighting. I have some code that used this API as follows:

bpy.context.scene.world.light_settings.use_environment_light = True

I wonder how I can update this code to keep using environment light in my rendering?

The property use_environment_light was part of the settings for the world when the Blender Internal render engine was used. This render engine has been removed in Blender 2.80 and replaced by Eevee. Like Cycles, Eevee uses the nodes based system for the world settings. Enabling environment lighting isn't necessary, it's always on.


Can framerate be randomized? Is it possible to randomize the framerate within one video?

For example, if I have a video shot at 25 fps, is there a way to make this video randomly play between 10 and 40 fps at different times during the video?  The goal would be to produce a 'glitchy' look when the video is viewed.

I only need to know if this is possible; I don't need to know many details.  Thanks in advance for your input.

Your final video will have a constant frame rate, but you can cut and mix pieces of video into your final output that play at altered speeds from their original source.

You most likely want to use the Effect Strip->Speed Control. There is also a strobe property for a video strip. Don't be afraid to keyframe properties to get varying effects during the length of your video.


Why pressing F to join two vertices not work? I press F to merge two vertices, but they only extend a bit (second photo below), not join together? Could you please help me out of this problem?

Link to my file

Actually, if I grab your top vertex and move it to the right...

here is what I have, which means you had some vertices overlapping:

In a bezier curve, a vertex can't be connected to more than 2 other vertices, so just delete these vertices and join again with F, or as pointed out by  vklidu, select all and AltC.


The Subsurf Modifier Did Something Weird to a Part of My Mesh I'm modeling a Master Ball from Pokemon that I'm going to 3D Print, but when I applied the subsurf modifier to the M it did something weird to a couple of the corners. I did some research, and I found nothing on how to fix it (Basically because I don't know what you would call whatever this kind of problem is). And I can't 3D print it with the model messed up like that. So if anyone could help with this, I would really appreciate it. Thank you.

I think if you rework it into all quads with the knife tool (pressing K) and then dissolve the unneeded edges it will work. Also: remove doubles. If it still doesn't look right: Sometimes you might think you hit the spot with the knife tool but you missed it. Zoom in to all the verts you connected and recheck. Make sure you cut all the way around to the back also.

Before

After

Edit: Actually it is even easier. you only need to turn the top tris into a quad by dissolving its bottom edge and then add in two new edges with the knife tool.


how to set camera to the same view as I turn my cursor? I want to turn the camera to get the view I want, but everytime I turn the camera, I need to go to render window to check if it's the view I want. I turn the view with my mouse cursor, but that does not affect the actual camera view in rendering, can I set the camera view the same as I turn my cursor?

You can enable camera lock, so your camera moves as you're looking through it.

Check it in Sidebar > View > Lock Camera to View
Then press Numpad 0 to view through your camera.
Now just move, zoom and your camera will exactly follow.

You can switch it on and off as you like.


How would I fix the moving position exactly to the part I want it to move? See how on the image the positioning isn't correct. I'm talking about the white pieces see how far they are from those movers with arrows that means If I move I would have to move an extra. It also makes it impossible for me to rotate them to the exact way I want without spending 2 hours.

in blender every object has an object origin the transform manipulators are at the pivot point and the pivot point is at the object origin (you can change where the pivot point is), if you want to move the object origin go to the Object>Transform menu there you have a couple of options, origin to geometry should do the trick.


How can I make the animation to be loop without starting from the first frame but from the last frame? When the animation start the point light is at the bottom in the middle on frame 1 :

Then when it's getting to frame 120 the point light is on the left side but when it's starting over from frame 1 it's like jumping backward to frame 1 and start from there and I want it to continue nonstop and not to move backward but to continue from frame 120. Like endless animation loop.

Your question is not clear, do you want the object to come back to the center or do you want it to continue further to the left after frame 120 ?
For the first case, see Vklidu's answer.
If you want the object to continue further and indefinitely to the left, go in the Dopesheet press ShiftE > Linear Extrapolation (or Channel menu > Extrapolation mode > Linear Extrapolation)


The Texture on a mesh moves in animation I am making an animation with two texts converted to mesh that have wooden textures.  When I animate this, the textures on both move for some reason.  Even stranger, I have two other meshes, a cube and a floor plane, whose textures don't move.  Anyone have any ideas?  Here is a link to the animation for reference:
https://drive.google.com/open?id=0B5WX5WPaU3pHUndFN3dVTVdrbkE&authuser=0

Looks like you have reflectivity turned on. Uncheck this box:

If using Cycles renderer, make sure you're using a Diffuse texture instead of a Glossy one:


How does one create an animated skeleton which can be applied to any model? I'm new to blender and 3d art in general and I'm trying to make animations which can be recycled for multiple models. Which process does one go through to make such a thing? Say, I have a generic humanoid skeleton, and I have animations which make this skeleton move, and I want any new model I have to able able to be swapped in the place of the skeleton so every model can be animated from the same animations without having to animate every single model every time. Or if you could point me to the right documentation to achieve that, I don't know where to start.

If two models share the armature (one armature is a clone of the other, with exactly the same loc, rot, scale and name of every single bone), the task is absolutely easy: create a dope sheet window, turn it into an "Action editor", select the second armature and select the action you made for the first model: in this way the two armatures will perform the same animation. If the two armatures are not clones, you will need a procedure called "retargeting", wich is not so easy, you will have to make some researches about it.


Shadows not reaching all the way to the ground in Eeevee Take a look at the shadow cast by the leg on the sofa in the foreground. Even though the object is touching my shadowcaster surface, the bottom part of the leg casts no shadow.
Larger objects seem to cast shadows just fine, but table & chair legs pose a problem! Any suggestions as to how to approach this would be MUCH appreciated!
(This is some virtual staging for a real estate listing.)

Enable the Shadow > Contact Shadows option of the light:

Also for the shadows quality, take a look at the Shadows in the Render panel (and increase the Sampling value):


Blender Evee volumentrics aren't working as they are supposed to why does my cube look so bad while the other one looks so crisp and detailed

The quality of volumetrics is largely controlled by the Tile Size and the number of Samples:

To better control the definition of the volume, use a ColorRamp.


Project flat plane on node displacement object This might be weird or totally impossible.
I have a subdivided cube which is the ocean. I use cycles node displacement to create waves (have to because the waves require complex node tree)
I have a flat plane (technically a disc) where, using textures and several noise nodes plugged into the alpha, i have created foam to be visible where waves and land intersects. The shape and uv of the disc is important, i couldn't simply add the nodes onto the wave / ocean object. There is a discrepancy between the foam and the ocean, because the ocean has waves. I know that i can't shrinkwrap the foam object onto the ocean object because node based displacement is calculated buring render and not actual geometry. But that's essentially what has to happen. Either there's a trick that allows me to do this, or there's some method allowing me to project, as if with a cinema projector, the foam object and it's nodebased alpha channel onto the waves, like a shadow, but white. and keep in mind that there's actual land in there too. Screenshots are obviously simplified with a diffuse shader instead of the nodes:

waves with node based displacement

discrepancy between flat foam and wavy ocean

Syncing displacement textures between two (or more) objects/materials is as easy as mapping to a single object.

First link the texture coordinate of the ocean object to the object itself like so

Then copy the Texture Coordinate, Mapping, texture and Displacement nodes to the material of the foam.

As long as you keep the Scale values of the mapping, texture and displacement nodes in the foam material the same as the values of their counterparts in the ocean material they should displace identically.

Further, if you need the foam to flatten toward the shore you can just use a colorramped gradient to ease between displaced water and the flat ground.


Armature Bone Global Local coordinates python scripting I'm writing a Python script to move a bone of an armature to a desired Global 3D point. When armature has only one bone my function works well, but when I add not connected bones, there seems to be an error in the retrieved local coordinates.

target_vec = Vector((0.0405, -2.0305, 3.1172))
bone.location += (armature.matrix_world * bone.matrix).inverted() * target_vec

I want the center of the cone to touch one of the sides of the cube (see Figure).

The above function should send the bone to the fp point but it is sending it to the cp point instead.

https://drive.google.com/open?id=1FeIGb1C24Y44RJLfExFJB7EGhgSnzk1w

Any ideas of what am I missing?

Snap active pose bone to 3D cursor.

Using methods outlined in this answer, with a slight change to keep the orientation (rotation) of bone, and set the location to the 3D cursor.  To test run in pose mode with an active pose bone, which is snapped to 3D cursor.

import bpy
from mathutils import Matrix

context = bpy.context
scene = context.scene
pb = context.active_pose_bone
arm = pb.id_data

locmat = Matrix.Translation(scene.cursor_location)
# create tramslation matrix in pose space
matrix = arm.matrix_world.inverted() * locmat
# set the new translation to bone.
pb.matrix.translation = matrix.translation


Keep losing "sub" pose library after re-openning the file I am trying to categorizing my pose library into many "sub-libraries" such as mouth, eye, expression.  However, blender only keeps the last sub-library selected before closing the file, and loses all the other when the file reopened.

Currently, 2.79

What do I need to do?
Is there anything else I have to do to keep other sub-library before closing the file?

Will move to 2.8 after this project.  Hopefully, the principal can be transferred.

Thank you very much for your kind help.

See the zero next to the name of the new pose library in the first screenshot? That means it has no objects using it and so blender will thing this is unnecessary data and clean it up when the file is saved.

You can fix this by adding a 'fake user' to each pose library you want to keep using the button with a big F on it next to the pose library name when you have it selected.

This is very counter intuitive behavior.


BGE: Use separate texture as alpha channel I want to use a separate texture (grayscale) on a material in the Blender game engine as alpha channel of that material, because I reuse the other (rgb) texture on another, opaque material.

I set up everything as depicted in the screenshots. The preview of the material looks as expected, but in the 3D view or in game mode (p), the material is opaque.

How do I setup this correctly to actually see the alpha effect?
Here is the test scene: http://www.file-upload.net/download-11505718/AlphaTestScene.blend.html

Edit: When I bake the alpha channel into the rgb-texture and check color and alpha in the influence, then it works. But it would be nice to have separate textures for each purpose (like specularity or bump maps).

I have pretty much the same as you have.

In-Game

Alpha = texture that feeds alpha channel
Color = texture that feeds color channel

Alpha color is not visible at all.
Where Alpha is transparent, nothing is visible
Where Color is transparent you see the material color
Where Color is opaque you see Color texture (rgb)

Material

Textures


Additive Emission in Cycles Question is how to create additive shader.
If you need particles which just "add" light to a scene. Not render a surface but create emission.

If color changes from yellow to red for example, the red area of model does over-draw the yellow area (object behind) in case the emission does not understand to just add / increase color factor.

My project: Download Blend File (sorry, stackexchange responded with upload error)

How to math "add" color in cycles?

Like Halo in Blender Render.

The way to do this is to add a transparent shader to the emission shader.  This means that the surface will emit light and allow light to pass through it, so further emission materials behind it will add to the brightness.

Adding some randomized color produces this result.  Note how the overlapping portions do indeed add up brightness as desired.


How can I export my blender model as a python script I am using Blender 2.77. When we select File > Export from the menu, the default export options Blender gives are .3ds, .fbx, .bvh, .ply, .obj, .x3d/.wrl, .stl, .svg formats. Is there any add-on or any way that would help us export our model as a python file(.py)?

So exporting the .blend to a .py file is impossible (see here), but instead of exporting, you can run a python script on a .blend file externally through the command line.

For this example, lets assume we have a directory that contains a folder of 100 .blend files that each have an object located at the origin. For our needs, we would like to raise each object by one unit on the Z axis, and change it's name to the name of the .blend file. We will use a python script to modify these files.

project_files
|   edit_blends.py
|   modify.py
|
|___blend_files
    |   lid.blend
    |   cup.blend
    |   pencil.blend
    |   ...

In the edit_blends.py file, we have code that utilizes the Python library to iterate over each of the .blend files. (edit_blends.py) For each of the files, we use the subprocess module of Python to call Blender from the command line with certain arguments that will run our script (modify.py).

Here is edit_blends.py

import os
import subprocess

blend_files_path = 'blend_files'

for blend_file in os.listdir(blend_files_path):
    if blend_file.endswith('.blend'): # Exclude .blend1 .blend2 files
        file = os.path.join(blend_files_path, blend_file)
        # Run Blender in the background
        subprocess.run(['blender', '-b', file, '-P', 'modify.py'])

Here is modify.py. This file is what is run in the Blender process that is called.

import bpy

blend_file = bpy.data.filepath

for object in bpy.data.objects:
    object.location.z += 1

    object.name = bpy.path.display_name_from_filepath(blend_file)

# SAVE THE FILE
bpy.ops.wm.save_as_mainfile()

It is very important to save the file, otherwise all changes will be lost.

The line that calls Blender subprocess.run(['blender', '-b', file, '-P', 'modify.py']) runs Blender, with the arguments given in a list.

-b <.blend>: run the file in the background
-P <.py>: run the given Python file

For more information on the command line, read this. Of course, you can do almost anything to the .blend file externally through Python (some things are restricted like OpenGL renders because they require the GUI to be open)

If you are on Windows, you need to add Blender to the PATH or run the command with the path to Blender.


Importing problems (*.3ds distorted / *.obj no materials) I just bought this model from cgtrader:https://www.cgtrader.com/3d-models/vehicle/truck/volvo-vnl670-trailer-truck--2

The problem is that, for some reason, I cannot make it work in Blender. This seems to always be the case; I literally cannot remember the last time when I imported something in Blender and worked right from the beginning. Usually I can find a way to fix the issues, but this time I'm completely lost.

If I try to import the 3ds format, it looks like the image below. Even though the mesh is messed up, the model has the materials attached and I can see them in the materials panel.

If I try to import the .obj format, the mesh is perfect, but there are no materials whatsoever. I tried to render it in Blender Render as well, but there are literally no materials, just the mesh.

Any help? PLEASE! This is so frustrating.

I understand your frustration.

I see on the site there's a FBX model as well. Have you tried that?
I too have this experience with 3ds format (seems broken with recent max export). Also there is issues getting 3ds out from blender and into recent 3dstudio max versions (format has changed it seems)

If the FBX does not work,
(I'm not sure if you are on windows or linux ), but if you are on windows I would try to use this converter:
http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=22694909
convert the fbx to dae \ obj \ 3ds with this tool and try those files, that might help as well.


How to control camera view I am right clicking, but I can't seem to rotate or move the camera at all. Any ideas? Blender only seems to be able to move objects and lights. Really confused since I'm new. Please help me if you can.

View -> Camera (or Numpad 0)
Shift + F (enter flight mode)
WASD to control camera and leftmouse to set the view


Noob Question. Front side of model is missing? I finished my 3d model of a face and I tried to import it into Unity. I dragged in the .blend file and then into the scene. But I could only see the back half of the face from where I was looking. I could also see the whole model from the inside.

There is an attached error as well;
'.' is not a valid texture file name on asset 'Assets/Imported/NEWFACEblend.blend' on material 'None__Face_001' of renderer 'Plane'. The file will be ignored.

Face normals are in wrong direction and unity renders only one side of the face with this shader. Select everything in edit mode then click on mesh>>normals>>recalculate outside or flip normals.
If you hit "n" and check in backface culling you will be able to check your model, and the inside of the faces are also darker.


Editing Text Geometry Without Converting To Mesh I have a unique issue.  I am trying to create animation effects similar to those found in the below tutorials using text objects that can be customized later with the text options in the object data tab.  To achieve this, my text objects cannot be converted to a mesh, as both tutorials describe.  I'm not sure if there is a way to use an unconverted text object with the boolean modifier as described in the second tutorial, or have a text object emit particles as described in the first tutorial.

http://www.blenderdiplom.com/en/tutorials/all-tutorials/394-tutorial-dissolve-your-logo-in-blender-262.html

http://www.blenderskool.cf/carve-a-text-from-a-wooden-block/

Again, it is very important that these text objects not be converted into mesh objects!  Any help is greatly appreciated, even if it is a simple confirmation that what I am trying to achieve is not yet possible in Blender.  Thanks!

After a bit of experimentation my conclusion is that there's no direct way to add a particle system to a text object, or to use it for boolean operations.

However, you can make your life easier by using a single button to create and update a mesh version of your text, using the script below.

I tried making the mesh updates automatic by running the update function in the scene update event handlers, but this proved to be a bad idea, and caused memory usage to increase continuously every second.

The script will add a "Text" tab in the tools panel, where you have a button called "Update text mesh".

Pressing the button will generate a mesh version of your text, or update an existing one to any changes you made to your text object. It will also hide the text object so as to make it a bit easier to work. To update anything, just unhide the text object, make your changes, then press the button again.

To make things simple, the script assumes your text object's name is "Text". No other name will work, and if no such object appears, you will not even see the "Text" tab in the tools panel.

Copy and paste this to a text editor and press "Run Script", or install as an addon for more permanent usage.

bl_info = {
    "name"        : "Update text to mesh",
    "blender"     : (2, 75, 0),
    "version"     : (0, 0, 0, 1),
    "location"    : "3D View > Toolbox",
    "description" : "Update mesh copy of text object",
    "category"    : "Object"
}

import bpy

class update_text_mesh( bpy.types.Operator ):
    bl_idname      = 'object.update_text_mesh'
    bl_label       = 'Update text mesh'
    bl_options     = {'REGISTER', 'UNDO'}

    @classmethod
    def poll( self, context ): return 'Text' in context.scene.objects

    def generate_text_mesh( self, context ):
        if 'TextMesh' not in context.scene.objects:
             m = bpy.data.meshes.new_from_object(
                context.scene, context.scene.objects['Text'], True, 'RENDER', True, True
             )

             o = bpy.data.objects.new( 'TextMesh', m )
             context.scene.objects.link( o )

    def execute( self, context ):
        o = context.scene.objects['TextMesh']
        t = context.scene.objects['Text']

        t.hide = True
        o.location = t.location

        o.data = t.to_mesh( context.scene, True, 'RENDER', True, True )

        return {'FINISHED'}

class UpdateTextPanel( bpy.types.Panel ):
    bl_idname      = "UpdateTextPanel"
    bl_label       = "Text to Mesh Updater"
    bl_category    = "Text"
    bl_space_type  = 'VIEW_3D'
    bl_region_type = 'TOOLS'

    @classmethod
    def poll( self, context ): return 'Text' in context.scene.objects

    def draw( self, context):
        layout = self.layout
        col    = layout.column()

        col.operator(
            'object.update_text_mesh',
            text = 'Update text mesh'
        )

def register():
    bpy.utils.register_module(__name__)

def unregister():
    bpy.utils.unregister_module(__name__)

if __name__ == "__main__":
    register()

EDITED: added a version that updates the mesh automatically with every frame change. Also requires the text object to be named "Text", but otherwise requires nothing else. Copy this script to the text editor and press "Run Script" to activate.

import bpy

def update_text( scene ):
    if 'TextMesh' not in scene.objects:
         m = bpy.data.meshes.new_from_object(
            scene, scene.objects['Text'], True, 'RENDER', True, True
         )

         o = bpy.data.objects.new( 'TextMesh', m )
         scene.objects.link( o )

    o = scene.objects['TextMesh']
    t = scene.objects['Text']

    t.hide = True
    o.location = t.location

    o.data = t.to_mesh( scene, True, 'RENDER', True, True )

bpy.app.handlers.frame_change_pre.append( update_text )


How to mask triangle out of the video strip in VSE? Im struggling with masking portions out of my video in VSE. I need to mask two triangles at each side of the video, because when positioned next to each other in 90 degrees angle (via transform layers), the corners will overlay each other and ulimately obstruct the view of the other video.

So in another words I need to have 4 same videos but cut the corners of each. I think this can be solved by some masking but I did not find the answer yet.

Thanks, Mike

I need to mask red parts, but how?

Use create a Mask (in an UV/Image Editor set to Mask Mode) covering the content you want to keep. You can Ctrl+Click to add Points to create a Mask and Alt+C to Toggle Cyclic so that the first and last point are connected. Use V to Set Handle Types if needed.
Set your Transform Effect Strips Blend type Properties (N) each to Alpha Over. Oh and you'd better mute (H) your underlying Video Strips when you use an Effect Strip on top to reduce unwanted side effects.
Use that Mask going to the Modifiers Properties of your Video Strip in the VSE, click Add Strip Modifier, set it to Mask instead of Strip (Type of input data) and select your Mask created in Step 1.


in final render it remains visible from the start! The castle isn't supposed to show in the beginning I keyframed the (eye) on an object at the beginning of a frame but it still shows in the beginning of the frame where it is supposed only show in the middle(it does this when rendering. How to fix this?

The eye icon controls the viewport visibility. The render visibility is controlled by the camera icon. Both of them can be keyframed independently of each other. This way you can have an object visible while you model, e.g. to make sure it doesn't intersect other objects, while hiding it in the render, or hide an object in the viewport, to make otherwise obscured objects easier to edit, while having it show up in the render. The screenshot below is from Blender 2.79, and in 2.8 it is slightly different, but similar enough that this image should suffice for both versions.


how to move baked smoke domain I've baked a smoke simulation and now 'm trying to animate its location but even tough the domain is moving the smoke seems to stay exactly at same location. I've tried everything: parenting it, armature deform, limit/copy location it just doesn't seem to work. Is this possible? Thanks in advance.

To move the smoke you don't have to move the domain. You have to move the "flow object"

I have done a simple and basic blender file with two cubes, one named domain and the other named flow. The flow object has two location keyframes at frame 0 and 90.

Hope this replies to your question


Turning multiple materials into one texture I'm fairly new to Blender so there might be an obvious answer to this, but I need to be able to create a texture based off of multiple materials, sort of. I'm making low poly game assets, and have just been assigning materials to faces to get them "textured", then exporting them as .fbx files and using them in Unity. However, this creates WAY too many materials in Unity. I'd like to just use a uv map, but whenever I try painting, the colors run into each other a little bit at the edges. Is there any way to translate multiple materials into one .png?

Baking is the way to go. If you're in blender internal, baking is very straightforward. If using Cycles it is a little more complex but can give great results. Create an image for each map that you need, open that image and select the node in the Cycles node editor, then bake the map you need in the bake panel. It can combine the diffuse map from multiple UV projections, procedural materials etc.


How to color areas corresponding to a bump map? Hi, I have got a problem here, the engraving on the right side was created using a bump map, but how do I color it? On the left side are the nodes that I am using.

Thanks.

Use a mix node to choose between the two colours you want, connect the bump image to the Fac input of the mix node.


How do I fix this problem with vertices? I'm modeling a car. the middle of the hood (the centerline of the model) was originally a single edge but then subdivided. When I grab any vertex along that line, this happens. It pulls up a single vertex like so. I am using a mirror modifier. What am I doing wrong? Comment and ask for any additional information you need. Thanks.

Nevermind, I figured this out thanks to Duarte. Wow im a noob. Ngons were my problem for anyone referencing this problem.


Normals of mesh are super small like a dot, what could have possibly gone wrong? I've been learning Blender and I've been following some tutorials. I went pretty far with one of them only to realize that my normals seem to be messed up because of the lightning and also my inability to use tools such as Shrink/Flatten.

So I went ahead and made Blender display the normals of my mesh and they look like this:

.

I circled the small blue dots that are supposed to be my normals.

You may think that they are flipped or that I need to recalculate them, I've already tried that and nothing changes. The only thing I see is that little blue dot on some faces. I've also tried increasing the normals's size to maximum (10) but I still can't see anything other than the dot.

Any idea?

Sounds like your object may have some unapplied object scale.
Press ⎈ CtrlA> Scale in object mode to apply it.

The length of the normal indicators is defined in object space; scaling the mesh down in edit mode makes the indicators "longer" relative to the mesh:

But scaling in object mode scales object space itself, keeping the indicator size proportional to the mesh size. So if you have a huge object scaled down a lot, you'll end up with very small indicators.

Object scale behaves like a sort of offset, only affecting the apparent size of the object while mesh operators such and "see" the object without any object scaling. This can affect other things besides normal indicators, so it's a good idea to be aware of this behavior.

See Why are the longer edges being beveled more?


How to get hard edges when using subsurf modifier? I am rather new at modeling but I am working on a nicer Porsche 944 model. I have a solid looking hood but there is a part of the hood where it drops a little and with the sub surf modifier I am having issues modeling it. I have tried extruding and then re-merging half the hood as well as just putting a loop cut in and moving half the hood down. Both of these are not producing crisp edges like seen in the photograph. Any ideas?

Couple ways to do it. One is to use an Edge Split modifier, adjust the angle at which you want an edge to be sharp, or mark specific edges sharp as needed. The other is to add additional edge loops on either side of where you want the sharp edge.

For example, here's three cylinders:

In the middle is a 32-sided cylinder with the Subsurf modifier set for 3 subdivisions. On the right is the same cylinder with the Edge Split modifier turned on. On the left, is the same cylinder with additional edge loops above and below the edge that needs to be sharp.

Same cylinders, showing the vertices on the left cylinder so you can see the two extra loops. Both approaches work. The slightly beveled edge resulting from adding more loops will arguably give you a more realistic edge, since the real car likely doesn't have a perfectly sharp edge there (few things IRL do).