Tapering screw threads: are there any alternatives besides writing a python script (screenshots included)?

You can go a long way with modifiers..

Create a thread/shaft profile (here, the shaft will be down the X axis, left to right).
Assign the sharp vertex to a vertex group. I've called mine 'Pitch'

Assign a Screw modifier to the object, along the X axis. Adjust so the profile turns merge. At this point, It will be an un-tapered shaft with threads of even depth.

Now assign a Simple Deform > Taper modifier, aimed at the 'Pitch' vertex group, to taper the threads without tapering the shaft. (The first, illustrated)
.. and assign a second Taper modifier with no vertex group to further taper the shaft and threads together.

IMO, the behaviors of the Simple Deform modifiers are pretty painful. I'd recommend practicing with Simple Deform > Taper on a subdivided plane, to get the feel of it.

I would expect the modifier's limits to be defined solely by the modified object's bounding box in the dimension of interest; that there would be no effect negative of the lower limit set in the modifier. But this is not the case. The way to get it to behave is to put the modifier's origin at the set lower limit, as well. Above, the unmodified Y dimesion of the plane was 3, the taper is set to start at .2 of the X dimension, and the modifier's origin has been placed there too.

You can further assign Bevel by angle, Sub-d modifiers further down the stack.

Obviously the object will need further patching up after applying the modifiers, to make it manifold, and ready for printing.

After applying the modifiers, if the Screw vertices have merged properly, the egdes/faces running along the helix are on single loops, so screws are easier to edit than you might think.


UV Unwrapping is messed up because of a vertex leading into the wrong ending

Yes that is your problem and you can fix it by selecting the stray edge in Edge mode and dissolving it by pressing x and by selecting Dissolve Edges.

Next use knife tool k and draw the missing edges.

Accept the cut by pressing Enter.
Last select the newly created vertices and move them to better location by double pressing g and sliding them closer to the edge.


Using 2 materials with different UVs on the same mesh

Figured out what I was doing wrong. Rookie Mistake. I was just switching between the two materials in the materials panel using the popup at the bottom, but always leaving only a single material in the list.
I finally realized I needed to add both of the materials in the list and then assign to the specific polys.  Duh.
Thanks to everyone that looked, and to PGmath for responding.


Here's what you can do:

Step o1: Set the shading to smooth.

Step o2: Add an Edge Split modifier and uncheck Edge Angle.

Step o3: Tab into Edit Mode, change selection mode to Edges, then select the edges you want to be sharp.

Step o4: Hit Ctrl + E to bring up the Edges menu and select Mark Sharp. [ The Edge Split modifier uses these marked edges ]

Step o5: And bake :]

Tip: You can add a Subdivision Surface modifier after the Edge Split modifier for added smoothness and disable it after the bake.


Weight paint front and back faces at the same time

It sounds like you need to uncheck limit selection to visible at the bottom of the 3D view.  When this is selected you can only paint or select geometry that is visible.

What limit to selection does is only let you weight paint geometry which is selected in edit mode.  So be sure that if this is enabled you have gone into edit mode and selected what you want to weight paint.


2 objects use the same mesh; how to separate?

In the object data section of the properties you'll see a number indicating the number of objects that share the same mesh. If you click on it it will make the object it's own different mesh.


For the cement you could overlap 2 (or more) levels of noise, one very thin for the cement texture, and one much bigger for some holes. Also maybe try a bit of glossiness with a Layer Weight as factor. Iit would give something like that:

It can also be more subtle:


Modeling eyes for a manifold and continuous game asset?

It won't be non-manifold ; a manifold mesh can have holes.

It will intersect, unless you make sure the socket contour is perfectly adjusted to the eyeball (you can use surface snap, or maybe a shrinkwrap modifier). Intersect isn't really an issue in the vast majority of real time engine ; in fact, it's often used to save up polys.

An other technique is to model only the visible part of the eye (make the eye a bump in the face, like a statue or a sculpture) ; and use a shader trick to move the pupil. You can find many eyes shaders in the asset store.


I'd probably go about it like this:

And I'd likely keep the cockpit cover itself separate:


Cancel Blender Looking for Missing Textures

Thank you for your responses, even though the textures on materials were not missing, the world texture (HDRI texture) was found to be missing.
In this case, just go to the world settings and deselect use nodes, of course you can use another one from there if you have it.
Leaving this here in case anyone has the same issue and can't figure out why.


The shortcut has been removed in Blender 2.8. There are two ways you can add a shortcut, either through the keymap or by right clicking on the tool in the toolbar.

You can add it to your keymap under 3D View > Mesh as mesh.spin. However it's not particularly useful without the gizmo because the shortcut requires the configuration of the properties in the panel, which is much more time consuming.

The other approach is to right click on the spin tool in the toolbar, select Assign Shortcut and press the key combination that shall later trigger the tool. When you create the shortcut using this approach it will show the gizmo. This shortcut can also be created manually in the keymap (3D View > Mesh) by setting the identifier to wm.tool_set_by_id and the identifier of the tool to builtin.spin.


Depth map obtained from orthographic camera has no white pixels even when there is no object before the far clipping plane

In order to save a render as image, the scene linear values have to be transformed into the chosen display color space. This is what the Display Device and View Transform settings are for in the Color Management panel. However depth information are non-color data that shouldn't be transformed (except for mapping to the value range the image format can store). Therefore you either need to save the image as OpenEXR, which will store the scene linear values or you can choose another format, but then you will have to set the View Transform to Raw. You can find more information about the color management settings in Blender's manual.

Since you don't want to store the actual depth values, but rather normalized values in the range $\left[0,1\right]$ (or $\left[0,255\right]$) you will have to normalize the depth pass. Switch to the compositor and enable Use nodes. Add a Normalize node (Add > Vector > Normalize) and connect the Depth socket with its input Value socket. Connect the output Value socket to the Image socket of the Composite node.

With these settings you should get the expected values in your saved image.


How do I get rid of this weird pattern on my mesh?

Try clearing 'custom split normals' in the object data panel


I think what you want here is the Grid Fill tool.

Make your two profiles (make sure they have the same number of vertices), then fill them in with Ctrl+F > Grid Fill.
Make sure you have Tools menu opened (you can toggle it on and off with the T key, it shows up on the left of the 3D viewport) or press F6 after command execution and you can fiddle with the settings; I recommend you using a very low setting and then use loopcuts.

The cuts will have the right shape, so all you have to do is push them up or down the opposite axis from your main profile shapes. (If it was a floor or roof, this would be Z, a wall would be either X or Y.)


Here is a script I've been working on to do this for bvh files.  Basically it adds a copy transform constraint to each pose bone, then using Object.convert_space, retargets animation to another rig with same bones.
It's good practice to keep scale on armatures to unity, to avoid issues. Applying scale to both armatures. Ctrl-A scale will make the scale (1, 1, 1). I applied rotation as well and put the armature objects at location (0, 0, 0) before running script..

import bpy
from bpy import context

remove_constraints = False
scene = context.scene
rig1 = scene.objects["hands_reference_skeleton"]

rig2 = scene.objects["hands_reference_skeleton.001"]
if not rig2.animation_data:
    rig2.animation_data_create()
rig2.animation_data.action = None

# add copy transform constraint to each bone
for pb in rig2.pose.bones:
    ct = pb.constraints.get(pb.name)
    if ct is not None:
        ct.influence = 1
        continue
    ct = pb.constraints.new('COPY_TRANSFORMS')
    ct.name = pb.name
    ct.target = rig1
    ct.subtarget = pb.name

action = rig1.animation_data.action

f = action.frame_range.x
# add a keyframe to each frame of new rig
while f < action.frame_range.y:
    scene.frame_set(int(f))
    context.view_layer.update()
    r2 = rig2.evaluated_get(context.evaluated_depsgraph_get())
    for pb in r2.pose.bones:
        #pb2 = rig1.pose.bones.get(pb.name)
        m = rig2.convert_space(
            pose_bone=pb,
            matrix=pb.matrix,
            from_space='POSE',
            to_space='LOCAL',
            )
        if pb.rotation_mode == 'QUATERNION':
            pb.rotation_quaternion = m.to_quaternion()
            pb.keyframe_insert("rotation_quaternion", frame=f)
        else:

        # add rot mode checking
            pb.rotation_euler = m.to_euler(pb.rotation_mode)
            pb.keyframe_insert("rotation_euler", frame=f)
        pb.location = m.to_translation()

        pb.keyframe_insert("location", frame=f)
    f += 1

# set constraints to zero or remove entirely.
for pb in rig2.pose.bones:
    ct = pb.constraints.get(pb.name)
    if ct is not None:
        if remove_constraints:
            pb.constraints.remove(ct)
        else:
            ct.influence = 0


You got "Restrict viewport selection" enabled mate. Disable it and you will be able to select bones as usual.I highlighted this option on your image:

And off the topic, you should fix normals on your mesh, by going to Edit mode, selecting all faces and pressing CTRL+N.


What to do when my animation stops after 50 seconds, whereas my animation player is in active?

Check under physic settings > fluid > cache, the Frame End properties.
250 frames / 25 fps = 10 seconds of animation (50 seconds seems a little out of default blender settings).


How can you offset animations within a particle system?

so you can use group in render section in particle setting. you should Duplicate your object and animate them separately and group them . then in render section in particle options use group instead of object. you can add more object with more animation to the group anytime you want.


Fighting split col and aligning row content

Two approaches.

not pixel accurate, but less code.

c = layout.column()
row = c.row()
split = row.split(percentage=0.3)
c = split.column()
c.label("Layers")
split = split.split()
c = split.column()
c.prop(obj, "layers", text="")

c = layout.column(align=True)
c.prop(obj, "parent", text="Parent")

Pixel perfect but a little convoluted!

c = layout.column()
row = c.row()
split = row.split(percentage=0.3)
c = split.column()
c.label("Layers")
split = split.split()
c = split.column()
c.prop(obj, "layers", text="")

c = layout.column()
row = c.row()
split = row.split(percentage=0.3)
c = split.column()
c.label("Parent")
split = split.split()
c = split.column()
c.prop(obj, "parent", text="")

The second version can be restated using a function, there's a lot of repetition, and you might want to do the same for more properties..

    def draw_props(labelname, propname):
        c = layout.column()
        row = c.row()
        split = row.split(percentage=0.3)
        c = split.column()
        c.label(labelname)
        split = split.split()
        c = split.column()
        c.prop(obj, propname, text="")

    draw_props("Layers", "layers")
    draw_props("Parent", "parent")


This code does way too much:

When running your game and you have custom Python code ALWAYS have a console window open, to see if there are errors!
import only once. There is no need to import an already imported (sub)module.
This code wants to enable the system mouse cursor. This has nothing to do with what you want to achieve.  Remove that (it is incorrect syntax anyway).
def main() serves no purpose. It disrupts the reading flow as it forces a reader to jump from top to bottom and back while reading your code [Imagine you read a novel that way]. The name "main" does not serve any information. Better leave the code outside of the function or give it a name that tells what the code is supposed to do. As it is the only function in your script ... the script name should do that already.
Be careful with attribute names: sensor is not the same as sensors
Be careful with syntax. Function names are followed by () rather than []
Try to isolate debug code (drawing a line) from business code (applying a force). Otherwise it makes the code unnecessary complex. [If drawing a line is the business you forget to tell it above]

This leaves the code with:

import bge

controller = bge.logic.getCurrentController()

hit = controller.sensors["ray"]
mouse = controller.sensors["mouse"]

if hit.positive and mouse.positive:
    strength = 1
    force = hit.rayDirection * strength
    hit.hitObject.applyForce(force)

Unfortunately you did not specify what force should be applied to. You can modify the line force = to apply whatever force you like. The above snippet is just an example.
Without more information there is not much to provide.


Bloom in Cycles for animation or ring transparency in Evee?

Go to the compositor and add in a glare node between the render output image and the composite node. Then for the type, choose "Fog Glow". Adjust the settings to your liking.


My hair particle are pointing upwards and downwards, how do I make it point only upwards?

If I understand your question properly, this is what you are trying to achieve. If yes then follow these steps:

Select the top faces and assign them to a vertex
group like this:

Then in the particles tab go to vertex group > density option > select the vertex you made (default in the name of group)


I am seeing both blender 2.8 and blender 2.81 in my program list. So can I uninstall blender 2.8?

You can uninstall 2.8. Every version of Blender doesn't rely on other versions.

Updating Blender is usually done exactly how you're doing it. This is because Blender doesn't automatically update. Sometimes new versions break old files or addons, so it's up to the user to update the program by downloading it. It can be useful in certain cases to have multiple versions installed, although it's rare.

The only way to automatically update that I know of is if you install through Steam, although my understanding is that Steam basically does what you did just in the background.


The preferred way to perform the above operation would be to create the data blocks and link them to the scene using the "low-level" API - RNA methods and attributes - instead of operators to achieve better runtimes and avoid incorrect context issues.
The following code replaces the operator call above to achieve the same behavior:
font_curve = bpy.data.curves.new(type="FONT", name="Font Curve")
font_curve.body = "my text"
font_obj = bpy.data.objects.new(name="Font Object", object_data=font_curve)
bpy.context.scene.collection.objects.link(font_obj)

If you're simply looking to reduce the lines of code by combining the creation of the text and specifying the body, the following code works similarly:
bpy.data.curves.new(type="FONT", name="Font Curve").body = "my text"
font_obj = bpy.data.objects.new(name="Font Object", object_data=bpy.data.curves["Font Curve"])
bpy.context.scene.collection.objects.link(font_obj)


Matching point locations: Relative translation, preserving surrounding geometry

Multiple objects

This can be done with a combination of transform snapping and 3D cursor snapping.

Snap the cursor the the point vertex by selecting it in edit mode (↹ Tab) and pressing ⇧ ShiftS> Cursor to selected:

Set the pivot point to 3D cursor (.)
Set the snap element to vertex and the snap target to Center in 3D view > Header:

In object mode, grab the pointer object and move it over the target vertex while holding ⎈ Ctrl:

Single mesh

If everything is in the same mesh, you don't even need to use the 3D cursor:

Select the geometry you want to move, making sure the vertex on the tip is active (last selected, appears white):

Set the snap target to Active:

Snap away by holding ⎈ Ctrl.

Note that you can also enable snapping without holding ⎈ Ctrl by clicking the magnet icon in 3D view > header, then things will snap by default and holding ⎈ Ctrl will make them not snap.


Is this an animation workspace bug in 2.8?

I haven't seen this cause what you're seeing there, but your clip settings are pretty extreme, and I know that having Clip End too large, or Clip Start too small, can cause viewport problems. Your End is too large, and Start is too small!

Try End at 500, and start at 1.0. When you get into the perspective view, hit the home key to frame up the scene. Maybe that will work.


How to make selections more visible Blender 2.8?

Select Edges (Highlighted) in Viewport Overlays makes selected edges & vertex look as of 2.79.


All tools suddenly disappearing right after I add an object

You have the gizmos turned off in the viewport!

Try turning them back on!


In my answer I assume that you are already aware of different visualization modes in the viewport by pressing z (wireframe mode) and pressing alt+z to switch back and cycle between Textured and solid mode as for shift+z for render mode.

An alternative way to get semi transparent objects in your viewport is to change the Material's Settings > Viewport Color.

So create a new material for your object and its Material Tab > Settings > Viewport Color set the color (with the alpha transparency) of your choice.

Then go to Mesh Tab > Display and enable Wire to have the closest you can get to an outline.

Important note, is to set your render to Cycles in order to have access to these material's settings.

see the image below:


I have to use control+left click to move an object using the 3d arrows

May be the snap to function is enabled. To disable press Shift+Tab


How can I distribute various objects based on their size?

Disclaimer: This is not a true way of sorting by size, just a way of faking it by scaling objects.

This works by using a vertex group to affect the particle size and density, simply create a gradient to affect particle size as desired

Start by creating a circular mesh, a cobweb like topology will likely help.

Add a new vertex group and use Weight Paint mode to paint in in a gradient shape to your liking.

Create new particle system set to Hair type, and use the previously created Vertex Group to drive both its Density and Length parameters.


How to set the 3D-View clip with an API command?

The hassle is the context.space_data (generally aka context.area.spaces.active) pertains to the console area, which is in context when you are in the console, rather than a 3d view.

Here is some console code, to find a 3D view in the current (context) screen.

>>> C.space_data.type
'CONSOLE'

>>> for a in C.screen.areas:
...     if a.type == 'VIEW_3D':
...         break
...
>>> a
bpy.data.screens['Scripting']...Area

>>> a.spaces.active.type
'VIEW_3D'

>>> a.spaces.active.clip_end = 500


I keep a copy of Blender 2.79, where it still works, on my desktop to import LWO.

Import, then save as a blend file and open in 2.8x


This is an addon called Screencast keys. It is no longer distributed with the official releases due to some limitations, but you can install it yourself if you want:

download it and then click install from file in ⎈ Ctrl⎇ AltU> User preferences > Addons, then navigate to where you downloaded the python script.
Enable it, then turn it on in 3D view > Properties region (N) > Screen cast keys:


Graph in Graph editor too small - Animation tab

just press CTRL-SPACE when hovering over the editor -> full screen


I looked into your file and it appears you may have accidentally deleted your character. This is very easily done by an accidental pressing of 'x' followed by a left-click. This has happened to me many times. My recommendation is that you try undoing the change. Your trouble with armature may be due to the fact that the automatic weight painting did not work and you need to weight paint each bone individually. Hope this helps.

Just a note for next time: please post a direct copy of your .blend file rather than a dropbox link. Thank you.


Disable all modifiers of the mesh except the one, which binds the mesh to the armature. Additionally set the shader mode to "flat".


How to install Intel Open Image Denoiser node on Blender 2.79

There is Theory Studios build with OIDN in trunk. AFAIK it's the latest 2.79b version. Grab it here:
https://blender.community/c/graphicall/dbbbbc/


Try project from view or place the uv islands manually to match the grid!
https://www.youtube.com/watch?v=Y7M-B6xnaEM
check this video for more info.


You were so nearly there... :D
At the risk of starting a game of Node Golf, if the question is: 'How do I make a procedural chevron?' ...then a minimal answer could be something like this, mirroring in X by using its Absolute value:

This assumes the origin of your model is on its mirror axis. The Map Range 'From' figures would depend on the size of your object. Both of those conditions are tweakable.
The texture is in XY, and can be projected through any model:

@brockmann: to get a rounding at the tip pf the chevron without getting too complicated, you could forget the Absolute, and select ranges from y + sqrt((x^2) +n). Here illustrated with n=0.005, n=0.001, and n=0, which returns us to the un-rounded chevron.

Blurring could be achieved by chnging the Color Ramp from 'Constant', and putting in gradients from red to white, and/or, muddling the whole texture space with some noise.


Layers

Layers are a way of splitting up and organizing the objects in your scene.

In the 3D viewport.

You can select the currently visible layers in the footer of the 3D view or under properties panel > render layers tab > layer rollout > scene layer selector.  (With any layer selector you can hold down Shift to select multiple layers.)

You can see what layers have objects on them by the dots in the layers' boxes, layers containing selected objects will have an orange dot.  You can move the slected objects to a new layer by pressing M and selecting the layers you want in the pop-up layer selector.

In the scene section of the properties Window, there are four sets of layer boxes that control which layers are computed in the render and how:

Scene:  The scene layers determine two things: which layers are shown in the 3D view, and which layers are taken into account in the render.  (As mentioned earlier this layer selector parallels the one in the footer of the 3D view.)
Layer:  The layer layers determine which layers are visible to the camera in the render.  This allows you to have certain layers counted into the render (by selecting them under scene), but not visible to the camera (by not selecting them here).
Exclude:  Any layers selected under exclude will not be calculated in the render in any way.
Mask:  Objects in layers selected under mask will be rendered as transparency to the camera.  They will take part in all other calculations if selected under layer though.

Here is an example showing the functions of the 4 different layer selectors.  The ground plane, light, and camera are on layer 1 (top left); and the red box is on layer 2.

Click to enlarge.

Render Passes

Render passes are simply different ways of rendering a scene, often used in the compositor for post processing effects.  You can choose which passes you want to render under properties panel > render layers tab > passes rollout.  Which ever passes you select will then appear as outputs on the render layers node in the compositor.

Render Layers

I think what may be confusing you is that there is also something called render layers.  Render layers are a way of rendering the scene multiple times with different settings (including passes and visible layers).

You can add new render layers and select which ones should be rendered at the top of the render layers tab.


How to add different physics properties to different edges of a same object?

I'm afraid that what you are tying to do will not give the desired result.
You could for instance select you sphere, go to the Properties window and under the Physics Properties tab click Soft Body. In the Soft Body settings there is a section called Edges where you can change values related to the behavior of edges in soft body physics.
These values however apply to all the edges of the mesh of your object, and thus the mesh as a whole. It does not allow for giving different values to individual edges.
Disconnecting edges from each-other would also result in the the object failing apart under influence of physics simulation.
(Also: The term 'Edge Split' refers to making visually hard edges on a smooth shaded object. An edge between to meeting faces (that looked smooth using shading) could be made to look sharp. Because smooth shading applies to faces, it does not work on a mesh without faces.)


How to verify if all objects are selected?


Newest blender 2.8: Object visible in render button missing

Render Icon it's hidden by default

You have to enable it from the Filter sub-menu.

Look for the camera icon in the Restriction Toggles section.

It has been hidden by default in order to tide up things a bit.

As you can see, now there are many possible controls you can enable/disable for the outliner, so they decided it was better to give the user the choice to costumize the right column.

You can see Pablo discussing this aspect in one of the Blender today videos:

https://youtu.be/GUa1jC01d_E?t=2093


Switch to the 2D mode as shown below to change it. In your case, the curve can bend in three dimensions. That's why it looks like that and the arrows are visible when you quit ortho view and rotate using numpad.


Clothes simulation- rigging a ribbon band to a figure's hand

To have the cloth move with the hand, you parent it to it. If the cloth will always follow the hand, then you can just select the cloth, ⇧ Shift select the armature and in pose mode select the hand bone, then ⎈ CtrlP and choose Bone. If you want to enable/disable the following then use a ChildOf constraint and animate the influence.

Once the cloth object is following the hand, you use pinning to prevent the cloth simulation causing it to fall away. In edit mode select some vertices at the top of the cloth and assign them to a vertex group and set that group in the cloth pinning option.


As far as I know the API does not provide direct access to the frustum calculation.

You can use KX_Camera.boxInsideFrustum, KX_Camera.sphereInsideFrustum and bge.types.KX_Camera.pointInsideFrustum to get an estimate if something is at the screen (or maybe not).


Under the add-ons look for your category to the left, such as rigging, select it, and look for your add-on. If its still not there, then maybe you could try moving the file around on your laptop or desktop.


After I rig my model with automatic weights, the collar stretches when I turn the shoulders

Almost certainly, you have an issue with the automatic weight calculations, which are never perfect, but often good enough. When they go wrong, they usually cause this behavior, because they work based on vertex proximity to the bones. So some of your vertices which make up the neck, or collar, are contained in the vertex group that is associated with the shoulder. The simplest solution is to go into Weight Paint mode and use brush strokes to remove the collar vertices from the shoulder vertex group. However, this method, while straightforward, is imprecise. Meaning that sometimes, you can miss parts when you go over them with the weight paint brush. A more surefire solution is to select the problem mesh in Object Mode, then go into Edit Mode, click on the Object Data tab in the Properties Panel, and look under the Vertex Weights section for a vertex group with the same name as the upper arm bone (which is effectively the same thing as your shoulder), and make sure it is selected in the list (it will be highlighted if selected). Then, in the 3D View, select all the vertices making up your collar. Go back to the Vertex Weight section in the Properties Panel, and press the Remove button.

Now the collar vertices are no longer part of the shoulder vertex group, and as such, will never move when the shoulder is moved.
Hope this helps.


Blender 2.83.5 - disable right click -> move

in preferences
input
untick releases confirm
but the way it feels is not like previous versions, I just hate 2.8 so far


Converting GUI operations to Python code?

Most actions you perform will have the operator used listed in the info view, just expand the top most editor in the default screen, you can then select and copy any of these steps and paste them into a text file that you can run like a macro.

While this is an easy way to get started and works fine for simple tasks, it is often recommended to avoid operators in scripts, search here for operator performance to see discussions on the best way to do things. You will also find some steps will have better alternatives than listed in the info window, for example bpy.ops.object.editmode_toggle() is shown in the above list, you will find it better to use bpy.ops.object.mode_set(mode='EDIT') as you clearly change to the mode you need rather than toggling from a random mode when you run the script.

As you learn using python in blender you can start making your own operators, add them to your own addon which can be setup to bind them to shortcuts or custom menus.


How to add an editor for one element of location or rotation_euler

Use the index property of the prop layout.

import bpy

class LayoutPanel(bpy.types.Panel):
    bl_label = "Panel with funny layout"
    bl_space_type = "VIEW_3D"
    bl_region_type = "TOOL_PROPS"

    def draw(self, context):
        layout = self.layout
        cube = bpy.context.scene.objects.get("Cube")
        if cube:
            layout.prop(cube, "location", index=0)
            layout.prop(cube, "rotation_euler", index=0)

bpy.utils.register_class(LayoutPanel)


Can't make the OpenGL Render Active Viewport work on Rendered Shade mode

Sucks no one told you but you need to click RenderLayer next to OpenGL Render Active Viewport button. Ez pz. Hope this helps anyone else who might have this problem.


How to sharpen edges on part of a cylinder

Subdivision surface modifier is our great friend here.

But it has rules: when angles are high we need regular, quad geometry. But for flat surface all is ok for it.

So I propose a solution that has low impact of the other parts of the mesh.

Here is the final result, containing ngons, tris and quads:

The starting point is to add knife cuts on all the selected parts here, as this is the edges we want to harden:

The aim of these cuts is to delimitate the straight angles we want, cutting the less possible, even is we so create non quad faces.

For the bottom part, we can make an edge loop going along the corner shape, but creating a tri (which will be well handled by the subsufr).

So far we have this with a subdiv of 2:

But the top part has irregularities... so we need to modify it.

Again use the knife tool to add this:

And link these parts (still using knife tool):

So far, we have this:

Which can be improved with:

Here is the blend file (only the part you'll see when opening it is 'finished'). But for this part of the model, you can use a mirror modifier.


How can I write the vertices of a 2d polygon to a text file?

To keep it similar to what you have already scripted.

import bpy

current_obj = bpy.context.active_object
f = open("d:\\test.txt", 'w')  # use 'a' to append
for face in current_obj.data.polygons:
    for vert in face.vertices[:]:
        local_point = current_obj.data.vertices[vert].co
        world_point = current_obj.matrix_world * local_point
        f.write('x: %.2f\t y: %.2f\n' % (world_point.x, world_point.y))
f.close()


Use Python to add multiple colors to a NURBS curve

I figured out a way to do it.

I created a script that first remembers all the locations of the control points of the NURBS curve (each of which has a color associated with it in a separate variable).  Then I converted the curve to a mesh.

Next, for each vertex of the mesh, I loop through all the original NURBS control points, see which one is closest, and then color the vertex of the mesh with the corresponding color.

Here is the result:

It's not perfect, it would be better if the colors slowly blended into each other, but if you have many control points, it might be OK.

I'll include the script I used in case anyone finds it useful:

import bpy
from mathutils import Vector
import copy

def color_nurbs_curve(nurbs_obj, color_list):
    """Converts the NURBS curve which should already have a bevel object so it has some width.

    color_list should be a list of colors each of which is a 3 element list with [R,G,B]."""

    nurbs_coords = copy.deepcopy( [ nurbs_obj.data.splines[0].points[i].co for i in range(len(nurbs_obj.data.splines[0].points)) ] )

    #Error checking
    if len(nurbs_coords) != len(color_list):
        raise RuntimeError('The color list must have a number of colors equal to the number of control points of your bezier curve')
    if nurbs_obj.data.bevel_object == None:
        raise RuntimeError('Your NURBS curve must have a bevel object')

    scn = bpy.context.scene

    #Convert to mesh
    scn.objects.active = nurbs_obj
    nurbs_obj.select = True
    bpy.ops.object.convert( target='MESH' )
    #sometimes this conversion results in a bunch of doubles, so I remove the doubles
    remove_doubles(nurbs_obj)

    mesh = nurbs_obj.data

    if len(mesh.vertex_colors) == 0:
        bpy.ops.mesh.vertex_color_add()

    nurbs_obj.active_material = bpy.data.materials.new('material')
    nurbs_obj.active_material.use_vertex_color_paint = True

    print("test",nurbs_coords[1])

    #loop through each vertex
    num_verts = len(mesh.vertices)
    for vert_i in range(num_verts):

        #record shortest separation. -99 signals unset.
        shortest_sep = -99

        #loop through all the original bezier points to see
        #which one is closest and then color it with the corresponding color
        count=0
        for b_point in nurbs_coords:

            b_point.resize_3d()
            temp_sep = (mesh.vertices[vert_i].co -  b_point).length

            if temp_sep < shortest_sep or shortest_sep == -99:
                shortest_sep = temp_sep
                color = color_list[count]

            count += 1

        color_vertex( nurbs_obj, vert_i, color )
        print( "Finished vertex: " + str(vert_i) + "/" + str(num_verts) )

def color_vertex(obj, vert, color=[1,0,0]):
    """
    Paints a single vertex

    """
    mesh = obj.data
    scn = bpy.context.scene

    #check if our mesh already has Vertex Colors, and if not add some... (first we need to make sure it's the active object)
    scn.objects.active = obj
    obj.select = True
    if len(mesh.vertex_colors) == 0:
        bpy.ops.mesh.vertex_color_add()

    i=0
    for poly in mesh.polygons:
        for vert_side in poly.loop_indices:
            global_vert_num = poly.vertices[vert_side-min(poly.loop_indices)]
            if vert == global_vert_num:
                mesh.vertex_colors[0].data[i].color = color

            i += 1

def remove_doubles(obj):
    """ Removes doubles using default settings"""
    bpy.ops.object.mode_set(mode='EDIT')
    bpy.ops.mesh.select_all(action='TOGGLE') #I believe objects are created with the vertices all not selected
    bpy.ops.mesh.remove_doubles()
    bpy.ops.object.mode_set(mode='OBJECT')

##Example Usage
##nurbs_obj = bpy.data.objects['NurbsCurve']
##color_list = [  [1.0, 0.0, 0.0], [1.0, 0.25, 0.0], [1.0, 0.5, 0.0], [0.5, 0.0, 0.0], [0.0, 0.75, 0.0], [0.0, 1.0, 0.0], [0.5, 0.5, 0.5], [0.75, 0.15, 0.9]   ]
##color_nurbs_curve(nurbs_obj, color_list)


Depth of Field on glossy surfaces (cycles)

If the reflective ball is inside the FOV, it will probably still preserve the sharp image due to light path has been concentrate from outer light, it will be harder to tell the blur effect if a convex mirror is presented.

And also, they do have a Depth of Field reflection, if you turn down the F-Stop to extremely small,  and using a giant sensor that have ever been made in camera history. You should see the blur inside the Convex mirror

 You can notice that the little tiny Susanne is clear while the whole mirror even around the tiny Susanne is blur, due to the natural light path.

What you encounter is because normally, we don't have this kind of lens, way too impossible to make it perfectly. If we only get the ordinary lens with a long focus len (125mm) and big enough Aperture (F/2.8 or something). The depth of field should be narrow enough to see the blur effect in object easily. But that only occur in diffuse object not the convex reflective.

Assume that your reflective scene is in far far away (like an HDR environment map or sky). You should get the maximal blur effect right? See the figure below with a normal lens:

"Hey, the light path change a lot of angle. Reflective should be blur as well". Unfortunately, Blender didn't show the real effective aperture size in camera icon. So I made one for it:

See that ridiculous tiny circle in front of camera? That is the real effective aperture size in Blender default 1 meter as 1 unit. So it is almost a dot for that reflective mirror if you put it in a distance. And follow up the light path you should see clear image unless you properly setup the scene size.


Python, OpenGL to pick geometry only defined in the script

You can use the functions from mathutils.geometry to deal with geometry

intersect_ray_tri
tesselate_polygon

further you can use the functions from view3d_utils to deal with viewport coordinates

From the template operator_modal_view3d_raycast.py:

def main(context, event, ray_max=1000.0):
    """Run this function on left mouse, execute the ray cast"""
    # get the context arguments
    scene = context.scene
    region = context.region
    rv3d = context.region_data
    coord = event.mouse_region_x, event.mouse_region_y

    # get the ray from the viewport and mouse
    view_vector = view3d_utils.region_2d_to_vector_3d(region, rv3d, coord)
    ray_origin = view3d_utils.region_2d_to_origin_3d(region, rv3d, coord)

    ray_target = ray_origin + (view_vector * ray_max)


Adding reflection to a plane while keeping a perfect white emission

Final:

Nodes and overview:

You will need to create "fake PBR" shader by mixing Diffuse with Glossy by Fresnel.
Glossy should have set 0 Roughness and Color to pure white.
Mix them with Emission shader - again by Fresnel.

  Note:

  I've used black Environment color to show that Emission and Reflection
  is working, if you set it to white, like in every else node it will
  give you wanted result.


Your unwrap was probably bad, you must have had faces overlapping in your UVmap, I've redone it:

Select the whole mesh in Edit mode, switch to Face Select mode, select one last face to make it active, press U (Unwrap) > Follow Active Quads:

Paint:


'Add scene ' in Video Editing doesn't insert the whole scene

You need to set the "End Frame" for the scenes, both the one containing the animation and the scene for the VSE.
The end frame setting can be found in the Render tab under the Dimensions section of the Properties window.
Or in the header of the timeline, here it is simply named "End".

If you have the animation scene's length set right the whole clip will show up in the VSE, but it will only render 200 frames.
However if you only set the VSE scene's length, and leave the other at 200, you will only see 200 frames in the VSE, and it will only render what is in the VSE.


How can I inprove my render image quality, even used denoiser too

The resolution and the amount of samples you used are not particularly high. The simple answer is: if you want more quality, you should increase the resolution and samples. If you tried something like 4096x4096 resolution and 2000 samples, the image will become a lot clearer.

You will of course inevitably face exactly the same issue almost every single one of us face pretty much constantly - your render times will increase dramatically. There is a solution to that none of 3d artists like to hear about - just buy better/more hardware, or use render farms. SheepIt is great for example, because it's free in a sense you do not need to pay money, but you still need good hardware to constantly render projects of other people so you collect points and can get yours rendered quickly when you need it.


Is there a shortcut to open the 3D view?

Shift + F1 - F12 keys

F5 for 3D view.

F3 = Node Editor

F4 = Console

F5 = 3D View

F6 = Curve editor

F7 = Properties

F8 = VSE

F9 = Outliner

F10 = Image/Uv editor

F11 = Text Editor

F12 = Dopesheet editor

Don't know where timeline went.


You first need to change your working units because this operator won't let you input values < 0.01 meters (10 cm) in the fields if you keep working with meters.

The easy way

The hard way

For the sake of maths ..?

So, the major radius is the radius of the middle section of the torus, and the minor radius is the radius of the circle section of the torus if you cut through half of it radially.

We have

RM : Major Radius
rm : minor Radius
Re : Exterior radius (in your case, 4.7)
Ri : interior radius (1.5)

Ri = RM - rm

Re = RM + rm

<=> RM = 4.7 - rm = 1.5 + rm

<=> rm (minor radius) = 1.6 and RM (major radius) = 3.1

But you need to set your units correctly for this small a model.


A lattice is not an actual mesh, and is in reality more akin to an array of hook empties. So, just like an empty, you can't edit in edit mode. However, there is a way to subdivide it. Go to Properties > Data and you can change the resolution for the height, width, and depth. Note that these are relative, so rotating will quite possibly make the top on the bottom, or the right on the left.


Align view to selected operator (numpad .) when scripting?

The operator name is bpy.ops.view3d.view_selected(). See my answer here for additional information on this and also how to quickly reach the online manual and the API reference. Here are the accompanying docs for the operator.

  Hover over a button and you should see a short description etc.. This
  can be useful for getting operator names.

You can go to the 3d view header and go to View > Align View > View Selected and check the operator name there.

Copy To Clipboard

While your mouse is over the menu item you can press Ctrl + C and the Python command gets copied to the clipboard to save you retyping it.

Log Everything

Some operators are excluded from the report window because typically you don't want setting the cursor (for example) to be logged, however this can be overridden by either...

Starting blender with the command line argument --debug-wm
Running this in the python console bpy.app.debug_wm = True

Then output of all operators executed will be logged in the info space and the console.


How to reduce rotation-caused coordinate/displacement problem?

The 'errror' is caused by the limited precision of floating point numbers. A fix would be quite difficult and in most use-cases completely unnecessary.

After the translation, the objects matrix seems to represent exactly what we expect.

>>> bpy.context.object.matrix_world
Matrix(((1.0, 0.0, 0.0, 0.0),
        (0.0, 1.0, 0.0, 15.0),
        (0.0, 0.0, 1.0, 0.0),
        (0.0, 0.0, 0.0, 1.0)))

After the rotation however, the value of 2 * pi gets included in the matrix.

Matrix(((-1.0, -3.2584136988589307e-07, 0.0, -1.3113416343912832e-06),
        (3.2584136988589307e-07, -1.0, 0.0, -15.0),
        (0.0, 0.0, 1.0, 0.0),
        (0.0, 0.0, 0.0, 1.0)))

Since we have a limited amount of digits in floating points, it will only be an approximation. Applying this approximation to certain numbers will result in rounding errors. If you scroll until the view won't let you zoom in anymore you have reached the limit of Blender smallest units and are seeing these rounding errors.


These lines appear when you select "Sharp Edges/Vertices" from the "Shading/UVs" menu in edit mode. You can eliminate them by selecting "Smooth Vertices" from the same menu here:

I hope this helped. Happy Blendering! Cheers,
Graves Broderick


I was able to get 'EVT_TWEAK_L' to print the message from within the operator by changing the keymap.

I changed the way the operator was called in the keymap from:

  Mouse> Any Left Mouse

to

  Tweak> Left> Any

I assumed that since a modal operator called by a LMB click could also catch a bunch of other events such as 'RIGHTMOUSE', 'MOUSEMOVE', 'ESC', alt, ctrl, etc etc, that it would also be able to catch tweak events, but that doesn't seem to be the case.

I'll update the answer if I find another way to do it.


How do I prevent soft body balloons from crumpling when they hit walls?

With Blender 2.66 or later, you can use a combination of rigid body physics and softbody on the same object. This should help you achieve the effect you want.

Also, increase the goal value and goal stiffness in softbody settings will help you retain the shape of a mesh.

Take a look at this sample scene


How do I stop my chain distorting along a curve?

The origin of both objects (chain and curve) matters for the curve modifier.

To correct the issue:

Place the 3D cursor on the first vertex of the curve, then come back in object mode and transform the curve origin to the 3D cursor.
And move the chain to that origin (considering the chain origin is ok, relatively to the chain itself)

Some information or tips:

Here we start with a simple position where all objects are oriented along the X axis and the curve modifier is set along X too (the modifier's result is not shown below).

Now we activate the modifier and grab the chain's origin near the curve origin:

We notice that:

The more the chain is near the curve, the less it is stretched
When both origins are at the same location, the chain begins at the first curve's control point

If we rotate, move, or change the chain in edit mode:

If we rotate, move, or change the chain in edit mode:

And if we change the chain's control points:

So aligning the chain and the curve:

Set both origins at the same location
Set the modifier's axis along the chain axis
The chain will be curved starting at the first control point of the curve and starting from its own origin (and the result depends on the position of its inner geometry relative to its origin)


select_next_item() work only with history selection?

Using vert[0].select=True doesn't add the vertex to the bmesh select history, you need to add it yourself.

vert[0].select=True
bm.select_history.add(vert[0])
vert[1].select=True
bm.select_history.add(vert[1])

You may notice that the select history doesn't include all selected items, if you Alt-Click to select an edge loop only one vertex (the active vertex which was closest to the click) is added to the history. Shift-Alt-Click will then add a second vertex which is the new active vertex. If you use select all then nothing is in the history.


Something similar happened to me recently, and it wasn't my first animation rendering.
The output directory specification lacked a final backslash; there was an error message about not opening the output file, but I missed it the first few times. After I corrected my output directory to C:\Animations\ (in my case), rendering went forward properly.


Yup. It was the subdivision modifier. Just needed remove it, or add in crease around the edge of the image. Thanks, problem solved.


I cannot figure out how to use/print globalDict

The print statements you have should show the globalDict contents, if it is empty then you will only see {}, once containing values, it would show as -

{'key1': 'Value One', 'key2': 2}

Note that it doesn't have any values unless you add them, bge.logic.globalDict is a user data dictionary, it doesn't contain game engine properties.

As with any python dictionary, you can loop over the contents using dict.items() to get more control over formatting, there is also dict.keys() and dict.values() if you don't want both of them.

import bge

print('globalDict is')
for k,v in bge.logic.globalDict.items():
    print(k,v)


If I understand correctly: You are trying to do something like this

Create cube (or leave default cube when starting Blender)
Duplicate it (Shift + D)
Scale it up a little bigger
Subdivide the cube for more wire frame lines
Under modifier tab choose wireframe
For the wireframe materials copy the below set up.

After rendering the image go to your compositor and add a glare node like below. I normally do compositing in Photoshop and After Effects so I am not to good with Blender Compositor but this should be you semi close.

You can also add a streak node to make it look more like Strix

EDIT: IF you want to animate it

There are a few ways to do this, I am not sure exactly what you are trying to do but you can add a mapping node and animate the position by hitting "i" for the keyframes.


How to get wider view on orthographic camera?

When using an orthographic camera the distance to the camera does not have any effect on the view.
Use Orthographic Scale to change the view instead.

The {Blender Manual](https://docs.blender.org/manual/en/dev/render/cycles/camera.html) illustrates the difference between perspective and orthographic cameras:

Perspective:
Focal Length/Field of View Control the field of view set by lens property or by angle as selected in the Lens Unit menu.

Orthographic Scale
Controls the size of objects projected on the image.

More info in this link:
What are the differences between Orthographic and Perspective views?


Can I vertex paint in eevee or is it a cycles thing only?

Select any mesh.
Press CTRL + TAB
Choose 8 (Vertex Paint).
Cycles also cannot render the vertices of a mesh directly. You can use a Point density texture. Volumetric effects in Eevee are fairly limited, I would not suggest the approach via vertices as a volume.


How to create a script that simulates the blinking terminal cursor?

consider .... pseudo code ...

    n = 1 // for slower use 2
    fps = 24 //frames per second .. change to suit you
    timeperiod = n * fps
    if (frame % timeperiod) > (.5 * timeperiod):
       then show cursor
       else do not show cursor
// frame is the current frame provided by Blender
// fps is the actual frames per second intended for final render

Please inspect and correct the pseudo code above


How can I take an image and create a flat 3D model out of it?

It's absolutely possible, look up billboard sprites. For generating them in Blender, get a render with transparency enabled (more googling) of one tree and then you can duplicate it around to fake a forest. It's also potentially a good idea to render some far off trees to make a distant background rather than rendering potentially hundreds of those billboard sprites.  It might be fun to experiment with more roomy tree renderings given you don't have to have unity do that part anymore...

Edit: totally opposite approach is what's being asked for here!

Instead, you can also start from the geometry which was alpha masked, and subdivide it (use simple instead of catmul-clark) then select verts that are outside the texture map and delete them. Probably don't want to subdivide too far before doing this because deleting verts can get boring...


Could you be a more specific? Attach simplified blend file with issue via https://blend-exchange.giantcowfilms.com/. Add screenshot with highlighted issue and ideally some reference how should it looks like for you fixed? Thank you

Here is something that seems to be working ... not perfect, but hard to say what is your story.


Eye colour from Adobe Fuse are almost washed out

can you disconnect all the other nodes so only the eye image texture is used? I suspect some other nodes are mixing and washing out the result. – rob 9 hours ago

@rob I made an account but I realised I couldn't reply back to this. But if you're reading this, it worked! Thank you so much for your help :)

Edit: the solution was to disconnect a node


This generally is not the "correct" or desirable way to model this.

Joining geometry with Ctrl + J will only group and turn it into one object, it will not alter you geometry in any way, nor will it "merge" volumes or faces. That is the job of a Boolean operation.

You can generally undo this step as described by Samir-Rahamtalla with P > Loose parts since the geometry will be exactly the same, and return to your "non merged" objects without loosing too much information, object centers will be lost though.

Boolean operations might work under certain circumstances, if you objects are closed watertight manifold meshes, and they don't have coplanar or coinciding faces.

In your case it will most likely fail since your faces are co-planar, and even if it does work, it will likely produce undesirable, uneven triangulated geometry, which in most cases will cause more problems down the road.

The "correct" way to mode something like this is to do it in edit mode by subdividing and extruding your mesh, so it will produce a "clean" geometry.


Maybe the mmd importer creates a collection and adds an instance of that collection while hiding the actual objects in the collection. (Collections don't have a material tab)
Check the Outliner and see what exactly you are selecting. You can also change the outliner display mode to Blender File and then search your imported model under Objects. You can then select it and should be able to change materials.
Hope that helps!


How to remove sound from sound spectrum in animation nodes?

When you load sound file in sound spectrum it will automatically appear on video sequencer.
You can remove audio from there.


How can I put an object in the center of the viewport and on top of the floor?

If I'm understanding correctly, this should help. Try this:

In Edit Mode select the bottom Face
Shift+S > cursor to Selected
switch with Tab in Object Mode
In the Tools panel Set Origin to 3D cursor
Shift+S > cursor to center
Press Shift+S again, but choose selection to cursor

Also see this post


Is it possile to create a flat-color (shadeless) shader in Blender 2.83 that is also flat when in a reflection?

Flat Color

plug RGB node directly, there is no need to use Emission shader

Flat Color in Reflection with Roughness

math Light Path of Camera Ray with Glossy Ray** and use as factor in Mix Shader node

Shadow

current setup generates shadow, if you dont want that plug Transparent shader into top Shader socket of Mix Shader node.

For your Edit2: Delete your Diffuse Shader that generates indirect light on surrounding objects.

Great article to check How the light path node works


Unable to select more than one object in Edit Mode

Your question is a little unclear, but I think I know what you are looking for.

Edit mode allows you to modify the geometry of a single object. Edit mode is based on the selected object and allows direct modifications of the mesh of the selected object. This means that if no object is selected, you can't go into edit mode. This also means that adding meshes in edit mode adds disconnected edges and faces to the selected object, and does not add an independent object.

Object modes allows translation of different independent objects while almost all of the other modes in viewport allow manipulation of the selected object.

To point out some things; meshes can be separated from an object using "p" (either though selection, material, or loose parts), origins can be reset by right clicking and selecting set origin, and then selecting the option that applies to your situation, and edit mode can be quickly toggled using tab.

If you want to be able to edit the meshes of multiple objects at once, you have to switch out of edit mode for that object, select a new object, and then enter edit mode for the new object. I recommend watching some tutorials on youtube as they can do a great job of explaining how objects and meshes work in blender.


Aperture Settings not Available in Blender 2.79

you need to select the camera and be on the camera section of the properties window.

Aperture settings are available on Cycles only, not in blender internal-


Add different textures to front and back of plane with solidify?

There was only one image in the file, so I substituted a Diffuse BSDF for the second image. There are two options you have now.

Option 1

The reason that the Geometry > Backfacing did not appear to work was because that the Solidify modifier made it so that the map/diffuse went inside the map.

An exaggerated Solidify:

The solution if you want to keep the Solidify modifier goes like this. Apply all modifiers. Use the steps in Add different materials to different parts of a mesh? to apply the other image/diffuse to the non-map faces.

Option 2

Solution produced with Option 2 (low-res; 20 samples):

This is the better solution. Since the Solidify modifier does next to nothing, delete it, and the original node setup will work. The two Diffuse BSDF's outputs are crossed just because it needed to be inverted. I'm sure you understand.

The following .blend file produced the result at the top of Option 2.


Why Bezier Interplation of Blender is not as much dramatic and cinematic as of other softwares?

I don't know what you mean by "cinematic", but I will assume you want the animation speed to make more dynamic.
Go to the graph editor, and select all of the control points. At the top, switch the pivot to individual centers and scale all the control points up. This makes the curve much more dynamic wherever there are control points.


I had the same issue. I created an account to say that the above fix worked with a similar PC build: using windows 7 and a 980. Rolled back to Nvidia 368.81 driver.

http://us.download.nvidia.com/Windows/368.81/368.81-desktop-win8-win7-winvista-64bit-international-whql.exe


Different animation lengths for each animation? (For FBX Export)

As far as I know the timelines range won't change based on how long your actions are in the action editor, but when exporting as an FBX the actions will retain the correct length based on where the first and last frames are so your walk cycle should show up as an animation clip with the 30 frame length this is how it has worked for me with Unity I am not familiar with Unreal though. I would also recommend saving your actions to a data-block otherwise you risk losing them.


Rotate duplicated objects according to a list of vectors?

Assign and align to the vertex normals

Similarly to https://blender.stackexchange.com/a/163958/15543 using the cone as a duplivert instance

The vertex normals of suzanne are determined by the faces. If we construct a vert only mesh, then set v.normal = (x, y, z) for each vertex

Here is a script that adds a pointmesh cube, assigns the normals to the coordinate normalized and adds an empty as duplivert object.  Used the cone display type, as it points in Y to which the normals point.

Assign your "spin" direction to as the normal of the vert.  Make sure align to vert normal is checked.  Remember that instances will be aligned Y axis to vert normal.

import bpy
import bmesh
from itertools import product
from mathutils import Vector
from bpy_extras.io_utils import axis_conversion

M = axis_conversion
context = bpy.context
coll = context.collection

bm = bmesh.new()
for v in  product(*(((-1, 1),) * 3)):
    vert = bm.verts.new(v)
    #norm = Vector(random() * a for a in v)
    vert.normal =  vert.co.normalized()

cube = bpy.data.objects.new(
        "Cube",
        bpy.data.meshes.new("Foo")
        )
bm.to_mesh(cube.data)
coll.objects.link(cube)

bpy.ops.object.empty_add(
                radius=0.5,
                type='CONE',
                location = (0, 0, 0),
                )
arrow = context.object

arrow.parent = cube

cube.instance_type = 'VERTS'
cube.use_instance_vertices_rotation = True


Prevent splash screen from being shown when using a script?

The attribute to change is not in UserPreferencesView type, but in that class' instance. The right instance to modify, currently used viewing data preferences, is the view attribute of bpy.context.user_preferences:

import bpy

bpy.context.user_preferences.view.show_splash = False


Actually this part seems rather flat if we judge from your picture, so I guess it would give something like this:


How to scale with mirror modifier as if modifier was applied?

Create a new project and remove default cube.
Press Numpad 7 to set Top Orthographic view
Press SHIFT + A, then M, then Y, to add a cylinder

Set Vertices to 8.

Press TAB to enter Edit Mode. Then Press R, and type 22.5

Press ALT + A to deselect all vertices

Drag over the entire shape to select all vertices on top, then press X, then V to delete them.
Press A to select remaining vertices, then I and type .2 to inset 20 cm (default radius should be 1 m)

Press X, then F to delete the inner face

Press CTRL + R, click on the top (in this view) face, then right click to create a loop cut going through the middle of it.

Repeat above step for the right face.

Press A, to select all vertices, hold CTRL, and deselect all vertices in top-right quadrant (including those on edges of the quadrant)

Press X, then V to remove these vertices.

Press TAB, to go back to Object Mode.
Go to Modifier tab, and add a mirror modifier. Add Y to mirrored axes.

Move your mouse over the viewport and press TAB to go to into edit mode again.
Press A to select all vertices, then change Transform Pivot Point from Median Point to 3D Cursor.

If you moved the 3D cursor accidentally, realign it again, by pressing CTRL + S, then W

Press S and scale the shape. It will keep its proportions.


where is the movie clip node on blender 2.83?

You are in the wrong node editor at the moment. The Movie Clip node is a compositing node, and is found in in the compositor.
Refer to the image below:

Currently, you are in the shader editor. So, just switch editors and you will find the node you are looking for.


If I select mutiple objects, I can only sculp one of them

You can sculpt more than one object but you need to make sure to uncheck the option Lock Object Modes, letting you select each and switch to sculpt mode.

You will still need to select the object you want to sculpt, but they will both be possible to sculpt without going back to Object mode for each.

If you want to sculpt both objects without needing to select them, then you will want to join them together as one object until you are done with sculpting - be careful because this means you may have to reassign materials or modifiers, etc.


Ambient occlusion where two meshes overlap?

For this model rather than using the World ambient occlusion why not instead bake an ambient occlusion map on the model itself? There are hundreds of resources available for how to go about accomplishing this however I would recommend using this website as a source.

http://www.katsbits.com/tutorials/blender/basic-ambient-occlusion.php

You can bake the ambient occlusion on both the box as well as the ground mesh giving you more control in how it looks.


Yes. No. It depends.

Objects with bevel are indeed more realistically looking and as probably you know by now, there is not a single known object perfectly sharp. Even sharpest knife in some tremendous magnification will show some "bevel" on its edge.

Question is, when do you need to show it. Firstly lets get trough most commonly used bevel cases.

Bevel High Poly

Most natural one from the bunch. I've used on this example 3 segmented Bevel and 2nd level of Subdivision Surface modifier. It goes to whopping 3,072 tris on a simple cube.

It looks the best out of every other case but it is heavy as hell.

  When to use it? If you are rendering extremely realistic object in a
  closeup or try to keep realism overall at high level.

Bevel Baked

This one is/was mostly used in game industry. It gives you considerably good looking bevel from the distance. This object has only 12 tris! Problem is - you will loose object silhouette and it is kinda not user friendly in Blender.

  When to use it? In game engines for non significant distant objects.

How to: How does normal baking work?

Bevel Shader

This is one of the newest additions to Cycles. It's very similar to the baked one but you have nice control over it. You don't need to create normal maps images, high poly meshes etc. Cons - you can't export it that way, so baking still will be needed for external software and still you will lose object silhouette

  When to use it? Non significant distant objects in Cycles rendering.
  EEVEE doesn't support it (yet?).

How to: https://docs.blender.org/manual/en/latest/render/cycles/nodes/types/input/bevel.html

Bevel Weighted (Hardened Normals)

Also one of the newest things in Blender and by far my favourite. You can achieve it by Bevel modifier in 2.80 (Hardened Normals) or with Weighted Normal Modifier.

This option gives you light mesh (44 tris with 1 segment bevel, 108 tris with 2 segments - example is 2), silhouette and smooth looking edges.

It was highly used in a game Star Citizen, you can read more about it here.

Overall it's not a perfect solution. I don't know how compatible it is with main game engines besides UE4 (which support it) but I know for sure LuxCoreRender can't handle Custom Normals Data.

  When to use it? Games, non significant objects in middle range (with 1
  segment), close non significant objects with more then 1 segment.

Summary

As you can see there is no single answer to your question. You need to choose accordingly to your needs.

I've presented only selected methods easily achievable in Blender. There are more of course.

Or maybe you don't need bevel at all for small details in background - it's your call.

Side note: There are of course more pros/cons and also use cases for every method. I've pointed most relevant from my point of view. If you think that something else should be written in this answer, let me know in comments section.


Convert Cycles depth/z to distance to image plane

I got it with a slightly different formula. Given the field of view (fov) as

bpy.context.object.data.lens_unit = 'FOV'
fov = bpy.context.object.data.angle

and the intrinsic components of the camera as

f = (im_width / 2) / tan(fov / 2)
px = im_width / 2
py = im_height / 2

I can transform the depth as follows

zc[v,u] = zs[v,u] * f / sqrt(f**2 + (px - u - 0.5)**2 + (py - v - 0.5)**2)


Can't use Boolean Intersect on two meshes

You need a manifold (watertight) mesh for the boolean operation to work. Try replacing the plane with a cube:

Another option is the Bisect tool:

In edit mode, press Bisect in Tool Shelf (N) > Add:

Then draw the bisection line with LMB and drag:

Enable Clear inner or Clear outer (in the Redo menu at the bottom of the Tool shelf, or the F6 menu) to remove one side of the mesh as defined by the bisection line (also enable Fill to fill the hole):

If you want to keep both sides of the bisect cut as separate objects, you could try either of the following:

Manually separating the bisected parts of the model:

Bisect the mesh without enabling Fill or either Clear option, so it only makes a cut down the bisection line (the same as if you had used the knife tool):

Select one side of the mesh with Select Loop Inner-Region in 3D view > Header > Select > Select Loop Inner-Region:

Press PSeparate > Selection:

This will give you two objects, one for each side of the bisect operation.

To fill in the hole, you could select the edge loop on the very edge with AltRMB and fill (F), however if the bisect line goes across any interfering geometry this will not work. (This might also be too limited for meshes that have an internal structure)

Or you could duplicate the mesh and run two bisect operations, one on each.

Bisect one mesh and enable Fill and Clear Inner.
Pull down the info window and scroll to the bottom. You should see a line which begins like this:

 bpy.ops.mesh.bisect(

Select it with RMB and press CtrlC to copy it:

Select your duplicate mesh and enter edit mode (Tab).
Split a new area, set the editor type to Python Console and paste the selected line. Note that you may need to add use_fill=True, and clear_outer=True, in between the parenthesis ().
Press Enter. The mesh should be automatically bisected identically, except the opposite side is cleared.

Note that you can also set the exact coordinates from the UI:

So if you wanted to manually copy each value from one operation to the other, that would be another way.


Try an HDR background image. You can get several from here.

This is a single, 360º background image that also has the nice advantage of being able to light your scene!

An example:

This scene used absolutely no lights, just the background image. The shadow on the ground is provided by a shadowcatcher plane. (The particular HDR I used is public domain and can be found here.)


combining two sets of vertices to maintain a specific shape?

I maybe should ask for more information on this before I attempt the answer, but I'll take a stab at it anyway. I'm disinclined to agree with Mr Zak's recommendation to use the Boolean modifier, because I find in too many cases, it gives ugly geometry and thus, inferior results. But here's what I'd do.

Assuming the dog and the cup are separate meshes, I'd make a duplicate of each. Starting with the duplicate of the dog, I'd keep the part of the torso boxed in green,

[

and hide or discard the remainder. If the geometry in the remaining part of the torso is insufficient for modeling the finished result, I'd add loop cuts and edge rings as needed to make for convenient modeling.

Next, I'd scale the cup so that it is the size I want, and position it within the torso at the desired place. Switching to wireframe view,  I'd hide all but one flank of the dog torso, and if the flank intersects with the cup object, I'd switch to edit the cup, and move the sides that penetrate the flank so they are co-incident with it, adding or removing geometry as necessary. Repeat the process on the other side, and the sides of the cup now conform to the geometry of the Dog's torso. Discard the copy of the dog's torso, as it has largely served its purpose.

Select the original dog, and place the cup along side of it in the desired position and orientation. Add the geometry necessary to be able to demarcate the red lined area in the above image on the side of the dog. Remove the parts of the dog within the red lined area on each side, and if the dog is to be solid, bridge from one flank to the other. Make the cup visible, within this area, and if desired, combine it with the model of the dog using CTRL - J to make a single object.

In my opinion, the fact that the cup has more vertices than the dog is not a major issue, in most cases.


How would I combine hard surfaces and soft surfaces for rigging a robot?

Here is a 'robot' that has a chest, waist, and mid section.  It's fairly simple, but it does for exposition:

I'll explain the loop cuts in the middle section below.  The top cube serves as the 'chest. The middle cube as the 'mid section' and the bottom cube as the 'waist'.
I added an armature.  It's very simple and the parent hierarchy is also simple.  The chest is the child of the upper mid section. The upper mid section is the child of the lower mid section. The lower mid section is the child of the waist.  Notice that I named the bones to match their roles.

Also notice the position of the head and tail of the bones.  They match the center of the horizontal planes that make up the parts of the robot.  This will matter in how well deformation works.
In object mode, I parent the robot to the armature, selecting "with empty groups":

You could try automatic weight painting, but since this robot is simple, I decided to populate the groups by hand.  To do this I select the robot, then shift select the armature and then type CTRL-p to bring up the parent menu.
This is where I differ with the first answer to this question:  The vertices of the shared planes should go in vertex groups for both of the bones that meet at the plane.
The next four steps involve selecting vertices and adding them to the vertex groups that were created by parenting.  First I select the robot and go into edit mode.  Next, I select a vertex group from the Properties editor -> Object data properties -> Vertex Group list:

Notice that there are four vertex groups and each one has the same name as one of the bones.
I make sure the weight is set to 1 and then I select the relevant bones.  Since I selected the chest vertex group, I pick:

I click assign in the vertex group list to add those vertices to the Chest vertex group.
Next I pick mid section upper and the bottom of the chest as well as the upper half of the mid section:

I click add to add these to the mid section upper bone.  The other two bones are
mid section lower

waist:

To see why I placed some vertices into more than one vertex group I select the armature and in pose mode, I rotate the chest:

As you can see, and as you should expect, the middle part of the robot has deformed as a result of the chest movement.
Now look at this pose where I rotated the mid section upper:

It shows a rather bad deformation at the middle of the mid section.  This is where fractional weights come into play.  That bone should also gently deform the next part of the mid section as well.  This is where weight painting becomes important.
I also said I would explain the extra loop cuts.  As you can see this robot doesn't deform very smoothly.  The more loop cuts you add the better the deformation will look but the harder that weight painting will be.
Unfortunately this answer is very long already and there's really a lot to weight painting.


With such a complex model, you should find the way to make a loop cut in the middle of it (down the spine of the animal). Eliminate the damaged side and use a mirror modifier. That should fix it and help you go faster overall.


Animating a rotation but with acceleration

Unfortunately, the cycles modifier can't be set to repeat only a certain part of the action. You have two alternatives.

Linear Extrapolation

Press Shift+E and choose Linear Extrapolation. This way the wheel will keep rotating based on the last two keyframes up to infinity.

Use Non Linear Animation

Go to the NLA editor. Press the down button. The active action will be converted to an action strip. I have duplicated the action strip with Shift+D and moved it to the frame, where the original strip ends.

With the second strip selected, we can set it to the original action, if a duplicate action was made, although this is not necessary.Set the Start Frame to your second keyframe, frame which one one the wheels rotation has reached its final speed. Set the End Frame to the last keyframe. Set the repeat scale as desired.This way the linear motion of the action is isolated and repeated.


How can I get a particular editor space in python?

Your code doesn't seem right, it should be

import bpy

for area in bpy.context.screen.areas:
    if area.type == 'DOPESHEET_EDITOR':
        space_data = area.spaces.active
        break
else:
    space_data = None

if space_data is not None:
    pass

To avoid searching for the right area (which may or may not exist in current screen layout), it's possible to change bpy.context.area.type temporarily to the type you require.

However, I'm pretty sure what you actually want to do is:

bpy.context.object.animation_data.action = bpy.data.actions['The Name']


How do I create a transition from a curved surface to a flat surface?

You could start with a cylinder

add a few loopcuts Ctrl-R
select the  edge rings to flatten Shift-Alt-RMB
Scale along z-Axis Z

After that could select edges and scale the x-axis:


Final render different than preview, black artifacts appear

Added Edge Split modifier, as suggested in a similar question -->here<--. Now it works.


If I'm not wrong I think you mean the middle section where the mirror is?
It looks like you may have a face at that middle section. Just delete it and it will stick together instead of creating two separate sections

There are hidden faces hidden in the middle section.

Press Z to select the face.

The Mirror Modifier automatically merges the vertices if the option to merge is turned on. No longer having a separate section.
Hope this helps! Enjoy your modeling ;)


Rigify finger control failed to bend after switching the computer from mac to window PC

Make sure that the addons you used on one computer are enabled on the second one.


Parenting is hierarchical .. so  depending on which parts of your model you want to control other parts, a object can have siblings and a parent, and its parent can have a parent of its own.. and so on. The 'family tree' is normally collapsed in the Outliner, reducing clutter. You can select multiple objects and parent them to the last selected (active) object simultaneously, using Ctrl P.

You could join all the objects you don't want to move independently, and make the turrets children of the joined object. (The turrets' children will become grandchildren of the joined object)

Or, create a heirarchy of parts. In it, you can make a link between any child and its parent 'rigid' with respect to translation, rotation, and/or scale by locking the child's own transformations using the padlocks in the 'Transform' panel of the Properties Region of the 3D View. This will mean only ancestors can move the  children in those ways. If you want to lock multiple children at once, select them, and hold Alt while locking.


Problem with bone animation with 3D cursor as pivot

This is the way animation work when you add a keyframe you store the variables values (loc, Rot, Scale) at that time, and when you play the animation blender try to interpolate ( guess ) the values of the variable (between keyframes ) depending on the last and next value and the type of interpolation used (this can be seen in the F-curve )

so whatever happens between keyframes is lost and new value will be calculated

in this case of the bone

the location of the bone is the location of its head
the bone will rotate around its head

in this example i keyframed the first and last states only :

the result motion :

the bone will follow straight path from the first pose to the last (blender can't  regenerate the original motion from those two states only) while rotating around its head

To prevent this you can :

add more intermediate keyframes.
or use an empty as a parent at the center of rotation.
or use curve as guide for the motion


He is probably duplicating some objects with Shift + D in the beginning. You can also add objects quickly with keyboard - for example pressing Shift + A followed by M and M one more time will go through Add Menu then Mesh and then Monkey, you can type that quite fast. You can see the letters coresponding to the menu items in the menus underlined:

It's possible to create custom shortcuts for something that you do a lot as well.
If the object is constructed out of a lot of objects joined in sculpting, some sort of re-meshing is usually used to make a continuous surface that you can sculpt:


Create curved meshes without using Paths?

Sorry, this may not be pleasing to hear, but there are two ways to do this.

The hard way (manually model the object to be curved)
The easy way (it requires using a curve modifier.)

Since the first way really requires step by step or a tutorial, and is out of scope for this site, I'll give you the easy way.

Using a Curve modifier

Create your object that you want to curve, make it the length that you want it to be. Be sure it has plenty of vertical subdivisions or edge loops, the more, the merrier. (actually, just the smoother after curving.) This picture shows the mesh properly set up to be curved, notice the "up-down" lines, these are the loops I was talking about.

I know you didn't want to use curves, but Create a curve! in order to get something really nice without a lot of trouble, you need curves, and once you get used to them, they really aren't that bad.

Once you've shaped the curve just right you can re-select the mesh and add a curve modifier. isert the curve you just created under the Object parameter.

Very good! you now have a curved object: if it hangs off the edge of the curve a little, just mess with the location of the mesh.


Can't see texture through Principled Node?

Ok I found the reason. My Subsurface scattering was maxed to 1, but if you want to see the texture, it needs to be lowered.


Need Help Removing a Green Screen, Movie Clip Node missing

First of all make sure you are in the compositor (not the material editor or the texture editor) and have Use Nodes enabled:

To add a Movie Clip node use ShiftA Input->Movie_Clip

Select your image and add a Keying node. Connect your image and select the color you want to use as key.

Then just plug that to an Alpha over node to mix with the 3D scene (or other image source).


an easy way to subdivide along one axis only?

I think the command you are looking for is CTRL + R and scroll mouse button to add/subtract loops, and then LMB to accept loop count and then RMB to confirm location of loops.

https://www.blender.org/manual/modeling/meshes/editing/subdividing/loop_subdivide.html#options


How to start/stop wind blowing at a specific frame?

Make sure the force field is not hidden. Select the force field (wind) in the outliner or 3D view. The key frames you set will then show up in the timeline and in the Animation Editor.

Insert a keyframe with a value of zero at frame 210 to stop the wind. If you want the wind to stop abruptly set a keyframe at 209 equal to the value of the keyframe before it.


Get light position in shader for 2D lightning

If you want the location of the light in World space, you can do it with drivers:

That's the disconnected Combine XYZ node labelled 'Light Location'  in the illustration. Pin the material's node editor open for convenience, right-click each of the X, Y and Z fields in the light's Transform > Location panel, select Copy as New Driver, and right-click > Paste Driver in the XYZ fields.
You can also do it without drivers, by adding/subtracting the coordinates of the shading-point in various texture-spaces. However, you probably don't want the light's location in rotated spaces.. the only way I can think of getting round that is to associate an un-rotated target Empty with the objects of interest. I've called them 'Locators'. They have Copy Location constraints on their objects, but don't rotate with them.

Then the Yellow Vector Math node in the illustration gives the Light's location with respect to the cube's location, and the Turquoise one gives the Light's location in World Space.
Drivers are probably the way to go, otherwise it's more fiddly to reproduce the material for different objects.


How can I analyze whether my camera is looking up/down?

When the camera's X rotation (in euler rotation) is at 90 degrees it is looking parallel to the ground. Less than 90 it will be pointing down at the ground, greater than 90 is pointing up.

if camera.rotation_euler.x > 90 and camera.rotation_euler.x < 180:
    # looking up
elif camera.rotation_euler.x < 90 and camera.rotation_euler.x > 0:
    # looking down


Switching multiple objects to sculpt mode easily

Select all of the objects you want to move into sculpt mode, and press CtrlJ to join them into a single object. With this "multi-object" selected, sculpt it as you normally would. After you are done, press Tab to go into Edit Mode. Press P and select "by loose parts" to split them into individual objects again.


TL;DR The UV translate tool uses GIZMO_GT_arrow_3d.

The gizmo groups that are used for the tools in the UV editor can be seen in _defs_image_uv_transform (space_toolsystem_toolbar.py).
The ID name of the gizmo group is IMAGE_GGT_gizmo2d_translate which is implemented in space_image.c. It uses ED_widgetgroup_gizmo2d_xform_no_cage_callbacks_set, which in turn calls ED_widgetgroup_gizmo2d_xform_callbacks_set  that stores gizmo2d_xform_setup as function for the setup. Should the setup function be called this also results in gizmogroup2d_init being executed. Its return value is a GizmoGroup2D that is used to set gizmos for the operators through WM_gizmo_operator_set. The gizmo types that are returned by gizmogroup2d_init in a GizmoGroup2D are GIZMO_GT_arrow_3d, GIZMO_GT_cage_2d and GIZMO_GT_button_2d.
These functions are implemented in transform_gizmo_2d.c.


Render animation in png's give same frames

thx for the file, found the problem:

two things:
1. bake cloth simulation: "Bake All Dynamics", otherwise eevee wont simulate it as  Blender would do it by pressing play in 3D View.
2. Your Render step in the Output-Menue was at 1000, so you would only get 1 frame. Just put it to 1 and everything should work fine.

just for completness: i used "blender-2.80.0-git.957b4547aeeb-windows64" build to test it.


The transforms of appended objects change during rendering

After looking through all the details of my project I realized that the teeth objects had one keyframe on a later frame for some reason, and I was editing their transforms on a different frame so the transforms weren't actually applied.


ok so I think I know exactly what's your problem if you are using cycles to paint your UV maps all you have to do is
- create an image texture in the UV image editor give it a name.
- go to the node editor and create an image texture node.
- select your texture with the left mouse button make sure that it's highlighted in orange color.

now when you paint it will show up on the UV map and when you exported it hopefully it won't be black

ps: if this didn't solve it pls post a snap of your setup


Maybe consider B-Bone instead of Stick, then you can adjust the size. Go to Edit Mode and with the bone(s) selected, hit Ctrl+Alt+S to scale the thickness. Instead of dragging the mouse you can also enter a small value like 0.01 to scale it down, hit Enter to set the scale.


Making a completely transparent object a light source?

You can just add an object as an emission and disable it's view in the render;


Since 2.77 Blender can use the OpenVDB format for smoke caching, and OpenVDB has a nice API and documentation. (There is also a Python API)

It is also an industry standard, which will be better supported in Blender in the future.


How to get objects to follow camera rotation

You could add a "Track to" constraint to your object. The target should be the camera, and the To/Up values depend on what's appropriate for your model.


How to animate morphing a sphere from a lipid membrane (rectangular plane)

Let say you want to achieve something like that:

What you should do is use Metaballs for the 2 cells, and a classical mesh for the virus. This way you can make the 2 metaballs merge together. You'll need to give a semi-transparent material to those cells (here a simplified version of what it could be):


Is there a way to have dimension shown in fractions?

I'm afraid it's not possible at the moment to have something like 5 3/8". Request this feature or try to find a Python script. And it's possible to import, with an  app, .obj files to AutoCad and do the measuring there with fractions supported. Blender's primary goal is not architecture/housing.


How to access driver f-curve data with python?

I was trying to use keyframe_insert(), but what I needed to use was keyframe_points.add().

Here is a sample that adds a F-Curve with an ease-in and ease-out to the driver:

import bpy

context = bpy.context
data = bpy.data
aobj = context.active_object
me = aobj.data
scn = context.scene
objs = data.objects

if me.shape_keys == None:
    bpy.ops.object.shape_key_add(from_mix=False)

bpy.ops.object.shape_key_add(from_mix=False)

current_key = me.shape_keys.key_blocks[1]

sk = me.shape_keys
cur_key = sk.key_blocks[1]
cur_key.driver_add('value', -1)
drivers = sk.animation_data.drivers

cur_driver = drivers[0]
cur_driver.modifiers.remove(cur_driver.modifiers[0])

cur_driver.keyframe_points.add()
cur_driver.keyframe_points.add()

co = [(0.0, 0.0), (1.0, 1.0)]
handles = [[(-0.25, 0.0), (0.25, 0.0)],[(0.75, 1.0), (1.25,1.0)]]
for i in range(len(co)):
    cur_driver.keyframe_points[i].co = co[i]
    cur_driver.keyframe_points[i].handle_left_type = 'FREE'
    cur_driver.keyframe_points[i].handle_right_type = 'FREE'
    cur_driver.keyframe_points[i].handle_left = handles[i][0]
    cur_driver.keyframe_points[i].handle_right = handles[i][1]


What is the FPS speed that the animation timeline runs at by default? Blender 2.9

It's in the render output settings. You can also change the start/end point, the step interval and even re-map the time if you like:


I ended up using a JSON file. I used handlers to import from the file when it opened just like in this answer: https://blender.stackexchange.com/a/7974/1363


Creating 2D animations using 3D characters

Depends what you're good at. Of course Blender produces 2D images, and people have often done what you describe, so it's possible.
Freestyle helps you outline objects if you want to go for the hand-drawn feel and there are tons of toon shaders out there for drawing like colors.
You can also use grease pencil in Blender (it was vastly improved in 2.80) if you'd rather stick to pure 2D.


"Cannot Execute Boolean Operation" Error

I can't check your file and the picture does not give enough information, but every time I encountered the problem it was due to an "opened" mesh. You should check if there's no 'hole' in your mesh. If there is a hole Blender is not able to calculate the volume and therefore it does not know where the inside or the outside of the object is.


Is there a way to create an executable of a game not version specific?

The standard copies of blender that you download include both blender and blenderplayer which is a game engine only runtime. Blender includes the "Save As Game Engine Runtime" addon that gives you an export to runtime option. There is an explanation of creating a standalone runtime in the manual. There is also a "Game Engine Publishing" addon to help export for multiple platforms.

YoFrankie was released 9th December 2008 with blender 2.48a. When blender 2.50 was released a year later the python API was changed dramatically and has no compatibility with previous versions. YoFrankie contains many python scripts that would need to be re-written to work in anything newer than 2.49. Some of the character rigs and animations would also need some adjustment to work in newer versions. As all of the scripts and data files are available someone could update the game to a newer version but so far no-one has made the effort.


Multiply and Add functions in Node editor

For Math: Shift+A -> Converter -> Math and switch math function what you need.

For Colors: Shift+A -> Color -> Mix RGB and switch blend mode

For greyscale images doesn't matter if you use math, or color - result is the same


Alpha blend is a recipe for trouble if you have more than one face it is working with. Use alpha hashed instead. If this is too fuzzy, turn up samples or switch to Cycles rendering.


You could try out the Fracture Modifier Build.
Make sure to use the "latest development build", or just use the more recent graphicall build.
I also had to edit 3 points or so of the greasepencil strokes, because the FM (fracture modifier) created some holes in the mesh there (points were too close to each other)
For the simulation I made the bullet a trigger and the plane animated and triggered. Furthermore I played a bit around with constraints.
If you have further questions, please post either here on stackexchange or here :
https://blenderartists.org/forum/showthread.php?343637-Custom-Build-Blender-Fracture-Modifier


I don't know how to achieve this with the screw modifier, but this can be done with a modified helix curve and a circle as bevel object.
Method 1: Lattice
For this methods you will have to create a helix screw curve. This can be either done by creating a mesh with a single vertex, using the screw modifier and converting the mesh to a curve, or by using the included add-on Add Curve: Extra Objects which allows you to add a helix spiral by selecting Add > Curve > Profiles > Helix (3D).
Now add a Lattice object and (in object mode) place it so that it surrounds the spring. In the Data tab of the Properties area set a sufficient number of subdivisions.

Add the Lattice modifier to the helix curve and make sure to turn on Apply on splines' points.

With the Lattice selected, go into edit mode and move the vertices to create the desired spacing.

Method 2: Calculate control points' position
Another approach would be to move the curve's control points to the final position, with either a script or with some add-on. The add-on Animation Nodes provides an interface to enter custom interpolation curves which makes it very convenient to change certain parameters of the spring. But of course it's also possible to use a more simple for loop instead.
The following Animation Nodes node setup will allow you to modify both the spring's spacing as well as the radius:

Link to .blend file with the node tree


You can do this by filtering on the Pink colour the Image Texture node outputs when no image is loaded. The only caveat is that it won't fully work if your Texture Image contains any pixels with RGB values of (1.0/0.0/1.0).

I've bundled the switching logic into a node for ease of viewing. Here's what the interior of the node group looks like:

Handling 2 Procedural Textures

In order to handle 1 or 2 procedural textures, you can set the default Colour on the Switch node to the Pink colour (R1/G0/B1). This way if nothing is connected it uses the default texture, and if the 2nd procedural texture is connected it uses that.

Blend file attached:


Animation node instancing an object with children

Since an object doesn't store reference to its children, I would advise to use a collection for this, and create an empty as a collection instancer. Be aware that every instanced collection will have the same animation as the first one:

For example, I have this collection with a cube and a Suzanne children.

Create empties as instance collections :

Loop over them and change their position :

Increase the number of instances :


How can I create a custom button from copied python text of completed actions such as selecting multiple objects?

In blender actions are performed by operators. We can use python to create custom operators that perform (almost?) any custom task that we want. An operator can be run by attaching it to a keyboard shortcut, a button within the UI or by searching for the operator by name in the search menu available by pressing space.

Different parts of blender's interface are separated into panels - which are the UI blocks that can be expanded/collapsed. We can create custom panels to display what we want and specify where we want the panel to be displayed, such as object properties, 3DView toolshelf or properties region...

By defining a custom operator and/or a custom panel you can customize any task as well as provide a custom interface to access the tasks. While you can run a python script to add these it is usually preferred to create an addon that defines each component which can be cleanly enabled and disabled. There is a tutorial in blender's python API docs on creating an addon as well as example templates within blender's text editor.

It is also common to create a custom panel that is specific to a rig, often buttons are used to show/hide parts of the rig as well as control IK/FK etc. One example is the rigify addon included with blender, it creates the following panels for the generated rig, as it is specific to the rig it uses a script that gets run when the blend file containing the rig is opened.


how to export each animation separately into gLTF 2.0?

From the glTF addon docs:

glTF allows multiple animations per file, with animations targeted to particular objects at time of export. To ensure that an animation is included, either (a) make it the active Action on the object, (b) create a single-strip NLA track, or (c) stash the action.

You will need to create the NLA track or stash the action on each armature that you want that action to be available for, unless Godot has some ways of re-assigning the animations later.


How to trigger the 3D transformation widget with G, R or S

First, delete the existing G/R/S bindings by going to Preferences > Keymap > 3D View > 3D View (Global), and scroll down until you find them. Click the "x" button to remove them.

Next, create the new bindings by right click the widget tools in the side panel toolbar, and select "assign shortcut". Then type the key you want the new shortcut to be for that tool.

Unfortunately, you will need to do this seperately for each mode, such as edit/object/pose modes. And edit mode will need to be done for each object type, edit mode shortcuts for meshes are not the same as for curves or metaballs.

Finally, to make these changes apply to all scenes from now on, bring preferences up again and click "Save Preferences"