3D Volumetric Planetary Clouds in Cycles?

I don't know if it is possible (and I wasn't able) to map thickness in a shader without a voxel simulation. But here is a way to give your cloud texture some thickness and shape, and ability to rotate. Render time is way faster than sim.

Duplicate a sphere with UV map. In edit mode, duplicate it and flip normals with Ctrl+Shift+N. Add 2 vertex groups for both duplicates (inside, outside). Add a subdiv and 2 displace. Map your texture on both displace (mid level 0, very low strengh), and use vertex groups. Your clouds are now "meshed" and can be controlled with subdiv level, displace strengh and rotated around the planet axis (same local axis as it's a duplicate).

These clouds can be placed inside another volume object (add transparency levels in render/light paths if needed). You can add topology where needed to reduce subsurf level. Density should be controled by your texture to limit the cloud. Once Done you can duplicate it to make another cloud mesh that has a different rotation/texture.

this is a simple neptune blue volume with your texture as clouds. (GPU rendered in 1min)


Blender 2.8 Eevee - Removing Ambient Occlusion from specific object?

Real time renders don't use real Ambient Occlusion, they uses SSAO - Screen Space Ambient Occlusion which is a depth based effect applied to the whole view.

As far as I know it can't be filtered or masked.

As a workaround render separate layers and combine them in post production.


What's the best way to rotate objects identically in their own direction?

It seems to work fine:

Select the stick called Cylinder.002. Rotate it as much as you want on the X axis, move it until it's correctly placed:

Delete the other sticks, select 002, press AltD to link-duplicate, in the Transform Pivot Point menu choose 3D Cursor, rotate 120° on the Z axis:

Do it again.

If you need to animate the sticks, first parent the initial stick to an empty, then duplicate both the empty and the stick, move and rotate, and you'll animate each stick:


Found the solution/user error, at least I think for now...

The 3d cursor  had rotational transform which was having an influence on the rotation of the pivot of the sapling tree when it was created.
Just make sure next time you come across funky leaf rotations....
1.Under the view tab for the viewport, make sure to zero all rotation to the 3D cursor.


Add animated "tv static" effect to object in animation?

Just use any high frequency texture like a small scale Voronoi, Noise or similar, attached to your shader, like an Emission and then animate it.

In this example I use a Voronoi texture, set to Cells with a high scale value. Then just animate any parameters you like.
Easists and most seamless would probably be animating the position of the texture. If the speed is higher than the animation frame rate it will just look like it is changing randomly.

Use a Color Ramp node to adjust coloring and intensity as desired.


camera track - was good, but breaks after editing an object

This looks like a bug, but here's a workaround:

As you open the file don't try to playback the scene or move a frame within the timeline. Instead switch to the Motion Tracking preset and in the the movieclip editor select your video clip and press P to cache or Prefetch the video clip.

On the bottom of the window you'll see a purple line indicating the prefetched frames.

Prefetching will load all of the frames into RAM and that will help you keep the trackers in place. The issue has to do with the video being in a delivery format (mts) in which the video is encoded using I, B, and P frames, which means that the information of a particular frame is not complete in every frame but is reconstructed using information from some preceding and subsequent frames. It's been optimized for playback using prediction vectors and crap like that. The sort story is that Blender needs to read the whole stream to have each frame land in the right place. For a more technical explanation read this

NOTE by default blender will only use 1GB of RAM to cache frames. You can change that number depending on the amount of memory on your system. To do that open the User prefences (CtrlAltU) and on the System tab you'll see the options for the prefetch and cache limits.

The other options you have to prevent this issue is to convert your MTS video file into an image sequence or a video file that uses intra-frame compression codec.

As I said this is likely a bug. You can report it.


Thanks all, problem solved. Squared shadows was solved according message user2859 in the spot settings, which erased the highest squares.

There was some other little squares after that, although image was usable after this setting. According user2859's next message I changed antialiasing settings in the rendering settings.

After theese steps was issue solved. All scopes settings(Waveform O, Vectorscope opacity, and Scope samples(the top left button on the window during rendering)) was on maximum during the tries.


UPD: since beta release were is a setting in settings called select all toggles:

You can just click on this, instead changing shortcuts manually:

Old answer:

Yes. All hotkeys are fully customizable.

Open user preferences, Input tab. You can search hotkeys by key-binding("A"):

There are many different "selects" here for different types of editors and modes. You can change everywere, or in specific part.

In every hotkey you should change an action to toggle:

After edit hotkeys, don't forget to save user settings.


The particle system is based on faces of the boolean intersection between a very narrow cube and the mesh text. The problem occurs when that boolean operation is between letters, creating an empty mesh. The particle system still needs to produce particles at the rate declared (10000 over a few dozen frames) and thus default to producing those particles somewhere at the Origin. May that's a bug... may be not.

Anyway, one workaround is to make the boolean cube (silver) wide enough to never create an empty mesh, i.e. as wide as the widest gap between your letters. This way the particle system will always some geometry to emit particles from instead of emitting from some random location.

Here you can see that with the narrow boolean, particles are emitted at the origin at frame 46 and later when it is in the gap:

And here the particles stopped being emitted at the origin when the boolean cube is wide enough to always intersect with the text object:


How to reroute faces in blender 2.79 what is (ctrl a) shortcut stands for?

It's more precisely at 3m50s: https://www.youtube.com/watch?v=6Lu-n5cd6y8&t=3m50s

It looks like he has created his own shortcut, he's rotating the edge with the Mesh > Edges > Rotate Edge function, but you can simply access with a ctrlE:


How to change the model via python in blender?

You will have to run that python code within blender's text editor.

Possible duplicate of https://stackoverflow.com/questions/11604548/running-python-script-in-blender


Where does a .blend file store its user preferences?

C:\Users\ [UserName] \AppData\Roaming\Blender Foundation\Blender there are folders for each version (2.72, 2.73) where data is stored.

Appdata folder is hidden by default, you can change windows settings or enter the path it manually in explorer

It's not specific to your blend file but blender's preferences. A blend file stores it's data inside the blend files. But you can prevent some prefs to be loaded with unchecking "load UI" when opening a file.

Or you can change blender preferences unchecking "Load UI" and "aurorun python scripts".

Once the file is opened, you can check what's needed and save a clean version of it.


scaling mess up original shape, not even

You have Proportional Edit enabled (maybe by an accident).
Press O (or click the Proportional Edit icon) to disable it, so only the selected vertices are affected by your transforms.

More info about Proportional Edit:
https://docs.blender.org/manual/en/latest/editors/3dview/object/editing/transform/control/proportional_edit.html


Animating objects while simulating water

You should be able to keyframe your Obstacles and then Bake. Make sure your tank never passes through your Inflow, if you have one, or is smaller then your Fluid can fall into, if you are doing it that way.

Here is a tutorial on animated Obstacles.


In Blender 3d, how do I start or change a wind force in a scene?

Most values displayed in the properties can be keyframed. This includes the Strength, Flow and Noise for Force Fields.

With the mouse over the field press I or right click and select Insert Keyframe.

For more variation you can add a noise modifier to the value in the graph editor. Press N to show the properties sidebar to find the modifiers panel.


How to create an arch entance with curves designs?

you could simply follow the curves with the vertices like this:


Live, real time video, compositing onto a virtual studio

You can do this after the fact, but unless you're running a supercomputer, Blender probably won't be able to keep up with the live feed.


Your walk cycle is too slow. Basically, the guy is going twice to three times the distance he should per step.

To fix: either speed up the animation, or slow down the movement until it appears that the dude is moving right again. This may take some trial and error.

Also, there's pretty much no realistic way that avoids sliding to move a lego figure besides having his entire upper body rock back with each step. it'll look like he's ice skating until you fix the fact that both feet are on the ground at the same time. The foot that comes forward to take a step needs to be aerial-ized. I realize that this is hard for a guy with no knees but there are ways. You might want to check youtube to see how others have done it.


Why is my Geometry Node Setup not working?

You are trying to use Vertex group, but in 2.92 vertex groups lose after point distribute.
To get this result you need to use 2.93 Alpha: How to transfer attributes from source mesh to distributed points?
Also in 2.93 you can find the Attribute Proximity node, that's the same thing roughly.


Alright, so I'm not entirely happy with this solution, but maybe I should be?
I've managed to work around it by.. enabling Backface Culling on the material:

I've been here before, but I also noticed that you can "flip normals" under the Screw Modifier:

Now I can duplicate the shape and remove the Screw Modifier:

.. and finally set the "plane with the screw modifier" as a parent object:

Setting it as parent isn't strictly necessary for the color part, but it makes it quite nice to scale and manipulate otherwise...

If anyone has a good solution that just uses the single object with the screw modifier, I would like to see that!
This feels quite hacky, but "if it's stupid and it works, it's not stupid"


Link : Use ojects and baked simulation in another .blend

You can use Collection Instances for that.

Put all your simulation objects inside a Collection
Link that Collection into another file (using File > Link). That will create an Instance.
Move your linked Collection Instance as one object

Linked simulation from another file then behaves like one object.


Proper (professional) way to texture paint?

Texture Painting is as varied in style as the actual mesh modeling and sculpting that you do as well - not everything is made with PBR in mind, so that is why you see tutorials that cover what would be considered to be 'handpainted' style texturing for low poly games.

When painting with realism in mind, I utilize an AO texture bake to start with for multiple uses as in masks for wear,dirt, grime, scratches, etc. I use a color map for the main colors of the material, and then I paint roughness and metalness maps for plugging into the shader. I use custom brush images for patterns, and I play around a lot with setting up bump from the different stencils so that I get a decent amount of realism - but even through all this, I have focused mainly on texture paint with faking realism and less on baking down the output to get it ready for games, as I usually only go so far as to get a still image ready for a packaging demo or a product shot for a job at work - otherwise, I just create what I want for my own taste.

If you haven't already done so, check out BPainter add-on for 2.79 as it gives you a lot of really good advantages when painting in Blender - lots that help with organizing nodes in the background and such.


One way is to change the render settings to be 2x your source - so if your source is 30fps change the render to 60fps.  This will read all the frames but display at 2x the rate.


AttributeError: __exit__ error on custom operator

focus on the code around the error:

import bpy

files = ['/home/zeffii/GL_fillet.mpeg', '/home/zeffii/GL_fillet2.mpeg']

for filepath in files:
    with bpy.data.movieclips.load(filepath) as (data_from, data_to):
        print(data_from, data_to)

Even from that snippet I get AttributeError: __exit__

I may be wrong, but this suggests to me that there is no context manager (in the python sense, not in the bpy.context sense) to use with x.y.z as (a, b) on the bpy.data.movieclips.load() operator. Hence that error. The documentation confirms this. movieclips.load() does return an object though!

If you just want to get stuff done, rewrite it so it doesn't use the with x.y.z as (a,b) context, instead assign to the left.

import bpy

files = ['/home/zeffii/GL_fillet.mpeg', '/home/zeffii/GL_fillet2.mpeg']

for filepath in files:
    clip = bpy.data.movieclips.load(filepath)
    # you know what you need here.
    print(clip.name)
    print(clip.size[:])
    print(clip.source)

>>> GL_fillet.mpeg
>>> (1280, 720)
>>> MOVIE
>>> GL_fillet2.mpeg
>>> (1280, 720)
>>> MOVIE

Additionally, there's also a typo I think. The original code has

for name in eval("data_from." + datablock):
    # blah..

and you omit a necessary . after data_from..

Your scan_files function for movie_clips might start to look something like:

def scan_files(folderpath, datablock):
    exec("bpy.context.scene." + datablock + "_directory_list.clear()")
    exec("bpy.context.scene." + datablock + "_directory_index = 0")

    folderpath = bpy.path.abspath(folderpath)

    for _file in os.listdir(folderpath):
        filepath = folderpath + "\\" + file
        clip = bpy.data.movieclips.load(filepath)

        data_from = ...  # clip.name ?
        data_to = ... # clip.source ?

        for name in eval("data_from." + datablock):
            my_item = eval("bpy.context.scene" + datablock + "_directory_list.add()")
            my_item.name = name  # these two correspond to custom props group
            my_item.file = _file

Without seeing more of your code (got a github repository?) I'm not able to say more. Looks like an interesting project though.


Complex object consisting of multiple partly overlapping shapes, blend together to keep one outer shell

I found out, that applying a union boolean on an exact copy in the exact same location actually does what i'm looking for... but it wouldn't do it on the hair i had (i used screw and solidify). So, i went back to the original file, i removed all children particles, converted the particles to mesh, and then selected all, and extruded them for width, and selected all again, to extrude them for depth. After joining this mesh with the body and head, i COULD make a duplicate and perform the boolean union on the entire object.

For now, the solution will have to do. But i still can't understand there is no simpler way to do this. Mindboggling actually.


Creating and adding a texture to a material (blender 2.8)

If you want to add a texture to any material, simply go in to your shading window.
--> choose add (shift+A)--> image texture --> plug that in to a principled BSDF tats connected to the material output.
After that you can simply open up the texture you want and enyoy yore new texture.

P.S look upp some youtub tutorials on the topic


How to focus a property field in an Operator dialog by default (v2.91)

bl_property does work for StringProperty, but not for FloatProperty. I have reported a bug, but I'm not sure it will qualify as such (might be more of a feature request, I'm not sure): https://developer.blender.org/T84563


How to model objects inside environment texture

To get equirectangular texture mapped correctly it is usseful to know distance of the camera (that took a shots) from a ground. Usually it is about 1.5 - 1.7 m.

This should be a distance of floor face from object's origin, because  the origin represents the place of real camera and all pixela of equirectangular texture are like exploding sphere into all directions from origin location.

It is quite useful to position also Camera object at Plane's Origin. Lock position at X=0, Y=0, Z= Plane's Origin and enable under 3Dview side Properties panel (N) View tab > Camera to View.
In Shader editor > World set the same equirectangular texture. Now they should match from Camera view.

With Plane selected switch to Edit mode and start to reconstruct environment ...

Note:

Or if you know some distances you can ensure with those. Like if you know size of floor, set that in edit mode and by moving this face along global Z axis you can adjust position to match with a texture.
and sure ... you have to use Environment texture node (not Image node) ;)
You don't have to use a Camera setup described above, you can directly extrude faces in 3Dviewport, but gives you nice overview what is where.


how to create a selection group in edit mode?

Yes, you can define vertex groups per object:

In Edit Mode move to Properties Editor > Data > Vertex Groups
Hit the + sign to create a new vertex group (and rename it to something useful)
Make a selection and Assign the desired vertices to that group

Now by using Select the vertices will automatically selected in the 3d viewport.


Hard/blur shade lines around newly added faces

Instead of creating new vertexes and then using the fill hotkey F, I was able to resolve this by extruding 2 new edges and merging vertexes with existing ones. Then extrude 2 more edges and merge all vertexes and in this way I created 4 new faces that dont have any issues. Still dont know what caused it but this worked to solve it atleast.


Why has the boolean modifier created new vertices?

The topology you see in wireframe mode is real topology of your mesh if the modifiers were applied. The edges (and not vertices) are added because it is impossible in Blender (as far as i know) to have a face with an hole in it, with a connected vertex. To create a hole you need to create a cut to join the two edge loop of the new face.
The wireframe view can avoid to display some edges if the faces have the same normal, but for that you need to apply the modifiers, then go to Edit Mode and back to Object Mode.


How to access Viewport Properties dialog with small viewport (3d view)?

All menu bars and panels everywhere in Blender can be scrolled by holding middle mouse button down over the area you want to scroll. Most modern mice have middle button integrated with the mouse wheel so in practice you hover the mouse over the bar that you want to scroll (in the above image the bar with words "View Select Add Object"), press and hold mouse wheel down and move mouse towards left and you can access the end of that bar. The same method works for accessing e.g. all the tabs or tab contents in "too short" Properties Editor.
As far as I know, there's no keyboard accessible way to do this. And it doesn't seem to work with menus because menus have small visible arrows at the top and at the bottom if a menu cannot fit within Blender window.
Thanks to @JohnEason for tip!


Blender Internal How to slow down and crop movie textures?

You might consider an alternative - load the video into Blender's video editor and producing a copy, reducing it's framerate and cropping it at the same time.  Use the new video instead for the texture.

I'm still using Blender Vers 2.77a and find when reducing a video's speed in the VSE (editor) it's best not to use the editor's 'Speed Control' effects strip.  It's output is jerky-jerky.

Instead, go to the render properties panel at right in the 3D window and set the frame rate to half or whatever rate you need.

You can if you wish, select "Custom" for the frame rate and use the 'Divide-by' slot that's below the frame rate entry slot.  It's marked with a "/" divide symbol.  Enter a 2 in there for half speed, 4 for quarter and so on.

The results are reasonably smooth when you consider that a half frame rate is only 15 or 12 fps.

Render the video and use that to texture the original plane or object.

-==========-

Cropping -

Whilst you're in the VSE you can also crop the new video.

Cropping a video is only a matter of making sure the video strip (not the sound) is highlited.

Press N and tick the "Image Crop" box at right and adjust the cropping sliders

-==========-

If you prefer to crop a textured plane in the 3D window, it's only a matter of placing another plane over the section you want to cut out and adjusting it's Material--> Transparency tab to .008.  Set both it's specular values to zero.

Make sure it's actually closer to the camera or viewpoint than the original plane.   This will render any part of the plane that's underneath, invisible.  See pic.

If you have trouble with this method, I can do a quick video.  It does have advantages over the VSE's and Compositor's cropping.
It's downside might be the need to render using "OpenGL", not the internal Blender render, but there is a way around that also by "filming" the cropped video and using that for the texture.


Getting errors when trying to use the online material library add on

The online material library was originally written to work with older versions of blender, for more recent blender versions the addon has been broken since the python api relating to nodes and groups changed. As the author has had more important things to do it has been neglected for a while, but I understand he plans to get back to it soon.

I have submitted an update that is waiting to get approved and merged into the official contrib repository, until then you could use my patched version. While I did make a change to get group exporting working, there seems to have been another change that broke group exports so only materials without groups are working at present. I don't think any of the available library materials have groups so it would only affect materials you export.

You can download this one file that was changed and use it to replace the addons_contrib/online_mat_lib/__init__.py that you have now. Another option is to download my entire contrib repo (about 20MB) which also has other addons included and copy the online_mat_lib folder (or all of it) into the addons_contrib folder.


Why do I need my camera settings for Motion Tracking VFX

If you are just using 2D elements like planar tracking you don't need to deal with the camera settings.

If you are planing to reconstruct a scene by creating a virtual camera that mimics the camera used to record a video then you need to know the dimensions  camera sensor and have lens information so that blender can reconstruct the scene properly.

The combination of lens size and sensor size determines the angle of coverage of the camera and the perspective. Blender can use such information to then determine the placement of the tracked elements in a 3 dimensional space. If you don't know such information blender can guess it so some degree, but you might get better camera solutions if you start by supplying such info.

Camera solving is the process described above. From the movement of trackers on a a series of flat images, blender estimates the placement of the tracked points in  3D space based the distance to the camera and also makes the virtual camera move like the original camera used to make the shot.

I recommend that you watch a few videos of how it is done to familiarize with the process.

Please read the following post for tips on how to get better camera solutions:

How can I get better results when doing camera motion tracking?


Dragonfly Wing - combining / cleaning up

I would suggest doing this by adjusting the Mean Radius in Edit Mode. This way you can make the outer parts thicker while still having them connected as a single mesh.

Mean Radius is a vertex attribute that is AFAIK exclusively for the Skin Modifier, to control the thickness of the resulting mesh.

With the vertices you want to adjust selected, click and drag-down to get both input fields selected. Then you can hold shift while moving the mouse to make fine adjustments, or type in a precise value.

And unless this is for an extreme close-up, you might want to just make a normal map out of this on a separate lower-poly mesh. That's a lot of geometry for something as small as a dragonfly wing. But this of course depends on the shot.

Update

Here is a .blend of just one wing for demonstration, based on the original file provided:


Using dynamic topology makes weird artifacts

In your Properties panel > Tool > Dyntopo, Your Detail Size is too high, and as your Refine Method was either on Collapse Edges or on Subdivide Collapse it was creating large triangles and bad artifacts. So, decrease the Detail Size from 12 to 2 for example.


There's probably a far more elegant way than this (I'm not that experienced with the mesh editing tools) but I would simply select that middle edge and E to extrude that down to reform that middle face. Then simply select each set of 4 vertices, hitting F to create each of the side faces.


Why aren't my emitter particles appearing in the render? 2.8

some fixes:

goto the raindrop object properties > Instancing > switch to None
go to the emitter, clear the bake cache and recalculate the bake
just to check that drops now are in the render: go to shader and
make the drop more visible (for example make the shader less transparent)

result:


How to properly render emissive and transparent materials (fire) for compositing

As @troy_s stated in this case a normal alpha over should be used. In Resolve, this translates to a merge node with the Alpha Gain turned to 0.


How do I simply close a few widget windows?

Press T on your keyboard to open/close the Toolbar on the left, and N to open/close the Sidebar on the right.
https://docs.blender.org/manual/en/latest/interface/keymap/blender_default.html#common-editor-keys


Make the movemouse event back to left when get to the edge of right

I got it...
add this bl_option to the operator class can make it
bl_options = {'REGISTER', 'GRAB_CURSOR', 'BLOCKING', 'UNDO'}
# GRAB_CURSOR + BLOCKING enables wrap-around mouse feature.

and then fix the mouse event by using mouse_x
if event.type == 'MOUSEMOVE':
    self.mouseDX = self.mouseDX - event.mouse_x
    multiplier = 0.005 if event.shift else 0.02
    # multi offset
    offset = self.mouseDX
    obj.Rad -=  offset * multiplier
    # reset
    self.mouseDX = event.mouse_x

```


Limitations in the API prevent bge.texture.ImageBuff from accepting outside arrays even if they match the flat structure of regular bge arrays.


Controlling ColorRamp nodes with Group Inputs

So far as the method addressed in the question, I think the C-Code would have to be changed for that to work.  Maybe with Python but I'm not sure about that.

This field can be manipulated using Drivers and Scripted Expressions.

One way to do this would be to add an Empty.

Next keyframe the empty at t=0 then move the timeline to the end of the animation and the empty 1 unit to the right along the X-axis.

Now add a driver to the Step Field of the Color Ramp by hovering over the value and pressing 'd'.

Open the graph Editor and change the value in the expression field to be 'var' as seen in the image below.  Also, add the Empty as the Object to the default Variable field and change the Type to X Location so when the Empty moves to the right, it will change the driven value accordingly.
(I had to add a default modifier to get this to work for the Pos field which may be a bug since it now continues to work after I delete the modifier.

Here it is animated.  The reason I am moving the mouse cursor around in the Node Editor is because this updates the UI and the animated values can be seen to move.

With a bit of creativity, maybe you can find a way to use drivers to do what you were planning on doing with the socket input...  you didn't say what would be driving the socket so we can only guess at this part.

Some thoughts I'd like to add to this.  I believe, (at least according to my understanding which is very limited here) that this will be per-object since I don't know of a way to make drivers work on a per-vertex basis and especially not on a per-fragment basis which excludes a lot of the refinement which a shader-based control would offer.

It may be possible to duplicate an object and give it the same material but make it invisible and alter it's shape in order to affect shader input values like Geometry->Position and if I come up with anything like then I will append this method to the Answer.
If anyone else does think of something like this, feel free to piggy-back a second answer based on what I've shown here as a starting point so that this page can become a more comprehensive piece of documentation.  I'll vote up any answers that are useful even though this has been chosen as the solution.


Unable to prevent self intersecting geometry?

First thing, move the Solidify mod above the Sub-D mod, then change the settings in the Solidify mod to "Edge Data -> Rim -> 1.0"
And check your crease values, there are a few of them, especially around that corner, that are not 1.0, this will screw up the Edge Data.

This will fix most of the problem.
After that, there will be a small issue left that is caused by the edges near that corner being a smaller distance away from the corner than your solidify value (1mm) This means that when Blender tries to offset them, they overlap. Simply move them away a little to fix the corner. Use GG to slide them away.
(These verts)

Remember, Blender is not CAD! There are a whole different set of rules to learn and follow! :)


Where is "volume" in world in blender 2.78?

Under surface, press "use nodes" and then instead of the surface being set to background, change it to volume scatter.


How to composite output of multiple scenes?

EDIT: Just realized there is a typo in the Blender docs, should be composed or composited, not composted, in case that was causing any confusion.

What this means is that you have multiple different scenes in multiple different .blend files, and you render each scene individually. Then, whether it be in Blenders Video Sequence Editor or another software, you combine the short clips into a longer work.

For an animation, no the full world that the animation takes place in is almost never fully built. Take a film like Toy Story for example. The artists didn't build all the parts of the city in the same file and render the entire animation in one go. Instead, they would have broken it up into a bunch of smaller files of various locations, or the same locations with different characters, or at different points in the film, or any number of reasons. Managing something the size of a feature film in a single file would be by all accounts impossible.

A short animation would be much easier to manage as a whole in comparison, but that's relative. It will still be easier to link objects, materials, animations, etc. to multiple scenes and combine the renders later on.


How to hide vertex colors in Texture Paint?

Add a Vertex Color layer that is solid white and keep that one activated when you are not doing any Vertex Painting.

It does waste a layer and definitely counts as a work-around but it's the only way I know of to do this and it works.


Is possible to calculate the shortest distance between two geometry objects via python?

Going by the question in your title this is my answer.

To get the distance between two objects use this formula.

$$d = \sqrt{\left(x_2-x_1\right)^2+\left(y_2-y_1\right)^2+\left(z_2-z_1\right)^2}$$

Then the python code is as follow. Comments are included in the code to help you understand what is going on.

import bpy
from math import sqrt

lst = []  # create list to store the location info

for obj in bpy.context.selected_objects:  # iterate over the selection NOTE: two object should be selected
    lst.append(obj.location)  # populate the lst with the location info

# calulate the distance of the two objects
distance = sqrt((lst[0][0] - lst[1][0])**2 + (lst[0][1] - lst[1][1])**2 + (lst[0][2] - lst[1][2])**2)

# display the distance
print(distance)


Quickly add texture coordinate and mapping nodes shortcut?

Just figured this one out. Ctrl+T will do just that. The action is named "Texture Setup" in case you wanted to use the search function to edit the hotkey.


Why are node groups not being saved in my startup file?

Node groups have users linked to them, like materials or textures. If a node group has no user, it will not be saved to the blend file. After startup they will be gone. In some cases it takes more than one restart and save before all unused instances are gone due to internal dependancies.

You could, as aliasguru suggested, set fake users. This could be done by executing this line in the python console:

for node_group in bpy.data.node_groups: node_group.use_fake_user=True

Afterwards they should not disappear anymore. Note that you have to repeat it for every file and when you create new node groups.


You can for scene objects:
import bpy

for obj in bpy.context.scene.collection.all_objects:
    obj.hide_select = False

Or for all objects in the file:
import bpy

for obj in bpy.data.objects:
    obj.hide_select = False


How do I split the mesh using another plane?

Boolean didn't work because you have inner faces that make it fail. That said you can limit the Wave modifier to the group you want, to do so create a group in Weight Paint mode (once done you can soften the weight with the Blur brush) or in the Properties panel > Object Data > Vertex Groups > Assign. Then choose this group in the Wave modifier (and also in the Displace modifier if you've used one). Here only the top vertices have been assigned to the group (except the small part that you didn't want) so the bottom won't be affected:


Update a custom property after leaving edit-mode?

You can subscribe to changes in an objects mode.
import bpy

# Create a unique object as a handle for the subscriber.
my_handle = object()

def my_notify(a, b, c):
    print(a, b, c)

def register():
    bpy.msgbus.subscribe_rna(
        key=(bpy.types.Object, "mode"),
        owner=my_handle,
        # Can be anything, passed to 'notify'.
        args=(1,2,6),
        notify=my_notify,
    )

def unregister():
    # Clear on unregister.
    bpy.msgbus.clear_by_owner(my_handle)

register()
```


How do I adjust limbs.simple_tentacle to finger?

Change limbs.simple_tentacle to limbs.simple_fingers


How to create a mirror pose for a pose bone (using Python)?

OK, I probably have butchered all the rules for doing matrix math, but it works.

Basically, multiply the bone to have mirror matrix then scale it back, but it is now in reverse orientation, pointing towards opposite direction.

To counter this, I rotate it 180 long z and y axis. For some reason, updating / refreshing scene was needed for this to work.

This yields the rotation I was looking for (so far it seems to work like intended):

def mirrorPose(bone):
    m = bone.matrix.Diagonal((-1,1,1,0))
    bone.matrix = m @ bone.matrix
    bone.scale = (1,1,1)

    bpy.context.view_layer.update()

    z = mathutils.Euler((0,0,math.radians(180))).to_matrix().to_4x4()
    bone.matrix = bone.matrix @ z
    bpy.context.view_layer.update()

    y = mathutils.Euler((0,math.radians(180),0)).to_matrix().to_4x4()
    bone.matrix = bone.matrix @ y


Best bet is to use the Cast Modifier to morph the cylinder into a sphere shape.

The trick to get it to work well is:

Have a good number of evenly spaced edge loops along the cylinder length as well as concentric edge loops on both caps
Then set the mesh surface shading to Smooth and add a 1 level Subsurf Modifier before the Cast Modifier
Select Sphere as the cast type and then you can keyframe the Factor from 0 to 1
You may need to increase the Radius amount if the cylinder is longer than my example.


Looking at your node setup it looks like you are using Blender's automatic mapping. While the mapping node may be used to scale the Generated map around, it won't affect your textured/material views.

If you want the textured and material views to match up with the render, you will need to use the UV output (from the Texture Coordinate node) instead of generated.


How to make a slice in the Particles System?

You can slice them at render time (i.e. the full geometry will still be there, but only the relevant slices will be rendered) by using Material nodes:

Say you want to render only the portion 0.5 < Z < 0.9. Then, as your sphere's material, use a Mix shader:

The Mix Shader should be used to mix your material (whatever that is, e.g. a green Diffuse) and a fully white "Transparent BDSF".

The mixing "Factor" is either 0 or 1, controlled by a set of "Math" nodes that check whether the "Z" coordinate is in the desired range.

Result:

Note (after your edit): if there are many particles, the "Transmission" value under "Bounces" in the "Light Path" Render settings should be at least twice the number of particles that can be found along a lightpath from your point of view. ← If this doesn't make much sense to you, just increase that value until it looks right.


How to select all faces that have no texture?

Select one of the faces which doesn't have a face texture assigned and press ⇧ ShiftG> Image.


How to adjust light's strength in LuxRender?

Firstly, I'm not sure that LuxRender is within the scope of this forum. You might have better luck over at http://www.luxrender.net/forum

That being said, I might still be able to help. LuxRender is very much based on the way light works in the real world. Consequently, adjusting the intensity of the lights is not terribly straightforward.

Under emission settings, "Power" is the wattage of your light source: 40 = ~40 watt light bulb. For that reason, size matters. 40 watts spread over a large area won't be as bright.

Under emission settings, "Efficacy" is lumens per watt. Not sure exactly how this changes the light besides making it lighter or darker, but I have to believe it does something else, too.

Under emission settings, "Gain" is a multiplier for the "Power" setting. Setting gain to 2.0 will double the power of a light source. I have to believe that this isn't the same as just setting the power twice as high, but I don't know what it is.

In short, lowering any of these numbers will make your lightsource dimmer.

HOWEVER, LuxRender is VERY much based on the way light works in the real world. Consequently, your camera isn't just a viewport. It also has an exposure setting, tonemapping, white balance, and other things that will affect how bright the lights appear. If you watch animations done in LuxRender (like this one: https://www.youtube.com/watch?v=SVK7W0SXre4), many of them look like the exposure is being adjusted... because it is, automatically. LuxRender automatically chooses a sensible exposure level based on a number of factors, so you might have to tweak that to get the look you want.

Check these out:

http://www.luxrender.net/forum/viewtopic.php?t=7135

http://blenderdiplom.com/en/tutorials/385-tutorial-introduction-to-lighting-in-luxrender.html

Hope that helps!


What is the difference between Clip, Movie and Image of the Add-menue in VSE ?

There will be nothing in the Clip menu unless you've opened media (video or images) via the Movie Clip Editor.  At all other times it's just a blank menu.

Movie simply means a video (.AVI, .MOV, .MP4, .MKV, etc.).  This can have video and audio combined (which Blender then separates upon load).

Adding an Image (.PNG, .JPG, .BMP, etc.) will do a couple of things.  First, you can add a single image which can be stretched over several frames. Like if you wanted a picture of an album cover to be displayed while a song was playing in the background.

But Blender also allows you to render stills and save them to the hard drive in sequential order automatically.  If you create, say, a 240 frame animation, Blender will render those frames 0001.png to 0240.png and store them in a folder.  You can then add them to the VSE and Blender will play them in sequential order automatically.  If you set the video framerate to 24fps, your video will be 10 seconds long.


As weird as it looks, that is behaving exactly like it should. To get joints to deform cleanly relies on a couple of things.

Mesh Topology: A mesh meant to be deformed should be built so that it deforms cleanly. It's hard to tell from you image, but I'll assume the mesh is good. When I say the mesh is good, by that I mean that the faces flow in a way such that when the joint is bent, the faces still flow in a logical way.
Joint Placement: This is one of the things that I can tell is causing you trouble. The placement of the joints is important for a cleanly deforming mesh. The best way to find out where a joint should be placed is to look at your own joints if you are going for a realistically proportioned character. If you are going for a stylized character, or even a realistic one, the easiest way to figure out where the joint should be is to look at the joint when it is straight and imagine what it would look like when it's bent. Then you can infer where the joint should be placed based on the position that would result in the rotation you desire.
Vertex Weights: Even with great topology and properly placed joints, you will still need to make sure each bone is controlling the sections of the mesh that you want it to. Usually for joints, good deformation can be achieved bu simply making sure there is a bit of a smooth transition between areas with full weight and areas with none. The default weighting is usually OK.

I would highly recommend watching some tutorials on rigging to see where joints should be placed to get good deformation. Ultimately it just take some practice so that you can understand what causes a mesh to deform and how you can achieve the results you want.

As I mentioned before though, I would definitely try adjusting the joint position first.


Liquid goes THROUGH rigid body with effector. Mantaflow (Blender 2.82)

You are supposed to change your surface thickness. it defines how much of the mesh that will be considered an obstacle. The surface thickness is the same as the value of the volume of your cup. What you do is to multiply the three dimensions of the cup. Whatever value you get is the correct surface thickness of the cup. Hope this helps.


I assume you are using Eevee as it seems in the second screenshot.
In Eevee to get better reflections you should use "Reflection Cubemaps" or "Reflection Planes".
You can find them in "add menu" > "light probe".
Since your mirror is a plane object I suggest you to put a reflection plane on the surface of the mirror. Here you can see the difference:

This is without reflection plane.
And this is with a reflection plane on the surface of the mirror object:

HDRI image should not affect objects reflections, only background reflection.

You can read abount reflection cubemap/plane here: Blender 2.81 Manual - Eevee Light Probes


Invert your selection and assign that to the vertex group. By nature, vertexes with zero weight are either in the vertex group for a weird reason, or not in it at all. You cannot say “be not in this group with a weight of one.” The vertex group you’re creating should be for the “pins” AKA the still parts of the trampoline, rather than to assign the cloth. It is set up this way since the cloth simulation will of course assume everything is cloth. The vertex group is telling it what isn’t.


Try selecting the edges you want to be sharp and then Ctrl+E "Mark Sharp". Then use the Edge Split modifier and disable angle-based splitting.


OK, I'm leaving this question up as I've seen others ask as well. But... I went to texture, in the alpha section I unchecked use and it works perfect.... No idea...


Dyntopo dynamically changes your mesh topology as you sculpt. It looks like you have collapsed the mesh detail in the chest area, maybe while zoomed out.

The settings that control how your mesh is altered are the detail size, the refine method and the detailing type.

The detail size determines how long any mesh edge should be.
The detailing type determines what measurement to use.

Relative detail is based on screen pixels, as you zoom in and out the size of the edges changes.
Constant detail is based on blender units, keeping the same size as you zoom in and out.
Brush detail is based on the size of your brush, resizing the brush changes the detail size.

The refine method determines what action to take.

Subdivide edges will only add new edges to achieve the detail you want.
Collapse edges will only remove excess edges that are not needed for the detail level you are after.
Subdivide Collapse will dynamically add or remove edges.

Note that each detail type uses a different type of measurement, changing this can lead to different levels of detail, with only constant detail offering an eyedropper to set the value to match an area of your mesh.

While you are unfamiliar with dyntopo, I would recommend keeping the refine method to subdivide unless you specifically want to reduce the detail. By using subdivide collapse it is too easy to remove detail while you are zoomed out for an overall appraisal.


Blender 2.79 crashes when in material view

I have downgraded the driver to AMD Radeon HD 7600M and it now works perfectly. I will keep the drivers with that range to prevent further issues.


Cycles node editor - Map gray scale value map to extremes

The only solution and a major workaround that would work is:

Create a frame change handler that grabs bpy.data.textures and for each texture determines the min and max value in it (by iterating over all pixels). This would be slow. The data should be outputted to some scene custom prop array for example.
Drive a math cycles nodes with those custom prop array items. Everytime you switch texture you would need to re-target to appropriate array item (index). With this the rest of shader is simple.

With only nodes it's impossible because they operate per-sample. You would have to use as many nodes as are pixels in the texture and compare them (you can sample any pixel from texture with mapping vectors).

It would be possible if the min/max values could be encoded into the image (for example as grey values in 2 exact corners). The shader then would crop the texture by some extend and wouldn't use the border of the image with encoded data.

With OSL it's definitely doable but the texture would have to be part of that shader, it wouldn't work with RGB input socket (reason as above). Instead a path to the texture could be an input for such shader.


How to have a force field affecting only one particle system hair

Fields only have an effect on objects and particles that reside on the same layer. Therefore, one solution is to have particle system 'alpha' on one layer, 'beta' on a second layer, and the force on the same layer as 'alpha'.

To achieve this you can use M to move objects to different layers - simply press M while an object is selected and the 'Move to Layer' popup should appear. Just select the layer(s) that the object should reside on (an object can be on more than one layer - hold Shift to allow you to select multiple). To 'View' multiple layers, simply hold Shift and click the layers in the button bar at the bottom of the 3d Editor window.

With one of the objects (Beta) on a different layer and both layers selected for view, you should see no difference in the scene. However, the moved object's particles will no longer be affected by the force.


Textures aren't visible when 3d printing

Exporting with textures is sometimes finicky for 3D Printing. There is a helpful 3D Print toolbox addon that makes the process much easier and more reliable. Try using it.

I also have a tutorial to do exactly what you are trying to do in your project. It uses a script I wrote. You can get it here

Here is the tutorial on YouTube or follow the written steps below

Install the addon, then pick an image. Images should be less than 100x100 pixels, so scale it down if necessary. Then make sure to check Join Objects to make sure each cube is connected. Then run the addon.

If you want it taller, all you have to do is either change the Z Depth value in the addon or scale the object in edit mode after the script runs.

Now we need to set the scale of the object so we can get reliable printing results. To use millimeters, change to Metric and set the Scale to 0.001

Then you need to name your object and install the 3D Print Toolbox addon. It comes shipped with Blender, so search for it in the User Preferences. Once it is installed you need to click the bounds button to set the scale. Enter the size you want.

Then all you have to do is export and upload to Shapeways!
It is important that you choose X3D to preserve the colors.


Backfaces give strange results with Fresnel Node in Cycles

If you use the Fresnel node that has an IOR, then this is the correct behaviour, as the IOR is computed taking the direction of the normal into account.

A quick solution would be to use the layer weight node and select "Facing". You can alter the effect using an RGB curves node afterwards. Fresnel is basically "Facing" with a blend of 0.5 and an exponential curve afterwards:

The example above uses exactly the same normal setup as you do, but by using "Facing" the flipped normal faces are treated the same as the regular ones.


Inserting keyframes from node editor is not working

As you only want to change the basic colour, you can key the diffuse colour value instead of using nodes, this is a more reliable way to have the 3Dview updated.

Like other values you can hover the mouse over the colour and press I or right click RMB on it and choose Insert Keyframe. A border is added to the colour swatch to show the keyed status.


I can't rule it out 100% but I would be very surprised if you could do this per camera. You can change the sensor width and height in the camera settings, but that should not change the aspect in the rendering.

The only solution that comes to mind is a script that hardcodes the desired resolution (and with that the aspect ratio) for each camera and set it up as a driver. Meaning when you hit render it will check which camera is active and assign the resolution that you referenced to that camera.
Let me know if that is an option, then I would try to work out that script. Also: untested, there might be one more step to that. Worst comes to worst we create a tiny script that acts as a render button but does the adaption to your scene before render (that one will work for sure).


How to apply armature/rig transformation to the mesh/shape key?

Never mind...

Just after applying it, it will disappear, but no worries, All vertex groups are still there, just Add_Modifier.Deform.Armature And set Armature as the "Object"


Joining objects that have displacement modifiers

So apparently, you need to assign all the verts of the dinosaur mesh to a new vertex group and select that group in modifier's settings. This will make it affect only on those vertices.


How work translate=True in layout.label ? (Python Ui question)

There is no automatic translation, you will have to create a dictionary with the translations that is registered/unregistered through bpy.app.translations.register() and
bpy.app.translations.unregister(). The Manage UI Translations add-on can help you generate the tuples from which the dictionary is generated.

More information can be found in the manual and the wiki.


What textures i should bake to have a game ready model?

Depends on what you want to crate. And what engine you use.
You can use every single type to create a very realisitc and good looking model, but you need to know what your limits are. The more textures you use the more textures need to get loaded into the RAM. So when you want to make a game with many meshes it is best adviced to either only use the important textures or look how important the mesh is when it comes to the camera for example. Closer meshes should have more important textures than meshes that aren't really visible.

So choose for yourself what your model needs. You don't need to bake out metallic when you've got a piece of cloth.


Why can't I change the names of annotation layers in Blender 2.8?

There seems to be a workaround:

Hover with the mouse cursor over the annotation layer you want to rename, press ctrl and double tap enter.

After that I was able to enter a layer name.


How do you change the Minor diameter of a torus in Blender 2.80?

When you create your primitive you have a folded menu on the bottom of your 3D View, just unfold it to have access to all the parameters. Once you've made some changes, like moving or editing, you won't have access to this menu anymore though.


You have to create a vertex group.

There is a video tutorial on making a flag by BornCG ( https://www.youtube.com/watch?v=sOtRsHYCzEE&list=PL006307E237BB7FF6&index=21 ) that shows you pretty well how to do this.

Essentially, you add the physics to the entire mesh, then select a vertex group to ignore the physics and remain stationary.

My knowledge in blender is only a few months old so please excuse if this does not solve your problem.


Creating a cone that has depth with spherical dimples that are on the inside mesh only

What you could do is: Create the pattern, repeat it on the X and Z axis with an Array modifier, create a second wall that will be the outside wall, give the object a Simple Deform modifier (Bend mode an 360°) to make it a cylinder. Keep a copy of the object somewhere, apply the the modifiers, join the top and bottom rims with a Bridge Edge Loops. Remove the doubles and clean the mesh. Now give the cylinder a Mesh Deform modifier with a cube as Object, scale and move down the top face of the cube so that it gives you a cone shape.

Problem with this solution is that the pattern tends to squeeze from the bottom to the top as the cone’s radius decreases. To avoid that you could first apply the 2 Array modifiers then move down the top edge with Proportional Editing enabled (Linear mode) so that it linearly squeezes the whole wall on the Z axis. Then give it the Simple Deform and Mesh Deform. This operation will compensate the Mesh Deform squeeze.


Specifically this line makes no sense to bpy:

row.operator("object.data.use_auto_smooth = False", text="AutoSmooth", icon="SMOOTHCURVE")

The first parameter in row.operator() needs to be a known operator path. That parameter isn't used for setting anything, but merely to identify which operator you want to call.

  If you rightlick the AutoSmooth button in Normals panel, and select Edit Source and open the TextEditor's textblock properties_data_mesh.py, it opens directly at the line used by Blender's UI system to show you how it does the layout.

it shows:

mesh = context.mesh
col.prop(mesh, "use_auto_smooth")

mesh is available in this context because it's the Mesh Properties panel. If you have a menu elsewhere you'll have to get at it using obj.data.

This assumes there's an (active) object, use a poll in your menu to ensure this.

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

    obj = context.object
    mesh = obj.data

    split = layout.split()

    col = split.column()
    col.prop(mesh, "use_auto_smooth")
    sub = col.column()
    sub.active = mesh.use_auto_smooth and not mesh.has_custom_normals
    sub.prop(mesh, "auto_smooth_angle", text="Angle")


Without Python, you can have a steering - 'path following' logic brick to target your player.
A ray/near sensor from the players eyes that detects the enemy can then toggle a (boolean) property that sets the state of the enemy to follow or not.

Like the Weeping Angels from Dr. Who, your enemy would only move when they are not looked at.


What kind of F-curve can be used for a perpetual elastic effect of clock second hand motion?

It looks like you can do this with the "Cycles" curve modifier instead of the Generator modifier.
I did the exact same thing as you to get the elastic curve, but only added two keyframes, one on frame 0, and one on frame 30 (I tried this at 30fps). For the elastic settings, I used an amplitude of 0.1 and a period of 15 frames (1/2 framerate).
To use the Cycles curve modifier, I set it up with these settings:

Note that "Before" and "After" are set to "Repeat with Offset" instead of the  default "Repeat Motion" so they will keep ticking forward, instead of resetting back to the start position every cycle.
This is what the result looks like:

The rotation decreases so the object rotates clockwise, instead of counter-clockwise.
You don't have to use an elastic curve though if you don't want to. If you add keyframes in between the first and last, they will be included in the animation, allowing you to have a more custom ticking animation, like this:

Lastly, I would be sure to poke around with the Cycles modifier and see what you can do with stuff like the Restrict Frame Range options, so that you can stop the clock, or only use a specific region of frames. (Ex: if you want to animate it rewinding later, so that only the ticking part of the animation is repeated).


About "Enabled(Object contributes to the fluid simulation)"

In my experience, the Enabled checkbox doesn't seem to give the desired behaviour - in fact, I've just tested this on Blender 2.79.6 and the Enabled checkbox doesn't seem to enable or disable the Control object at all (all it does do is "grey-out" the controls to allow the Control force to be adjusted.

However, instead of keyframing the Enabled checkbox you can enable and disable the effect by simply keyframing the Strength - with zero being effectively 'disabled' and non-zero (higher values for more force) to effectively 'Enable' the control object.

I believe in your example the control object is effectively always enabled.


Units and measurements and such 2.79 and 2.80

I don't see units other than 1 in 2.7 when setting the scene scale; I don't see mm or centimeters or meters (in the properties panel > scene tab)?

  I can put all sorts of numbers and units in the dimension boxes and in
  response blender just changes these values to some random number/unit
  combination

Blender adjusts from Meters to Centimeters to Millimeters as needed I think, eg.: when you scale from 99cm to 100cm it changes to 1m automatically (in the N panel).

  Then I attempted to add an EMPTY cube which seems to come out huge.So
  I attempted to resize it by changing the dimensions, but it seems that
  I can put all sorts of numbers and units in the dimension boxes

I don't see any dimensions boxes, just "scale" in the N properties panel, and "size" in the "empty" data tab of the properties panel.  I did notice the scale seems to be double what it should be, ie. mesh cube was 10cm but the empty cube was the same size, but says 5cm.  May be a bug or maybe a sort of radius measurment (measured from the origin)? Idk.
GL OP : )


First let's establish our cable geometry. I will use a curve object so I can easily edit the shape. Make a tube from the curve by changing these settings and also add a subdivision modifier:

For the surface detail we can take multiple approaches:

Deform the surface physically with Displace modifier using a noise texture. The surface should be subdivided enough with Subdiv already. Note that Blender v2.78 does not have this modifier, the next option replaced it instead.
Deform the surface at render-time with material using True displacement. This has an advantage over (1) of adaptive surface subdivision based on screen space real-estate.
Alter the shading with Normal or Bump mapping. This won't change the silhouette but for non-closeups is fine.

All the options require some sort of texture to drive the effect (procedural or image). The most important point of this answer is how to map such texture onto curve's surface, so it is not stretched and actually mapped correctly. The curve can use UV space for seamless textures, but you cannot display it inside UV/Image editor. Instead you have to preview a material with for example a checker texture and scale the UV coordinates with Mapping node to eliminate stretching and any seams. Also enable the Use UV for mapping property under Curve > Texture Space options:

For procedural textures (as they are not seamless and will cause seams in UV space) the best option is object or generated mapping, also scaled accordingly with Mapping node.

Once decent mapping is established you can use whatever displacement/normal/bump map. I will demonstrate option (2) and use Noise procedural texture for the small and big bumps with different scales:

With UV mapped seamless textures you can have displacement and materials like this easily:


How can I increase the thickness of this object without breaking it?

I'm not 100% sure if this would work, but you might try it (quite possibly with the solidify modifier off, or perhaps only turned off after step 3.) and see if it does:

In Edit Mode, select all vertices of an object.
Extrude, but don't move the extrusion. Simply click to finalize. This will create
duplicate vertices, which in this case, you actually want. Duplicating the selection might also work.
Lastly, scale up. Only the duplicate vertices should be selected after the extrusion
operation, so scaling will move them out and create a "shell" of
sorts.
Then add or remove geometry as needed to fill in gaps this
process might create.

Not gonna lie, if this works it's a bit of a messy solution. Make sure you have a backup save so that if you don't like the results you can revert back.


How to center multiple objects automatically before exporting?

Select all your objects then Alt+G to Clear Location (set the location to 0;0;0)


This works.
bpy.ops.object.add_named(linked = True, name = "Cube.010")

I get it now. The name of this function, add_named() is misleading. It's not about adding a new object and naming it as it's created. It's about copying an existing, named, object.
What I was originally looking for was a way to link a copy()ed object to the original so they share data. The idea was to use copy() to make the new object, then it could be either:

linked into a collection as an independent object, or
linked to another object so they share data.

It seemed like a logical assumption to make that a copy()ed object might have these options open.
Still exploring...


loop works only for 4 frames any idea why?

Can do this without operators.  I've set script to run on all objects in scene with a name starting with "Cone".

A common blender technique is to select an object and simply use

cone = context.active_object

Here is test code that adds a random z scale for cone on each frame from scene.frame_start to scene.end_frame.

import bpy
from random import randrange
from bpy import context
scene = context.scene
cones = [o for o in scene.objects if o.name.startswith("Cone")]

for cone in cones:
    c = scene.frame_start
    while c <= scene.frame_end:
        a = randrange(10,30)
        b = randrange(3,6)

        cone.scale.z = a / b
        cone.keyframe_insert("scale", index=2, frame=c)
        c += 1


Is there a way to get back to renders that are in "Render Slots" without having to preform a render?

If you rendered to the same slot, the previous information is gone forever.

If you switched to a different slot, then the information of other slots is untouched and you can switch back and forth.

To access the rendered slots you need to be in Render Result as the source for the UV/Image window:

To save the information of any of the rendered slots, use the Save as Image option on the UV/Image editor and use OpenEXR as the format, that will keep the rendered image as scene referred data.

An alternative, is to add a File Output node in the compositor. That way every time you render you will be saving a file automatically. Note that if you render again, it will render to the same file and overwrite the previous image.


How to give only a part of an object a ring texture

You can add a second material to the material slots of the object and then select all the vertices/faces you want to assign this material too in edit mode and hit the "assign" button in the materials property tab:


just open the setting in shading and set the x-ray value to 1 that means it is fully visible but keep the edges and vertices see throu. The lower the number is the more transparent the geometry is.


Match exact color between Node and what is being rendered

Emission shader with strength of 1 should output the exact color you connect to the color input. Thought volumetrics would affect the resulting color ("overlaying" over it).


Does the camera angle matter when rendering a model or 3d animation for unity

In short, the camera viewpoint doesn't matter at all. What they're asking for is not an image. They're asking for the actual model.

You're thinking of sprites. Some games use sprites, which are individual images that are rendered for a certain number of viewpoints. The original StarCraft uses sprites for all the movable things.

Other games use actual 3D, which are animated in the game engine and can be viewed from any given perspective. StarCraft II and Fallout 4 use actual 3D instead of sprites.

Your thinking about "sending them the whole project" is on the right track, but they can't use the Blender file itself. They've asked for an FBX, which is a format for storing the whole 3D model, its textures, its UV maps, and some other things. It's a lot like an OBJ or PLY, if you're familiar with those. This will let them use the whole model in the game.

In this case, the camera that will be viewing the model is not in Blender, it's in the game. So the camera in Blender doesn't matter... just make sure you don't include it in the export ;-)

You should also definitely check out the B.SE chat room: http://chat.stackexchange.com/rooms/8888/the-renderfarm

There are several folks there who are making games with Blender and might be able to help you with more specific questions that might not be appropriate for the actual site.

Have fun!


How to set the default vertex count to added geometry?

AFAIK it's already hardcoded into Blender, set as default value for each operators creating primitive objects like a circle. One way to get around this is to add new menu to access these operators, but with different default value. I made a sample code below, also downloadable here.

When this code is put to a file, opened in Blender's text area and executed, or installed as an addon (after uncommenting bl_info block), it will insert a new submenu to Add, containing some primitive operators but with different default value upon execution:

There might be simpler ways, but this is the only workaround I know.

import bpy

# bl_info = {
#     "name": "Low Vertex Count Objects",
#     "author": "",
#     "version": (1, 0),
#     "blender": (2, 63, 0),
#     "location": "View3D > Add",
#     "description": "Add primitive object with low initial vertex count",
#     "warning": "",
#     "wiki_url": "",
#     "tracker_url": "",
#     "category": "Add Mesh"}

def custom_object_add(self, context):
    layout = self.layout
    layout.menu("INFO_MT_low_vertex_mesh_add", icon='PLUGIN')

class INFO_MT_low_vertex_mesh_add(bpy.types.Menu):
    bl_idname = "INFO_MT_low_vertex_mesh_add"
    bl_label = "Low Vertex Mesh"

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

        prop = layout.operator("mesh.primitive_circle_add", icon='MESH_CIRCLE', text="Circle (12)")
        prop.vertices = 12

        prop = layout.operator("mesh.primitive_cone_add", icon='MESH_CONE', text="Cone (12)")
        prop.vertices = 12

        prop = layout.operator("mesh.primitive_cylinder_add", icon='MESH_CYLINDER', text="Cylinder (12)")
        prop.vertices = 12

        prop = layout.operator("mesh.primitive_uv_sphere_add", icon='MESH_UVSPHERE', text="UV Sphere (8x4)")
        prop.segments = 8
        prop.ring_count = 4

def register():
    bpy.utils.register_module(__name__)
    bpy.types.INFO_MT_add.append(custom_object_add)

def unregister():
    bpy.utils.unregister_module(__name__)
    bpy.types.INFO_MT_add.remove(custom_object_add)

if __name__ == '__main__':
    register()


Blender 2.8 crashes while compiling scene

This sort of situation is why it is often recommended that you render to an image sequence rather than to a video file. Once all frames have been rendered you can quickly convert the image sequence into a video format.

If blender crashes after 20 frames, then render 15 frames at a time. You could also use a script that will repeatedly start blender and render one (or 10) frame each time.

In the output panel you can enable placeholders and disable overwrite to get blender to only render frames that haven't been rendered yet, note that crashing in the middle of a render will leave the placeholder. This should allow it to continue rendering from where it was when it crashed.

When you have a blend file that causes blender to crash, consider submitting a bug report so that the developers can find why and find a fix for the next release.


How to add a crust of crystals to this object?

You can use a Particle system.

Model the crystals, i would recomend 5-6 different variations
Make them a group/collection(2.8)
Create a particle system.
Change the Render from eg. Halo to "Collection"
select your collection with the models
add a VertexWeigth in the Vertex settings as ammount
go to weigth paint and paint on where you need them to be.

You can also create a weigth paint for size to controll it


How to remove IK Target after a certain point without breaking the animation?

I Found a solution for that.
Insert all the keyframes, Pose Mode > AA > I > Visual Location, Rotation & Scale
Then click on pose on the left top corner of the 3d viewport, Animation > Bake Action
Tick, Only selected Bones (because you pressed double A to select everything), visual keying and clear constraints. enter your start and end frame and hit OK
It'll bake an animation exactly like what you created and unlocks all the IK targets.
from now, you can make new IK Targets and do the rest of your animation.
Hope it helps someone
P.S.
Overwrite current action can help you append more baked animation to your timeline.
for example, you can use ik to hold a bone in a place and animate a part of your rig, and then unlock it and bake the animation, then lock another part of your rig and animate another part.
For doing that, you need to set the start frame in the bake action to the the end frame of the previously baked animation and enable overwrite current action. this will append baked animations to the end of timeline.


Complete newbie, all vertices moving instead of the 3 I selected, not proportional editing

The reason you're seeing that effect is that you have the 'On Cage' option selected for your subdivision surface modifier.

What this option effectively does it it allows you to work on the result of the subdivision surface on your mesh in edit mode, as opposed to the mesh before the subdivision surface.

Since the subdivision surface moves vertices based upon the positions of their surrounding vertices, when you move a vertex with 'On Cage' active, you also move surrounding vertices.

Simply toggle off the indicated button, and you should see the wireframe of your cube in Edit mode, and be able to move one vertex at a time again.


It's now placed in the View Layer Properties, see screenshot. But actually I would use the Denoise node in the Compositor, because the Denoising option slows down the render and the result is inferior to the Denoise node from my experience.

Just plug it inbetween your render and the composite output, the result is usually far better than the Denoising even if you don't use any additional Denoising Data in the Normal and Albedo inputs.


Is it possible to apply texture on every object in a image

Yes, if all of them have UV coordinates then you can make a material that uses UV coordinates to map the image. If not, you can use a material that uses generated coordinates (if in Cycles, maybe use Box mapping) and then you can mention that material in the over ride field in the Render Layers dialog.

edit: I had assumed you meant objects created, but now I realize you might be talking about a found picture - in this sense, you would have to model proxies for every object and use material(s) that share that image texture.


How do I align the view to the nearest global axis?

If you have a number pad it is quite easy otherwise it is under view

http://www.blender.hu/tutor/kdoc/Blender_Cheat_Sheet.pdf


API: Is there any faster way to add/link material nodes?

Make 1 material and copy it.
In as much as I agree with the comment of
@MarkusvonBroady in that investigating making a single material and passing an argument re which image to use, especially if texture image is the only  difference per material. eg akin to Is possible play video in reverse mode into Texture Image node? with a static input like Object.pass_index.
Can get some improvement in script above by making the material once and copying in N - 1 times.  (Note tested with 500, since life's too short for 5000 on my crap machine ATM)
import time
import bpy

group = bpy.data.node_groups.new('dummy group', 'ShaderNodeTree')
for i in range(5):
    group.inputs.new('NodeSocketFloat', str(i))

start = time.time()

mat = bpy.data.materials.new(name="0")
mat.use_nodes = True
tree = mat.node_tree
nodeGroup = tree.nodes.new('ShaderNodeGroup')
nodeGroup.node_tree = group
for i in range(5):
    nodeTex = tree.nodes.new('ShaderNodeTexImage')
    tree.links.new(nodeTex.outputs[0],nodeGroup.inputs[i])

def cp(i):
    m = mat.copy()
    m.name = f"{i}"
    return m
# even quicker without renaming
# mats = [mat.copy() for i in range(1, 500)]
# or consider using generator.
mats = [cp(i) for i in range(1, 500)]
print((time.time() - start))

after running a few times this was 47x quicker than using question code. (with 500)


This can be done with a  very simple script. I've been using it out of a question asked earlier, but I can't find it anymore, so kudos for whoever made it.
Essentially, this script uses a ray of variable length and moves the camera to the position that the ray hits at. Your going to need to add an empty that points toward the place you want the camera to be, and then put your mouse-look logic on the empty, not the player (at least for the up/down axis)

from bge import logic

def collision(cont):

    own = cont.owner
    scene = logic.getCurrentScene()
    replace = scene.objects['ReplaceEmpty']
    target = scene.objects['Camera.001']
    ray = cont.sensors['Ray']

if ray.positive:
    target.worldPosition = ray.hitPosition

also, (I'm not a code monkey) you'd probably need something on the end like

else:
    target.worldPosition = replace.worldPosition

then, simple rig that up to a TLT always sensors, and Viola! cam-collision!


How I can emit Hair particles In arranged ( Grid ) Way?

Select  the vertices of your subdivided mesh and make them a vertex group
Set a particle system and select Vertex as the emitter.
Add the group in the system's Vertex Groups section (Density field, at the top)

Maybe it works.


How to check for material and execute commands if no material present?

It's easy to overthink this. A solution is to prevent those two lines from being executed (therefor not showing) if you don't have a material reference.

if mat:
    row.prop(mat, "diffuse_color")
    row.prop(mat, "alpha")
else:
    row.label('add a material')

if mat is a material reference, it will evaluate to True and show those two props, else it is None and this evaluates to False.

import bpy

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

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

        obj = context.active_object
        if obj:
            mat = obj.active_material

            if mat:
                row.prop(mat, "diffuse_color")
                row.prop(mat, "alpha")
            else:
                row.label('no materials')
        else:
            row.label('no object')

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

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

if __name__ == "__main__":
    register()

If your object has more than 1 material, you can use the return value obj.material_slots and loop over them and display their name, diffuse, alpha..etc.

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

    obj = context.active_object
    if obj:
        mats = obj.material_slots

        for slot in mats:
            mat = slot.material

            row = layout.row()
            row.prop(mat, "name")
            row.prop(mat, "diffuse_color")
            row.prop(mat, "alpha")

        if (not mats):
            row = layout.row()
            row.label("no materials for {}".format(obj.name))

    else:
        row = layout.row()
        row.label('no object')

You'll want to finetune how that displays yourself:


Why is the Z very noisy around out of focus objects?

It seems the Z always gets only one sample, so it's always noisy around defocused objects regardless of the number of scene samples. However using the mist pass (which was added since that tutorial was made) instead of the Z gives a better result:

To define the distance/thickness of the mist, enable the mist display in the camera settings so that you can see a visualization in the 3D view:

Then adjust the start and depth of the mist in world settings:


Human toes rigged not deforming correctly

The easyest way to do what you described is probebly to rig each of the tose seprat and fix them separat.

If you rig the tose as one bone they will be deformed as one object and will probebly create a new problem if you fix one.
The deformation is done lineal and you whold need to make a exponetial deformation to make it work. You could cheat and play with the weights and make it god enoth but it will be limeted.


You can use 3 different ways:

1 - Hide the underlying body and pants vertices with a vertex group assigned to a mask modifier

2 - create a shape key with a driver so that when the bones bend in such an extreme pose the shirt gets bigger and doesn't cross the body anymore

3 - Weight paint the body and the shirt exactly in the same way (if the topology lets you do this)


how to interact between diferent scenes in BGE

In the BGE, some methods can be used to interact whileas others can't. My personal favorite way to interact between scenes is by using messages. I have provided steps and an example on how to create what you are asking for. Considering that I have this ("When some sensor is triggered in the main scene, how do I link that with the GUI scene to show some information text or something else?") as my information to work with, I was not sure of what exactly you wanted.

Steps

(Now knowing exactly what you want, I am not sure if this is your exact situation)

1) With your camera, have an always sensor and a scene actuator to display your HUD:

2) In your hud, select your object that need to be visible and invisible when triggered, and create the following logic:

(This says that when the prop "Show" is true, the object is visible. The object is invisible when the prop is false. When a message "Show" is recieved, it will make the prop True. When a message "DontShow" is recieved, it will make the prop False.)

3) To send the message "Show", select your trigger object and add your logic but make sure the actuator send the message:

4) To make the object that gets triggered invisible, we need an object that sens a message "DontShow":

Product

I am sorry if I was difficult to understand in any of this, and I don't know if I was, so I've created an example .blend which can be found here. For the .blend file, when you collide with the pink object, a green sphere appears in the HUD. When you press Spacebar, it disappears. Hope this helped!


The twisting ropes is best accomplished using a curve modifier.

Start with a mesh that has a high enough resolution along the length
of the "rope".  Then create a curve representing one of the twisted
ropes plus some untwisted rope leading away.  Finally, add a Curve
modifier to the rope mesh; choose the guide curve, and set the
Deformation Axis to match the helical axis of the guide curve (I used
Z for my demo).

In a static situation you will see the rope coiled along part of the
curve, and then follow the untwisted part away.  Create a 2nd and
third copy of the rope mesh and the curve guide to illustrate 3
threads twisting together.  For 3 curves you will want to rotate each
one by 120 degrees.

In order to animate this, have each guide curve spin on its helical
axis.  This will appear as three ropes spinning in a partly twisted
state.  In order to make it seem like the twist is progressing along
the ropes, animate the curve to move lengthwise along its helical axis
(keyframes for the Z coordinate).  The change in the relative position
between the mesh and the guide curve causes the mesh to change what
part of the curve it follows over time.

You will probably want the fcurves to be linearly interpolated
(t in the curves editor) and linearly extrapolated
(shift-e).

Unfortunately, the exact geometry of this situation causes the mesh to
slide backwards along the curve (because the length of the curve is
longer than the axial distance travelled).  To compensate, you can
animate the mesh to translate in the opposite direction to the curve.

If you don't want to animate the Z location of each of the 3 meshes
independently, you can animate a single one and use the Dope Sheet's
Action Editor mode to give all of the meshes the same Action datablock
which will cause them all to animate identically.

Now you have an animation where the twisted end of the rope appears to
be spinning and the loose end with the threads is sliding up along the
Z axis.  If the loose ends are supposed to be spinning, you will have
to animate the guide curves spinning as well.

If your guide curve is constructed by python, you should know exactly
how much translation represents a full twist of the helix.  If not,
you can just eyeball it.  Again: you will probably want the fcurves to
be linearly interpolated and linearly extrapolated.

There is a remaining twisting motion of the thread mesh that you can
counteract by animating the rotation of the mesh.  You can eyeball
this (mostly because I don't know exactly what equations are in play
so I can't guide you to a mathematical calculation).  Again, you will
want to make this linear to match the animation of the guide curves.

The final hairball is keeping the loose ends of the thread at a
constant distance from the helical axis.  This requires us to animate
the SHAPE of the guide curve.  This is accomplished using a Hook
modifier.  The hook modifier can be used on curves and on meshes.

While the hook modifier can bind several vertices or control points to
the motion of another object or bone, the simplest situation is to
hook a single control point to a single empty.

Select the curve.  Switch to Edit mode and select the control point
for the loose end.  Use Ctrl-h to hook that
point to a New Object.  Switch back to Object mode.

The curve is still the active object, and the new empty has
conveniently been added to the selection.  Use
Ctrl-p to parent the empty to the curve.  This
will allow it to rotate with the curve.

Now you must move the empty into position to match whatever frame the
"loose" ends of the thread are attached to.  Since I chose Z for my
helical axis, that means my X and Y will remain fixed.  I will animate
the Z so that the hooked empty lines up with the end of the rope mesh.
You probably want to take care not to keyframe the X and Y position
(you can select the unwanted data_paths in the Graph Editor and
x to get rid of them if you accidentally create keyframes
for X or Y).

(The reason you avoid keyframing X and Y is so you can reuse the
animation on the other hook empties.  It revolves around the
obj.matrix_parent_inverse and could easily become its own essay if I
knew what the heck was going on).

At the beginning of the animation the keyframes of the hook empty can
be spaced out (1/rotation was fine at the beginning).  However, as you
reach the end of the animation and the available rope begins to run
out, the Z will have to change faster, and non-linearly (I think it
ends up being a hyperbola).  Just scrub through the time line; adjust
the Z coordinate; and insert a keyframe.  If you aren't satisfied go
ahead and insert more keyframes whenever the hook deviates too far
from the end of the rope.

Once you have animated one hook you can repeat the hook-creation
procedure to create hooks for the other threads.  However you do not
have to repeat the keyframing.

Since the hooks are children of the curves, you can reuse the
animation datablock.  Go into the Dope Sheet and switch it to Action
Editor mode while the Empty is the active object.  You can use the
menu button to pick the action from the previously-animated empty (you
might have to select that first empty so you can see its action name
in the Action Editor if you did not memorize it).  Now the action is
shared between those objects.  (The NLA editor also has the ability to assign actions to the active object, but as of 2.74 there are bugs in the UI that can confuse novice users).

At this point, your twisting ropes should be animating correctly, at
least for a certain range of frames.

If you go too early, your ropes will separate because they no longer
line up with the helical portion of the guide curve.  And if you go
too late they "break loose" from the frame and become completely
wrapped.

Because I am better at python than hand-modeling, I constructed the curves using the script at http://web.purplefrog.com/~thoth/blender/python-cookbook/spiral-bezier.html .  I will include a copy of the python source inline, even though it is only peripherally interesting, and you might need a different shape on your more advanced curves:

import bpy
from mathutils import *

def adjust_handle_right(bpoint):
    bpoint.handle_right = bpoint.co * 2 - bpoint.handle_left

def set_handles(bpoint, dx, dy, dz):
    bpoint.handle_right = bpoint.co + Vector([dx,dy,dz])
    bpoint.handle_left = bpoint.co - Vector([dx,dy,dz])

def make_bezier_spiral(name, radius, dz, cycle_count):

    curve = bpy.data.curves.new(name, 'CURVE')
    curve.dimensions = '3D'

    bez = curve.splines.new('BEZIER')

    after_spiral = 4 * cycle_count
    final_length = after_spiral +1
    bez.bezier_points.add(final_length - len(bez.bezier_points))

    for bp in bez.bezier_points:
        bp.handle_left_type = 'FREE'
        bp.handle_right_type = 'FREE'

    for i in range(cycle_count):
        bp0 = bez.bezier_points[i*4]
        x = radius
        y = 0
        z = (i)*dz
        bp0.co = (x,y,i*dz)
        set_handles(bp0, 0, radius*.5, dz/12)

        bp1 = bez.bezier_points[i*4+1]
        x = 0
        y = radius
        z = (i+0.25)*dz
        bp1.co = (x,y,z)
        set_handles(bp1, -radius*.5,0, dz/12)

        bp2 = bez.bezier_points[i*4+2]
        x = -radius
        y = 0
        z = (i+0.5)*dz
        bp2.co = (x,y,z)
        set_handles(bp2, 0, -radius*.5, dz/12)

        bp3 = bez.bezier_points[i*4+3]
        x = 0
        y = -radius
        z = (i+0.75)*dz
        bp3.co = (x,y,z)
        set_handles(bp3, radius*.5,0, dz/12)

    bp = bez.bezier_points[after_spiral]
    x=100
    y = -radius
    z = dz*(cycle_count -0.25) + x/(radius*.5) * dz/12
    bp.co = (x,y,z)
    set_handles(bp, radius*.5, 0, dz/12)

    return curve

def mission1(scn, radius, dz, cycle_count):
    name = "spiral"
    obj = bpy.data.objects.get(name)
    curve = make_bezier_spiral(name, radius, dz, cycle_count)
    if obj is None:
        obj = bpy.data.objects.new(name, curve)
    else:
        obj.data = curve
    try:
        scn.objects.link(obj)
    except:
        pass

#

scn = bpy.context.scene
mission1(scn, 2, 12, 5)

This solution works well for twisting, but if you end up needing weaving or any other complex motions, you may need more hooks on the control points of your curves, or resort to more advanced techniques such as a hundred-bone armature chain.


Segment an object in X, Y and Z

Using a script written for blender 2.80

Split this thing 4 in x 3 in z
I've been playing around with a bmesh bisect script that is a lot quicker, but unfortunately doesn't fill in the slices like a boolean. Here is a boolean modifier version.
The method is similar in using the bounding box to align the planes.

Add a bisect plane, make it solid by adding a solidify modifier and
thickness.  Use the object dimensions to make sure it is both way bigger and thicker.

Slice along the bounding box, shave a piece off as a dupe, flip the
direction of thickness and shave that piece off original. By shave
I am using boolean difference modifier

Example of reversing the boolean by negating  the thickness of the solidify modifier

Add a boolean difference modifer to object, make the plane the
modifier object.

Move the Plane to each cut location and repeat the process on result meshes for each axis.

Clean up, remove the plane

.
The script. Edit segments_x, segments_y, segments_z to suit. (Splits in local coordinates)
import bpy
from mathutils import Matrix, Vector
context = bpy.context
ob = context.object
size = 4 * max(ob.dimensions)
mw = ob.matrix_world

def bbox(ob):
    return (Vector(b) for b in ob.bound_box)

def bbox_center(ob):
    return sum(bbox(ob), Vector()) / 8

def bbox_axes(ob):
    bb = list(bbox(ob))
    return tuple(bb[i] for i in (0, 4, 3, 1))

o, x, y, z = bbox_axes(ob)

bpy.ops.mesh.primitive_plane_add(
        location=mw @ bbox_center(ob),
        size=size)
chopper = context.object
m = chopper.modifiers.new("Sol", type='SOLIDIFY')
m.thickness = size

chopper.select_set(False)

def chop(ob, start, end, segments):
    slices = []
    planes = [(f, start.lerp(end, f / segments))
            for f in   range(1, segments)]

    for i, p in planes:
        m.thickness = -size
        bm = ob.modifiers.new("BOOL",type="BOOLEAN")
        bm.object = chopper
        bm.operation = 'DIFFERENCE'
        M = (mw @ end - mw @ start).to_track_quat('Z', 'X').to_matrix().to_4x4()
        M.translation = mw @ p

        chopper.matrix_world = M
        cp = ob.copy()
        cp.data = cp.data.copy()
        context.scene.collection.objects.link(cp)
        bpy.ops.object.modifier_apply({"object" : cp}, modifier="BOOL")
        slices.append(cp)
        m.thickness = size
        bpy.ops.object.modifier_apply(
                {"object" : ob}, modifier = 'BOOL')
    slices.append(ob)
    return slices

segments_x = 4
segments_y = 1
segments_z = 3

for ox in chop(ob, o, x, segments_x):
    for oy in chop(ox, o, y, segments_y):
        chop(oy, o, z, segments_z)

bpy.data.objects.remove(chopper)

Related
Create Cross Sections and 2D planes in Blender
Render 2D cross sections of 3D Objects
Python: Bisect mesh into n parts, without separate 'LOOSE'


How would I get brighter color with the voronoi node?

I would personally use the ColorRamp node. It permits not only to color but also to adjust the brightness of the result. This can help you: When can a Color Ramp be used to create a gradiant in a Cycles shader?


Object appears twice when linking it to a collection

So I'm going to give two answers: the first for the question you actually asked regarding doubling linking objects, and the second for the question you wanted to ask, that being how do you create objects in a specific collection in the first place.
Given an object called 'bone' which was created in the current collection and a collection called 'root' you want to move 'bone' from the active collection to the 'root' collection:
# use unlink(bone)
root.objects.link(bone)
bpy.context.collection.objects.unlink(bone) # this is the active collection

The better way would be to create 'bone' in the 'root' collection in the first place. In the script below I do that by changing the active collection.
import bpy

def set_collection(collection_name):
    if collection_name in bpy.context.view_layer.layer_collection.children:
        root=bpy.context.view_layer.layer_collection.children[collection_name]
    else:
        coll=bpy.data.collections.new(collection_name)
        bpy.context.scene.collection.children.link(coll)
        root=bpy.context.view_layer.layer_collection.children[coll.name]

    bpy.context.view_layer.active_layer_collection=root
    return(root)

root = set_collection('Soear')
bpy.ops.object.empty_add(type='CUBE')

bone = bpy.context.active_object

Ref: Change active collection
Ref: https://devtalk.blender.org/t/set-active-collection/2409


I would go with a more PBR based set up, but since you mentioned you are fairly new to Blender I don't want to get to involved with the node set up.

A simple node set up could look like this. (It's not exactly right but maybe it is close enough for you. If I have more time I will try to do a more advanced shader)

To get those sparkles to really shine you may need to do some post processing. Although they show up a little better when you move the camera around.

I am just mixing between glossy shaders with a noise texture in the displacement to get that grainy texture.

Try messing the with value of the multiply node to get the shine that you want.

Also maybe darken the tan glossy shader some more, so the white sparkles pop better.

W/O displacement:


My image renders in black and white and not on the color it shows on the compositor?

What you see in the backdrop of the compositor is the output plugged to the active "Viewer" node in compositor, while the final render result is the thing that is plugged into the "Composite" node. From your screenshot it looks like your "Composite" node is not plugged into the end of the node chain, but rather into some node a bit earlier in the chain. Attach it into the same socket your viewer node is plugged into, and you should get the same result you see.


I've never done this, but I think you would get most accurate horizon distance, if you use UV Sphere with radius being average Earth's radius in your region and then work from there (remove all the surface area you are not going to need, subdivide faces at remaining region, apply uv texture), though its hard to tell if this method wouldn't be overkill or too inaccurate, depending on size of your region.

You can calculate Earth's radius at specific latitude with tool like https://rechneronline.de/earth-radius/

As for the textures - it is worth noting that no satellite photo is "flat" (like drawn map) and google maps doesn't display them on flat surface either - it is already mapped onto sphere, so you would have to map UVs "from view" (with viewport having as close settings as camera that took original image), again - maybe more work than needed, depending on region.


why the mesh moves from its position with curve modifier

You can solve this problem by following the steps:

Set the origin of the curve and the stairs to the geometry
Move the stairs downward on the x-axis to where the arrow is
Rotate it on the y-axis to be parallel to the arrow (Do it in the front orthographic view
move it along the x and the z axis repeatedly to find the best fit.
Which will give you this:

For getting a much more refined curve I added in another nurbs curve and did a lot of tweaking. Added in plane.Modeled it into a stair added in an array modifier and a curve modifier.And finally this is what I got:
Here is the .blend file
https://drive.google.com/file/d/1nvo0X5z172oPs1BdGVXNDQF2nUX20u_j/view?usp=sharing


I had to change the Start Frame to 626 (which was the frame I wanted the mask to start) under Mask Settings on the UV/Image Editor.


You character jumps because its position to its origin has changed between the 2 actions.

It depends what you mean by merging actions in the NLA Editor. You can merge 2 strips to make one in the NLA but if you just want your character to have a coherent animation (i.e. have the same position at the beginning of the second action than the one at the end of the first action) you can do it this way:

Open the Graph Editor. In the NLA, select the second strip. Press tab so that you can see all the bones curves in the Graph Editor.
As the master bone of your armature is Hips, and as the shift between the 2 actions position is on its Z location, select the Hips Z Location track and press shiftH to make all the other ones invisible.
Select the curve with A and move it on its own Y axis, you can see that the armature moves in the 3D view. Move it where it is supposed to be.
Correct on any other axis if needed.

Now keep in mind that it seems like you don't have any transition between the 2 animations, maybe it's better to create one. Also, instead of keeping two separate actions, you can choose to select all the animations of the second action in the Dopesheet and paste them at the end of the first one. You won't need 2 strips anymore as you've copied the content of the second one in the first one, and you'll have to correct the position the same way as explained.


Where do I edit the the keyframes of a bezier curve path animation?

The reason you could not find the keyframes is because there aren't any!
See when you use the Follow Path command blender sets up the curve animation by using a generator. You can see this generator by opening up the properties panel in the graph editor, with the curve selected.

That is not what you want. You need just two regular keyframes. So delete that modifier (just click the X).
Now you can keyframe the curve Evaluation Time. Go to the first frame, set the Evaluation Time to 0 hover over the input field, and press I
Now go to frame 100 and set the evaluation time to 100, again hover over the input field, and press I.

Now in the graph editor you will see your animation (if the curve is still selected). You can drag out the ending keyframe to make the whole animation last longer (camera spin slower), but what you are really interested in is changing the curve. (By default the interpolation type is Bezier and that is what you want.)

With the generator you were getting a linear animation, with the bezier interpolated keyframes you have a nice easing at either end.