Why am I getting these spikes after Solidifed an SVG file?

I remember having something similar to this problem. What I had to do was in edit mode, there were vertices that were sticking out for no reason at all. I am not sure why they do this, but what I had to do was delete the vertices that were sticking out in edit mode. I hope this helps!


Water rests about half an inch over cup from inflow

SOLVED! Okay so how I was able to fix this issue was I simply removed the plane from the Fluid Simulation. Not sure why that solved the issue but it did.


Try replacing the # Get the objects part of that script with the script below.
# Get the objects
ob1 = bpy.data.objects["Cube"]
ob2 = bpy.data.objects["Suzanne"]

# Get the evaluated objects
depsgraph = bpy.context.evaluated_depsgraph_get()
obj1 = ob1.evaluated_get(depsgraph)
obj2 = ob2.evaluated_get(depsgraph)

See types.Depsgraph


Is it possible to deselect element but keep it active?

Based on the comments it seems like the answer to the question is that Active-But-Unselected elements in Edit Mode are not really intended to be used the same way as Active-But-Unselected objects in Object Mode.

Active verts and edges become deactivated when unselected, and unselected faces, while remaining active, become hidden which kind of forces you to "work in the dark".

For the specific use-case I posted in the original question it seems like the cleanest way to achieve that is to use the 3Dcursor as the pivot like sambler and user3800527 mentioned.

To keep conventions consistent across modes in Blender I wish all elements had a persisting active item that remained visible regardless of selection. It would make learning Blender a lot easier without having to ask so many questions :)


Why the 3d sound of my object stays the same in bge?

In the sound actuator set: minimun gain to 0.0, maximun gain to 1.0 and maximun distance to ~50 (estimate from the image provided), i dont know the scales you are using but the camera appear to be at ~50 units from the sound position. The scales of your blend are weird so is dificult to say something near reallity.

Here is a .blend to demonstrate, just press P and then SPACE to move the camera.


Vertex Groups Density working in opposite way

You have clicked the inverse button , just click it again and it will go back to normal :


Essentially what's happening is the transparency is being turned into black which will just absorb all light. So it won't reflect.
How you should go about doing this, is make a material for your decal, should be a mix of diffuse and glossy, then, using the alpha from the texture as the factor, mix that with the material for the rest of the cap.

There's just a quick example I put together. The transparent parts of the texture use "Main Material", and the opaque parts use "Decal".


strange distort with simple pose on basic cilinder

You might have the origin set wrong. Try selecting the cylinder and pressing the key you have set to search (I have space but you might have to go into edit-preferences and set it to something). Then search for "set origin" and press "origin to geometry".

My other guess is that there is something wrong with the weights. Try removing the armature and adding in a new one. Select the model and then shift+select the rig and press ctrl+p "with automatic weights".

It also seems like your bones are a bit too far out. Maybe try moving them/scaling them inside the model before applying the weights.


if i wisely use an operator that dont have 'UNDO' in its bl_option it can work easely.

class SCATTER_OT_panel_toggle(bpy.types.Operator):
    bl_idname      = "scatter.test"
    bl_label       = ""
    bl_description = ""

    pref : bpy.props.StringProperty()
    def execute(self, context):
        pref=self.pref

        addon_prefs = bpy.context.preferences.addons[__name__].preferences

        if eval("addon_prefs."+pref)== True:
            exec("addon_prefs."+pref +"= False")
        else:
            exec("addon_prefs."+pref +"= True")
        return {'FINISHED'}

example in code ui

        row.operator(SCATTER_OT_panel_toggle.bl_idname,text=na,emboss=False,icon=ixon).pref = "scatter_radar_is_open"


It is of course possible to test stuff in a 3D environment. Big companies for example do it when they build a factory to check whether any pipes intersect with the walls or cables. Better safe than sorry.

Doesn't mean it's easy in Blender. You can misuse Blender as a CAD-Software. I have used it to visualize stuff I wanted to build in order to find out lengths or shapes. Turns out it does a reasonably close simulation of a solar eclipse, too. You could write a script that accurately checks for intersections.

Realtime physics can help as well.

However...

All of the simulations in Blender are not built for high precision. Especially the physics are meant to be an amazing aid to animation, not a precise model of the world.

Also, most 3D printers have tolerances which means: what you model is not precisely what you get. Gears will work, just not amazingly well. You can't beat bought gears or a solid lathe to make them yourself with a 300 bucks printer.

Quick answer: it helps and you can model the parts for the printer but you need to gather experience to foresee all the pesky little details involved.


Tell me if this is ok for you:

Create 2 objects: Your cube and your cylinder
Create 1 armature with a small vertical bone for the cube and a long horizontal bone for the cylinder.
Parent the small cube to the long with a ctrl P > Keep Offset.
In Pose mode, give a Bone Constraint > Limit Location to each bone, choose Local Space and click every axis that should be limited.
Now when you move your cylinder bone it should only go up, and the cube bone should follow it and be constrained in its axis


There is no button in image (compositing). Button called mist

Short answer. Re-rendering is your only option.
PNG will not save the mist pass, or any other passes. It will only save color and alpha by default.
If you need to save multiple layers use OpenEXR multilayer.

When you import the rendered image back it will have the corresponding sockets for the layers you saved.


Something similar happens with Materials/node trees that are not used by any objects (ie - don't have "users". Objects produced by Sverchok don't automatically make those objects a user of a Sverchok node tree. You might need to press the "F" icon in the nodetree header toolbar (or Shield icon in 2.8+), to add a fake user to the node tree, then save.

The issue is Old. We discuss this on the Sverchok issue tracker back in 2014 - https://github.com/nortikin/sverchok/issues/356 )


Custom Fresnel Node for Specular Workflow

What is specular workflow for game developers?

A workflow in a game engine determines what kind of textures you need. In the specular workflow you need a "specular texture", which controls the color and strength of specular reflections. See for example this Unity documentation.

How is this relevant for Cycles users?

3D painting tools (like Substance Painter) can export specular textures, and one might want to use these textures in Cycles. Another usage is that this way you can control the reflectivity with some procedural noise, simulating dust, scratches, rust, dirt etc. (If you simply use the "physically correct" Fresnel to control reflectivity, you lose the ability to manually control it).

Why is it so important to remove this lowest reflection?

It is removed so that later the reflection can be fully controlled with the specular map. The original Fresnel group always has some F0, while we want zero F0 for a black specular texture.

Can a metallic rim have a color different from the normal reflection?

Yes. The full theory is presented here: http://jcgt.org/published/0003/04/03/paper-lowres.pdf

In this paper the metallic rim is more or less a brightened version of the base color, however in the video CynicatPro already did a brightening when he mixed with white in the Fresnel effect. Physically the metallic rim is also part of Fresnel (it occurs because the red, green, blue components of light have different Fresnel curves).

Are there good alternatives?

Yes, for example here there is a PBR shader that uses a "metallic" workflow, and soon Cycles should have a built-in "Disney shader", also with metallic control. (There are already builds with this feature on http://graphicall.org/)

Where can I learn more?

Andrew "Blender Guru" Price also has some video tutorials about PBR materials where he explains CynicatPro's nodes, maybe it is more understandable for you.


Looking at the code for BGUI, it appears that the color parameter is not being used in text_input.py. Your best option is to use theme to customize the input text color.


How do I reset sculpting tools to default? Each click destroys the mesh

In the Tool panel > Brushes, click on the down arrow button and Reset Brush:


snap / selection the deformation bones of my bird to the cursor does not work as expected

This seems to be an unexpected behavior.

If you select the bones in pose mode, then switch to edit mode :

If you select the bones in edit mode :


How can I link one face data to multiple faces for uv mapping?

Quick answer: No, as far as I know there is no way to copy UV data between chunks of mesh belonging to the same object.

If the spokes are all the same they should be kept as separate objects, as instances sharing the same object data.

Anyway if you still want them as one object then

Select your spokes object
Enter edit mode
Select one spoke
Separate it from the main object using P
Exit edit mode and enter edit mode on your separate spoke object
Edit it as desired, and assign it the correct UV coordinates.
Now place the 3D cursor at the center of the wheel/spokes
Press . (Period key) to rotate around the 3D cursor
Copy your spoke object with Alt + D to make instances
Press R to rotate around the 3D cursor
Adjust the angle as desired and place as many copies as necessary

You may now join them again as before, and they will all have the same UV coordinates, although I think there are better workflows.

Either keep them as separate object instances sharing the same object data and that will keep them in sync automatically, or alternatively, if you need them as a single object, use an Array Modifier.

Delete all but one instance, and add an Array Modifier to the
remaining one. Set it to object offset.
Now with the 3D cursor still in the center of the tire add a new
empty object
Rotate it the same amount of degrees you would rotate one of the spokes.
Assign this empty as object offset to the array modifier
Adjust the number of items as desired.

Now you have a single object but they all share UV data and are kept in sync.


Figured it out at last. Select the group input node and press N key to bring up Properties window. You can then use the cross button next to the node label that appears immediately below the inputs and outputs list. Here's a snapshot:


Why are all my objects distorted after editting scale?

These setting can cause that problem. Set them to the same values your camera uses.


Change in character's location with key frame messes up cloth simulation

I think I found a solution changing the cloth simulation mass to 0 before Changing location than after 2 frames change it back to original cloth mass


Change value of sun light emission strength from Python console or script

Yes the tooltip can be a little misleading, look for the node_tree property on the lamp data object.

With the lamp as context object

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

>>> C.object.data.node_tree.nodes['Emission'].inputs['Strength'].default_value = 2

# or via bpy.data (D)

>>> D.objects['Lamp'] == C.object
True

>>> D.objects['Lamp'].data
bpy.data.lamps['Lamp']

>>> lamp = D.lamps['Lamp']

>>> lamp.node_tree.nodes['Emission'].inputs['Strength'].default_value = 3


The problem is that you're trying to map a hemisphere (the view) onto a plane (the rendered image). There is always going to be distortion.

But you're right, you might be able to choose what distortion you get. Have a look at the various projections used in geospatial software. If you want equal angles, perhaps one of the equal area projections would suit you - although I suspect Blender's fisheye lens is already some kind of equal area projection.

As for implementing a different projection, you might be able to do it with an OSL shader, by placing a lens object in front of the camera.


How can I decompose a matrix for use in DirectX?

In your engine you need to compose the matrix m like this:

Matrix m = Matrix.Translation(loc.x, loc.y, loc.z) * Matrix.RotationYawPitchRoll(eul.x, eul.y, eul.z) * Matrix.Scaling(sca.x, sca.y, sca.z)

# matrix_world = matLoc * matRot * matScale


Too much smoke compared to the source mesh size

I can see your domain covers way more volume then the rocket and the jet itself. The minimal amount of smoke rendered would be the amount contained in one voxel, looking at the shape of the smoke I'd guess you don't have enough domain divisions for such a comparatively small emitter.

If the scene is totally static and the rocket does not move, you should try scaling the smoke domain in such a way it's the smallest size possible to achieve the effects you need, as calculating empty space, just wastes processing power and relative voxel size is smaller, therefore the shape of the smoke is more precise.

To know the correct domain size try baking first with lower resolution division so you can see the general shape of the sim, than increase the resolution until you get the results you want.

If you want to emit a specific amount of smoke you can keyframe the "use inflow" box

And if you want to add more realism you could consider switching the emiter from smoke to "fire + smoke"


Animating object from speed data in python

Integrate the velocity curve.

Please note: Am currently working on an addon that uses 3rd party addons scipy (to integrate here) and matplotlib to plot.

Displacement is the integration of the velocity curve.

Instead of 10ms between points (would need frame rate of 100fps for a frame each) have spread the velocity across the scene frame range. dt is how many frames between points.

Scipy.integrate.cumtrapz is used to integrate the velocity list, setting initial displacement to zero.  This is basically the sum of the area of each trapezium. Remember have bloated out the time scale, for strictly having  10ms between readings

t = np.linspace(0, len(v) * 10 / 1000, len(v))
s = integrate.cumtrapz(v, t, initial=0)

and the frame for 10ms (where fps = 24) can use the utility method.

>>> bpy.utils.time_to_frame(10 / 1000)
0.24

Result of Matplotlib.pyplot

Displacement in blue, velocity (scaled by frames per point (dt)) in red

The resulting fcurve.

Test script maps the displacement to the frame range, considering velocity as blend units per frame, rather than meters per second.

import bpy
import numpy as np
from scipy import integrate

plot = False

context = bpy.context
scene = context.scene
ob = context.object
ob.animation_data_create()
ad = ob.animation_data
action = ad.action or bpy.data.actions.new("Displacement")
ad.action = action

v = np.array(
    (
        0.111,
        1.11,
        2.22,
        3.33,
        4.555,
        1.111,
        2.22,
        10.11,
    )
)

t = np.linspace(
    scene.frame_start,
    scene.frame_end,
    len(v))
dt = t[1] - t[0]
s = integrate.cumtrapz(v, t, initial=0)
if plot:
    from matplotlib import pyplot as plt
    plt.plot(t, s)
    plt.plot(t, dt * v)
    plt.savefig("disp.png")
    plt.show()
# ravelled list of frame, value keyframes
kfs = np.empty((v.size + t.size,), dtype=t.dtype)
kfs[0::2] = t
kfs[1::2] = s
# move in x location
fc = action.fcurves.find("location")
# remove if exists
if fc:
    action.fcurves.remove(fc)
fc = action.fcurves.new("location", index=0)
fc.keyframe_points.add(len(v))
fc.keyframe_points.foreach_set("co", kfs)
# add linear velocity points before and after
kfs = np.insert(kfs, 0, (-dt, -v[0]))
kfs = np.append(kfs, (scene.frame_end + dt, s[-1] + v[-1]))
# set handles based on before / after
fc.keyframe_points.foreach_set("handle_left", kfs[:-2])
fc.keyframe_points.foreach_set("handle_right", kfs[2:])


How to disable anti-aliasing in the background images

You need to change your interpolation type to Closest:

This also works with Materials Too.


Actually it is not the last line that is causing the error but the GetValue method.
In order to access the location attribute of the cursor attribute of the scene, you must execute scene.cursor.location. Meaning you must first get access to the cursor, then to its location. What you can do is replace your GetValuemethod with :
def GetValue( self ):
    split_path = self.path.split(".")
    attr_path = split_path[0]
    if not hasattr(self.context, attr_path):
        print(f"Error : {self.context} does not have any attribute named {attr_path}")
        return None
    value = getattr(self.context, split_path[0])  # Access 1st member of the property path
    for depth in range(len(split_path[1::])):  # Iteratively access the other members
        attr_path = split_path[depth + 1]
        if not hasattr(value, attr_path):
            print(f"Error : {value} does not have any attribute named {attr_path}")
            break
        value = getattr(value, attr_path)
    if self.copyValue and hasattr(value, "copy"):
        value = value.copy()
    return value

Meaning, if you want to access the X coordinate of the cursor location, you can change the last line to :
EventWatcher.AddWatcher(EventWatcher(bpy.data.scenes[0], "cursor.location.x", CompareLocation, CompareLocationCallback, True))

Result :

By the way, I suggest looking at the guidelines for python naming and such in Blender.


Ok... I can't help putting out the laziest of the answers...

Enable the Add Curve: Extra Objects plugin.

Then do Add->Curve->Spirals

Select spiral type number 3 (spheric), and give it the parameters you want for radius, turns, etc:


You want an edge loop to follow that crease. Something like this:


The tool you are looking for is called 'Poke Faces'.

If can also be activated from the Mesh menu in edit mode under the Faces submenu (i.e.  Mesh ‣ Faces ‣ Poke Faces).

see https://docs.blender.org/manual/en/latest/modeling/meshes/editing/faces.html#poke-faces for more info.

In Blender 2.8, the Faces sub menu has been moved out to be its own full menu. It also appears that the alt-p shortcut is not defined, so that is likely to be your problem.
See:


In blender internal set the Specular Intensity value to a smaller (or Zero) value.


Audio bake to f-curves fails with very high numbers

If your sound bake is showing that behaviour try reducing your baking frequency High and Low to within the audible frequency range.

20 to 20,000 Hz

The SI unit of audio frequency is the hertz (Hz). It is the property of sound that most determines pitch. The generally accepted standard range of audible frequencies is 20 to 20,000 Hz, although the range of frequencies individuals hear is greatly influenced by environmental factors.

Audio frequency - Wikipedia, the free encyclopedia
https://en.wikipedia.org/wiki/Audio_frequency

Which is likely why the bakes returned rubbish on some audio formats.
The sound drivers addon bakes n frequencies over a channel range.  I've also put in the ability to bake on music note frequencies.  Here is a screenshot of rainbow_road.mp3 baked to the 88 notes of the keys on a piano.

Baked as custom properties on the speaker (data part) object.  Fcurve modifiers are used to map the range of the fcurve. A simple driver can be added to any object, and if using channel 0, in the case of image AH0 is used as a driver on the cone, a simple grid visualiser can be created.


What is the best Blender Python API reference?

The types module is only used for documentation.
See this page for tips on finding actual datapaths.

Make sure you are using the latest API documentation too, see Where can the latest API documentation be found?


how to bake high poly and texture normal map together

See How does normal baking work? on how normal maps are created.

You can't bake other textures and the normal into a normal map because the normal map encodes the direction of the normals in the RGB channels of the image representing the map.

From Bump_and_Normal  (Linked to 2.4 because there is more info)

  Normal maps in Blender store a normal as follows:

  Red maps from (0-255) to X (-1.0 - 1.0)
  Green maps from (0-255) to Y (-1.0 - 1.0)
  Blue maps from (0-255) to Z (0.0 - 1.0)

Since can add more than one texture to a model this isn't a restriction.

EDIT: A normal vector is perpendicular to a face its coordinates (x,y,z) are stored as a pixel in an image map.


Ok, well first, you might be doing it wrong...

When you make a loop cut, click to establish the loop cut. Once the loop cut has been made, drag it (not holding down the mouse) to the desired location and click again to set it.

Does that work?

Also, just so you know, you don’t ever want to have vertices overlapping—which leads me to:

Pro-tip: if you’re using subsurf and want sharp edges, hit N, which opens up a side bar on the right. In it, in the default Item tab, you’ll see Mean Crease. Select the edges you want to keep sharp, and set their Mean Crease value to 1.00 (or any value in between) to accomplish your creases with no extra vertex data and no overlapping vertices (which will come back to bite you).

Good luck, and happy Blendering,

John


How do I calculate an angle of a surface?

Besides calculating the angle manually via trigonometry - you can actually snap and align objects to faces.

Turn on snaps, select face. Turn on Align rotation with the snapping target.

After you snap it, the angle should be displayed in the cylinder's transform.


Vertex dots in Edit Mode disappeared- how to get them back?

You might have set the vertex size in your Theme Settings to a very low level. Go to User Preferences -> Themes, and choose the 3D View Section:

From here, set your Vertex Size to something you desire (10 seems to be the maximum):

Looks like this in 3D View:


Rigid body animation with constraints and relationships

It sounds like Rigid body constraints are what you want.

For a padlock you most likely want a Hinge constraint, to allow rotation on only one axis.

Creating a Rigid Body constraint

3D view > Tool Shelf > Rigid body tools:

This is the easiest way (currently) to create RB constraints. (Select objects and press Connect. all selected objects have to be Rigid Body objects to do this.) This will create an empty that represents the constraint. (Constraint settings are in the physics panel)

A quick setup,
frame 1 and frame 50:

Note that the orientation of the empty refers to the orientation of the "hinge" (what direction it's allowed to rotate in.) by default the hinge will be allowed to rotate around the local Z axis of the empty.

Result:


For best practices I would recommend to learn from larger projects done with blender.
You could look how Big Bug Bunny was organized.

First don't have a team editing one large .blend file, have different folders for textures, material libraries, scenes, characters and so on. Each of these file can be versioned in a Version Control System (VCS).
Have different scenes which only reference all the used models (link instead of append). This makes it versionable. When someone decides that a model of a character
looked better a week earlier, you could restore this character from the VCS.
To track the changes made on an individual item the VCS comment / history should be used.
Unlike in software development you wouldn't be able to create branches and merge them back into a head revision. Technically this is because the files are binary and no meaningful difference can be extracted for merging. You usually need a branch when your software is deployed to a production environment and develop new features in a branch and fix bugs in the production version or vice versa. When the new features are scheduled for release you would merge features and bug fixes. But this doesn't happen when creating an animation, when a movie is out it can't be bug fixed nor would new features be added. Having that said it is probably not as painful as in the field software development not to have the ability to merge.
In order to debug settings that were unintentionally changed and lead to undesired effects. The settings could be compared between two revisions of a file as described here: Get a diff between two .blend files

Which VCS should be used?

This basically depends on the support of your platform used, the experience the team members for details see:

SVN, Git, Mercurial, and CVS – Comparison of Version Control Software
Using Mercurial Version Control with Blender Projects from iKlsR's comment


Setting all default_values of nodes to 0 does not result in expected black output

Some nodes like the RGB nodes have only outputs and they have to be processed as well if one wants to controll all possible inputs using the API. Also some nodes could have additional variables like "operation" mode or "use_clamp" in the Multiply node.

To gain complete control it is necessary to look at inputs as well as outputs. In the node setup above the RGB nodes are the main expected user input/control. These nodes do not have any input-(sockets) only one output(-socket). In the node editor this is obvious as the RGB node has no input socket. Working with the autocompletion in the blender python console does not reveal this information as easily.

If we expand the metallic paint material in this blendswap scene by elbrujodealtribu we see that there are even more cases to consider. The Multiply node has also a boolean use_clamp this will require special treatment. The second value of the multiply node is not linked and therefore would require to be set while the first value of the Multiply node is linked and therefore does not require to be set. Therefore each type of node (node.type) will likely require special treatment


Way to apply height data into Displace modifier (or equivalent transformation) on a plane

Use a RGB TIFF

Ok, it is a tricky solution, and I am not sure the behaviour of the "Fields" checkbox. But it seems to yield reasonable result with my testing toy data. The idea is using the commonly used displace modifier. But, as I could not come up with a friendly format, I use a regular RGB to work in Blender.

The workflow is the following:

Adapt the raw data into a 24 bit resolution (integer), and partition it in three bytes. The idea is that (0, 0, 0) is the lowest, (255, 255, 255) the highest, and the following trivial conditions are assured:

(0, 0, 255) < (0, 1, 0)
(0, 255, 0) < (1, 0, 0)

Save the previous 24 bit into a RGB channel TIFF. The data is a bit strange, but as a matter of fact, you have 24-bit of "information" per pixel.
Make the typical plane > displace > image > etc. in Blender, and activate the checkbox of "Fields".
If I'm not mistaken, you have now a height-mapped 24-bit resolution thanks to the RGB 8-bit per channel TIFF.

Edit: Now I'm trying this with real data, and it seems to fail (the height is veeery noisy, so it seems that I have misunderstood the "Use fields" option, which I cannot find in the documentation. For now, I will use 8 bits of data. Which I am not very happy with.


Cycles: Apply gradient to light cone setup with spotlight lamp

As mentioned in the comments under your question, this can be achieved using an emission shader connected to the volume output of a material with a gradient texture controlling the strength.

You will need to adjust the coordinates for the gradient texture however, as the default gradient texture has the gradient along the x axis. Using a texture coordinates node with the generated output connected to a mapping node we can position the texture however you like. To get the gradient in the direction you desire you will need to set the Y rotation to 90, which will rotate the gradient texture on the Y axis by 90 degrees, making it look like you want. You can also adjust the length over which the gradient falloff occurs by adjusting the z scale (lower values will stretch the texture more) and the X location (to move it up and down). The reason that you need to use X location instead of Z location is the mapping node applies location, then rotation, then scale, so the 90 degree rotation on the Y axis makes the X location become the Z location.

As josh sanfelici did in his setup, you can add a math node set to multiply (between the gradient texture and the emission shader) to control the strength, however in many cases you can get away with only positioning and scaling the texture to suit your needs.

Here is a node setup that will do what you want:


How to paint a texture on, based on the way it was mapped on with UV?

In texture paint mode you can either

Paint and modify the existing texture image such as (.png) file.
Paint on a new texture and layer the textures so that one covers the others.
Paint with a brush from one image to another final image ... rather like a clone tool from GIMP

A video tutorial for texture painting is probably a necessary resource for ease of explanation and understanding.


Particle system doesn’t align hair object to assigned vertex group

Your particle system is correctly setup, and your particles are being correctly emitted from your chosen vertex group.

There is only one eyelash particle being emitted though, I am guessing you will need more than one.

What your are seeing are Particle Children which are instanced from the parent one around a predefined radius. This radius is far bigger than the area you would want eyelashes to emit from.

Either reduce the radius, or disable children completely and increase the number of actual particles instead.

Turning off Rotation and emitting from Vertex instead might also help achieve a more tame look.


How to Make Semi-Transparent Edges Opaque?

I'd use a set alpha, connecting the original image's alpha and color, and then add a color ramp onto the alpha.  Then you can adjust the white to whatever level you want to be absolute opaque.  You can change the interpolation to "Constant" as well.


Is it possible to delete folders in Blender's file view?

It is not possible to to delete directories in Blender's file browser, unfortunately.


Where is the "Local Coordinates" option for Inflow Object?

Since you can use Source and Normal settings, Local Coordinates are a bit useless.
Inflow usually emits fluid only from one direction, there is no specific reason to use whole surface of object as inflow.
It means you can use a disk with same efficiency.

Originally taken from https://blenderartists.org/t/lets-talk-about-mantaflow/644346/908?u=vklidu


Can I adjust automatically lighting / colour leveling for all frames?

It's a great question, and the "best answer" is a little more complicated than you probably want, as well as depends on your sources of footage.

You are projecting emissions, represented by your RGB code values. This means a few useful things:

Your RGB lights must be aligned to whatever colour space you are using. Typically around these parts that means your RGB lights must be BT.709 with a D65 colour when R=G=B. That's basically scene linear sRGB in other terms.
If you have the source camera encodes, you can convert the "raw" camera encode to a linear 16 bit TIFF with BT.709 lights. This is ideal.
If you don't have the source camera encodes, it's a bit sloppy. You could do a little OCIO magic and make a transform that treats the aesthetic contrast JPEG or whatever as Filmic + Look, and inverts it as best as it can. That will be wrong, but less wrong than using the sRGB transfer function.
If you are using footage, it's going to be either a log encoded footage properly transformed to BT.709 scene linear, or the second hackish case.

Once everything is in the scene referred domain, it is simply a matter of balancing your emissions to a ground truth. This is tricky, but not nearly as tricky as trying to do it without considering 1-4 above.

Hope this helps. If you have more information, post it, and I'll do my best to help you along further if I can.


How to create outgrowing stripes/planes from object center?

Not totally sure this is what you expect.

Though, from object "texture coordinates" you can take x and y value so that "arctan2" math node gives you the angle around z axis (between -pi and pi).
Then use this multiplied angle with a sinus (a value between -1 and 1) and plug it as displacement height.
The sphere has some subdivision thanks to subdivision modifier.
Also, the material settings (using Cycles) has a displacement set to "displacement and bump" or "displacement only".


understanding uv maps, materials and textures

You have to add a texture to the material in the texture tab next to materials. Then select the mesh you want textured and bring up UV/Image Editor. To select the texture in UV/Image Editor you have to click the little picture button to bring up the drop down menu and then select the texture from there, while in edit mode, while the mesh you want textured is selected (not the object).

It's a little weird at first.


Is there a way to Prevent Meshes from going through one another?

If you're referring to while you're editing the scene, this isn't really possible. For animations, you should research Blender's Physics Simulation capabilities.


Thanks to chebbou for the link , i managed to find the solution to this .
Just go to render section and go to light paths . There will be min and max there . And if i am correct , default is set to 8. I turned both of it up to 120 and the problem is fixed ! Cheers.


BGE Animated rig freezes when rig goes off-screen... Can I make it not?

Any animation that is not seen by the active camera is culled, this is called frustum-culling. As for a solution for it, I am not 100% sure this is a solution, but you can disable frustum culling for a particular camera at run-time with the following code. KX_Camera.frustum_culling
Which is layman terms looks something like this.
import bge

def main(self):

  self.owner.scene.cameras["Camera_Name"].frustum_culling = False

There is also another option called KX_Scene.activity_culling. Again, I am not sure exactly if this only applies to object logic, and not also object animation. The code for it can be found below.
import bge

def main(self):

  self.owner.scene.activity_culling = False


it looks perfect here, I have a smooth surface, no black spots...

but using 3d print analysis tools, there are at least a few non planar faces:


if you choose the Palm_L_Ik as the target of the Forearm_L, the Forearm_L will stick to the head of the Palm_L_IK, that's why it moves when you switch to Pose mode, if you don't want this to happen, you need, in Edit mode, to put the tail of Forearm_L at the same point than the head of Palm_L_Ik...

By the way, the Deform option is to prevent the mesh to be affected by the bone, it has nothing to do with your problem


Getting rid of theses overlapping edges to form a solid shape?

You can select the vertices that you want to merge and press Alt-M.  Select to center.


Blender 2.81 bad shadows (missing settings)

Blender 2.81 has better shadow algorithm, the final result will deliver a higher quality shadow, but it needs more samples in order to get to that result.

Go to the Properties Render tab and in the Sampling panel increase the number of samples.


Cycles Noise Issue - No matter what I do it won't go away

Let's walk through troubleshooting this, shall we?

Ok, first, where is the noise in the image? You might notice it does not appear in the sunlit areas, just the shadows. So we can eliminate that it is coming from the first hit (camera > surface) or evaluating the brightness of our main sun light. We can also observe it does not appear solely along the edges of shadows, rather it is spread throughout the shaded areas.

The fact that it is spread evenly in the shaded areas but does not appear in the sunlight tells us it is coming from one of the sources of fill light. That could be an additional light source (like a skydome/HDRI or a fill light) or it could be from global illumination. Or perhaps it is a reflection of fill light. How do we find out?

The answer is in the render passes. Over in the layers panel, enable the direct and indirect (don't worry about the color pass) for glossy and diffuse. Which of the 4 passes contains the noise?

Diffuse direct - Your source of noise is the direct light evaluation itself. This usually comes from HDRIs. Make sure the "multiple importance" option is enabled and the resolution is set to the # of pixels on the longer side of your HDRI map. For example, a 2048x1024 HDRI you would use the value 2048. If you are using the branched path tracing integrator, you can increase the world sample value to send more rays towards this problem for each primary sample.

Diffuse indirect - Your source of noise is global illumination/diffuse reflection: light scattering off a surface and illuminating another surface. Check that you do not have surfaces with excessively bright diffuse colors (diffuse color is the surface albedo, it should never be 100%/1.0. Even 90%/0.9 is uncommon, that's why the default is 0.8). Additionally, try disabling caustics in the light paths panel. These are harder to resolve than normal scattered light. Finally, the more diffuse bounces you have, the greater than chance of a ray taking a "funny bounce" and returning an anomalous value. Reduce this under light paths, many scenes the difference for any values over 2 isn't really noticeable unless you compare with a 2-bounce render. If you are using branched path, increase diffuse samples in the render panel to send more rays to this problem

Glossy direct - Your source of noise is reflections hitting varying parts of a textured light. This is more or less the same problem you'd see in the diffuse direct pass. The solution is the same, check MIS is on for the world and set to an appropriate resolution.

Glossy indirect - Your source of noise is reflections of other objects. Blurry reflections mean a ray can take off in a variety of different directions. Depending on which one it picks, it can catch different objects in the reflection. The final blurry reflection is an average of all of these, but until your trace enough rays for the situation to average out, you get noise. Try using the filter glossy option to contain the possible variance(it limits the shininess as a ray bounces more times), and like with diffuse avoid non-emission shaders with extremely bright colors. You can also lower glossy depth under light paths to try and contain the possible results, although can lead to black reflections if set to low. If you are using branched path, increase glossy samples in render settings to send more rays to this problem


You can recreate it using a Bezier curve.

Add a Bezier curve, and use the Tilt Tool to adjust the tilt.
Create the profile shape (It needs to be a curve too). The origin point position is important.
Set the profile shape as a Bevel for your curve. It will align based on it's origin point.

Add a Bezier Curve and tilt the control points. Add more control points if needed.

Create the profile shape and set it as a Bevel object. If it's a mesh object, you'll have to convert it first.


Viewport rendering (shift+Z) is darker than in final render

In interior scenes and in scenes that have lots of translucent materials it is common for them to be dark until the camera has sampled enough light. If it still seems too dark after 100 samples try duplicating the lights and disabling the render setting on them. This will most likely give better results if not the most accurate.


You have to delete from object from Object Mode, not Edit Mode. You can switch between Object Mode and Edit Mode using the Tab key on your keyboard. You can also switch using he drop down menu on the bottom panel of the 3d View window.Then hit delete again (Function delete on Mac) and you will be able to Delete the object entirely, it will also disappear from the outliner. If you want to delete parts of your mesh use Edit Mode, if you want to delete the entire mesh use Object Mode.

Switch to Object Mode

Now you can delete


You have to create the object with an empty mesh first, as you cannot assign a mesh to an empty later.

Further: primitive_cube_add(...) is supposed to create an object, since it is the same operator called by Add->Mesh->Cube from the menu.

So you can use BMesh to create your cube later and assign it to the empty mesh:

import bpy
import bmesh

bpyscene = bpy.context.scene

# Create an empty mesh and the object.
mesh = bpy.data.meshes.new('Basic_Cube')
basic_cube = bpy.data.objects.new("Basic_Cube", mesh)

# Add the object into the scene.
bpyscene.objects.link(basic_cube)
bpyscene.objects.active = basic_cube
basic_cube.select = True

# Construct the bmesh cube and assign it to the blender mesh.
bm = bmesh.new()
bmesh.ops.create_cube(bm, size=1.0)
bm.to_mesh(mesh)
bm.free()


In Blender 2.80 (Beta) it works still the same as in Blender 2.7x

With the edges selected, hit S, then Shift+Z to scale the vertices along the X and Y axis.


Pause physics to move camera, then resume

You can vary the speed of the physics engine via the Rigid Body World settings in the Scene properties.

Leaving the speed at 1.000 runs the simulation at 'normal time' while values closer to 0 will slow down the action.

Varying the time in this way can cause some anomalies - particularly if you change it at the point of collisions or interactions between objects. This appears to be due to issues with how the calculations are performed behind the scenes. For this reason, avoid changing the Speed right down to zero - eg, 0.002 (1/500th speed) should give reasonable results - and you will likely also need to greatly increase the Steps Per Second (I increased from 60 to 10000 - but this will take longer to calculate!) to improve the accuracy of the simulation and it might also be worthwhile toggling Split Impulse if you're getting unexpected results.

This can produce the following result :

Blend file attached.


How to make this effect that the light of lantern being translucent? (Japanese lantern)

A simple mix between Diffuse and Translucent seems to work fine in both Eevee and Cycles. Make it a bit more subtle with an Image Texture and Noise nodes etc...


replace

import PhysicsConstraints
...
vehicle = PhysicsConstraints.createConstraint(physicsid,0,11)
...

with

import bge.constraints
...
vehicle = bge.constraints.createConstraint(physicsid,0,11)
...

and so on.


How to add mesh primitives in Blender Python using data blocks

I am not sure if there are functions which return mesh primitives as a data block in the Blender API. But you can create a Suzanne data block by using a bmesh and bmesh.ops.create_monkey(bm, matrix) which you can then convert to a mesh data block

import bpy
import bmesh

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

# Create mesh data block from bmesh
mesh = bpy.data.meshes.new('Mesh')
bm.to_mesh(mesh)
bm.free()

# Create object and link object to scene
obj = bpy.data.objects.new('Object', mesh)
bpy.context.scene.objects.link(obj)
bpy.context.scene.update()


Shader receive light cast shadow with its color

Enable Refractive Caustic + Glass shader

It's not shadow, it's light!

The effect you see in the picture is a phyisical effect called "caustics".

White light get into the dice volume. There's in a certain quantity of light that is absorbed by the dice's material. Th red component is not absorbed, so is free to get out of the volumes and reach into the camera, letting we see the cube red (different shades of red because not all the cube surroundings are full white light sources). Not all the "filtered" rays (made of red light only) go directly to the camera, some of them also reflected on the plane surface coloring it a bit.

Blender Cycles can emulate that effect if you enable the Caustics by ticking the check boxes near the cursor in the picture below:

First of all you must use a Glass shader, or the light will not penetrate your object's surface.

Without Caustics, the object project a soft shadow on the opposite side of the light source. The plane is grey, so the shadow will result in a darker grey because less light can reach that points.

Refractive Caustics option takes in account the light that travels through a material.

In addition, the base plane from the photo is sligthtly glossy (you can almost see the dice mirrored) so I would suggest to use a mix of a diffuse and glossy shader in order to get some color bleeding also on the sides where the caustics aren't.

Final result:


Can we mix CPU, Cuda GPU and OpenCL GPU for Cycles Render Farms

You should be able to configure the compute device on each machine, submit the render job, and have it "just work". In fact, this is the main reason why the compute device settings are in user preferences instead of scene settings: to allow them to be set per-machine, rather than per-scene. Two things to be mindful of:

The scene needs to be saved with "GPU compute" selected under render settings. This will set GPU-capable machines to use CUDA or OpenCL as set in user preferences, while CPU-only machines will fallback to CPU mode. However, if your workstation is a CPU-only machine, you will not be able to simply select this option. I could've sworn there was a question on Blender StackExchange somewhere about how to work around this particular issue, but I can't for the life of me find it, apologies.
Not all features/shaders are supported in OpenCL mode. There is no easy or automatic way to prevent your OpenCL-GPU machines from running a scene that needs these features. You will have to do it by hand. See this table for the current feature status: https://docs.blender.org/manual/en/dev/render/cycles/features.html

One way to handle this: if your render farm software supports machine groups, you may want to consider creating a "cycles safe features" group that contains all machines, then a second "cycles all features" group that only contains CPU/CUDA machines, and use the "all features" group for a job that needs features that aren't supported in OpenCL.


add controls to already generated meta rig

The weights are properties of the vertex groups, so they belong to the mesh object, no matter which rig you use. They get overwritten only if you perform an automatic weighting or a "with empty group" option.

So you can create the new rig and parent it to the mesh using the simple "Armature deform" option.

The names of the new rig bones should be the same as the old, so everithing should work fine (except for the new fingers bones, of course).

Later you can also perform an automtic weghting limited to the new fingers bones, to have a good starting point to be refined with weight painting or direct weight assign.


How to Cut or Extrude a Cube/Rectangle from a Cylinder/Curved Surface

It seems to work fine with this topology (I first inset then extruded then added new edge loops):


Why is my Cycles Smoke is disappearing in render?

This is because the max steps + step size is limiting the maximum distance volume rays are allowed to travel to a distance smaller than the total width of your domain.

Your domain is over 350 meters wide in the shortest axis. With the current settings in Render settings > Volume Sampling, the ray can only travel 1024 steps at .1 meters (BU) per step. In other words, the ray can only travel 1024*.1 = 102.4 meters before it must give up.

There are a couple ways to fix this.

Increase the max number of steps

This will keep everything as it is, but allow the rays to travel farther. It will likely increase rendertime however.

Increase the step size

This will make rays jump farther between steps and significantly speed up rendering, but may make the volume appear less detailed.

1024*.5 = 512 meters/BU, which is quite sufficient to traverse the whole of your domain. Note that details smaller than the step size may be "jumped over" by volume rays as they step along, essentially rendering the volume like those details were never there.

Use Equiangular sampling

Depending on your exact situation, you might find it's faster/less noisy to use Equiangular sampling for your volume. You'll have to experiment and see what works best in your scene.


How do I scale an object proportionally using numbers on the scale panel?

By left-clicking and dragging down on the sliders you can select and edit the values for multiple axes simultaneously:

Alternatively, if you want to do things with keyboard shortcuts you can press S and drag, that will scale your object (or selected vertices, depending on what mode you are on) in all axes.

To constrain transformations on a single axis you can do SX to scale on the X axis only, or SShiftZ to scale on X and Y only (but not on Z)


Blender stopped recording the rotation keyframes

your end frame is at 113 so Blender will not autokey your animation over this end frame. If you raise this to ...e.g. 1000 you can auto - keyframe a bit more time.


blender 2.8 texture paint material mode not showing shaded object, just flat color is shown?

Use the Overlays drop down and turn the Opacity of the Texture all the way down - then you should see the shadows while you paint.


I took a look at your blend file. If I understand correctly you want to model a the little guy with faces. You started by the front and have trouble continuing on with the sides. I have provided you the modified blend file. Please check it out and tell me if you find anything interesting.

I have fixed the extrusion you've made. It seems like you selected the wrong faces to extrude. What you need to do is select vertices you want to extrude, hit E and pull them back towards the back of the head.

Again if that wasn't the answer you were looking for, don't hesitate to tell me and I will help.

blender file download link

Some tips:

when extruding you can snap vectices to other vertices by pressing
Ctrl. Your vertex will then snap to the nearest vertex. wiki extrude tool
avoid having Ngons by keeping all faces as rectangles. This will help you model the little man.
You can select all model and click on W then click on Remove doubles

EDIT

Ok so the video tells you to model the general shape of the face in 2D, then at 11:10 he starts giving it depth by pulling forward some vertices. It's very easy: Be careful to have your side reference placed in the middle like so: then select one vertice from the "middle line":

And pull it foward on the Y axis. until it maches your reference.

Repeat this select/pull process for each vertice of this line.


Why does an even subdivide change the displayed texture?

Ah I figured it out and it's not the vertices. Blender uses a triangulated version of a mesh to do UV mapping.

Looking at this we can see two distinct triangles:

Initially this doesn't make much sense since the object only has 4 vertices and should just compress as if it was transformed in Photoshop. However, once the mesh is triangulated with Ctrl + T the problem is clear.

All of the UV data is equally split between two uneven triangles. Subdividing makes the all of tris closer in size, creating less distortion.


That doesn't look like a vertex, it looks like the Object Origin - the point which marks the location of the object in 3D space.

You should be able to confirm this by looking at the status bar at the bottom of the window. It should show 'Verts 0/0', showing that all vertices have in fact been deleted:

You can't get rid of the object origin without deleting the object, which you can do by switching to object mode and pressing Delete.


Yes, a normal map can do "fake smoothing". A normal map changes how light interacts with the surface, specifically the angle at which it reflect. So a normal map can make light reflect off a hard edge as if it was a rounded edge.

The limit is that it will not change the silhouette of your object. So, if you look at a hard edge from the side, you can still tell it's a hard edge with a normal map. However, if you can model and texture well, these problems can often be mostly dealt with.

Just in case you don't know as well, Blender can 'bake' normals from high poly to low poly objects as well, in case that would help you.


Curves are probably not the best way to model this, you will have trouble getting smooth ends and squishing the overlapping parts with proper topology. Yet it is a totally acceptable method, if you are just looking for a quick and dirty solution.

Start with a bezier circle object, change all vertex handles to Aligned type, then erase one of the bottom quarters.

Move all but the bottom vertex to the side and duplicate them symmetrically around the X axis.

Connect the loose bottom vertex to the new half with F key.

Now extrude the two ends at the center making sure they extend in the correct direction, away from the opposite segment.

Spread both coinciding vertex at the center to the sides so the wont intersect, and move the corresponding handles slightly up or down to make both strings twist around each other, as if entangled.

Adjust both ends Z position so they stay resting above the ring.

Optionally use a Taper Object to get a smooth thickness progression along the string. You can also adjust per vertex thickness with the Radius property.


3d connexion space mouse: how to move objects?

Moving objects with the Spacemouse has not been implemented in Blender, but good news is somebody is working on it! See How can I move an object using NDOF?


Where does Blender "connect" to NVIDIA drivers?

It was a CUDA issue.  Blender needs nvidia-cuda-toolkit to find & connect your GPU. The Debian Wiki directions for installing CUDA didn't work
for me, so I needed to download the most recent CUDA version and manually install it.
To start from scratch:

Uninstall NVIDIA & CUDA:
$ apt purge nvidia*
$ apt purge cuda*
Download proper NVIDIA drivers
Download proper CUDA toolkit for your system (I used deb[local])
Before installing drivers, you must obtain the proper kernel headers for the NVIDIA driver to build with.From Debian Wiki:
$ apt install -t buster-backports linux-headers-amd64
$ apt install -t buster-backports linux-image-amd64  #installs the kernel from backports to match
Now it gets tricky: Disable the default nouveau driver
$ echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf
Reboot to multi-user runlevel. #This will disable the GUI user after reboot
$ systemctl set-default multi-user.target
$ systemctl reboot

NOTE WELL: When you restart your computer, your screen won't work. Everything you do will be from the command line.

From command line (or Safe Mode), navigate to directory with NVIDIA run file:
$ bash NVIDIA-Linux-x86_64-your.version#.run
During installation, you'll be asked questions, say YES to everything and install NVIDIA driver. After reboot, SCREEN SHOULD START UP USING YOUR GRAPHICS CARD.
Remind your computer to use the GUI every time it starts up:
$ systemctl set-default graphical.target

NVIDIA is good to go, but Blender still won't recognize your GPU because CUDA needs to be downloaded with nvidia-cuda-toolkit.

Download/Install CUDA Debian Installer from CUDA docs remembering to modify the PATH and LD_LIBRARY_PATH variables.
Make sure FILEPATH has been changed correctly.
From Debian Wiki, install nvidia-cuda-toolkit picking up any missing pieces:
$ apt install nvidia-cuda-dev nvidia-cuda-toolkit
Update everything with $ sudo apt update
Reboot computer: $ systemctl reboot
Open Blender, check Edit --> Preferences --> System, and GPU's alive and well


As of 2.72, there is a new mouse actuator which you can use to rotate objects based on mouse movement.

By using this actuator instead of the python script, it seems to work fine:


How to access/edit information about included audio files?

You can edit the file path of the Sound Datablock (and any external file) using the Outliner:

From the header, make sure the outliner is set to display 'Datablocks'.
Browser to the Sounds section and find the sound datablock you want to edit.
Expand the RNA and modify the File Path string as required.
You might have to restart Blender to force a reload.


Construct a small block of circular matrices to place stones.

Evaluate spline to get points on the path. Using loop we can scatter small block to these points.

Now randomly place stones from the collection to these matrices.

Add fade falloff with interpolation to control scale. you can also add delay falloff to animate increasing scale.


Subdivison surface modifier corrupt my model!

Here's what your going to want to do.

First, uncheck the little three vertex icon at the top of the subdivision surface modifier (the triangle one). That option makes the vertices follow the subdivided mesh, which can be useful in some cases, but in your case will just lead to confusion and a messy looking model.

Second, select everything in edit mode and press ctrl-N to recalculate the normals. It looks like blender somehow flipped the direction the faces should be pointing, which is giving you the blue color instead of a light grey.

Third, while still having everything selected, press W then choose remove doubles. It's hard to tell from your images but you may have some vertices exactly on top of each other, which can cause some issues as well. This option will get rid of and doubles.

Finally, as noted above, the geometry of your model could use some work. Making clean topology takes a lot of practice, so don't be discouraged here. You really want to avoid using triangles or faces with more than 4 vertices. When using a subsurf modifier with such faces, the modifier cant smooth then out as cleanly as a 4 sided face, and thus you can get rough spots and pinching.

One tool you may find helpful is the smooth tool. Select a portion of your mesh in edit mode, then press w and click smooth. This will even out the mesh a bit and reduce bumps and uneven faces. This usually does result in a slightly flattened mesh though, but using alt-s you can 'inflate' the faces a bit and the result should be pretty good.


Does anyone know how to get rid of the automatic HDR on Blender 2.8

You can get rid of the hdri by using the rendered viewport mode or switching it with a different hdri in the user preferences.

In order to make glass transparent and refractive in eevee you have to enable screen space reflection and check the refraction option.

Then you have to go to the material settings and enable SSR there as well. I found that the alpha hashed blendmode works best.


when move my camera, it doesn't orbit like it should do

To rotate the view around an object follow these steps:

ALT + MIDDLE CLICK on the object you want to rotate your view around
MIDDLE CLICK (keep pressed) and move the mouse to rotate the view

Please note that the viewport view is not the camera view (but you probably already know it)


You can do this by adding a Speed Control effect strip to the selected strip.

There are two methods for controlling the speed:


Particles collide with first object then die on second collision

Yes, it's possible: collisions are defined per-object, not per-particle system, so you can define as many types of collisions as you want.

Just enable the "Collisions" physics on both objects, checking the "kill particles" box only for the second one.

If the second object comes from a water/ocean simulation, make sure that the "collision" modifier is the last one on the modifier stack.

(for clarity, in my example I've checked "Render dead particles")


Why does my Python script crash Blender (EXCEPTION_ACCESS_VIOLATION)?

Okay, I got it working!
As batFINGER already suspected, it was about accessing a removed object.
I had an Vector variable, which was defined only once.
co = ocean.vertices[0].co

This line is now called every time the mesh changes in my script.
I also added a few lines to update bpy.data.meshes/.objects (I don't know if actually necessary), the whole code can be simplified for sure, but hey: it works!


Help figure out where this phantom rust is coming from

When vertices touch on UV map, you might get stray color effects like that.
You want a little bit of space between each UV "island"

Edit mode > Mesh > UV Unwrap > Smart UV Project
Island Margin > something small, like 0.05


You need to connect the temporary socket (red) to the values you want to make available from outside the group.

When tab out of the group you will have all of them available for wiring with the correct type (indicated bei their color).

Note that you can't edit them later you would need to recreate the group.


How to select objects in the outliner with only hotkeys

In outliner you can use 'A' key to select all objects.
With one object selected press 'shift' and select another object for range select.
Use 'B' key to box select.
Besides use Batch rename instead of single Rename!


Python API script, why does extruding verts behave in this way?

Use bmesh operators.

Here is an edit mode script that finds any face in the mesh that has an upward facing normal (locally) and extrudes.

Notice there is no element selection (e.select = True) required, it's done purely on face normal.  When  using bpy.ops operators in edit mode need to keep in mind, and set, select mode  (the issue above suggests vertex. Toggling modes flushes the selection, selecting the edges and face implied by your vert selection.  ie Even though you have all verts of a face selected, the face isn't yet.)

>>> C.tool_settings.mesh_select_mode[:]
(False, False, True) #  vertex, edge, face

Recommend ditching edit mode bpy.ops whenever possible.

import bpy
import bmesh

ext = (0, 0, 2)
TOL = 1e-7

context = bpy.context
ob = context.object
me = ob.data
bm = bmesh.from_edit_mesh(me)
#  bm.normal_update()

# select the top face

faces = [f for f in bm.faces if f.normal.angle((0, 0, 1)) < TOL]

if faces:  #
    ret = bmesh.ops.extrude_discrete_faces(bm,
            faces=faces,
            )
    verts = list(set(v for f in ret['faces']
            for v in f.verts))

    bmesh.ops.translate(bm,
            verts = verts,
            vec = ext,
        )

    bmesh.update_edit_mesh(me)

I've used bmesh.ops.extrude_faces_discrete(...) however could also use

if faces:
    ret = bmesh.ops.extrude_face_region(bm,
            geom=faces,
            )
    verts = list(set(e for e in ret['geom']
            if isinstance(e, bmesh.types.BMVert)))

    bmesh.ops.translate(bm,
            verts = verts,
            vec = ext,
        )
    bmesh.ops.delete(bm,
            geom=faces,
            context='FACES')

    bmesh.update_edit_mesh(me)

when using edit mode bmesh, can often use the users selection

[f for f in bm.faces if f.select]

or

f = bm.select_history.active

and check that is of type bmesh.types.BMFace.


How to animate translucency of a material per object individually?

You can add a Transparent shader and mix to your diffuse.

Now you can animate the Mix shader factor (use the shortcut  I ).

See the image below:


The python console has various convenience imports, from math import *  being one of them.

Text from the console:

PYTHON INTERACTIVE CONSOLE 3.3.2 (default, May 21 2013, 15:40:45)  [GCC 4.8.0 20130502 (prerelease)]

Command History:     Up/Down Arrow
Cursor:              Left/Right Home/End
Remove:              Backspace/Delete
Execute:             Enter
Autocomplete:        Ctrl-Space
Zoom:                Ctrl +/-, Ctrl-Wheel
Builtin Modules:     bpy, bpy.data, bpy.ops, bpy.props, bpy.types, bpy.context, bpy.utils, bgl, blf, mathutils
Convenience Imports: from mathutils import *; from math import *
Convenience Variables: C = bpy.context, D = bpy.data

>>> pi
3.141592653589793

Importing the entirety of a module using * when not experimenting in the console is generally seen as bad practice / not pythonic, and explained in part here.

  Remember, you can never know for sure what names a module exports, so
  either take what you need — from module import name1, name2, or keep
  them in the module and access on a per-need basis

For scripting outside of the console use explicit imports. Create a template with all your frequently used imports, similar to this, and place it in the ../scripts/templates_py/ folder:

import bpy
import mathutils
from mathutils import Vector, Matrix
from math import pi, sin, cos, tan

this article goes into great detail about code structure and includes a short section on imports, definitely food for thought if the topic isn't well understood.


you can make your life easier with a mirror modifier and deleting 1 half of your mesh.
In side view (3), select the bottom loop (Alt+Right click on an edge), activate proportionnal editing with O and scale on Y axis (S, Y). while scaling, you can change the proportionnal editing radius with your mouse wheel. click to accept the scaling, right click to cancel.


Programmatically adding a Curve bevel_object

After your edit I have a few more thoughts. You can't use a Mesh object such as produced by the primitive_circle_add() as a bevel_object, it needs to be a curve. Either make a wrapper function for bpy.ops.curve.primitive_bezier_curve_add, or include a small convert statement inside your vecCircle function (shown below).

In your loop the call to bpy.ops.object.convert doesn't complete and that's where you should start investigation, subsequent lines can be ignored until then.

Preconvert to Curve before a loop

Here's a massively simplified version of what you're doing. This is to get an understanding of how to bevel an object via a script. For simplicity I iterate over Curves here to emphasize where the problem is not!

import bpy

def vecCircle(name, verts, obj_type='MESH'):
    bpy.ops.mesh.primitive_circle_add(vertices=verts)
    obj = bpy.context.active_object
    obj.name = name
    if obj_type == 'CURVE':
        bpy.ops.object.convert(target='CURVE', keep_original=False)
    return obj

tor0refCirc = vecCircle("tor0refCirc", 6, 'CURVE')

beziers = [o for o in bpy.data.objects if o.type == 'CURVE']

for circleObj in beziers:
    circleName = circleObj.name
    circleObj.data.bevel_object = tor0refCirc

turns this:

into this:

Convert to Curve during the loop

But if your original objects are meshes, they do need to be converted either on-mass before the loop, or during the loop.

import bpy

def vecCircle(name, verts, obj_type='MESH'):
    bpy.ops.mesh.primitive_circle_add(vertices=verts)
    obj = bpy.context.active_object
    obj.name = name
    if obj_type == 'CURVE':
        bpy.ops.object.convert(target='CURVE', keep_original=False)
    return obj

tor0refCirc = vecCircle("tor0refCirc", 6, 'CURVE')

# ensure no selected objects
bpy.ops.object.select_all(action='DESELECT')

pre_beziers = [o for o in bpy.data.objects if not (o.name == 'tor0refCirc')]

for circleObj in pre_beziers:
    circleName = circleObj.name
    circleObj.select = True
    bpy.context.scene.objects.active = circleObj   # << -- important
    bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
    bpy.ops.object.convert(target='CURVE', keep_original=False)
    circleObj.data.bevel_object = tor0refCirc
    circleObj.select = False

which turns Mesh into Curve before adding bevel_object:

like this  ( you might want to increase resolution 6 vertices may be too coarse)


The topology of the back is bad, it makes the edge loops come back vertically, so you need to create some vertical edge loops with the knife, delete the oblique edges, make sure it only leaves quads, then horizontal edge loops will be possible:


Is there a quick way to snap an object's origin to world origin along a specific axis?

If you want to snap the object's origin to the world origin (0,0,0) all at once, there's the shortcut Alt+G (clear location).

If you want to snap it to just one axis at a time, you can do this by:

Checking the "Manipulate center points" to transform the origin only (and not the entire object).
Changing the pivot point to 3D cursor.
Snapping the cursor to the world origin (Shift+C).
Scaling any axis to 0 to snap the object origin to that axis:
For instance, SX0 Snaps your object to the X axis.

See animation below for a demonstration of the method:


Reducing polygons while preserving the texture?

Just tried MagicaVoxel out of pure curiosity and this is what I found out.

While MagicaVoxel at first glance seems to produce decent game-friendly triangle-based geometry, it actually does the complete opposite.

The software uses a "texture" but it does so in an unusual way. There is absolutely no UV in a traditional way. What MagicaVoxel does is overlaying all vertices of the faces with the same color and putting them on the same uv coordinate onto a colormap like image.

That means that the vertices of all faces which share the same color also share the same UV coordinate and it also means that every change in color produces more faces and of course more vertices

Furthermore, not all of the vertices are connected to one another so all of Blender's simple semi-automatic methods (dissolve edges, decimate modifier) of reducing polycount will ultimately fail, because dissolving an edge of a triangle simply destroys said triangle.

Reducing the polygons is only half the battle and the overall topology of voxel-like meshes normally is decent enough. The disconnected vertices on the other hand produce a high unnecessary vertex count that needs to be reduced, because they produce unnecessary normals.

IMHO the best method to deal with your mesh is

Creating a copy of it and reducing polycount by using a remesh modifier and a collapse decimate modifier with triangulate on top of it.

Unwrapping the new mesh using smart uv project

Baking a new texture for the decimated mesh from the original by using the "Selected to active" bake method.

Creating a new material for the new mesh and assign the texture


With a lot of trying and testing I came up with the following solution, which is a bit of a hack but it works so far.

I did not find any direct way to find out if there was an error in the rendered image. So I am resorting to analyzing the rendered image after it has been generated.

def PostRender(scene):
    print("Post render: Frame {} of scene {}.".format(scene.frame_current, scene.name))
    if scene != bpy.context.scene:
        # this is not the main scene. skip
        return

    file_invalid = 1
    try:
        print("Retrieving last output file [{0}]".format(last_output_file))
        image_object = bpy.data.images.load(last_output_file)

        num_pixels = len(image_object.pixels)
        width = image_object.size[0]
        height = image_object.size[1]

        # in every 10x10 pixel rectangle, test one pixel. this makes total 1% of the pixels spread all over the image
        for x in range(0, width-1, 10):
            for y in range(0, height-1, 10):
                xoff = int(random.uniform(0, 9))
                yoff = int(random.uniform(0, 9))
                pix_at = 4*(x+xoff + (y+yoff)*width)
                for i2 in range(3):
                    if image_object.pixels[pix_at+i2] != 0.0:
                        file_invalid = 0
                        break

    except Exception:
        # error accessing data. file is assumed to be invalid
        pass

    if file_invalid == 1:
        print("Image seems to be invalid.")
        # handle the error case here

bpy.app.handlers.render_post.append(PostRender)

By checking only 1% of the pixels, the loop is very fast even for huge images. If you want to be one hundred percent sure, you can add a second loop afterwards for scanning all the pixels if file_invalid is still 1.

This approach has the obvious shortcoming that it will not work if you have black images in your animation.

Possible options what to do to handle the error:

Leave a log file entry
Optionally delete the file
If you suspect a CUDA error (as in my case) it might be a good idea to reboot the computer
Restart rendering after reboot

I found the last two points especially interesting and implementing that has increased the productivity drastically, since I don't have much downtime anymore. I will not post the implementation here, since it is out of the scope of the question.


How do I Inspect and Correct my bone weight painting?

Inspecting and Repairing Vertex Weights

Toss Rubbish and Start Fresh.  Delete armature modifier.  Get well planned rest pose. Add armature modifier a second time and see if that eliminates problems.  Assuming you have not expended hours of paint time.  Otherwise read on.
Examine the glasses. Select Glasses.

View Solid. No Materials or Textures.
Know that casual visual inspection of colors is not exact enough.  Slight color differences may be difficult to detect for the human viewer.  Clearly blender uses floating point numbers as the representation.
Know that some vertices are more difficult to see.  An exposed pinky is easier to see than an internal pink tongue.  Hair on Glasses makes the glasses difficult to see.
Local Mode. Numeric Keypad /. You should only see glasses.
Edit Mode
Press N to bring up the panel needed below.

Disable [Limit Selection to Visible]  Make sure you can see through Model.  See Yellow arrow above.  Float mouse to see tooltip.
Enable View Weights
Select Nothing. Blender will indicate 0 vertices of XXXX selected.
Select the problematic vertex group related to bone in the Vertex group panel. UpperArm.Right. Click the select Button in the panel to select all vertices in the group.
Note and record how many vertices are selected.  This number will not be zero.  This is an error for the glasses.
More inspection. You can Grab g Translate and Move Vertices as extra verification. Shake mouse like you mean it.  Escape to reject the grab and keep vertices in original location.
Locate Vertex Weights Panel.  It will appear because some vertices are selected.  It will disappear otherwise. Make mental note to include in screen capture.
Take screen snapshot and update your images in your original question.  Make sure selection and vertex groups are showing. Your image should convey all bullet points above.
Make one of the selected vertices the active vertex with multiple Shift Click
Read how many groups in which this vertex has membership.  Your probably only want one for glasses, the head bone. Facial Areas require more care.
Delete all other groups but the head bone. Only the head bone group remains. This group deletion may be easier for the glasses since we can assume for simple purposes that no stretching should be seen.  Delete can be done in the vertex group panel or in the info panel in 3D View.
Some of the inspection steps above are for education.

Next select the head and perform the same steps above. Use your judgement deleting groups. Skin is more pliable than plastic glasses.
Note in weight paint mode you can perform such tasks as making sure vertices have only the dominant one or two groups.  This can remove difficult mistakes and circumstances created by whomever.
As always there are alternative ways to clean up the weights.  Direct Bone Parenting for example. Different question.
See basic and advanced tutorials. Ask a new question.


I figured it out. You Change the spline constraint under Y Scale Mode: to "Bone Original"

Thanks for the help!


How to improve "square" artifacts on smoke simulation?

There are a few thing that you need to play with to get the right look.

Make sure your render samples are high enough.
Under the geometry dropdown make sure you change the step size.

Make sure your divisions are high enough in the domain object.

I actually created a preset pack (for Cycles) of different smoke elements to get started quicker. I also created a material to control the smoke a little easier. Its not perfect but its good for a lot of scenarios.

Hope this helps.

https://dl.dropboxusercontent.com/u/23859364/Pollution.zip


Objects with big dimensions are not centered when their dimensions is decreased

When importing obj, set the Transform Clamp Size to 0.01 or 0.001 and import it.

Set the object set Origin.


It looks to me like the energy settings of the lamp, in wireframe you won't see the lighting, and your rendered viewport looks normal for a single spot at default values. Change the lamp's strength to a higher value, or you may use a plane with an emission material and you will see your scene much more clearly.


Go into edit mode, select the entire mesh, and then press Ctrl + N to recalculate the normals.


How to color (a different color) duplicated items in blender 2.91?

You need to link the Materials to Object, so they're no longer synced.
Mesh Data are synced, so any change affects all of them.
It's the Object/Data switch in Material tab.


Render displaying frame 1 of cloth simulation instead of baked result visible in the 3D view

Sounds like the cloth modifier is disabled in the render.

Make sure the camera icon is selected in Properties  > Physics:


Lost the workspace menu...how to get it back?

File New General Click Default View port ...

or

Blender Open another file ... and a menu may be created ...

When you first start Blender
Blender has a program folder and a user settings folder. If you delete the default settings folder, Blender will run by default. Windows 10 exists in the app data folder. I don't know Linux. If it's resolved, you'll find Save Blender Default Startup in the Blender File menu. Be sure to save it and work with it.


the easy way by reusing existing UI code

code:

import bpy

class CustomPanel(bpy.types.Panel):
    """A Custom Panel in the Viewport Toolbar"""
    bl_label = "Generate"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'

    def draw(self, context):
        obj = context.active_object
        mode_string = context.mode
        edit_object = context.edit_object

        layout = self.layout
        col = layout.column()
        col.label(text="Generate objects:")

        if mode_string == 'OBJECT':
            layout.menu("INFO_MT_add", text="Add")
        elif mode_string == 'EDIT_MESH':
            layout.menu("INFO_MT_mesh_add", text="Add")

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

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

if __name__ == "__main__":
    register()

code (the explicit way)

Gives something like this:

import bpy

def execute_operator(self, context):
    eval('bpy.ops.' + self.primitive + '()')

class MyShortAddonProperties(bpy.types.PropertyGroup):
    mode_options = [
        ("mesh.primitive_plane_add", "Plane", '', 'MESH_PLANE', 0),
        ("mesh.primitive_cube_add", "Cube", '', 'MESH_CUBE', 1),
        ("mesh.primitive_circle_add", "Circle", '', 'MESH_CIRCLE', 2),
        ("mesh.primitive_uv_sphere_add", "UV Sphere", '', 'MESH_UVSPHERE', 3),
        ("mesh.primitive_ico_sphere_add", "Ico Sphere", '', 'MESH_ICOSPHERE', 4),
        ("mesh.primitive_cylinder_add", "Cylinder", '', 'MESH_CYLINDER', 5),
        ("mesh.primitive_cone_add", "Cone", '', 'MESH_CONE', 6),
        ("mesh.primitive_torus_add", "Torus", '', 'MESH_TORUS', 7)
    ]

    primitive = bpy.props.EnumProperty(
        items=mode_options,
        description="offers....",
        default="mesh.primitive_plane_add",
        update=execute_operator
    )

class CustomPanel(bpy.types.Panel):
    """A Custom Panel in the Viewport Toolbar"""
    bl_label = "Generate"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'

    def draw(self, context):
        layout = self.layout
        col = layout.column()
        col.label(text="Generate objects:")
        col.prop(context.scene.my_short_addon, "primitive")

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.my_short_addon = bpy.props.PointerProperty(type=MyShortAddonProperties)

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Scene.my_short_addon

if __name__ == "__main__":
    register()

You were close..   Do I need to explain what's going on here or do you think you can figure it out?


Addon/Script: Register custom user properties

The filepath properties are stored in bpy.types.UserPreferencesFilePaths, which does not support custom properties (only ID types and Bones do).

Even if it was possible, you couldn't make a property show still - addons can't overrule default layout scripts.

You can use AddonPreferences however, as long as the properties are not supposed to be stored in every individual .blend you work with. AddonPreferences show up in the User Preferences > Addons tab, below the addon info (the addon entry needs to be expanded).


Masking footage over 3d objects in Blender 2.8+?

Load the background image in the image editor or the movie clip editor.

Set the editor in mask mode

On the image, click while pressing the Ctrl key and draw a mask for the area you want to use as foreground.

Then in the compositor use that mask to combine the foreground and background elements.


Attempting to link a plane with cloth sim to an object with rigid body

You can try to make a new vertex group composed by the vertices nearest to the chain surface, and then check the pinning option and selecting such vertex group:

Have a nice day.


Smoothing out surfaces obtained through displacement modifier

Seeing nobody answering, I'll post something myself:

Obviously, used subsurf.
I'll be checking in other ways when I have some more time...


This is the way how to make a pattern transparent:


I have a GTX 770 and I was having the same error but I was trying to use "Branched Path Tracing" instead of "Path Tracing" under sampling. I was able to cure it by turning down my tile my tile size under performance. I set my tile size to 64x64. I tested several different sizes up to 128x128(Mine would crash at any size larger) but 64x64 was by far the fastest on my GTX 770 2GB. It may be different on your GTX 1070. I also couldn't see what your sampling is set to so this might not even apply to what you're experiencing. It wouldn't hurt to try smaller tile sizes.


Go to File > User Preferences > Input, set the dropdown menu next to the search field to Key-Binding and enter AltB. It should list all operators bound to a key. It includes addon keybindings.

Addons can also capture events in modal operators, but it's really rare that they consume certain events and pass on the rest. So it would be pretty obvious that there's something running in the background, because a lot of actions wouldn't work.


The simple answer is that modifiers aren't fully supported by the Game Engine.

While modifiers will typically be rendered by the Game Engine, they won't be updated by the engine. So what's happening is the displace modifier is being altered by the Game Engine at the point where it needs to change LOD, but because modifiers don't update correctly, it's just reverting to the flat version without displacement.

This answer has some additional information: Make modifiers update in the game engine

You're not out of luck, though. There are other ways to implement LOD in the BGE.


How to convert numpy array into image and add it to images inside bpy

Here is example TestImg to which we write numpy array (in this example it is all zeros). Thing to remember if image size is 100px width 100px height, and 4 channels then numpy array size must be 100*100*4. eg:

numpy.zeroes((100,100,4), dtype = float16)

Example

if "TestImg.png" not in bpy.data.images.keys():
    bpy.data.images.new("TestImg.png", width=128, height=128, alpha=True, float_buffer=False)
outputImg = bpy.data.images["TestImg.png"]
input_res = int(math.sqrt(outputImg.size[0]))
np_out_img = np.zeros((input_res,input_res,4), dtype = np.float16)
outputImg.pixels = np_out_img.ravel()  #flatten the array to 1 dimension and write it to testImg pixels


Do we need to master Cycles' material nodes if we can make textures/materials in a much easier way in Substance Painter?

There is no way to answer this question with a 'yes' based on facts. You do not need to master anything, but you might want to learn to use the nodes in order to make your life easier. Cycles nodes are for material creation in Cycles so no matter how you make your textures, if you use Cycles you might want to learn its functionality. Nodes can be useful for many reasons not related to the look of a material directly as well - you can manipulate texture coordinates for example or randomize material attributes or control them based on objects position or surface direction and so on. It's just useful, not so much necessary if you only use Principled BSDF shaders.

My advice(opinion): The word 'master' sounds intimidating, but in reality, you just need to learn what the nodes do. Just go through the add menu and figure out what each one does and think of how you can use them and that will get you started. There are like 80 or so of them, but they are in categories so it's not that hard. If you decide to go on an see a few tutorials on how to make some procedural textures and learn how to manipulate coordinates with math you are already an 'advanced' user.


Are there shortcuts to show and hide the 3D View header?

AltF9 toggles the header .. ShiftSpace toggles full screen for the area with focus.


Reading Custom Property from Blender Game Engine

Custom properties belong to Blender. They are not converted and do not exist in the BGE.

You need to set up game properties (game logic editor).


How to activate another addon and have it stay when default blend is called on new file command

If your add-on depends on another.

You can enable it from the script like this:

import addon_utils
addon_utils.enable("another_addon", default_set=False, persistent=True)

default_set: to leave the users preferences alone.
persistent: to keep the add-on loaded, even when the user runs File -> New.

This can be called from the register function.


How to make acrylic/plastic effect with shader?

Final

A little bit exaggerated to show the effect.

Material

I've used only Principled BSDF shader. Most important thing is to use Rough material (1.0) with Clearcoat. You can manipulate how much reflection will be visible by changing Clearcoat value and/or change Clearcoat roughness also.

Lightning

I've used really simple setup without much of a thought for this example. 4 Area Lamps with different size, strength and Blackbody value (color).


Point Light not working properly inside a glass cylinder?

Adjust the alpha that is controlling the shadow.


If you don't want to loose a geometry and overall shape of the mesh you may use a Decimate Modifier to do it. As you can see after setting it up (reducing the Collapse's Ratio factor to 0.15) I reduced the verts count from over 2.000.000 to over 300.000.


Is there a way to switch the mesh selection mode by a shortcut?

This can be accomplished by pressing Ctrl+Tab. This will bring up the shown popup, in which you can select either Vertex, Edge, or Face mode. Note that you can use V, E, and F or 1, 2, and 3 to complete the action using shortcuts.


ops.object.mode_set() not working on 2.78

You need to write mode= as shown here: bpy.ops.object.mode_set(mode='EDIT')


Reset text field to default when starting Blender

Use the window manager.
Related How to declare global variables for use in an addon that aren't stored in the blend file
For a session variable suggest using the window manager. Will always be default when new blender is openened. No window manager property is saved directly.
bpy.types.WindowMangager.password =  StringProperty(
        name="Password",
        description="Password",
        default="",
        subtype="PASSWORD")

SKIP_SAVE
Also look at using the skip save option of a property.
Force a Blender operator to always start with default values
Onload handler.
How to set blender default properties in addons?


Is there a way to render a pass that will color planes depending on a direction they facing?

Normals are normalized vectors and their values can be negative. You can just shift them from (-1,1) to (0,1) for them to be visible as colors:

You can also do math or use something like mixed color ramps to separate specific angles:


Environment mapping controls missing in Texture context tab - Blender 2.8

The environment map can be set in the World tab or alternatively by using nodes in the Shader Editor.

To setup the environment map as depicted below, perform the following steps in the World tab on the default world configuration which only consists of a Background node connected to the World Output.

Click on the circular button for Color and select Environment Texture from the dropdown
Click on Vector and select Mapping
Click on the circular button behind Vector in Mapping and select Generated


I'm not sure what you want to do exactly, but I just deleted all the vertex groups for the eye mesh except DEF-spine.006 and assign 1.000 weight to all verts of the eyes mesh then moved the armature modifier above the data transfer modifier, and they move with the head bone (DEF-spine.006 is the head deform bone, I think).  GL OP


From archipack issue tracker

I got both archipack and Filmic Blender working together by adding the raw color space and copied directly from the original ..\Blender\2.80\datafiles\colormanagement\config.ocio over into the colorspaces section of the filmic blender config.ocio file, as well as adding the line:

! {name: Raw, colorspace: Raw}
to the displays > sRGB, BT.1886, and Apple Display P3 sections.


You can bake sounds to fcurves:

Insert a keyframe (I) on the transform channel you want to be controlled by the sound (e.g. Z scale).

In the Graph editor, press Key > Bake sound to fcurves and navigate to a sound file. Optionally change the import settings at the bottom of the tool shelf in the file manager:

Press enter.

Now that channel will change according to the baked fcurve.


How do I Create a script for geometry I create?

With the help of the Rigify add-on, this can be achieved. Enable Rigify in the User Preferences -> add-ons section like usual. Then go to Edit Mode and locate the button Encode Mesh Widget to Python to generate the script. The script itself will be put into a Text called widget.py and wrapped into a nice Python function already.

See this little GIF for better (visual) explanation:

From the generated code you can extract the Vertex coordinates, Edge and Face indicies. The rest has to be adapted to your needs. Also take care about indentation levels and Tabs vs. Spaces, the script that Rigify generates uses Spaces for indentation, regardless of what you set as Blenders default. Here is a refactored code example:

import bpy

def create_thing_widget(_name, size):

    # -----------------------------------------------------------------------
    # these are the vertices, edges and faces that the rigify addon generates
    # copy and paste your ones over, and make sure to reduce the indentation
    # if you are using Tabs instead of Spaces, also check on that, Rigify
    # generates spaces for indentation by default
    verts = [(-0.10000000149011612*size, -0.10000000149011612*size, -0.10000000149011612*size), (-0.10000000149011612*size, -0.10000000149011612*size, 0.10000000149011612*size), (-0.10000000149011612*size, 0.10000000149011612*size, -0.10000000149011612*size), (-0.10000000149011612*size, 0.10000000149011612*size, 0.10000000149011612*size), (0.10000000149011612*size, -0.10000000149011612*size, -0.10000000149011612*size), (0.10000000149011612*size, -0.10000000149011612*size, 0.10000000149011612*size), (0.10000000149011612*size, 0.10000000149011612*size, -0.10000000149011612*size), (0.10000000149011612*size, 0.10000000149011612*size, 0.10000000149011612*size), ]
    edges = [(2, 0), (0, 1), (1, 3), (3, 2), (6, 2), (3, 7), (7, 6), (4, 6), (7, 5), (5, 4), (0, 4), (5, 1), ]
    faces = [(0, 1, 3, 2, ), (2, 3, 7, 6, ), (6, 7, 5, 4, ), (4, 5, 1, 0, ), (2, 6, 4, 0, ), (7, 3, 1, 5, ), ]
    # -----------------------------------------------------------------------

    # the rest keep like in this example
    # here the mesh data is constructed
    mesh = bpy.data.meshes.new(_name)
    mesh.from_pydata(verts, edges, faces)
    mesh.update()
    mesh.update()

    # now generate an object to hold this data
    obj = bpy.data.objects.new(_name, mesh)

    # link the object to the scene (it is not visible so far!)
    bpy.context.scene.objects.link(obj)
    bpy.context.scene.update()

    # return the object to the function caller for further stuff
    return obj

# call the function
new_mesh = create_thing_widget('test', 1)


How to render a equirectangular non distorted panorama in Blender cycles?

I've tried a couple more times and here are my conclusions:

Equirectangular panorama renders always 360x180 degrees image, so to ensure that our render is not "squished", render aspect ratio must always be 2x1 (width, height)
Right now there's no way to make it 360x20 degrees (Blender 2.71)
If you are desperate for 360x20 (like me), you'll have to use Gimp or other tool to cut 1/9 of your rendered image.
It is very inefficient, so be prepared (1080px high panorama requires rendering of 19440x9720px image, which you'll have to cut to 19440x1080px)

If someone has a more efficient way of dealing with this problem (or I've made a mistake at some point), I'd be happy to hear about it.


Memory efficient way to store many numbers (floats, ints) in a .blend file

Collections are indeed not ideal for this use case.

You can store raw arrays in ID properties, which will native data types that don't take up excessive space in memory or on-disk. eg:

bpy.context.object["my_array"] = [1.0, 2.0, 3.0]

You can assign from an array type too:

import array
data = array.array('f', [1, 2, 3])
bpy.context.object["my_array"] = data

Internally float values are stored with double precision (8 bytes per value), as with Python's floats.


In the graph editor press spacebar and search for "Bake action", set the time interval and bake.

In the dopesheet erase all the keyframes where you want the cow to stop.

Another way is using NLA editor to cycle; another way is manually copying the cycle in the dopesheet (this latter is very fast and allows maximum control, in my opinion).


You may do it using a Spin Tool. In right view add a single vertex and extrude it creating the arch's profile. In Object Mode press Shift+C to place the cursor in the center of a grid. In Edit Mode grab the profile and translate it along the Z axis. Press the Spin button in a tool shelf. Your arch is ready.

You can model a niche in the same way. After spinning it divide it using loopcuts (Ctrl+R). Then extrude single segments downwards as pictured below. You have a clean geometry to add creasing loopcuts for the Subsurf Modifier.

Finally join the meshes with Ctrl+J, remove doubles and give the object a Mirror Modifier.


There are two ways of setting motion blur in Blender.In render properties by enabling Motion Blur (Cycles) or Sampled Motion Blur (BI) or with Vector Blur node in Compositing node tree. Check which of this is used in your case and disable option or mute node to get rid of unwanted blur.


Welcome to Blender Stackexchange! In the old node, the End option simply inverted the Falloff. So to have the same effect, you can invert the Falloff before inputting it using the Invert Falloff Node. This is described in the documentation of the node:

  Start option will offset the matrices based on the offset parameters with the falloff as a factor. End option will offset the matrices based on the offset parameters with the inverse falloff as a factor, in other words, all matrices will be transformed based on the offset parameters and then matrices will be transformed back to their initial position based on the offset parameter with the falloff as a factor.


Right now your ground plane is set to a layer that has not been set to render.

Move the ground plane that remains black to a layer thats beïng rendered like Layer 1. (Select the plane, press M, and select the first box)

Or enable the layer which contains the ground plane in your scene settings. (shift + LMB on the box/layer which contains the ground plane)

Hope this works for you...

B.t.w. The smoke texture from the other plane is missing. You can pack this in your blendfile using File > External Data > Pack all into blendfile or auto pack.


What is the simplest way to remove objects from a group inside of an Animation Nodes Node tree?

There is a node called Object Group Operations. It can link/unlink objects from Object Groups. By using this in a loop you can link them all to the group.

There is no node to remove all objects from a group.


Bone Heat Weighting Failed, after turning on symmetry

This kind of topology (found in your model), in which a vertex is "inside" the mesh,  is not accepted by the automatic weighting algorithm: it only works well with clean manifold meshes, without holes.
Your mesh is made of triangles, which will not deform very well, as quads can.
I suggest you to retopologise your mesh with clean quads only, then you will have no weighting problems.
If you don't want to retopo, consider manual weighting, using the function "with empty groups" during parenting, which creates an empty vertex group associated to all the armature bones marked as "deforming":
You can select all the vertices you want to assign to a bone, select the corresponding vertex group in the properties tab, choose a weight value and click assign.


How to change the orientation to resize?

You've selected the 3D cursor as Transform Pivot Point, so you need to switch to Median Point for example:


Easily setting numerical values for geometry, like Lightwave's Modeler does

You can edit the positions of single vertices using the properties panel which can be toggled by pressing [N], then under the item tab you can see the XYZ coordinates. You cannot see each verts position individually but you can change them all at once.
Another useful tip is that if you want to  bring a vert to the same plane of another you can select the verts you want to move, and then the one on the X Y or Z you want it to be, and set the transform pivot to active. Then just press [S] to scale the [X], [Y], or [Z] button that correlates and then 0.
(Will add example gifs soon)


How do I get all the Keyframes I see other people using?

I've figured it out. I needed to click the "x" in the active keying sets dropdown in the timeline window. that let me choose what I wanted when I hit "I" in all engine and projects. The "I" shortcut does not work if the keying set is set to "available". just hit the x thee so nothing appears in that window.

Also, the "I" shortcut will look different in the dope sheet than it will in the 3d view. I understand now, and hope that this is able to clear things up for other who may be confused as to what they should do.