What's wrong with my node setup for PBR materials? I made this node setup:

To create realistic PBR rocky ground but with displacement added it looks like this:

What's wrong with my node setup and how to do it right?
I am using diffuse, normal map, roughness map and height map for displacement modifier. Allso I would like to know how can I hook displacement directly in node setup and I don't know the use of 2 first nodes in my setup (just saw them online always being attached to image texture nodes.
So
1)What's wrong with my nodes?
2)How to hook displacement into nodes?
3)Whats the purpose of Texture coordinates and mapping?

Sorry If I am asking basic stuff because I tried searching online but everywhere I find diffrent things with wierd setups full of math nodes and I don't understand witch one to trust more.
I am confused so I asked here, If this is possible duplicate please point out
Thanx!

1) What's wrong with my nodes?

There is no real reason to solely use a Diffuse shader. Virtually all materials have gloss, so you should either mix a diffuse and a gloss or use Principled BSDF.

2) How to hook displacement into nodes?

Turn on the Experimental feature set (can be found under the "Render" button). Go to your material settings and under "Settings" change from Bump to True. Then plug in your displacement map (you may need some math nodes to get a good looking result). Also consider using adaptive subdivision to ensure you have enough geometry to displace.

3) What is the purpose of Texture Coordinates and Mapping?

The texture coordinates tell your material what coordinates your textures should use—generated coordinates, the UV map, etc. The mapping node can be used to scale, rotate, or move your texture around independent of the texture coordinates.


Movie editing : VSE or compositor? Currently editing a short-movie in Blender (~11min), I did reach some limits of the VSE. Some part of the movie is black and white, and for the first time Blender began to give me "not enough colors" like a gif would do. I never had such a problem with the VSE, and hopefully for me troy_s was able to point out the limits that have the VSE, and the compositor don't.

So here comes the question.

The VSE is limited, but has a timeline. It's almost necessary for me, having to deal with 3 audio strips (4 with music, 5,6,7 ... with sounds) for each video strip. On the other hand, the compositor is much more powerful, but doesn't offer a timeline like editing softwares would. You definitively can't visualize the time of your strips, all time-depending properties would be just number, not quite easy to read and work with.

So what is the best way to manage editing of short-movies or longer movies ? Use the VSE and loosing quality and flexibility ? Use the compositor and loosing any sensation of time, trying to align audio strips without even see the waveform ? Or Blender is really limited for editing and I should learn an editing software ?

It's a very challenging set of questions. As with any set of questions, the answer depends on contexts. Once you begin looking at the issue of "quality", the solutions are quite clear. The outlines provided below have been with motion picture making since near the advent of film, and continue on to this day in many projects.

It should be noted that you should test your footage in the compositor to see if the result achieves the quality level you need based on your original question. If it doesn't, then the whole following answer may be moot.

  So what is the best way to manage editing of short-movies or longer movies?

What is outlined here is loosely what is described as an offline versus online post production process. The terms offline and online here, do not reference internet connectivity, but rather:

Terms

Offline: Sacrifice quality for performance in a context where performance is deemed more important than quality. This is typically the design context of tools that require real-time interactions, such as the needs of NLEs with editing where timing and beats is more important than precise float precision correctness.
Online: Sacrifice performance for quality in a context where quality is deemed more important than performance. This is typically the design context of tools that require float precision bitwise precise accuracy, such as the needs of compositors and grading software[1].

  Use the VSE and losing quality and flexibility? Use the compositor and losing any sensation of time, trying to align audio strips without even see the waveform? Or Blender is really limited for editing and I should learn an editing software?

The problem here is that your questions actually contain the answer. The TL;DR answer is that you should use both.

Outline

For those unfamiliar with how motion pictures typically are broken down in post production, the following is a high level summary. Animated projects have similar overlaps, but the footage is typically iterations of previsualizations. The path typically looks akin to:

Logging. Log the footage that has been shot.
Editing. Loosely can break down into Assembly, Rough Cut, Fine Cut, Final Cut. At this point the picture is considered "locked", and post production work can commence.
Post Production. Sound etc. forks off here. The outline continues to focus on the picture components. All relevant tasks now have a completed, frame accurate blueprint to work from.
Visual Effects. Work done using compositing tools on a frame by frame basis using the highest quality plausible.
Conforming. Essentially taking all of the various "bits", and assembling them back together into the final shape of the motion picture.
Grading. Grade on the final image frames.

At this point the picture can be reassembled back into the original blueprint's shape, and merged with audio, and encoded to various output encoding needs as required.

Visual Effects

So it would seem that you've managed to edit your piece. The question now becomes, how to achieve this sort of quality baseline with Blender?

Use your VSE edit as a blueprint. Sadly Blender's VSE lacks Edit Decision List support. An Edit Decision List is essentially a text file blueprint that is legible to many different applications. There are a number of formats, but essentially they all communicate the structure of an edit without passing around heavy pixels in files, allowing various softwares to reconstruct elements as required, using the precise edit timing of frames etc. So how to get a useful series of frames out of the VSE if we need to manually accomplish what EDLs are used for?

Make sure your media is using the highest quality inputs. Decoding in Blender from codecs will reduce all codecs, even at higher bit depths, to 8 bits per pixel. This is a limitation of the current system. If you decode outside of Blender using a tool such as FFMPEG, you can generate potentially highest quality sources, and then load those as still images in the VSE.
Keep tight organization on your shots. If you have a short that requires 192 shots, and 17 are visual effected, organize those 17 shots into discrete folders with subfolders of the iterations. One subfolder should hold the original archival frames, another with your compositor generated output. In the VSE, you can switch between the versions by re-linking your media to the iterated versions.
Note that where a shot overlaps another shot in your edit, you'll need to effect one, several, or all shots in the overlapped sequence individually. This will require dumping all of the frames for each shot involved in the overlapped sequence. For example, if ShotA consists of 200 frames and dissolves for 30 more into ShotB, which is 70 frames plus the 30 overlapped, you'll want to keep those shots on separate channels so you can dump the full 230 frames (200 + 30 overlap) from ShotA and the 100 (30 + 70) frames from ShotB.
Complete all per-shot visual effects.

Grading

After all visual effects are touched on, you should have an iteration of your motion picture with all archival shots in place, including the newer highest quality visual effects. You can re-link against the same strips and "reconstruct" the final picture. From there:

Keep all temporary effects and adjustments on separate layers. We are only interested in the highest quality archival frames, untouched. Use the timings and adjustment effects as part of your blueprint, perhaps via markers in your timeline.
Export all of the frames for your entire project, with black slugs in between. In the old, dark ages, folks would use junk fill on their workprints when preparing for a negative cut. This approach is similar in that it uses black frames where the current reel isn't being utilized. The key is that each reel is precisely the full length set of frames of your final work and remain perfectly in sync.
Load your picture locked set of reels into the compositor, or utilize scene breakdowns to work on smaller sections. One reel per input node.
You can then use a few mix nodes to reconstruct your edit for grading and proper linearized adjustments for grading etc.

[1] It should be noted that in rendering circles, the terminology is flipped. That is, an offline render is considered the best quality render possible.


How does the sky texture work in 2.9? I'm trying to understand how the new Nishita sky texture is supposed to work. I added it to my world shading like this:

The result in Cycles (GPU rendering), with every setting to default is this:

Everything is blown out, you can't see the sun and barely see the color of the sky.
I'm assuming the default settings of the node equate to a "normal day", clear sky, no pollution, you know, just a normal atmosphere. But I mean, that's not how the sky looks on a normal day. To get something more reasonable, I have to crank up the altitude to 11. Literally.

This is the result at altitude 11, which going by the documentation, means that I'm 11 km over the sea level. I'm basically in space. Is that how it's supposed to look? Did I miss something? I updated to 2.90 from the installer version (I was on 2.83 before), and I used the option to import the settings from 2.83. So I'm wondering if doing that might have messed up something. I couldn't find a good tutorial on how to actually use the node.

Just try makings your background strength to a 0.1 I think it’s to high by default.


ATOM : setup blender python environment in my IDE Anyone using atom here for developing blender addon etc ? How can i setup the blender environment (autocomplete, lib access etc) in Atom ? Tried to googling it but can't found any help. Some tutorial i found is for pycharm, can't find for atom.

Thanks

First of all you'll need to make sure, that Atom knows how to lint and autocomplete python-code (there should be plenty of packages to achieve that).

Test your auto-completion and package access with common packages (e.g. os). Make sure it works as desired.

If so, the only thing left to do is to get Blender into your python environment. You can either

compile Blender as a python package yourself and add it to the site-packages folder of your python installation
or use pip to install the bpy package, that should add Blender as a precompiled module (I don't know, how well it's been maintained though).


One face on the UV map is upside down I have a simple Chimney model, but when I bake AO it looks like one of the faces is upside down:

Shy is it happening and how can it be fixed?
Thank you in advance!

I would try highlighting it in the UV image editor, (if you cant isolate it in the UV window highlight it in the 3d view port and it will show in the UV window next to it,) then rotate that particular part of the UV map. If this doesn't work try a new UV unwrap with smart UV project.


Light without any Light/Environnement with EEVEE I've a weird issue with EEVEE.

Just a simple scene with a cube no light of any kind, pure black environment no A/O but still the scene is lite ...

The problem vanish when I use Cycles instead. As soon as I go back on EEVEE the issue is back.

If I open the defaut scene there is no problem at all. It comes from this specific file, can't understand the reason why.

Hope someone could help me to understand.

Thanks

I experienced the same results when I tried to create an empty night scene without any light.
Even without any light in the scene, the "False Color" View Transforms showed that the polygons were lit in EEVEE... However, the render in Cycles was completely black.
I solved my issue by pressing "Bake Indirect Lighting" then "Delete Lighting Cache" and everything became black again in EEVEE and Cycles.


Normal map creates seams I made this simple model of a ring in blender then textured it in substance painter.
And I am having an issue when I use the normal map, making the seams very obvious.
Any way to fix this?

Here is the blender project with the texture if necessary

As Sazerac mentioned, you need to set your Normal Map image to non-color space. In keeping with this, however, I would also suggest using a Math Node set to subtract instead of an Invert node (for DX to OpenGL conversion, I assume?), just to make sure things stay in non-color space, and there are no unnecessary back-and-forth conversions (as a matter of good practice). Your Roughness and Metallic maps should also be set to non-color, however, because you are using the same image for your Roughness and BaseColor, I have adapted the graph with a RGB to BW node going into the Roughness (because changing the color space of one of the images changes both, and setting both to non-color would make the BaseColor look "washed out").


Some Object changing scale in Rendered mode I'm studing Blender with Blenderguru youtube.
this is the donut in blenderguru tutorial.
in RenderMode, Donut scale is changed.
(rendering is same)
but in other mode, everything is good.
I don't understand this problem, so I ask here.
I'm sorry about my poor English.
https://drive.google.com/file/d/1trkvfdoX8v_d_AIlseS5FiR18F6aAFTX/view?usp=sharing

Please, check your "Midlevel" value on "Displacement" node in Donut material. You have "20.70". It is too high and this is the reason of your problem. Please change value to "0.0" or "0.5" and everything will be fine ;)


Mesh At Knee Does Not Bend With IK Rigging I made a blender IK rig for character that I was modeling. The knee bone bends, but the mesh does not. No matter what type of weight painting I do, the mesh doesn't bend, it just deforms and twists. I also tried rotating the pole target around, but that didn't help.

Here are some screenshots:

The bones can effect only the vertices position, it looks like your leg has only 4+4 vertices. Try subdividing it (in three different ways):

Add a subsurf modifier (upper in the modifier stack than the armature modifier)
Using the loop ring tool (shortcut Ctrl+R)
Selecting the mesh in edit mode then hitting W> Subdivide

Search the internet for typical mesh geometry for a good deforming leg and copy the topology.


Merge Vertices by Distance & Center Is there a way to merge vertices by distance and center?  Trying to turn grooves into V's.

Or maybe just an easier way to do this entirely, I've been doing it a lot lately and it's getting tedious.

I want to:

With a face, create equidistant V grooves along it.

current method:

Ctrl+r loop cut and slide
E extrude faces
tediously select each
vertex pair and merge center

Change the Pivot point to individual origins

Also. when you find yourself doing the same thing on many similar pieces, it is time to think of using instancing or arrays, so that you edit only one object and the copies are changed as well.


shape keys made from other shape keys Is it possible to make new shape keys using varying amounts of other shape keys.

For example let's say I have two shape keys one for the upper lip and one for the lower lip. Can I create a third shape key using a bit of both previously created shape keys to move both lips at once to spare time?

It's possible and easy (check image below). By adjusting value of previous keyframes, you get different mixtures of them.


Is it possible to change frame rate by interpolation in blender? I know Blender does not yet support interpolating frames using any sort of motion detection etc., but is there a simple interpolation routine that uses say alpha blending of adjacent frames to generate new frames, governed by the exact time of the new frame compared to the old frames.

The other way round, if I have footage from a high-speed camera, can I compress the source frames into less output frames using a similar blending routine, something like what games do to simulate motion blur?

For simple results the VSE has a speed control effect strip.

With your strip selected ⇧ ShiftA->Effect Strip->Speed Control, you can then adjust the rate in the properties region N. This will alter the playback speed of the specific strip in the VSE.

To adjust the entire video speed you also have the time remapping settings.


Missing Settings on Light Point Menu I am new to blender, trying to edit light and shadow parameters. I came across the following.
I had added a light point to the workspace. When I click on it (the light point object), the menu on the right-hand sidebar does not display the Light settings that I would expect.
The available settings are Transform, relations, collections, instancing, motion paths, visibility, viewport display, and custom properties.
I have looked for any light or shadow properties settings but I cannot find them.

I found them, they were just on a separate tab (withing the right-hand bar menu) instead. Which holds these properties.


How to pass command line arguments through Blender without IndexError thrown? I am trying to execute my command with two arguments in terminal:
blender -b Scripting_Testing.blend -P background_job.py -- 1 2

I have used:
import sys

try:
    index = sys.argv.index("--") + 1
except ValueError:
    index = len(sys.argv)
sys.argv = sys.argv[index:]
....
....
foot_position = sys.argv[1]
angle_movement = sys.argv[2]

(Used from Here)
I get:
IndexError: list index out of range

All the parameters before "--" (+ 1 makes it inclusive) have been skipped here. The second line overrides the sys.argv to hold only items that go after "--", which is an array of length 2 containing [1, 2].
index = sys.argv.index("--") + 1
sys.argv = sys.argv[index:]

Array indices start from 0. You are trying to access a third parameter here
angle_movement = sys.argv[2]

This causes the out of index exception.
Should be
foot_position = sys.argv[0]
angle_movement = sys.argv[1]


How can I call the active brush within my script? I am attempting to modify sculpt brush settings via a custom menu. To do this I'm setting a string property to specify the setting I wish to modify.

Since these settings are dependent on the active brush, I need to pull in the current brush via:

bpy.context.tool_settings.sculpt.brush

It seems this should work. I can confirm that it's accessing the correct brush. However, when I assign the brush context to a variable, and then call that variable within the data path it complains:

  Traceback (most recent call last):
    File "/stringProp-tool.py", line 16, in execute
  TypeError: bpy_prop_collection[key]: invalid key, must be a string or an int, not Brush

Here is my script:

import bpy

class BrushSettings(bpy.types.Operator):
    """Toggle Setting For Active Brush"""
    bl_idname = "sculpt.brush_setting"
    bl_label = "Toggle Brush Setting"

    setting = bpy.props.StringProperty()

    def execute(self, context):

        setting = self.setting
        brush = bpy.context.tool_settings.sculpt.brush

        if setting == 'use_accumulate':
            value = bpy.data.brushes[brush].use_accumulate
            print(value)
            bpy.data.brushes[brush].use_accumulate = not value
        return {"FINISHED"}

class BrushSettingsMenu(bpy.types.Menu):
    bl_label = "Brush Settings"
    bl_idname = "sculpt.brush_settings_menu"

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

        accumulate = layout.operator("sculpt.brush_setting", "Accumulate")
        accumulate.setting = 'use_accumulate'

def register():
    bpy.utils.register_class(BrushSettings)
    bpy.utils.register_class(BrushSettingsMenu)

def unregister():
    bpy.utils.unregister_class(BrushSettings)
    bpy.utils.unregister_class(BrushSettingsMenu)

if __name__ == "__main__":
    register()

    bpy.ops.wm.call_menu(name=BrushSettingsMenu.bl_idname)

The lines  giving me grief are these:

value = bpy.data.brushes[brush].use_accumulate
bpy.data.brushes[brush].use_accumulate = not value

The value you get with brush = bpy.context.tool_settings.sculpt.brush is a Brush object:

>>> type(bpy.context.tool_settings.sculpt.brush)
<class 'bpy.types.Brush'>

When you access bpy.data.brushes[brush] it expects a name string (i.e. brush.name). Instead you can simply use the brush itself:

def execute(self, context):

    setting = self.setting
    brush = bpy.context.tool_settings.sculpt.brush
    print(brush)

    if setting == 'use_accumulate':
        value = brush.use_accumulate
        print(value)
        brush.use_accumulate = not value
    return {"FINISHED"}

One more suggestion:

Use the supplied context of the operator, this is better than using bpy.context:

brush = context.tool_settings.sculpt.brush


How can I tie the Display Face Orientation to a Toggleable hotkey? I already have the... thing:

  bpy.context.space_data.overlay.show_face_orientation

This accepts a boolean value. I found this out by looking at the Info menu.

I think it's called a context attribute?

I just don't know how to set its value to True or False with a toggleable hotkey.

In 2.8x, it's simpler than that. Just open the overlays panel, right-click the Face Orientation check-box, and select 'Assign Shortcut' from the menu.


Working with bezier curve, I need to fill the hole at the end I made a rope using a bezier curve.  I then proceeded to use the bevel option to have a rope like thing, but how can I make a real mesh so that I can fill the hole (see picture). Or maybe there's an option for that.

Using a Curve Circle as Bevel Object instead the Bevel Option, you'll be able to toggle Fill Caps on.


Dirty specks in cycles animation When I try to do any animation (in cycles), it ends up with black specks. like a dirty screen that stays with the camera and moves over objects in the scene. I have tried many settings to fix this.

I think you are experiencing two things:

1: Noise due to a low number of samples.

2: A fixed noise pattern.

The fix for the first one, is increasing the number of samples.

For the second one, change the noise seed using the timer Icon. That will make each frame have a different noise pattern.


Setting enum properties across multiple interdependent enum properties in a script The Data Transfer modifier offers multiple enum properties which in the interface can be changed with clicking (exclusively sets one value and disables the others) or shift-clicking/dragging (allows to set multiple values).

This behaviour not only affects each of these enum properties on their own, but also reaches across all the other properties, unsetting previously set values in property A if values in set B are set. (To illustrate this, the next image shows the state of the modifier from the previous image after clicking on "UVs" - the values "Sharp" and "UV Seam" are unset in the other enum property)

In the interface, setting multiple values in multiple enum properties is possible through shift-clicking across them, but when scripting the same behaviour I run into a problem:

obj.modifiers["DataTransfer"].data_types_loops_uv = {"UV"}

... does what one expects, and so does - mind the different property being set here (!) ...

obj.modifiers["DataTransfer"].data_types_edges = {"SHARP_EDGE"}

... but the second line also removes the previously set "UV" value on the previous property (!) ...

Lacking shift-click in a script :) and not knowing of a way to set both data_types_loops_uv and data_types_edges in one assignment (and rather wanting to avoid working with multiple DataTransfer modifiers for each property) I am now stuck and would appreciate any help!

The problem is data_types_edges as well as the other data transfer attributes are python set objects and you are overwriting the entire set losing the previous values.

To add an element to a set, us the |= operator.

import bpy

data_transfer = bpy.context.object.modifiers["DataTransfer"]

data_transfer.data_types_edges |= {'SHARP_EDGE'}

It seems that the add() and update() function do not affect the modifier; so just use |= instead.


How can i download/install the Motion Trail-addon (svn-download)? I tried to download it on this page, but after clicking on the link next to SVN Download i was redirected to another page with 3 other links. After clicking them i was redirected to a new page with a whole bunch of new links. So i realized that i needed to install SVN (Subversion) for my Mac, but after i've done it successfully, i still don't know what to do.

How can i install this addon using Subversion or is there another way to do it?

While blender has moved it's revision control to git nearly two years ago, you can still find links to the old svn repository, even on blender's own wiki.

While blender's source code is split into four repositories and there are a few other repositories for related projects the one that most users would be interested in is the Add-ons Contrib which can now be found here, where you can also find the git command to download the entire repo. The contrib repo is a collection of semi-official addons that haven't been accepted into the official releases of blender. The old links that you find starting with projects.blender.org or svn.blender.org that have /contrib/ in the path can now be found at developer.blender.org/diffusion/BAC

Now specifically for the addon you mention, the multiple links on the page are different versions of the same addon submitted during it's review process, the addon is contained in one file, the issue you have may be from different versions conflicting or an older version loading first and preventing the new one loading. Remove the older files so that only one new version is installed.

Near the top of an addon script you will find bl_info = { followed by a list of values, the one you are interested in is "version" -

bl_info = {
    ...
    "version": (3, 1, 2),
    ...

only keep the one with the highest version.


Blender viewport no anti aliasing I have been trying to get the viewport to look smooth but my PC refuses to apply any anti aliasing.
Because of this, I have great difficulty working on my models.

Here is what it looks like,

Here are my settings

What can I do ?

Thanks in advance.

@Osian Sodenkamp's tip worked in my case. You have to disable screen-space ambient occlusion in the display options panel (hidden under N key). I'd never find it out if it weren't for Osian's comment!


I want to change default settings of '2d animation' I made a new '2d animation' file with ctrl+n and default setting looks like above picture.
I want to change color and size of white panel and color of background.
How can I do it?

Color 2 is the world color.

You can set the size of the camera canvas in the render resolution panel (and then use scroll wheel or Ctrl + Middle Mouse Button to scale the view in the 3d window).

Color 1 is a viewport matte with transparency, it can be set going in object mode, selecting the camera, and varying its "passepartout" value.

Then you can go to the file menu, defaults, save startup file, to mantain your settings in any new project.


Animation nodes to shader nodes Can I use Numbers List to cycles materialoutput node in animation nodes?
I want to use numbers list to many objects which I made in Object Instancer node.

As stated in https://blender.stackexchange.com/a/168589/86891, you have to access a specific object's property in order to change each individual object if they share the same material. Each object has a few specific properties : Render pass index, viewport color, etc.

But you don't have to use the Animation Nodes for this since the shader nodes contains a "Random" -per object info which will act exactly as what you want to achieve.

However if you really want to use AN, use this setup in your shader :

And in your AN tree :


How to make a round point or a rounder point in this case, where edges come together and join into one vertex? I would like to ask how to make a round point or rounder point in this case. Sorry I am a complete beginner and tried with the bevel and loop cut tool (loop cut did not work at all), the subdivision surface modifier only worked on the whole object. The object also already has an applied mirror modifier. Thank you so much for answering in case you do.

Yoy cannot round 1 vertex.
You need to add more geometry.

Nothing in the real world is perfectly pointy, so use a face, instead of one vertex.
By scaling it you can make it more or less pointy.

You can use the subdivision modifier to smooth out the whole object.

Or use bevel to only smooth out the rim.


How can I render edges? I want to render this creature:

The problem is that it is made out of edges, is there a way to somehow render these edges?

thanks.

Add a skin modifier which adds geometry to the mesh.

The image below shows two mesh objects one with the modifier visible and the selected mesh has modifier not visible comparison.

The image belows the skin close to the edges (skinnier).

To achieve this in edit mode use the keystroke Ctrl+a and move the mouse.


How to create a scene for rendering? I modeled some earrings and want to render them now. Any tips on how to achieve this type of scene (earrings laying on a fabric/cloth)? I've tried adding a cloth made in Marvelous Designer and made the earrings fall down onto it, which didn't really work as they either fell through or floated above. I'm new to physics and stuff in blender, thank you.

I would suggest not relying on the physics engine at all and instead place them manually.  Just like an actual jewler, they wouldn't repeatedly throw jewlery down until it looked just right, they would place them exactly where they want them.  It sounds like a good exercise in using the rotation axis shortcuts!
x
y
z


Protecting a mesh from accidental edits When doing animations most of the vast power of Blender is wasted due to being counter-productive. For example, if you want to move some vertices and accidentally type F instead of G you may not get any visual indication of the problem you have created because it could be entirely internal to the mesh. If you press Y at the appropriate time it will lock a transformation onto the Y axis, but if you accidentally press Y at the wrong time it will invisibly break your mesh.

The question is: if you know for a fact that the edges, vertices, and faces of a mesh are all exactly connected in the right way, what is the best practice to prevent those things from accidentally changing? To be clear, I don't want to disable these operators in such a way that it is troublesome to enable them. I just want to disable them while I'm animating. A way to quickly turn mesh editing on and off would be ideal. I also don't want to completely disable editing of any particular object, because that would prevent me from animating the vertices of the object and creating shape keys. I just want the appropriate operators to be available at the appropriate times based on my current task.

Unless there is some feature of Blender that I am missing, I suspect that the solution will be along the lines of this answer: Prevent (accidental) deletion of object. There we register a class with the bl_idname of an existing operator to replace that operator with a safer version. In my case I would want to somehow preserve the original operators so we can call them when it is safe rather than attempting to replicate their behavior. Ideally we would have it so that we just create a list of operator names and a for-loop can handle registration and overriding of each listed operator.

yes, make the mesh a group and put the original on a different layer.

Then create a group instance on the layer you want to make the edits and move it to be right over the armature.

Now you animate without being able to go into edit mode because its a group instance.

And if you want to edit the mesh in edit mode, you can edit the original and all group instances get updated automatically.


How to get transparent iridescence using Cycles? I've succeeded getting iridescent with this Cycles node setup:

Physical iridescence in Cycles?

This did the job, however I need a transparent/clear iridescence like this

So I tried plugging the final output into a mix shader between Glass BDSF and transparent. However this still produces a black, barely iridescent material.

How can I get the results below from what I have? I don't want to use code but rather stay with nodes

Don't Mix but Add your Shader to a Transparent BSDF. You may also want to multiply the Emission strength by some value less than 1: (in red my changes to Mentalist's version):

The result:


WIll Blender 2.8 run on Intel HD 4000 Graphics Card? I recently downloaded blender 2.8 and when I opened it it says that it needs a graphics card which supports opengl 3.3 and i have intel hd 4000 graphics card in my laptop.....so my question is that will it run on my laptop??

Short answer: yes. According to this article, the HD Graphics 4000 card supports OpenGL 4.0. Try updating your drivers. Otherwise, your issue is not with OpenGL.


Create Seamlessly Looping Animated Displacements How would one create an animated displacement that could loop seamlessly? In other words, the end of the animation needs to be able to loop to the beginning without a noticeable skip or jump.

The below GIF demonstrates my problem:

See how you can tell when it's transitioning between the last and first frames? That's what I want to avoid.

The method I used to make that animation was to displace a sphere of liquid with a turbulence force field. I am going to assume that it's not possible to create the effect I'm looking for with that approach, and so long as it creates a similar visaual look as the above animation, any methods are good.

In other words, I don't care wether or not I stick to a fluid simulation, so anything works even if it uses shape keys or scripting instead of a turbulence field with a fluid sim.

Thanks in advance!!

You generate the displacement mathematically by combining multiple Sine waves at different amplitudes, frequencies and orientations. By carefully selecting the frequencies of the waves you can ensure that they all coincide at the start/end so that the animation can be looped.

Here's the result :

This is produced by the following material :

This looks complicated but look closely and you'll see that it is actually made up of 5 virtually identical sets of nodes - to combine 5 waves.

Here the coordinates (adjusted to move the origin to (0.5,0.5) by the Subtract RGB node) are passed through a Mapping node so as to rotate them by a variable amount and this is then separated into its X coordinate (since we only need a linear value per wave). This is then passed through a Multiply node to set the frequency of each 'wave', with the multiplier for each being set to a multiple of 2*pi - this is what ensures the animation will loop correctly. This used to drive the Sine function and scaled by variable amounts (so the different waves have different influences) before being added together and passed to the displacement. The Value node varies the offset between 0.0 (on frame 1) to 1.0 on frame 51, with the animation running from frame 1 to 50 (since 51 should be identical to 1) - ensure to use Linear interpolation on your f-curve for the keyframed Value node.

Play around with the Mapping node orientations and the multipliers (for amplitude and frequency - but keeping the frequencies as multiples of 2*pi!) until you get suitably pleasing results.

Blend file included


How to bend a sinusoid into a circle in Sverchok? What's the best way in Sverchok to create a circular sinusoid, like I drew here with the grease pencil?

I can imagine one one:

1) displace the circle vertices along their normal; or
2) generate a sin curve and wrap it around an origin point

Or maybe there is a third way? Is one of these methods preferable, or more generically useful, from a Sverchok perspective? What would the node setup be?

use simple translate node and x+1 hack to fit vertices


How do you make an animated mist / smoke with lights that go through it and interact with it? I want to do a small patch of mist or smoke, and have lights go through it and light it up, in an animation.

I've seen the mist option directly in the interface, but as far I know it creates mist that doesn't interact with light.

I've seen the volumetric scattering in the compositor, which give great results, but you can only apply it to the entire scene to the best of my knowledge. I want it to be in particular area.

How would you go about that?

Here's an example :

http://il5.picdn.net/shutterstock/videos/15120553/thumb/1.jpg

You see the different lights affect the smoke / mist just like in real life, and some of the light goes through it.

Final result:

First thoughts:
This is pretty complex setup and very demanding for the hardware. It's made using Cycles. You should have some knowledge in such fields as:

creating smoke,
setting up materials,
render layers,
basic compositing.

Final result is made with low settings.
Scene setup:
First of all we need to setup up our scene.

Crank up Volume Light Paths. I've used 4. Higher values gives you better light scattering trough smoke. This step is essential for the whole thing.

Make Environment color black, or whatever you need in your case.

Object setup:
In my scene I've used two Ngon filled Circles, one for the light, and second for the Smoke Flow. One Empty for Force Field. Cube for Smoke Domain.

Light:
Small Circle behind Smoke Domain with Emission shader. It could be Sphere or anything else.
This is node setup I've used for it:

Smoke Flow:
Again it's Circle, and again you can use different object. If you for example want to have really dense smoke, you can use Sphere for it.
Note 1: Remember to turn off view and render of this mesh in Outliner or assign to it Transparent Shader!
Set Temp Diff. really low to keep smoke in place. In this case it's 0.01.
Note 2: Denser smoke will need higher Volume Light Paths and/or smaller smoke material density (we will get to it).

Smoke Domain:
This is two step process.
1. Smoke Domain setup:
Nothing special here. Only Noise Method is worth mentioning, lower setting will give you smoother smoke.

2. Smoke Domain material:
This is almost default material after using Quick Smoke, with addition of Brightness/Contrast node, which gives us harder and wither feel. Also default density value is decreased (this is connected to Smoke Flow Note 1 from above).

Force Field:
To make some smoke movement I've used Force Field > Turbulence. I like to stop smoke flow then move it by a force in such cases. Force field is assigned to an Empty.

Render Layers and Composite:
To make some light blur and streaks you will need to move light emitter to another layer.
In this case I've moved my light mesh to second layer and kept other object on first layer then made two Render Layers. First Smoke, which is rendering first layer, and second - Light which is rendering second layer.

After final rendering, go to Composite nodes and make this setup. This is just blurred out light with streaks and gamma correction of smoke and light.

Final thoughts:
As I said at the beginning, this isn't easy if you're new to Blender. You can find any information related to techniques used here or you can just ask me and I will extend this as needed.
You need to have in mind that values used in this particular setup will vary in any other. Things like density, emission strength, smoke resolution, volume light paths etc. could be much different then these.
Check my blend file. Load it, check it, quick rewrite it.
Blend file:

Edit:
You need to use for this filmic-blender. You should always use it.


BGE: Create a sight system for an enemy What I want to do here is create a system where an enemy object has some kind of "sight", as in the enemy can detect a player object when the player object comes in its field of view. I am currently thinking of the following two ways:

A spotlight that is parented to the enemy object acts as it's field of view.
The enemy object casts multiple rays, with each ray being 5 degrees away from the previous one, creating an isosceles triangle of some sorts with rays between it.

The first method is problematic, and I do not know how to go about with the second method. How can I go about implementing it? Also, is there another way of doing the same that is better than the two methods listed above? If so, please do mention it.

Because the radar sensor finds all objects within its distance cone, it will return all objects, even ones hidden behind others.
To find only the "visible" objects, I'm checking that a ray can go from the radar object (the object with the Radar sensor logic) to each of the detected objects with rayCastTo.

This script loops through all the objects that the Radar sensor detects, and casts a ray to each of the objects. (Think of it as shining a laser   towards each of the detected objects, if the laser hits the object then the radar object can see it, if some other object is in the way, then it is blocked and it is hidden.)

import bge

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

radar = cont.sensors["Radar"]

for obj in radar.hitObjectList:
    if obj is own.rayCastTo(obj, radar.distance):
        print(obj)

Line 9 is where the magic happens: own.rayCastTo(obj, radar.distance):.
That function starts the ray at the radar object, own. Then the first argument obj is the object that the ray is pointing towards. The last argument radar.distance is how long the ray will be, here I am using the distance set in the radar sensor, so the two will always be the same length.

All you need to do is connect this script to a Radar Sensor as shown below.


How can I create a circle that contains two existing vertices? Okay there are 2 verticies and one ellipse loop of edges. I want to make new loop containing these 2 verticies as shown. What is the best way of doing this?

The difficulty here lies in the fact that it no longer seems to be a circular path, it seems to be elliptical and slanted.

Anyway you could probably achieve this easily by basic Extrude/Scale workflow using your already drawn profile as snapping guide.

Just select your last edge loop, press E to extrude, Z to restrict to the Z axis and then snap it to the first vertex of the guide.

To snap activate snapping to vertex in the 3d view header switch to Vertex Snap mode, and then press Ctrl during transform.

Afterwards press S to scale Shift + Z to scale only in XY plane and then snap again to said vertex.

Repeat these steps until the complete shape is done.

In the end you may want to remove doubles to clean up the geometry by selecting all and pressing W > Remove Doubles


Fire does not show in final render I made a campfire, but when I render it the fire does not show in the rendered image. I've put all the textures and the .blend in a Google Drive link.

Thank you,
Andrew

Were you hoping for something more like the following (frame 8)?

If you were, you needed to change the material, Material, from a Transparent BSDF to the following node setup. This is pulled from the Vfx Blender's YouTube video, How to kick a Fireball (blender tutorial) [HD] part 1.

As I understand it, it uses the Attribute nodes to determine what part of the cube's volume is smoke and what is fire. The ColorRamp obviously colors the fire, and the Math > Multiply node set to 9.000 determines how transparent the fire is (0 being clear). The Math > Multiply node set to 7.500 determines how transparent the smoke is (0 being clear).

Here is the adjusted .blend file (w/o textures because they didn't come through Google Drive):


is there a way to copy part of pose into another pose I have a not-perfect walkcykle, but in the proces I made a mistake on one bone. I do have a copy of each step I made, therefore I have a walkcykle, which have this bone seved corectly and the other bones are not. is there a way how to combine these two poses?

This is old, but the answer will help other people with the same question.

Yes, you can copy part of a pose into another pose. The armatures must be identical. The best way is to create a pose library and save both poses.

Select the pose from which you'll copy a part and go into pose mode.
Select the bones to be copied.
Tip: Hold Ctrl when selecting a parent bone and you'll select all the children.
Ctrl+C or Pose > Copy pose.
Now switch to the pose to be modified. Still in pose mode, Ctrl+V go
to Pose > Paste Pose.


Do I have to setup everything again after update? I've got Blender version 2.68a and I'd like to update it, but I'm afraid that all of my setup will be deleted and I will have to set it again... Is there some way to keep all this stuff when I will be updating?

Tnaks for help.

Starting at 2.52 blender started saving it's startup.blend file in a new folder for every version. When you first run a new version of blender it sees that there is no startup.blend for it and looks for the previous version then gives you an option to copy the previous settings. I think this may only look for one or two previous versions, so if you update from 2.63 to 2.70 you may not get this option.

This manual page describes the locations that the startup.blend can be found. You can easily find the current startup.blend (and userpref.blend) and delete it so that you will get the option to copy previous settings. You could also locate an older startup.blend file and copy that to the new version folder.

On linux, the folder is located at ~/.config/blender/

On OSX, the folder is located at /Users/{user}/Library/Application Support/Blender/

On Windows, the folder is located at C:\Documents and Settings\{username}\AppData\Roaming\Blender Foundation\Blender\


NURBS trimming, blend surfaces I'm exploring Blender's NURBS functionality. So far, I've been able to define two curves and create a NURBS surface between them.

Does Blender support more advanced NURBS features like trimming and blend surfaces?

It's fine if the interface is still lacking. If the functionality is available at all, I'll probably want to use it.

FWIW, I'm interested in NURBS because I do a lot of mechanical modeling. Meshes work for that, but NURBS are a much cleaner way to model a lot of man-made objects.

This functionality was recently being worked on as part of GSOC 2014. You can view the results of the project here.

It has not yet been merged into master, but you can compile it yourself (the branch can be found here).


How to make just one color of my texture bright (like as metallic)? I am modeling an object that has a label. The label I applied as a texture (a single image), and made an unwrap normally, as follows the render below.

However, I need the yellow part of this texture to have a shine (as metallic), just like the real product (as follows the photos on links below).

http://queensberry.ind.br/wp-content/uploads/2019/12/gourmet-pimenta-suave-_prancheta-1.jpg .
http://queensberry.ind.br/wp-content/uploads/2019/12/gourmet-menta-com-hortela_prancheta-1.jpg .
http://queensberry.ind.br/wp-content/uploads/2019/12/gourmet-pimenta-vermelha_prancheta-1.jpg

How can I make only the yellow parts of my texture (label) emit this glow effect? I am modeling and texturing using Blender 2.81.

Can someone help me with this task please?

I am using only one image to texture the label. Do I need a second image with only the yellow parts to do this?

Thanks in advance!!!

You can use color to determine your mentalist mask:

I use a distance vector math node, which tell blender to find the color in that image, with RGB (1.0, 1.0 ,0.0)(which is yellow).

And then continue with a compare node to see if color is yellow with some ambiguity.

(the second value is compared value, set to 0.0 means same color. the third one is tolerance, change it yourself to see the effect)

Using this mask, you can do a lot of thing with it, you can change the metallic value using this mask and invert it to make it look like mirror in roughness setting.

More complicated setting:


How to remove/blur the texture seam? I have unwrapped my mesh (using the seam placed in the center). I have scaled the object and applied transformations (Ctrl+A) . After applying the texture and unwrapping there is a partition edge between the texture. How to remove that edge partition or what wrong am I doing with the unwrap? The texture I've applied is 256x256. Do I need a larger size image? It looks dull and not sharp like the original.

You have to use a higher resolution texture (256X256 is really small) and hide the seams using texture paint brushes. Here's the result which uses the higher resolution texture and corrective brushes.

To get rid of the seam use a Clone brush in a Texture Paint mode. Press Ctrl+LMB to place the cursor in the area you want to clone and then LMB to paint.

Use a Smear brush to blur the texture and hide the seams/imperfections.

NOTE: Don't forget to save your painted texture in the UV Editor!

Here's the corrected .blend:


How to get bone location on each frame and print it 2.8 I wanted to know in each frame a specific bone location by name. The difficulty laid on getting the bone position from the pose array.

scene.frame_set(f)

is very performance-hungry to do in the script for each frame. I'd suggest reading the data of evaluated FCurves for bones directly.

E.g. this will evaluate the FCurve Y value at frame 7. For exporting animation, you only need to evaluate keyframes.

object.animation_data.action.fcurves[1].evaluate(7)


Edit Mode Crosshair Cursor Invisible in 4K resolution --Conditions;

I am unable to use a smaller resolution than 4K due to an odd hardware issue.

I am using Windows 10.

Issue only appears is select mouse environments (not limited to Blender.)

Windows UI scalling is applied.

The 'scaling override' in 'compatibility' has already been toggled and experimented with.

Blender's internal DPI scaling does not solve the issue.

Blender's 'Big Cursor' option does not solve the issue.

--The problem;

Due to an odd hardware limitation I'm forced to use an extreme DPI that seems to be generally poorly supported. As a result the normally easily distinguishable cursor in edit mode completely fades into mesh when it hovers over it. I have all Windows tools for UI scaling applied, which works for the most part. But in certain conditions, some elements reverse back to their true 4k resolution, among which the Blender Edit mode cursor.

https://www.dropbox.com/s/w1bkrzzt9vdnv9r/HollowCursor.gif?dl=0

Are there any manual ways to increase the size or its colours to be more visible? Other potential solutions would of course also be appreciated. I'm a bit at wits end with this issue.

Thank you in advance.

This is the culprit:

wm_cursors.c:
#ifdef _WIN32
/* the default win32 cross cursor is barely visible,
* only 1 pixel thick, use another one instead */
if (curs == CURSOR_EDIT)
curs = BC_CROSSCURSOR;
#else

I downloaded the source code and compiled blender myself to remove this. This way it uses windows's default precision cursor which you can change to whatever you want.


Automatic division of a Bezier curve with a given ratios I use a curve that serves as the cross section of a ring. Since I want to make not only solid coloured rings, but also 2 and 3 color rings, I want to divide the curve. However, I currently do this manually (ratios: 3: 1; 1: 4: 1; 1: 2: 1; etc., taking care of the dimensions). But with different types of cross sections, I would have to create it quite often and in several ways, which is a time consuming process.
E.g The following image shows what I would like to achieve.

So to do this, I want to ask for help on how to speed up creation instead of manual splitting.
Thank you in advance for your help!

Curve Tools addon provides a multi subdivide tool that may help.
Under user preferences make sure Add Curve: Curve Tools addon is enabled.
In the Edit tab of the 3D View side bar there in the Curve Edit panel there is a Multisubdivide button.
It takes as parameters the percentage of curve segment length you want to place cuts at separated by spaces. For your example at $1:3:1$ you'd have five parts with $0.2$ factor so you need two cuts at 0.2 0.8.
Beware this will measure length along the segment curvature, not in a straight line along an orthogonal axis.


How to separate array objects? I made 5 array objects, apply array modifier and then got 1 object.

How to separate this 1 object into 5 individual pieces in one step?

Go into the editmode, select all vertices and press P: By Loose Parts
Blender splits all unconnected vertices into an object


Create a cycles material from rendered picture I managed to delete a really neat blender file, and the only thing left is this rendered picture, which I made off the file before deleting it:

I REALLY loved the colors, materials and lighting, and ever since I deleted the file, I have been trying to recreate the materials on the floor and cube. I managed to dig up an older auto-save file, with the right objects (without the light sources or materials) and ever since I have attempted to recreate this, now I've pulled off every material BUT the glossy purple floor! I have a vague idea that I used a Mix shader, but I simply can't make it right. What bothers me most is the reflection of the light source in the original, compared to the one I have tried:

How did I pull off such a sharp edge, while still keeping some blurriness? I have no idea whatsoever.

How do I recreate the material for the floor?

If you wanna see for yourself, here's where you can download the file right here

Something like this?

Or with mix nodes

I moved your light meshes a bit to fit the ref image and also changed the background from 2 to 1 to get darker shadows.


How to increase camera frames view area? The Camera view area is so small (see picture). How can I increase it?

To make the camera view fit the window press the Home key
(This works even when the camera is in locked to view mode).

If the camera is not locked to view, using the mouse scroll wheel (Or Numpad + and  Numpad - or Ctrl+ and Ctrl-) will make the camera view larger (or smaller) on the screen.


Is it possible to make the image appear in the order of object number https://www.youtube.com/watch?v=j5jUoLAXmCA&feature=youtu.be

This is a video of the Eiffel Tower that I made to appear by designating a frame myself.
but I want to frame automatically in the order of object number or creation so that they appear in the video.
So, I want to make a video that appears in order, one by one, block by block like the Minecraft building videos.
Is there a way to use an animation node or another way?

I thought at first about achieving this using Drivers but it's too difficult to clone the driver to each object visibility without resorting to scripting - so I figured why not just use scripting anyway.
I'll vary by height as it's simpler - but you could tweak the code to change the order of visibility to use some other property (could assign a property to each object or use the position in the list of objects (which will relate to the order of creation).
Start by creating a new Scene custom property named 'Height' and set it to be able to vary over a suitable range - this should be keyframed to reveal the objects.

Next, open a Text Editor window and paste the following code in a new text block named 'hideshow.py' :
#Hide objects above some threshold
import bpy

def frame_change_hideshow_objects(scene):
    height = bpy.context.scene["Height"]
    for obj in bpy.data.objects:
        if obj.location[2] > height:
            if obj.hide_viewport != True:
                obj.hide_viewport = True
                obj.hide_render = True
        else:
            if obj.hide_viewport != False:
                obj.hide_viewport = False
                obj.hide_render = False

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

Click the 'Run' button (a 'play' button in the header) to execute the code and it will install a “handler” to run on each frame change. Each time it runs it compares the value of the scene property ‘Height’ with the Z coordinate of each object in turn, flipping the visibility based on the height if it has changed.
Now keyframe the new 'Height' scene property to vary over your range. Play the animation and your objects will show/hide based on whether they are above or below the 'Height' :

In order to use the image id instead of Height, rename the scene property to something appropriate (eg, 'RevealID') and amend the code to compare that with the point in the list of each object (ie, the number of times around the loop) :
#Hide objects above some threshold
import bpy

def frame_change_hideshow_objects(scene):
    revealId = bpy.context.scene["RevealID"]
    objcount = 0
    for obj in bpy.data.objects:
        objcount+=1
        if objcount > revealId:
            if obj.hide_viewport != True:
                obj.hide_viewport = True
                obj.hide_render = True
        else:
            if obj.hide_viewport != False:
                obj.hide_viewport = False
                obj.hide_render = False

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

In my example this produced the following result. Note that the objects were created using 'Grid fill' particles so they are created in an uncontrolled sequence (this is why basing on height was simpler!!) :

For better results you would need to take more care in the creation order of the objects than I did - or re-sequence the objects in some way. Alternatively, use a method of revealing the objects that isn't based on the creation order such as by height as described above, by amending the code.


Moving uv's between 0-1 space I would like to move my uv exacly one uv screen space to right. I need it for clean bake without gradiends. This is common trick used in 3ds max. How to achive it in blender?
I was pressing x and 1 but it looks like it does not work. (one uv is about 277.345 units)

In UV Editor open N-panel (N key) and enable Normalized


Problems with Bool Tools difference I am having issues regarding the Bool Tool stuff, more specifically the Auto Boolean difference tool. Whenever I attempt to use the tool between two objects, it gives me a Traceback error. Here's a screenshot:

I am somewhat new to Blender, and I had to install Bool Tools manually (it did not appear in the user settings menu).

I found out my problem. The Bool Tool Blender Wiki article has the wrong link. Go to the Github dl here: https://www.blendernation.com/2014/05/14/add-on-booltool/
Then download the .rar
Optionally, after downloading the .rar move to whatever folder you want.
Open with 7zip or a program that can open .rar files, and move the BoolTools.py into the folder.
Open Blender, go to User Preferences, addons, and install from file. Go to where you have BoolTools.py and select that to be installed from file. Enable it by checking the black box on the side. That should work for you, as it worked from me.

Sorry for my stupidity, I am rather new to Blender.


What is the format for object names in Blender and are there any limitations? I've been using Blender on and off for a little while and have recently started trying to use it more for exporting FBX models for use in games. One of the problems I've hit is that I'm not quite sure what the object naming format is and if there are limitations.

Are there any characters I can't use in an object name?
What is the maximum name length (if any)?
Is it possible to have multiple objects with the same name?

Any ID name (objects, but also materials, textures, etc.) are limited to 63 bytes - since they are encoded with utf-8, it means 63 chars for basic latin alphabet, but any special character (fancy diacritics, non-latin alphabets) will use two bytes or more.

So to answer your specific points:

No, you can use any char you want.
At best, your name can be 63 char length, less if you use fancy chars.
No, each name must be unique in a given ID type (i.e. if you have a Cube object and try to name another one the same, it will be automatically changed to Cube.001). However, you may have e.g. a material, object and texture with the same names.


How do I create a smooth slope to join 2 planes of different elevation? I'm trying to model a slope to connect 2 different planes together as shown here, but I'm not sure how to do it. I've tried using the sculpt tool but it did not give me the desired effect. This is what I want the slope to look like. How should I go about modelling this?

To create such a slope is fairly simple.
Create a row of verities at the top and bottom of the slope. Make sure that the rows have the same amount of verities. Then you can bridge the gap.

If you want to create a bulge/indent, add a few edge loops running down the slope. next using proportional editing o, drag the center edge loop up or down. Using these techniques you can mold you slope. I would recommend sculpting for fine tuning.


How to move a movieclip in composition I have a composition of two videos. I used keying nodes, movieclip and alpha over. The video 1 is a loop that I will use as a background with dimensions of 1280x720.
The video 2 is a video with chromakey of 640x640.
I have composed them, but I would like that the video2 could have a transfer animation from the left side to the right side from frame 0 to frame 200. Is it possible to make that?

Use a Transform node (Add > Distort > Transform) and animate the values for X (horizontal)


Can installed scripts cause conflicts with each other? I'm currently adding functionality to a Python script for working with custom normals, and I will share the updated script for other Blender users when I'm done.

I'm aware that there are several other Python scripts available with some similar functionality, and I was wondering if it is possible for two scripts to conflict with each other in any way. For example, if my script contains an operator called 'mesh.face_weighted_normals' and another script also contains an operator with the same name, will this cause errors for users with both scripts enabled?

Are there any other kinds of conflicts, and are there guidelines for naming publicly exposed parts of custom scripts to avoid causing problems for users? Should I prefix the operator and/or class names in my script with something to help avoid conflicts?

Yes, two add-ons defining the same operator will “conflict” - in that the latest registering one will override any previous registration. The same goes for other registrable classes (panels, menus, UILists, etc.).

Note that add-ons can even override Blender's own operators, menus etc. that way (though this is totally not recommended).

Prefixing classes' IDs with something related to your add-on is the best way to go.


How to disable checkered alpha pattern in Viewport? There are of course times when we want our renders to have transparent backgrounds. And there's a setting for that.

In 2.79 and earlier, this didn't affect the appearance of the Viewport. But now it does, in a way that is making it difficult for me to make out the grid.

Is there a way to disable this pattern in the Viewport while leaving background transparency enabled?

One option, as Jachym Michal pointed out, is to adjust the color of the checkerboard to match the one from the background. This answer is meant to provide more detailed instructions in case somebody else wants to try this approach but doesn't find the theme settings. Please note that this will adjust the look of the transparent checkerboard pattern in all areas of Blender.
The background color for the 3D View in the default theme is #393939 (gamma corrected). This value can be found in the theme preferences (Edit > Preferences > Themes) under the name Gradient High/Off (3D Viewport > Theme Space > Gradient Colors).
The color settings for the checkboard pattern can be found in User Interface > Transparent Checkerboard and are called Primary Color and Secondary Color. Setting both of these to #393939 will make it indistinguishable from the regular background.


curve extrusion doesn't work anymore Not sure what I've done, but I am unable to undo it. When I extrude the curve, it summons a white dot instead of adding a joint curve.

I am not sure where I did wrong here.

You must have accidentally pressed H (hide), it has hidden the last extrusion, and when you try to do a new extrusion, as one already exists, it just creates a single vertex. So try to press altH.


How to render a 30K image with cycles? I have to render an image of 27000 x 7000 for a 150dpi print. The scene is quite big, but cycles preview and a render in 2700x7000 works as expected.

If I hit render my memory raises up to 20gb, but my cpu usage is at 5%. Why cycles does not using the full cpu power during the render process?

Here are my rendersettings:

Pathtracing
Samples:3000
Tilesize: 64x64
Bounces: Max 12 | Min 3
Diffuse: 4
Glossy: 4
Transmission: 12
Volume: 1

Is there a way to optimize things?

With very large image resolutions Blender can run out of RAM. The operating system will then start using the hard disk for memory which is slow and will cause low CPU usage (swapping).

To reduce memory usage for very high resolution renders:

Enable Save Buffers in the Performance panel so Blender does not keep the full render in memory during render
Render from the command line so no display buffer must be kept in memory
Output to an OpenEXR file so one tile can be written at a time


how to join two Navigation mesh? I have an existing navigation mesh and that works fine with steering actuator. Now there is a need to extend the current navigation mesh and join another navigation mesh of certain length.

Please have a look at the attached screenshot, in the first screenshot, as I have shown I tried using 'Object Join' but that just destroys my navigation mesh(2). The individual cells of the navigation mesh(2) merges to one big cell, which I dont want.

As shown in the second screenshot, as I have shown, if I could merge the extreme cells of both the navigation mesh then may be the cells of each navigation mesh are retained.

Please help me to achieve this. Thanks in advance !

You need to select both of the meshes and select join from the lefthand Tools->Edit->join area.

Once you have done that then you click on the physics tab on the right and select NavMesh Reset Index Values.

if you find you need to join two nav mesh's you probably need to go through and select all your objects, hit CTRL + A and select location, rotation, and scale for all your objects, then rerun the nav mesh generator, it should fix your issues and you won't need to join meshs.


Set the Rotation (in Quaternion WXZY which is calculated by two vectors) of a bone using API 2.7.9 Details of the problem：

I already have two vectors A and B (A is converted to B by a certain rotation), and I can now calculate the quaternion of its rotation. Also insert a bone in the blender so that its coordinates are A, and rotate the bone using the quaternion obtained. In theory, the rotated bone coordinates should be B, but it is not. I don't know where I am wrong at the moment? The following is a specific example of my operation.

First, I inserted a single-segment bone with a length of 1 and the direction that is in the same direction as the positive z-axis.
object_name = Armature, bone_name = Bone.

>>> bpy.data.objects['Armature'].pose.bones['Bone'].head
Vector((0.0, 0.0, 0.0))
>>> bpy.data.objects['Armature'].pose.bones['Bone'].tail
Vector((0.0, 0.0, 1.0))
>>> bpy.data.objects['Armature'].pose.bones['Bone'].rotation_quaternion
Quaternion((1.0, 0.0, 0.0, 0.0))

Then, I find that the quaternion between (0,0,1) and (√3/3,√3/3,√3/3) is (0.8881, -0.3251, 0.3251, 0). Next, calling Blender's API to rotate the bone.

>>>bpy.data.objects['Armature'].pose.bones['Bone'].rotation_quaternion = mathutils.Quaternion((0.8881, -0.3251, 0.3251, 0))

However, the coordinates after the bone is rotated are not (√3/3, √3/3, √3/3), and the following is the bone information after the rotation.

>>> bpy.data.objects['Armature'].pose.bones['Bone'].head
Vector((0.0, 0.0, 0.0))
>>> bpy.data.objects['Armature'].pose.bones['Bone'].tail
Vector((-0.21132488548755646, 0.5773503184318542, 0.7886751294136047))
>>> bpy.data.objects['Armature'].pose.bones['Bone'].rotation_quaternion
Quaternion((0.8880738615989685, -0.32505759596824646, 0.32505759596824646, 0.0))

It can be seen that the quaternion has been successfully passed in but the coordinates of the bone are not the desired coordinates.

I don't know where I am doing wrong or what I understand wrong.

There is a problem that is very similar to my question, but he does not mention whether the rotated bones match the expected look. In fact, I think the two respondents to this question may be able to solve my problem, but I don't know how to contact them.
Set the Rotation (in Quaternion WXZY) of a bone using API 2.49

Apply the rotation

Apply the  rotational difference between to vectors to the pose bone, rather than setting the pose bones rotation with it.

The rot diff has an axis and angle.  Applying the rotation rotates the pose bone, which in this case is angle 54.7 degrees about  axis (-1, 1, 0).

Think of it like the rotation from 12 o'clock to 3 o'clock on a clockface, is 90 degrees about the axis of the hands. Applying to hand at 12 o'clock moves to 3 o'clock. Applying again from 3 to 6 o'clock and so on.

import bpy
from mathutils import Vector

up = Vector((0, 0, 1))
dest = Vector((1, 1, 1))

R = up.rotation_difference(dest).to_matrix().to_4x4()

pb = bpy.context.active_pose_bone
pb.matrix = R * pb.matrix
pb.matrix = R @ pb.matrix #  2.8

To set the bone absolutely from the vector, can use Vector.track_to_quat(to, up)  For bones track to the 'Y' axis, along the bone.  I have arbitrarily chosen 'Z" as up.

>>> v = Vector((1, 1, 1))
>>> q = v.to_track_quat('Y', 'Z')
>>> C.active_pose_bone.rotation_quaternion = q
>>> x = C.active_pose_bone.tail.x
>>> x * x
0.33333332136784577


Smooth shading disappears in render view I'm making this object :

And as you can see, it has smooth shading. However, when I go to render view :

The smooth shading disappears. The only modifier I'm using is a Bevel modifier and I have Auto Smooth on, but I tried disabling both and none seem to have an effect on the issue. The smooth shading is applied on all faces. When I switch to Eevee, the smooth shading is applied. This is very weird. Please tell me if you think you have an idea what could cause this. Thanks by advance !

Worked it out ! It had to do with the material that I had copied from elsewhere, it had a normal map and that somehow messed up the display. I still have a problem with the bevel modifier but I can live with that.


Rotating skirt effect, possible with cloth simulation? I wonder if the rotating skirt effect is possible with cloth simulation.

I tried that and from the 100's frame I rotated the body, but the cloth did not rotate even though I pinned the cloth to the cylinder. The file can be downloaded from here.

PS: I followed the answer and got a similar effect, though crude.

Think of the geometry of the image you uploaded:

You need more subdivisions on the fabric. Faces don't curve, bend or twist. The edges will always be straight. To create any kind of curvature you need subdivisions. The extra geometry will allow you to create the transitions and facilitate the different folds and twists of the fabric that you show in the reference image.

An example of possible topology to play with:

Step by step

Make a Vertex Group and assign it to the top loop.

Add a Hook > Hook to New Object. A new empty is created, and the vertex group is now controlled by it. The idea is that only the pinned vertices move independently than the rest of the fabric, and they pull the rest of the surfaces as they move. By moving the empty you can do that now.

Add a Cloth modifier to the object, and make the vertex group the Pin Group.

(note that the order of the modifiers matters here.)

For a softer surface you might want to add a subsurf modifier at the bottom of the stack.

Animate the rotation of the empty (or parent the empty to the body of the dancer)

The quality of the simulation depends largely on the quality steps. Play with the weight, stiffness, damping, tension and shear of the fabric until you are happy ever after.


Take 1 seamless textured plane, and make a large square out of multiple of that 1 texture I have a single, small seamless textured plane, and I want to make a large plane out of multiple of that texture. The array function is basically what I want to do, but it only goes in 1 direction which isnt ideal, and time consuming. Any help would be nice

You can use two Array Modifiers. One for direction X and one for direction Y. The setup would look something like the following. Note how the values in the green boxes are different. This allows for the object (plane) to be arrayed in multiple directions. Just remember that Array Modifiers utilize local coordinates and you can negatize (did I just invent a word there?) values to have the object array in the opposite direction.

How this modifier stack would look when applied to a cylinder (for clarity, because cylinders are easier to differentiate than planes):

As a last note, you can use a Vector > Mapping node to tile textures on a single plane. See David's answer on How to Make a image repeat in cycles.


Node - Need to reopen texture so it is visible in render mode In node editor i have ImageTexture connected to BSDF and then to Output.

I am painting to image texture but it is visible only in Material or Texture mode but not in Rendered mode. So what i need to do to be visible in rendered mode too is to go to node/imagetexture and reopen same saved texture.

How to fix this?

When you have opened a texture into a material, then want to modify it by painting on it while it is wrapped around the object, the changes aren't really permanent. In order for the changes to be saved permanently, and this is what I have done, is go into the UV editor, find the texture if it isn't displayed immediately, make sure the changes are visible there, then click on the menu entry Image and either Save As Image if you want it as an external resource, or Pack Image if you want these changes to follow this particular Blend project only.

Hope this was helpful.


Create Simple Shadow Under Object in Blender Render I have an 3D model that I would like to export to SceneKit in iOS.  Everything is working except simple shadows underneath the object.

I looked over this question and this simple tutorial here.

What I want the end result to look like:

What is actually happening:

My steps are the following:

Add a Plane Mesh under my object
In the Material  Options:
a. Select Shadows Only option
b. Transparency Option for Plane

When I export the model to Collada format I still see the plane under the object and no shadow.

"include a transparent plane with a soft shadow texture below the object in your 3D asset."

apple docs
First let me explain why you are not getting a shadow.
When you export a object you are never going to get any of the information that comes from blender's renders (cycles or blender internal). In this case the shadow.
What is a shadow? You did not model it (and information in the model is all that you can export.) A shadow is a not a "thing" like your couch, it is not even the plane under it. A shadow is something the render engine calculates whenever some geometry occludes a light source. (Essentially it is shading the render engine adds)
Think about it your couch looks very different in cycles then it does exported and displayed in scene kit, and a shadow is just something created from the render engine.
So unless you exported your all light(s) and the settings, and scene kit had a raytracer that rendered just like cycles, then you are not going to get a shadow.

Baking
This is where baking comes in. You take all that lovely data that cycles wraps your model in, and "bake" it to a texture that can be used elsewhere.
It does not matter if you are baking the full color (you would do that for your couch) or just the shadows, the process is the same.

Start by UV unwrapping the object that is going to be baked (a simple lightmap pack is sufficient.)

Create a new image in the "UV Image Editor", for VR keep it small 512x512 or 1024x1024.

Now in the material nodes for that object (the shadow catcher plane) add a Image Texture node, and set it to the image your just created (make sure that node is the active node).

In the Properties window, Render tab scroll down to the Bake section. To bake the shadows set the Bake Type to "Shadow". Now hit the big Bake button.

So to go make to the quote from the scene kit documentation:
"include a transparent plane with a soft shadow texture."
This is what they mean, somehow make an image with the shadow on it and then texture a plane with that shadow image.
Now to get this to work, you are probably going to need to invert the image because you want to drive the transparency of the plane. (Full transparent where no shadow, opaque where the shadow is.)


How to stack nodes using a loop? This is a followup to my previous question. While that answer tells me how to stack all nodes along the x axis, I now need to stack certain nodes along the y axis, at the same x axis point.

My code right now uses this loop:

for i in node_names:
    print(i)
    nodes[i].location.x = locx
    locx += nodes[i].width + 50
    nodes[i].location.y = 0
    if nodes[i].type == "TEX_IMAGE":
        nodes[i].location.y = locy
        locy += nodes[i].height + 200
        newlocx = nodes[i].location.x
        nodes[i].location.x = newlocx

This gives me a result where the nodes "staircase" up the graph.

I think what I want is to remember the x value of the first image node, but only the first one, and save it to a variable. That way I can just pass that coord as the x value for the rest of them.

I have tried setting the image nodes as their own array and looping through it, but that throws an error because the blender's method doesn't process lists, it processes strings or ints.

I can provide more context if need be.

import bpy

node_names = ['Texture Coordinate', 'Mapping', 'Image Texture','Image Texture 2','Diffuse BSDF','Material Output']
nodes = bpy.data.materials['Material'].node_tree.nodes
startlocy = 0
startlocx = 0

locx = startlocx
locy = startlocy
# Set the first node's X and y coords to 0,0
nodes[node_names[0]].location.x = locx
nodes[node_names[0]].location.y = locy
# For index, node in the list 'node_names'
for i, node in enumerate(node_names[1:]):
    # Set the last used node
    lastnode = node_names[i]
    #if the last node AND the current node are texture images
    if nodes[lastnode].type == "TEX_IMAGE" and nodes[node].type == "TEX_IMAGE":
        # Set current node to the height of the last one plus 200px
        locy += nodes[lastnode].height + 200
    else:
        # Otherwise, set the y to the default (0)
        locy = startlocy
        # Set the x to the width of the node plus 50px
        locx += nodes[lastnode].width + 50
    nodes[node].location.x = locx
    nodes[node].location.y = locy

This seems to work if your texture nodes have the same width, else only the highest node influences the next x position. You need to write the node names in the right order in the list node_names.


Alignment of surfaces to a curve (loop) or vertex...? New to Blender...great program.  Coming from the Rhino nurbs world.

Going through a Blender Guru tutorial on making an anvil.

Have a question...how do you center a series of faces to a centered "loop" or align the faces to a center "vertex"?

Screen shots attached.

Thanks,

M

It looks, in this case, as if you should just be able to set your snap to 'Vertex' and 'Active'... select the vertex at the peak last, (so it's the active one) and GY the lot,  hovering over one of the vertices on the central vertical loop to induce the snap.

Either switch on 'Automatically Merge Vertices' in the header before the move, or CtrlVR.. Remove Doubles when you're done.


Copy an object, but have unique material using python The code below will create many copies of a sphere.  How can I give each copy of that sphere an individual material?  Ideally this would be different rgb values.

import bpy

bpy.ops.object.select_all(action='DESELECT')
bpy.ops.mesh.primitive_uv_sphere_add()
sphere = bpy.context.object

for i in range(-1000, 1000, 2):
    ob = sphere.copy()
    ob.location.y = i
    bpy.context.scene.objects.link(ob)
bpy.context.scene.update()

Because you are copying one object, all the object data is the same. Because of that you can not add different materials to the object data (there is only one). Instead you will need to assign the material to the object, not the objects data.

These five lines below are what create a material, add it to the object and set the link to object, instead of the default object data. The diffuse_color = [R, G, B] is where you specify the color you would like that material to have (blender is expecting value between 0.0 and 1.0 for each color channel). Keep in mine this code is only for cycles, the blender internal render has a different way of doing materials.

mat = bpy.data.materials.new("materialName")
mat.diffuse_color = [R, G, B]
ob.active_material = mat
ob.material_slots[0].link = 'OBJECT'
ob.material_slots[0].material = mat

Full edited code below.

import bpy

bpy.ops.object.select_all(action='DESELECT')
bpy.ops.mesh.primitive_uv_sphere_add()
sphere = bpy.context.object

R,G,B = 1,0,0

for i in range(-1000, 1000, 2):
    ob = sphere.copy()
    ob.location.y = i
    bpy.context.scene.objects.link(ob)

    mat = bpy.data.materials.new("materialName")
    mat.diffuse_color = [R, G, B]
    ob.active_material = mat
    ob.material_slots[0].link = 'OBJECT'
    ob.material_slots[0].material = mat

bpy.context.scene.update() # version < 2.8
# bpy.context.view_layer.update() # version 2.8


Find opposite angle range in radians Building on this question  here
I have the range, in radians, of an angle formed by three points on a 2d plane and need to find the opposite range as shown here as range2:

The function I am using (from the previous question) looks like this
    def anglexy(self, a, b):
        vec0 = Vector((1,0,0))
        vecQ = Vector(    (b[0]-a[0], 0, b[1]-a[1])    )

        rad =  vec0.angle(vecQ)

        return rad

It's called like this:
    a1 = self.anglexy(v3,v2)
    a2 = self.anglexy(v3,v1)

To be clear, when I say 'range' I mean that I can use any radian value between a1 and a2 as a rotation value with bpy.ops.transform.rotate(value=a, center_override=v3) and it will place vertices on the range1 or range2 curves.

Revisit Previous question
Python: Calculate angle between vertices
The answer: Interior Face Angles
Think of it like walking around a table with left hand on surface. The table's up is face normal, our up (or the corner's up going thru v3 in question) is axis. A certain condition flipped axis, making us upside down, the test and negate fixed this. The main gist is need some reference to get the angle into 2d and hence get a signed value.
The verts are ordered the choice is which side of the line of verts is the table top (or face).  We need some reference ie since the projection is onto Y plane would use Y or -Y axis as a proxy for face normal (in front view -Y is coming at us).
In the other question, if edges are made from the verts in x order, if the area below is a "face" with normal pointing at us (front view) then we are going clockwise, if above counter clockwise around the face.
Signed angle of 2D vectors.
Simple example, 2 points (p1, p2) and an origin point o  If the 2d vectors represent the xy plane, the origin in middle,  then this is y axis (12 o'clock) to (1, 1) (half past one).  Travelling clockwise it's 45 degrees, counter clockwise 315
import bpy
from mathutils import Vector
from math import degrees, pi

context = bpy.context

o = Vector((0, 0))
p1 = Vector((0, 1))
p2 = Vector((1, 1))
#p1, p2 = p2, p1 # flipped
v1 = p1 - o
v2 = p2 - o

# if in z=0 plane this is axis of rotation
axis = v1.to_3d().cross(v2.to_3d())

a1 = v1.angle_signed(v2)

if a1 <= 0:
    a2 = 2 * pi + a1
else:
    a2 = a1 - 2 * pi

print(degrees(a1), degrees(a2))

# Results
#45.00000125223908 -314.9999987477609
#-45.00000125223908 314.9999987477609 flipped

So to re-iterate need to know what direction to go in. Assuming clockwise then return positive result above, p1 -> p2 is 45 degs, p2 -> p1 is 315.

but the range values do not work and I can't explain why. uniform(a1,
a2) in a loop produces a complete circle

The angles are how far to rotate from p1 to get to p2 either the short way or the long way. Adding them together (range) is effectively adding questions two ranges together.

The only thing I can think of is that v1, v2, v3 positions, relative
to one another, are variable and can occur in different orders.

Yes. It is clear in face edge angle answer link that the order is known. In this case it is not.
To get to p2 from p1 either rotate relative to p1 range (0, a1) or (0, a2)
3D Vectors
Can calculate the rotation difference between two vectors as a quaternion, ie how much to rotate vector to get to match alignment of other vector.
import bpy
from mathutils import Vector
from math import degrees, pi

context = bpy.context

o = Vector((1, 1, 1))

p1 = Vector((2, 3, 4))
p2 = Vector((5, 1, 5))

v1 = p1 - o
v2 = p2 - o

# to rotate v1 to v2

axis, angle = v1.rotation_difference(v2).to_axis_angle()

print(axis, degrees(angle))

if angle <= 0:
    angle2 = 2 * pi + angle
else:
    angle2 = angle - 2 * pi

print(degrees(angle2))

output
<Vector (0.5774, 0.5774, -0.5774)> 40.89339099490394
-319.10660900509606

Rotate about a pivot point
Recommend look at answer here https://blender.stackexchange.com/a/194802/15543 re making a matrix to rotate about a pivot point.
The example above gives us the angle and axis required to make the rotation matrix R
R = Matrix.Rotation(angle, 4, axis)

the direction of this rotation is determined by the sign of angle and the way the axis is pointing.


How do I override the material of an object in a view layer? How can I do the following?

There are 2 objects in my scene. Object A and object B. I want to create such a view layer where object A has another reflective material (override) and object B is visible only in reflections of object A. It is possible in two clicks in another software, but is it possible in blender ?

do you want an object being seen only through the mirror basicly? then you need to moove an object to a different collection but at same layer and press the icon shown on the screenshot (if the symbol is missing you can turn it on in the filter)


Video Transition? 3 Parts of a Pic? first of all sry for my bad english. :/

I want to know if there ist any tutorial for Blender to made an Transition VideoSequence or something for a Twitch/Stream Szene change, dont know if Transition is the right word for it..

i have 3 parts of a pic (made by hand in gimp) and Blender have to put them together, for example the upper part from the top down, and the two lower parts from the bottom corners up, so that the picture is complete after the slide in.

i hope u guys understand what i want. :/

EDIT:

this is my current state:

so i dont know how to set the keyframes to the coordinates!?
i think i have to set the coords to zero @ frame 30 f.ex.
and then set the coords like in the picture? But how does that work?

And after that i think i have to click on 'Render -> Render Animation' right?

This is quite easy to do using the compositor.

In the UV/Image editor create a series of masks, one for each piece of the image.

In the compositor use each mask as alpha channel on the image, connect each element to a transform node and combine them using alpha over nodes.

we are going to construct the movement backwards, starting from the end of the animation.

Move in the timeline to the frame that will be the end of the animation (where all of the elements are combined) and set a key frame for the transformation cooridinates.

In the time line go to the frame of the animation where you want the motion to start and move the values for the transformation so that each of the elements has moved away and set a keyframe.

The elements should move now to the end position.


Trackpad with Surface Book cannot navigate 3D View I can use blender fine with a mouse, however when using just the built in trackpad of my laptop, I cannot navigate the 3d View at all. No panning, no zooming, no rotating. Is this normal?

It's normal because the default controls for navigating around Blender's viewport all rely on clicking on the scroll wheel of a mouse. No laptops that I know of have a similar input that blender will use by default. You will have to set up the input to how you want to control the viewport. There is an option to 'Emulate 3 Button Mouse' in the User preferences in the input tab that may be what you are looking for.


How to make an interactive two-finger robot gripper and grab things with it? I am trying to make a two-finger robot gripper. The grippers use soft body physics and my goal is to move them towards an object in the middle of the scene to just grab it by pressing the grippers to it. Note that I don't have to move the object necessarily although it would be great if I can do this as well!. I also want to take the grippers away from the object in the middle in an arbitrary time. This gif (32MBs) shows an advanced version of what I want to make. Basically, I want to have the freedom to control them the way I want while the physics is running so baking the physics is not an option here. Ideally, I want to run the physics simulation frame-by-frame using bpy.context.scene.frame_set(bpy.context.scene.frame_current+1) so that: 1) I do not need to have a fixed path for the way the grippers move and 2) I can get some data about the soft body physics (forces, static and dynamic friction for each vertex/face) for each step of the simulation; I already know how to get that data that I need.

Based on the discussions I've had with people it looks like there is a couple of different ways of doing this, potentially. The most promising ones seems to be: 1) Using armatures and IK bones and 2) Animate what I want to do (maybe something like this?) and 3) Apply forces directly either by using Force Fields or somehow directly apply forces on the vertices, something like this. So I wonder, does anyone know which of these methods best fits my needs and post an answer which includes helps me make a soft body robot gripper in Blender?

I don't know almost anything about setting up armatures and IK bones properly to do this task so I don't know what could be the limitations of method 1 and how well it can satisfy my need. It looks like method 2 can do what I want as long as I know the path/curve on which the objects should move, which is undesirable for me. For 3, it looks like using Force Fields and Effector Groups can enable me to move the grippers closer and further and freely move my objects in the scene. However, it looks like it is a bit unintuitive to control Force Fields to achieve the desirable effect since I might want to quickly stop the grippers and move them.

I might be wrong about the limitations of these methods. However, it looks like to me that being able to directly apply forces (something like this but for soft bodies) to parts of the soft body objects would be the best option. Still, if you think you have a better idea on how I can make the gripper so you may ignore all of the methods that I described above and propose your own solution but make sure you the grippers are soft body objects.

While searching for a method to use to achieve what I described above, I sort of devised my own way of doing this (shown below) which is not ideal. The way my method works is that I have put an empty on top of my "grippers" and used the Transformation constraint to move the grippers. This method works okay but since I am not applying any force to the objects, the behavior of the soft bodies is not accurate as they collide with other objects. The good thing about this method however is that I can pin the vertices of the grippers so that they won't wobble as the grippers are touching the target object. Also, this way of pinning the objects will keep the grippers behave more realistic which is desirable (and needed) for my application. Maybe armatures can help with the pinning thing? Below you can see a .gif that depicts how I control the grippers using my method:

And here's another one with only pinning one vertex from the top and one vertex from the bottom:

And here's the .blend file for what I show in the gifs:

By the way, this question could be seen as an advanced version of the questions asked here and here.

Instead of Softbody physics, consider Rigid Body physics for the robot parts (this will keep them from jiggling when they interact with something; that is, they'll interact, but they won'd deform their own shape, which is what you want). Rigging is actually extremely simple for hard surface models like this, and your best option for what you want to achieve. You don't have to automatically weight the bones, either, which might not give the desired results in this case, since it likes to use falloff (good for organics, not so much for robots).

What you'll want to do first is set up your bones so they lay inside your model, with the joints where you want the bending to happen. Now you'll want to head over to the bone tab, found in the section of the workspace where you usually go for your physics stuff. It should look like a little bone. Click this, and you can change a few things to make your life easier. Mainly, X-ray. It should be on by default, but if it isn't, this is where you'll find it. Also playing with contraints is useful, if you don't want to fool with with exact degrees of rotation while you're manually moving your bones. Adding a contraint limited to the range of motion of your grippers will physically prevent you from moving the bone too far, so you're freer to eyeball it. Just a few more steps, and you'll be on your way! Hide your armature via the outliner window for now, or move it to another layer. We need to work on the robot itself. All you need to do is make vertex groups for each rigid piece. (Each piece should have it's own corresponding bone.) Once you have them named, bring your armature back (your collection of bones) and rename the bones to match the vertex group they're supposed to control. When you finish, select your mesh, then your armature, and parent them.


How/can you install an older version of Blender? How or can you install an older version of Blender? The current version you can install is 2.82a, although, I would like version 2.78c. I cannot find it on the website if it exists.

All release of Blender are still available for download, reaching back to the very first version of Blender for the IRIX operating system.

The files for Blender 2.78c can be found here.


Have particles come from faces I'm using an emission particle system to create a forest. For the most part it's working fine without problems.
But I do have a little problem. Some of my trees tend to float over the plane rather than coming straight from the face.
Here's an image of what I mean.

I'm using an emission particle system
Here's my settings.

I'd just like the trunks of the trees to come straight from the faces of the plane, and not have some of them float above.

I'm using cycles if that's actually necessary.

EDIT

This is what it looks like if I change from grid to random or jittered.

When you are planning to make those kinds of particle systems, you should use a Hair system instead of an Emitter one.

In your system the particles are being thrown from the faces and, despite you have the system freezed at frame 0 (I think Blender don't use negative frames in any simulation), it looks like some particles had enough velocity to be outside of the faces.

So the best approach to achieve your work is using a Hair Particle System. It's very simple for your purpose:

Create a Particle System and set it to Hair. The Hair strands are perpendicular to the surface, just what you want.
Change the Number of particles. The Hair Length is not necessary for you.
Under the Render properties of the particle system, select object and then set Dupli Object to your tree. Then change the size at your will.
Maybe you need to re-orient your tree in Edit Mode to align the vertical axis.

Additionally, you can create a group of a few different trees and set the Render particles to Group. The particle system is going to randomly select the trees for every strand.

Regarding to your actual situation, maybe if you set the Normal Velocity to 0, those trees would not float. But the Hair System is the best choice in this case.


Is it possible to save pixel perfect full-spectrum rgb height map? I made shader that calculates RGB based on height. Height -> Map Range to 0-16777216 and result pixel based on where C is input number based on height:
B = C % 256
G = ((C-B)/256) % 256
R = ((C-B)/256**2) - G/256

Render result looks bad. Res: 5000x2900, tried cycles, evee, tga, openexr and all possible combinations i could think of. I'm not expecting render to look good, i just want file with correctly calculated pixels. Is there any way to achieve this with Blender? Any settings? Plugins?
Context: I'm working on isometric rpg. Need solution for hiding objects behind parts of pre-rendered background.
Depth map is not good enough (greyscale) for big maps so I'm going with height map based on full rgb - similar to Pillars of Eternity. The problem is they did it in Maya (using mental ray) - am not familiar with this soft and I don't have it.

Your calculation looks incorrect. Also, are you expecting RGB values in the range 0-255 or in the range 0.0-1.0? Blender shader nodes expect values in the range 0.0 -> 1.0.
I suspect you actually require something like the folllowing :
B = C % 256
G = ( (C - B) / 256 ) % 256
R = ( ( (C - B) / 256 - G ) / 256 )

This will produce a colour with each channel in the range 0-255
Then, produce a shader colour (ranged 0.0-1.0) using :
Color = (R/255 , G/255, B/255)