Hyperbolic Solids in Blender? How can I construct hyperbolic solids (hyperbolic cube, tetrahedron, etc.) in Blender?

Below is a picture of a hyperbolic cube:

Here is some more information on hyperbolic solids.

Just to be clear, I would ultimately like to construct a hyperbolic dodecahedron, but I want to learn how to use a general method.

EDIT: The solution does not have to be mathematically perfect, but it would be nice. I am trying to 3D print a gift for someone.

If you're just in it for the looks, the easiest thing would be to take advantage of proportional editing. Using your cube as an example, do the following steps:

Sub-divide the cube multiple (Edit mode > Select All [A] > Specials [W] > Subdivide... then use the Last Operator panel [F6] to increase the number of subdivisions to taste).
Select just the eight corner vertices on the cube.
Enable proportional editing (O).
Change the proportional fall-off to Sharp (Shift+O 3 times if you're at the default of Smooth. Alternatively, there's a drop-down menu in the 3D View's header where you can choose the fall-off using your mouse).
Scale (S) those vertices. As you do, scroll your mouse wheel to adjust the fall-off influence of the proportional edit area.
To get sharp edges, select all the edges around the model and then crease them with (ShiftE) and drag until the value in the header is at 1.0 or just press 1 on your keyboard.

Finally, you may want to also use the Subdivision Surface modifier and the Edge Split modifier to help smooth things out a bit.


I can't shade smooth my curve/path 2.8 I'm following a video on youtube "Creating braid in blender" and he shade smooths the curves around 2:40. My model is the exact same as his and when I have it selected I go up to object, and go down and click "shade smooth". Only it does nothing. It's ruining my braid and bothering me to no end.

You certainly can Shade Smooth Curve.

In the Transform panel ("T" menu).
Curve Data tab under Active Spline.

If it is not working as it supposed for you, probably you have some issues with your Curves.


Low res mesh with Eevee I have to work with a mesh I didn't created. The problem is that I can't subdivide it because when I do that, a lots of bugs happened. So I have to use the mesh with it not very high resolution. When I put light on it on Eevee, I can see all the differents faces of the mesh, it's really not uniform. Also, when I set the shape to Smooth, it create other problemes on the shape. Somebody have an idea how to fix that (a trick with the light or a trick with the shape ?).

Thanks !

What I would do is this:

Instead of using smooth-surface to smooth the object, adjust normal-smoothing angle

Here are the steps:

1) Go to edit mode with the fan selected, and then go to Mesh > normals > recalculate outside.
(This is to ensure that normal-smoothing will not ruin the topology.)

2) Right-click (2.80+), or select smooth-shading on the left (2.79-), and select "smooth-shading". This will allow you to smooth the normals.

3) Swap back to object mode, and go to the vertex tab in the properties section.
Check the box that says Normals-autosmooth. Adjust this value.
Lower for less smoothing, and higher for more smoothing.

Here is a sphere at 0 degrees, 50 degrees, and 180 degrees:

0 degrees:

50 Degrees:

180 Degrees:

It's kind of hard to see the 180 degree effects on the sphere, so this is on a cube:


Transformation buttons disappeared I have no idea why but those translate / rotate / scale bottom buttons disappeared and I can't get them back, no matter what edit mode I'm in.

When I create a new file, they appear. when loading my model file - the are absent.

How do I get them back?

First off you have to be in either Edit mode or Object mode to see the manipulator options, and the 3D manipulator.

If your 3D view header looks like the image below, then you toggled off the 3D manipulator. All you have to do is click the toggle 3D manipulator button (highlighted in red), or press Ctrlspace (which is likely how you disabled it without knowing).

The options in the user preferences, Interface tab for the manipulator won't disable it, but if the size is set to the min (10px) it will be very hard to see.

This is the actual size when Handle Size and Size are set to the min. The image has the 3D cursor as a size reference.


How can I go back to a prior screen layout? If I have a screen that looks like this.

and I eventually end up with a screen that looks like this.

How can I get back to the screen first shown above with out starting all over?

Thanks

You can easily save your screen layout which allows you to quickly change between the original and your custom layout - see this answer here:

Save Custom Layout in Blender 2.67b?


compare two same armature structure, rotate first armature's bone to the second position I have two armature, each has the same bone structure, but the bones' location, length, and rotation is different, how to write python script to modify first armature, make first same with the second?

I want to copy the second Armature's bone position into the first one's pose mode. Not  copy in edit mode.

I try these code:

restPoseBone = bpy.data.objects["Armature"].pose.bones["Bip01"]
otherPoseBone = bpy.data.objects["Armature2"].pose.bones["Bip01"]
restPoseBone.length = otherPoseBone.length
restPoseBone.rotation_quaternion = ??

how to calculate the rotation_quaternion for the pose bone?

this is a demo blender file, I want to copy "Armature2" edit mode position to "Armature" pose mode.

testArmature.blend
http://pasteall.org/blend/31724

The following python code copies the bone configuration from the active object to all selected armatures. You do not need to bother with rotation matrix here because the bones are defined in local space, thus the global rotation of the armatures does not need to be taken into account:

import bpy

# Assume, that context.object is an armature
context = bpy.context
scene   = context.scene
source  = context.object

# Targets are all other selected armatures
targets = [a for a in context.selected_objects if a != source and a.type=='ARMATURE']

# Store the bone data of source:
bpy.ops.object.mode_set(mode='EDIT')
bone_store = []
for ebone in source.data.edit_bones:
    bone_store.append([ebone.name, ebone.head.copy(), ebone.tail.copy(), ebone.roll])
bpy.ops.object.mode_set(mode='OBJECT')

for target in targets:
    scene.objects.active = target
    bpy.ops.object.mode_set(mode='EDIT')

    # Transfer the bones to the other armature.
    # The following works because the bone data is defined in local space:

    ebones = target.data.edit_bones
    for bone_data in bone_store:
        bid =  bone_data[0]
        if bid in ebones:
            ebone      = ebones[bid]
            ebone.head = bone_data[1].copy()
            ebone.tail = bone_data[2].copy()
            ebone.roll = bone_data[3]

    # Note: You might also want to copy constraints

    bpy.ops.object.mode_set(mode='OBJECT')

scene.objects.active = source

And here is a snippet that copies only the pose from one armature to the other:

import bpy

# Assume, that context.object is an armature
context = bpy.context
scene   = context.scene
source  = context.object

# Targets are all other selected armatures
targets = [a for a in context.selected_objects if a != source and a.type=='ARMATURE']

bpy.ops.object.mode_set(mode='POSE')
bpy.ops.pose.select_all(action="SELECT")
bpy.ops.pose.copy()

for target in targets:
    scene.objects.active = target
    bpy.ops.object.mode_set(mode='POSE')
    bpy.ops.pose.paste()


creating four symmetric holes from one along two axis I want to create four symmetric holes from one along two axis. While the object(a box) itself is fully symmetric along the Y axis, but is only partially symmetric along the X-axis, so I can't just use one mirror modifier and select both X and Y axis of symmetry. See the picture:

What is the proper way to deal with the partial symmetry along the X-axis and create the second symmetrical hole on one side of the box? At the end I want to have this - if I change the original hole - all other 3 holes change itself automatically.

icosphere cut by a cyclinder

cylinder is mirrored along icosphere


does anyone knows how to make similar Materials to this? (Blue marble) i found this Material   online but i can't make similar one can anyone help ?

Here. I played around for a while and made this. I'm not sure it's what you're looking for, but it's SOMEWHAT similar. At least you can see how some things are done and maybe play with it to make it more to your liking.
EDIT - here is the full description of the thought process I used to achieve this result. I have also added an updated .blend file which reflects some changes I made .
First off,  to start,  I took the "generated" vector from a texture coordinate, as this is the convention when making procedural textures.
The main idea was that the planet in your image seems to have both surface and atmospheric "ripples". There are also "bright spots" in the atmosphere that have a wispy look that is also somewhat rippled. To get the ripple shape for all of these, I used noise textures.
For the "atmospheric spots" As you can see from the graph,  I took a noise texture and subtracted another noise texture with a slightly larger scale (smaller pattern) to get some more "believable" and "disruptive" distortion. However, the resulting combination was too "noisy", so I added the white values from yet another noise texture, scaled slightly higher again to isolate some "spots".

From here, I turned this "spot" image into to 2 different color graphs - one emission based and the other plain color, which I mainly used to highlight the spots and darken the planet, which results in somewhat of an "atmospheric subsurface), especially when I also combined the emission map with the noise texture I used for the normal (more on this later) to cause certain parts of the emission to shine, and others to be suppressed.

With regards to the normal, I wanted something rippled and distorted to reflect the light at different intensities through the emission. For this I used a noise texture scaled up substantially to make very small ripples, which I then put thorough a bright/contrast node to lessen the difference between light and dark on the map - giving a smoother more subtle appearance to the normal (more appropriate for an atmosphere than for ground). I also used a math node to  subtract some value from the image to make it slightly darker so it would shine a bit when used as a roughness map.

For the "inner" planet, I wanted it to seem mountainous with a rich topography, so I took the values from the normal map noise and used it as a mix factor between light and dark (high and low) areas of the planet. I then combined this with a slightly blued gradient texture to help give that "planetary" spherical look.

I then used a musgrave texture with the detail turned up to get some white values that look like spotty clouds. I then added this to my planetary color (non emission), which darkened the whole thing (to make it stand out as a g"ground" when compared with the emissive atmosphere), but also added those spotty cloud "whites" to the mix.

I then started using my color maps as the values for emission shaders in order to get different levels of "glow" for the different layers.

I also added the light values from a fresnel (combined with emission is great for "atmospheric glow"), which is influenced by the normal 0 this helped preserve the "rippled" atmosphere.

Finally I combined all the maps together, using the fresnel as the factor for the final mix. I then turned on bloom to make it glow, and turned up the bloom intensity so I could get a bigger glow without washing out the colors (as opposed to increasing the emissions strength).
The final result is below:

And here is the .blend file for those interested in playing around with it.
File is here -----


Video clip on plane EEVEE I'm french (sorry for my poor english), i'm a new on blender 2.8 and older...

So, I have a question about planes nd video clip.

I put a video on a plane. I gave the frames information but I can't see the movement on the render movie.

Someone can explain me I can I do?

Thanks,
Fred

Working fine here. (current build, 2.80.2)
Check your "Image Texture" Settings:
Frames: 1000
Start Frame: 3000
Maybe this is confuning blender. ;)


Blend Character Mirror Seams I've downloaded this Samus model from Modelresource.Com
(https://www.models-resource.com/nintendo_switch/supersmashbrosultimate/model/30947/ )
And the first thing I noticed was the horizontal and vertical seam lines on the waist and torso. I assume this is there the character has been mirrored but I was wondering how I would smooth them out or make them less noticeable.

Did you import the dae file?  I just took a look and it has a lot of duplicate vertices.  Select the model in object mode.  Go into edit mode.  Select all.  Then type 'm' for the merge menu and select 'by distance'.  That cleared up the seams for me.


Aligning two scans to make a solid how do I align two scans to make a solid, please ? I have a scan of the top and a scan of the bottom of an object. Now I want to align them using reference points, to make a solid stl file that I can print. thanks in advance.

I have had to do this before with a boxy shaped object but it was a couple of years ago. I think what I did was join both of those meshes as a single object and then use the remesh modifier on that.

I'm just for the life of me trying to remember how I fixed the messy geometry between the scans XD


How to return extrude back to original What is the best way to recover the extrusion you have performed to your object?

Above is just an example, but should describe the case. And I'm not looking for answer like: draw a new sphere. Also "undo (Ctrl+Z)" is not an option (noticed the design error too late).
So far I have found two options:

I select all of those faces and delete. But then I get hole on my sphere. I can fill the cap by F or Alt+F, but the surface is not the same anymore.

Other option that comes to mind is lowering this close enough to the surface, and then using merge vertices. But then those two vertices on middle of those six faces are not meltdown to anywhere, and again surface does not look correct.

This is an even extrusion, no scaling. So..

Alt-select the ring of generated faces, X delete them
Hover - L select the isolated patch
With Snap set to 'Vertex', 'Active', the whole patch selected, and a convenient vertex made active, just G snap the patch back into place..
All verts selected, M merge > By Distance.


Sverchok beginner: Viewer draw Mk3: How to connect faces and edges to vertices? I'm working through the Sverchock introduction tutorial and I see a lot has changed in version 0.6. But i am able to do what it says. Only the last part:

Now if you change the slider on the Float node, you’ll notice 2
things: 1. the header of the Float node gets the value of the slider, and
2. more importantly, the Polygon will start to increase and decrease in
size because you are multiplying the x, y, and z components of the
Vectors by that amount.

The polygon (face) does not increase or decrease in size.

If I disconnect the edges and/or face from the Viewer, then I can see the vertices scale when I slide.
When I bake the plane again, the edges and faces are duplicated and take the size of the Scalar.
Why does the scale not apply to the faces/edges and why do they behave like different objects?

please follow the tutorials here instead:
start here

00/soft_intro_01

01/lesson_01

01/notes (notes for lesson 02)

01/lesson_02

01/lesson_03

i'll try to update the online manual (compiled "read.thedocs") soon.

to address your progress in the tutorial, when you use that number node to scale the vertices, they are indeed scaling. If you look carefully, you see even in the image that the white-dots (vertices) are scaling outwards. In the top example.
In the bottom example, the input into the node is not correct. The node in the tutorial you are following (the old viewer node) handles the same input differently, you'll notice the old node had a socket that accepted both Edges and Faces/Polygons at the same time.  The New ViewerDrawMK3 node however has separate sockets for edges and faces and also reads the socket data differently. The node has gone red to indicate a problem with the input, it will do nothing until the input is corrected.
You will ( i am sure ) have better luck following the tutorial updated for b.28. Which i linked to above.


Blender, bezier curve looks In every tutorial, bezier curve looks like that in edit mode:

When I try it looks like that(not arrowlike)
Any way to fix it?

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.


Strange lines in render I am very new to blender and I am working on some projects to help myself become more acquainted with the program. I am currently working on a mask:

Thats the material view and looks fantastic to me. But then I go to the rendered view and this happens:

If anyone can help me solve this issue it would be very much appreciated.
And here is the file:

Apart from flat shading (instead of smoothing, as pointed out by @atek) your mesh has a few other issues: apart some ngons, which are considered bad topology, but it could work for your needs, there are a few nonplanar faces (mostly ngons), and those are causing artifacts, as visible below.

The good news is that you can find solutions to them all using the bundled 3d print addon (you just need to activate it in user preferences), as shown below:

First, I forgot to say that before using the 3d print toolbox "check all" tool, I already recalculated normals (Ctrl+N).

Then,

What you should have done is: try to not use ngons (ie: faces with more than 4 vertices) and if possible also avoid triangles. Why? Because this easily create problems, gives artifacts in 3d viewport and rendering, and behaves horribly if you need to animate deforming objects. The additional lines that have appeared in the render are the ngons being split into triangles as ngons themselves are not renderable.

It doesn't seem to be the case with this model but, since you're learning, it would immensely help you if you try to model everything with "quads" or, if really needed, "tris". Note that even "quads" could be made (by mistake) non planar, but while it is less likely, they will be much more easy to fix.

What can you do now, to improve this model? This is a difficult answer. In a few words, you need to convert those "ngons" into "quads". This goes under the name of "retolopogy", ie: create a new (better, simpler) mesh structure for a shape that already exists.

I'm not a retopology genius, and without reference images it's even harder, but I tried to "fix" a small portion of the mask, by deleting faces (only faces) and subdividing remaining edges to make them nearly match their "quad" counterparts, sometimes "sliding" vertices along an edge, and rebuilding faces based only on 4 vertices.

Now, shown below, you see that after pressing "check all" again it doesn't identify those areas as issues anymore:


Export multiple objects to individual glTF files? I'm looking for a tool to export 40.000 objects into the individual glTF files. Sorry, I don't have any basic Python knowledge so please allow me to ask for help. I found a similar add-on on this site, which does the job for OBJ files - would it be possible to make the same for glTF?
Thanks!

Add-on based on the answer of Export multiple objects to .obj, adapted to export all selected objects to individual .glb/.gltf files.

batch_gltf.py
# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>

# Based on: https://blender.stackexchange.com/a/31852/

bl_info = {
    "name": "Batch Export GLTF",
    "author": "brockmann",
    "version": (0, 1),
    "blender": (2, 91, 0),
    "location": "File > Import-Export",
    "description": "Batch Export GLTF files",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "Import-Export"}

import bpy
import os

from bpy_extras.io_utils import ExportHelper

from bpy.props import (BoolProperty,
                       IntProperty,
                       FloatProperty,
                       StringProperty,
                       EnumProperty,
                       CollectionProperty
                       )

class ExportMultiGLTF(bpy.types.Operator, ExportHelper):
    """Batch export objects as gltf files"""
    bl_idname = "export_scene.batch_gltf"
    bl_label = "Batch export GLTF"
    bl_options = {'PRESET', 'UNDO'}

    # ExportHelper mixin class uses this
    filename_ext = ""

    filter_glob: StringProperty(
            default='*.glb;*.gltf',
            options={'HIDDEN'}
    )

    # List of operator properties, the attributes will be assigned
    # to the class instance from the operator setting before calling.
    batch_export_format: EnumProperty(
        name='Format',
        items=(('GLB', 'glTF Binary (.glb)',
                'Exports a single file, with all data packed in binary form. '
                'Most efficient and portable, but more difficult to edit later'),
               ('GLTF_EMBEDDED', 'glTF Embedded (.gltf)',
                'Exports a single file, with all data packed in JSON. '
                'Less efficient than binary, but easier to edit later'),
               ('GLTF_SEPARATE', 'glTF Separate (.gltf + .bin + textures)',
                'Exports multiple files, with separate JSON, binary and texture data. '
                'Easiest to edit later')),
        description=(
            'Output format and embedding options. Binary is most efficient, '
            'but JSON (embedded or separate) may be easier to edit later'
        ),
        default='GLB'
    )

    batch_export_copyright: StringProperty(
        name='Copyright',
        description='Legal rights and conditions for the model',
        default=''
    )

    batch_export_selection: BoolProperty(
            name="Selection Only",
            description="Export selected objects only",
            default=True,
            )

    batch_export_image_format: EnumProperty(
        name='Images',
        items=(('AUTO', 'Automatic',
                'Save PNGs as PNGs and JPEGs as JPEGs.\n'
                'If neither one, use PNG'),
                ('JPEG', 'JPEG Format (.jpg)',
                'Save images as JPEGs. (Images that need alpha are saved as PNGs though.)\n'
                'Be aware of a possible loss in quality'),
               ),
        description=(
            'Output format for images. PNG is lossless and generally preferred, but JPEG might be preferable for web '
            'applications due to the smaller file size'
        ),
        default='AUTO'
    )

    batch_export_levels: IntProperty(
        name='Collection Levels',
        description='Set the levels of collections',
        default=2
    )

    batch_export_materials: EnumProperty(
        name='Materials',
        items=(('EXPORT', 'Export',
        'Export all materials used by included objects'),
        ('PLACEHOLDER', 'Placeholder',
        'Do not export materials, but write multiple primitive groups per mesh, keeping material slot information'),
        ('NONE', 'No export',
        'Do not export materials, and combine mesh primitive groups, losing material slot information')),
        description='Export materials ',
        default='EXPORT'
    )

    batch_export_colors: BoolProperty(
        name='Export Vertex Colors',
        description='Export vertex colors with meshes',
        default=True
    )

    batch_export_cameras: BoolProperty(
        name='Export Cameras',
        description='Export cameras',
        default=False
    )

    batch_export_extras: BoolProperty(
        name='Export Custom Properties',
        description='Export custom properties as glTF extras',
        default=False
    )

    batch_export_apply: BoolProperty(
        name='Export Apply Modifiers',
        description='Apply modifiers (excluding Armatures) to mesh objects -'
                    'WARNING: prevents exporting shape keys',
        default=False
    )

    batch_export_yup: BoolProperty(
        name='+Y Up',
        description='Export using glTF convention, +Y up',
        default=True
    )

    def execute(self, context):

        # get the folder
        folder_path = os.path.dirname(self.filepath)

        # get objects selected in the viewport
        viewport_selection = context.selected_objects

        # get export objects
        obj_export_list = viewport_selection
        if self.batch_export_selection == False:
            obj_export_list = [i for i in context.scene.objects]

        # deselect all objects
        bpy.ops.object.select_all(action='DESELECT')

        for item in obj_export_list:
            item.select_set(True)
            #if item.type == 'MESH':
            file_path = os.path.join(folder_path, "{}.{}".format(item.name, self.batch_export_format))

            bpy.ops.export_scene.gltf(
                filepath = file_path,
                export_selected = self.batch_export_selection,
                export_format = self.batch_export_format,
                export_copyright = self.batch_export_copyright,
                export_image_format = self.batch_export_image_format,
                export_materials = self.batch_export_materials,
                export_colors = self.batch_export_colors,
                export_cameras = self.batch_export_cameras,
                export_extras = self.batch_export_extras,
                export_yup = self.batch_export_yup,
                export_apply = self.batch_export_apply
            )

            item.select_set(False)

        # restore viewport selection
        for ob in viewport_selection:
            ob.select_set(True)

        return {'FINISHED'}

# Only needed if you want to add into a dynamic menu
def menu_func_import(self, context):
    self.layout.operator(ExportMultiGLTF.bl_idname, text="Batch Export glTF 2.0 (.glb/.gltf)")

def register():
    bpy.utils.register_class(ExportMultiGLTF)
    bpy.types.TOPBAR_MT_file_export.append(menu_func_import)

def unregister():
    bpy.utils.unregister_class(ExportMultiGLTF)
    bpy.types.TOPBAR_MT_file_export.remove(menu_func_import)

if __name__ == "__main__":
    register()

    # test call
    #bpy.ops.export_scene.multiple_objs('INVOKE_DEFAULT')

I added all relevant arguments of the export_scene.gltf() operator (line 179), you can change them or add new properties to the operator, wasn't sure.

For versions pre 2.91, replace the batch_export_materials property (line 117) using:
    batch_export_materials: BoolProperty(
            name='Export Materials',
            description='Export materials',
            default=True
    )

Related: Batch exporting scene collections or selected objects using glTF-Blender-IO


How to make a light emitting material sensitive to external light Essentially I want to turn a material into a kind of night-light.
For this character I'm working on, I wanted the crystals on him to glow in the dark... And I got them to glow using various shader nodes. However I can't find a balance that looks bright enough in the dark, and not washed out in the light. So I was thinking perhaps there might be a node that could change the light emission of the crystals depending on the amount of light from external sources.
In truth I don't even know if this is the best way to go about accomplishing what I want... Which is to have only barely semi-transparent crystals that glow brightly in the dark and appear as solid colors with a slight emission more like my drawing when in the light.
The other question is... will something like that carry over into unity? Because if not I'd rather save myself a lot of heartache.
Here's a picture of what I have so far:

Using the light falling on the material is not something that is possible in cycles. It is, however, possible in blender internal.

The reason this is happening though is because normally in the real world when you turn the lights on, you are also reducing the exposure of the image, which causes the light emitted from the glowing material to be much dimmer. To replicate this effect in cycles you can increase the brightness of light significantly and then reduce the exposure from the colour management section of the scene tab.


Fluid sim effector not working correctly I have a simple fluid simulation set up and, I have an "effector" object that is supposed to be making the fluid collide with it.
The problem here is, I've set the effector strength "Surface Thickness" to 0.3 which normally is quite enough. But here (as you see encircled in yellow,) the fluid is passing right through it. So I can turn the "Surface Thickness" up a little bit and it works then except, then the FLIP particles ride obviously on top of the plane ([picture 2] which obviously doesn't work.) I've even tried to set the "Sampling Substeps" up a bit but to no avail. Why is my fluid sim doing this?

It appears that you found the solution?  Your blend file worked for me.  The Collision Effector surface thickness has to be at least 0.5 Thickness, which I have reported as a bug.  And I have no idea why the default Sampling Substeps is '0', when I find that is often insufficient.


How to disable select and activate and return to just select tool How to disable the select and move tool  and return to just select tool in the blender interface

I'm using Blender 2.8 on Ubuntu 18.04 with default settings.

Toolbar buttons with a little arrow at the bottom right can be expanded to reveal more sub-tools or options.

Just click continuously on the Selection Tool toolbar button to expand the dropdown, and pick any of the available tools from there.


Why is Blender recording keyframes any time I transform an object? What have I done that makes it record every movement as an animation??
It is so annoying to have to go back and 'Clear Animation Data' on each and every object every time I tweak it this way or that.
I know I must have turned something on or off while trying to find something else but I don't know what it is.
Here are my specifics...
Blender:
version: 2.83.3, branch: master, commit date: 2020-07-22 06:01, hash: 353e5bd7493e, type: Release
build date: 2020-07-22, 04:04:56
platform: Windows
binary path: 'C:\Program Files\Blender Foundation\Blender 2.83\blender.exe'
build cflags: /W3 /w34062 /w34115 /w34189 /wd4018 /wd4146 /wd4065 /wd4127 /wd4181 /wd4200 /wd4244 /wd4267 /wd4305 /wd4800 /wd4828 /wd4996 /wd4661 /we4013 /we4133 /we4431 /w35038 /DWIN32 /D_WINDOWS /W3 /nologo /J /Gd /MP /bigobj -openmp
build cxxflags: /W3 /w34062 /w34115 /w34189 /wd4018 /wd4146 /wd4065 /wd4127 /wd4181 /wd4200 /wd4244 /wd4267 /wd4305 /wd4800 /wd4828 /wd4996 /wd4661 /we4013 /we4133 /we4431 /w35038 /DWIN32 /D_WINDOWS /W3 /GR /EHsc /nologo /J /Gd /MP /EHsc /bigobj /permissive- /Zc:twoPhase- -openmp
build linkflags: /MACHINE:X64  /SUBSYSTEM:CONSOLE /STACK:2097152,70656 /INCREMENTAL:NO  /ignore:4049 /ignore:4217 /ignore:4221
build system: CMake
Python:
version: 3.7.4 (default, Feb 17 2020, 16:23:28) [MSC v.1916 64 bit (AMD64)]
file system encoding: utf-8:surrogatepass
paths:

I guess you have turned on the auto keying on top of the timeline. Click on it again to switch it off
If you have used it recently on one or two objects just press ctrl+z to undo everything.Otherwise pressA  to select everything , hover your pointer over the timeline pressA again to select all keyframes and press x to delete all keyframes .Now you can reposition or rescale each object.ta-dah!!


How to change View3DOverlay.show_stats? Documentation: View3DOverlay.show_stats.
The UI shows the following:

However when I run bpy.data.screens['Layout'].overlay.show_stats, there is an error: AttributeError: 'Screen' object has no attribute 'overlay.

Look at the type.
Sometimes the tooltips can be screwy as shown in question the overlay is not a property of screen.
On the bpy.types.View3DOverlay help page linked go to the bottom to references.
WIll see a link to SpaceView3D.overlay
which is the space assigned to the 3d view.
In the python console
>>> for i, a in enumerate(C.screen.areas):
...     i, a.type
...
(0, 'PROPERTIES')
(1, 'CONSOLE')
(2, 'OUTLINER')
(3, 'VIEW_3D')

>>>
>>> space = C.screen.areas[3].spaces.active
>>> space.overlay.show_stats
True

>>> type(space)
<class 'bpy.types.SpaceView3D'>

>>> type(space.overlay)
<class 'bpy.types.View3DOverlay'>

If a script is run within the context of the 3Dview area, a panel draw, menu shortcut etc, then
space = context.space_data

The blender screen is split into areas. When you change the area type in UI, the active space used is associated with that type.  When you see the type SpaceFoo you know its the space of the "Foo" area.  eg "SpaceProperties", "SpaceConsole"


How can I fix this scaling issue I have? I'm trying to scale the cube to be the size of the house.. but this happens.
https://youtu.be/1nITnqzOprI

Is there a way to solve this?

Edit:
Scaling the X axis only deforms the cube. I'd like to make the cube the same width and length as the house.

Edit: The only way I can get what I want is if I extrude and then merge the vertices. Which is a bit longer solution.

I think your mesh is not aligned with its own object's local axes.. (you may have reoriented the cube in Edit Mode). So the Local axes are aligned to Global axes, but the mesh isn't, it wouldn't make any difference whether you transform in Local or Global. It's probably quickest to start with a new cube.

But you could select its top face, and CtrlAltSpace create a Custom Orientation from it, checking 'Use after Creation' and then transform the object in that space, SXX,SYY, etc.

You could even reoirient the cube's local axes to one of its faces, by snapping a helper cube to one of its faces,CtrlJ, joining the object to the helper, and deleting the helper in Edit Mode.. but in this case, that would be silly.


Tips on making materials fewer in numbers? and thank you for taking the time.
For a while I have been working on a character concept and it is reaching the late stages of creation by now. I am happy and positive with the outcome so far, but there is one obstacle for me left.

I have to run this model and export it through a specific addon in Blender, however this addon requires me to use a maximum of 8 materials on the whole work, that is the maximum limit of the addon. Please do not ask me why!

But my work has led me to a stop for now where I am trying to work out the UV map and my materials, I have managed to cut it all down to 10 materials, but this is two materials above the requirement. I cannot remove any more, as it will mess up the UV map? I tried it out, the textures goes crazy.

However, I do use several body parts with the same material.
I already tried to use Ctrl + L to link the materials together, but it did not really resolve the issue for me and now I am at a complete halt.

I guess my question is, does anyone have tips on making the materials fewer in numbers now? Is there a way for me to merge or say make two of them go together to reduce the material count? I can't for the love of me figure this out so far, been trying many features but in vain.

Support appreciated!
Thank you in advance.

Try to bake materials so you can use just one material map instead of all of it. google for 'bake materials in blender' and you will find some tutorials for sure.


Is 1 object = 1 mesh exported? For example I create 1 cube and extrude as much and as many things as I want out of it, but then I need to add a new cube to add a simple thing which couldn't be easily extruded from current mesh, so I do it...

Does that new cube get exported as separate mesh or are they joined into one mesh when exporting? And if it's not the latter, what would be the simplest way (if possible) to join them and delete faces which would be obstructed?

I've never used blender before (nor any other modelling software) so I have no idea how most stuff works in here.

The answer depends upon how the item is designed. One object can be one mesh, but one object can also contain two or more meshes. In Blender, the answer depends upon exactly how the new cube is added. If it is added in object mode, the new cube is a separate object. If the new cube, though, is added in edit mode, it may be part of the original object, even though it is a separate mesh.

The answer also might depend upon what you are importing the object into after export. Without knowing what you are going to be importing the exported object into, one cannot say for certain. It might be that the two meshes will be imported as separate objects, or as a single one.


Chrome Remote Desktop to Blender Server I have a setup like this:

Server running Debian + Blender.
Chrome OS connecting to the server via Chrome remote desktop.

I can connect and use Blender fine, but if I scale with the mouse and go outside the 3d view them the scale goes automatically to the farthest end possible. This happens to all mouse related actions (like moving the view in 3d view and nodes editor).

This is obviously a problem in how Chrome remote desktop manages mouse limits in Blender, so since I couldn't find a way to fix it up in that protocol, is there a way to disable mouse related scaling and movement when out of the viewport?

Thanks!

It's true that RDP only presents a standard VGA driver, but Blender will still be able to take advantage of the graphics card to do its rendering, etc.

It won't be the best solution, but it'll be quite a cheap solution.

If you want to take it all a bit more seriously, you'd have to invest either in decent computers with a good graphics card and RAM, etc., or look into setting up Blender as a server, which I understand is also possible.


Vertex vs texture map I am trying to select a model vertex by the textures alpha trough the python.

But I cant figure out relationship between meshes vertex, uv-vertex and texture´s pixel rgba information. Can you help me with this please ?

So, after some time with the research i found the answers. It is for beginners like me, so pros please correct my mistakes if i have some. (From noob to noobs :D - for better understaning the fundamentals)

I am trying to made 2D puppet in blender, so mainly I created plane or grid and textures. Its not for a complex 3d puppet and materials.

A) Vertices + mesh
- Vertices have index and [0,0,0] is the pivot point. Default in the middle of object.

There are awesome addon for vizualize numbers of vertices for better control:

https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/Index_Visualiser

code to find coordinations of vertices:

import bpy
obj=bpy.context.active_object
x=obj.data.vertices[0].co[0] #X
y=obj.data.vertices[0].co[1] #Y
z=obj.data.vertices[0].co[2] #Z
print("X:"+repr(x) +" Y:"+repr(y) +" Z:"+repr(z))

If we want to use infromation from vertexes for image and pixels, we need recalculate ratio position of the vertices. (0-1 from dimensions * scale)

For separate dimension from scale I must applied scale. In that case dimensions are setting as you choose but scale is reset to default 1.

Next stage is to move axis of coordination system for vertexes to the left-down corner, because imaxe X,Y coords is the same.

import bpy
obj=bpy.context.active_object
dimension = obj.dimensions
for i in range(len(obj.data.vertices)):
    a = []
    axis = [-(dimension[0]/2),-(dimension[1]/2),0]
    a.append(obj.data.vertices[i].co[0] * obj.scale[0] - axis[0])     # X
    a.append(obj.data.vertices[i].co[1] * obj.scale[1] - axis[1])     # Y
    a.append(obj.data.vertices[i].co[2] * obj.scale[2] - axis[2])     # Z
    print(a)

Calculate the ratio is very easy now (everything is for the plane object):

    ratio_verts = []
    ratio_verts.append(a[0]/(dimension[0]))
    ratio_verts.append(a[1]/(dimension[1]))
    ratio_verts.append(0.0)

Challenge of this small research was to understang how is a PNG works it is the format which carry RGBA infromation. So at the begining I discovered that for 3x3 size of picture python give me 36 numbers. I was very confusing about that, because I though that every pixel have its own index and then under index are the information about RGBA.

import bpy
image = "Test.png"
print(bpy.data.images[image].pixels)

It was mistake, PNG RGBA infromation is saved like numbers in line. [1.0,1.0,1.0,1.0...] And how it works? Like this! [1R,1G,1B,1A,2R,2G,2B,2A,3R,3G,3B,3A...] 4 numbers next other for 1 pixel information. Yes, I know, I was dumb that I dont know it, but I never trying working with the pixels trough python.

So there are really nice maths about converting coordinates to this system :)

From coordination of pixel like X:3px Y:3px to number of the pixel in line.
like:

I created an function:

def sourxy(x,y,image_name,start):
    imgX = bpy.data.images[image_name].size[0]
    PXindex = (y*imgX)-(imgX-x)
    return PXindex-1+start

when X and Y os coordination for searhed pixel.
image_name > its name of my mum :D No, of course name of the image.
And start is number if the start index (0 or 1 often) for next maths.

For some reasons maybe you would like to use recalc for X and Y:

x = PXindex + imgX - (y*imgX)
y = PXindex/imgX)+((imgX-x)/imgX

Perfect, I though, i am almost done. Byt computer says : nooooooo !

I finded problem between recalc coordinaion of the vertexes and the pixels. Vertexes have coords like [0,0], [0,1], [0,2] and its not only 9 vertices it can be like 100*100 vertices for more dense planes.

So if i rounded ratio to integers. I had coords of pixels on image without any color. Its every border down and left vertex.

Solution was simple function:

def imground(n):
    if n==0.0:
        return 1
    else: return math.ceil(n)

From vertex coords to imagme coords by vertex ratio between position and dimensions is like:

imageX=imground(bpy.data.images[image].size[0]*ratio_verts[0])
imageY=imground(bpy.data.images[image].size[1]*ratio_verts[1])

That give me right coords without zero.

From that stage its pretty simply, we need alpha exact pixel. But every pixel have 4 numbers so it need to be miltiplied by 4. And then we know that 4th number is the Alpha we found.

VertexAlpha =bpy.data.images[image].pixels[sourxy(imageX,imageY,image,0)*4+3]

So every vertex which have alpha more than 0 assign to first vertex group:

if VertexAlpha > 0:
        vrx_grp.append(i)
obj.vertex_groups[0].add(vrx_grp,1.0,"REPLACE")
vrx_grp=[]

# get all the verts that belong to a certain vertex group index:
vg_idx = 0
vs = [ v for v in obj.data.vertices if vg_idx in [ vg.group for vg in v.groups ] ]
print("vertex_group inside: " + repr(vs))

last part of code is from: Python - Finding Vertices in a Vertex Group

And Last part of question was UV vertex. For me and the puppet project its not usable, because every vertex in uv can hold multiple coordinations. It is because Many parts of unwrapping. And trough the vertex can be created line of the seam.


How to remove every inactive/unused screens in python? in blender you can easely create thousands of screens.
i'd like to have every screens from bpy.data.screens that are not visible deleted, how can i do that ?

i know that

for screen in bpy.data.screens:
    bpy.ops.screen.delete({'screen': screen})

delete every single screens, that's a goo thing, but i don't know how to detect the visible/invisible ones ?

I came across same issue and this was one of the only things relatively close, so I'd like to share how I cleaned up the screens that should be orphans in my Blender file.
So first to determine which screens were in use, open the outliner or add one to the current workspace and set it to "data api" view like this

Then once you have it open you need to expand the window or windows sections. So if you only use one monitor then there should only be one, if you have two monitors and have opened a new window then there should be one for each open separate instance window like here is mine.

So what we want to do is like I have in the screenshot is find the screen being used by each window and rename it. Now the reason I have named it the same as the workspace, is the window manager tab in api data is unique to each workspace.
So workspace name followed by master for main screen and slave for the new window secondary screen.
Then just work through each workspace, repeating the same above process, until we have all the active and open screens renamed. We can then check in the screens list to make sure we got all of them.

Like this, see all the leftover unused "default" copies, that should be orphans since they are from a "new window" I have closed but seem to still have a user.
Once we have done this all we need to do is manually force clear all the users for the unused screens with the python console, so open one up on any workspace and using this command swapping nameofscreen with the names from the above list.
bpy.data.screens['nameofscreen'].user_clear()

Now back to the to the outliner mode and this time switch it too orphan data and you will now see a list of the the orphan screens, hit purge, that will delete them from file. Then we can go back to the API data outliner mode and we should have a nice clean screen list like this.

This was done using a custom build version 2.9 alpha but should work in any 2.8+ versions.


Adding Jitter to Animation During High Velocity I'm making an animation where I would like to automatically add a little bit of vibration/jitter to the animated character during moments of high velocity.  Ie, if his arm is moving fast, add a small amount of variation to the movement.  I'm doing this to break up the smoothness of the animation where everything seems to be moving in perfect arcs.

For reference, here's the test animation as it stands now.

https://youtu.be/Q3vJCYL36nQ

Not bad, I don't think, but still too robotic. I want more variations.  I'm actually thinking about redoing all of yoda's animation with motion tracking my hand as if it's a puppet (I'm definitely going for more of the ESB, puppet look to the look of Yoda and his movement, also there is background footage it's being composited into, pps, I'm trying to figure out why at the end of this section of animation his hair all of a sudden starts to shimmer, but that's another topic).

Animating tiny variations by hand throughout a 2 minute animation is daunting, but may have to be the answer.

There is the noise F Curve modifier, and I feel like the answer may lie here.  I've been trying to manually set a start and end time within the range where the character is moving quickly, but again, it's very tedious, especially when you have to copy and paste it to three to six curves (for xyz loc, and sometimes rot) for every time the curve is steep.

And there's maybe the key, I can see when a curve is steep (meaning the animated object has high velocity) but I need to tell Blender that.  I'm not a scripter, but I've been starting to look into it as a possible solution (it's about time I learn anyway).  Could this be done with a script?

Is there some way to have the velocity change the amount of random jitter in a noise F-Curve modifier using a driver or something of that nature?

I've also been looking at the new animation nodes as a possibility, but a lot to take in there as well.  Will continue to plug away at it til I find an answer, but if someone can point me in a direction it could help my search!  Thanks guys.

-Matt

There's possibly a script-level way of achieving this, but I strongly suggest trying the NLA(Non-Linear Animation) editor first.  It allows you to set F-Curve modifiers on-top of entire actions (so all the channels if need be).  Fairly quickly too.  Learning to use the NLA isn't too hard, and the payoff can be big, especially for the long animation you have.  Check out some basics of the NLA here: https://www.blender.org/manual/editors/nla.html

To get the jitter on certain parts of the animation, try adding a 'noise' modifier to the strip.  You could also try adding another animation layer 'on top' of your current one, and keyframe the noise on that strip instead, and then ease into it's influence using the Blend in/out fields.


Having trouble with adding a section to a panel at runtime: IgnitProperties has no attribute 'Add' I asked a similar question quite a while ago but I'm still having trouble with this. For those that didn't see my last question, basically I want to replicate what the background image system does, or at least the panel. I want to have an add button and an X button, and when the add button is pressed by the user, a section is added to the panel and that can be done as many times as the user is willing to click it. Then added to each one of those sections is the X button, and when that X button is clicked, it removes that section, just like the background images. I have this code so far, I've only added the parts of that should concern:

class IgnitProperties(bpy.types.PropertyGroup):

    collapse = BoolProperty(
        name = "Collapse",
        description = "Allows the MacBook Controller to be collapsable",
        default = True,
        update = lambda self, context: common_update(self, context, 'collapse')
    )

class AddMacBook(bpy.types.Operator):
    bl_label = "Add MacBook"
    bl_idname = "macbook_controller.add_macbook"

    def execute(self, context):
        item = context.scene.ignit_panel.add()
        def unique_name(names):
            # from wm.py
            prop = "MacBook"
            prop_new = prop
            i = 1
            while prop_new in names:
                prop_new = prop + str(i)
                i += 1

            return prop_new
        item.title = unique_name([i.title for i in context.scene.ignit_panel])
        return{'FINISHED'}

class RemoveMacBook(bpy.types.Operator):
    bl_label = "Remove MacBook"
    bl_idname = "macbook_controler.remove_macbook"

    del_item = bpy.props.IntProperty(name='item index to remove')

    def execute(self, context):
        context.scene.ignit_panel.remove(self.del_item)
        return{'FINISHED'}

class IGLayoutDemoPanel(bpy.types.Panel):
    """Creates a Panel in the scene context of the properties editor"""
    bl_label = "MacBook Controller"
    bl_idname = "macbook_controller.macbook_controller"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

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

        scene = context.scene
        split = layout.split()
        scene = context.scene
        camera = scene.camera.data
        obj = context.object

        # Add
        row = layout.row(align=True)
        layout.operator("macbook_controller.add_macbook")

        for idx,ignit_options in enumerate(scene.ignit_panel):
            # Box
            box = layout.box()
            row = box.row()

        # Collapsable Menu
        collapse = scene.ignit_panel.collapse

        if collapse == True:
            row.prop(scene.ignit_panel, "collapse",
                icon="TRIA_DOWN",
                icon_only=True, emboss=False
            )
        else:
            row.prop(scene.ignit_panel, "collapse",
            icon="TRIA_RIGHT",
            icon_only=True, emboss=False
        )

        # Title (per object)
        row.label(text = "MacBook")

        row.operator("macbook_controler.remove_macbook", text="", icon = "X", emboss = False).del_item = idx

        # Collapsing everything inside the box
        if not ignit_options.collapse:
            #This is the section that I want to be drawn every time the add button is clicked

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

def unregister():
    bpy.utils.unregister__module(__name__)
    del bpy.types.Scene.ignit_panel

if __name__ == "__main__":
    register()

No errors in the console at first, but as soon as I try to click one of those buttons, it tells me this:

Traceback (most recent call last):
File "/Users....../macbook_controller.py", line 1202 in execute
AttributeError: 'IgnitProperties' object has no attribute 'add'

Ok so there were a whole lot of small errors that contributed to fixing this. Here were the steps required to fix it.

1) Change bpy.types.Scene.ignit_panel = bpy.props.PointerProperty(type=IgnitProperties) to bpy.types.Scene.ignit_panel = bpy.props.CollectionProperty(type=IgnitProperties)
(PointerProperty to CollectionProperty)

2) All of the scene.ignit_panel in the draw function had to be changed to ignit_options

3) The last for loop had to be removed (this was not actually shown in the code above, but it was after if not ignit_options.collapse:)

4) The collapsible menu if statement had to be moved into the for loop just above it


How do I make my decal non-transparent? I'm trying to make the label on this beer bottle non-transparent, but no matter what I try, light goes through it. As you can see from my node tree, it's just a decal applied with a diffuse shader. What am I missing? I need it to be totally opaque.

You don't want to Add both Texture Image and Glass Shader.

The thing you need to do is Mix both of them by Mask.

In below example I've used texture 2048x2048 with centered label and transparent background (PNG).

I don't know exactly how have you added your texture (and UV) so I can't describe precisely what should you do.

Feel free to add more information so I can extend my answer targeting your particular setup.


Can I use a panoramic rendered Blender scene as environment texture? I'm trying to create a VR animation of an experiment being done in a classroom. The render times are through the roof if I render each frame of the animation, setting the camera to panoramic view. Can I render the classroom scene just once (setting the camera to panoramic), then use that as an environment texture for the rest of the animation in which the camera just focuses on a table where all the experiments are going on.
Will this reduce my render time?
Please help!

This should definitely be possible. Pre-rendered backgrounds are a pretty common technique for speeding up rendering times.

The only issue to be aware of with static backgrounds is that you need to be careful with camera movement as you will not get the parallax effect. I suspect that this is likely to be more obvious in VR scenes due to independent head movement/viewing angle (you can just get away with panning a few layers over each other at different rates). How noticeable this effect is will depend on the distance between the camera and the nearest object in the background, the variation of object distances in the background and the amount of camera movement.


Is there a way to limit max RAM usage by Blender? Since I'm fairly new to Blender, I'm not always aware of its (and my system's) limitations, and I accidentally overload my RAM kind of frequently while experimenting with for example adaptive subdivisions. It would be fine if only the program would crash, but it eats up every bit of my memory and totally crashes my computer to the point that only the reset button helps. Is there any way to limit the RAM usage just so I can open the task manager and close Blender when it crashes, so I don't have to reset my entire computer every time? I have 16 gigs of RAM, by the way, I know it's a bit on the lower side for these kinds of tasks but that's what I have to work with at the moment.

Thanks!

You cannot do inside blender, but if you are on windows you can check if these software can help you:

Process Tamer :
https://www.donationcoder.com/Software/Mouser/proctamer/
Process Lasso : https://bitsum.com/


How to have a straight line uv I have uv map. It is similar to O shape.

With the textool addon. On clicking the Rectify it creates C shape.

I want to have a straight line uv without any bending or twist. Without apply any modifier used. A straight line.
Any suggestion or help how can i make it.

I'm not sure you can have a straight line with the current topology, what you could do in the UV Editor is rip the 2 horizontal rows, rotate them 90° and stick them to the vertical.
Or you can change your topology, going from that:

to that:

then select all, select an active face, press U > Reset, then U again and > Follow Active Quads, and it will give a straight line.


How to Add Timeline Marker via Python? I'd like to add a Timeline Marker via python script. How can I do it?

Using bpy.ops.clip.add_marker() requires me to have the context for command, so I'd prefer something like

marker = timelinemarker.new()

I found it after browsing through the api and checking out some other people's code.

import bpy

scene = bpy.data.scenes['Scene']
scene.timeline_markers.new('F_01', frame=1)

see TimelineMarkers for more info


giving hollow objects a thickness I'm working on a uh60 Blackhawk. The problem is I need to give the main body a thickness. Extruding gives the object different thicknesses at different points.  I want it to have the same thickness across all of the body. So for example, I might want to have a thickness of 5cm that is maintained for the entire body.

Here is a picture of what I want to make, that needs a thickness that is maintained throughout the main body:

The easiest way would be to use Solidify modifier.


rotation is reset when I playback animation Rotation of a propeller, impossible to change the axis

Looking at the image above., the animation is recorded on the Empty. I assume but cannot tell for certain that all 3 rotations are animated. you only need a single rotation to be animated.

You can remove the other 2 keyframes from the axis you don't need to be animated and it will fix the issue.

The yellow color means that there are keyframes present for these properties.
You should remove them. For example I assume that the rotation around the X-axis is the one you want to keep.

Press other mouse button on the Y and click on Clear Single Keyframes. Do the same for the Z.

This will remove the keyframed animation on the Y-rotation and the Z-rotation.


How to slice an object depending on whether it is in camera or not I want get that part of the model, that is within the angle of the camera. For the current solution I use a script that selects the vertices. It works ok, but isn't good enough for what I want to do with it. The issue is that a zig-zag pattern is created when vertice A is within the camera-angle and vertice B isn't.

I imagine a tool that works similar to the knife project and bascically better approximates the edge with more vertices. If you know properties of the camera that might help or similar scripts please let me know.

Because I have to do it a few thousand times, doing it by hand isn't an option.

Ideas:

Convert the camera object to a different one,
extrude it far enough and actually use the knife project. If that
doesn't work maybe I can convert or use an object as a camera
Remodel the camera

With the help of rob I've figured out how to do it and to help people that have a similar question in the future I post this answer. It is made in a way so that it is fully scriptable, you can of course do it by hand.

Remodel blenders camera
Set a real blender camera as parent object. This step can be done in a
seperate file if you then append it.
Position the parent-camera however you like
Extrude the remodeled camera
Add a boolean modifier to the remodeled camera and select the other object
that you want to cut out
Apply the modifier and delete all the stuff you don't need.

Important: For my project I only need the 3D shape, if you need the materials textures etc. you'd have to figure out how to also include it, because it won't be there after cutting (probably just add the boolean modifier to the car)


Edge selection - cannot select I want to move a vertex, not duplicate. But I cannot select the vertex with its connected edges, only the vertex

Here is the file:

Try moving the vertex and please find out why its doing this.

Pretty simple really. You have 2 vertices on the same spot. You may have accidentally duplicate the vertices while you were working on it. Good news is that it's really easy to solve.

While you are in Edit Mode. Hit W
Look for the option "Remove Double" in the drop down list.
Now try moving the vertex again.

You should have no problems!


Beveled cylinder cutout Despite being more proficient in Blender than last time, I'm still struggling with round shapes. Currently I'm working on a small part of a model - a fluid intake. However, I can't seem to create a beveled cutout without breaking the round shape of the base cylinder.
Leaving the edges (see picture) unbeveled isn't an option either, as it will leave the hole as an deformed blob.

How can I solve this?

[Blender 2.80]  I made an object similar to yours and discovered that applying a bevel to the edges "did" distort the walls of the cylinder when "all" surrounding edges were selected at once.  So I tried to apply the bevel to the edges in stages.

First I beveled the 2 bottom edges (.05 amount), then just the sides and lastly the top edges and it worked... with just one division bevel.  I tried it again with a second window (same staged process).  This time I applied 2 bevel divisions and found that the corners were not well done.  But, with some manual refacing it worked.  It wasn't elegant, but it worked.

This may or may not work for your needs.  And, I hope this is what you were referring to?


Anisotropic BSDF on multiple meshes I'm making stairs with glass steps, which have a big amount of metal bolts. The problem is that when each bolt is separated into individual object, the Anisotropic shader looks alright, but when I merge them into one object, it looks bad. Is there a way to make it work properly without having 40 individual objects for each bolt?

This is an example of two separated objects:

And this is how it looks when I merge them:

And finally, this is how the stairs look like:

The issue is that you are not using any coordinates to control the mapping of the texture. In this case you have not defined a UV map.

When you create a single object that contains the meshes for all of the bolts you are enlarging the bounding box of the object. And, since you are not using any UVs, then the bounding box happens to be the key element in defining the anisotropic qualities of the surface.

Quote from the blender manual

  The Anisotropic BSDF node is used to add a glossy reflection, with separate control over U and V direction roughness. The tangents used for shading are derived from the active UV map. If no UV map is available, they are automatically generated using a sphere mapping based on the mesh bounding box.

A single mesh:

Several copies of the same mesh:

The bounding box:

To make all of the elements have the effect you are after, you need to unwraop the mesh to define the UV coordinates for the original object.

And have the anisotropic BSDF node use the UV coordinates as tangent. Note that the UVs should be unwrapped as 'Project from View' in isometric view (rather than perspective view - Numpad-5), viewed in the direction of the desired anisotropy, and moved to be centred on the UV origin (as that is where the centre of anisotropy will be located).

Then every copy of the original mesh will be using the same mapping, regardless of the bounding box of the object.

NOTE : This will produce a slightly skewed anisotropy due to the raw UV coordinated being used for the Tangent rather than an actual tangent. This can be adjusted using the Anisotropic Shader 'Rotation' property, but a better fix is to use a Cross Product node to generate the tangent from the UV coordinate and a fixed (0,0,1) vector (which is perpendicular to the UV plane) using the following nodes :

The alternative to this is not to merge all of the meshes into a single object, but to make a single bolt, then use instances with Alt+D, that way each copy will be a single object, but will share the same mesh and material. If you want to edit the original, then all other instances will be editied as well


No distortions with Strokes in a Fisheye render (Cycles)? I would like to draw my the scene with strokes and render it for a dome view (fisheye 210º) but when i finished to draw and start the render, I have no fisheye distortion, everything is flat like a classic 3D camera.
I use Cycles for rendering.
Anyone get an idea how I can achieve that?
Thanks for your help,
Julien

Thanks Susu for answering, I found the answer here :
https://developer.blender.org/T70235

"This task can be closed explaining that it's not a supported feature currently.
T68991: Fisheye / panorama in EEVEE is the task to add this in the future."


How to create solid height field from image? I want to simulate caustics generated by free form lens using Blender and Lux Core Render as a geometric optical simulator. I know how to create height field surface from a gray scale image using displacement modifier. But what I need is the one with volume, cube-like mesh solid object with arbitrarily height distribution on the top face and flat plane on bottom face. Could please anyone show me how to do it ?

Thank you for your cooperation.

You can still use the displace modifier for this, but with a vertex group to limit the influence to one face of your object.

Select the top face of a cube/suitable volume.
Create a vertex group in Properties > Object Data > Vertex Groups.
Assign the selection to the vertex group.

Then specify that vertex group in your displacement modifier:


How to select objects by collection from selected objects in the scene with Python? I just started using python and got stuck.
I found this script which is used to take the selected objects from the scene and add them to a list based on the name of the material.
I should do almost the same thing but based on the name of the collection, rather than that of the material.
Can you help me?
Thanks in advance.

selection = bpy.context.selected_objects
obj_list = []
for o in selection:
    for m in o.material_slots:
        if '_abetemono15' in m.name:
            obj_list.append(o)

More explanations.

Thanks brockmann,
Yes, well it is difficult to explain.
However I try.
I am a designer for a carpentry shop.
In Blender I have not found a way to calculate the quantities of lumber and things like that.
In recent days I have written things like this:

It was a nightmare. In addition to not understanding Python, I also struggle with English. I'm good at Blender but this time is not enough.
However this thing works, but I had to use the materials to separate the types of timber that are used in the furniture.
But this doesn't work because sometimes I have to replace the surface material without changing the name of the material that is related to the script.
Probably the best thing to do is to use collections to group material types, materials for materials and emptys to group furniture.

I found this. But it works without considering the selection on the scene.

selection = bpy.data.collections["Abete massiccio"].objects

Sample script based on your collection name.

import bpy

sel_objs = bpy.context.selected_objects

#identify and choose collection union
col = bpy.data.collections["Abete massiccio"]

# create a list requiring both objects selected and in chosen collection
objs_in_col = [obj for obj in col.objects if obj in sel_objs]

for obj in objs_in_col:
    print("Object name: %s \t Collection: %s" %(obj.name, col.name))


How do I copy object data with deformation animations with AN? I created this setup for instancing and copying deformed mesh with its armature animation but all I see is the non deformed mesh of cyclinder.
Is it possible to instance and copy meshes while keeping their armature deformed animations in this kind of setup?
You can download the blender file from here
https://quickfileshare.org/2hMH/copy_dformed_30092020_2107_08.zip

Try mesh replicating using Transform Mesh node.

Another Non intuitive way, Here armatures and objects are instanced and each armature is set to appropriate objects. For some reason it was not updating as expected. so i used an expression to force reset data. It also caused performance drop :(


Sharp edge support loops for cylinder I'm new to blender and have been trying to tackle this issue for hours over the last few days now (trying to contain the complexity by insetting, beveling, extruding, etc). Very simply put, I'm trying to cut a rectangular hole in a cylinder.

I wish to extrude the faces inwards and sharpening the edges by either creasing or adding support loops. Obviously adding a support loop causes the vertical edge of the cylinder to get a sharper edge as well, leaving unwanted results. Creasing creates weird shading issues and an overall messy looking result.

With my very limited modeling knowledge I'm assuming I have to contain the loops to the cut-out area, I just don't know how to go about this. Does anyone have any tips for this (probably very basic) modeling issue?

The best topology I've personally found for this kind of case (hole in a round surface) is the following one. So you need to create a bevel on the corner, then join some vertices and delete some edges:


File Path Problem - Open with file linked (duplicate) - Python I'm learning to program in Python for Blender and I'm trying to create my first addon, it works well, I made it inspired by EasyHDRI, however when I import an image into blender using python/my addon it is sent with copy as shown in the attached image.
When I choose an Environment Texture manually this does not happen as it is also shown in the image.
The problem that this causes is that I cannot delete images that are not in use.
Would anyone have a solution on how to solve this problem, just solve this problem to finish my first addon :D

Code to open image:

#OPEN IMAGES
class OBJECT_OT_custompath(bpy.types.Operator):
bl_idname = "view3d.custom_path"
bl_label = "Select HDR file"
bl_description = "Open Dome Light File"

filename_ext = ".hdr;.exr;.png"
filter_glob = StringProperty(default="*.hdr;*.exr;*.png", options={'HIDDEN'})

filepath = bpy.props.StringProperty(subtype="FILE_PATH")
files = CollectionProperty(
    name="File Path",
    type=bpy.types.OperatorFileListElement,
    )
def execute(self, context):

    #change image
    bpy.ops.image.open(filepath=self.properties.filepath, relative_path=True)
    print(self.properties.filepath)
    limit = 2
    index = 1
    for file in self.files:
        bpy.data.worlds["World"].node_tree.nodes["Environment"].image = bpy.data.images[file.name]

        index += 1
        if index == limit:
            break

    return {'FINISHED'}

def draw(self, context):
    self.layout.operator('file.select_all_toggle')
def invoke(self, context, event):
    context.window_manager.fileselect_add(self)

    return {'RUNNING_MODAL'}

Code to clear unused images (it works, but only delete images that are not linked or duplicated, in short, only delete images that I send manually):

# REMOVE UNUSED IMAGES
def remove_images():
images = bpy.data.images
for img in bpy.data.images:
    if not img.users or (img.users == 1 and img.use_fake_user):
        bpy.data.images.remove(img)

class WORLD_OT_remove_unused_images(Operator):
bl_idname = "world.remove_images"
bl_label = "Remove unused images"
bl_description = "Remove unused user images"

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

Thank you very much

PROBLEM FIX

I just changed an line, I'm noob haha

bpy.ops.image.open(filepath=self.properties.filepath, relative_path=True)

TO:

bpy.data.images.load(filepath=self.properties.filepath, check_existing=True)


My world properties node background is missing I've been trying to figure out what i've touched accidentally to make turn the HDRI picture into blank and mushy color whenever i insert one as a node. Please help. I'm very new in blender so i don't know which properties i need to fix to bring it back.

You need to use Environment Texture node.
You're currently using Image texture node, which doesn't work right with HDRIs


Blender 2.82 - How to get Cycles' motion vector from current-to-next frame, in addition to current-to-previous? I looked at the doc:
https://docs.blender.org/manual/en/latest/render/layers/passes.html

It says that the Vector pass outputs:
"Motion vectors for the Vector Blur node. The four components consist of 2D vectors giving the motion towards the next and previous frame position in pixel space."

However, it looks like the XYZ component of the speed vector. This is also what I get when using a file output node with .exr format (I get the XYZ in the RGB and no A channel)

My question - is it possible to get the output as stated in the docs? that is, two 2D vector fields, one from current frame to previous and the second from current to next frame?

This can be good since in general the motion transformation might not be invertible (e.g. several pixels in one frame become one in the other frame).

Many thanks!

In order to "see" the Alpha channel populated, you need to turn on the Use Alpha check box of the composite or viewer output.

See this for further details:

Incorrect Vector Pass output (No Alpha & Zero Values)


PNG animation render, saving images without a file type So this is probably a simple solve and most likely due to me adding a setting that I shouldn't have.

So for all of my other animations I have done, I render each step as a PNG image and then use the Image Sequencer to render the final animation, and it works well. But this time around, all of the rendered images are not saved as PNGs but rather saved without a file type but can still be opened via Chrome.

Any ideas how I can get Blender to save these renders as a PNG?

Specs:
GeForce GTX 1060 3GB,
Windows 10,
intel i7,
8GB RAM,
Blender 2.79

In the Render panel in Input, check "File extensions"

(They are saved without a file extension, which is not the same as a file type.)


FBX shaders messing with materials when importing to Blender I'm trying to import an FBX model to Blender and when I do, it just completely messes up the materials. I know what shaders the model uses (which are custom) but I want to know if there's a way I can change the shader within Blender/change whatever to stop the materials to look like this.

That color only indicate that Blender cannot find a texture map.

Has been moved to a different location
The connection is lost
If there are more than one texture image if you reload the texture looking in the proper folder, Blender will update the rest of the texture locations.


how to prevent arm from twisting with rig Right now I have a base mesh of a human with a basic rig structure, I am trying to have him point a finger gun but whenever I raise the characters arms the mesh
twists. (see below)

I don't know what is causing this but I have good topology and the rig vertex groups are all pretty good. any ideas?

Your issue is likely with blender's strange weighting system. Every vertex on a mesh is given a weight value (0-1, decimal based) of how much influence a particular bone has over that vertex. Your arm bone, of some farther down the arm, likely have weighting bleed over into the chest which is causing that twisting. Simply go into weight painting mode and adjust the weighting so anywhere not associated with the given bone is solid dark blue. This should take care of any unwanted twisting, unless you also have the same issue I do, where the armature seems to have applied it's self to the arms sideways, so they roll forwards and the elbow bends sideways. (I managed to get the IK and poll targets working too so this is really infuriating...)


How to prevent Blender from crashing when running out of memory? I'm waiting for like 5 minutes for a render to start, nothing happens (Blender 2.90.1) and Blender is crashing in the end. I already tried to render the project using Blender 2.83.8 but I'm getting the same issue. As you can see from the screenshot, I'm running out of memory since I only have 16gb RAM and it's showing me that blender is using 20.34gb. The viewport is fine however, I can see the image resolving and everything...

Q: Is there any chance to render my image although I don't have enough memory?

If you are out of memory, the only solutions are to install more RAM in the computer, or to make the paging file (virtual memory stored on disk) in the OS larger.
Or work in scenes that do not exceed the resources available in your computer. Don't abuse the number of particles, use instances instead of duplicates, use modifiers and set subdivision surface to low values Blender render crash when using subsurf modifiers.


When joining objects, can blender make a vertex group which contains the vertices of each object that was joined? I wanted to know if it was possible, natively or with an addon, to make Blender auto create vertex groups when joining objects, by making each joined object a vertex group?
A concrete example:

I have a cube and a sphere.
I join them.
After joining them the new object has two vertex groups:
one contains all vertices from the cube, the other all vertices from the sphere.

Is this a possible thing or do I need to manually make my groups before joining?

Pre-op script
Testing shows that uniquely named vertex groups are retained when joining mesh objects.  Instead of doing this manually (boring) can speed it up with a script.
Running script below will give each mesh object in selected objects a vertex group named after the object containing all verts with weight set to 1.
Have commented out the join operator, uncommenting will do it all in one, by running script when selection matches that for join. (ie adds selected to active)
import bpy

context = bpy.context

obs = [o for o in context.selected_objects if o.type == 'MESH']

for o in obs:
    vg = o.vertex_groups.new(name=o.name)
    vg.add(range(len(o.data.vertices)), 1.0, 'REPLACE')

# run the operator
#bpy.ops.object.join()

It occurs that as well as adding vert group, renaming existing groups by for example prefixing object name would stop groups of same name merging
Add this in loop before making new group.
for vg in o.vertex_groups:
    vg.name = f"{o.name}_{vg.name}"

Deja Vu
Creating a batch version of a script that renames Vertex Groups


Is it possible in Cycles to have faces with alpha, overlaying diffuse faces in a single material? I am working with UDIM in Blender Cycles and I am trying to work out a particular problem, but that is really not important.

I have broken my problem down to its most basic parts, and here is what I would like to accomplish:

I would like to use only 1 material (node tree) for an entire object and have part of the object, lets call it the face, as diffuse and yet have another transparent part of the object, lets call it the eyelashes, overlaying the diffuse...all in the same material. Can this be done?

Create two node groups ( or two simple  shaders )  in one material ( each act as a separate material )
you will use one output and a mix shader, the mixing factor comes from a comparison against a known limit of the UVmap created for this purpose only, as in the following setup :


How do I change my model to work properly with UV Unwrap? I created a character and now I want to texture it.

It was going well until I tried to add texture on sunglasses.

I open the UV Image Editor, after I unwraped the sunglasses and I am getting only a dot. Please take a look as shown in the picture below:

Try to add the mark seam on your sunglasses, Please select the boundary edges one by one and than

Follow the menu as shown in image

Or hit Ctrl + E and select the Mark Seam from the menu.

After adding Mark seams, Please Unwrap again, Good luck :)


How to stop Blender from rounding numbers? So I need to have objects that are as small as 0.03125m and move them at 0.015625m invervals. Whenever I try to work with this values Blender rounds them.

Is there a way to increase it's precision? If not, is there a workaround for this?

I tried to have my scene unit scale set to .001m and lenght to millimeters, but the rounding still happens.

Having everything in meters will round .03125m to .0313m
Having
everything in millimeters will round 31.25mm to 31.3mm

I thought on just making everything bigger and scale it down on export once it's done. Will precision be lost in this case? I'm watching this post, if you feel some info is missing please point out and I will edit the post instantly.

So I guess blender doesn't round these values?

I changed my scene units to display separated units (e.g. 1m 0cm).
And BAM, edge lenght is displaying the correct (original) values.
Also I noticed that when creating a mesh the transform values will be rounded, but
item transform shows the correct values.

Blender was not rounding the values themselves. It was just displaying them rounded.

This is absurdly counterintuitive and really should never happen.
If anyone stumbles across this I hope this helps.


Move/rotate object depending on another object I have an object Cube with copy transforms constraint targeting another object Empty. The constraint is disabled, so when I enable it the Cube's rotation, location (transformation) is copied from Empty to Cube, which is correct. I have another object Arm, which I want it to be transformed and rotated with the same value as Cube so that the relative orientation of both the Cube and Arm remains the same as if they were both shifted and rotated with the same value, not sure how this can be done? I tried adding a copy transform to Arm targeting Empty but it didn't give the correct results. Any advice? Ultimately I want to do this with python but I'm trying to figure a way to do it manually first then write the python script for the steps needed.

My .blend file can be found here

A driver is a way of calculating the value to use based on other values in the scene, any python expression can be used in a driver. A constraint is basically a visual way of representing a driver. For the most control, you can define a python function to calculate a value used in a driver.

As an example, a driver can calculate the x rotation as 1/4 of the x rotation of the empty. The variable named var is set to get the x rotation of the Empty and is then used in the python expression to get the final value.

Then you can set cube2 to rotate three times the rotation of the first cube

Now let's say we want cube two to have it's rotation a constant offset from the first cube's rotation, we can use a custom property to hold the offset amount (and animate it if we want some variation) and use that in the driver.

You can also add your own function into the driver namespace -

import bpy

def mydriverfunc(val):
    return val * .75

bpy.app.driver_namespace['myfunc'] = mydriverfunc

and then use that in the driver expression, passing any gui configured variables as paramaters.

Note that drivers are python code and might get disabled based on the auto-run python settings.

You can create a driver using python

d = obj.driver_add('rotation_euler', 1)
d.driver.type = 'SCRIPTED'
v = d.driver.variables.new()
v.name = 'var'
v.type = 'TRANSFORMS'
v.targets[0].id = bpy.data.objects['Empty']
v.targets[0].transform_type = 'ROT_X'
d.driver.expression = 'var * .25'


Making Two Objects EXACTLY Flush Note the following image:

I am trying to align the object on the left and the one on the right, so that they are EXACTLY flush to each other and there is not flickering overlap.

What is the best way to do this? I tried zooming way in orthographically and moving the left one slowly, but it still overlapped slightly.

Is there an easy way to do this? Alternatively, is there a way to make the right object impassable, so that the left object simply stops at the edge of the mess?

Thanks!

The "flickering overlap" (known as z-fighting) isn't really avoidable. Due to things like floating point rounding errors, there is no such thing as exactly flush in computer graphics. If two polygons are coplanar enough, you start getting calculations that sometimes round off with polygon A being on top, and some round off with polygon B on top. Hence, z-fighting. In most cases, you are much better off having either a small gap or subtly intersecting the two objects, depending on your needs.

That said, you can use face snapping to get one object "flush" with another object: Snap object on top of surface of other object

But again, due to precision limitations, "flush" is ill-defined and hovering or intersecting the two surfaces is often preferable so one is strictly defined as being on top of the other.


Volumetric fire looks cuboid I do not know why. The tutorial I followed was https://www.youtube.com/watch?v=D_ybn4tYxs4.

I am not able to get the result of a nicely shaped flame.

Below is my set up for the domain:

You have brightness set to 1 on both of your bright contrast nodes, it should be 0 as you don't want to modify the brightness at all, increasing the brightness like this is effectively setting the background density to a value above zero, so the whole cube is being rendered.

In fact you don't even need those nodes at all

The other thing I noticed is the top attribute node should use the density attribute for the smoke, rather than the flame attribute.

In order for volumetric materials to render correctly you will also need to go to the light paths section of the render settings and set the number of volume bounces to something reasonable.


Body part recognition inside of blender using a neural net So I'm working on a project that's turning out to be monstrously difficult. I'm trying to automate the rigging process inside of blender using the addon "Auto-rig pro". This addon has a feature called smart rig that automatically places a skeleton into a mesh. Using this I've been able to automate everything but one step.

In order for the rig to be created automatically you have to manually place markers on the neck, chin, shoulders, wrists, ankles, and groin. If you've ever used mixamo's autorigger it's basically just that. So in order to fully automate the rigging process I've resorted to using a neural net.

I've been doing a lot of research on machine learning, but unfortunately it appears that I'm the first to attempt something like this (as far as I know). After significant effort I've managed to install Tensorflow and Keras into blender, but I start running into problems when I try to figure out how to feed the data to the neural net.

Normally a neural net is fed raw images, but I need to feed it the 3d view. The marker placement is done in a straight on orthographic view, so I only have to worry about 2 dimensions here which is nice. I could render each model as an image and input it into the neural network, then have the neural net output the appropriate marker coordinates, but rendering takes time and this method seems somewhat unreliable.

Honestly I'm feeling pretty damn overwhelmed by this whole process, I'd never written anything in python until a few days ago, and I've never tried to make a neural net do anything more sophisticated than recognizing simple number patterns.

If you have any suggestions or ideas at all I'd love to hear them and I'm happy to answer any questions you have. Just feeling like anyone other than myself is considering this problem would mean a lot to me.

Also I apologize for any typos/grammatical errors I may have made. After working on this whole neural net dilemma for 8 hours straight my brain is pretty much completely fried.

Consider this to your approach:

feeding your net just a 2d image is limiting (and more work to set it up) when you could feed it whole 3d mesh. You could even build an octree and know what is where in space and feed this to the neural net, basically voxel data instead of pixels
probably the whole neural net thing is not even necessary. There is a popular method of extracting skeletons from meshes by Laplacian smoothing the mesh: Skeleton Extraction by Mesh Contraction:

  Our method extracts a 1D skeletal shape by performing geometry contraction using constrained Laplacian smoothing.

You will find this in open source C++ CGAL library here. This is probably enough to know where the neck and crotch is and where limbs end.
other method is: Mean Curvature Skeletons:

Code here.


How to move a whole mechanical rig without selecting all the individual parts? Is there a way to move a mechanical rigid body made up of many parent child objects, constraints etc as a whole around the environment, without having to select all the individual parts?

Rigid Body objects are all automatically assigned to a specific Rigid Body group. To select them all simply select one and then use Shift+G to select group. See https://docs.blender.org/manual/en/dev/editors/3dview/object/selecting/tools.html#bpy-ops-object-select-grouped

Once selected simply use the usual manipulation tools (eg grab, rotate) to move them.

You can also create your own groups to allow you to organise sub-sections of your objects and select them in the same way.


Can anyone help me rig a watch escapement? I have this modeled already but I have no idea how I can properly rig for animation.

I am specifically looking rig and animate the flat spring underneath. I would love to figure out how to simulate but maybe that is a longshot. Thanks!

Using bones and curve modifiers

The first bone has 100% influence on the spring.

The second one, its child and which is rotating, has a gradient influence on it.

To make this gradient, start with a simple plane and set the weight to 1 for a side (interior side), and to 0 for the second side (exterior side).

Once done, stretch it and loop cut it.

Now use a spiral curve (add curve extra object standard addon). And add a curve modifier on the spring.

You will need to weight paint a bit on the exterior part that may not move at all.


How to use baked fluid with network render? I would like to use blender net render feature, but I know, that currently it does not support baking fluid simulations (see Blender Netrender Manual).

Is it possible to bake it locally and then use it in network rendering?

Yes, but all the networked machines will need access to the cache.

Another way to do a network render:

All machines need access to the blendfile and any external data (textures, fluid sim caches, etc.)
Make all the machines output the rendered images to a shared directory
Disable Overwrite in Render Settings > Output for all machines.
The Overwrite option will overwrite existing image files in the output directory. Disabling it causes blender to skip rendering the frame if a corresponding file already exists.
Enable Placeholders in Render settings > Output for all machines.
When rendering is started on a new frame, if the Placeholders option is enabled, blender will create an empty file where the final output image will be written after the render is complete.

Then:

Open the blendfile on the first machine and start the render
Open the blendfile on the second machine and start the render

Each machine will output images to the shared output directory and skip already rendered frames because Overwrite is disabled.

Placeholders is enabled so that machines will skip rendering frames that other machines are working on at the same time.


How to have back the sound strips on top of video strips in the VSE Sound strips would always appear on top of video strips in the VSE by default in previous versions of Blender. That is not the behavior of commercial software, but for me it was OK, not only because it was useful and I like Blender to have its own personality, but also because I do not wish Blender to become kind of a free emulation of some commercial software.

Well, is there any option buried inside the Preferences menu or some other way to restore the good old behavior of having the sound strips appear above the video strips in the VSE?

BTW, GIMP should be a very good example that not emulating commercial software not only works well but also avoids potential copyright claims and all sort of future trouble. The user interface look and the way of working with Blender is gradually becoming more and more similar to commercial software. That convergence is IMHO not only disgusting but also dangerous.

No, there is not way to change it, however there is a bug in Blender which only places the first a+v clip with video on top, the next and the following, you add, will be with audio on top.


Drag vertices without pulling other faces So I have subdivided a face on a cube 9 times and I want to pull a certain area of the face backwards into the cube to make eyes. However, when I select certain vertices and bring them back, they pull the faces surrounding them back as well so they are slanted. Is there a way to only bring the faces that I selected back, so new faces are created on the side?

Thanks in advance!

It looks like what you need is the Extrude tool. Key E and then either drag an arrow or key X (in your case) for the X-axis and drag or type in a value.


User interface Scripting Issue Rigify Multiple Rigs Appended So I have created two characters in two separate blender documents. I used rigify to create a rig for both of them. I then appended both characters into the same blender document. The first character appended worked properly.  The user interface for rigify was complete with all of the animation tools built into rigify. Then I appended the second character.  The user interface script didn't work properly as the controls for the tools built into rigify were missing. How do I bring in multiple characters and have each of them have their user interface intact? There is a rig_ui.py script that was appended with each character. It seems the script runs once for the first character, then on the second append the script can't handle a second rig. How can I solve this problem?

I asked this same question on blender artist and got an answer that worked. Here is the link to that forum thread. Blender Artists Forum Solution


Compositor: File output with custom range I would like to have multiple file output nodes in my comp scene and want to render seperate ranges for each node. Is this possible ?

thank you

Create a frame change callback and drive the mute of those output nodes with script:

import bpy

def frame_change_handler(scene):
    nodes = scene.node_tree.nodes
    nodes['File Output 1'].mute = not (15 < scene.frame_current < 50)
    nodes['File Output 2'].mute = not (45 < scene.frame_current < 55)

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

Adjust the names of the nodes and the ranges like you want. You can also insert a driver to mute property in outliner dataview but such drivers on nodes do not update correctly, that's why it needs to be frame change handler.

If you need to change something in the script and want to re-run it call bpy.app.handlers.frame_change_pre.clear() in console first. Enjoy:)


Exclude feature in blender 2.82 I can't find the "Set Exclude" feature in 2.82 as shown in this answer. Did they move it, if so where is it?

The feature to exclude a collections from rendering in the view layer was called Set Exclude in the early development of Blender 2.80. At least since the release candidates it is called Exclude from View Layer and can be set by toggling the checkbox in front of the collection name.

Alternatively it can also be set through the context menu, by right-clicking on the collection and then selecting either View Layer > Disable from View Layer or View Layer > Enable in View Layer.


Packing Texture Files In a Single Blend File How do I pack texture files in a single blend file in blender cycles. I am using Sheep it Render Farm to render one of my animations and I need to make sure the texture files in this single blend file are packed so it renders with them.

Blender-> File -> External Data -> Automatically pack into .blend (click to activate) and save the file as usual. The images will be packed as part of the blend file.


Blender game engine track to a property I there any way to duplicate the action of the Edit object > Track to Actuator; so that it can track to a game property and not a object? It would be used to track multiple objects without having to list them all as separate track to actuators in the logic bricks.

blend file demo

You can only track one object at any given time, so you'll need to define a set of priorities by which a single target can be selected from a group of valid candidates (objects with the relevant property).

For example, if you wanted to track the closest object with the relevant property, you could do it with this function:

# track.py

def target_prop(cont):
    self = cont.owner
    objects = self.scene.objects

    tracked = [o for o in objects if self["target_prop"] in o]
    tracked.sort(key=lambda o: self.getDistanceTo(o))

    target, *_ = tracked

    act_track, *_ = cont.actuators
    act_track.object = target

    for act in cont.actuators:
        cont.activate(act)

Example: track_to_prop.blend

As you can see, you can specify the target property via a property on the tracking object (target_prop in this case). Also, you can set the always sensor to "true level triggering" (aka: "pulse mode"), to constantly re-evaluate the closest target, if that's required.