World Background Image: Environment Texture does not scale right

The image you are using is not an Environment texture, it is a regular High definition photograph. You can't plug such an image into an Environment texture node, as they have their own type of mapping.

My recommended solution is to set it up as a regular image texture with this as your mapping:

The result is this:

You can then use the mapping node to adjust how your image fits into the scene.


Without further information on the audio file it is hard to help. Since the error seems to originate from the file maybe just opening it in any audio manipulation software like audacity and exporting it in a known file type like wav appears to be the best option. Also, you will know whether your file is damaged if other software can't handle it either.


how to get rid of these weird artifacts in my fluid sim?

increase the roughness of the reflektion to sth over minmum.

i have no model to test. Play with the value a bit.


You might achieve the desired effect by using a solidify modifier or by extruding the faces and scale them along their normals using Alt + S.


Rotate edge loop in oval cylinder object

Select the loop of faces with Alt+RMB, then press Ctrl+E-->Rotate CW or CWW.


How to use Blender's dynamic sky add-on?

First go here: http://www.dragoneex.com/downloads/dynamic-skyadd-on and look at "Instruction" section. This is self-explanatory and will help with further tasks.

Controlling sun/moon

These sphere you are referring to is nothing more then Vector > Normal Node. There is a little info in docs about it so I'll quickly show you how to control sun with it in most understandable way.

Simply, go to the Top View and this is the way you can relate to the sphere shading. If sphere is lit from the left, mesh will be lit the same way. If light will be visible at the center of the sphere, mesh will be lit from the top.

Daytime sky without clouds

This one is the easiest one. You only need to change Cloud Opacity to 0. These will hide our clouds. You can further adjust colors, brightness, etc.

Used colors

Sky - #b0ecff
Horizon - #fbeaea
Cloud - #ffffff
Sun - #bcbcbc

Sunset sky with clouds

In this example colors are crucial. Darker sky, orange horizon, warmer sun light, lower Brightness. Also you will need to tweak Clouds Opacity and Density as needed. Don't forget to place sun near Horizon using tip from first paragraph.

Used colors

Sky - #385179
Horizon - #fb8648
Cloud - #ffb9a8
Sun - #bc9481

Night-time sky with stars

This is where the fun begins and in this paragraph you will learn how to push this add-on to the limits. It's not the easiest way but it will give you total control over it. One thing I can't solve is moon opacity over stars. Maybe someone could help here.

Used colors

Sky - #151f2e
Horizon - #191825
Cloud - #ffffff
Sun - #7688a0

First as before adjust overall mood and colors. Brightness down, colors darker, cool sun/moon light. And after it...

...go to the Node Editor and switch to World. This is an overview of what part of those noodles control what we can see.

Stars

To make stars from clouds change bottom Noise Texture to Voronoi Texture, set Scale in Mapping node to 1 (X, Y, Z) and adjust Color Ramp (from Voronoi) to have "sharp" stars. Upper Noise Texture is controlled by Clouds Density value in add-on tab. This is basically "mask" for the stars/clouds. If set to 1 it will create "gaps" between them.

Moon/Sun

In this part you can control how big sun/moon will be, and how big will be its halo. Nothing really to explain here. Slide Color Ramp values and change upper Multiply Node value.

Horizon level

Another fairly easy setup, left values from Color Ramps are controlling horizon/sky/clouds height. Right (middle) ones are controlling sharpness.

Sun color

You can change Sun color in MixRGB node showed in screenshot. You can also change blending mode to Linear Light to have stronger colors.

Final thoughts

As far as last method isn't convenient one and feels more like "hacky" way to do this I think it could give you pretty much anything you need from this add-on. My advice would be - play with values, nodes, colors in Node Editor to find new ways to use it.

In a matter of making it realistic. Well. Overall lightning is ok. I don't know if it's physically correct but it's really good. One thing that's not realistic are clouds and stars and there is probably nothing you can do about it in this add-on. Of course you can create amazing procedural cloud setup and use it in a place of two Noise Textures but still they will be just 2D representation of clouds without Volume Scattering and such.

If something is not clear in my answer, please point it in the comments. It was pretty long one and something could be missed.


I guess you can either:

Make the physics begin at frame 250 in the Scene settings > Rigid Body World > Simulation Start:

Or you can activate the object's rigid body Animated option at frame 0, which means it won't be submited to any physic simulation, keyframe, disable it at frame 250 and keyframe again (deactivate and activate Dynamic will work as well):


The default leaves generated in the Mtree node system are a Python scripted
particle system. Unreal reads each particle as a separate object. Therefore, we need to combine the particles and the tree trunk/roots/branches etc. into a single mesh for Unreal.
There a few steps and the (processing) time required varies depending on the complexity of your generated tree(s).
I also strongly suggest texturing your tree and leaves before beginning this process

Select just the leaves and navigate to the modifier properties:

Select convert, this will make each leaf particle a separate object, and hit apply on the modifier settings:

Shift +  LMB the trunk of the tree and parent the leaves to it with Ctrl + P and select Object (Keep Transforms). Again, however long the parenting process takes is dependent on the complexity of your tree trunk (roots, branches, twigs etc.):

When that is finally done,  RMB on the parented tree+leaves and select Convert to Mesh, this will be much quicker than parenting:

Now (with everything still selected) we right click again and select Join.
If your tree object still have a separate leaf object, then select both your tree object and leaf object, right click on the leaves specifically and select Join again.
Voila! All the leaves and the tree are now a single mesh, ready to be imported to Unreal:

In my experience, the materials don't always import correctly therefore playing around with the import settings and material editor is still required, but our base tree is now in Unreal. This method could also work with Epic's Blender-Unreal import plugin that you can search for on their github.


Python Commands from Terminal Aren't Working Ubuntu 13.10

As mentioned by sambler, the terminal from which blender is started is not normally used as an interactive python console. (however it is possible)

Usually one uses the python console built into the GUI.

The python console is an editor just like the 3D view or the text editor, so you can arrange your screen layout however you like to incorporate it with your workflow.

For example:

You can even split an editor into a separate window (as in the kind handled by the window manager).
This can be accomplished by pressing ShiftLMB on the area splitting corner and dragging, or by selecting the option from the editor areas menu:

For example:

Note that you probably still want the terminal from which blender was started open, as any error messages/warnings are printed to stdout and will appear there  (they will not appear in the interface by default, but there is a workaround).


Mirror modifier on the same axis is actually opposite

Apply both mirror modifiers, perfom the brdige edge loop operation on one side, then select and delete all the other side and re-add a mirror.


How to add an object to an existing group from Python?

It is actually pretty simple:

import bpy

grp = bpy.data.groups.get('bacon')

obj = bpy.data.objects['Cube']
grp.objects.link(obj)

This avoid the hassle of setting up the context for bpy.ops operators.


Adjust number of digits displayed for timer property?

There is an option with quite a few Logic Bricks, but

formatting.py:

def propertyToText(controller):
    sensor = controller.sensors[0]
    propertyName = sensor.propName
    owner = controller.owner
    value = owner[propertyName]

    formattedValue = "{:.2f}".format(value)

    owner.text = formattedValue

Usage:
Have a Property (e.g. timer)

Property Sensor [enable True Level Triggering]
Mode:Changed Property: your property

--> Python Controller Module:formatting.propertyToText


I've found it, it was really simple. I simply could have used the "Hidden wire" option.


Unexpected Gaps Between Linked Mesh Objects using BlenderGIS addon

Ensure you have the connecting edges on each tile. What I mean with that is.

When you have a left and a right tile (L and R). The vertices of the right border of L needs to match the vertices of the left border of the R. They need to be at the exact same location as the according vertex of the other tile.

As your tiles are in different blend files you might check the positions of the corner vertices of each tile. When the tiles are moved to the center of the scene, you need to subtract the according offset of the tile.


Extra Sparkles / Missing Light Reflections

For the first issue, I'm 99% that Plane.002 is part of the lightbox that you've built.  You have it restricted from the viewport so that when you preview it, it casts a dark reflection on the object.  But when you render it, it's there. Try Restricting it from Rendering and see what you think.

For "stationary" noise or non-randomized noise, just use a random seed for each frame by checking this button:


how to use BMesh to add verts, faces, and edges to existing geometry

The issue with this script is when you exit editmode, the editmesh you were editing becomes invalid (thats good, but not what you want).

So instead, just exit editmode and blender will handle converting the modified bmesh into the object mode mesh data.

import bpy, bmesh

obj = bpy.context.object
me = obj.data
bm = bmesh.from_edit_mesh(me)

v1 = bm.verts.new((2.0, 2.0, 2.0))
v2 = bm.verts.new((-2.0, 2.0, 2.0))
v3 = bm.verts.new((-2.0, -2.0, 2.0))

bm.faces.new((v1, v2, v3))

bmesh.update_edit_mesh(obj.data)

# This is optional, you could also stay in editmode.
bpy.ops.object.mode_set(mode='OBJECT')

Note, if you want to stay in editmode, call bmesh.update_edit_mesh(me) at the end of the script to ensure ngons are re-triangulated for display.


Mesh in not straight any more, when I render it becomes rounded

There are two settings for subdivision in the subsurf modifier (and other modifiers as well)

View determines the number of subdivisions for the viewport.

Render controls how many subdivisions it will have when you render.

It is designed that way so that the computer is not bogged with unnecessary computations while you work on the scene, and is more responsive while modeling, and then when you want to render you can have a smoother model.

Also, modifiers have switches that might be toggled for viewing and rendering. It is possible that one of the modifiers is disabled for viewing but is enabled for rendering.

The Camera icon enables or disables rendering using the modifier.

The Eye icon toggles visibility on the 3D viewport.


With multiple objects selected, how can I tell which keyframes in the timeline relate to which object?

As you have noticed, the timeline is good for

scrubbing,
playback settings and options and
manipulating the keyframes of a single or very few objects.

You need to switch to another animation editor type: the dopesheet or the graph editor.

  The Dope Sheet gives the animator a birds-eye-view of the keyframes inside the scene.

The dopesheet can show

the object's name (1),
the object's action (2) (if you have set keyframes you will have exactly one action)
the keyframe groups name (3) (keyframes for the same object are groups)
the names of the individual animation curves (fcurves) (4)

You can also toggle the Only Selected option (5), which will only show the keyframes for the selected objects.

The dopesheet provides you with a good overview for your keyframes. It is not only possible to manipulate the time property of keyframes (on which frame they are set) but also their values.

Click to enlarge.

If you wish to view the keyframes as individual curves or have finer control over their handles, you can switch to the graph editor.


I believe it's because of N-gon topoology.

It's a bug in Boolean modifier I think, but still.
I see 4 solutions:

Retopo your mesh so it contains only quads.
You can use Fast method of Boolean modifier. There's still an issue but less noticable:

Add a circle instead of a cylinder and use a Shrinkwrap modifier. You'll get a nice cut:

Use add-ons like BoxCutter. As I know, it deals with N-gons nicely. But the add-on is expensive :(


Why Doesn't the Viewport Optix Denoiser Doesn't Work in 2.9?

With the latest (as of this writing)  alpha release of 2.9 you can indeed use optix and take advantage of viewport denoising in cycles with  both CPU and certain non RTX GPUs.
From the Cycles release notes

GPU Rendering

OptiX support is now enabled on all NVIDIA GPUs that support it,    which is Maxwell or higher (GeForce 700, 800, 900, 1000 series).

NVLink support for CUDA and OptiX. When enabled in the Cycles device    preferences, GPUs connected with an NVLink bridge will share
memory    to support rendering bigger scenes.

NVIDIA GPU rendering on macOS is no longer supported. Apple dropped    support for CUDA drivers in macOS 10.14, and no recent Apple hardware
uses NVIDIA graphics cards.

Viewport Denoising
Intel OpenImageDenoise is now supported for interactive denoising in
the 3D viewport. This works on any recent Intel/AMD CPU (with SSE
4.1).
Previously viewport denoising was only supported for NVIDIA GPUs using
OptiX.


cell division to simulate cancer cells duplicating out of control

Meta-balls work great for cells, look under add/meta-balls/balls.
Meta-balls animated looks like mitosis


Transparency of whole image at the position of an object

Holdout based on a material

The Holdout shader node sets the alpha to zero for the area occupied by the object in the rendered image. This is documented in Blender's manual:

  The Holdout shader node is used to create a “hole” in the image with zero alpha transparency, which is useful for compositing (see alpha channel).

  Note that the holdout shader can only create alpha when Properties ‣ Render ‣ Film ‣ Transparent is enabled. If it is disabled, the holdout shader will be black.

Holdout for a collection in the current view layer

As Jachym Michal noted, you can also use the holdout restriction toggle to mask all objects inside a collection for the current view layer. It will not affect the visibility of the same collection in a different view layer.

Display the holdout restriction toggle:

Activate the holdout for, e.g. Collection 2:

This approach sets the holdout attribute for the LayerCollection in the current view layer.

Alternatively you can also set/clear the holdout from the context menu in the outliner, if you're using Cycles as render engine. This can be accomplished by right-clicking on the collection to open the context menu and then using either View Layer > Set Holdout or View Layer > Clear Holdout. At the time of writing this option is unavailable when using any other render engine, due to a hard coded check in OUTLINER_MT_collection_view_layer (space_outliner.py).


change object pivot after animation and keep animation positions

I deleted all wheels animation, parented them (the wheels) to truck, then just add rotations for each child (wheel animation).

Thank you @MattFerndz for the idea!


You can create a high-poly mesh and animate the collapse ratio of its decimate modifier to reduce the polycount while the camera is zooming out.

Original Mesh

Mesh with decimate ratio of .016.
Learn more about the decimate modifier here: https://docs.blender.org/manual/de/dev/modeling/modifiers/generate/decimate.html

As for leaves, I'm not sure. It's hard to do a seamless transition between a bunch of individual leaves and a solid "block" you'd see in most low-poly renders.


Does 'Inverse Kinematics' override other bone constraints?

I think I found the issue. My active 'Copy Location' constraint was overriding my "Limit Location" constraint. Priority in the constraints appears to flow up to down.


Ended with this. Transformed geometry to world coordinates (with bmesh.ops.transform as suggested by batFINGER) and replaced single camera direction to multiple directions between camera location and faces' centers:

import bpy
import bmesh
import numpy
from mathutils import Vector

scene = bpy.context.scene

obj_mat = bpy.context.active_object.matrix_world
cam_mat = scene.camera.matrix_world
cam_loc = Vector(([e[3] for e in cam_mat][:-1]))

bm = bmesh.new()
bm.from_object(bpy.context.active_object, scene, deform=False)
bmesh.ops.transform(bm, verts=bm.verts, matrix=obj_mat) #convert to world coordinates
id = [f.index for f in bm.faces if numpy.dot(f.normal, cam_loc-f.calc_center_median())>0]

print(id)


You got pretty close TheMinecraftMan757, i've seen many people struggle with that tutorial over the last 3 or 4 years. I think even some of the function calls have been changed.

as Gandalf points out:

  to scale_apply() on line 24 should be transform_apply(scale=True)

At the time the tutorial was written, the function call was scale_apply(), but it was changed to a more general apply function that can apply not just scale, but rotation and location. You would never have figured that out in a million years without a bit of googling or more familiarity with bpy.

here's my minimized interpretation of that code.

import bpy

rows = 5
columns = 5

def spiral(X, Y):
    scn = bpy.context.scene  # an alias, lets you use scn shorthand
    x = y = 0
    dx = 0
    dy = -1
    for i in range(max(X, Y)**2):
        if (-X/2 < x <= X/2) and (-Y/2 < y <= Y/2):
            bpy.ops.mesh.primitive_cube_add(location = (x, y, 1))
            obj = bpy.context.active_object

            scn.cursor_location = obj.location
            scn.cursor_location.z -= 1
            bpy.ops.object.origin_set(type="ORIGIN_CURSOR")
            obj.scale = (0.5, 0.5, 7)

            bpy.ops.object.transform_apply(scale=True)
            bpy.ops.anim.keyframe_insert_menu(type='Scaling')

            action = obj.animation_data.action
            action.fcurves[0].lock = True
            action.fcurves[1].lock = True

            bpy.context.area.type = 'GRAPH_EDITOR'

            step = 20000 / (rows * columns)
            fp = r"C:\Gannon\Blender\Sounds\Music\Batty McFadden.mp3"
            bpy.ops.graph.sound_bake(filepath=fp, low=i*step, high=i*step+step)
            action.fcurves[2].lock = True

        if x == y or (x < 0 and x == -y) or (x > 0 and x == 1-y):
            dx, dy = -dy, dx
        x, y = x+dx, y+dy

spiral(rows, columns)

If you don't set the path to a valid one, then you can get errors like

RuntimeError: Error: Unsupported audio format

remarks:

On windows use r'C:\your\file\destination.mp3', the r turns the quoted string that follows it into a raw string literal, this is perfect for filepaths.
On linux you should really know how to compose a path, but if you're new to it, it might be something like: '/homes/your_user_name/music/some_tune.mp3'
This code can take a long time to bake each graph. Even with a 5*5 grid, it will bake the entire graph 25 times. Here's a version which places a print statement just before it starts baking each iteration, you will need to have the terminal/cmd-prompt open before running the command.

a simple script to test your mp3 filepath, but it is really worth your time to read the python docs about paths

import os

# on windows, string prefix r is used to avoid the need for double backslashes
# filepath = 'C:\\Gannon\\Blender\\Sounds\\Music\\Batty McFadden.mp3'
filepath = r'C:\Gannon\Blender\Sounds\Music\Batty McFadden.mp3'

# on POSIX systems (linux, osx)
# filepath = '/home/zeffii/cookoo_22may_2011.mp3'

found = os.path.exists(filepath)
if found:
    print('yes, this file was found')
else:
    print('nope, the path does not exist')


How to make "Himalayan" rock salt chunks in Blender

Ok here is something I made awhile back. It is really involved and maybe overkill. But it is a great learning experience.

I dont have time now but I will try to update my answer to fill in more details.

Its too shiny but this should get you started.

I got a lot of tips from this user.

https://www.blendernation.com/2017/03/23/gemstone-sculpting/

He also did a tutorial on how to do the shader.

https://www.blendernation.com/2017/03/25/gemstone-shader-breakdown/

Here is the blend file to mess around with

Here is another more simple set up that looks pretty good.

and this is the Gradient node you will need to build.


How to get the pressure force applied on an object?

A force field object can not be edited using nodes.
Nodes are reserved for materials.

I am guessing you want to animate the force within to simulate increasing wind force. You can do this by selecting your wind force and opening up the physics tab.

In this tab hover the strenght attribute and press 'i' to insert a keyframe.
Than place another keyframe somewhere else on your timeline to animate the wind force. Same can be done for the other attributes.


How to have color in your blend file preview

The File Browser preview only shows solid view colors.
You have three options here:

Adjust the solid view color for each material (in Material tab)
Set solid view color for each object (in Object tab)
Use random color for each object

You can switch between different modes using the Viewport Shading menu.


Applying this node set up (in Blender Render) will cull frontfaces. Apply your texture in the texture box onto the material you want to use. Linking it with color. Set the material to color output. Add a geometry node and set that to alpha. You need to set this to anything that has a mesh within it. But you will not need this setup for the most center mesh. For the most center mesh you can just apply whatever material/texture you want as typical with or without the nodes.


How can I model a spread cylinder type of shape?

The aim is to construct edge loops along the curve.

A way to do it:

Start with an open cylinder, cut it in half and mirror it. Then extrude the bottom half part.

Add a circle (or the curve shape you want) with a high resolution. Then manually snap the top part of the cylinder so that it fits the curve.

Add two vertical knife cuts: one on the right to delimitate horizontal and vertical sections, the second on its left to give more precision to the curvature. For this last one adjust its top vertex (or vertice as some say) to the curve.

Extrude all the edge except the top 3 vertices, horizontaly to the cylinder center.

Add 3 loop cuts and fill the open faces, so that the first loop is now done.

Add two loop cuts to the exterior part, like so:

Use X 'dissolve egdes' and 'dissolve vertices' and also knife cuts K to adjust the geometry.
On left here an intermediate step, final step on the right.

Adjust vertices positions mainly using GG to slide along edges.

Add a subdivision surface.

The blend file includes this construction step by step:


How to re-enable background transparency (Blender Render)?

Drop down under Properties/Render/Shading/Alpha. Although you seem to have a special compositing setup so it might be a different issue.


2019 Macbook Pro (laptop) keyboard shortcuts

I had similar problems when starting with Blender (I'm using a MacBook without mouse and Blender 2.80). Here some tipps:

most shortcuts are made for people with a numpad, if you only have a simple keyboard, you can change it under Edit -> Preferences -> Input -> Keyboard -> check "Emulate Numpad" (here's an older post about this topic How to emulate a Number Pad and 3 Button Mouse?)

I also changed some of the Hotkeys under Edit -> Preferences -> Keymap (a lot of Hotkeys use keys I don't have on my simple laptop keyboard, so you might want to switch some of the functions you are using most often to key-combinations you have and are still available). It's also useful to browse trough and lookup Hotkey combinations here (they should be specific for mac and not windows)
After you changed a hotkey, it has an arrow pointing left besides it (in blender 2.80) For example I changed the "view selected" to Alt+Q

Another important thing is to choose how you want to select stuff (either right or left mouse click), you'll also find it under Edit -> Preferences -> Keymap -> 3D View -> Mesh -> 3DView: Tool Select (earlier versions of Blender had a more global switch for that)

I hope this helps, let me know if you have questions (also always post the blender version you are using with your question, because Blender changed a lot in the last months)


Using just Blender to make cloth assets on a model in UE4?

I'll comment since I've figured this out, in case someone else is as clueless as I was. So, I modeled each part of the object, IE the dagger and the cloth. IN BLENDER, I gave the cloth and the dagger each a material (didn't change any settings). Combine them, export them and texture them, whatever. I didn't add bones or anything.

In UE4, all I did was import it as a skeletal mesh, and opened it up. Having a material on each the dagger and the cloth allowed me to select them separately in UE4 and thus "create cloth from asset" in the engine.

I could apply the Material I made for the combined object to both the cloth and the dagger, and it looked fine. The only purpose the material in Blender served was to allow me to select the cloth separate from the dagger in UE4. https://www.youtube.com/watch?v=MC2UlF3BWhQ&t=0s&index=31&list=WL This video although low quality, is what helped me figure it all out.


How can I execute a .bat file when Blender starts?

Would it not be simpler to start both blender and postgresql using the same .bat file. Then point any blender shourtcuts/links you have at that file?


Invisible object that hides other objects (as a mask)

One way this can be done, is using the render layers mask layers. While this may not be as simple as Denis's answer, it's always good to know more than one way to do something, and it can be a bit more flexible because it works with both cycles and BI (and should work with basically any other rendering engine also).
Using Mask Layers
To create a mask layer, move your object(s) to their own layer. Generally you want this layer to be a bit out of the way. I've highlighted in a few common choices, but of coarse, you can use whatever layer you want to.

Then, to use that layer as a mask, simply highlight it in the mask layers layer group.

This effect is really useful for a lot of things, including VFX, and advanced compositing, but my favorite use, is to make something appear bigger on the inside:
How can I create a portal?


Can you use geometry node data to affect the material of instanced objects? (E.g. scale changes color)

No. You can't.
You can, however, use common input for your shading nodes and geometry nodes: the empty's position:

Of course as you can see it creates gradients:
So you want to change each coordinate of an inner cube to one single coordinate of that cube - most logically to the center (which is also the vertex that spawned the inner cube).
First an approach that didn't work, to perhaps save someone some time investigating the same thing...
I found that Texture Coordinate > Object for unspecified (default) Object target will give the coordinate in the spawned cube's coordinate system - so you get the information on how far you're from the center of the inner cube:

But the above is a dead end, because you want to know how far you're from the center in the BIG coordinate space, so you end up where you started - you need the inner cube's dimensions relatively to the big cube's dimensions, to know how to scale their coordinate systems so they're compatible with each-other.
--
Now for a solution, that actually works in your case: you can (easily) mathematically describe the geometry, so you can figure out for each pixel's coordinate where's the center of the inner cube this pixel is on. Start by using Object coordinate of the Instancer:

X, Y, Z components are in range of -1.11444..1.11444 instead of usual -1..1 - that's because the coordinate system is defined by the vertices of the object before its geometry is changed - so -1 is the leftmost/lowest/furthest center of an inner cube, and not the boundary of resulting shape:

If there's no empty space between inner cubes, a line between 1st and 9th centers is equal to the length of 7 and 2 halves on either side = 8 inner cubes in middle:

1 / 8 * 9 = 1.125. That would be the number instead of 1.11444 if inner cubes would be as big as possible without overlapping. Armed in this information, let's snap the values to 2/8 as our current range is 2 integers (-1..1), and 8 inner cubes fit into it:

There's an obvious offset in colors, because the snapping starts at half of a cube, so let's translate by half of a cube: 1/8/2*2 (1 of 8 cubes, divided by 2 for a half, multiplied by the range which is two from -1 to +1)  = 0.125 of the entire range:

Now subtracting pixel's position in the empty's coordinate system from its position in the instancer's coordinate system should give the position of the empty in the instancer's coordinate system; then displaying a color based on the distance from it should yield the desired result:

But the gradient returned, something is wrong. Viewing the result of subtraction mentioned in the last paragraph, we can see the problem:

There should be just one color, because regardless of the pixel position, the calculated empty position should be the same (we calculate position relative to the coordinate system, not relative to the pixel). The problem comes from two places:

the instancer is rotating - counter the rotation using drivers pointing to the instancer's rotation (you can right click, Copy as New Driver, then in node right click, and Paste Driver)
the empty is scaled - multiply the vector by the empty's scale, you can use drivers here too.

All that's left is to duplicate the nodes (3 first and 2 last can be common) for the other empty and combine the distances somehow (average, sum etc.).


How do you remove Mirror and SubSurface seams?

Thank you for the comments, I've got it to work now! Issue was I needed to tick Clipping then apply Subsurf after the Mirror modifier.


Firstly operators don't work in a usual create class instance way... the code below

myobject = remDoubles()
myobject.execute()

Will NOT work.

Have a look at the Hello World Example  The HelloWorldOperatoroperator class is defined, registered (known to bpy.ops), then called using bpy.ops. "plus" the bl_idname.

In your example you would

bpy.utils.register_class(RemoveDoublesMulti) # changed to camel-case name

# test call to the newly defined operator
bpy.ops.object.remove_doubles_multi()

Using a bmesh approach avoids toggling in and out of edit mode, changing the context object ...  etc.  An alternative for execute:

import bpy
import bmesh

context = bpy.context

distance = 0.0 # remove doubles tolerance.
if True: #def execute(self, context):

    meshes = set(o.data for o in context.selected_objects
                      if o.type == 'MESH')

    bm = bmesh.new()

    for m in meshes:
        bm.from_mesh(m)
        bmesh.ops.remove_doubles(bm, verts=bm.verts, dist=distance)
        bm.to_mesh(m)
        m.update()
        bm.clear()

    bm.free()


Why is vertex snapping with auto merge enabled not merging vertices?

The video is of 2.62, where this seems to work. In current versions of blender you need to disable Applied edit cage on your modifiers for snapping + auto-merge to work reliably:

I've reported this here.

However, in this case there are some potentially faster ways to merge these loops.
Loops with equal vertex count, but not necessarily even vertex placement:

Select both loops and press W> Bridge Edge loops (E)

Switch to edge select mode (CtrlTab> Edge) and select the newly created edge ring by pressing CtrlAltRMB over one of the new edges.

Press AltM> Collapse to collapse the selected edges.

Loops with lined up vertices, but not necessarily the same vertex count:

Press W> Remove doubles and up the merge distance in the redo panel (F6). This will result in triangles with uneven vertex counts, and it could produce tris even with equal vertex counts.


Regardless it is square-based or not, you can always select all sloped edges, then hit W > Subdivide, then tweak the number of cuts as you want.

Another trick is to first bevel the pole vertex, with a very small value, to make all sloped faces quads (they might still look like triangles , but they are actually quads now), then you can use loop cut tool to cut them. After that, just remove the extra vertices with Remove Doubles tool.


I got it! the trick is that you have to create a New UVMap for the bake to draw to.
click "data", expand "UV maps", click the "+" to create a new UVMap. with the new UV map selected, you can create a new blank Image, unwrap, and bake!

edit: so although it worked that time, i did the same process again on another section and im getting improper bakes!, whats the deal?

edit x2: it was a mirror modifier! even though it was turned off, after deleting the modifier it baked correctly.


A door key question deserves a dorky answer, so here goes...

I set up a Player and a Non-Player Character (NPC) which could just as easily serve as Player 2 in a 2-player game. Here I used it just for testing, although in a game it could serve as a scripted enemy or ally, or whatever. The point is that it can acquire keys just like the Player can.

Character Properties

These Boolean values go from 0 to 1 (False to True) when a key is acquired by the character.

(NPC has the same Properties as Player, except that it has the Property npc instead of player.)

Each character has its movement controls and an interaction control which can be used to (among other things) open doors when it is near them, and has the required key. Interaction from each character sends a unique message (either player_interact or npc_interact).

In order to add multi-key support, each character has a Sensor for each key, which all get fed into a Python Script Controller (keys.py).

keys.py

import bge
cont = bge.logic.getCurrentController()
own = cont.owner

key_alpha_status = cont.sensors["GetKeyAlpha"]
if key_alpha_status.positive:
    own['has_key_alpha'] = True
    print("Alpha Key acquired!")

key_beta_status = cont.sensors["GetKeyBeta"]
if key_beta_status.positive:
    own['has_key_beta'] = True
    print("Beta Key acquired!")

key_gamma_status = cont.sensors["GetKeyGamma"]
if key_gamma_status.positive:
    own['has_key_gamma'] = True
    print("Gamma Key acquired!")

key_delta_status = cont.sensors["GetKeyDelta"]
if key_delta_status.positive:
    own['has_key_delta'] = True
    print("Delta Key acquired!")

key_epsilon_status = cont.sensors["GetKeyEpsilon"]
if key_epsilon_status.positive:
    own['has_key_epsilon'] = True
    print("Epsilon Key acquired!")

key_zeta_status = cont.sensors["GetKeyZeta"]
if key_zeta_status.positive:
    own['has_key_zeta'] = True
    print("Zeta Key acquired!")

Character Logic

The key objects themselves don't play a very active role in the logic. If touched by something having the property player or the property npc the given key will disappear.

Key Logic

Each door object animates through various States, the important thing being that animation is initiated upon receiving a Message unique to that door (open_door01, open_door02, and so on).

Each door has a corresponding sensor object that is an Invisible physics Ghost. It's just an area within which collision can be detected, as one condition that needs to be met for a door to be opened.

Door Sensor Object - Physics Settings

We don't want it to be possible for a player to open a door from across the room - unless that door is intended to be opened by a remote switch, in which case the sensor can be moved to the location of the switch instead of surrounding the door.

Each door sensor object's game logic does two things:

(1) Checks if a character is colliding with the sensor object (using two Collision Sensors that listen for player and npc Game Properties respectively), and (2) Checks if the character is attempting interaction (by listening for either a player_interact or npc_interact Message). This input gets routed to a Python Script Controller for that specific door type (door_alpha.py, door_beta.py, and so on).

Door Sensor Object Logic

Someone with better programming skills than myself could surely find a way to eliminate the need for individual scripts for each door/key type, but at least this works. It just requires preparing one .py script of each door/key type by doing a Find/Replace in a text editor to change require_key_beta and has_key_beta to require_key_gamma and has_key_gamma... if you follow what I mean. I've only prepared Alpha and Beta types for this demo, since there are only two keys. How many key types do you realistically need? (6 should be plenty?)

door_alpha.py

import bge
cont = bge.logic.getCurrentController()
own = cont.owner

p_collision = cont.sensors["PlayerColl"]
p_interaction = cont.sensors["PlayerInteract"]

npc_collision = cont.sensors["NPCColl"]
npc_interaction = cont.sensors["NPCInteract"]

open_door = cont.actuators["OpenDoor"]

### PLAYER ###

#If this door requires a key, and player is colliding with it, and colliding player has the key, and a player interaction message is received:
if own['require_key_alpha'] == True and p_collision.positive and p_collision.hitObject['has_key_alpha'] == True and p_interaction.positive:
    print("Door unlocked")
    cont.activate(open_door)

#If this door requires a key, and player is colliding with it, and colliding player does NOT have the key, and a player interaction message is received:
if own['require_key_alpha'] == True and p_collision.positive and p_collision.hitObject['has_key_alpha'] == False and p_interaction.positive:
    print("Can't unlock this door without a key")

### NON-PLAYER CHARACTER ###

#If this door requires a key, and non-player is colliding with it, and colliding non-player has the key, and a non-player interaction message is received:
if own['require_key_alpha'] == True and npc_collision.positive and npc_collision.hitObject['has_key_alpha'] == True and npc_interaction.positive:
    print("Door unlocked")
    cont.activate(open_door)

#If this door requires a key, and non-player is colliding with it, and colliding non-player does NOT have the key, and a non-player interaction message is received:
if own['require_key_alpha'] == True and npc_collision.positive and npc_collision.hitObject['has_key_alpha'] == False and npc_interaction.positive:
    print("Can't unlock this door without a key")

The resulting output of the Python script (example:door_alpha.py) from the given door sensor object will activate a Message Actuator, which will send a Message with a subject such as open_door01, which I mentioned earlier.

Here are the parts of that code to pay attention to:

open_door = cont.actuators["OpenDoor"]

and within the IF statements:

cont.activate(open_door)

You know how the rest goes - corresponding door object receives the message, the animation of the door opening is triggered. Our player progresses and presumably has fun.

As for the animation of the doors, there are several ways to do it. Most will involve switching States. On my doors there are four States: Initial, Opening, Open, Closing. Closing loops back to Initial, in other words Initial is the same as Closed.

States can't be labeled directly, but labeling the State Actuator's destination makes it easier to keep track of what State should come next (In mine, the State Actuator of Initial is labeled "To Opening", for example).

Door Object Logic: Animating Through States

Door01 is basic, using Delay Sensors and Motion Actuators. For Door02 I wanted more control in animating individual parts of the door, so it makes use of Property Sensors (that evaluate if the Property frame is equal to a given frame, then change the State accordingly) and Action Actuators that play specific frame ranges of the animated Action and set the value of frame. Because Door02's animation is done using Actions, it is actually an Armature Object, with Mesh Objects parented to its animated Bones.

I think that covers everything. Enjoy playing with the .blend. If anyone has questions, comments, or ideas for improvement, I'm all ears.

(Made with Blender 2.79b)

Demo file screenshot:


How do you create interactions with other objects?

You need to use rigid body physics to do what you want.

Select your sphere, then add Dynamic Rigid Body to it as shown below:

Then select your ground plane and add Passive Rigid body to it as shown below:

This is the result, the sphere will fall and when it hits the plane it will land and stop as shown below:

Updated .blend file can be found here:


Fluid render has horizontal lines in Blender Eevee

I was testing fluid simulation here and had the same issue. The solution was to turn off "Show Backface" in the Material settings tab, under "Settings" like in the screenshot below. Then the lines don't show up anymore.


Usually doubles and duplicate geometry are unintentional, but sometimes you might have geometry that is intentionally in close proximity to other geometry so that you can't just do a remove doubles on the entire object.

There's a couple of Low-Tech ways that i'd like to suggest first.

If you press Z, in edit mode, you'll see a transparent / half opaque mesh. Faces that are duplicated in place will often appear darker.
.
Keep in mind that Backfacing Faces will also appear darker, so don't get confused :)
In Object mode, you'll see duplicate edges because they are drawn using the same color as the border of a mesh. Whether or not this is intentional I don't know, but it works well to track down duplicates edges.

In Face selection mode of Edit Mode, look for Dots on edges. Dots indicate the median of a face and should never been visible on edges.

You see this with geometry that you've accidentally extruded without translating the new face.
In vertex selection mode of Edit Mode, look for vertices which don't highlight surrounding edges:


Can i bake a texture in headless mode? 2.80

I am doing texture baking in headless mode and it works for me. Not sure what is the problem with your script but here is my script:
import bpy
import logging
import sys

console_handler = logging.StreamHandler(sys.stdout)
log = logging.getLogger(__name__)
log.addHandler(console_handler)

cuda_devices, opencl_devices = bpy.context.preferences.addons['cycles'].preferences.get_devices(
)

bpy.context.scene.render.engine = "CYCLES"
bpy.context.scene.cycles.device = "GPU"
bpy.context.preferences.addons["cycles"].preferences.compute_device_type = "CUDA"

for device in cuda_devices:
    print(f'Activating {device.name}')
    device.use = True
    break

# need object mode for make_single_user
bpy.ops.object.mode_set(mode='OBJECT')
bpy.ops.object.make_single_user(
    type="ALL", object=False, obdata=False, material=True)

if 'dynamic' in bpy.data.collections:
    bpy.data.collections['dynamic'].hide_render = True

for object in list(bpy.data.objects):
    if object.active_material is None:
        log.warning("Object %s doesn't have a material. Skipping.", object.name)
        continue

    log.info("Working on %s", object.name)
    bpy.ops.object.select_all(action='DESELECT')
    object.select_set(True)

    bpy.context.view_layer.objects.active = object
    for slot in object.material_slots:
        if slot.material is None:
            continue

        material = slot.material
        if not material.use_nodes:
            log.warning(
                "Active Material of object %s doesn't use nodes. Skipping.", object.name)
            continue

        nodes = material.node_tree.nodes

        gltf = None
        shadow = None
        occlusion = None
        for node in nodes.values():
            if node.label == "Shadow":
                shadow = node
            elif node.label == "Occlusion":
                occlusion = node
            elif node.type == "GROUP" and node.node_tree and node.node_tree.name == "glTF Metallic Roughness":
                gltf = node

        if gltf is None:
            log.warning("Skipping %s: no gltf node defined", object.name)
            continue

        shadow_input = None
        occlusion_input = None
        for input in gltf.inputs:
            if input.name == "Shadow":
                shadow_input = input
            elif input.name == "Occlusion":
                occlusion_input = input

        if shadow_input is None:
            log.warning(
                "Skipping %s: gltf group doesn't define a shadow input", object.name)
            continue

        if occlusion_input is None:
            log.warning(
                "Skipping %s: gltf group doesn't define a occlusion input", object.name)
            continue

        shadow = nodes.new(type="ShaderNodeTexImage")
        shadow.label = "Shadow"

        occlusion = nodes.new(type="ShaderNodeTexImage")
        occlusion.label = "Occlusion"

        shadow_output = shadow.outputs[0]
        occlusion_output = occlusion.outputs[0]

        material.node_tree.links.new(shadow_input, shadow_output)
        material.node_tree.links.new(occlusion_input, occlusion_output)

        image = bpy.data.images.new("shadow", 256, 256)
        shadow.image = image

        nodes.active = shadow
        shadow.select = True

        bpy.ops.object.bake(type="SHADOW")
        image.pack()
        shadow.select = False

        image = bpy.data.images.new("occlusion", 256, 256)
        occlusion.image = image

        nodes.active = occlusion
        occlusion.select = True

        bpy.ops.object.bake(type="AO")
        image.pack()
        occlusion.select = False

    object.select_set(False)

bpy.ops.wm.save_mainfile()

You can probably delete like 70% of it or so for your usecase. I am especially unsure if the CUDA stuff in the beginning even works. Also this is highly specific to my use case (all the stuff around the glTF node in there) but maybe it helps you solve your issue.


Using the solidify modifier with no deformed geometry

You have got trifold edges, that is edges that belong to three faces.

Not only is that a bad modelling practice, that creates non manifold meshes, that could never really exist in real life.

That causes severe modelling and topology issues and will lead to trouble sooner or later, least of which are the ones you are encountering with the Solidify modifier.

Eliminate the trifold edges, either by erasing the faces and recreating them by duplicating an edge; or using the Rip operator and separating the duplicate edges.

Also make sure your Solidify has the Even Thickness option ticked

Alternatively consider using bezier curve objects for this sort of work, they seem like a more adequate tool for this sort of structure.


"Spikes" are created when I add a sub surface modifier to my model, even though everything in edit mode seems to be alright

To remove the spikes press  Space  search for "remove doubles" then hit  F6  to open the setting popover and adjust the merge distance to something like 0.03 to merge vertices that are very close to each other. That should take core of the spikes

Your main problem is that the overall topology of your mesh is not ideal for subdivision. For clean subdivision your model should be predominantly quads.

There is a good article on different types of modeling by Gleb Alexandrov that you can view Here


Is there a way to reverse camera zoom action in Blender?

You can change it under Edit > Preferences


Given that you are using the alpha channel as a mask to control the mix of different elements, you need to make the mask less perfect. Instead of being a perfect white mask, you need to subtract from the white using a texture. Why subtract? Think of white as 1 and Black as 0. You want to affect the mask without adding any more information to the black areas.

Subtract a texture from the alpha channel, and use the result as a Mask to control the mix for the color for the shader.

Combining other textures and subtracting them from the alpha you can further distress a texture to seem more random.


Rigging Sphere with Hair to a cylinder with bones

Ok, i figured it out..
You need to follow the instructions on this video starting at 20 seconds in: https://www.youtube.com/watch?v=o5f18T7Rjmc
Basically you need to in object mode select the sphere with hair, then select the armature. Go to Post mode and select the bone you want the sphere hair to connect to. cntrl-p select bone.
done.


After a couple of frustrating ideas, I finally made it work.

I parented the objects to two armatures.

The first is Head up, and the second is Head down.

After animate the armatures, I swapped the visibility influence of the armatures in the Modifier Tab storing as keyframes.

I sent my file for analysis. Version 2.79b.

See the images below.


Converting Blender Internal Textures to Cycles

Use the python script here:

How do I convert materials from Blender Internal to Cycles?

it should help you convert the BI materials to Cycles.
Hope this helps!


Why no light travelling inside the window

I dont think your material is the issue, when the light outside the window was changed to these settings:

This was the result:

So I would suggest taking another look at the scene in general because the window material is obviously working properly as it is both translucent and letting light pass through, hope that helps :)


How solve "AttributeError: 'NoneType' object has no attribute 'ui_type'"?

bpy as a python module is headless

There is no ui associated with bpy that is compiled as a python module. Objects like screen area and region are part of the UI which being non existent, are given the value None.


How to make brick texture straight on dome?

With generated texture coordinates: In the texture tab of the properties panel you can set the mapping of the image texture to Sphere or Tube:

Sphere will cause the texture to be mapped so that the height of the bricks will cover a certain angle. This gives less streching, but the bricks near the top will cover less height. Tube will map it so that the bricks are all the same height, like the bricks should be, but will give you more distortion on the top of the sphere. But for your case tube is probably better.
For comparison: Sphere mapping (left) and Tube mapping (right) of a brick texture on a sphere.

With UV texture coordinates: if you press U to unwrap your object, select "Sphere Projection" to get the effect of the sphere mapping or "Cylinder Projection" to get the effect of Tube mapping. Note however that these mappings depend on the angle of the current view on the object. You should look on the side of the sphere, not on the poles.


How do I draw onto video with Grease Pencil in the VSE?

Afaik, annotations are not for output, but only for notes inside Blender and therefore can't be added to the exported video. However you can draw with grease pencil in the 3d view in a new scene and add that scene as a scene strip to the sequencer(check transparent and change blend mode to alpha over), and that will be in the exported file.
Btw. same question here: Grease Pencil to Video Sequencer
How to draw GP on top of video:

How to add a grease pencil scene to the vse:


From the advice of CoDEmanX and reading documentation, I figured out what to do last night.  I changed it all to use a pair of handler functions.  Here is the altered script:

import bpy
from bpy.app.handlers import persistent

bl_info = {
    "name": "Maelstrom Height Handler",
    "category": "Object",
}

'''
Called when the scene is updated, and calls height_general_update if
any objects in the scene have been updated.
'''
@persistent
def height_scene_update(scene):
    if(bpy.data.objects.is_updated):
        height_general_update(scene)

'''
Iterates through each scene object to see if the "height" property
is present, then adds and/or adjusts the "useHeight" property.  Does
nothing if the height is unchanged, to prevent other potential code
from running.  Runs when a scene is loaded or when called by the
above function.
'''
@persistent
def height_general_update(scene):
    didChange = False
    for obj in bpy.data.objects:
        rigChanged = False
        if("height" in obj.keys()):
            val = int(obj.proxy != None)
            if("useHeight" not in obj.keys()):
                obj["useHeight"] = val
                rigChanged = True
            else:
                if(obj["useHeight"] != val):
                    obj["useHeight"] = val
                    rigChanged = True
        if(rigChanged):
            print("Adjusting useHeight flag of", obj.name)
            didChange = True

def register():
    bpy.app.handlers.scene_update_pre.append(height_scene_update)
    bpy.app.handlers.load_post.append(height_general_update)

def unregister():
    for idx, val in enumerate(bpy.app.handlers.scene_update_pre):
        if(val == height_scene_update):
            del bpy.app.handlers.scene_update_pre[idx]
    for idx, val in enumerate(bpy.app.handlers.load_post):
        if(val == height_general_update):
            del bpy.app.handlers.load_post[idx]

if __name__ == "__main__":
    register()


I would suggest exporting FBX or glTF (addon) from Blender, and loading them with THREE.FBXLoader or THREE.GLTFLoader. I've tested both shapekeys and keyframe animation with GLTFLoader, and both are supported.


Can override any operator in blender
Unless you are prepared to edit the source code of blender and build without edit souce operator, and remove from ui menu, you can override the operator.  Simply a matter of registering another operator with the same bl_idname.
import bpy

def main(context):
    print("foo")

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "ui.editsource"
    bl_label = "No Edit Source"

    @classmethod
    def poll(cls, context):
        return False

    def execute(self, context):
        main(context)
        return {'FINISHED'}

def register():
    bpy.utils.register_class(SimpleOperator)

def unregister():
    bpy.utils.unregister_class(SimpleOperator)

if __name__ == "__main__":
    register()

Now we have an item in the right click menu "No Edit Source", that does nothing because it will never poll.

The next choice is where and when to run, and register this operator.  As long as it is run after the original operator was registered, it will override the behaviour.
Should you wish to take this further can use python type(...) to override operators en mass. Sample scripts take out any bpy.ops.ui operators.
Edit: Updated for 2.8 (Operator.get_rna -> Operator.get_rna_type)
import bpy

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "ui.editsource"
    bl_label = "No Edit Source"

    @classmethod
    def poll(cls, context):
        return False

classes = []
def register():
    for op in dir(bpy.ops.ui):
        rna = getattr(bpy.ops.ui, op).get_rna_type()
        name = rna.bl_rna.name
        props = {"bl_idname": "ui.%s" % op,
                 "bl_label": name,
                 "bl_description": "Disabled"} #rna.bl_rna.description
        DisOpClass = type(name, (SimpleOperator,), props)
        classes.append(DisOpClass)
        bpy.utils.register_class(DisOpClass)

def unregister():
    for c in classes:
        bpy.utils.unregister_class(c)

if __name__ == "__main__":
    register()


Blender Python: Property Description String Limit?

Blender becomes laggy at 1000000000 and crashes at 10000000000 characters on my machine (64bit):

my_int: IntProperty(
    name = "Int Value",
    description=1000000000*"A",
    default = 23,
    min = 10,
    max = 100
    )


How to increase the time length of the animation without slowing it down?

If you go to the Graph Editor panel, select each "string"/line (these lines represent the way Blender handles the animation data), go to the modifiers tab (This is not the one in the Properties panel, press T if the right-side panel is not visible. You should see a Modifiers tab there.), add a Cycles modifier, and you should the have a repeating animation. Some tweaking may be necessary for it to work correctly. You should need to have the animation repeat five times.


Selecting a specific Collection by name and then deleting it

Use Context

  So I am wanting to select this collection and delete it.

Further to Blender 2.80: Delete Collection or clear the intial scene in scripting mode

As is the case with most of blender making  active in the UI gives it context.

The context collection can be the scene collection so don't want to delete that.

import bpy
from bpy import context

remove_collection_objects = True

coll = context.collection
scene = context.scene

if coll:
    if remove_collection_objects:
        obs = [o for o in coll.objects if o.users == 1]
        while obs:
            bpy.data.objects.remove(obs.pop())

    if coll is not scene.collection:
        bpy.data.collections.remove(coll)

Remove named collection and its unique objects

Script below will remove the default scene collection "Collection 1" and all objects within it.

Change name to collection to remove and set the remove_collection_objects toggle.

import bpy
#from bpy import context

name = "Collection 1"
remove_collection_objects = True

#coll = context.collection #
coll = bpy.data.collections.get(name)

if coll:
    if remove_collection_objects:
        obs = [o for o in coll.objects if o.users == 1]
        while obs:
            bpy.data.objects.remove(obs.pop())

    bpy.data.collections.remove(coll)


Where is the Volume "step size" in Blender 2.78?

It is now moved to the geometry panel:

Properties Window > Render Context > Geometry Panel > Step Size


Get all materials inside an object for controlling mapping nodes with single var

Wrote following in answer to this q. Noticed you sorted it out, thought I'd post anyway

Wrote a utility function to query an objects material nodes.
query_mat_nodes(ob, "type", 'MAPPING') returns a list of all
mapping type nodes.  query_mat_nodes(ob, "name", "Frank") returns a
list of all nodes named "Frank" in the objects materials.
Added a float property to the object with an update method to set all
the mapping nodes on object to this property value.  Notice giving the
property the unit='ROTATION' will display the value in the UI
dependant on the setting for scene rotation unit in units panel.
(generally degrees is selected)  The property value will always be in
radians.
For want of a better place I tacked (prepended) draw_prop (a UI draw method) to the node space
header to test.

Test script.

import bpy
from math import radians
def query_mat_nodes(ob, key, value):
    return set(n for s in ob.material_slots if s.material and s.material.use_nodes
            for n in s.material.node_tree.nodes if getattr(n, key, None) == value)

def update_map_nodes(self, context):
    for n in query_mat_nodes(self, "type", 'MAPPING'):
        n.rotation.z = self.map_rot

bpy.types.Object.map_rot = bpy.props.FloatProperty(
         min=0,
         max=radians(360),
         unit='ROTATION',
         update=update_map_nodes)

def draw_prop(self, context):
    self.layout.prop(context.object, "map_rot")

bpy.types.NODE_HT_header.prepend(draw_prop)


I don't think this is possible with just nodes - there are no facilities to determine the depth below a surface. One solution is to use OSL to add a new node that can 'probe out' the surrounding geometry as in this answer as follows :

Enable Open Shader Language in the Render settings, open a Text Editor window, click New to create a new text block, set the name to something like 'mesh_proximity.osl' and paste the following code :

shader volume_meshproximity(
    vector Point = P,
    int Iterations = 1,
    output float Min_Distance = 0.0,
    output float Max_Distance = 0.0,
    output float Avg_Distance = 0.0
    ) {

    float x;
    float y;
    float z;
    vector rand;
    float scale = 5000.0;
    float sum_dist = 0.0;
    float max_dist = 0.0;
    float min_dist = 0.0;
    float Distance = 0.0;

    for (int loop = 0; loop < Iterations; loop++)
    {

        rand = noise(Point*scale,loop*scale);
        x = rand[0] - 0.5;
        y = rand[1] - 0.5;
        z = rand[2] - 0.5;

        if(trace(Point,normalize(vector(x,y,z))))
        {
            getmessage("trace", "hitdist", Distance);
            //getmessage("trace", "N", Normal);
            //getmessage("trace", "hit", Hit);
        }

        if (loop == 0)
        {
            sum_dist = Distance;
            max_dist = Distance;
            min_dist = Distance;
        }
        else
        {
            sum_dist = sum_dist + Distance;

            if (Distance > max_dist)
            {
                max_dist = Distance;
            }

            if (Distance < min_dist)
            {
                min_dist = Distance;
            }
        }
    }

    Max_Distance = max_dist;
    Min_Distance = min_dist;
    Avg_Distance = sum_dist / Iterations;
}

In the node editor add a Script node and set it to the text block you have just created. If all is well the OSL node will be compiled and you should have a new node that can be used in a Volume shader and provides Min, Max, and Average distance. This can be used as in the following material :

The new node projects rays from the sample point in the volume, determining how far they have travelled until they hit a surface. The number of rays is controlled by the Iterations - more rays results in less noise but takes longer to calculate. The Min_Distance returns the shortest distance for any of those rays, the Max_Distance the longest distance for any of those rays, and the Avg_Distance the average distance for all of those probe rays. Adjust the Divide node to scale the gradient and adjust the color ramp to adjust how the emission changes below the surface - similar can be done to control emission strength as well as color.

Here's my final render using the depth to control emission strength :

Blend file included

I have tried other solutions, without resorting to OSL (since OSL is not GPU compatible - you'll only be able to render on CPU) - such as using a smoke simulation to diffuse smoke out of the volume to achieve a gradient - but so far without success.

One promising alternative solution is to use a Point Density texture acting on a large number of particles distributed evenly over the surface using Grid distribution. However, you do need to increase the resolution quite high.

To achive this, add a Particle System to the mesh and set it to Emit From Faces with Grid enabled and Hexagonal Grid. Increase the particle grid Resolution until you have enough particles to give a dense enough covering (you might need to click in the field and type a values as the 'soft' limit is only 50. Then add the create the following nodes for the material :

Set the Object to your mesh and select the Particle System with Space set to 'World Space'. You can vary the Radius and Resolution to vary the effect. The Divide node can be used to vary the distance of the effect of the Color Ramp.


Blender does display unicode (utf8 and latin1), try change the system user-preferences to enable 'international fonts'.

This loads a font with a wider range of characters that may display your paths correctly.


There are a few ways to bend a city like that.

One would be to create a curve that controls the deformation, and use it on a curve modifier applied to your city mesh.

The walls of the buildings will be perpendicular to the curve (and they might even crash into each other...)

Other very different option would be to use a lattice to control the deformation:

If you have the city and a curved plane.

Create a lattice that is olny one segment in height, line it up with the base of the city and dimension it to the with and depth of the city.

Select the city object, add a lattice deform modifier and choose the lattice you'd just created as the control object.

Select then the lattice, apply a shrinkwrap modifier and use the curved plane as target.

The lattice will deform to hug the plane, and the city will deform following the lattice. Note that in this case the top of the buildings will remain parallel to the curved plane but the walls will remain vertical on the Z axis and will not crash into each other this time. Maybe not quite what you're looking for, but another fun option to be aware of.


let me adress the issues :).
I also attached a repaired blendfile at the end.

01) The 'sun like' pattern appears when Subdivision Modifier is applied on a triangle fan. Just play a bit with the size of the triangles, or use Face->Grid fill to fill the cap with quads.

02) The edges are harsh, because they are not connected.
You have two meshes joined into one object, but that's not enough. They're just going through each other.
You need to connect the vertices of those two meshes, so they create one continuous mesh.

Other tips for your workflow:
1) There's no need to use Edit cage option in the Subdivision modifier.
In this case it just deforms the mesh without any benefit.
You also don't need 4 levels of subdivision. 2 levels are enough.

Example of my settings

2)  Use milimeters, and absolute grid snapping. It will make your modelling considerably easier, especially when modelling real world objects.

3) When using mirror modifier, make sure your mesh is cut in half. Otherwise the mirror modifier will create double-faces which are a pain in the ass to deal with :).
Your original mesh has a few of these.

Here is your repaired Blendfile. Check the differences, and find out which way works best for you.
The meshes are not connected, you'll need to do it yourself.

If you'll need any clarification, let me know.
You're doing great, happy Blendering :).


How can I create vertical posts that follow a landscape?

When you just delete one side of your plane leaving two single Vertices behind and setting the Duplication to Verts, you'll get what you want!?


Yes, this method will disable edit mode of the mesh too.
First put the armature layers into the Protected layers.

To do so, in the Skeleton panel, Ctrl-LMB click on the relevant
button, the layer lock will be enabled.
.. all bones in this layer will not be editable...for all proxies

Here is an example using  Vincent, a free, open source, fully rigged, professional model.

Then save the file.
Then open a new file and File-->Link -->select the .blend file--> Object folder and select the object and its armature
After the object and armature are linked into the scene, select the armature with RMB and press CTRL+ALT+P to make it a proxy object
https://www.youtube.com/watch?v=uaAHA5IQp_g&feature=youtu.be&t=3m16s

If you upload your .blend  I can make an example


Since sculpting tools usually act based on the normals of vertices (e.g: an additive inflate brush will push verts forwards along their normals, and a subtractive one will push them the other way), there are a couple causes for this. The most common of which are:

Inverted normals: If the vertex normals are inversed, sculpting will act in the opposite of the expected direction.  Solution: Go into edit mode, select everything, Ctrl+N or Alt+N to recalculate normals or flip them from the specials menu (W)
Negative scale: Scale will cause the vertex normals to be reversed - thus have the same effect as mentioned above.  Solution: Apply the scale in object mode (Ctrl+A), or reset it (Alt+S)
Non-uniform scale: This won't cause the sculpt direction to be inverted, but it will cause strange and often unpredictable issues such as a narrower/wider than expected brush radius.  Solution: Same as above.

As with any issue in Blender, the two first things you should check are whether the normal directions are correct and the object scale is uniform and positive.
Also see: Why is it important to apply transformation


Cycles compositor - apply color balance node only on a part of image

Based on the information in your question I am assuming you already created the mask.

Instead of combing the two results after you have colored corrected the one you could restrict the color correction to a specific region.

To do this feed the mask into the Fac Input of the Color Balance Node.

You can also use an image as a mask. Plug the image into the Fac Input of the Color Balance Node. Note that white means apply, black mean ignore. THis mean that the color balance will only be applied where the image is white. In my case I had to invert the colors to only apply the color balance on the scribble.


Here we go :
Before anything, I used your .blend file as the reference.
Start off by adding in a plane and add in about 10 loopcuts.
Select the bottom edges and extrude it along the X-axis and select the end edges and use the shear tool to make that slanting edge.Tweak it a little bit(I didnt select the last vertex before extruding, to match your mesh.)

Select any vertex in the subdivide portion of the mesh and Use the proportional editing tool to match the mesh to imperfect one.Do a some tweaking and you'll get this:

Select the edges as shown in this image...

Extrude it downwards and scale in it on the z-axis by S
+Z and 0

Now extrude it on the x-axis again to make the base. Now you have the mesh with perfect topology. However you might have to flip the normals of certain faces with Alt+N >and flip Normals.

Don't delete your previous mesh. Use it as the reference to make this mesh (just like retopologizing)


How to create procedurally generated surface bubbles on a liquid

The new microdisplacment feature can help with that. Here is a simple node setup as a proof of concept:

After duplicating this effect a couple of time you can obtain that:


I can't see my spotlight in the final render, I'm new to this, btw

you made nearly everything right, just change the render engine to Cycles and then you get:

and by the way: i rendered it on a macbook too...so it just works ;)


You could use the Simple Deform/Bend modifier:

Create your curve, use bezier curve if you want, then convert to mesh, use LoopTools > Space to make the space between vertices regular:

Extrude up and down:

Give it the Simple Deform modifier, choose the Bend mode, bend 360° on the Z axis:

Keep a copy somewhere, apply the modifier:

Extrude inwards, merge the vertices by distance, delete the inner faces if you have some:

Bevel the curve, extrude inwards:

Give it a Subidivison Surface, add some edge loops to sharp the edges, etc...


I think it is because you are in textured view. In textured view, you are supposed to see the model with the texture applied on it but it looks like the textures are not saved in the file by it's maker. You should change your viewport to solid view to view the model. You can find this option here.


Slow soft body physics causes the animation player to stop

In your case (base along pipeline) the rigid body system is better suited to do the simulation, since it isn't imperative for the ball to deform.

Nevertheless creating a simpler collision geometry is helpful.

Remove the current softbody and collision settings.
Duplicate the track object. This track_duplicate will be used to create a collision object with less resolution. Remove the wireframe modifier of the track_duplicate and decimate it with a decimate modifier. (I first used the planar option, applied it the used it with the collapse option and applied it again.)
Make the track_duplicate a passive rigid body object and set its shape to mesh.
Make the ball an active rigid body.
Hide the track_duplicate object (it will still be used for collisions) and show the original highres mesh.

You only need softbody object if they're supposed to deform.


Blender 2.82 - addon missing? - Export to After Effects JSX

The official releases do not include the add-ons from the Blender Add-ons Contrib repository. However you can download and install them yourself. The exporter for Adobe After Effects (.jsx) can be found here.
In order to install it:

Go here and click Download File.
Open add-on preferences in Blender (Edit > Preferences > Add-ons).

Click the install button and select the downloaded file.

Enable the add-on.


Creating animations for Unity models using Blender?

This is very simple:

First export your model from unity: http://wiki.unity3d.com/index.php?title=ObjExporter
Next, Import it into blender:

Add animations using the rigging tools
Export FBX to unity using these settings:

Done!


After trying with your file, I would do like this:

In edit mode, delete all vertices that shouldn't be there. This depends on how the original model was: if holes are scanning errors, some geometry is missing, because of the hole obviously, but the reconstruction also created some non-existing surface geometry to create that wrong hole.

After doing that, your mesh will be non manifold, but you should have - on each side of the whole - a "ring" of vertices that should be quite easy for you to fill with tools like Grid Fill, hopefully (I tried with one of your holes, I'll add images below to document.

This is the most "clean" method imho, and quite easy to do, but manually not automatic. And to reconstruct the missing geometry (eg with grid fill) you'll have to try to stick to your original object surface, visually from a reference... (or doing another scan of that area, perhaps?)

This is the hole I'm going to reconstruct:

In edit mode, I'm going to remove this geometry which should be wrong (not sure, it depends on the original object...)

after removing those vertices, you have two holes, now, one on each side!

so now you can select a ring on the first side, and try using "grid fill"

the "grid fill" default settings could be not optimal

but you can tweak them in the side panel until you reach a decent result

now you switch to the "other side" hole left before (from there we still see the last geometry created on the previous side by "grid fill", selected...)

now do the same, select a vertices ring and grid fill it

So, finally, the hole is now gone and you have this (on each side):

You can still tweak vertices and faces until satisfied. Then, move to another hole... :)

Hth


To add a new UV map just clique the plus under Object Data Properties/UV Map.
To remove completely (deleting) a UV map just go to the minus icon. If you would like to switch between them just unchek the one ot the other.


why is my mesh fully lit from all angles with no lights in the scene?

The World Background itself (grey) is also a source of lighting. To remove its influence, change the Color to black in the box on the right, or set the Strength to 0

This can also happen if you forget to connect your material to a shader before connecting to the material output:

This example just uses a Diffuse BSDF - note that despite the object no longer "glowing", it is still lit, even though there is no light in the scene - that is from the World Background as mentioned at the top:


You're reading binary data from the serial port, so that is why you have a bytes string (indicated by the b'' style of quoting). To convert it to a string, use

as_bytes = ser.readline()
line = as_bytes.decode('utf-8')

To get a repeated call to a "loop" function, it's easiest to start a modal operator with a high-frequency timer.

import bpy

class SERIAL_OT_arduino_read(bpy.types.Operator):
    bl_idname = "serial.arduino_read"
    bl_label = "Read From Arduino"

    def execute(self, context):
        as_bytes = self.ser.readline()
        line = as_bytes.decode('utf-8').strip()
        print('Serial line:', line)

        return {'FINISHED'}

    def modal(self, context, event):
        if event.type == 'TIMER':
            self.execute(context)
        elif event.type == 'LEFTMOUSE':  # Confirm
            self._finish()
            return {'FINISHED'}
        elif event.type in ('RIGHTMOUSE', 'ESC'):  # Cancel
            self._finish()
            return {'CANCELLED'}

        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        self.ser = serial.Serial("COM4", 9600)
        self.timer = context.window_manager.event_timer_add(0.01, context.window)
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

    def _finish(self):
        context.window_manager.event_timer_remove(self.timer)

bpy.utils.register_class(SERIAL_OT_arduino_read)

# test call
bpy.ops.serial.arduino_read('INVOKE_DEFAULT')

This will read the serial port approximately 100x per second. Blender can still be used while this operator is running.

I haven't tested this code, just copied parts of the documentation and mixed it with your code.


There is an addon called Stored Views (3D View: Stored Views) which comes with Blender 2.80. This simple extension allows you to save views (location & rotation of viewport). The UI for it is located in the [N] sidebar panel under View -> Stored Views.

You can save and name any (?) number of views and quickly restore them by pressing their respective buttons. No cameras required. Although it actually allows you to save the current view as a camera as well.

It is not exactly what I originally asked for (restoring viewport changes), but it is the next best thing. Maybe actually better in terms of workflow.

Hopefully this will help those (like me) who model objects at crazy orientations.


How to color an object in blender for use in Unity3d?

You can apply your texture image in Unity. Put the image in your Unity assets folder, then you can drag and drop the texture straight onto your model, that's how I've always done it anyway

Also, I think you can export the texture with the model if you load the texture onto your material slot in blender, but I always find the first way simpler


Rig with sticky feet and hands, how do I create arm swings? (ex: playing tennis)

I ended up finding a 3rd solution which I liked much better. You can turn on/off the IK system with the influence property so when you're doing the wide tennis racket swings just turn it off and when you're climbing, turn it on :)


Is it possible to use armatures with weight paint to shape a mesh permanently?

All modifiers can be applied with the apply button. Make a copy of your file for archive.  Press the apply button on the armature modifier.  You may need to apply more than one modifier.


How can I increase the space between letters in a text object?

In edit mode navigate text cursor before the last letter Y. Then hold Alt and use arrow keys to move all text after cursor to the position, that you want.


If I understand correctly what you want, you can achieve this easily with bevel objects.

A Bevel Object defines a section to be swept or extruded along the curve object, if you want to add simple width to the curve object just create a simple linear bevel curve and use it as bevel object in your open curve.

Control the width of the 'ribbon' by controlling the size of the bevel curve


The distortion you are seeing is the result of the mesh and the UV maps not sharing the same proportions. Here is one method for achieving your desired effect, but it assumes that your texture is only for the wall, and that the four vertices of the window don't have to be in a specific place on the texture.

In Edit Mode, press Shift+D with your mesh selected to duplicate it.
Move the window to the desired position.
With the duplicate selected, press U to unwrap it.
With both meshes selected so you can see them unwrapped, position the newly unwrapped mesh above the old one. This can be achieved in a number of ways, but one ways is as follows:

Select old wall's bottom left vertex on the UV map, and move the cursor to the selection.
Using Vertex Snap: Closest, position the new wall on the UV map such its bottom left vertex aligns with the old wall's.
Set the pivot point to cursor, and scale the newly unwrapped wall until all of its vertices align with the old wall. Make sure you are always scaling the whole wall, including the window vertices.


How i can bake the entire cloth simulation to shape keys?

If you do "Apply as Shape Key" it will create a snapshot of the vertex positions from where you are on the timeline as save that as a shape key. The shape key have no animation data. It interpolates from the base shape key to the cloth shape key linearly. That is, if you place the Value on the Cloth shape key on 0.5, each vertex point will be in between the Base and the Cloth.


Blender freezes up, after hibernate while Blender is 'Not Responding'

I think you know the answer to this one already. 3D can be one of the of the most computationally intensive activities to throw at a computer. It becomes unresponsive because is busy crunching the numbers to work out your simulation..... Judging by your post, you are indeed pushing your computer to it's limits. Let it do its' job... don't hibernate it... get a book, meditate, go for a walk, interact with other humans. 3D requires a bit of patience sometimes... Once blender has finished is job and your computer is back, bake the simulation and save your file so you don't have to start over


Why do people not connect all their cycles nodes?

the disconnected nodes are the original materials (textured, with normal maps, diffuse and glossy shader), the connected nodes are the baked materials (baked texture plugged to emission shader)


From the pySerial API for read():

  With no timeout it will block until the requested number of bytes is
  read.

Blender only has one thread, so blocking this thread will cause the game engine to hang as it waits for the read() command to finish.

Right now I can think of two possible solutions:

Set a timeout using timeout = x. Again from the API:

  Possible values for the parameter timeout which controls the behavior
  of read():

  timeout = None: wait forever / until requested number of bytes are
  received
  timeout = 0: non-blocking mode, return immediately in any
  case, returning zero or more, up to the requested number of bytes
  timeout = x: set timeout to x seconds (float allowed) returns
  immediately when the requested number of bytes are available,
  otherwise wait until the timeout expires and return all bytes that
  were received until then.

Create another thread and execute MoveCube() in it. This will cause ser.read() not to be executed in the Game Engines main thread and thus it will not be blocked, but the newly created thread will be blocked.

As the first suggestion is simpler to implement and uses less resources, I'd prefer it.

On another note: the bpy module is Blender's API and not the Game Engine's API. So if you want to export your game and use it outside of Blender as a standalone, I'd recommend not using bpy at all, as it will not work. See this post for more information.


Why do some bones in this rig only update their position correctly when I press G?

When something doesn't update properly like this it is often caused by a Dependency Cycle. Opening the System Console with Window> Toggle System Console (this option is only available on Windows) you see the message:

Dependency cycle detected:
rig depends on MCH_armSpline.L through Spline IK.
MCH_armSpline.L depends on rig through Hook Modifier.

A dependency cycle is where "Object A" depends on "Object B" for its position, but "Object B" depends on "Object A" for its position. They each depend on each other and as Blender can't determine which object needs to be updated first, it stops updating them.
The Depsgraph - the part of blender which handles these object updates - is currently undergoing a major update and so this type of behaviour might not be an issue in future.
The current 'solution' is to avoid these types of rig hierarchies in the first place. Unfortunately, this is a fairly complex rig so I'm unable to see how you might solve this and still retain the rig's functionality, so you may want to contact the author of the tutorial with this information to see if they can offer a fix.


Can I "impress" one object's shape upon another object?

Create your final grid mesh and place it above the original one. Add a ShrinkWrap modifier to added plane, pick the original mesh as target. Set the  Mode to Project and Direction to both negative and positive.
Make sure to add enough subdivisions for newly created plane to make it catch as many details  from the original one as possible.


Everything you are talking about should be doable with drivers.

For example to make a dimmer switch, right click on the strength on the light, go to add driver, and select manually create later.

Now go to the Graph editor and switch from F-Curve to Drivers at the bottom menu. On the right, your light should be listed. Open all the menus until you reach 'Default Value(Strength)' and click on that. Bring up the properties panel with N, and switch to the drivers tab.

In the drivers tab, change Scripted Expression to Average Value, set the object to be your empty, and change the Type to Z Location.

Now you will have to adjust the curve on the graph to make the dimmer work as you want. The x-axis is the empty position and the y-axis is the light strength. Set the x-axis of the first point to be the lowest the empty will go on the z-axis, and the y-axis of the first point to be the strength of the fully dimmed light. Set the x-axis of the second point to be the highest the empty will go on the z-axis, and the y-axis to be the strength on the non-dimmed light.

Now if you go into rendered view with the empty selected and move it up and down the light intensity should change accordingly.


Is glass in Cycles just broken or am I doing something wrong

I can't really speak to this laser situation, but if you want no shadow at all you can do something like this:

You can decrease the Color value of the Transparent BSDF to control the amount of shadow.


How to hinge an object and apply physics?

Your described set up works fine.

  The Rigid Body World

  The dynamic chain element

  The static collision object

Start trouble-shooting

Double check your settings.
Create a duplicate of your file and delete everything except the problem area.
Create the scene from scratch and append it to your file.
...


How can I scale particle size over lifetime within a keyed physics system

Currently it is not really possible to drive particle size with a driver. One can drive them so they show in the 3D View with different sizes, but the render engines (BI and Cycles) don't see the size changes, unfortunately.

See the report in the Blender TODO tracker here: http://projects.blender.org/tracker/?func=detail&atid=264&aid=34946&group_id=9 . Some examples are included.


Whats the correct way to animate props into a character model?

I would recommend adding an empty object as a child of the hand bone. This will allow you to preposition the empty to account for object size etc. You can then add a constraint to your prop that follows the empty. You can keyframe the influence of that constraint to set the object down or to pick it up.


How can I converted a linked collection to a local collection?

You can run the command 'Make Duplis Real' which can be found under the F3 key since blender 2.8. However, it works correctly only sometimes. The biggest problem is it breaks parenting of objects in the collection.

The add-on BlenderKit has a command in its panel called 'Bring to Scene', which converts linked collections into appended data also with hierarchy. It's in Blender 2.8 directly in add-ons. It does several steps for you and most of the time makes what you need.


None Type Texture in Image Breaking Export (Somehow)

I figured it out. As I mentioned above, I'd joined and split the mesh a few times in order to better fit other mesh parts to the helmet, and when doing that, I'd left old materials attached to the object. I went into the material editor, removed all materials that did not appropriately belong to the object, re-exported, and it worked fine.


Is it possible to create a node group in animation nodes?

You can, but it works differently than in the Shader Node tree. You don't have a "Sublayer" tree where you go and edit the node group's insides.
You first add a Group Input node by going Add > Subprograms > Group
Then you can add operations like in regular subprograms. Make sure you don't have circular dependencies and that all the group logic is contained within it. The nodes will take the color of the group by default.

To get ouput values, click on Output Node on the bottom of the Group Input node and link it as you wish.

You can Invoke the Group by going Add > Subprograms > - My Group (You can change the name in the Input node).


Northern lights effect along line on textured plane

You are probably better off creating an actual curve for the path of your effect than doing it from a "texture". Having actual geometry will help.

Just draw a bezier curve in Blender following the desired path, or draw it in Photoshop or Illustrator or Inkscape if you prefer, just make it so it is an actual Bezier Vector Curve, and can be exported as an SVG file and then imported into Blender.

Extrude said curve and then add the material.

The material is basically just a gradient in Z direction, from an Emission to an Transparent shader. Use the same Gradient texture, with Generated texture coordinates (so it adapts automatically to size changes) to drive both the emission progression of the Aurora Borialis and the color variation, as shown bellow.


UV menu dissapears after clicking off of it

That menu is there to help you define the parameters of the object, however, once you move or edit it, that object will no longer be able to be defined. Any action you take on the object, including a simple move or clicking to another object, counts as an edit to the system and stops it from being defined.

It's a catch all mechanism.


Is it possible to export both an animated object and camera from Maya to Blender together?

Nope, the fbx importer isn't up to scratch yet. Your best bet is to keep everything in collada and bake your camera animation to a cube within maya first. Pain in the ass, but it always seems to be a struggle to get things between softwares, not just blender.


blender bge have chosshairs in center of viewport

In the top navigation bar of Blender you can see a dropdown including the word "Scene". That's the scene you're currently in. Press the + sign to create a new one and call it "HUD" for example. In this scene you put a camera at the center looking towards the grid floor. Put the camera in orthographic view. Press 0 on the numpad to look through the camera and place a crosshair at the center as you like.

Now switch back to your default scene and add a logic brick with

Sensor: always (activate "true level triggering" to run each tick)
Controller: And
Actuator: Scene

On the actuator/scene brick change the mode to "Add overlay Scene" and for "scene" select the scene that you have created for your hud.

Press P to start the game and you should see your crosshair.


He simply toggles Wireframe.
It's in the Overlays menu, but doesn't have a shortcut by default.
(You can assign a custom shortcut by right-clicking on the checkbox > Assign Shortcut.)


I think I found my answer: I had tried applying all transforms but what I really needed to do was apply "All Transforms to Deltas" under the "Object->Apply". I come from Maya and assumed "Apply All Transforms" worked the same as the "Set Transformation values to Zero" function in Maya.


How do I stop HDRI light going through my object?

Short answer: using Irradiance Volumes might help...

Long answer:

Cycles is using ray tracing so shadows of HDRI are a given, i.e. when the ray calculation is bouncing inside the box, there is little chance of it getting to any of the light source of the HDRI through the hole inside your box, or no chance at all if the box is completely sealed (rays are calculated backward from the camera).

Eevee is not a ray tracer and the global illumination (GI) and shadows from an HRDI background texture can only be approximated using irradiance volumes and baking the results on top of existing materials. Eevee cannot do realtime calculation of shadows and indirect lighting of the lightsource emitted by every pixel of your HDRI texture. For realtime, Eevee only calculates the direct illumination of the HDRI on all faces of the scene and adds the indirect lighting stuff only if it has been baked (or until Eevee supports AMD ProRender or NVidia RTX for GI :) ).

In the basic example below, you can see that after setting an Irradiance Volume and Baking Indirect Lighting (under Render Properties), low res shadows start to appear inside the cube. Playing around with multipls Irrandiance Volumes and their resolution and other aspects might help but in general, stick to Cycles for true GI.

Credit: Beautiful sunset HDRI from Greg Zaal (https://hdrihaven.com/hdri/?c=outdoor&h=cape_hill)


What exactly is "hard surface modelling"?

There are many ways how to achieve the end-result shape of your object. Sometimes it's not only one way, but multiple ways are used based on how they are fit. We can distinguish these modelling techniques:

poly-modelling (extruding polygons from a primitive into complex shape)
spline-modelling (lofting curves into complex shape)
box-modelling (dividing a primitive into complex shape)
sculpting (controlling all surface points of complex shape with brushes)

The first 3 are parametric modelling techniques - you control limited amount of points to define the surface. You create curvature using Beveling or by Subdivision surfaces. Because of this, these techniques are useful for modelling fairly regular hard-surface shapes that do not change.

Because these techniques are parametric, it is easy to precisely define surfaces that need to be perfectly flat, need to have exact curvature or carefully placed creases. It is very fast to construct simple shapes.

On the other hand soft-surfaces, like organic tissue, are highly irregular. To model them would result in using too many control surface points. Because of this sculpting is the preferred technique here as it allows to quickly define irregular shapes.

Techniques used to create hard-surfaces have similar mindset of building control surface topology and they complement each other closer, so that's why such modelling is referred as hard-surface.

Sculpting is another skill-set to master, that is why it is usually separated.

In 2D graphics the analogy is vector vs raster - vector graphics allows for exact shape definition and raster allows to make complex shapes fast with brushes (sculpting in 3D is not exactly a raster technique, as that would need to be voxel sculpting, but we can honestly squint eyes to make the comparison).

My 2 cents on the matter:

It is unfortunate to split modelling between hard-surface and organic today, as now it is obsolete and has mostly historical reasons. Many sculpting packages are good with dealing with hard-surface with addition of specialized brushes and tools. Imho it makes better sense to distinguish techniques between sub-d (parametric) and sculpt (and if you want retopo, but topology knowledge comes intrinsic from sub-d and vice-versa) to be clear.


Why are all my HDRIs displaying distorted?

Delete the texture coordinates node. Delete the vector mapping node. Delete the image texture node.

Add an Environment Texture Node, use the image in it and set it to Equirectangular.


Camera view not aligning with camera? Blender 2.82

CtrlNumpad 0 assigns any active object as current camera.

To set your camera the current camera, select it and use CtrlNumpad 0.

Now Numpad 0 will use the camera.


Force materials to render on top of others

Blender Internal and Cycles use completely different methods of rendering the scene - BI draws each face in turn (after optionally eliminating any ‘backfaces’), using a Z-buffer to determine whether each face should appear infront of whatever has already been painted in that place. It is this Z-buffer that is overridden by the Z Offset.

Cycles, however, traces each ray from the camera to the surface. When it hits a surface, Blender determines what would be contributing to the illumination of that point on the surface. Unless the surface is transparent it will not even consider any faces behind that point - so it is not possible to have a material with a property where it will overlay any material infront.

The only way of achieving this in cycles would be via the compositor.


is there a way to freestyle the trasnparent images?

With Freestyle, no, this is not possible; Freestyle acts on the geometry, not the rendered alpha.
However, it is possible to mimic Freestyle in the compositor by using edge detection to spot the transition between regions - in this case from opaque (low alpha) to transparent (high alpha).
See https://blender.stackexchange.com/a/186173/29586 for an example using the Normal and the Depth to detect edges - in your case you could use the same technique on the Alpha as is used on Depth. This will detect the edges of transparency.


The parts that can't be painted on have inverted normals, so the normals are facing instead of out. Add to that the "Occlude" option in project paint is enabled. To fix this, go into Object mode and select all the faces and press Ctrl+N to correct the normals, or if they are supposed to be that way, look under the Options tab of the Tool shelf in the Project Paint panel and disable the "Occlude" option.


Okay. It seems the problem was not blender related. JUst run these lines of code and restart and update to the newest driver and you should be good.

sudo apt-add-repository ppa:xorg-edgers/ppa

sudo apt-get update

sudo apt-get install nvidia-current nvidia-settings


If you turn on Face Orientation in Overlays, you will see that some of your faces are pointing in different directions. Recalculate your Normals to fix it:


Subtract the weights of one vertex group from another

You can use a Vertex Weight Mix modifier.
Say you have Vertex Group A :

And B :

In order to subtract B from A, add a Vertex Weight Mix set to Subtract and to effect only group A.
Result when viewing the A Group after adding the modifier :


Is it possible to push an object when I touch it by moving another object in Object Mode?

Here a solution using RigidBodies:

add a ground (large cube), make it a passive ridig body
add rigidbody to the two other cubes sitting on the ground, check the "Rigidbody/Animated" box for the 1st cube
hit space to play the animation then move the first cube toward the second. Collisions should happen...