how do I extract the following values I'm watching Rigging's tutorial. I'm having trouble applying the driver to the transform constrainted  bone. The following words should be included in the path value. I don't know how to extract the following values.

pose.bones["upper_arm.fk.L"]["isolate_rotation"]

When choosing rig as target object, typically you can select desired bone.

Be sure your 'rig' object is of 'ARMATURE' type.


Texture not appearing in render? I'm noticing a significant difference between when my objects are observable in the 3D View and when the objects are rendered.

Both objects have a material with toon settings and each have materials (incorrectly?) added to the object. the human mesh has separate textures for the head and body. The sword and the human mesh both have mapping > coordinate set to UV and Mapping > Map set to UVMap, however only the head texture seems to show up properly, and the sword texture doesn't show up at all.

Blend file

You just can not see it because of bad lighting. The highlights and shadows are just much more apparent than the texture color.

Move your lamps around and you will see that the texture is actually there. The body textures however are missing from the file you uploaded.


Problem with screw modifier: oval I'm having a problem with the srew modifier in Blender.
Instead of a nice circle, it produces an oval!
I have the problem with both 2.76 and 2.76b, and I run Ubuntu 15.10. I've probably done something wrong, but what?
Update: here's the blend file:
(as the problem is solved, I removed the link).
The problem is regarding the red object (it's selected in the image below).
(I had to remove one screenshot to add the link...)
Here is a screenshots:

The circle object has scale unapplied.
Press Ctrl+A > Scale and red circle will be screwed correctly.

Read more:

Why is it important to apply transformation
Apply Object transformations - wiki


Objects change their places? I don't know where is my mistake ? every time when make I animation of objects and then change the frame rate, all objects moves to the selected one ?!! I don't want them to change their places like that. How to solve this ?

The number highlighted below indicates that your objects share one action which means that they all share the same keyframes.

You can create an copy of the action for the active object by clicking on the number. After that you should be able to modify the object's keyframes individually.

Update:
If you want to affect multiple objects by a single action, I think the default approach would be to add an armature with a bone for every object, add a Child-Of constraint to each object, choosing the specific bone, and then creating an action which animates the bones.


adding a delay for a driver I have a driver on a keyshape which is controlled by an object moving in the scene.
I would like to add a 5 frame delay so the keyshape changes are delayed by X frames.

I am using scripted expression currently it has
(var+2.73)*.1

so if its possible to add what ever is required to make a delay.

cheers
Shaun

Similar to this answer, we can use a driver function to capture the relevant details - but instead of using the values to calculate the velocity and/or acceleration, we can simply store the previous data value into a queue and retrieve the value after the specified number of frames.

Here's the code you'll need - paste it into a Text Editor window named something like 'delay.py'. Tick the 'Register' checkbox to ensure it's run automatically whenever the .blend is loaded - or just run it manually using the 'Run Script' button.

import bpy

attributes = {}

def drv_delay(frame, attr, delay, value):
# Used to delay the value by a specified number of frames.

    # Determine whether we already have a value for this attribute
    if attr in attributes:
        attribute = attributes[attr]
    else:
        # Not found - create a new record for it and store it
        attribute = {'frame':frame, 'dataqueue': []}
        attributes[attr] = attribute

    if frame <= 1:
        del(attribute['dataqueue'][:])

    # Only store the value on change of frame (to guard against being called multiple times per frame)
    if frame != attribute['frame']:

        # Store this value in the queue
        attribute['dataqueue'].append(value)

        # Discard any elements that are more than the delay period
        while len(attribute['dataqueue']) > (delay+1):
            del(attribute['dataqueue'][0])  #remove one from head of the list

    # Store frame
    attributes[attr]['frame'] = frame

    #return the value at the head of the list
    if len(attribute['dataqueue']) == 0:
        return value
    else:
        return attribute['dataqueue'][0]

if 'drv_delay' in bpy.app.driver_namespace:
    del bpy.app.driver_namespace['drv_delay']
bpy.app.driver_namespace['drv_delay'] = drv_delay

The script defines a driver function and registers it in the driver namespace to make it available to use in driver scripted expressions. This means that we can use a new function in the driver expression as follows :

drv_delay(<frame>, <attribute>, <delay>, <value>)

Where frame is the current frame (so we can detect frame change for handling the delay), attribute is a name for this 'delay queue' - each property will need to be given a unique name so that blender knows which one we are referring to), delay is how many frames the 'queue' should buffer, value is the actual value that we want to delay.

To use it, set up the driver Scripted Expression as something like :

drv_delay(frame,"cube_y",10, var)

This sets up a delay queue named 'cube_y' (for the y-coordinate of the cube) with a delay of 10 frames. var is the value being delayed. The function will essentially return the var value passed in 10 frames ago.

To demonstrate, here's an example with an Empty moving in the scene, with a Cube delayed by 10 frames and a Sphere delayed by 15 frames. The queues are automatically reset at frame 1 so the motion can restart afresh.

Blend file included


how can I make my particle affects not glow? I am making a scene with a particle effect system in it, and I am wondering how I can take away the glow from the object. It is really bright, and it is not intended to look like that. Thanks

If you are using Emitter particles, you have to change the render type from Halo to something like Object, and use an object like a cube with a non Halo material on it.


Render layers not appearing in the compositor I am trying to follow the Kenan Proffitt tutorial on YouTube for two point motion tracking but the Foreground and Background layers are not appearing in the compositor.
When I add the video input node and select the video I get a small square in the node with the video.
When I add the two Render Layer nodes (for my two layers) and select my scene I don't get that small preview square - and there is nothing from these layers in my final render.  I also get nothing if I plug the Render Layer node(s) directly into the viewer or composite node.
Picture of nodes without little window:

Blend file

Delete the movie from the video editor and then hit F12. Then the render will be visible.


Long error message when try to extrude and input box is empty? (I can now no longer use blender) I was making a house in blender using a tutorial. I have not messed with the settings I have only ever added some addons. Today when I went on blender and tried to extrude a circle it did not work and gave me a really long error message. I reset my factory settings and reinstalled blender it still didn't work, so I looked in input just in case it was something to do with that but the whole input box is black. I also checked to see if the same thing as happening on the steam version of blender nothing had changed.I installed a beta version of flip fluids from GitHub but it had lots of python files so I installed all of them, it doesn't show up as an addon though.

first part of error message

second part of error message

input box

my addons.

Thank you for your help!

(edit: everything is fine on blender 2.80)

I expect that the copy of flip fluids wasn't installed right and is causing this issue. The flip fluids addon found on github is not a simple python addon that can be copied into place, it needs to be compiled for the target system before installing.

As you have reinstalled blender, the issue would likely be in your user settings. Find the USER path for your system and move or rename the folder with the version number (2.79) to say 2.79-bad. This will prevent blender from loading anything in there.

Once blender starts without any user config files, you can try replacing some files to try and restore to where you were before the issue. In the config folder, try replacing the startup.blend, userpref.blend and bookmarks.txt. Inside the scripts, you could try replacing some other addons you may have installed if you know they belong to an addon that you can't find the original files for. If you do this a couple of files at a time you can identify any that cause the issue.


Is it possible to export .MDL files? I'm throwing this question out there if anyone is interested.  I'm trying to build a simple rotorcraft model for a flight simulator.  It has 10 engines and is a called a deca-rotor.  I have a cheesy model built up in .blend format and have been able to export to .3ds.

I am ultimately interested to export to .mdl for the flight simulator?  Can anyone help me make this conversion?  Thanks in advance.

After some research I see there is a mdl importer GitHub repo for bringing models into .blend but I am interested in the export path.  Thanks and hopefully this is not a duplicate issue.

There is a game development framework called Urho which utilizes 3D models as .mdl files for the model and .png for the texture, you don't need to download the whole framework but they have a plugin for blender that lets you export a model in those formats.

See http://urho3d.wikia.com/wiki/Blender_to_Urho3D_Guide

Simple Installation: https://github.com/reattiva/Urho3D-Blender

^^^ go to that page and  click the green button where it says 'clone or download' then click Download Zip

Once you have the zip file, open Blender, go to File -> User Preferences -> Addons.

At the bottom click  Install From File... and give it the zip file.

Then click the checkbox to enable, and to see the export option:

The addon is located in the "Properties" panel, at the end of the "Render" page (camera icon)

Note: In Urho, the textures are mapped to the models via xml material files, this is due to the Xamarin (mobile .NET) architecture of Urho projects. If all you need however, is the .mdl then this is the solution for you :)


Is there a way to mirror a mesh with hair but without deforming these? i was trying to mirror some eyelids with some hair but they don't seem to appear on the mirror version of the eyelid, so, i decided to apply the mirror but then the hair deforms like this:

Maybe i'm still too noob, but i don't see a way of how to fix the deformed hairs on the other eyelid.
Also, i tried to duplicate and deform the mesh with mirror transform, but isn't the same like the mirror modifier, but unlike the mirror modifier, the hairs doesn't seem to get deformed. Still, it's not a good way to do it:

You can clearly see that the hairs remained good but the mirror modification fails on his mission (or maybe the one who's failing is me :P)

So, is there a way to mirror an object without the mirror modifier but with the same results as this?

Go to Edit Mode, flip normals on the mirrored parts, then go to Particle Mode, enable X-Mirroring, set Comb Tool strength to 0.001 and comb the original side, the mirrored sidewill match.

If there are any artifacts with some of the hair you can fix them manually or delete/recreate individual guides with mirror on.


How to add resolution to a mesh created from a curve I am creating an axe, I currently have this outline that I traced from a background image. I have converted it to a mesh from a Bezier curve using AltC, but now I want to give it some depth.

How can I add resolution to the large NGON face? I need resolution so that I can chamfer the edges towards the sharp points on each side.

Here is what my mesh looks like.

The easiest way to go about this would be to make use of an addon called SIRE outline. Also see this answer.

Once you have installed it. It should appear in the Toolshelf, T. What you should be after early is supporting geometry with good edgeflow.

Use the Inset feature of the addon and offset your outline to the desired amount.

After that, it's just a matter of filling in the even faces and for the rest, you have the supporting geometry near the curved edges so a ngon should suffice.

After that, it is as simple as extruding the model, giving it some depth and chamfering the edges. If you should also need to smooth the model, to keep it sharp simply add edgeloops to the edges or make use of the crease tool.


How to render certain edges I been looking for this everywhere online and still found no answer. I'm trying to find a way to use freestyle but it slows my render down. How can I use freestyle for certain edges while not rendering the rest of the mesh at all. Like seams almost I just don't even want the render to even see the rest of the mesh. All I want is the outline of certain edges to render quickly. I also have most settings in render tab set low.

Right now I have a cube with outline rendering at 0.15  to  0.20

My question is if there's a way to mark edges to get rendered while the rest of the mesh doesn't even get seen, I think that will speed up the render exponentially.

You may use the Edge Mark option of the Freestyle to define what edges would be rendered.

Enable Freestyle renderer in Render header-->Freestyle panel. Set the line thickness as you like.

Select the edges you want the Freestyle to render, then press Ctrl+E-->Mark Freestyle Edge to make them renderable.

In Render Layers header-->Freestyle Line Set panel check the Edge Mark checkbox. Uncheck the Silhouette, Border and Crease checkboxes to make the contour of the object renderless.

Here's the render result:

You can go further and render only selected edges. With the vertices/edges selected in Edit Mode duplicate them with Shift+D and make them a separate object (P-->Selection). Move the original object to another layer and hit render.

Here's the result:

Not sure if it is what you're looking for. Let me know if I helped you.

UPDATE: If you want to render only the edges give the object a Transparent shader in Cycles. The Freestyle settings should stay the same as in the examples above.


Map the uv values as the color of a material Using the material node compositor, I need to translate the x and y of the uvs of a mesh (assuming they are ranged from 0 to 1), to the red and green color value of a material.

In principle, just plugging the "UV" outlet of the "Texture Coordinate" node into the "Color" property of your shader should work. This is because, by chance, your choice of colors (red, green) matches the R, G, B order.

A more elegant and controllable way is in the node setup below. The three nodes in the middle are MixRGB nodes, using the "Mix" and "Add" blend modes. Note: the Fac: value for "Add" must be 1.0.

You may want to swap red ↔ black and green ↔ black, as currently higher X/Y values give lower red/green intensities.


How to center text on slanted triangular face? I am trying to model my own 20 sided die and to add the numbers on each face. I am having trouble getting them centered on each triangular face. Any suggestions on how to achieve this?

Here is the script to do that

import bpy
import bmesh

def addText(text, location, rotation, mat, fact = .2, extrude = .005):
    myFont = bpy.data.curves.new(type="FONT", name="myFont")
    fontOb = bpy.data.objects.new(fontObjName, myFont)
    fontOb.data.body = text
    bpy.context.scene.objects.link(fontOb)
    bpy.context.scene.update()
    fontOb.select = True
    bpy.context.scene.objects.active = fontOb
    fontOb.dimensions = (fontOb.dimensions[0] * fact, fontOb.dimensions[1] * fact, fontOb.dimensions[2] * fact)
    fontOb.data.extrude = extrude
    bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY')
    fontOb.location = location
    fontOb.rotation_mode = 'QUATERNION'
    fontOb.active_material = mat
    fontOb.rotation_quaternion = rotation.to_track_quat('Z','Y')
    fontOb.select = False
    return fontOb

def labelObjFaces(obj, mat):
    bpy.ops.object.mode_set(mode = 'EDIT', toggle = False)
    bm = bmesh.from_edit_mesh(obj.data).copy()
    bpy.ops.object.mode_set(mode = 'OBJECT', toggle = False)
    for f in bm.faces:
        fontOb = addText(str(f.index), f.calc_center_median(), f.normal, mat)
        fontOb.parent = obj

fontObjName = "__fontObj123"
matName = '__labelMat123'
deleteOldFs = [fObj for fObj in bpy.data.objects if fObj.name.startswith(fontObjName)]

#clean-up
for delF in deleteOldFs:
    bpy.data.objects.remove(delF)
if(matName in bpy.data.materials):
    bpy.data.materials.remove(bpy.data.materials[matName])

mat = bpy.data.materials.new(matName)
mat.diffuse_color = (0.3731134057044983, 0.59569658041000366, 0.3000000715255737)

labelObjFaces(bpy.context.object, mat)

To execute the script.

open the blend file that has your object
switch to script view
click new button
paste the code
deselect all the objects (move the mouse to 3d view and press a)
select the object on which you want to put the labels by right clicking on it
click the 'Run Script' button


Parenting Armature to Mesh with Automatic Weights deforms Mesh I've been following a youtube video to learn about 3d modeling and adding armatures to meshes (video: https://www.youtube.com/watch?v=Q9f-WVs3ghI&t=610s) and whenever I try to parent the armature to the mesh it twists and deforms the mesh. I done a good bit of research on what worked for other people have done to fix the problem and so far none of it has worked for me.
So far I have reset rotation of all bones to zero, made sure the bones were mirrored perfectly,changed pole angles, and other things similar to this. None of these have seemed to solve the problem so far.

Any and all help is welcome :)

After parenting:

And my blend file can be found here:

The problem is that the rest pose is different from the pose pose which makes the the mesh deform badly as you showed. To fix this you'll need to go into Pose Mode, select all bones then press the space bar and type "Apply Pose as Rest Pose" then run the Apply Pose as Rest Pose operator as shown below:

This will fix your issue and parenting will be done without bad deformation as shown:

Looking at the weight painting done through the automatic weight painting, I found that the vertex groups are not properly made through the auto weight painting, as shown below the upperleg vertex group has lots of vertices assigned to this group although they shouldn't, so the better thing to do is to do the parenting with empty groups and then setting each vertex group manually through edit mode to prevent these automatic weighting issues.


Softbody simulation on a character Don't know what's wrong with the settings. The result comes out horribly no matter how hard I tried

I'd like to make this springy like the real Baymax!

I looked into your file and made some changes of my own.
I noticed in your Softbody settings, under Goal you've selected vertex group: Soft
The issue was that you selected every vertex and weighted them to 1.0. I changed it so the belly part is at 0 weight and tweaked some of the settings and it seems to work for me
I would also recommend to first getting used to softbody physics as Jaroslav advised.


Reducing polygons while preserving the texture? So, i have made this map model in a program called MagicaVoxel. I exported it to Unity and noticed that the mesh had an absurd amount of polygons. What the program does is that it creates a polygon for each voxel color in the mesh, as shown here:

So what i want to do is use BLENDER to reduce the amount of vertices (or polygons), without screwing up the texture. Is there a way i can do that?
This is the texture that came out with the model (to see the colors, open the image an zoom in to the right part of the line. You can see the colors):

Just tried MagicaVoxel out of pure curiosity and this is what I found out.

While MagicaVoxel at first glance seems to produce decent game-friendly triangle-based geometry, it actually does the complete opposite.

The software uses a "texture" but it does so in an unusual way. There is absolutely no UV in a traditional way. What MagicaVoxel does is overlaying all vertices of the faces with the same color and putting them on the same uv coordinate onto a colormap like image.

That means that the vertices of all faces which share the same color also share the same UV coordinate and it also means that every change in color produces more faces and of course more vertices

Furthermore, not all of the vertices are connected to one another so all of Blender's simple semi-automatic methods (dissolve edges, decimate modifier) of reducing polycount will ultimately fail, because dissolving an edge of a triangle simply destroys said triangle.

Reducing the polygons is only half the battle and the overall topology of voxel-like meshes normally is decent enough. The disconnected vertices on the other hand produce a high unnecessary vertex count that needs to be reduced, because they produce unnecessary normals.

IMHO the best method to deal with your mesh is

Creating a copy of it and reducing polycount by using a remesh modifier and a collapse decimate modifier with triangulate on top of it.

Unwrapping the new mesh using smart uv project

Baking a new texture for the decimated mesh from the original by using the "Selected to active" bake method.

Creating a new material for the new mesh and assign the texture


Problem of selection after a subdivision surface I can't understand why, after the apply of my sub surface, when i try to select all the mesh with a, the result come out is very weird (never seen before). From this

Clicking a

This is the file. Try to apply the modifier and select all the mesh with a. What could be the problem?

I can't figure out. Thank you

There is no problem with selection, but with so many edges, the edge info : Length looks messy.

You just need to deactivate it.


How to change frameserver file format If you set the output to frame server you will get images at localhost:8080/images/ppm/1.ppm

is it possible to change the format from ppm to open exr for example ?

It's not possible right now.

The frame server is implemented in source/blender/blenkernel/intern/writeframeserver.c .As of 2.78c, Blender will only respond with a PPM image, but it looks like other formats can be easily added.


Switch a light on/off with animation nodes I would like to switch on a point light (increase the emission strength from 0 to 100). Then turn it off again after a number of frames.
I would like to realize this with animation nodes.
Is that possible?

You can do it animating the light's strength.

(I did it in Cycles)

I couldnt add the screen shots that i took :/

First, select your lamp
Then go to the frame that you want the strength 0
Go to light settings and set the strength to 0
Press the 'i' key with your mouse cursor over the strength value and it will gets yellow
Go to the frame that you want the strength to be 100, set the strength to 100 and press the 'i' key again with the mouse over the number


What is the best workflow to import entire complex scenes from Cinema 4D to blender? I'm new here and somewhat new to exporting my scenes.

I would like to utilize the cycles render engine to speed up my render time, but still use Cinema 4D as my primary workspace.  What are the best methods to achieve this?  I'm working on a specific project that involves animation, animated textures, all sorts of reflective materials, plenty of geometry, switching cameras, and global illumination (including emission-based textures for most of the lighting).

I know this is a tall order, but I'd like to see if there's a way to get this into Blender purely for cycles GPU rendering.  I also understand that Cinema 4D will be getting cycles sometime in the "near" future, but this project can't wait that long.  Thanks in advance!

I'll be posting a similar thread within the C4D forums, but figured I'd try the blender community first as it seems you guys really know your stuff.

FBX or Alembic will provide you with similar level of support - Static geometry import is the only thing that will be fully OK.

Animation would be supported on a rather simple and limited level (for FBX, objects and rigs animations, and shapekeys; Alembic features a fully baked animation on both object and geometry levels).

Shading support would at best be very basic (FBX supports basic shading/texturing, similar to fixed pipeline of old OpenGL e.g., afaik Alembic does not handle shaders at all?).

More scene-level things (like world) would be totally lost.

So in a word, think you should either wait for Cycles to be supported by C4D, or use whatever renderer you have currently with C4D.

A complete accurate scene export between 3D apps is (and probably will remain) pretty much impossible, unless you have the means to develop your own tools (as big studios do for their own production pipeline) - and even then, they usually only convert a subset of data betweens their apps…


Blender api: How to set shapekeys as keyframe in a loop? I am writing a simple script using the blender api (2.8) that essentially translates keyframed animation info from a rigged model to another model using shapekeys. It attempts to do this by the following;

Moves through a scene frame by frame, applying an armature modifier to a mesh and then setting that modifier as a shapekey
Moves through the same scene frame by frame setting the above created shapekeys as keyframes one by one setting their value to 1 in their corresponding frame.

Part 1 works fine, and I think I understand how to write part 2 as the keyframes are added. The problem I have is that the value of 1 is only applied to the last shapekey and does not change per frame.

Please see below my code. Please note I am a python novice:

    import bpy
    #save the total number of frames as var
    frames = bpy.context.scene.frame_end + 1

    #loop through frames, jump to each frame, add the armature, set as shapekey
    for frame in range(frames):
        bpy.context.scene.frame_set(frame)
        bpy.ops.object.modifier_add(type='ARMATURE')
        bpy.context.object.modifiers["Armature"].object = bpy.data.objects["rig"]
        bpy.ops.object.modifier_apply(apply_as='SHAPE', modifier="Armature")
        #loop through shapekeys and add as keyframe per frame
        for shapekey in bpy.data.shape_keys:
            for i, keyblock in enumerate(shapekey.key_blocks):
                if keyblock.name != 'Basis':
                    curr = i - 1
                    if curr != frame:
                        keyblock.value = 0
                        keyblock.keyframe_insert("value",frame=curr)
                    else:
                        keyblock.value = 1
                        keyblock.keyframe_insert("value",frame=curr)

And here is screenshot of the results you can see the shapekeys are applied, that they are all keyframed, but the value of 1 is only applied to the last shapekey and does not change per frame. (Hard to see that here but please see attached file).

What I expect to happen is that for each frame, the corresponding shapekey will have a keyframed value of 1 and all the others have 0.

So;

for frame 0, 'Armature' shapekey has value 1, all others have 0
for frame 1, 'Armature.001' shapekey has value 1, all others have 0
for frame 2, 'Armature.002' shapekey has value 1, all others have 0

etc. and so on, the result being the equivalent of the original animation but using shapekeys instead of a rig.

It is probably easier to understand the intent and the issue by looking at an example file so if you are willing, I attach the file here. Please open and select the 2nd model ('Cube.001') then go into the scripting layout and run the 'Test' script. You will see the shapekeys are successfully created and the keyframes are applied but the values are not correct.

Downloadable file here

My feeling is that there is an issue with my loop, that is does actually work but it keeps overwriting it each time which is why only the last one shows. No tweaking can get it working though so any advice would be much appreciated. Any more info needed please ask.

Thanks

Answering my own question as I figured it out. Just in case anyone else has a need for it, the below script works as expected.

import bpy

#save the total number of frames as var
frames = bpy.context.scene.frame_end + 1

#loop through frames, jump to each frame, add the armature, set as shapekey
for frame in range(frames):
    bpy.context.scene.frame_set(frame)
    bpy.ops.object.modifier_add(type='ARMATURE')
    bpy.context.object.modifiers["Armature"].object = bpy.data.objects["rig"]
    bpy.ops.object.modifier_apply(apply_as='SHAPE', modifier="Armature")

#for each frame, loop through shapekeys and add as keyframe per frame, set value to 1 if current frame = corresponding shapekey
for frame in range(frames):
    for shapekey in bpy.data.shape_keys:
        for i, keyblock in enumerate(shapekey.key_blocks):
            if keyblock.name != 'Basis':
               curr = i - 1
               if curr != frame:
                   keyblock.value = 0
                   keyblock.keyframe_insert("value", frame=frame)
               else:
                   keyblock.value = 1
                   keyblock.keyframe_insert("value", frame=frame)


How can I turn nodes that made in shader editor to script? I want to make a button and when I press it, it will apply the material I made, that mean the nodes.
I try different way to type script but it wasn't work.
bpy.ops.node.add_node(type="ShaderNodeTexNoise")

What's wrong with this code?

If I understand correctly you want to turn your material into its equivalent python nodes. Arguably this is a bit too involved for a single SE question because there are a lot of use cases. Thankfully I tackled this some months ago for a personal project so I can share what I worked on.
You'll need to learn how to use a script.
How to use :
Select your object, select the material you want to copy, run the script. The material code will be added in a new text block.

"""
This scripts "serializes" the active material of the currently selected object
And creates a script readable by the Blender API to recreate said Material.
As any Blender script, it is free to use in any way shape or form.
V 1.1 - 20.10.23
Fixed NodeSocketVirtual error
"""

import bpy

from bpy.types import (
    NodeSocketShader,
    NodeSocketVirtual,
    NodeSocketVector,
    NodeSocketVectorDirection,
    NodeSocketVectorXYZ,
    NodeSocketVectorTranslation,
    NodeSocketVectorEuler,
    NodeSocketColor,

    NodeReroute,

    Object,
    Image,
    ImageUser,
    Text,
    ParticleSystem,
    CurveMapping,
    ColorRamp,

    ShaderNodeTree,
)

from mathutils import Vector, Color

ERROR = "~ ERROR ~"

def get_link_statement(link):
    """
    Build the statement to re-create given link
    """
    return f"""\
links.new({link.from_node.path_from_id()}.outputs[{get_socket_index(link.from_socket)}]\
, {link.to_node.path_from_id()}.inputs[{get_socket_index(link.to_socket)}])\
    """

def value_from_socket(socket):
    """
    Returns the evaluated value of a node socket's default value
    """
    # A Shader socket (green dot) doesn't have a default value :
    if isinstance(socket, (NodeSocketShader, NodeSocketVirtual)):
        return ERROR
    elif isinstance(socket, (
            NodeSocketVector,
            NodeSocketVectorXYZ,
            NodeSocketVectorTranslation,
            NodeSocketVectorEuler,
            NodeSocketVectorDirection)):
        return f"{[socket.default_value[i] for i in range(3)]}"
    elif isinstance(socket, NodeSocketColor):
        return f"{[socket.default_value[i] for i in range(4)]}"
    else:
        return socket.default_value.__str__()

class NodeCreator:
    """
    Helper class to programmatically recreate the passed node
    """
    # These props are internal or read-only
    # and aren't useful in the serialization.
    default_props = (
        "dimensions",
        "draw_buttons",
        "draw_buttons_ext",
        "input_template",
        "inputs",
        "internal_links",
        "isAnimationNode",
        "is_registered_node_type",
        "output_template",
        "outputs",
        "poll",
        "poll_instance",
        "rna_type",
        "socket_value_update",
        "type",
        "update",
        "viewLocation",

        "texture_mapping",
        "color_mapping",

        "filepath",

        "cache_point_density",
        "calc_point_density",
        "calc_point_density_minmax",

        "interface",

        "height",
        "show_options",
        "show_preview",
        "show_texture",
        "width_hidden",
    )

    def __init__(self, node):
        """
        Initialize the node inputs and outputs,
        and the different fields' default values
        """
        self.node = node
        self.input_default_values = []
        self.output_default_values = []
        if not isinstance(node, NodeReroute):
            for _input in node.inputs:
                self.input_default_values.append(value_from_socket(_input))
            for output in node.outputs:
                self.output_default_values.append(value_from_socket(output))

        self.type = type(node).__name__
        self.properties = []  # Could use an ordered dict instead.
        for prop_name in dir(node):
            if prop_name.startswith("_") or prop_name.startswith("bl_"):
                continue
            if prop_name in NodeCreator.default_props:
                continue
            self.properties.append((prop_name, getattr(node, prop_name)))

    def statements(self):
        """
        Build the chain of statements to programmatically recreate the node
        """
        statements = []
        statements.append(f"new_node = nodes.new(type='{self.type}')")
        self.properties = sorted(self.properties, key=lambda p: p[0])
        for props_tuple in self.properties:
            prop, value = props_tuple
            if isinstance(value, ImageUser):
                statements.append(f"""\
img_text = new_node.{prop}
img_text.frame_current = {value.frame_current}
img_text.frame_duration = {value.frame_duration}
img_text.frame_offset = {value.frame_offset}
img_text.frame_start = {value.frame_start}
img_text.use_auto_refresh = {value.use_auto_refresh}
img_text.use_cyclic = {value.use_cyclic}
img_text.tile = {value.tile}\
                """)
                continue
            if isinstance(value, ParticleSystem):
                # /!\ Make sure this is executed after node.object statement
                statements.append(f"""\
if new_node.object:
    new_node.{prop} = new_node.object.particle_systems.get('{value.name}')
                """)
                continue
            if isinstance(value, CurveMapping):
                statements.append(f"""\
map = new_node.{prop}
map.clip_max_x = {value.clip_max_x}
map.clip_max_y = {value.clip_max_y}
map.clip_min_x = {value.clip_min_x}
map.clip_min_y = {value.clip_min_y}
map.tone = '{value.tone}'
map.use_clip = {value.use_clip}\
                """)
                # Remove the 2 starting default points and only these :
                for i, curve in enumerate(value.curves):
                    statements.append(f"map_c = map.curves[{i}]")
                    for point in curve.points:
                        statements.append(f"""\
map_c.points.new({point.location[0]}, {point.location[1]})""")
                    statements.append("""\
removed_start = removed_end = False
for i in range(len(map_c.points) - 1, -1, -1):
    p = map_c.points[i]
    if not removed_start and p.location[0] == map.clip_min_x and p.location[1] == map.clip_min_y:
        map_c.points.remove(p)
        removed_start = True
    if not removed_end and p.location[0] == 1 and p.location[1] == 1:
        map_c.points.remove(p)
        removed_end = True\
                    """)
                statements.append(f"map.update()")
                continue
            if isinstance(value, ColorRamp):
                statements.append(f"""\
cr = new_node.{prop}
cr.color_mode = '{value.color_mode}'
cr.hue_interpolation = '{value.hue_interpolation}'
cr.interpolation = '{value.interpolation}'\
                """)
                for stop in value.elements:
                    statements.append(f"""new_stop = cr.elements.new({stop.position})
new_stop.color = {[ch for ch in stop.color]}""")
                # Remove the 2 starting default stops and only these :
                statements.append("""\
removed_black = removed_white = False
for i in range(len(cr.elements) - 1, -1, -1):
    stop = cr.elements[i]
    if not removed_black and stop.position == 0 and all([stop.color[i] == (0, 0, 0, 1)[i] for i in range(4)]):
        cr.elements.remove(stop)
        removed_black = True
    if not removed_white and stop.position == 1 and all([stop.color[i] == (1, 1, 1, 1)[i] for i in range(4)]):
        cr.elements.remove(stop)
        removed_white = True\
                """)
                continue
            if isinstance(value, ShaderNodeTree):
                statements.append(f"""\
ng = bpy.data.node_groups.get('{value.name}')
if not ng:
    new_node.label = \"Missing Node Group : '{value.name}'\"
else:
    new_node.{prop} = ng\
                """)
                continue

            if prop in ("hide", "mute", "use_custom_color"):
                if value:
                    statements.append(f"new_node.{prop} = {value}")
            elif prop == "text" and not value:
                continue
            elif prop in ("select", "shrink"):
                if not value:
                    statements.append(f"new_node.{prop} = {value}")
            elif isinstance(value, str):
                if value:
                    statements.append(f"new_node.{prop} = '{value}'")
            elif isinstance(value, Vector):
                if len(value) == 2:
                    statements.append(
                        f"new_node.{prop} = ({value[0]}, {value[1]})")
                else:
                    statements.append(
                        f"new_node.{prop} = ({value[0]}, {value[1]}, {value[2]})")
            elif isinstance(value, Object):
                statements.append(
                    f"new_node.{prop} = bpy.data.objects.get('{value.name}')")
            elif isinstance(value, Image):
                statements.append(
                    f"new_node.{prop} = bpy.data.images.get('{value.name}')")
            elif isinstance(value, Text):
                if value:
                    statements.append(
                        f"new_node.{prop} = bpy.data.texts.get('{value.name}')")
            elif prop == "parent":
                if value:
                    statements.append(f"""\
parent = nodes.get('{value.name}')
if parent:
    new_node.parent = parent
    while True:
        new_node.location += parent.location
        if parent.parent:
            parent = parent.parent
        else:
            break\
                    """)
            elif isinstance(value, Color):
                statements.append(
                    f"new_node.{prop} = ({value[0]}, {value[1]}, {value[2]})")
            else:
                statements.append(f"new_node.{prop} = {value}")
        for i, dv in enumerate(self.input_default_values):
            if dv == ERROR:
                continue
            statements.append(f"new_node.inputs[{i}].default_value = {dv}")

        for i, dv in enumerate(self.output_default_values):
            if dv == ERROR:
                continue
            statements.append(f"new_node.outputs[{i}].default_value = {dv}")

        if not isinstance(self.node, NodeReroute):
            for _input in self.node.inputs:
                if _input.hide:
                    statements.append(
                        f"new_node.inputs[{get_socket_index(_input)}].hide = True")
            for output in self.node.outputs:
                if output.hide:
                    statements.append(
                        f"new_node.outputs[{get_socket_index(output)}].hide = True")
#        DEBUG Print node location as a label :
#        statements.append("new_node.label = str(new_node.location[0]).split('.')[0] + ', ' + str(new_node.location[1]).split('.')[0]")

        return statements

def serialize_material(mat):
    """
    Returns the ordered statements necessary to build the
    Mateiral generation script
    """
    node_tree = mat.node_tree
    statements = [f"""\
import bpy
new_mat = bpy.data.materials.get('{mat.name}')
if not new_mat:
    new_mat = bpy.data.materials.new('{mat.name}')

new_mat.use_nodes = True
node_tree = new_mat.node_tree
nodes = node_tree.nodes
nodes.clear()

links = node_tree.links
links.clear()
    """]

    statements.append("# Nodes :\n")
    for node in node_tree.nodes:
        for st in NodeCreator(node).statements():
            statements.append(st)
        statements.append("")

    if node_tree.links:
        statements.append("# Links :\n")
        for link in node_tree.links:
            statements.append(get_link_statement(link))

    return statements

def write_material_to_text_block(obj):
    """
    Create or overwrite a text block with the same name as the material
    Which contains all the necessary statements to duplicate the material
    """
    if not obj or obj.type not in ('MESH', 'CURVE', 'VOLUME', 'SURFACE', 'FONT', 'META', 'GPENCIL'):
        return
    am = obj.active_material
    if not am or not am.use_nodes:
        return
    statements = serialize_material(am)

    text_block = bpy.data.texts.get(am.name)
    if text_block:
        text_block.clear()
    else:
        text_block = bpy.data.texts.new(am.name)

    for st in statements:
        text_block.write(st)
        text_block.write("\n")

    return text_block

def get_socket_index(socket):
    return socket.path_from_id().split(".")[-1].split("[")[-1][:-1]

if __name__ == "__main__":
    text_block = write_material_to_text_block(bpy.context.active_object)

The code is available there for grabbing
https://github.com/Gorgious56/Material2Script/blob/main/material_to_script.py


Is it possible to use compositing to remove patterns in rendered images? I rendered hundreds of frames and when I reviewed the results I found that the camera can see 'through' my stack of objects to the background and a grid pattern is visible. I could render again with an object to block the light path but I'm curious if compositing provides another approach.

Is it possible to use compositing to remove such patterns in rendered images?

You could use the Mist pass with a color ramp and color invert to strengthen it, or you could do like the included image, enable an Object Index pass so you could then get a strong mask and invert it to affect the areas outside of the object. In this way, even if you need to render frames again, you can lower your settings all the way so that the result is as small as possible and just use the pass to affect the frames you already have.


I want to unwrap a label which has a transparent area Well, i am new to blender so this question might be easy for some to answer.
My problem, you can see on the picture.
i want unwrap the label which has a transparent area (though it is not a square).
The problem i have you can see. I want the transparent area to have same material as the glass.
Is this possible without changing the faces?
I know about baking all to single image, but i don't think the glass material would be good if i did that.
Hope I can get some advice.

EDIT
I think I need attach a photo so you understand what i mean,i want to fix the edges and faces on the model so they fit the label, but how can i do ? seems like it all get distorted when i try.

i think i need attach a photo so you understand what i mean,i want to fix the edges and faces on the model so they fit the label, but how can i do ? seems like it all get distorted when i try.

Your problem here is not so much in with unwrapping but more with the material setup.

I would say your UV unwrap seems to be correct and would be suited for what you are trying to do, now all you need is to correctly setup your label material. You could do this two different ways:

Either copy your glass material node setup into the "Label" material node tree, and then use a Shader Mix node to mix the label "paper material" with the "glass material". In the mix input socket you should connect the alpha output of your image. Roughly, this:

Another way around is to use the same material on all faces of the bottle, including the label and glass. Use the same technique with the Shader Mix node setup as above, but make sure all faces have blank no UV coordinates (like setting all vertex to X0,Y0) except for the ones with the label so that the glass material shows up allover except for the parts with paper label.

EDIT
You an achieve this in two different ways:

Either model the label as a simple cylinder around the bottle with a radius slightly larger than the bottle itself like the example on the right (exaggerated radius for visibility purposes) then use alpha channel transparency in the material to hide the excess geometry. (just leave it like this, people will take care of it in their software)
Or model it as above and then after unwrapping select the top vertices and move them down using GG(double press G button) and make sure you select the Preserve UVs in the operator options. That way you can manually adjust the top vertices without distorting the UVs.


No "Final" option under Physics Properties > Cache > Type My question is pretty simple. In all the tutorials I've watched at some point the instructor says to set the option Physics Properties > Cache > Type to Final but my only options are Modular Replay and All.

Okay I think I figured out a work around. So I just need to break it into several steps.

Check checkbox Physics Properties > Fluid > Mesh
Set Physics Properties > Fluid > Cache > Type to Modular and check Is Resumable
In Physics Properties > Fluid > Settings select Bake Data (after this process runs the button then changes to say Free Data
AFTER STEP 4 - In Physics Properties > Fluid > Mesh select Bake Mesh (after this process runs the button then changes to say Free Mesh)


How to duplicate an object along an edge without warping or rotating it I am trying to find a way to duplicate an object along an edge but the 3 different methods I can find either rotate the object; warp the object or give limited control. Here are images and descriptions of the tried methods as well as a manually made final result:

The first method I tried was to convert the edge to a curve and then use an array modifier and a curve modifier on the object to get it to array along the curve. The problem with this method is that It warps the object along the curve, see image below.

The second method I tried was to instance the object to a plane and array the plane along the curve, this way the plane got warped but the object would remain intact. The problem with this method is I want the objects to all to be rotated the same direction but when using this method it rotates the objects in the corners, see image below.

The third and final method I found was to instance the object along the vertices, while this neither rotates or warps the object, it gives me very little control over spacing and forces me to add an object on every corner or existing vertices on the edge. The amount of work to make sure there is even spacing between all the vertices and getting them placed where I want them would be just as much work if not more so than just manually duplicating and placing the objects, see image below.

Is there some way I can get my object to be duplicated along an edge that neither rotates or warps my object. For an example of intended result see image below.

Instead of arraying a plane along the curve, try arraying a simple vertex. Tweak the constant offset in the array modifier to get the desired offset.

Then create the object you want to instance. Set its parent to the "Arrayed vertices" object. Go to the parent object and in the object properties. Set the instancing to "Verts".

Don't forget to add a high enough resolution in the curve properties or else there may be unwanted interpolation.


Model is solidified but appears full during 3D print I'm Eric and I've just started my journey with blender. The plan is to provide 3D pictures for our customers.

Everything seemed fine (after a number of evenings spent in company of Netflix, Blender & Blender Video) but now we are a bit stuck.

We created a model that is some 12x7x13cm, hollowed, solidified to 2mm & painted on vertices as you can see on this screenshot:

Nevertheless, once we export it to 3D Print to use on our plaster printer Project 660 Pro - it seem full inside. Here is the screenshot for comparison of our model vs what is ok with some proper model in 3D - where it appears ok (you can even see a hole in the head as it is not yet corrected):

But in 2D slice - the one we need seems to be filled. Unfortunately - the same story appears when calculating volume for printing (increasing cost some 4-fold & giving customer different feel):

Just to mention - model also appears ok in meshmixer (it is hollowed & solidified) and we tried multiple type formats (wrl & ply) but none worked correctly.

Here I need to ask for your help - what could be the matter here & the method to resolve it please?
As they say - there are many ways to skin a cat - so perhaps there is some manner to get just the outer shell of original model, copy it and then proceed please?

Thanks,
Eric

When using a 3D printer, which has hollows, its like trying to print a bridge with the tunnel part underneath. The printer cannot do this not without supports being printed too as the maximum angle support is around 45 degrees. The way to over come this is to tilt your model so that printer can put layers on top of one another. This might not be your problem of course but it is worth considering.

The other way is to print the support using a material that you can wash out afterwards. It would mean changing the material over once the supports are printed.

If you model's outside angles (travelling upwards from the base)are all within the 45 degrees then it should be ok. But I suspect that the printer might be trying to put down layers where there is nothing underneath it, so it prints the whole model filled in. I've had this problem myself. Had to think outside the box for this one :)


Animation Nodes -> splines generated and how have a random material color for each spline? following
How to store particle locations in a list?

you can trace particles to splines (list), but

how can we have a random color in the material for each of the splines...

they are all in one object so Object Info -> Random doesn't work,

I don't wanne to copy/split this afterwards...

maybe/I think the animation nodes tree can expanded somehow, but I a too noob with it...

There are several methods:

In blender 2.82, In geometry node there is a socket "random per island", that will generate color for separated meshes within the same object. Be aware, currently this socket can only work for cycles, not possible in eevee.

while using "curve object output" node, it's preferred in a loop, and input an object list. Since you are making them multiple objects, you can use "object info - random". This method allows you work in eevee, and transform different splines separately.

Must a method over the other? I don't think so.

Edit:
Specifically in particle tracing, it's exactly the same principle. You are outputing multiple splines, before you curve object output anything, simply generate a loop that input iterators of object list and spline list. and it will solve the problem.


Weird View in Blender Render view, black object in Object while moving, transparent render, Eevee The problem is this: In the render view it seems that a kind of shadow of the object remains in the object itself when you turn around the object. It's dark gray. Materials and lights stop working.
After I press f12 the image is rendered but the object is rendered transparent.
What can I do?
I have already completely reinstalled Blender.
https://gyazo.com/162b9c83c187ada0c840f3ec57b1d238
And after moving it a bit:
https://gyazo.com/1a82380907ab00fb1215f805229acc19
And the render:
https://gyazo.com/b895d9fd28b06e82e91edb0beb3bda84

This is a problem with the new AMD drivers. You can either degrade them, but i recommend something else. Go to render setting, then find Performance --> High Quality Normals. Enable it and the problems should be gone.


Keyed Particle System ( Renders static particles associated with each keyed mesh) I have a keyed particle system animating from one mesh to another.

In the picture above the the particles between the sphere and cube animate as they should and transition/morph as they should from one mesh to the other, however the particles forming the sphere and cube are static and show across all frames of the animation. Hopefully I am missing something simple here?!

How can I make it so that the 'static' particles associated with each of the keyed meshes are not shown/rendered?

I must have been getting confused between the RENDER and DISPLAY tool panels!
Within the RENDER tool panel it is as simple as selecting 'NONE'


The Background image is not showing in the rendered slot I checked "transparent" under the Film tab but still not showing.
I can find out what I did wrong.

the file:

Can someone help? :)

(Edit: my question was if it is possible to render the Background image without compositing)

Without using additional geometry or compositing, you can use the image as background for the world. Set the Texture coordinates to Window.


Can a displacement texture be unwrapped independent from the image texture? Say I have a wall with 16 equal faces. 4*4
i have unwrapped this and has an image texture.
Now if I want a lot of displacement detail on just 1 face of the wall (damage)
I would like it to be much bigger than the others.
how do I do it without having to scale up the whole disp.map?

You need to make two UV maps, use one for displacement and one for the image texture. To do this, go into the mesh properties add hit plus under UV maps:

Now you can edit and update this UV map separatel, be sure to set it for the displace modifier:

Note: when you edit a UV map, you will always be working on the selected one, which is the one highlighted in blue in the UV maps panel. If you need to switch, simply select another one. Also make sure the camera icon is highlighted, as it is by default.


How to locate object parts of rigged object visible in camera I'm pretty new to blender. Currently I work in animate a rigged character, and render the depth for a computer vision project. My scene consist of some walls, floor, random objects and a human character performing re-targeted motion. In addition I also add an index pass to the human character to render a binary mask to locate it easily in the depth image.

Everything works fine. Now, I would like to know which of the parts of the object are visible to the camera, e.g. head, arms, hands, etc. The character consist only in one big mesh. Does any body know what would be the best way to achieve this? I thought that perhaps the best way  is to split the mesh into different meshes and assign an index pass to each of them but I didn't find a good example to do this in python.
Thanks in advance

Either use an index pass as you suggested, or just mimick one by using an unshaded material with a distinct colour for each body part.

You say you want to do this in Python, but you don't say why or what part of the process you want to automate. If you elaborate in a comment I might be able to give more Python-related info in this answer.


How do I zoom in on a planet from space to ground level? I have made a pretty decent planet earth but would like to know if there's a decent tutorial or way of getting from space and going through the atmosphere to ground level. I am not sure of the best approach. I was thinking either make a really detailed section of the planet that I plan to see up close, make a second mesh more detailed at the point of ground level or pause the animation point, delete the less detailed earth and then only recreate the section visible to the camera. All 3 of these could be wrong I don't know. Would one of these methods be the best way or are there other ways to achieve what I am trying to do?

I would make it into few scenes that I would then merge in post-production.

Scene 1 - from space, getting close to planet, you could have sunflare, satellite or whatever cover view for a moment, so you could load Scene 2 then.

Scene 2 - Scene 2 starts exactly where Scene 1 ended, with more detailed planet done. It would be going from planet to some upper atmosphere clouds, at point in time cloud would cover view, that is the moment when you start scene 3

Scene 3 - starts exactly where Scene 2 ended, with same cloud covering the scene, but with much more detailed ground and you getting even closer.

And basically that would be it - each time you'd want to increase your details you would have to find a way to cover view for a fraction of a second to switch scenes seamlessly. This way you could do it all the way to the ground and beyond :)


Shape keys and applying subdivision surface modifier I have been creating a dragon model lately (it might come familiar to someone) and I've done a lot of work so far, I've also spent alot of time with creating shape keys for my eye. However, I see now that I have forgot to apply the subdivision surface modifier for my eye and when I remove the modifier it looks totally crappy.

I'm very-very confused now as I've looked help in Youtube and I've seen that almost everyone create their shape keys with subdivison surface modifier on (without having applied it earlier). I'm clueless how can this be, do they later on somehow do some kind of workaround to apply the subdivision modifier??

Am I really supposed to create shape keys for my eyelid or eyepupil when I have some crazy polycount (it's very hard to form the shapes I had previously).

I'm a bit in panic, so please pardon me. Maybe you could offer some ways to get through this :)

This answer comes from a previous one here Cannot Apply Array Modifier. I simply add some more details in the explanation and a way to do it for all shape keys at once.

Here is a simple shape, which has a subsurface modifier and shape keys :

Make one copy of your initial object for each shape key and set for each the shape key to "1" :

Select this copies and Alt + C and "mesh from curve/..." :

The modifiers are applied and the shape keys too (these objects now have no shape keys or subsurf modifiers).

Make another copy of your original object, remove the shape keys from it, and apply the subsurf modifier :

Now select the "shape keyed" objects, and the last copy we just made (in this order), and in the shape key panel use "join as shapes" :

We now have the final object, with the subsurface modifier applied and the shape keys available :


how would you light such a scene? I'm trying to build a light setup to get a render like this reference:

Background gradient, a lot of light on the front and quite dark and blue shadows.

But I'm not sure how to achieve it.
Eg : what type of "world" would you use ?
Would you use a gradient, or a solid color, and which one ?
What kind of lamp ? Is a sun enough ?

Well, any tip/lighting advice is welcome.
Here's what I got for know, which is not exactly what I would like to get.. :/

And my Blend here (I got the city on Blendswap).

Thanks !

Final

Lights

As a light use Sun Lamp with Size 0. This will make shadows completely sharp. I've also changed Strength to 2.

World

For World I've used simple Linear Gradient to look similar to your reference image. This will give blueish tint to whole image, but we will take care of it later.

Compositing:

First of all you will need to give your objects same Pass Index. Take a look here how to do it: Object ID to a whole group.

And check Object Index under Render Layers > Passes.

Now we can use our objects as mask for Color Correction and reduce unnecessary saturation for shadows/highlights and everything we need without affecting World Background.


How to move the camera diagnoally far away? When the camera is at the white position (the default position when you create a new Blender file), how can I move the camera to the red position, while seeing the same place? I know I can press g to move the camera, but none of the "x", "y", or "z" axis will do this.

Move on Local Axis

You should double tap the Z key in order to move the camera in its local axis.

So the key sequence is G, Z, Z again.


Rendering animation as stills or MP4? I have an architectural animation of about 400 frames ( a part of a larger compilation). At about two minutes per frame, it will take more than thirteen  hours so, I was going to connect a second computer, pull up the same file across the network, and check the "place holder" feature and have both computers rendering the same file. Now, rendering to an MP4 is fairly new in Blender and, though I prefer rendering straight to video, I'm a bit wary about any issues I might run across with this new feature. I'll be pulling the finished render into Premiere Pro for further editing with HD videos, commentary, and stills. So, video or stills? Stills would mean stitching together, not a terribly hard thing to do in Premiere but that MP4 would be way easier. Just hate to get thirteen hours into a render and find the network/placeholder method has issues with video.

I do not recommend you to render directly to video.

If any error occurs during this render, you will lost all the movie.

Rendering in frames (stills) you can render in parts, also in case of error, you can render the remaining frames later.

Use the video editor to render the stills to the final video.


Normal map causes flat shading Does anybody know why i get this flat-shading when i add a normal map even though i enabled smooth-shading? the moment i remove the normal map it goes back to smooth.

Thanks for the help! :)

The problem was, as many people suggested, the Image node for the normal map was not set to non-color data:


I cannot paint in the "Texture Paint" mode I'm trying for hours to use the "Texture Paint" mode in the right side.

But unfortunatelyI can't paint, I checked the slots, but with no successed.

The left side, works ok!

Can you help me please?

Blender Project

Looks like inverted normals, try selecting that mesh and pressing CTRL+N or W>Flip Normals


Grid texture in Cycles How can I make a grid shader from the following picture?

Add a brick texture. Set "Offset" to 0. Set "Bias" to 1. Set the height and the width to the same value. Select the colors by "Color2" and "Mortar". Use "Scale" to Scale.


Sculpting in 2.83 doesn't sculpt every verticies https://i.imgur.com/TeSWnbT.gifv
This is virtually my issue. Every time I want to sculpt something, its not pulling every verticies it needs to pull when scultping. Sometimes, not always, but pretty frequently, I do CTRL+Z to go back and it crashes my Blender most of the time.
I Incorporated everything in the gif so hopefully someone can see what is wrong, I am using default settings as well.. Had a completely fresh reinstall of blender and the one I used on my now dead HDD is blender 2.81. The only addons I have added were CATS and some atlasing tool for CATS, which is a program to help quicken the process to port certain models to VRChat, this is helpful in a lot of ways to quickly pose the model and such. As well as merge different armature. Shouldn't touch anything sculpting related.
I am... genuinely curious as to what is going on here. I'm just scuplting and some mesh/Verticies aren't getting dragged when they should be. I watched a video and they said to try and apply scale. I did that, didn't help much at all. I'm at a loss right now.

see if there is any auto masking is active. if not then recalculate your normals.

6/19/2020 edit: it's a bug with triangle faces in blender 2.83 LTS. your workaround is to select your model go to edit mode and press f3 and search for tris to quads then try smooth sculpting. workaround worked on my side.


Texture looks off in newer version of Blender Sup yall. I have a texture problem. I'm trying to convert a model from an old version of Blender (2.49b) to the most recent version. However the problem with it is after re-linking the texture, it looks wrong. As you can see, the skirt cuts off into a flat color.

Here's what it's supposed to look like:

And here is what it looks like in the new version of Blender:

I've converted some other models the same way but they didn't have any problems. But this one does. Does anyone know if it's possible to fix that?

As we can see here:

The texture's color space is set to "Raw".
Since it's a simple color data texture and in png format, it should be "sRGB", which is the default color space when you create an image texture node.


How to make sqare/sharp lines with Grease pencil? Every line ends up in either a fade or a circle.
You can sort of achieve it by scaling down the last point in the stroke, but you have to do it manually every time! and it only gets you a triangle instead ;-;
Basically, I want to make a line as normal, but the corners and ends must be sharp ... and I cannot for the life of me figure how to do that.
With vector art is very simple ... but Blender can't do that.

If I understand the question, you want tapered straight lines?
When I tried this with default settings I got faded ends. But I found that this can be fixed if you:

Turn Off Strength Pressure (which should be all you need to do)
Adjust the Thickness Profile to move the outer Left & Right control points slightly up from the bottom of the graph (which is least thickness)


How to add a embossed/debossed logo to a curved surface? I’m really having a hard time trying to emboss or deboss a logo / typography on a shape other than a flat plane. For example trying to get a logo on a curved bottle.

I already asked something similar a year ago, but it was not exactly the same, see here Emboss or deboss a more complex logo into a mesh

I’ve found that the „easiest“ way for now is to save the logo / typography as a black/white png and then use it to displace the mesh via a displacement modifier. That works well with a flat plane, as I said.

However, if we now take a bottle/cylinder the trouble begins. I don’t know how I can control at which place on the object – a cylinder for example – the logo appears. Do I have to unwrap the cylinder first? Can I somehow control it via texture coordinate nodes where the logo is placed?

Some help would be highly appreciated!

Also, if you have a nice and elegant way on how to place a logo on a curved surface please let me know. I already tried it with attaching the logo to a lattice and then adding this lattice with a shrink-wrap modifier to the object. Problem with this way is, that you often need to subdivide the logo/typography a thousand times in order to get a ok result.

If you don't need to have it in the topology, but just in the render, you can unwrap the bottle and use the logo image as a displacement texture in the material nodes (using Cycles).

If you want to actually emboss/deboss the topology, you could try to import the vector logo, extrude it, curve it (with curve modifier, put it around the bottle and apply the Boolean modifier (Union or difference, in order to emboss/deboss) to the bottle, using the logo as boolean object.


How to copy movements from one object to another? I am learning to use Blender and created a simple animation which shows the rooftop coming off followed by the roof support which then disappears from view. The idea being that a new retrofit support would be installed (thought of using the same support but changing the colour when it is out-of-view but will sort that problem later):

Problem is I would like the chimneys and the windows at the top to group with the roof so that they will all move in unison instead of having to animate them individually.

Is there a simple method to achieve this?

Give a look here.
Basically you can link some properties (one of them is animation) from an object to some other object by selecting all the object (the object that has the animation needs to be the active, so select it at last), then pressing CTRL+L.
A dropdown menu will appear. There you can select which property to link from the active object to all the selected (but not active) objects.


My Outliner and Properties editor dissapeared... how do I get them back? Help this keeps happening and I lose my whole projects because of it:
As you can see in this image its not there...

Try shift +F9. Also not sure what you mean by the properties bar. Try clicking “N” if that is the one you need.


how to join across mirrored edge 0 What is the method to join points across the mirror edge?

If you want to create an edge between a vertex and its mirrored image you need to apply the modifier. That said, if you want the 2 vertices to stick together (and merge into one unique when you'll apply the modifier), you need to activate the Clipping and the Merge options of the Mirror modifier.


Cant get Fine, crisp displacements using displace modifier in 2.8 I am trying everything in my power to get super sharp displacement maps without having my subdivision modifier at a crazy computer locking up level like subdivision level 8,9. My mesh comes out very pixellated.

Im using the displace modifier along with 4k displacement png maps.  I need to know how to get super sharp and clean displacements in 2.8 at a level i can still render. Im looking for the adaptive subdivision option in 2.8 and i don't see it even when using cycles experimental, so im wondering if there is some other way to do this.

The displacement modifier is for non-adaptive displacement that needs to act on the mesh outside of just rendering it.

The displacement modifier only works on existing geometry and won't create new geometry. Adding a subdivision modifier above it can help, overall it is limited to coarser displacement of the mesh due to the performance limitations of generating lots of geometry this way.

The alternative is render time displacement, which can take advantage of the subdivision surface modifier's adaptive subdivision feature. This is the part of Cycles that was originally part of the experimental feature set. To make this work, you need to set the material's properties to use true displacement (or the 'both' option) and feed your displacement into the displacement socket of the material output in Cycles.

Adaptive subdivision is performed at render time, as part of the rendering process, and tries to only generate geometry where it is actually needed. As part of these calculations are based on the camera position, it makes no sense to do this outside rendering.

for more info see https://docs.blender.org/manual/en/latest/render/materials/components/displacement.html


Strange deforming when using bones I am trying to use bones in my model to (at the moment) make it wag its tail. However, when I bend the bones, the tail deforms strangely and won't bend properly. I have tried fiddling with weight painting, but nothing i have tried so far will work.

Images for reference here

EDIT: Sorry, forgot to put a picture that showed the deformation. I've added it to the album ^^. I fixed the bending issue, however whenever I bend it, the inside edge of the tail caves inwards. Also, there is this one stubborn vertex that moves significantly less compared to the other ones, although it is painted in the same weight. This might be a similar thing?

I don't see any strange deformation there. You weightpainted the same vertices with full weight to multiple Bones, so the vertice position is interpolated between all the Bone locations which have weight assigned to them.

You have to weight the vertices only to one Bone, and maybe use some low weight blending between them.

The Updates Issue has most likely the same root: the bad vertice is influenced by another bone - doublecheck that all other bones have 0 weight on it and the correct Bone has full weight.


Shade Smooth in Sverchok? When I try to animate or tweak my nodes, the mesh automatically switches back to flat shading despite I have set it to smooth previously.

Q: How can I set the shading to Smooth when using Sverchok?

You have to enable smooth shade on the Mesh Viewer properties (in the N-panel)


Bump image texture doesn't work anymore Weird trouble here.

Somewhere in the process, the object can't render the displacement map anymore, even in the preview window shows the right bump amount. At start it works well but somehow it lost it recently...
I check all connections, all values seems OK, the bump image shows in the right place and should make a huge bump effect (like in my image #2. But nothing, the surface remains flat as a sand desert. It's an animated object but no keyframe on this parameter, all frames show the same absence of bump.
I check there is no object's double superposed. I copied the object, I try tho connect the image directly to the Displacement node socket: nothing. I tried a Noise texture with Color Ramp to enhance the contrast and then, a very small amount of bump appears.

The goal is to have a small amount of relief, but here I exagerate to enhance the problem.

The object contains several materials. I tried to recreate a new material with new nodes: nothing change. I put simple Glossy node with another image for the bump: same result. Correct effect in preview window, nothing in render.

Bump mapping works on other objects in the scene.

Capture #1
The material preview show the expected result with these settings: a huge bump. Remark: there's two image for bump, one (top) for the bumpy surface, another (bottom) for slim lines barely visible.

Capture #2
When the texture image is connected to a View node, it shows as it should.

Ok I got a temporary solution.
The bump was still there but for some reason, it was so light that it was barely visible.

After the Color Mix node and before the Material Output node, I add a Math Multiply node (value x 20) and then the bump shows up again.

But now rendering, I see baaad artifacts in the bump texture due to A) the Math multiplier node who force the grey levels and B) a slightly poor image histogram. Photoshop's histogram shows some pikes. Looking closer, there is some posterize-effect in the gradient and its ugly in the render. The texture image is 4000x4000 pixels, large enough I think. I tried PNG and JPG, tried to remake it with more histogram values, same result.

Edit:
With Normal mapping it seems to work better finally. Still some poor histogram artifacts but better. I blurred it a little and its fine.

But still at some point the bump map went to almost zero for an unknown reason.

Using a normal map only gives the illusion that the surface is altered by changing the surface reflections at a given point. In the viewport you are viewing the shield at an acute angle so you see the true geometry of the mesh. Your second example is using an emit shader to view the bump map, by emitting light it will not show any of the reflections that give the illusion of an altered surface.

To get real surface changes you may want to try a displacement modifier. Note that this modifier will only move existing geometry, it will not add new geometry to get the final surface you want, so you may want to use a subdivision modifier before it.

A still experimental feature in cycles is textured surface displacement. While similar to the displacement modifier the displacement is performed within cycles using the material displacement. Cycles can also be set to perform some subdivision to get more detail.


Weight paint painting on both sides? I’m doing the donut tutorial of Blender Guru and I’m on the sprinkles bit.
When I pull out the weight paint to make sure it doesn't show sprinkles on the bottom of the icing, the weight paint paints on both sides.

If you want to make sure that you don't paint through, make sure that you've activated one of these brush options (I still don't understand how it works though):


Random selections with animation nodes Me again.

Have progressed with my project and now have a group of independent items (quarter-coloured spheres) and now wish to have an animation that rotates spheres at random through one radian.

I've put together animation node trees (started with a loop subprogram before realising the error!) and now have one that responds to the frame position and should select from a random list of my group objects.

I have a node string that tests to see if a sphere has already been rotated (it should skip that object if it has) and still need to adjust frame data to get the frequency of selection/rotation correct.

However, the problem i have is that all spheres rotate in unison, there is no attempt to select them at random.  I've tried everything but can't get it to behave - what's the obvious thing i'm missing?

Thanks in advance.

Firstly, huge thanks to Bfoot and Omar for all the effort you've put into my education - just wish i'd been a more worthy student!! This stuff is a real challenge for me.

Attached is a screenshot of my latest node tree:

AN array - v2.blend

It works wonderfully with the interpolation i wanted etc - except all spheres rotate at the same time.  My difficulty is that the invoke subprogram node seems to be passing the entire list to the subprogram and the rotation calculation then works on all of them at the same time.  What i need is for the subprogram to pass a single object to the rotation calcs, they rotate it and then passes on to the next object, and so on.

My inclination is to nest another subprogram with the first so that the first loop passes an object to the second loop for rotating, which then passes back the results to the first loop.  The first loop then moves on to the next object and so on through the list.  Does that make sense?  I've tried all sorts of nesting structures but none of them work.

I know i'm leaning on you guys a lot but i'm almost there and just need the final key.

Thanks again, it's all a massive help.

Euler Mixing

First, I want to tell how to mix between two eulers (Animate one euler into the other). The mixing factor will range between zero and one where zero means the first euler and one means the second euler and any factor in between zero and one is a linear interpolation between the two. It is clear that the factor for our animation will be the time, but lets worry about that later. The equation for the mixing (linearly interpolate) between two eulers $e_1$ and $e_2$ using the factor $\alpha$ is:

$$
e = (1-\alpha)e_1 + \alpha e_2
$$

Which is easily implemented in Animation Nodes as follows:

Now if I use the output as the rotation of an object and gradually increases the factor, I will get an animation like this where the $y$ value goes from zero to 180 gradually:

Now, if I want to utilize this to create an animation, I would use the current frame as the factor, but since the frame will change from zero to one in $\frac{1}{24}$ of the second, which is very fast. To slow it down, I will divide the the current frame by 24, that way, it will reach the maximum value (1) when the frame number becomes 24, because $\frac{24}{24} = 1$, so you see that the dominator of the division is actually the duration of the animation in frames. I will also add a minimum node to make sure the factor don't exceed one:

Now what if I want the animation to start at a certain frame? To achieve that, we have to make sure that the factor of mixing is zero for all the frames that preceeds the required start frame. To do that, we can subtract the start frame from the current time, making all the frames before it negative, if we then clamp the output to zero, all negative numbers will be zero and we would have achieved what we wanted, here is an example where we set the start frame to be 24:

Animating Objects

We are now ready to animate the list of objects you have. Lets say we have this setup:

If we want to animate the objects, we will multiply their matrices by a rotation matrix with an animated euler (Euler we computed in the foregoing section), like this:

If we want the animations to start at different frames, all we have to do is subtract those frames just as we learned before:

Since we clamped the factor, the objects will stay at their final orientation after the duration of the animation is finished.

If we want to change the rate of change of the animation, we can evaluate the factor at some interpolation having the same derivative as the one we want, for instance, to create an ease-in-out effect, we can evaluate the factor at a sinusoidal interpolation:


Creating even more photorealistic rendering of this 3d print I actually made I hope this isn't too open ended, but in the style of this question I found on here I figured I'd go for it.

I run a 3d printer in a hospital, and as a result I 3d printed this model showcasing the work done on a particular patient:

I've blacked out the name of our hospital, though I think it'd be hard to identify the patient just based on the image.

Anyhow, as a side project, I've been trying to use Blender to see if I could "fake" that photo.  I.e. get a rendered image to the point where the casual viewer didn't know it wasn't real.

So far, after following BlenderGuru's tutorial on wood found here, this is my best attempt:

So my (hopefully not too open ended) question to you all is:  what changes would you make to this file if it were up to you to make more realistic?  Specifically the look of the clear plastic or the lighting.  I'm not too worried that the wood grain is slightly different than the one on my desk.

everything is to nice.  render at a lower resolution, and use the compositor to make it look like it was taken with a cheap camera.  make the lighting more blown out.


Get Object/Material Index of Completely Transparent Objects OK, I know the question is kinda usual. My problem is I want some objects in a scene completely transparent/invisible (in most of the render passes) while I still can show it in either material or object index pass. I would avoid duplicate the scene because it's quite large and complicated and the less labor, the merrier.

In Cycles you can adjust the Alpha Threshold for the Render Layer to adjust how layers are affected by transparency. Setting the Alpha Threshold to 0.000 will result in all objects - even those that are completely transparent - affecting the Index passes (as well as the Z, Normal, UV, and Vector passes).


Does (display) mean that the card is not fully utilized for Cycles rendering? My GTX 1070 card shows as (display) in Preferences>System even though I use the integrated video for the monitor.

Does the (display) designation mean that the card is not fully utilized for Cycles rendering? How can I make it not "display" and is it even worth it?

Calculating and refreshing all the pixels on the screen(s) is the main job of a GPU and this requires a significant amount of resources, which will be scarce when the GPU is used for rendering as well.

So if you want your display to be responsive while GPU-rendering, then it's a good idea to reserve one GPU just for its originally intended job of of pushing those pixels to the display(s).

The '(Display)' text from the CUDA settings helps you accomplish this, by indicating which of your GPUs is currently connected to the display(s).
Otherwise you wouldn't be able to tell which one is which if you had say 3 x GTX 1070.


A rigged model to practice on Where do I get a rigged model to learn with? Am I missing that it's already in one of the menus?  I have imported a bvh file from a mocap. I want to place the bones in a model to get a feel for what it is I am caputring.

Download and install MakeHuman this allows you to create and customise a human model and add a rig. The model (with rig) can then be exported in a format that can then be imported into Blender.


Translating vertices orthographically I'm a change over from AutoCAD. One of the CAD like features that I am really ingrained with is what is called orthographic mode.

In orthographic mode I would be able to move the selected vertexes by clicking parallel to the Y or X grid lines some clicked distance (or snapped distance). Is there an equivalent in Blender?

Thank You!

You can use snapping with the increment option. The transformations will snap to the grid. By using the manipulators you can select the axis for the transformation.

The snapping is determined by the size of the grid.

By zooming in or out on orthographic view you can determine the precision of the transformation.

Alternatively you can is change the scale for the grid.

Press N and go to Display. In the scale section you can change the size of the grid and the snapping precision will be changed along with it.

On top of that you can determine the transformations numerically for example: if you want to move sometning 2.5 units on the X axis you'd type G  X
 2 . 5


Snap or project bezier curve to mesh surface I've got a curve which follows the edges of a mesh. This curve is done manually, and I'd like to keep it this way. The mesh has no edge loops that I can use to duplicate them and separate them to be used as a curve.
I'd like to make the curve to follow the actual surface of the mesh, the front part. I've tried using shrinkwrap modifier into the mesh, but althought it has worked for me once with a curve, it's been impossible to replicate that with other curves:

With shrinkwrap, it's a mess no matter which settings I use, and it just deforms the mesh and snaps back and forth without any control:

I've tried also to "draw" the curve with the "Surface" checked on the Tool menu, but it's not accurate enough and as soon as any point is moved, it just leaves the surface. And I've tried various modes of "snap" mode without success.
Is there any way in which I can draw the primary shape of a spline and project it in a mesh surface, just on the front face of it, and be able to modify it without losing that "snap"?
Thank you!

I won't mark it as answered because maybe there are some other ways to achieve this which are more accurate.
My solution finally has been to try different modes on the Shrinkwrap modifier (mostly Project and Closest points, with Outside surface option selected), and moving the curve until I get something close to what I need.
Once got that, I would Convert to Mesh (it will apply the modifier, to avoid final shape to be distorted because there are not enough points). Here I had sometimes to use another Shrinkwrap modifier again just to solve some missalignments, and Convert to Curve.
Finally, for the latest adjustments, just turn on the Snap feature with Snap to faces and isolate the objects so the only visible objects are the curve and the mesh you want to snap it to. Enter edit mode with the curve selected and move the unaligned points so that they stick in the surface of the mesh.
They seem a lot of steps, but they're pretty straightforward and quick to do once you get it.
To sum up:

Shrinkwrap modifier until you get close to what you'd like
Convert to Mesh
Apply another Shrinkwrap modifier if needed
Convert to Curve
Hide everything except mesh and curve
Activate Snap feature, with Snap to face
Select the curve and enter edit mode, and move the unaligned points

Don't forget to Apply all transforms when you're done!


How to create a strong halo light effect? How to achieve the strong light effect (you may see in some games and 3d renders), where the light is so strong it's penetrating the objects?

Use the compositor Glare node with the type set to 'Fog Glow'.

Ensure you have a suitable emission material behind the 'windows' to ensure there is a bright area for the glow to act on. Add a 'Glow' node and set the type to 'Fog Glow'.

Adjust the parameters of the Fog Glow and/or change the intensity of the emitter to get the desired effect.

No glow, a moderate glow, a strong glow :


Keeping array objects straight when duplicated along a 3D twisted curve in Blender 2.8 i have defined a 3d NURBS curve and want many copies of an object to be laid on the the 3D curve, but without any deformation or rotation on the object.

I've tried using a curve + array modifier on the object, but that both rotates and deforms the object.

I've then tried using the above solution and manually adjusting the twist of each of the nodes of the curve, it works when the curve is not too tight, but requires tremendous work and is not a practical solution for the many 300+ control point curves that I am using.

Then I've identified a potential solution (available here) that uses dupliframes, and this works for blender 2.79 but not for 2.80 (beta, as of June/19)

What I am trying to replicate is exemplified on this picture - note that the boxes do not change orientation/rotation when places on the curve (copied from another question on SO)

I am now building python code to make this operation, but I am taping on this community to know if there is a faster/easier way for doing this.

The code I wrote to do what I couldn't do through built-in functions is below:

import bpy

skull = bpy.data.objects["Skull"]
curve = bpy.data.objects["xobject_name"]

try:
    newCol = bpy.data.collections.new('Skulls')
    newCol = bpy.data.collections['Skulls']
    # link the newCol to the scene
    bpy.context.scene.collection.children.link(newCol)
except:
    print ("safely ignore")

skull_copy = []
for index, point in enumerate(curve.data.splines[0].points):
    if (index % 2 == 0):
        print (index, point.co)
        skull_copy.append(skull.copy())
        skull_copy[-1].data = skull.data.copy()
        #bpy.context.scene.collection.objects.link(skull_copy[-1])
        newCol.objects.link(skull_copy[-1])
        skull_copy[-1].location[0] = point.co[0] + skull.location[0]
        skull_copy[-1].location[1] = point.co[1] + skull.location[1]
        skull_copy[-1].location[2] = point.co[2] + skull.location[2]


Importing to Unity, broken arm I have a model in Blender, when I export it as an FBX (default options, with animations) he comes in fine, except for his upper arm on one side. Which looks broken.
All the animations work fine too, just.. around the arm. I'm wondering what may have caused this?
In blender the animations and movement work as expected, it's only when exported as an fbx that this appears. The images below show the model in blender compared to unity)

EDIT:
A little more detail on the issue. It does definitely seem to be the upper-arm bone. At a resting T-pose, it looks fine, but when rotated, it distorts. I just have no idea what the difference could be between the left and right arm. I figured it might be the weights, but even having the arms 100% controlled by the upper arm in terms if weights it distorts the same.

The image below has the upper arm rotated to -60 for both arms. The bone on the deformed arms seems to have somehow not rotated as much. Again, this only happens to the exported fbx model. The model in blender moves fine.

I solved my issue by deleting the right side of my mesh and bones and re-mirroring them. I did not find the root cause.


Workflow: iterative rigid body array/curve tweaking, is there a better way? I am trying one of the inevitable n00b exercises, the roller coaster or race track model.  I have almost got the hang of it (create nurbs-path, create one track module, Array Modifier to Fit Curve, Curve Modifier, presto!).  All of this works, and I get a 3d track suitable for rolling marbles or toy cars etc.    However I find that while the Modifiers are still on the stack, the replicated track surface is not "solid" in Rigid Body World.  My little rolling toy falls through the track immediately.  After I Apply both Modifiers, the track becomes solid and I can then roll the toy down it.

However, as I observe the toy's behaviour on the track, I want to tweak the nurbs-path in various ways (slope, camber, radius etc) and it seems that the only way to do this is to Ctrl-Z back to the point just before I Applied the Modifiers.  Sometimes, if I'm not careful, I lose other useful changes in the process of unwinding the modifiers so that I can tweak the nurbs-path.

Is there any way (a) to keep the modifiers active and yet have the track solid enough for testing, or (b) quickly to undo Applied Modifiers on selected object only?  Or is the workflow loop I am now doing (test RB sim, ctrlZ ctrlZ until the modifiers are back on the track-object stack, tweak curve, apply mods again, rinse, repeat) actually the best/only way to do this?

I quote from the Answer to the other Question (see comments above) of which mine is (sort of) a duplicate.

You need to change the Source and the Shape of the rigid body collisions.
In the physics tab of the properties panel, change the Source from "Deform" to "Final".
Only "Final" takes the modifiers in to consideration, hence your trouble.
The other setting you need to change is the rigid body collision Shape, set it to "Mesh".

This solves my problem:  as soon as I select Final, the replicated object becomes solid in RB world and I can still tweak the controlling curve to reshape and refine it, without any Ctrl-Z nonsense.


How to bend nurbs surfaces I modeled a simple flat square, adding thickness by extruding.
Now I want the Surface to not be flat but a Kind of buldged.
How do I accomplish that?

I reckon you are new to 3d modeling , hence the question seems strange since you started out with a box. Nurbs modeling is a completely different beast. Let me try to help you out.

First of all, just like ibalazscs says nurbs are seldom used these days, its has proven itself to be quite a clumsy tool in regards to modeling. We deploy something else call "box modeling". Basically starting from a box or a simple plain we can create an estimate of an object surface and later add a modifier "Subdivision Surface"

This is what I mean ... on the left is a model that started out as a plane. I extruded the edges and created a draft form. After which I add a modifier to the model (Copied and selected highlighted in orange)...

After that there is a further step you may need to do to complete the look of a nice smooth curve surface.

The thing about curved surface in a 3d world is that you need more than one face to create the illusion of a curved surface. Yes illusion! All the surface you see in a 3d software are planes... using smooth surface shader those straight and flat planes hides their true edges, making them look like a smooth surface. Without smooth shader the model would look like this...

And here is the exact same model with the same number in vertex and face count, smooth shading applied...

Lastly, here are the steps to apply smooth shader...

Select the model.
Hit Tab to enter edit mode.
Hit W to display special drop down menu.
Select "Shade Smooth" from list.


Texture Rendering Black, but shows up in textured view My sword looks fine in solid view, but when I go into rendered view, it turns completely black.

I have mipmaps off, texture solid on.

It looks fine in solid view:

;

But when I switch to rendered view, the sword is entirely grey.

.

Your issue is that you don't have any lamps in your scene.

To add a lamp, you can press SHIFTA to go to the add menu. Then go to lamp drop down, and select point. This will add a point light which casts light in all directions. After you add your light, just position it until it lights your sword well.


Brick texture with multiple colors Using the Brick texture is it possible to have more than 2 solid colored bricks unmixed with the bias?

I have been putting a color ramp on the output of the texture node, at constant to get 2 colors.  Is there a way to further split these into 3+ colors, to provide even more random colors?

I tried to apply Robin Betts solution, however if I do it that way, the noise texture effects the color smoothness, I added a color ramp, which seemed to help and put the noise texture onto a brick, but now the color smoothness is a grey outline around all the bricks. I would like it to be a black.

enter image description here

node layout with color ramp

enter image description here

node layout with color ramp results

results of node layout as per Robin Betts solution Below.

node layout Copied from Robin Betts Solution below

The Bricks node puts out a random-per-brick blend of the two input brick colors, biased at Bias  = -1 to Color 1, and Bias = 1 to Color 2. So you can  quantize the blend, and map it to colors, as much as you like:

I've added a tree which uses the range of colors to switch between completely different textures:


How to change the speed of an animation? Okay so after looking around and not finding anything helpful on the matter, I'm going to ask here. Basically what I want to do is speed up my animation of my model walking. Right now it's 39 frames with little adjustments here and there and moving everything manually would risk something jumping out of place.

If anyone is familiar with Windows Movie Maker or most video editing programs, there's an option to increase the speed, thereby changing a 40 second video to 20 seconds in length while doubling the speed.(sorry if I didn't explain that well)

I wanted to know if there was a similar option in Blender to do this in animation. I'm using this model for an upcoming indie game in Unity if that helps. I still consider myself quite new to this, so if screenshots could be included in any helpful answers, it would be greatly appreciated :)

Also due to the model being in an upcoming game, I cannot share or upload it, sorry :(

While adjusting the FPS will make a faster animation, it doesn't help you when you are making a game. In the Dope Sheet, select all of your keyframes, press S and use the mouse to resize the length of your animation.