The armature does not move with the mesh

your geometry is unsuitable for rigging. Imagine, that bones moving with vertexes. In your case is impossible bending mesh by bones correctly, because mesh have really bad topology for animation. And this is the reason why Blender can't assign vertexes to bones and give error message.

Normally you can use "Automatic weights" feature in Blender. Select mesh, press "SHIFT+LMB" select armature. After press "CTRL+P" assign mesh to bones. But this doesn't work in your case.

This is how mesh must look for use in animation:
..as you can see, it work

You can control, how armature move with vertex by "Weight paint". Every bone have vertex group with the same name. Here you can set how strong are vertexes controlled by which bone.

I hope this help you. Also you can find a dozens tutorials about this theme all over the internet.


I want to follow a tutorial but my mirror modifier doesn't work like in video?

In the video, (having used it before,) the tutor is still using B Box-Select, in the shot you're referring to. In wireframe mode, that will select every vertex, however deep, within the box.

In your video, you are selecting directly, with a right-click. This will only select the vertex closest to the viewing plane.


Creating fantasy crystal-like object to composite in a photoshoot

Maybe this:https://www.youtube.com/watch?v=6q-vCT-ZuV8
Or this: https://www.youtube.com/watch?v=fxY4uq8kH0Q
tutorial will help??


How can I improt a motion file (animation) and then connect a skeleton to a mesh with animation working?

Follow the below steps:

Select your armature (skeleton) and go to the armature panel and hit rest pose
select your mesh and position it to be fitting on top of the armature
while selecting the mesh hit shift+right click to select the armature as well
hit ctrl+p then choose automatic weighting

Now the mesh should be parented and weights assigned automatically with the armature bones.


How to convert STEP to Open Collada or other importable format

I made good experiences with FreeCAD (0.16) both transforming to allow import into blender from step/iges data as also the other way around: exporting STLs from blender and then get them to be reshaped in FreeCAD and then exported as step or iges.
FreeCAD is fast, acurate, open source and available for windows, linux and macOS

(sometimes there are holes to stitch and most of the times when transform from step or iges into STL there are a few mesh operations and repairs needed, which work very well in FreeCad too.)

FreeCAD also understands, imports and exports DAE.

here's a little walkthrough for Blenders STL -> STEP/ IGES:
http://northernhope.blogspot.de/2013...h-freecad.html

(of course there are minor inadequaticies due to the transformation, but for me at least, these were always tolarable (below 0.1mm)) so at least for prototyping it proves to be suitable in both directions.


What’s the difference between applying shape keys and saving shape keys?

As explained if you hover over the function, with Apply, the modifier is removed, with Save, it is kept.


Hear timing reference audio from VSE while editing other scenes? (2.8 beta)

To have the python script conveniently accessible, we have to embed it into an addon for 2.8.

To activate the addon for this file only, copy the code (at the end of the post) and save it in a file (e.g. adjustNarratorTrack.py). Open it in the script editor in Blender and check the Register checkbox in the header of the script editor. With register enabled, a saved file will be automatically executed once the blend file is loaded, even if you close the script editor.

To run the script, without reloading the blend file, click RunScript.

The script creates a python operator. The operator can be called by

opening the search menu in the 3D View F3 and typing Adjust Narrator
clicking on the menu item, which we created under 3D View ▶ Object ▶ Adjust Narrator Track

Note, that this "addon" is not quite complete yet. Further research should be done as to how scene/sound strips behave, when they are cut off in the sequencer.

In the script

a custom Operator AdjustNarratorTrackOperator is defined. This will be called by Blender when you click on the menu items. It will be also available to python through bpy.ops..
two annotations of the operator are defined: audio_strip_name, cut_scene_name. These are adjustable after the operator has been executed. This is useful if you have changed your naming conventions.

The operator annotations appear in the 3D View after the operator has been executed.
there are two methods:

execute: called by Blender
adjust_audio_reference: a modified version of your script

In adjust_audio_reference the current_scene, audio_strip_name and cut_scene_name are referenced from the operators context.
Various checks are done to ensure, that

the "Master" scene exists
the "Master" scene contains the audio track
the current scene is not the "Master" scene
the current scene is contained as a strip in the "Master" scene
the sound strip is replicated in the current scene if necessary
the offset in timing is applied

In this case we want to use the frame_start property and not the frame_start_final property, since the frame offset to the frame_start_final doesn't reflect on the audio strips position at the start of a scene strip.

import bpy

class AdjustNarratorTrackOperator(bpy.types.Operator):
    """Adjusts the narrator track"""
    bl_idname = "object.adjust_narrator_track"
    bl_label = "Adjust Narrator Track"

    audio_strip_name: bpy.props.StringProperty(default='Narration')
    cut_scene_name: bpy.props.StringProperty(default='Master')

    @classmethod
    def poll(cls, context):
        return True

    def execute(self, context):
        try:
            self.adjust_audio_reference()
        except Exception as e:
            self.report({'ERROR'}, str(e))
            return {'CANCELLED'}

        return {'FINISHED'}

    def adjust_audio_reference(self):
        current_scene = bpy.context.scene
        audio_strip_name = self.audio_strip_name
        cut_scene_name = self.cut_scene_name

        # check if the master scene exists and contains the audio_strip
        master_scn = bpy.data.scenes.get(cut_scene_name)
        if master_scn == None or master_scn.sequence_editor == None:
            raise Exception('Master scene not defined.')
        master_se = master_scn.sequence_editor
        ref_audio_strip = master_se.sequences.get(audio_strip_name)
        print(ref_audio_strip)
        if ref_audio_strip == None or ref_audio_strip.type != 'SOUND':
            raise Exception('Audio strip not found.')

        # check if the current scene is embedded in the master scene
        timing_ref_seqs = [s for s in master_se.sequences if s.type == 'SCENE' and s.scene == current_scene]
        if len(timing_ref_seqs) == 0:
            raise Exception('Current scene is not contained in the Master scene.')

        ref_scn_strip = timing_ref_seqs[0]

        current_se = current_scene.sequence_editor
        if current_se == None:
            current_se = current_scene.sequence_editor_create()
        current_audio_strip = current_se.sequences.get(ref_audio_strip.name)
        if current_audio_strip != None:
            if current_audio_strip.type != 'SOUND':
                current_audio_strip.name = current_audio_strip.name + '_notSound'
                current_audio_strip = None
        if current_audio_strip == None:
            path = ref_audio_strip.sound.filepath
            current_audio_strip = current_se.sequences.new_sound(ref_audio_strip.name,path,0,0)

        timing_difference = ref_audio_strip.frame_start - ref_scn_strip.frame_start + current_scene.frame_start

        current_audio_strip.frame_start = timing_difference
        current_audio_strip.frame_final_start = timing_difference

def menu_func(self, context):
    self.layout.operator(AdjustNarratorTrackOperator.bl_idname)

def register():
    bpy.utils.register_class(AdjustNarratorTrackOperator)
    bpy.types.VIEW3D_MT_object.append(menu_func)

def unregister():
    bpy.utils.unregister_class(AdjustNarratorTrackOperator)
    bpy.types.VIEW3D_MT_object.remove(menu_func)

if __name__ == "__main__":
    register()


How to turn off textures in Blender Internal render?

Go to the Texture header and uncheck the desired texture slot checkboxes in material textures tab. Then render.


How to move multiple objects to a single point?

This effect is what happens when you transform (move) several objects along one of their local axis. You can tell this because in the status bar in the screenshot it says 'along Local Y'.

Each object in that screenshot has been rotated so it's Y axis is pointing inwards or outwards:

Then the Transformation orientation in the 3D header has been set to Local, which means each object's local axis will be taken into account during the transformation:

With all the objects selected, pressing G,Y,Y or moving the 3D Manipulator will start a local transformation on each object's local axis (the green lines):


Blender does not currently support importing packed substances (.sbsar files). Due to licensing issues, this may not ever be supported. In any case, you can just export the graph outputs as images and load those directly into Cycles. Note that .sbsar files are "compiled" to raster images prior to being rendered - even in renderers that support them natively, you do not get infinite resolution like you do with builtin procedurals such as the noise node.If your Substance doesn't have published controls or external inputs, and it doesn't look like yours does, there's not really much advantage to using a .sbsar vs image inputs. I wanted to clarify this, as it's a frequent misconception about how Substance works.

To export the outputs, right click the graph in the outline (the graph, not the package) and select "export outputs to bitmaps". Choose a path and check the channels you'd like to export. Official documentation is located here, if you need it: https://support.allegorithmic.com/documentation/display/SDDOC/Export+bitmaps

Once you have your channels as images, you can load them in Cycles and attach them to the Principled BSDF like usual. See my answer here: Which is the best workflow to follow when texturing and importing textures from Substance Painter?


Multiple Objects, Multiple UV's and Multiple Shape Keys Conundrum

Select all your objects (make sure all objects have the correct shape key selected and the correct uv set go active) and press Tab to enter Edit Mode for all objects at once. Then you can edit all the UVs all at once.

You should also think about the reason you got into a big mess where you would need to do that and if there is another way. If not, here is a simple script template to select all the shapekeys and all the uvs at once. if the UV is not present yet it will be created.

import bpy
UV_name = "Your UV Name"
for o in bpy.context.selected_objects:
    o.active_shape_key_index = 0
    if UV_name not in o.data.uv_layers:
        o.data.uv_layers.new(name=UV_name)
    o.data.uv_layers[UV_name].active = true


Using Animation Nodes with the expression node with equation starting with x(n+1)=

It is like an iterative process to calculate the equations you have mentioned in your question. Thus, at step 1 (n = 1), we supply some initial value for (x, y) say (x0, y0) and calculate the equations or (x1, y1) then in step 2 (n=1), we will use the previous (x1, y1) to calculate the equations (x2, y2), and so on. Therefore, we have to store the calculated value of (x, y) during each iteration step.

In animation nodes, the loop node has feature is called Reassign (see Advanced Node Settings in the N-panel) to store data per iteration that we can use in the next iteration. In this image, I have reassigned (or reinitialize) the vector input that acts as x(n), y(n) for the next iteration i.e., x(n+1), y(n+1).

Then animate the (a) parameter using Animate Float Node,

Here is Blend File:


Make parts of body mesh go through clothing mesh during simulation?

I figured it out. What you gotta do is separate the mesh into parts that you want to keep as collision objects and those you don't. So, in my case, it was simply separating the lower arms from the rest of the body but still having them work together as part of the same armature. After that I removed the collision modifier and hid (H key) the lower arms which hides them from 3D view but not render view. So, the animation render looks the same but the arms pass through the skirt mesh the way I want.


You may do it using Spirals of the Curve Extra Objects add on.

Activate the add on in User Preferences-->Add-ons (Ctrl+Alt+U).

Add a spiral and play with its settings (Spirals panel in a Tool Shelf).

Extend the spiral's lenght extruding the curve's points. Add a Bezier Circle in the same position as the spiral is. Scale it to give a curve a desired thickness. Apply its transformations (Ctrl+A-->Rot&Scale).

Select the spiral in Object Mode, go to the Curve Data header and set the Bezier Circle as a target of the beveled object.

Select the very top point of the curve, enable proportional editing and translate it along Z axis a bit to hide the ugly end of a curve.

You should get something like this:

To make make it gradually thinner in the inside select the very top point of the curve and scale it a bit with Alt+S using the proportional editing. Then scale it with S with a big proportional size falloff.

You may also use the proportional editing to easy change the curve's height.


Trying to render with GPU only, but uses very little of it

Go to system settings (Blender top menu > Edit > Preferences > System) and check that you are using CUDA with GPU checked and CPU un-checked

Check also that you are using GPU on the "Render properties":


How to join two cylinders with different inside diameters together as one?

For this to work You have to Apply the Solidify modifier and then join the objects. Follow the steps below to accomplish this...

This is almost the copy of Your scene...

Now both objects has the Solidify modifier applied so they have a thickness as could be seen in edit mode here.

Next step is to join both cylinders. To do so select one and hold Shift when selecting the other - press Ctrl + J to finish the process as shown below.

Now we have to delete unnecessary faces so select the part shown below and hit "X" selecting "Only Faces" option to delete them. Next image has this parts already deleted.

Next part requires Loop Tools enabled so enable it in the Preferences as shown below (optionally Save User Setting to keep it enabled).

Now select both inner Loops shown below by using the Alt key. Hold that key and click on one loop (between two vertices) to select the whole circle and then hold Shift + Alt and select the other one to keep both selected like shown below...

Now join them using the Bridge function (red rectangle) as show here...

Select both outer loop and join them too using Bridge again like below...

Switch to object mode and YOU ARE DONE MATE - CONGRATS! Just the final image of the object here...

Hope it helps You, Buddy.


Added meshes will not be aligned with the current transform orientation

After selecting your 'local coordinate' object, go to Edit Mode and select a face the represents your 'floor' rotation. Shift Numpad 7 will let you align your view to the Top view of this face, and in Object mode add your new object - and in the F6 panel/ tool bar operator panel, check 'align to view' and the new object should be aligned to your 'local coordinate' object.


Again, you can see all the properties equivalents in Python by hovering over the light properties fields you want to change via Python scripting.

For example,

lamp = bpy.data.lamps['Lamp']
lamp.energy = 10  # 10 is the max value for energy
lamp.type = 'POINT'  # in ['POINT', 'SUN', 'SPOT', 'HEMI', 'AREA']
lamp.distance = 100

The simpler is to first change their values by hand, before to find the values you need and set them via Python.


After a heap of testing to every part of my nodes I eventually found one of my Normal Maps was plugged into my Color ramp. Not sure how I did it but that just killed a day of work (took a day off due to extreme frustration towards myself).


remove unassigned materials from an object... how do I do this?

If a material is not assigned then it could be in the orphan data, just purge your orphan data and that should do the trick


It's because the subsurf modifier is active on fireframe in edit mode, just clic the last button (little triangle) in the modifier view settings.


You are in face select mode and it appears that you extruded a face along the Z axis. Use Ctrl + Tab > Edge to change to Edge Select Mode to grab and extrude edges. However make sure that you have removed or undone the face extrude operation before this.


Extruding a circular shape from a non-circular object

Depending on your mesh, you will have to select a number of faces to use as a circular entrance to the hole. The density of your example image suggests to use 2x2 (4) faces.

Select the faces and remove them. X
Position the cursor at the center of the desired hole and set the pivo point to cursor mode.
Select the vertices and make them to sphere ⇧ Shift⎇ AltS > 1 > ⏎ Enter.
Smooth them with the loop tools space option.
Add a circle with 8 vertices and bridge the remaining geometry. You know have a perfectly circular piece of geometry which you can extrude inwards.

The resulting topology


Smoke won't generate in 3d View. Or at all

So I figured out the answer. Apparently there's an add-on check point for generating smoke that needs to be turned on. Once I did that now I see smoke in my renders.


node help: how to make a curve with linear and module

You can do this with a Vector Math node.
Start with the horizontal band texture that you want to warp (I used a wave texture cut with a ColorRamp as an example).

Pick another texture to use as a "warp factor". I used a wave texture set on the Y axis. I didn't use a ColorRamp, because the natural gradient of the texture will help make the wave "curve" smoothly.

Then, use a Vector Math node to add the Color output of the "warp factor" texture to the original input vector. Use the result as a vector for your initial horizontal band texture. I added a MixRGB Node between the warp factor texture and the Vector Math node, because it lets you control the strength (and therefore the warp factor) of the texture output by changing the mix factor.


Since the fingers come in at different angles, it would probably be best to animate each bone individually.


Those artefacts come from the Smooth Shading option.

Each 3D object surface is made of triangles. Even when you work with quads or ngons, Blender will translate this into tris (for example each quad will be made of two tris). If you enable Smooth Shading, Blender will smooth every transition between 2 tris. It will give something good on round or flat topologies but it will give something bad on angular ones because Blender will also try to round the angle between hight-angled tris, which doesn't seem natural.

You can fix this with the Auto-Smooth option. It allows you to limit the smooth effect on tris that are only under a certain angle value. For example in your case if you set to a value under 90° it will smooth the round corner, because the tris angles are much under 90°, but it won’t try to smooth the 90° angle between the top and the side surfaces.

Apart from that, try to work with triangles and quads rather than ngons. Example:


How can we use more than 2 cameras in one scene ? (Just like this)

I found a video doing what you wish on Youtube : https://www.youtube.com/watch?v=3vrP7H1PpTI

The video is quite old (2014) so the UI has changed but the process seems still  valid. In short, you can create copies of the scene linked to the same objects and then use compositing node to assemble all the renders into one.

There is also a Blender add-on facilitating multi-camera rendering named Render Burst. Here is the Github repository  and Presentation video. It seems more adapted to picture rendering though.


Can I get a UV-irrelevant grid material on blender?

Someone on the blender Reddit made an custom node that does something like this.

He publiced it on blenderswap:
https://www.blendswap.com/blends/view/85263

You can tweak it a bit, here is a node setup you can use:


To fix this follow these steps:

Go into 'Edit Mode' and select all Edges by pressing 'A'
Press 'CTRL + E'
Click 'Clear Sharp'


In the NLA Filters menu icon make sure all choices are selected ... dark color.


trying to put a hole in a rigged character for animation

You can go into edit mode, select the vertices that should create the hole and press P to separate the selected elements. This creates a new object which retains all previous behaviours: parenting, armature, weights, modifiers, ecc ... You will have to add a bone for this new feature and do some manual weighting..

Another way is using shape keys: create 2 new shapekeys, then with the second selected go into edit mode and change the shape of the mesh until the hole looks the way you want, then in object mode you can animate the shape key value.

Using AninAll on vertices that have been animated by a rig can lead to unpredictable results.


Share custom compositor nodes among blend files

You could customize your start up file.
1. Open your start up file
2. Append the node groups you use a lot, click on the F in the node groups and delete the node groups.
3. Go to your default screen
4. CTRL + U save sart up file.
5. Close your file
6. Open a new file, go to the compositor, SHIFT + A --> group --> your node groups


Why is Blender selecting the object furthest from the viewport camera in object mode?

For anyone encountering this problem in 2.8x+, enabling Depth Picking in Preference > Viewport > Selection solves the problem


Can't increase density on a small object

Don't forget to bump up the sample count in Render > Volumetrics > Samples.
They're set pretty low by default.


I would like the parent to rotate and translate with the child but scale the parent independently

If your overall goal is to have the child translate and rotate with its parent but scale independently, then one option is to use a Child Of constraint instead of parenting. This solution does not require any Python scripting.

Clear any parent the "child" object may already have with Alt+P.
Add the Child Of constraint. Once you assign the "parent" object, you can choose which components of its transform are inherited. In your specific case, you'll want to disable all three scale axes.


How to scale loop cut instead of scaling whole mesh?

There are two main problems.

You're using Pivot > Individual origins, change it to Median
You have Proportional Editing enabled, disable it


Using the macOS version of Blender v2.80 & v2.82a the settings can be found under Preferences -> Navigation -> Natural Trackpad Direction.


3D Scene in VSE: Hide an object keeping the shadow

As of Version 2.79 Cycles has an option to make an object a shadow catcher.

From the release notes

  This option will make object to only receive shadows in a way that it could be alpha-overed onto another image.


There is a second scene called testlight, which has Use nodes disabled.

Enable nodes in testlight, then the nodes will appear and work fine in the main scene.

I'm not sure why this happens. I think it might be a bug, you might want to try reporting it (particularly if you can figure out how it got this way in the first place).

Re-disabling use nodes in testlight doesn't seem to disable nodes in the other scene again.


I am creating a waterfall and I want to have the fluid physics loop over a set of frames

Your best bet would just be to render out a 10 second sequence (ie. 8 seconds plus a little extra), and then cross fade the clips in a video editor. I don't think you're going to be able to actually loop the fluid sim files with any sort of precision.

You can physically duplicate the fluid sim files that you've cached. If your cache folder contained: fsim1.bobj, fsim2.bobj, fsim3.bobj, then you duplicated them and renamed them fsim1.bob4, fsim5.bobj, fsim6.bobj, then you would then have a 6 frame simulation with the original simulation repeating twice. Figuring out how to blend them would be the difficult part.


Changing the units in blender breaks camera view

Sounds like the clipping distance is too small:

One meter is the default size of the spaces in the grid, and in this case isn't large enough.

If you enable limits in camera > display, you can see a representation of the clipping distance in the 3D view, allowing you to see what might be wrong:


Particle system not linking particles at the object origin

Okay it looks like the main problem is actually pretty simple. The particle system is set to render from the collection FlowerBunch1, but it looks like Bunch1 is the collection you've been working on. So changing that fixed the worst of the problem. (You can also check Pick Random so it randomly selects a blossom in the collection instead of cycling sequentially)

As an aside, the collections listed with an F (including FlowerBunch1) have a fake user (see also: term in 2.79 manual) keeping them in the blend file, even though they aren't in the scene anymore. If you want to remove these entirely (and you're sure they aren't needed or referenced elsewhere), you can switch the outliner to show the blend file, then right click the collection to delete it from the file.

Or alternatively the fake user can be set/removed in the ID Data sub-menu and the collection added back in with Link to Scene.

At this point the blossoms should be mostly connected correctly. Just make sure to check that all the objects in the collection have their origin where you want it to connect to the branch. The bent blossom Circle.006 is a touch off, and the large bunch object Circle.004 is a little disconnected. It may need to be modified to have the stems come together closer to its origin, so they all appear connected to the branch.

And this goes a bit beyond the scope of your question, but the rotation of the blossoms is also making it hard to tell sometimes where it's connecting. Here's a couple suggestions as a starting point, but do whatever will get the results you're looking for:

Rotating the blossoms to be aligned with the X axis allows the particle system to know which way the blossom is facing

Orienting the particles to the branch's normal so it points outward. Using a bit less random rotation, but with more random phase (spin).

Note: To keep it simple, I removed the bunch (and the empty) from the collection Bunch1 for these examples, so that only the single blossoms would be added to the tree.


Why does Blender use so much memory for large textures?

3D applications often needs to have images directly accessible, that is - to be able to look up a pixels value instantly. common cases are:

Rendering a texture on a 3D model (applies to any render engine).
Load the image into OpenGL memory (where the image is sent 'complete' to the graphics-card).

Since a 3D application is a less controlled environment (than a game-engine or 2D-paint-tool for example) - an image may be used for a modifier displacement map, composite node input, a background in the view-port or be painted onto - all at once. This means we have some constraints which make it harder to optimize for any single use-case.

Even so, there are strategies for better handling texture memory.

Free images from memory which aren't used often.
Load lower resolution versions of the image into memory (mipmaps).
Load partial regions of the image into memory.
Support in-memory compression (often used for OpenGL textures).
Support for lower bit-depth of channel options (monochrome, greyscale, limited color palette, index-color).

Blender specifics

What Blender does now

Images are freed from OpenGL memory if they aren't usedsee: User Preferences -> System -> Texture Time-Out
Persistent images (Cycles only), disable so images are freed between renders.

How Blender could be improved

Avoid loading large imagesThis would likely mean caching mipmaps.
Avoid loading the entire imageThis was implemented for 'Sintel' in the render branch, but was never included in a release.see: http://wiki.blender.org/index.php/Dev:2.5/Source/Render/RenderBranch/ImageTileCache
Better memory management, free images from memory (use a time-out similar to what we already have for OpenGL).
Support OpenGL texture compression.
Support loading textures into OpenGL memory, and freeing from system memory.
Implement the same 2D tile-based systems used by image image editors, (but only use it for 2D-painting).

Comparisons with other fields

Games

Games have the advantage that textures can be pre-processed, compressed on-disk to be sent directly to the graphics-card in formats you wouldn't necessarily be able to open for editing.

They typically don't have to operate under the assumption that any texture may be painted or edited at any time.

See: https://www.opengl.org/wiki/S3_Texture_Compression

Image Editors/Painting Tools

Don't have to load the texture into graphics-memory to display on 3D models, so they can use their own in-memory representation of images.

They also have the advantage that each image view has a single zoom-level, (unlike a texture mapped to a 3D-mesh, which may need to access multiple mip-maps at once). So they can - for example, streamline managing multiple tile-sets at different zoom levels.

See notes on krita's tile manager: http://dimula73.blogspot.com.au/2014/07/notes-from-calligra-sprint-part-2.html

Note, the on-disk size of an image isn't all that meaningful.
if a 6k texture only takes ~200kb - Its likely not very detailed, a single color image or highly compressed (lossy).

You can ZIP a .txt file with your name written a million times into a few kb, but try editing this as an email :)


I think you do not need to unzip the archive. Go to Edit > Blender Preferences, then choose Add-ons section from the sections on the left side and press "Install an add-on" button on top, browse for your zip file, choose the file and press "Install Add-on" button on the bottom next to Cancel button, after add-on is installed you need to enable it.


How to get the angular position of a the rotating object of a motor constraint in python scripting during animation play ? (Blender 2.78)

The Object's matrix_world is what you're after. Call to_euler(...) to get the Euler angles.

bpy.data.objects['Spool'].matrix_world.to_euler('XYZ')


Is it possible with Python to code G key to move channels up and down in the Dopesheet editor?

Yes, the default keys are ⇞ Page up and ⇟ Page down, the setting can be found in keyboard input under Animation Channels.

The python path is bpy.context.window_manager.keyconfigs.active.keymaps['Animation Channels'].keymap_items['anim.channels_move'] with the property type being the key used, properties.direction is the direction the selected item is moved. You will want to loop through the keymap_items as you will find four keymap_items['anim.channels_move'] entries, up one line, down one line, to the top and to the bottom.

You should look at adding keymaps to an addon to make the changes properly.


I suppose you're asking if there's a way to see if the normals are all facing the right way? Try to be as specific as you can when posting questions.

You can check this in the viewport overlay dropdown menu, under geometry check the "face orientation" checkbox:

Red means it facing the "wrong" way.

to fix the normals so they face the same direction:

select object
'TAB' to enter edit mode
'A' to select everything
'ALT+N' to get the normals menu dropdown
select Recalculate Outside


How do I rotate my viewport around the position of my cursor?

Edit -> Preferences

I think you need this to be checked.

This also could be interesting for zooming to/from mouse position

I found a nice tutorial on that subject.


You can do that by subdividing one direction at a time. You can do so by first selecting two opposite edges, and subdividing them. Then, select the new grid lines by holding Ctrl+Alt and clicking on one of the grid lines. Then subdivide that.

Edit


Yes and no:

see this for "what is baking"

and this for "how to bake in cycles"

I say "yes and no" because no, you cannot use a complicated raytracing render engine realtime in a game (unless you have like, some sort of super computer :D)
But yes cycles can improve your games visuals and even make them appear like they were rendered in cycles if you do it right.

Also yes the light will look "glued" to the object, but no, with specular maps and only baking a diffuse pass it does not have to be, and can be 100% dynamic.

Since I know next to nothing about Unity (game engine or otherwise), we will discuss this in terms of blender.

First of all, you want to only bake certain passes for a game texture.

I only use "Diffuse Direct" and "Ambient Occlusion"
you can change the pass in the little box "Bake type"

This will ensure that no reflections/lights will be baked into your object, especially if you only use Ambient occlusion

If you want to get really fancy, you can bake out or paint a specular map, which will make your object only reflective on certain parts, and usually makes games look better. :D


Blender 2.8 : Black faces when baking ambient occlusion

Well, hidden object may affects on baking. To solve this issue, do following. Enable render and viewport toggles in Outliner in Filter menu:

then make your object invisible in render and viewport, by pressing on camera and monitor icons:


Make sure you are selecting an object/bone to be able to add action to it.


Particle Rendering problem (looks like a texture rather than particle)

The issue is that you have the particle size set way too small. I changed it to a size of 1.00:

And got a result like this:

At a size of 0.020 the particles are less than 1 pixel across, making some of them invisible to the camera, and blurring others. By changing the size for all of the particle systems, I got this result:


How can I simulate cloth between one static object and one moving object?

You can do it this way:

Create your sail and a create a bone that you call Bone1:

Give your sail a vertex group that will be the cloth pin (call this group Pin), it must be all around the border:

Give your sail a vertex group for the bone control (call this group Bone1) that must have a decreasing influence:

Give your sail a Cloth physic simulation. In the Cloth panel > Shape, choose the group you've created as Pin Group, enable Self Collisions. Select the vail, shift select the bone, switch it to Pose mode, and press CtrlP > Set Parent To > Armature Deform so that the bone will control the vertex group that has its name. Create the rest of the object, give it Collision physic if it is supposed to interact with the vail:


Reconstructing axis of pot with one shard via vertex normals

Proof of Concept

Result on single selected edge of convex hull
Further to comment, have added this as going some way to proof of concept,
Fistly here is a script that copies your object and mesh to another, goes into edit mode and converts it to a convex hull.
Select the shard and run
import bpy
bpy.ops.object.mode_set()
bpy.ops.object.duplicate(linked=False)
dupe = bpy.context.object
dupe.display_type = 'WIRE'
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.convex_hull()

after which new wire frame of the convex hull of original in edit mode with all geometry selected.
The next script goes thru the edges of the hull, finds the closest point on the mesh to its middle point, uses these to create a circle from chord as described here How can I create a mathematically correct arc/circular segment?
To visualize have added a vert at circle center and the two joining edges.  As data would save as radius, centre coordinate, and normal (axis of rotation the normalized cross product of two edge vectors)
Test script, creates predicted circle "wedges" for each selected edge.  Run with convex hull mesh in edit mode, edges of interest selected.

Result on all edges of convex hull
import bpy
import bmesh
from math import asin, degrees
context = bpy.context
scene = context.scene
ob = context.object
me = ob.data
bm = bmesh.from_edit_mesh(me)
shard = scene.objects.get("3D_Scherbe_Model_50K")
#edges = bm.edges[:]  # all edges
edges = [e for e in bm.edges if e.select]
#edges = [e for e in bm.select_history if isinstance(e, bmesh.types.BMEdge)]
for edge in edges:

    o = (edge.verts[1].co + edge.verts[0].co) / 2

    hit, loc, _, _ = shard.closest_point_on_mesh(o)

    if hit:
        h = (loc - o).length
        if h < 0.1:
            print("On surface")
            continue
        a = edge.calc_length() / 2
        r = (a * a + h * h) / (2 * h)
        if abs(a / r) > 1:
            # math domain error on arcsin
            print("N/A")
        else:
            angle = 2 * asin(a / r)
            print(f"{r} {degrees(angle)}")
            vc = bm.verts.new(o + r * (o - loc).normalized())
            for v in edge.verts:
                bm.edges.new((v, vc))
bmesh.update_edit_mesh(me)
me.update()

Notes.

Instead of predicting a circle from the closest point to edge centre, could walk the edge and make  sample points to crunch into   https://meshlogic.github.io/posts/jupyter/curve-fitting/fitting-a-circle-to-cluster-of-3d-points/ and https://github.com/ndvanforeest/fit_ellipse as suggested by @RobinBetts.

Similarly could use the generated circle estimate to test against actual mesh surface.

Look at the normal returned from closest point on mesh.

Narrow down the selection, is there historic data that suggests radii or wedge angle within a certain range.

Project (closest point on mesh) equal length "subchords" of edge onto mesh, if each has same radius and angle would be a perfect match.  Minimize for best fit.

Look at the bounding box dimensions. If an edge is shorter than some fraction of minimum bbox dimension it is probably not major pot axis. Consider shaving off some percentage.

Decimating cleaning or smoothing shard mesh in some way.


Why blender splits my imported model in pieces?

Well its pretty unusual workflow, so dont aspect everything to work.
however maybe blender can save your day
make sure to join all loose objects  (border select on screen and join them).

Next in edit mode try verticles remove doubles.. if your lucky itss all connected afterwards
next recalculate normals.


UVs don't display on one specific part of the model

There was an extra material on the foot. Once I deleted that material the texture then displayed correctly.


Cycles - camera motion blur only on certain objects?

One possiple way to solve this problem is by assigning a object or material index to the objects, that should not be blured. than you enable the Vector pass in your render layer. In the compositor you can than remove your objects from the image (with the id-mask) and replace them with black (do the same with the vector by just handling the vector like an image), apply the vector blur and add your objects again.


I think you can use a parent>"follow path" (say 100 frames) to animate the first part, the "walk", then just insert keyframes for the second part of the animation at the end of the first part (say starting at frame 101).

In a much simplified example,

this could be the path animation (1-100)

and this the keyframe after (101-200)

and this would be the result


How to model text with ridges (car badge)

The geometry is too tight and the bevel overlaps.
Making the ridge manually might be easier.

Add a line where you need the ridge to be
Move it up
Done.

Start by adding inner edges in your mesh Vertex > New Face (F).
Use triangles if needed.

Then select the inner edges and subdivide.
More complex cases may need manual correction.


How do you set the scale for a specific project?

You can set units and scale in the Properties Panel

Newly added cube after scaling to .01m with Edge Info Length enabled:

There are also a few settings in 3D-Views Properties-Panel (N) these influence only the display:

See also:

How to model effectively using exact measurements?
How can I use imperial units when entering measurements?


Weight Painting Won't Get Rid of Weird Protrusions

To trouble shoot, enable Adjust edit cage to modifier result of the Armature modifier.

Then you can select the problem vertices in edit mode and examine the problem vertices.

This vertice should not be assigned to the chest. It should be mainly assigned to the UpperArm.R, currently it isn't.

To fix this go into weight paint mode, select the upper arm bone and add weight to the vertice.


Are there any tips for editing the deform mesh cage?

If it's too hard to deal with only one cage, you could deform your mesh with 2 different cages and 2 different Mesh Deform modifiers:

Select your body mesh, enter in Edit mode and create 2 different vertex groups, one for each leg.
Create 2 different cages, each one will encage one of the 2 legs.
Give your body 2 Mesh Deform modifiers. For each modifier choose one of the cage and in the Vertex Group field, choose the corresponding vertex group you've created for each leg.
Click on the Bind buttons.
Now each cage deform only a part of the mesh.


Mesh interferes with the texture of a plane

I don't know what you mean by the track interfering... but the texture mapping for the grassy plane is messed up.

First of all, your plane has been scaled in Object mode.

select Select the plane and press CtrlA and select Apply Rotation and Scale

(More on why you always want to apply your scale here and here)

Next:
Your plane has no UV map, so blender will not know how to map the image.

Go to top view. , enter edit mode select all (A) press U to unwrap the texture.

(note that I changed the number of repeats for illustrations purposes...


It would be really nice if you could post the link to the original Tutorial, as this is a quite common rigging problem with multiple solutions, and it would be interesting to see the approach with two armatures in action.

I found a different solution which deals with one single armature only, and gives you a physically correct motion. See this blend file here:

The trick is to use one bone as the master controller, and a second one mirroring the master controller's orientation. By using that, a simple IK chain can be spawned inbetween, and that serves as the master for the rod. See this screenshot:

Arm.Top is the master, which shall be rotated by the animator. Arm.Bottom receives a Transformation constraint like this:

So whenever Arm.Top rotates by a certain number of degrees, Arm.Bottom rotates the same amount, but the other direction. Arm.Bottom needs to be rotated by 180 degrees in Edit Mode already for this to work, and the Axis have to be oriented sideways by pressing Ctrl + N, using Global +X direction as the target.

Arm.IK.Target and Arm.Base.Parent are helper bones, they have Inherit Rotation set to off to avoid axis fliping issues. They are simply childs of Arm.Top and Arm.Bottom.

The IK Chain has to be modelled in a way so top and bottom arm have equal length. Arm.Base is a child of the main bone, and receives a Copy Location constraint like this:

For Arm.IK I've added an IK constraint obviously:

The targets of both of these are always the helper bones. Finally, the Piston bone, also a child of the main bone, is added and receives another Copy Location Constraint. Rod and Piston are now parented to the respective bones, the flywheel is parented to Arm.Top, and the grey part to the main bone.

In the blend file, you can play the simple animation which I've added to see the stuff in motion.


What skills are required to model / sculpt this head?

As already mentioned in the comments, make human is the shortcut.
A  shape created by this awesome tool in two minutes, limited in details but could be tuned wihtin blender:

Another way to re-create this with modelling either trace the contours of a background image. Or use subdividing, insets and proportinal editing:

After ripping V the mouth, the mesh could be easily adjusted to whatever head shape you want. Kudos to What's the best way to model organic shapes?

You might also need this addon: http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Add_Mesh/Add_Gear


Walk mode camera "jumps" back when stopped

I'm using blender 2.78a.  I've been dealing with the same issue, and I found a work around.

If I zoom all of the way in before entering fly mode, the "jumping" no longer occurs.  If I zoom out before entering fly mode, the "jumping" gets worse.


NLA Action of material Mix Shader node FAC value

Found the answer:
Fade in action applicable to all objects (in cycles)

Keyframe the object's pass index from 0 to 100, use the object info node:object index output, connect to math(multiply) node with value of .01, connect to FAC value input on mix node.The object's pass index gets recorded in the NLA editor, so I have my action strip!


How to make text object restricted to certain height?

Create an object above text and set it's material to holdout:


Change value of material emission strength from Python console or script

Found a solution:

bpy.data.materials['material_name'].node_tree.nodes["Emission"].inputs[1].default_value = 3 #or any other value

Thanks to this reference


The default configuration for blender on FreeBSD does not include cycles. If you install using pkg install graphics/blender then it will not be enabled.

To enable cycles you will need to compile blender yourself (assuming you have ports installed).

cd /usr/ports/graphics/blender
make config
(enable cycles in the menu)
make install clean

Note that building blender might require other ports that you may not have installed yet (like devel/llvm34 if you also enable CYCLESOSL), these can be installed using pkg install instead of compiling them yourself.

After the make config step you can use make build-depends-list to see what is needed to build and check if you have them installed.

Cycles was disabled by default as there is sometimes an assert from boost that causes the build to fail. I find this only happens when generating the man page which can be removed from the Makefile.


Alternative update callback for PointerProperty?

Major edit:

After re-reading batFINGER's answer, I have figured out another way to do this for Bender 2.79+. One of the key points batFINGER highlights is that you can work out which node is the parent by checking all nodes and seeing if the property is a member of one of them.

Instead of creating a factory though, I created this function that iterates through a node tree and tries to find the node with an attribute that is prop:

def find_prop_node(tree, prop):
    if tree is not None and prop is not None:
        for node in tree.nodes:
            for attr in dir(node):
                if getattr(node, attr) == self:
                    return node
    return None

Now all the property has to do to find its parent node is call find_prop_node from its update function:

class COProperty(PropertyGroup):
    tree = PointerProperty(name="tree", type=NodeTree)
    call = StringProperty(name="call", default="update")

    def callback(self, tree, func):
        self.tree = tree # node.id_name
        self.call = func

    def update(self, context):
        node = find_prop_node(self.tree, self)
        if hasattr(node, self.call):
            getattr(node, self.call)(context)

    origin = FloatProperty(default=1.0, update=update)
    size = FloatProperty(default=1.0, update=update)

    def template_layout(self, layout):
        row = layout.row(align=True)
        row.prop(self, "origin", text="Origin")
        row = layout.row(align=True)
        row.prop(self, "size", text="Size")

The custom Node code now looks like this (note self.id_data instead of self.name):

class CONode(Node, CONodeTree):
    """CO Node"""
    bl_idname = "CONode"
    bl_label = "Origin"
    bl_icon = "OBJECT_DATA"

    def uda(self, context):
        self.update()

    coProp = PointerProperty(type=COProperty, name="coProp")

    def init(self, context):
        self.coProp.callback(self.id_data, "uda")

Because this method isn't reliant on the node's name it isn't susceptible to breaking after a node is renamed. Iterating though the entire node tree might be slower, however.

By adding 2 StringPropertys (parent and call) to the PropertyGroup which store the name of the node that owns it and the function it should call, it can do getattr(self.id_data.nodes[self.parent], self.call)(context):

class COProperty(PropertyGroup):

    parent = StringProperty()
    call = StringProperty(default = "uda")

    def uda(self, context):
        if self.parent in self.id_data.nodes:
            if hasattr(self.id_data.nodes[self.parent], self.call):
                getattr(self.id_data.nodes[self.parent], self.call)(context)

    def callback(self, name, call):
        self.parent = name
        self.call = call

    origin = FloatProperty(default = 1.0, update=uda)
    size = FloatProperty(default = 1.0, update=uda)

To set it up in the node simply call self.coProp.callback(self.name, "uda") in the init (and in update if the name of the node can change):

class CONode(Node, CONodeTree):
    """CO Node"""
    bl_idname = "CONode"
    bl_label = "Origin"
    bl_icon = "OBJECT_DATA"

    def uda(self, context):
        self.update()

    coProp = PointerProperty(type=COProperty, name="coProp")

    def init(self, context):
        self.coProp.callback(self.name, "uda")


Object showing only in render and not in viewport even though visibility settings are correct

You've got a second object, called Obstacle.001, which is hidden in viewport but not in render. It's a child of "Monitor" (maybe that's why you didn't seen it in the outliner, you need to expand "Monitor" to see it).


Using Compositing for Semi-transparent object effect

Set up the Exclude layers section on each renderlayer so that layers you don't want included in the renderlayer are explicitly excluded:

By default, as you have noticed, objects outside the included layers will still affect the output through indirect lighting/shadows.

This is often very useful when compositing different parts of a scene together which should appear to integrate together seamlessly, but if you don't want this, it can be disabled via the exclude option.

"Excluded" layers will not have any affect on the output of the renderlayer.


What are the advantages of Rigify versus MakeHuman's MHX rig?

I tested out 2 options...

MakeHuman Game Rig Preset:

MakeHuman > Pose/Animate tab > Rig presets > select game.json
Then export to Blender.

Works like a charm in Blender. It seems to have all the posing that Rigify offers. Imported from Blender to Unity3D and worked perfectly with Mecanim. This seems to be the way to go!

MakeHuman with Rigify option checked on export:

No Rig preset set.
On export screen, select "Export for Rigify".

Works great in Blender. Requires that you filter for WGT (widgets) and delete them before importing into Unity3D. However, some of the deformations don't act right with Mecanim in Unity3D. According to Unity's Docs you will need to make adjustments to parents/skinning/etc in Blender before it works.

Conclusion: MakeHuman's own rig preset wins, for a smoother blender-to-unity work flow, and there are no drawbacks in rigging comparision with Rigify that I noticed.


UV texture can be seen also in Solid mode, just enable Texture Overlay


If we bake passes manually, they are baked to the selected texture node in the active objects material node tree.

We can create a texture image node, make it active, then assign it an image and bake a desired pass.

import bpy

BAKE_TYPES = ['DIFFUSE', 'GLOSSY', 'AO', 'NORMAL']

nodes = bpy.data.materials[0].node_tree.nodes
tex_node = nodes.new(type='ShaderNodeTexImage')
nodes.active = tex_node

for type in BAKE_TYPES:
    img = bpy.data.images.new('bake_' + type, 500, 500)

    # if you have images prepared, load them instead
    #img_diff = bpy.data.images['image_diff']

    nodes.active.image = img
    bpy.ops.object.bake(type=type)

nodes.remove(tex_node)


texture is different on the geometry than on a plain

Because it's mapped differently. The plane has a default UV map, which an image-based texture will use in the absence of any explicit UV unwrap you may perform. The other object doesn't.(It appears to have each face mapped to the entire UV space.)

So you will have to UV Unwrap your second object.


How to set which graphics card is used by OpenGL render active viewport?

According to this article: How to set a default graphics card
you can choose graphics card for an application via NVidia Control Panel. You can find it by right-clicking on your desktop.

You may need to update your NVidia driver (and restart your computer). If everything is OK, Blender system info file will look like this:


There is a way to add custom split normal use Python API?

Custom Split Normals
Elaborating on this answer and here
Test script. Run in object mode.  Switch to edit mode to see results.
import bpy

context = bpy.context
ob = context.object
me = ob.data
# visualize in edit mode
me.show_normal_vertex = me.show_normal_loop = True
me.use_auto_smooth = True
# normal custom verts on each axis
me.normals_split_custom_set([(0, 0, 0) for l in me.loops])

end up with custom split normals in each of the corner directions. Blue are the vert normals
# all custom split normals pointing up.
normals = [(0, 0, 1) for v in me.vertices]
# make csn's all face up.
me.normals_split_custom_set_from_vertices(normals)

all custom split normals facing up (0, 0, 1)
I am not aware if custom split normals can be accessed from bmesh.


Veikk 1560 (Wacom Cintiq alternative) compatibility issues

you can contact their tech support , this may the issue of veikk 1560 driver . so you can't use the two buttons of the stylus .

I've had a XP-Pen G430 OSU tablet for many years that has proved to be handy. And I've seen a top-of-the-line XP-Pen pen display monitor that cost about 450 dollars. This 16-inch Artist 15.6 Pro drawing tablet with screen intended for people who want a pen monitor product but find the high-end prices too high for them. That is, people like me.

For people like me, this is impressive. Being able to use the pen right on the screen makes a big difference. And make no mistake, the pen draws right where it contacts the screen. There are no problems with parallax (at least that I could see -- I didn't perform any tests). That makes sketching and drawing almost like using a pen on paper. Better in some ways. it works well with Blender and Photoshop art programs .


Why aren't most of the displacement noise options available in the node editor?

The textures you find in the node editor are render engine based shader nodes, what you see is dependent on currently active render engine, and only available at render time, and in some cases to the basic OpenGL viewport preview.

On the other hand, textures available for Displacement (or any other modifiers for that matter, like particles, hair, painting among others) must be available at all times, even before rendering, and regardless of the currently active render engine, such as third party ones.

For the purpose of this answer I'll assume you are using Cycles as active render engine, and by the "node editor textures" you mean Cycles Shader nodes.

As such the textures you find in the node editor are Cycles Shader textures, capable of GPU computing and other Cycles exclusive features. They only really work if Cycles is used as render engine, and are generally computed at render time, making them unavailable for use in modifiers.

For modifiers, Blender Render based textures are used instead since these have been around far before the emergence of Cycles. They supporting a different set of features and aren't bound by the same constraints required by Cycles. These are computed in different ways, on CPU only, and rely on Blender Internal, and as such are is available at all times even if Cycles isn't being used.

You can't really use Cycles shader nodes for modifiers, and the opposite is also true, you can't use Blender Internal textures for Cycles shader trees.

For future Blender 2.8# version there are plans to retire the old Blender Render based textures and replace them by a modern Cycles compatible node system, but it will not be available any time soon


A Line distrupting in front of my Donut model

I've made the donut before! This problem was mentioned in the videos somewhere, either in the same episode or the follow up episode. It is caused by an extra accidental layer of icing when extruding the region by extruding twice, the layer is probably meshed with your icing, so at this point the only thing you can do is delete the icing, and make a new one :D.


How to use procedural light cookies (Blender Internal)

The easiest way would be to put a sub-divided mesh in front of your light, with a multi-slot material bank associated to that mesh. Then all you would have to do in each material slot is give each their own alpha value, then do a random face selection for each slot and assign it to the selection.

Just make sure that your material is equally RGB (R=G=B) for each slot, and you won't modify the color, only the tint/intensity.


How to type in script editor window when mouse cursor is elsewhere?

Well this is a workaround but if you Toggle Fullscreen Area AltF10, then you can type in the text editor with the mouse cursor outside of blender!

See my answer for other options for maximizing windows in blender.
However full screen area is the only one that works completely, simply maximizing the text editor the header and info bar still get in the way.


Cut off subsurf supporting geometry only using quads

Do all your quads have to be connected? It might be easier to split the mesh, so you have more control over specific parts.


Thanks for providing the .blend file, it looks like the issue is due to the Armature being off-center. You can inspect this with the Item tab in the N menu, you generally want an armature's origin to be right at the world center for X-mirror to work.

I was able to correct the issue by translating the Armature object up on the Z axis until the feet touched the floor, and then applying the Location transform to the armature with Ctrl + A. After this, the bones in the feet extrude over X mirror as expected. This also affected the eyes for the character, so you may need to correct their location and scale after applying on the Armature.
You can also apply the 10x Scale if you like, it's a good idea to finalize that early on as it affects poses and animations, but the correct Origin via Location transform is all that's needed to fix the X-mirror.


How to draw a node group in a layout panel using python

Already gave you a answer to this here https://blenderartists.org/t/how-to-access-and-draw-the-node-group-input-slider-in-layout-panel/1185331/12

You had a material named "TestMat" and a group named "Group". It draws the group properties if there is a material and group with those names.


Why is my model being resized every time I select the armature?

The fields you are trying to change are green which means they are animated by corresponding keyframes. (These keep you from changing anything that is not part of the animation, unless you add or remove keyframes).
Most likely scale is not a part of your animation and you can delete these keyframes to regain control over the scale. Right click the fields and choose Clear Keyframes.


Syntax Question Python, a command with two variables

So with the comment I made the following code, which works well:

    #The props= is to get two multiple arguments with one operator.
    props=box.operator("armature.select_hierarchy", text="Extend Parent", icon='DISCLOSURE_TRI_RIGHT')
    props.direction='PARENT'
    props.extend=True


Why does outliner show a different object selected

As far as I know it was intended, where in Maya it always sync, but I know there is a good reason to make it unsync, I've read about it like sometimes ago but forgot what it is, but make it unsync can be confusing sometimes.
So there is a Gsoc branch for outliner which has an options to make it sync or unsync mode between outliner and viewport, it is not in the master just yet, but let's hope it will eventually at the end.
See the discussion here :

https://devtalk.blender.org/t/gsoc-2019-outliner-weekly-reports/7642/7

https://devtalk.blender.org/t/gsoc-2019-outliner-branch-testing/7616/63


One of the drawbacks of using "template" files created by someone else is that you have no control over them. Whatever choices the creator made are now part of the file.

The text in question is not editable as text anymore because it has been converted to a mesh. There is no operation to turn a mesh back to text.

You would need to create a new text object that fits your needs, and then copy or link to it whatever other attributes or animation the original mesh was using.

Something to be asked in a different question.


How do I make objects not renderable in OpenGL Render / overlays disabled on Blender 2.8?

I believe you can disable it in your collections, I generally put the meshes I don't want rendered in a separate collection, then when it comes time to render out I turn off that collection.  Hope this helps


cut a hole with boolean modifer not working

This is because the plane is non-manifold. It's a 2D object, which has no volume.
Either make it manifold by giving it volume (e.g. with a solidify modifier), or use the knife project tool instead of a boolean modifier:

Add a circle

⇧ Shift RMB on the plane so that both the circle and the plane are selected, and the plane is active (yellow outline).

Enter edit mode (↹ Tab), and align the view so that the circle outlines the hole you want to cut. In your case top view (Numpad 7) is probably good.

Press Knife project in 3D view > tool shelf > Tools > Add:

Result:


How to avoid weird topology with shrink-wrap when trying to retopologize really high mesh

The problem was as the i suspect, the topology was tooo high and messy
I find a good way to solve this problems, just decimate the mesh and then use this videos to get a better topology in just minutes for the shrink-wrap
https://www.youtube.com/watch?v=HBiR262Wdfc&ab_channel=GrantAbbitt


Making games, should I animate in Blender or Unity?

So, let me preface by saying, its been a hot minute since I worked with Unity, and they do update things, so some things might be different.
Unity has really good documentation so id recommend checking that out. https://docs.unity3d.com/Manual/index.html
Unity Learn has tutorials that will get you started and show you how to set up your file structure efficiently. https://learn.unity.com/
Last time I used unity, it had pretty good support for blender, you could choose to import .fbx or just straight up .blend files.
I always animated in blender because I was most comfortable with it, but you can animate in unity as well, I think they had some kind of implementation for that, and I know for sure people have done procedural animations in unity. Here's a really cool GDC talk on procedural animation in unity https://youtu.be/LNidsMesxSE
Rigging can be done "generic" or with Mecanim. Generic is for anything non humanoid, Mecanim, is of course for humanoids, so you need to set up your rig with all the bones Mecanim needs.
https://docs.unity3d.com/Manual/MecanimFAQ.html
You'll want to make sure your walk cycles loop of course, but there's two different ways to approach actual movement. The first is the traditional way, you animate your character looping through their walk/run cycle without actually moving, as though they were on a treadmill. Then you code in their movement and tie the animation to it through an animation controller. The second way is to actually animate your root, so your character changes positions, and then unity has an option to use that root motion as actual character motion. I was never personally able to get this one to work quite right, but the character controller that comes with unity uses it, and handles very nice. The tradeoff between the two is basically greater control and being able to adjust things later, vs (if you animate it correctly) very accurate movement to step ratio.
I would recommend making some very basic stuff in unity before you spend a lot of time on a character and animations. A lot of people try to jump in and make a big RPG like skyrim or something, and then get frustrated and a little angry when they've made all these characters and weapons and armors, and cant figure out how to get all the gameplay actually working.
Anyways, I hope that was helpful, I wish you the best!


How to make a script run when a file is opened

You can do this somewhat easily, by naming your text block *.py and checking the Register checkbox.

Then the script contained in it will be run every time you open the .blend file.  This is great for registering handlers at the startup of a file.


How to install molecular 1.1.2 Addon at Linux Blender 2.91

scorpion81 did a new build local and uploaded a new version. Now I can install the addon and it works as expected.
link to the github page


Blender VSE_can I make movie strip gradually slow down or gradually speed up?

Yes, add a speed effect to the selected movie strip. Turn off the option "Stretch to input strip length", then keyframe the value Speed Factor.

Start with a value of 1.0.
Then move to the next frame that should be normal speed and keyframe
that 1.0 as well.
Go to the frame that should be stretched out, change the Speed
Factor value to a smaller value for slow e.g. 0.5 is half speed, or
a higher value e.g. 2.0 is double speed.
You won't see any effect until you press the Refresh Sequencer button at the bottom of the VSE timeline.

Alternatively if you don't need to ramp the clip's speed you could apply a "Stretch to Length" effect.

Place your play head at the point you want to start slowing down.
Select the Strip and make a hard cut (Shift+K key)
Make another hard cut (Shift+K key) at the end of the region of slow
motion. Select the middle strip and add a Speed Effect, leave it in
"Stretch to input Length" mode.
Move the cut strip up to the channel above and stretch it to the
right length, the speed effect will slow the clip down.
Select the third piece of the clip and move it to the end of the
speed effect, this will continue to play at the original speed.


Object becomes transparent when motion blur is enabled (Cycles)

Motion blurred objects are inherently semi-transparent if they're moving fast enough, because they do not cover any area of the frame for the duration of the exposure. Motion blur results because an object moves during the exposure and thus "partially" covers an area larger than itself. For large or slow moving objects, there will be a large region that they obscure for the entire exposure, thus the transparent blur only appears on the edges. However, if an object is sufficiently small and moving fast enough, it can cover the distance of its own width during a single exposure. At this point, there is no region that is covered for the entire exposure and the object appears to become transparent.

This is not a limitation of CG, it happens with real objects too. See, for example, how the car in this photograph is almost invisible except for the lights which are able to overwhelm objects behind them:


Dragon Animation-500 bones tail, animation along a path problem

While it isn't quite as simple as telling the armature to follow the curve, you can use a splineIK constraint to make the armature deform along a curve, you still need to manually animate the different positions to make it follow the larger curve.

Once you have the armature with enough bones that it will bend to your liking, you select the tail of the last bone, go into pose mode and add a spline-IK constraint. Set the target as the curve that you want to use to deform the armature and the chain length to match how many bones you want it to control.

If you have setup the bones to go the opposite way to how the splineIK works you can use ⎇ AltF in edit mode to flip the direction of the bones.

Now the bones will deform to follow along with the curve as it is deformed.

In the example I have added an empty as a hook to each point in the curve to easily animate the location of each curve point.


The inner mesh Ear Deco has overlapping faces.

Go into edit mode Tab. Select B and hide H the outermost faces. You will find additional faces inside the mesh.

Go into face selection mode Ctrl + Tab > F, select the unnecessary internal faces and delete them X.

The boolean modifier will now work.


Override samples and branched path tracing

The Render Layer 'Override' setting overrides the AA samples.

For example, setting the render layer override to 300 while having Diffuse branched path tracing samples set to 5 will result in 1500 Diffuse samples.

One interesting point to note is how the override interacts with the Square Samples setting as it overrides before the squaring takes place - so setting Override to, say, 300 with Square Samples enabled will be equivalent to setting to 90000 without squaring enabled.


3 problems achieving a 10:00 minute countdown clock animation. (non-repeating seconds, changing 100 units to units of 60, minutes not following math)

Use math operator integer modulus relative to a frame number.
pseudo programming language ... I think you can translate this to BAN
time = (10 * 60 )- ((frame - offset)) #bias can be used
hour = integer(time/60)
minute = time % 60 # modulus operation

please improve


Make a duplicate of your object and add a Displacement modifier without any textures.

Unlike scaling (which is shape agnostic) it will give you a true uniform offset all around your object based on mesh normals.

Optionally make this object Display As: Wire, and parent it to the original object.
Now make the Boolean operation on the offset mesh rather than the original one.

When moving the original object around, the offset one will move along with it because it is parented

You can independently control offset amount from the Displacement modifier Strength setting.


How to create Rave/Strobe (Colour changing, flashing) lights in a Cycles animation

F-Curves modifier
Use nodes for your lights.
Add a HSV (far) Color ramp to feed the Emission shader color.
Now you just have to keframe the Factor of the color ramp and the Strenght of the emission node to a starting value.
Open the Graph editor and add a Noise modifier to each of the keframed channels and adjust the parameters to suit you needs. Factor should bounce between 0 and 1, while for the strenght you can go wild.

You can even use/combine others modifiers (sine, stepped interpolation....) to achieve other results.


Displacement node doesn't show up on mesh correctly

Material view does not support actual mesh displacement, so you're just seeing your displacement map approximated as a bump map. Unless your displacement has a very small scale, a bump map approximation will be very different from the final displaced mesh.


Rotating an Empty at a constant speed, through a Python script

Consider just keyframing the rotation of the empty. Simple animation. 0 degrees, 180 degrees, 360 degrees. 3 keyframes and then adjust.  In the graph editor add a cyclic modifier.


There were a couple of things I changed with your file, so here's my edited version: Edited .blend

First off there were a few things you did wrong with your normal map:

When using an image for the normal map you have to set the Texture node to non-color data mode.
Then, you don't plug the image texture into the Displacement input of the material node(only takes B/W data), but instead into the Normal input of your respective shader.

Now that we've covered that it becomes very easy to achieve what you want:

You plug the normal map only into your pebble shader, so that only the pebbles get bump mapping effects, and the mask you already created does the rest. For that I added a second vector input to you group nodes so that they can receive normal mapping data as well.

Also, if you are using only one UV map, a single UV map node is usually enough.


How can I create instances of PropertyGroups with independently editable variables?

In general adding property groups to object types can be done with

import bpy

class PathNode(bpy.types.PropertyGroup):
    path: bpy.props.StringProperty()
    minvar: bpy.props.FloatProperty()
    maxvar: bpy.props.FloatProperty()
    randomize: bpy.props.BoolProperty()

classes = [PathNode, ]

def register():
    for cls in classes:
        bpy.utils.register_class(cls)
    bpy.types.Object.pathsam = bpy.props.PointerProperty(
            type=PathNode)

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)
    del bpy.types.Object.pathsam

if __name__ == "__main__":
    register()


Selecting part of a object for the UV map

You can unwrap the selected portion, like you have in your image while leaving all the rest of the UVs untouched.

Starting with the UV layout you have in your bottom picture, in the UV editor, press P to pin the UVs. That will keep them in that layout, but only for the UV unwrap operation. All the other operations will ignore the pins if you have the entire sphere selected.

In this picture I first unwrapped the middle part of the sphere using Follow Active Quads (the pinned rectangular UVs), then one at a time selected the top and bottom and unwrapped with Project From View.

Thus what you can do is when you UV wrap the sphere only select the pieces you want want unwrapped, leaving all the previously unwrapped sections deselected.


You can use inset (I) to create the base of the branch. That way you can avoid having ngons.


Rigging a ball type character for a game

I don't know if this is playable in unity, but I'll give it a shot anyways.

I would recommend using basic keyboard controls for the main movement, and mouse-look for both the cannons and the head.

Here are the settings for the body movement.

Also, if you want the head to stay with the body, parent it to the body, and the cannons to the head.

Here are the settings for rotating the head.

If the head's rotation isn't working, click on the "Use X axis" button and click on the "Use Y axis" to disable the incorrect rotation.

Use the same settings for the cannons, but inverted (Click on the "Use X/Y axis" until the settings are opposite of the head settings).


How to isolate a single part. Blender to SolidWorks

Open a new Blender and press Shift F1

find your file

then go into the object folder

and choose one.

You might also want to try and turn off the "subsurf" modifier if it has one

It would be in the Properties editor->modifiers


How can I make "true normals" geometry node output relative to object local space?

Use a vector transform node:

I need to write 30 characters to post though.


Use quaternions/remove gimbal lock from blender view

What I wanted was to change the TrackBall/Turntable option in File->Preferences->Input

(source: blender.org)
Also see:

What is the difference between the trackball and turntable style view modes?


What is the easiest way to smooth the intersection of two planes?

Create a plane, enter edit mode (Tab) and select one of the edges.

Extrude (E) and pull up in the z axis.

Select the edge at the intersection and press Ctrl B to activate the Bevel tool. Moving the mouse will show the effect of the bevel.  Control the amount of cuts with the mouse wheel.
(or you can use the controls found on the toolshelf)


After you baked your multiple textures into one texture, you need to tell the material of your object to actualy use this new Texture. Eyther create a new material or alter the old Material to use this new Texture.


I am having problems with a particular corner on a car I'm modeling

You can add the edges you want with the Loop Cut operator (⎈ CtrlR) for the edge loops and the Fill operator (F) for the standalone edges:

But when you try filling it in you may encounter some ngons and tris:

I'd suggest adding a couple more edge loops to handle these spots:


Mesh/edit mode: how rotate TOGETHER with armature

You can modify the Armature in pose mode, then apply the armature modifier to the mesh and apply pose as rest pose
This will let you modify the bones and mesh at the same time and applying the pose bakes the changes into the natural position of the mesh and armature
You'll then have to reparent the armature but that's easy
default rest pose:

modified pose:

apply the armature:

apply the pose:

new rest pose!:


Smooshing faces against each other: Making features coplanar, while preserving surrounding geometry

Multiple objects:

For this you can use custom transform orientations again:

Select the face and press ⎈ Ctrl⎇ AltSpace:

In object mode, select the object you wish to align and press Align to transform orientation in 3D view > Header > Object > Transform:

Once the object is aligned, use transform snapping with face as the snapping element.

If the bottom of the spike thing is already the closest face to the target, then closest should be fine as the snapping target. If not, use the 3D cursor trick as explained here.

I think you should be able to use transform snapping for rotation too, but for no apparent reason there is an inexplicable gap when snapping without a pre-aligned model..

I've reported this as a bug.

Single mesh:

A similar approach to this can be used:

A custom transform orientation aligned to the target face will help too.


Unable to find object scatter addon in blender 2.9

I just found out that just enabling Developers extra works. For anyone else experiencing the same issue go to Edit > Preferences > Interface and tick the developers extra


How to animate Rotation of a PNG image in VSE?

It's animatable, but it isn't automatic. Move the mouse cursor above the Rotation slider, and hit i when you want to add a keyframe.


Video sequence editor preview video is full screen

Ctrl-s or Ctrl-w to save current progress.

Open the file by un-checking the Load UI parameter.


Is it possible to set a maximum velocity on a object?

You can set the maximum (and mimimum) velocity of a rigid body object in the Properties Editor.


I have 11 shape keys but my script wont read above number 9

What is happening is the replace("Key 01", "Open_Jaw") matches "Key 011" and replaces the start of the name with "Open_Jaw".

One option is to do the replaces in reverse so that "Key 011" is replaced before you search for "Key 01".

Another way is to create and name each shapekey as you create it. Using the index of -1 will give you the last item in the list.

bpy.ops.object.shape_key_add(from_mix=False)
shape_keys[-1].name = "Open_Jaw"
bpy.ops.object.shape_key_add(from_mix=False)
shape_keys[-1].name = "Lips_Corner_In.L"

Which you can simplify into looping through a list of shapekey names.

keynames = [
    "Open_Jaw",
    "Lips_Corner_In.L",
    "Lips_Corner_Up.L",
    "Lips_Corner_Out.L",
    "Lips_Corner_Dw.L",
    "Lips_Roll_Top",
    "Lips_Roll_Bot",
    "Lips_Corner_In.R",
    "Lips_Corner_Up.R",
    "Lips_Corner_Out.R",
    "Lips_Corner_Dw.R",
    ]

shape_keys = bpy.context.object.data.shape_keys.key_blocks
for n in keynames:
    bpy.ops.object.shape_key_add(from_mix=False)
    shape_keys[-1].name = n


Is it possible to have Blender orbit with pivot point the mouse cursor?

There can be only one 3D cursor. However, you can create different empties, and snap the 3D cursor to them. That way you can easily store and retrieve cursor positions.


Problem with normal map display in glsl texture paint mode

Textured shaded mode may be what you are looking for.  It's shown in the animated image below.  Sorry about the messy .gif.  Apparently LiceCap really does not like Texture Painting.

To use this viewport shading mode with normal maps, you should add some lighting or all you will see is a sold black model.


How do I snap one object into place with the opening of another object? (See picture)

If it's only about location and rotation around the Z axis, it should be as simple as:

Select the object you wanna align
Go to Editmode Tab
Select all A
Make sure you are in Vertex Select mode CtrlTab
Hold Shift and click a vertex twice, which you wanna use to align location(makes it the active vertex)
Enable Snapping ShiftTab
Make it snap to vertices CtrlShiftTab
Set Snap Target to Active
Grab your object G and snap it to the other model's corresponding vetex
Snap Cursor to Active ShiftS
Change Pivot Point to 3D Cursor .
Hold Shift and click a vertex twice, which you wanna use to lineup rotation(make it active)
Rotate the model R, constrain to Z axis and snap your vertex to the corresponding vertex of the other model(this can be really tricky, try to make the models a bit transparent to see what you are snapping to)

Not sure if the vertex in step 12 needs to have the same Z location as the first vertex... But even then, it should be possible to use any vertex with a bit more effort, to be able to constrain the right rotation axis in step 13 - using a custom transform orientation, which you would have to set up first...

If the models did not align originally, you might be able to snap to edge instead in step 13...


Can I put a small resolution scene on top of a large scene in one go?

In order to have 2 scenes at different resolutions while rendered together without any saving render results to file you will need to setup 2 scenes (in this case for saving resources it would be useful to create linked copy of the scene; make sure to make camera single-user so it to be scene independent). Use Render Layers nodes with scenes selected and make transparent or crop image of the scene at the lower resolution; after that overlay scenes as usual.

The Crop node will allow to make all the pixels of the image at lower resolution become transparent so that the background image will be visible as expected, without any stretching:

  Crop Image Size
      When enabled, the image size is cropped to the specified region. When disabled, the image remains the same size, and uncropped areas become transparent pixels.

  Crop node in manual

Once scene at lower resolution is made transparent in empty areas, most likely you would like to translate it by X or Y axes with Translate node to see the background image as desired.

This can also work with Crop Image Size enabled with the only difference that image of the scene at lower resolution will be cropped and not made transparent in empty areas.

Note that if one of the scenes was changed, it's possible to rerender only it and see the final overlayed result once compositing nodes process it.


For values Blender uses IEEE single precision floats. This gives a precision of about 7 decimal digits. The displayed value is rounded to 3 decimal places and the displayed value when editing the field to 6 decimal places (probably because the precision limitations).

The RMB value viewer in image editor of render output is rounded to 5 decimal places, but render values will render in full 32bit. Stored and rounded in format you choose.

It is also unlikely you are experiencing limitations in floating point representation:

$1/119617 = 0.000008360015716829547 $

When rendering this and storing with 32bit .EXR you get:

A sampled value of 0.00001 in Image Editor (5 decimal rounding), a value of 0.000008 in Data-Blocks outliner view (6 decimal rounding):

And value of 0.000008360016181541141 that is saved in the file by inspecting it through the console:

That's an error of 0.00000000000046471159

All of these cannot explain the 0.0001 error you are seeing. The problem is somewhere else than in precision of Blender math or your math is more complicated than what it seems and your floating point limitations snow-balled into the 0.0001 error.


Advantages and disadvantages of using key shapes to correct pose of a scene

A shape key is a difference effect on a mesh.
So for better controlling faces, or elbows  or shoulders etc.
You can add shape keys, their effect is visible based upon their weight setting. So setting their weight value back to zero will return your original mesh again.

If you worked with linked blend files, sure then you would need to reload(update) if you do this a lot in post production. However one can also create several situations first (angry face/happy etc).
Alternatively if its only a few characters you dont link it, but import it.

BTW its an interesting video that you found!


How can i add an glass objet to an motion tracked scene with proper light coming through it?

You can either create an HDRI with a smartphone or a 3d camera for best results. That would give you a good base to work with when it comes to lighting.

Tutorial on how to make an HDRI

Another option would be to have a look at the scene you are tracking (if it is a video you took) and try to replicate the lighting according to it. That could involve setting up a 'sun' light object, or multiple area lights.

Tutorial that helps with recreating studio lighting for artistic renders, for example

Tutorial for helping you set up an HDRI if needed, starting from 14:29


You haven't rendered anything yet. That's just cycles render preview which uses less samples. You can increase the samples in the render properties. Pressing 'F12' with a camera object in your scene will use the default 128 samples and look much better. The noise in your image is considered normal for the settings.

Preview:

vs

Render at 300 samples:


Blender on Linux - list of AMD GPUs that work with Cycles/OpenCL

This is a list of AMD GPUs known running together with OpenCL and Blender Cycles. It is composed by either personal experience or from sources on the web:

╔═════════════════════╦═════════╦════════════╦════════════╦════════════╦════════╗
║         GPU         ║   OS    ║ OS version ║ Blender v. ║   Driver   ║ Source ║
╠═════════════════════╬═════════╬════════════╬════════════╬════════════╬════════╣
║    Radeon cards     ║         ║            ║            ║            ║        ║
║ RX580               ║ Xubuntu ║ 18.04.02   ║ 2.8beta    ║ OpenCL-Pro ║      5 ║
║ RX580               ║ Linux*  ║ N/A        ║ 2.79       ║ N/A        ║    1,3 ║
║ RX470 4GB           ║ Kubuntu ║ 16.04      ║ 2.78       ║ AMDGPU-Pro ║      2 ║
║ RX Vega 64          ║ Arch,   ║ N/A        ║ 2.79       ║ AMDGPU &   ║      4 ║
║                     ║ custom kernel, libdrm downgrade   ║ AMD OpenCL ║        ║
║ RX480               ║ Linux*  ║ N/A        ║ 2.79_build ║ N/A        ║      3 ║
║ RX Vega 56          ║ Linux*  ║ N/A        ║ 2.79_build ║ N/A        ║      3 ║
║ RX Vega 64          ║ Linux*  ║ N/A        ║ 2.79_build ║ N/A        ║      3 ║
║ RX Vega Frontier E. ║ Linux*  ║ N/A        ║ 2.79_build ║ N/A        ║      3 ║
║ Pro WX 7100         ║ Linux*  ║ N/A        ║ 2.79_build ║ N/A        ║      3 ║
║ Pro WX 7100 DUO     ║ Linux*  ║ N/A        ║ 2.79_build ║ N/A        ║      3 ║
╚═════════════════════╩═════════╩════════════╩════════════╩════════════╩════════╝

* likely Ubuntu or a derivate (officially supported), see this comment. Also means that AMDs OpenCL implementation must've been used, as there's no other known working so far

sources:
1,
2,
3
4: user gandalf3
   5: myself, using Xubuntu 18.04.02 with an all open stack (standard) plus the OpenCL portion from the closed AMDGPU-Pro driver

This list is obviously far from complete, it's just meant as a start. I'll gather more and more information in the near future.

Feel free to edit, improve and add to this list to complete it and make it comprehensive in the end!

P.S.: The table was made with https://senseful.github.io/text-table/, as the standard SE markdown does not support tables in any way, see here.


Script to view animation preview panel in fullscreen

There are two things necessary to set the fullscreen mode successfully:

Wait for the workspace to be switched
Create a custom context for the operator

The first part can be accomplished by adding an application handler that is triggered after the dependency graph is updated. The second part is necessary to set the correct area to fullscreen. This can be solved by iterating through the areas of the current screen to find VIEW_3D.

You can leave the fullscreen mode by pressing CTRL + ALT + SPACE.

import bpy

# Press CTRL + ALT + SPACE to leave fullscreen mode
def view3d_fullscreen(dummy):
    bpy.app.handlers.depsgraph_update_post.remove(view3d_fullscreen)
    context = bpy.context.copy()

    for area in bpy.context.screen.areas:
        if area.type == 'VIEW_3D':
            for space in area.spaces:
                if space.type == 'VIEW_3D':
                    space.shading.type = 'RENDERED'
            context['area'] = area
            bpy.ops.screen.screen_full_area(context, use_hide_panels=True)
            break

bpy.app.handlers.depsgraph_update_post.append(view3d_fullscreen)
bpy.context.window.workspace = bpy.data.workspaces['Animation']


Why normal map baking break at UV seams?

The results are correct. The reason it appears wrong is because the normal map is using tangent space (which is what you usually want) - tangent direction is based on the UV map, so there will usually be a difference in colour where there is a UV seam.

However the colour difference is not an artefact. When used as a normal map (not as a colour map), everything will display correctly:

(That's the low poly model)


It's cause by your reference image, which is an png image I guess?

PNG(Portable Network Graphic) is not just a simple algorithm but an image storage solutions bucket. There are two main way to implement the thing "Transparency". And you might choose the simpler one:

If I use PNG-8 bit(paletted method) I will got the strange White border. That is actually coming from matte color since paletted method only allow one transparency value instead an alpha channel. When I choose PNG-24 bit(true color with alpha) we get a better image without border.

So you need to redo that image to make the border show as an actual color. Or you can also use your image as alpha material socket input to reduce the white border effect.


Hair particle system, hair particles go down throgh the scalp

You have to enable B-Spline for the particle system and increase the Steps.

Steps for both Render and the Viewport are a power of 2, meaning the hair will have 2^n segments with n steps. If you increase steps by 2, the number of segments multiplies by 4.


how do i create spiral vortex with texture or by modeling

What you could do is create a vertical edge, move it away from its origin, give it a third vertex next to the bottom. Give it a Screw modifier. Apply it. Give it a white material. Select the face loop that was created between bottom and second vertex and give it a second material (black). Give your object a Subdivision Surface modifier.

If you have a more complex texture pattern (example: Image Texture), you could just keep one segment, unwrap it, give it the texture, then duplicate on the Z axis.


How to make material like shadow catcher, but for reflection(not shadow)?

[This is more of a hack.]

Duplicate your Glossy floor plane and assign it an invisible Refraction BSDF. Scale it to wards the Camera as little as possible.

After doing this, all rays bouncing of the Glossy floor plane will pass through the Refraction plane and have the Is Transmission Ray set. They will also be at a ray depth of 4 after leaving the transmissive plane. If it hits the world output at this point, we want it to be black. If there are more bounces, it isn't the direct ray from camera-transmission-reflection-transmission-world and shouldn't be black.

With nodes, combine the Ray Depth <= 4, Transmission Ray and Camera Ray parameters.

The result will also work if other emissive objects are added to the scene.


Where do I find the polygon and vertices count for an object in Blender 2.8?

Go into edit mode, select all the vertices of the object.
You should see the counts on the bottom of the window:

In some cases, the counts might not be visible by default. So if the counts aren't displaying for you, try right-clicking on the status bar and checking the box that says "Scene statistics." This should make them appear.


Is this SpaceNavigator issue a Blender problem or an OS/Driver problem?

The short answer is: Blender doesn't look at the setting of the 3Dconnexion you make in the OS X system preferences for the SpaceNavigator or other 3D mice.

Without the Mac drivers from 3Dconnexion.com, Blender doesn't recognize the SpaceNavigator (It's spelled as one word/name, no typo). It will move the mouse cursor in a 2D style like in the Finder.
With the Mac OS X drivers / System panel installed, Blender recognizes the SpaceNavigator / 3D-mouse, but while orbiting, the axis from the mouse do not correspond to the axis in the application. This is because Blender assumes you want to move the viewport camera aka your screen preview. Most people will know this mode from FPS (First Person Shooter) games. This is generally called Camera Mode. This can be frustrating if you want to work on your model and therefore keep it centered (Object Mode view).
Fortunately, orbiting in Object Mode is possible. Select the object you want to rotate, if you have more than one, and hold down the CTRL key.

It took me a week to figure this all out. That's why I'm writing an in depth article about using the SpaceNavigator with Blender on Mac OS X on buijs.pro


I think the solution is fairly simple and I will try to explain how I would do it. If needed I can add Images explaining everything as soon as I have access to a PC.
You need basically only one thing, you need the particles to be constraint to the surface of the sphere. There are two good ways of doing that.
At first you need to duplicate the emitter sphere and make the duplicate a collision object (physics tab) and set damping to 1.0, then you have two options for making the particles stay. The first option is to add a solidify modifier to the collision sphere and scale it so the particles spawn inside. I personally think the better more flexible way to do it is adding a forcefield to the duplicate collision sphere with negative strength to attract the particles.
For the random movement just add a turbulence force field or turn up the random initial velocity of the particles.

If you want your particles to stay fully on the sphere and not only half, turn on size deflect for the particles

Very important to know is that the object which is the particle emitter has no effect on the particles, no matter if you use collision, force field or something else.

If you want multiple spheres in your simulation, I would recommend using the solution with two collision spheres, because its easier to setup. It is still possible to setup the force fields in a way that the particles will stay on the surface, but It is a little bit more complicated. The advantage though is that one particle from one sphere can travel to touching other spheres, I personally think, that makes a good effect.


Has appending lights and cameras been deprecated?

Just like how you cannot append an actual object from Mesh, you can't append scene objects from Lamp or Camera either. To append an object from another scene, you need to go into the Objects folder.


Get mouse x/y position while not in game engine

Yes, if you let a Modal Operator run in the background (its modal() needs to return {'PASSTHROUGH'} in order to not consume any events). An event object is passed as third parameter to modal(), which contains the mouse coordinates in window and region space, as well as information about the event itself.

You can react on mouse movements by checking the event.type:

if event.type == 'MOUSEMOVE':
    print(event.mouse_region_x, event.mouse_region_y) # remove 'region_' for window coords!

Have a look at the Operator Modal Draw template in Blender's Text Editor, it illustrates what you can do with the mouse coordinates together with a draw handler and OpenGL (bgl module).


The object is there, the it's huge (like 500m tall) press Numpad Period to display it. If the object is showing partially you might need to adjust the clip distance. Then you should scale your model down to something more usable...


See simple effect of lighting on complicated material?

Where the output of the normal node is connected to the mix factor you can add a ColorRamp node. By bringing the white and black points close together you will reduce the amount of blending between the two. The location of the points will determine where the change happens.

You can also try different interpolations with B-Spline being a slow transition and constant being a very sudden change.

You can try using the material option for viewport shading to get a fast preview, or you could use simple diffuse nodes like shown here until you get the position right and then connect the rest of your nodes into the mix shader once you have it.


Resize 2 parts of object with different ratio

Select vertices on both sides of the mesh, press S > X > LeftClick. Then you can tweak settings in Tool Shelf (left side of the window - T) or by pressing F6.


Make an object's visibility controlled by another object or an empty

If you only plan to use a circular mask you can use the Object option of the Cycles Texture Coordinate node to use any independent object as mapping origin for any texture.

This will allow using that object's position and transforms to control other material or texture through its position relative to the objects said material is applied to.

To do so just create a circular mask (you can do this easily with a Gradient texture set to Circular) and use it as mask to mix between two shaders. In your case mix whatever shader you liek to floor to be with a Transparent one to make it invisible outside a certain radius.

Use a Texture Coordinate probably set to Object coordinates and use the Object box to pick the desired empty - or sphere - to drive its positioning or scale. You can adjust the radius of the opaque part by scaling the empty.

You can achieve other "mask shapes" easily as long as you can recreate them procedurally with the available nodes. Otherwise you will probably have to use an image based texture for that. You can also try Dynamic Paint if you need the mask shape to actually follow some random object shape intersecting with the ground plane.