UV 2d cursor and vertex coordinates from python script in Edit_Mode I want to access to this data:

I tried:

Exporting UV coordinates

http://blenderartists.org/forum/showthread.php?254004-Accessing-UV-data-in-Python-script

http://blenderartists.org/forum/showthread.php?334400-I-want-to-select-a-vertex-on-UV-layer

but all that return the 3dview vertices coordinates....

some ideas?

thanks

This will print the uv coordinates of each vertex and (x, y) position in the UVmap editor then the cursor location

import bpy

ob = bpy.context.active_object

for area in bpy.context.screen.areas:
    if area.type == 'IMAGE_EDITOR':   #find the UVeditor
        cursor = area.spaces.active.cursor_location   # get cursor location
        if  area.spaces.active.image :                #get image dimension
            x = area.spaces.active.image.size[0]
            y = area.spaces.active.image.size[1]
        else:
            x = y = 256

        for v in ob.data.loops :
             uv = ob.data.uv_layers.active.data[v.index].uv   #get uv coo

            #calculate and print the position in the uv editor
             print("vertex %d at with UV coo (%d , %d) at  (%d ,%d)"%(v.index, uv[0], uv[1], uv[0]*x, uv[1]*y) )
             print( "is selected ? " , ob.data.uv_layers.active.data[v.index].select )

        print (cursor,x,y)


Beginner-flat topology for Balustrade Just starting out and am trying to figure out the best topology for the attached. I can certainly mirror from the arch centre, but having difficulty with where to start. From left to right within the larger opening and 'cloverleaf'... or from the right to left with the simpler edges of the block? The triangular divots against the outer arch bevels are also complicating my attempts to reduce.
Thoughts/comments welcome, and thanks in advance for your time.

First begin with the outlines, then extrude on the Y axis, then scale the extrusion, bring some additional edge loops to bring details and sharpen the edges, etc...


Particle Object to Inherit Uniform Colour from Emitter I have a particle system which is rendering as objects. I would like each of these objects to have a uniform colour. I would like the colour to be dictated by the underlying material of the emitter. I.e. if the particle is emitted from a red part of the emitter, it should be red all over, if it's emitted from a blue part, blue all over.

I thought that this question would solve the problem for me:

Particle Color based on where the particle is emitted?

but it does not seem to. Here is my simple MWE .blend:

https://bit.ly/3bFLLcC

and below is a screenshot:

Any help greatly appreciated.

Thanks

Switch from Eevee to Cycles, make the materials Single User Materials by clicking on the "2" right to the material name in the material tab (either the plane or Suzanne) and uncheck "From Instancer" in the "Texture Coordinate" node of the plane's material node tree (only your instanced object has to have this option checked). If you change the noise texture setting on your plane, copy the plane material to Suzanne where you have to make it Single User and check "from Instancer":


Export model to show it in web-browser I'm looking for a way of exporting my Blender model in web-browser. I noticed this very cool video with model in browser and I want to make the same site. The project was done by three.js but I'm very novice in programming . Is there are more efficient ways or another alternatives in exporting Blender model to the web-browser?

Thanks for answers!

Blend4Web can do most of the work for you. It exports Blender models correctly and also sets up the WebGL page. It's free and open source.

https://www.blend4web.com/en/


Create an edge parallel to the normal of a face from a given vertex I'm wondering if there's a simpler way to do this.

The way I ended up doing it, was by duplicating the face, creating a new transform from it.

But I have to do this possibly hundreds of times and I can image it getting extremely tedious.

You could use the View orientation, and set an orthographic view to the face, side on, with ShiftNumpad 1 or ShiftNumpad 3.. but I still think the quickest way is with a Custom Orientation. You don't need to duplicate a face to create an orientation from it

Right-click on the '+' in the Orientation dropdown, and add it to your Quick Menu, and/or give it a keyboard shortcut. (It used to be CtrlAltSpacebar)
In the Adjust Last Operation panel, set the New Orientation op. to 'Use After Creation' and 'Overwrite Previous'
You would have to select a face in any case, to avoid ambiguity, so do that...
.. and use your shortcut, followed by vertex selection, and EZ

or

You could try using the Cursor.

In the Cursor tool, set its Orientation option to 'Geometry'
and check 'Surface Project'
Give yourself  reachable keyboard shortcuts for the Cursor tool, and the Tweak select tool
Using the shortcuts, and with the Transform Orientation set to 'Cursor', drag the cursor over the face of interest, and EZ the vertex.


Images Look Blurry in Blender No matter how high the render samples are or that the settings in sampling is final When I render with the camera in blender, no matter how high the render samples are or that the sampling is final rendering it still looks blurry.(unless it's the grass)

There can be at least three causes of blurriness like you are experiencing.

Image interpolation method
DOF (depth of field)
anti-aliasing

Looking at your render I'm pretty sure you have the camera set so you are focused on the background, and the foreground is blurred. Thus your issue is DOF.
DOF
To remove all DOF simply select the active camera, now in the properties window head to the Camera tab, scroll down to the Depth of Field section and set the Size of the aperture to 0.

Image interpolation
If the DOF did not fix it, then I'd move on to changing the image interpolation on your textures.
You are going to have to go through each material and every texture node, and set the interpolation to Closest.

Anti-aliasing
Don't think this is your issue but might as well add it here for completeness.
To turn off anti-aliasing in cycles go to the Film section of the Render tab in the Properties panel, and set the Width of the Pixel Filter all the way down (0.01).


Object cannot be selected and only appears in Object mode? I have this box in my model, and I cannot select it at all, even with the b key, and it only appears in Object mode, and cannot be seen in Edit mode. How do you delete it?

I think you accidentally hid it (pressed H key).
go to edit mode and unhide it by pressing AltH.


GTX 970 and GTX1080 non-SLI I'm attempting to run my Windows 10 Pro machine with both my 1080 and 970. As soon as I try to start blender I get the infamous "Error: EXCEPTION_ACCESS_VIOLATION". I've ran Blender with both cards indendently but never with them both installed on the machine. Is there some configuration change I have to make. I've done some trouble shooting.

Verified drivers are up to date.
Uninstalled Blender and deleted my %appdata%\Blender folder
Uninstalled video drivers and reinstalled them.

I'm at a loss but would really like the additional rendering capabilities under Cycles.

Ok after further investigation the issue was due to Duet Display software I was running on my desktop to use my iPad like a Cintiq. I'm going to reach out to Duet Display support and see if they have ever tested multiple video card configurations.


Chromatic aberration - alpha mask? is there a way to apply chromatic aberration(with the vanilla lens disortion node) on the edges of an alpha mask image? or is it bound to the standard elipse shape and only works from edges of the image to the center? Is it possible to work around this if I make my own chromatic aberration node group?

all help and tips are greatly appreciated.

You could use a grayscale image connected to a displacement node to create distortion, and then offset the color channels as a form of chromatic aberration.

Click on the image to enlarge

Or a different variation of the same idea, but using the greyscale image to displace each one of the color channels of an image with different values:

Click on the image to enlarge

A different example of the same:


How to make stick person like Japanese samurai I want to make stick person like this image.
But I don't know how to make his back hair (not top hair=chonmage).
I thought, make UV Sphere and extrude  back hair part.
Then I realized, I can't extrude in a curved shape.
So.. Please teach me; ;
Blender 2.9.2
Windows 10

Create the sphere, then create a different object (i.e. a plane), use the face snap option (project individual elements) and model the hair snapping every vertex to the underlying sphere.
Then add a mirror modifier for the back of the head, a solidify modifier to get thikness, and a subsurf.


Character rig not moving certain parts of mesh (Meta-Rig) I have a mesh with a new Character Meta-Rig applied. All works well EXCEPT 1 part. The left shoulder pad.
When I move the right arm, that shoulder pad moves correctly. But when I move the LEFT shoulder arm, the shoulder pad doesn't doesn't move and just clips through the arm... I read other answers talking about weight painting but when I checked to see if the shoulder was highlighted correctly, it looked good to me... Any other suggestions?
Oh, and I'm sorta new to weight painting and rigging as a whole so... Go gentle on me.

Yes, it's a weight problem: having the pad with the correct weight relatively to the arm bone is not enough: you have to remove its weights relatively to others bones (chest, head, shoulders).
Check theese answers for more infos:
How to make "Weight Paint" affect all vertices, even those with zero weight?
Add armor to the body without long weight paint


Make a relief out of 3d model I am a complete blender beginner. I have a 3d model and try to make a relief out of it, by putting it on a flat rectangle, so that it is suited for 3d printing (only the z-height should vary, so 2.5d not 3d). As the data is noisy, I need to cut some data away. I tried to do this with vertex dissolve. However, then I end up with the following situation:

Black and green is the contour of my object and in gray you see the rectangle I put my object on. However, I would like that the object goes straight down to the rectangle, meaning the faces of the red line instead of the green line.
Another possibility is to simply erase the vertices. However, then the border of my object looks like this

and I would like to have the border set to the same height. However, I don't even know how to select the border

A relief can be generated using shrink-wrapped plane over the object.

Procedure (tested on Blender 2.79)

Add the object to blender and a base plane. Position the object over the plane.

Add another plane over the object and the plane on the bottom.

Subdivide the plane until the mesh is relatively fine.

Apply the shrink-wrap modifier to the object. Set the mode to 'Project', set the target to the object name (in this case 'Suzanne'), set the auxiliary target to the base plane (in this case 'Plane').


how do you accesses the properties of an object in another scene? Here is what my code looks like.:

scene =bge.logic.getCurrentScene()
S = cont.actuators['s']
print('now')

scenes = beg.logic.getSceneList()
for scene in scenes:
    if scene.name ==  'scene':
        back = scene.objects['back']
        print("here")

if 1==1:
    back ['phase'] =2
    print('baby')
    S.activate

The only printed command is 'here' and I get an error that says I referenced 'back' before I assigned it. I'm trying to change a property called 'phase' that is on an object called 'back'. 'S' is an actuator that ends the overlay scene that the python running object called 'cube' is on. The scene is already loaded so that is not the problem. I'm just not sure where to go from here.

Thanks fam, I found the code in another question.

import bge
from bge import logic

for scene in logic.getSceneList():
    if scene.name == 'ground':
        ground = scene

Back = ground.objects['back']

Back ['phase'] =3

This works to change back's property from another scene


glTF export has twice the vertices it should I am turning instances on a template into copies in a glTF file. When I import that glTF file into Blender again, the number of vertices has doubled.

The number of faces also shows as double, but interestingly, the number of tris matches.

I can't see what is causing this. There is an array modifier creating the stack of objects inside the tower, but it seems to be applied correctly. There are no other modifiers, or constraints, or parenting. But when the glTF is imported, and the object that is that stack of rings is edited, and all vertices are selected and then merged by distance with Ctrl + M, almost 15,000 vertices are removed, reducing the total count by more than half.

What could be causing this?

glTF is a last-mile format.  It stores its mesh data in a ready-to-load-onto-the-GPU kind of state.

But the graphics hardware doesn't want the same vertices that artists want to see in Blender.  At the hardware level, there are "vertex attributes" for things like normal vectors, UV coordinates, etc., that must be specified per-vertex, not per-face.  Likewise, quads and N-gons are not welcome at the hardware rasterization layer of many devices, including mobile devices, which generally accept only triangles at that layer.

So a finished, exported glTF will be fully triangulated, with all discontinuous UVs and all discontinuous normals separated into co-located vertices.  This way, when the glTF arrives on a client device for rendering, it should not require the client to spend much in the way of cycles or battery power processing the raw mesh data.  It should just load into the local graphics API and render immediately.

This does mean that if you load one back into Blender though, you'll end up with these un-merged verts, and any faces that weren't triangles will be cut into multiple faces.


Importing LEGO scenes add-on error I am following this tutorial to create my custom LEGO scenes & characters and render them out in blender but I am getting some errors.

Basically, I have downloaded this software (Studio by Bricklink) to make custom LEGO scenes. Now this software exports the 3D files in the format .ldr so I am using this add-on ImportLDraw. I have installed it blender. Now this add-on requires a library of LEGO pieces so I am using the one in the folder of Studio. Now when I try to import it in blender, I am getting this error.

How can I solve it? Thank you.

The function def loadFromFile(context, filename, isFullFilepath=True) assumes that there is a camera in your scene. It tries to retrieve it, but doesn't check if the returned value is None:

scene  = bpy.context.scene
camera = scene.camera

Later it assigns a location to the camera, which fails when there is no camera in the scene. This causes the exception in line 4337 that you're seeing.

camera.location = mathutils.Vector((6.5, -6.5, 4.75))

You can solve the problem by adding a camera to your scene and setting it as active camera. This issue has been fixed in the 2.80 version of the add-on.


Boolean on curved face with smooth shader I've started modelling my first car ever just for practice on Blender. I modelled the rims (maybe not the best topology but for now I think it's almost good.)
Now I need to model the flat circled faces where the bolts are fixed, for that purpose I've choose to use a boolean with an array of a cylinder, but with a smooth shader I have the problem of weird shades, I know that it's caused by cylinder's faces that doesn't match the convex mesh of the rim but I've tried to fixed it without any success.
I've tried to use a boolean with an UV sphere with alot amount of faces and rings but even if the shades are smaller they're still there, I've tried to add more loop cuts but the problem persist and the convex face is not smooth anymore.
It's three days that I'm on it and I don't know how to do that, in C4D I use boolean with no problems why in Blender if you don't have a perfect topology you have all this problems?
I'm using blender 2.9 on a new mac book pro 16''

You can also try the Edge Split modifier.


How can I prevent a pause at the end of animation loop to have fluid motion. At the end of my animation, the animation pauses a bit then loops again, how can I stop the slow pause, and let the loop work fluently?

One common mistake with looping animation is to have the first and last frames share the same values. You want the frame after the last to be the same as the first.

Another cause for pauses in looping animation is to have bezier curves to ease in and out of the first/last frames. Using linear interpolation gives you a constant speed that matches the surrounding frames. Select the keys in the graph editor or dope sheet and press T to change the type.

Two cubes with the same rotation values keyed on the same frames, the red one uses linear interpolation while the blue one uses bezier.


Animation Nodes: Object Instancer | Update instances & Splines from object origin Experimenting again with animation nodes, I'd like my scene like:

Have a cube in the center which I can copy n times with the Object
Instancer node
The cube has a Modifier (Wireframe) and its rotation
keyframed
Make the relationship lines from the cube to its instances
visible by splines
Update the instances when Modifier and rotation of the source cube
change

I have problems with getting 3. and 4. working:

I managed to make splines between the instances visible but not from the source cube origin to its instances (like the relationship lines in the viewport. How should I do that?
The changed and animated value from the source cubes Wireframe Modifier are not applied to its instances "on the fly". Same goes for the rotation. I added 2 Triggers in the Toolpanel for the Node editor which do not have an effect. What do I miss here?

Any help appreciated :-)

Relationship Splines

Create edges using the Create Edges Node from a list filled with the location of the source object and the locations of the instanced objects, then use the Splines From Edges node to create splines from the edges, output the splines and you will have the relationship lines.

Instances Modifier Values

To understand why your values don't update, you have to understand how the Object Instancer Node works. By default (When only Copy From Source option is enabled) Animation Nodes create a number of empty objects equal to the number of instances and set their mesh to the mesh of the source object. Subsequently, non of the object properties (including modifiers and constraints) are retained, simply because object are created not copied. If Copy Full Object option is enabled, Animation Nodes will get the object's properties, modifiers and constraints from the source object and set them to the instances.

It is important to note, however, that Animation Nodes will first check the  objects that were created in a previous execution using the instancer node and if they matched the number of required objects, the node have no effect and just return the objects. If the number of objects were less than the required amount, it will create more and if they were more that the required amount, it will delete the extra. So even if you change any of the object properties or set different meshes, the node won't see the changes and won't take action. The only way to reset the properties is to set the number of instances to zero and set them back to the required amount.

So, to edit the values on realtime, you have to do that manually using the Attribute Nodes, that is, get the value of the property of the source and set it to the instances.

In the previous example, we set the thickness of the modifier modifiers["Wireframe"].thickness.


What is the technical difference between conformal and angle-based unwrapping? When unwrapping an object, there are two options for the Method to use: Conformal, and Angle Based.  What is the technical difference between these two methods?

I usually leave it at Angle Based, but sometimes that distorts tight geometry and I switch to conformal.  So basically I just blindly see which looks better project by project, I am interested in how they work.

Note: I am aware of this question and answer, but that more addresses the use of the two methods, I am looking for the technical difference.

Conformal
Uses LSCM (Least Squared Conformal Mapping). This usually gives a less accurate UV mapping than Angle Based, but works better for simpler objects.
(As describled by blender user manual)

Attached is the link to the White paper on LSCM

http://www.cs.jhu.edu/~misha/Fall09/Levy02.pdf
http://alice.loria.fr/publications/papers/2002/lscm/lscm.pdf


How To Create A Circular Camera "Safe Frame" I am working on an animation. The final output needs to be circular. I have a hard time seeing if my animation fits within the bounds of a circle while I work. I need a way to place a circular frame in front of my camera.

I have built a circular rig (pictured) but I have to key it separately from the camera and it becomes a pain to readjust the circular frame every time I move the camera.

What I need is a way to setup some kind of circular frame so that I do not have to readjust it every time I move the camera.

Thankyou in advance!

There are a couple of ways to do what you want.

Use an image.

Create an image that has the shape you want to use as "safety".

Then in the 3d vieport enable background images, select the image you created, set it to be used for camera view only. You can then choose to use it as background or foreground and adjust the opacity.

Use a "child of" constraint.

Select the circle object, add a "child of" constraint. Select the camera to be used  as target. The circle will move to where the camera is located and will be rotated to match the camera rotation.

Manually postition the object so that is visible within the camera and scale it to your needs.

Since the object is parented to the camera, moving the camera will move the object as well.


Point of Origin issue In this stock Patron bottle, it seems to have different origins for the label as to where the label is placed (and for the bottle) and I can't seem to reset the origin to geometry.  When I move the label (or bottle) this black dashed line stays connected to the the point on the top in my diagram. What am I not getting? Plus when i selected the already joined objects of the bottle, cork and ribbon and try to join them to the label --the label disappears!

If you can post a .blend I'll be able to tell you in more detail how you have arranged your object hierarchy. But first of all, note the "plus" icons to the left of your objects:

Click this to expand it and see the children objects of that parent object.

Also note that the black dotted lines in your 3D Viewport show you the relationship between parent and child objects.

You can redefine the position of an object's Origin Point by using the Set Origin button:

The one you will probably use most frequently is Origin to 3D Cursor. With this operation, the current position of your 3D Cursor will become the position of your selected object(s)' Origin Point(s).

As for the label disappearing when joined to another object - this may be due to a difference in modifiers. If for example, your ribbon is only visible and raised above the surface of your bottle because it uses a Solidify Modifier, and suddenly you Join it to the Patron bottle object which doesn't have that modifier (let's assume), then of course the influence of that modifier is gone, and instead it comes under the influence of whatever modifiers might be on the Patron bottle object.

Update:

So, after taking a glance at your .blend, as expected, the label is one of those objects that has its origin off... somewhere over there.

I made the names visible, so hopefully this will help you figure out what is what. By the way, here's how to do that:

Here's the .blend with names made visible and the hierarchy expanded.

To summarize the problem, It looks like you joined some objects you didn't mean to, and parented some objects in ways you didn't mean to.

You can select parts of your mesh within Edit Mode and press P to seParate them back out into their own objects.

To un-parent an object you can select it and press AltP.

So see if an object has a parent, and check the parent's name, besides looking in the Outliner you can also look here:

Good luck! With the info I explained above it shouldn't be too difficult to reorganize, and I'm sure you will gain some useful knowledge in the process.


Using Lego Digital Designer and Blender From what I heard, I think that the Lego Movie made their lego models in LDD, and than exporting the models to Maya, and using maya to make subsurf models.  I think that they found a way to make their subsurf models automatically be placed in the correct place using data from LDD?  Does anyone know how to do this?  (I realize it's a hefty topic)

According to the Lego Digitial Designer manual it allows to export LXF, LXFML and LDraw files.

  Export. Export lets you create LXF, LXFML and LDraw files that can be
  opened in other applications

There are community developed Blender add-ons such as ImportLDraw by Toby Nelson that allow to import these models.


Preserving depth when rendering in multipe layers (Cycles) I don't even know how to ask this question  and I a noob to blender.

I wanted to create a plasma canon

I created 3 render layers and Added them on top of each other...

For now this looks pretty good

Gun Front

Compositing tree

But then I tried to look at the gun from the back.... the bullet gets put in top of the gun. Is there any (easy) way to have the layers retain Z order?

Gun view back (bad)

Yeah no problem,

On the flame render layers layer settings, under the Layer: blocks, there's a Mask Layer:   set of blocks.   Just select the corresponding layer for the cannon (so you're applying the cannon as a mask to the flame)

Below is an example using a cube and a sphere, the sphere occluding and masking the cube.

The Cubes' render layer output


Modify Outliner with python I wrote a simple addon to toggle the Camera Ray visibility of multiple elements, something I'm constantly doing in my workflow.

I'd love to be able to modify the Outliner panel to add a new column controlling this attribute like the mock up below, but I was unable to find where the outliner tree is created in the code.

I need something more complex than the current panel I have (Quick Camera Ray), something that would let me know in a glance which meshes are camera visible or not, just like the outliner icons do with viewport/render visibility. Any tips?

While there is a small python script that handles the header and menus for the outliner, most of the outliner drawing is handled in C source files. This means that customising the outliner appearance requires a custom build of blender, though you can add menus as shown here.

I would suggest you keep using the panel in the properties editor that you have already started with.


Rigging has a weird reaction on spheres I'm currently working on this toy-robot shown in the first picture. At the top of its head I use two spheres to create some kind of an antenna, but as you can see in the second picture, it doesn't really react as desired, and both spheres draw two thin lines back to the spot they're placed by default before any changes of the armature.

The lines come from the two "end-vertices" of the spheres.

As far as I can see, the spheres aren't connected to anything but the headbone, and every single object is connected the exact same way, so I don't understand why it only happens for the spheres.

Anyone who knows this problem and how to fix it?

For whatever reasons, hard to say without knowing how you weighted the model, those vertices have not been properly weighted.  Thankfully, it's easy enough to fix.  Select your object and switch to weight paint mode.  Select the appropriate bone.  'v' switch to vertex mode and select the vertex (probably a single vert, so just RMB.)  In properties/data/vertex groups, make sure your assign scale is set to 1.0 and hit the assign button.  (Selecting the bone earlier should select the appropriate vertex group automatically.)

There are plenty of other ways to do this, some of which would be easier, depending on how your model is laid out.


How can I export STL->OBJ without the coordinate system getting messed up? We use a 3rd-party tool which generates STL files with a specific medical coordinate system (either RAS/LPS for those interested).

Our software can only load the 3D meshes in OBJ format but whenever we load an STL into Blender and export as OBJ, it appears upside down and back to front.
Worse, our other software emits metadata for annotations in the same coordinate system (as JSON/XML), and these are now garbage as they're not in the same coordinate system as the resultant OBJ.

Given we have explicitly defined coordinate systems we need to use, how can we get Blender to play nice? I have done a little googling and it seems Blender enforces its own axes which cannot be reconfigured but why does this mean it changes our X->Y, or whatever is happening?

Perhaps we can find a standard transform to apply to every model to counteract this but we would want that baked into the vertex positions not stored as a transform in the OBJ file (if OBJ even supports that?)

Thanks for any help.

In the obj exporter in blender 2.76 I have axis settings like that:


Is there a way to put faces on different layers with edit mode? I've just got started learning blender and i was wondering if you can put faces in edit mode on different layers, or do somthing with them so you can save them seperately.

In edit mode - select the faces you are wanting in a different layer. Shift-D to duplicate them. Then type the shortcut letter P. A menu will appear. Confirm 'Selection'. This will separate the selected faces as a new distinct object when you return to object mode. You can then place the new object (duplicated faces) into any layer you like.

The 2.8 beta has a new layer mechanism that may support a better version of this application.


How do you add the Jiggly Armature code to Blender as an add-on? So pardon the ignorance of a newbie, however I stumbled across the add-on called Jiggly Armature and upon further investigation it is in raw code so my next thought was, where do I enter this code and what affect will it have on the function of Blender, aside from its stated function? Would it be better for a newbie to just use the collision method I read about to obtain the same jiggly effect? below are the links regarding this post , the link to the collision method is inappropriate for work or minors .

Addons are all just code, in one or more files, normally packaged up in zip archive. However if all the code is in one file, they don't need to be zipped up.

If you go to: https://github.com/cheece/JiggleArmature/blob/master/JiggleArmature.py and right click on the button in the top right that says raw, and select save link as you will download a file containing the addon code.

You can then install this like a normal addon. Bear in mind this hasn't been updated in 2 years, so it may have bugs. The addon metadata says it was created for 2.77. That said it will probably be ok in 2.79.

As for any side affects from the addon code, you would have to read the code and check it carefully, as with any other addon. I had a very quick skim and it looks like it just does what it says.


How can I save and load my players position in the blender game engine? I'm making quite a big game with levels but I just have to figure out how to save and load the characters position. I've already managed to make it work with properties.

I've tried some things but they dont seem to work. My version is 2.76

Basically you can store the data to be saved in bge.logic.globalDict via Python.

The save actuator writes this data to a file.

The load actuator loads it back from file when you need it.

Then you modify the scene according to the data in bge.logic.globalDict via Python.

This means:

saving and loading can be easily performed by logic bricks
storing and restoring as very custom operations as you are the only one that knows what should be stored how. You need Python to do that.

As this can quickly become a quite complex task I suggest you look for other tutorials on save/load. Questions regarding the tutorial should be ask to the tutorial author.

Just in case a small hint is enough:

import bge

storage = bge.logic.globalDict

def storePosition(controller):
    if not controller.sensors[0].positive:
        return

    owner = controller.owner

    objectStorage = {}
    objectStorage["position"] = list(owner.worldPosition)

    storage[owner.name] = objectStorage

def restorePosition(controller):
    if not controller.sensors[0].positive:
        return

    owner = controller.owner

    objectStorage = storage.get(owner.name)
    if objectStorage:
        owner.worldPosition = objectStorage.get("position", owner.worldPosition)

If you do not enough python/bge-api to understand this code, I strongly suggest to learn it first.


Render a Bezier curve in the game engine I would like to visualize a curve when the blender game engine is running. In the editor the curve is clearly visible:

But when I run the game engine it is not

What can I do to visualize the curve when running the game engine

Curves are a unique object type, they won't render without depth in the default renderer and even with depth, they won't render in the BGE as these and paths aren't supported.

To render these, you have to convert to a mesh, use AltC > Mesh from Curve/Meta/.... You can always duplicate and move the original to another layer before converting so you have a backup and in most cases, if the converted mesh is simple enough, you can convert it back to a curve via the same menu.


How to revolve flat object by twisting it 360 to make it 3D? I created this shape in Illustrator and imported the SVG into blender. I want to rotate the flat object by 360 degrees over the Z-Axis to make the object round.I would be pivoting the bend over the flat edge.

I tried creating an empty and adding a twist modifier to and twist over the empty. I also tried adding a simple deform modifier.

My blender object

What I want it to look like

Right of the bat, using an .svg for this purpose is not a good idea, because you're creating a lot of unnecessary topology. You should rather create a circle/cylinder and work your way from there.

But since you asked, I recommend the spin tool in Edit Mode:


Cycles or Blender Internal for Game Assets? I've been thinking about messing around in Unreal Engine 4 for a while and hav begun modelling in Blender. I've only just begun to think about which version I should be using (Cycles vs B.I) Does it really matter when I'm exporting meshes and animations? What about materials? I plan on manually tweaking them in UE4 so Blender is more of a preview for them.

You will not be using Cycles or Blender Render in Unreal Engine. It makes sense to create materials for the render engine that you are going to use so you should work on materials for Unreal Engine in Unreal Engine.

If you work on textures inside Blender, you can preview them in the view-port, and it makes little difference what renderer you choose to have selected in Blender while working. You could use Cycles for baking light information. I am sure you could find use for Blender Render while making assets for Unreal Engine, however it is going to be replaced by EEVEE in not so distant future, so it might not be the best investment of your time to learn using it.


How to round the edges? i am following a tutorial but the guy is using maya, i realised that his mesh is more smooth than mine, even if i click smooth , my edge still looks squared and horrible, if i click smooth , then it will be weird and smaller . how to i smooth my edges like the edges from the pic bellow? can someone help?

P.S. I know i have asked so many questions and people may ask why i dont take udemy or university courses. the reason is that i'm unimployed, and it has been realy hard to get employed. so i am trying to learn something for free , my goal is to make a character for a game. Objetcs and stuff are not hard, but human body and heads is realy hard but i need to learn it.and I am very grateful for the help with my questions

As @rob told in a comment it is simply the subdivision surface modifier, which doesn't change the mesh.

Here is how to create the same display with blender:


How to UV unwrap an object on every frame? I watched Curtis Holt's Animation Nodes tutorial and started making a drone glitch effect project with it. The target is to make a plane with a simple flooring texture and displacements, some walls, and a drone model parented to a empty, The animation nodes will be taking the mesh from the plane which is the flooring and generating a target using the object output and mesh input. The floor which is just a subdivided plane has problems with materials. When I Unwrap the mesh, it works fine but when I move the empty which changes the geometry of the plane (which is what the tutorial of curtis holt is about), the mesh returns to a brown texture without the proper flooring texture so is there a way to unwrapp the mesh automatically on every frame to get the proper floor texture.
For Refernce , Here is the tutorial link Animation Nodes Tutorial
Original Plane

Target Plane

My Uvs are proper, the normals are not flipped....

The most important thing here is to active "Load UVs" wich is deativated by default in the "Mesh Object Input" Node. Then you can Insert your UV Map via node as seen in the screenshot. The material itself should be copied to your target automaticly.
Animating the vertices via vector-wiggle does not change/mess up your UVs, but they will stay the same. So your applied texture should work out of the box.
(there is also a small redundancy fix in the tree from the tutorial ;) )


Can you use Cuda from GPUs of different generations? Is Blender able to receive any benefit from using my 2060 RTX and my old 660 Ti since they both have Cuda cores. They're have different speeds and such but would they be able to take advantage when rendering in Cycles?

Cycles will be able to use them both simultaneously with the CUDA backend, each will render separate tiles. For several reasons though, the result will probably be slower than just using the 2060.

Since each card works on a different tile and there's no way for the other card to steal a tile once the first card claims it, you will eventually end up in a situation where all but one tile has finished rendering and the 660Ti is working on the last one while the 2060 sits idle. Because the performance difference between the cards is so great, this wasted time will likely be more than you'd save by having the 660Ti help in the first place.

Both cards need to have the scene copied into VRAM in its entirety. As a result, you're effectively limited to the VRAM of whichever card has less. Which is the 2GB 660Ti instead of the 6GB 2060

The 2060 has RTX hardware units, which Cycles can use via the OptiX backend to speed up ray intersections. However, the 660Ti is too old to use the OptiX backend. And the 660Ti is so slow in general, it is likely to contribute less than the RTX hardware on the 2060 could.

So while it's possible to render on both cards simultaneously, it is more likely to slow down your renders than just using the 2060 alone.


Baking textures on headless machine (batch baking) Is it possible to bake textures from the command line?

This is useful for setting up batch jobs, baking an entire level for example.

Yes, the bake operator can run in background mode, for both Blender-Internal and Cycles Baking.
A very simple script could look like this:
Bake Once
bake.py:
 import bpy

 # Like pressing the 'Bake' button in Blender
 # this will remain locked until the bake is complete.
 bpy.ops.object.bake(type='COMBINED')

 # You might want to inspect the materials and extract images
 # but for this example, simply select by name
 image = bpy.data.images["Untitled"]

 # save-as by setting the target path and saving
 image.file_format = 'PNG'
 image.filepath_raw = "//my_new_bake.png"
 image.save()

Execute the bake with:
 blender --background bake_test.blend --python bake.py

For batch jobs you would have to change the selection before calling bpy.ops.object.bake each time.

Bake Everything
This next example is more comprehensive, and uses the is_dirty image flag to detect which images to save, giving each image a _bake suffix.
bake_all.py:
# Blender v2.8x +
import bpy
import os

scene = bpy.context.scene
for obj in scene.objects:
    obj.select_set(False)

for obj in scene.objects:
    if obj.type != 'MESH':
        continue

    bpy.context.view_layer.objects.active = obj
    obj.select_set(True)

    bpy.ops.object.bake(type='COMBINED')
    obj.select_set(False)

# save all baked images
for image in bpy.data.images:
    if image.is_dirty:
        # foo.png -> foo_bake.png
        filepath, filepath_ext = os.path.splitext(image.filepath_raw)
        image.filepath_raw = filepath + "_bake" + filepath_ext
        image.save()

Execute the bake with:
 blender --background bake_test.blend --python bake_all.py

Further ideas for batch baking which might be useful.

Automate baking an entire game-level:
loop over each group and bake its objects (or each group matching a naming convention, ending with .bake for example)

Automate baking existing models:
A utility script which loads in models from an external format (OBJ, FBX, 3DS... etc), unwrap, assign images, bake and exports.

Automate low-poly mesh creation with the decimate modifier, and bake normal maps (high->low poly meshes).

Bake textures over time (create a baked image sequence).

Create a utility which runs back in a background process so you can keep on using Blender.


Text objects are messed up when using Offset Sometimes when using the Offset  parameter in Text object data > Geometry > Modification to shrink or fatten characters, some characters will get incorrectly displayed:

The default Bfont is more immune to this then most other fonts I tried, where this starts happening even with an Offset factor of .001.

What causes this and how can I correct it?

While this isn't a fault with blender's font parser I think I can offer some insight.
To give this context, this doesn't only happen with fonts, it happens with all 2D Curves that self intersect when offset too.

Font Weights
If you have a bit of respect for typography then you don't 'fatten' fonts. Fonts are designed with certain visual weights in mind, an indiscriminate offset messes with this delicate balance of geometry and empty space. As an example Helvetica has between 34 and 51 weights depending on flavour, each is 'fattened' by hand and tweaked in subtle ways.
No doubt you don't have to pay any attention to what is considered proper use of fonts, that's part of the fun. For the moment this is the way the Blender engine offsets 2D filled curves, without respect for potentially self-intersecting geometry. If you really want fatter letters but can't find the right weight in the font family then consider doing it in Inkscape/Illustrator, and importing as an SVG. SVG is imported as a 2D curve.
Other reasons a font may render poorly
Fonts or 'digital typefaces' vary in enormously in quality. A substantial amount of free fonts has defects that may not be immediately obvious in 2D graphics packages (they may have more elaborate font loading mechanisms).
With the font you suggest, the area in question is tricking blender into thinking it has to deal with an extra line segment, this line segment however doesn't connect to any other segments and also doesn't form a closed loop with itself.
In Inkscape if you pick this Embossed Font and make a text object, with just the uppercase L, and convert it to a path (Path > Object to Path) you will notice this stray line segment. It shouldn't be there, but it is. Inkscape ignored it, but includes the path anyway.

This is also exactly where blender throws its hands in the air.

I'm sure if you inspect the other fonts where this peculiar stuff happens, they too suffer from stray line segments, and maybe self intersections.
A fix
You can edit fonts inside Blender, and remove the usual suspects.
With the font in object mode, go to:
Object -> Convert To -> Curve from Mesh / Text, or AltC-> Curve from Mesh/text
Now you can deal with stray lines, (delete them) and still apply Extrude, etc.  Unfortunately this operation doesn't allow you to correct typos in the existing text object any more, because it has been converted to a Curve.


Linking an armature to a scene In my script I tried the following:

import bpy

arm = bpy.data.armatures.new('SomeName')
bpy.context.scene.objects.link(arm)

and I get the error:

TypeError: bpy_prop_collection[key] = value: invalid, expected a 'Object' type or None, not a 'Armature'

How do I link an armature created with .new() to a scene?

Blender has the concept of:

Scene: Reference Objects
Objects: Reference Object Data (Mesh, Armature, Lamp. etc)

This is needed so you can (for example) have many instances of the same mesh, which saves memory and allows you to edit without having to manually update copies.

Here is the script modified to work as expected.

import bpy

arm = bpy.data.armatures.new("My Rig")

# create an object
obj = bpy.data.objects.new("My Object", arm)

bpy.context.scene.objects.link(obj)


GPU Render slows when computer is inactive I'm a newbie here and I coming with a strange problem (for me...).

Just to introduce my config: I use Blender with an i7 CPU (3930K 6-core), a GeForce GTX660Ti, 32Go RAM, and I work with Windows 10 Pro.

I made often simple scenes, the last one are a dozen of gears which turning and that's all, all frames have the same complexity level.

When I render animation with a render time about 2,5 minutes/frame in 4k resolution for example, as long as I used my computer (to surf on Internet or some little things) the render time is stable, BUT if I leave my computer, after some time, the render time slowing down! And the frame use even 5 minutes!!!
If I move the mouse, the next frames becomes normal with 2.5 minutes... Strange, no?

All right, all the time saver are off (screen, hd stop, etc...), please have you any idea about that problem?
Thanks a lot in advance!!

I think that as you are using GPU rendering after a while as the image is still roughly the same on your screen, the GPU hibernates/ power saves as it is not being used. That is probably why when you browse the internet it goes back to normal.

I would recommend CPU rendering unless your GPU is O.P. compared to your CPU which i don't think it is.


Metaballs show in rendered viewport but not in actual render? I have a particle system that emits metaballs in Blender 2.8 eevee. My settings:

They don't show up in the render - not the object itself nor the metaballs emitted. In the rendered view they show up:

But in render, nothing:

Why?

You probably solved this by now but in case anyone is wondering - I had the same issue with emitting metaballs showing up fine in the viewport but not rendering. In my case the emitter object had rigid body physics enabled. Once I disabled that the problem was solved and metaballs rendered fine


Snapping Vertices to One Vertex on a UV Map I am following the tutorial for Creating a Lowpoly Concrete Barrier.
At about 29 minutes and 4 seconds he begins snapping the first two pieces of the texture in the UV map. I believe I have the settings the same and I managed to get the first vertex to vertex to snap. However when he snaps the right side it is multiple vertices to one vertex and the image seems to move instead of growing bigger (hard to tell b/c he is zoomed in).
The image below is the point I get to:

...however every time I try to snap this ends up happening (one vertex gets pulled and snaps versus all vertices moving and the lowest one snapping:

I have spent the last hour trying to find how to do it how he did in the video and I'm at a point where it's just become frustrating, but I don't want to give up. What am I missing? Thanks.

Try using G instead.
By clicking with  RMB, you are deselecting everything but the vertex under the cursor, which will then be translated.

Translating/grabbing with the mouse is sort of intended as a convenience thing to quickly be able to tweak individual vertices without pressing G.

The reason why it can't work for translating a selection of multiple elements is because  RMB is already used primarily for selecting. So clicking will first select the vertex under the cursor, then after moving the cursor 10px with the mouse button held, the grab/translate operator is called. This 10px threshold is configurable in ⎈ Ctrl⎇ AltU> User preferences > Input > Tweak Threshold:

In most places and most of the time you'll want to use G for translating/grabbing.


How do I put Detailed Scenes in Blender I'm Miguel Marquez and I have a question well I have a scene that I want to render with realistic hair particles. apparently, my goal is to have detailed scenes in films inside of Blender but whenever I do it ends up eats all my storage memory or crashes my mac mini so is there any tips and tricks I could use to get around those problems but still keep the detailed scenes?

Yes, there is: You need to separate each character into a render layer. And use MASK and EXCLUSION. That´s for an advanced setup. It´s the only way your machine can render 1 character at the time. Later on the compositor, you can place them all back as renders on the same frame.
Otherwise: yes, your machine will keep crashing because of short RAM memory.

Thank you for your consideration to vote me as the answer by clicking to the left :the icon with a check mark and upvote this answer.

BFCT_Schiller


Why is my Geometry Node Setup not working? I´m currently trying to create a very simple effect using the new Geometry Nodes.

This is my Node setup but it doesn´t work. The Mesh gets displayed by the collection but the effect I want to achieve is not showing. The Vertex group should work as the factor but it doesn´t seem to work. It is mixing between a small and a big version of the Instances.
The effect: I have a proximity Vertex Group (Weight Map) which is getting controlled by an empty. When the empty gets closer to the Surface of the Object, the Weight Map is getting stronger.

And the Goal of the Node Setup is to have a scaling effect happening, using the Proximity vertex Group as the factor.

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


Python, IDPropertyGroup, isinstance In an exporter script i also want to export "custom properties".
In my script i have the active object:

x = bpy.context.active_object

I can access the custom properties by their keys:

k = x.keys()

Blender / Cycles seems to reserve some own properties in here with the keys:

cycles
_RNA_UI

The values of these seem to be of type IDPropertyGroup, investigation in the python console gives:

>>> type(x['cycles'])
<class 'IDPropertyGroup'>

In my script i want to handle this as a special case and for values of IDPropertyGroup rather use value.to_dict().

So in my script i have:

for k in x.keys():
    val = x[k]
    print("k %s type %s" % (k, type(val)))
    if isinstance(val, bpy.types.IDPropertyGroup):
        val = val.to_dict()

But this gives an error that i don't understand:
    line 194, in execute:
    if isinstance(val, bpy.types.IDPropertyGroup):

AttributeError: 'RNA_Types' object has no attribute 'IDPropertyGroup'

Googling for IDPropertyGroup i get this relationship:
    class bpy.types.IDPropertyGroup(bpy_struct)

I wonder where this error comes from, i would expect this to work.

Thanks for any hints,
Torsten

There is no such thing as bpy.types.IDPropertyGroup in bpy.types, hence this line:

if isinstance(val, bpy.types.IDPropertyGroup):
    ...

fails. Try from bpy.types import IDPropertyGroup you will get an ImportError.

>>> from bpy.types import IDPropertyGroup
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
ImportError: cannot import name 'IDPropertyGroup'

This is why that isinstance fails. I agree this is a little bit weird, but this changes the question a little.

  Why isn't it there and how would I use isinstance to test complexity of an ID property. Are there alternatives?

Because ID properties are a limited collection of types, it's perhaps no less crazy to check for int, float, str, list.

import bpy

x = bpy.context.active_object

for k in x.keys():
    val = x[k]

    if isinstance(val, (int, float, str, list)):
        print('simple', val)
    else:
        print('complex', val.to_dict())

You could also check if the ID property has an attribute to_dict instead, else it's a basic type.

import bpy

x = bpy.context.active_object

for k in x.keys():
    val = x[k]
    if hasattr(val, 'to_dict'):
        val = val.to_dict()
    print(k, val)

Even use the (always present) class type returned by type(x['cycles'])

import bpy

x = bpy.context.active_object
IDPropertyGroup = type(x['cycles'])  # <--- use this type's return in isinstance

for k in x.keys():
    val = x[k]
    print("k %s type %s" % (k, type(val)))
    if isinstance(val, IDPropertyGroup):
        val = val.to_dict()

    print(k, val)


Bake Keyframes selected bone This is how I do it in maya

refresh -su true;
    string $startFrame = `playbackOptions -q -min`;
    string $endFrame = `playbackOptions -q -max`;
    bakeResults -t (($startFrame) + ":" + ($endFrame)) -sm true -sr false -sb 1.0 -pok true -dl "bakedTRANS";
    refresh -su false;

Wonder if someone can do it in blender. I want to select a bone and bake the selected range that I assign in the viewport exp frame 0 to 30 and he bakes that range but if I change the range he would bake 0-40f

--bpy.ops.nla.bake(frame_start = context.scene.frame_start, frame_end = context.scene.frame_end, visual_keying=True, bake_types={'OBJECT'})--

which means you bake all your frames using an NLA editor.


Find the type of a panel displayed in the UI Is there an easy way to find the type of an panel displayed in the UI?

Right click -> Edit Source does not work for panels in the tools/properties regions.
It is definately possible to access some of them.

I tried to create a list and retrieve some info from bpy.types.* but it is still difficult sometimes to find the correct panel.

If Edit Source fails, then it's created by a script on-the-fly (through PyConsole or Text Editor), or it's hardcoded in C - which is more likely the case. You won't find the panel subclasses in bpy.types in the latter case, they aren't exposed to python.

I usually try to find similar panels or even other types via Auto-complete in the PyConsole, to figure out the naming scheme. Take the Grease Pencil panel for instance:

There is no bpy.types.GREASE*, so no header, menu, panel or operator. A different name is used apparantly. We can also check for any type that contains "grease":

>>> [d for d in dir(bpy.types) if "grease" in d.lower()]
['BlendDataGreasePencils', 'CLIP_PT_tools_grease_pencil', 'GreasePencil', 'GreasePencilLayers']

Nothing useful in there, I would now try another part of the name or an abbreviation:

>>> [d for d in dir(bpy.types) if "pencil" in d.lower()]
['BlendDataGreasePencils', 'CLIP_PT_tools_grease_pencil', 'DOPESHEET_MT_gpencil_channel', 'DOPESHEET_MT_gpencil_frame', 'GPENCIL_OT_active_frame_delete', 'GPENCIL_OT_convert', 'GPENCIL_OT_data_add', 'GPENCIL_OT_data_unlink', 'GPENCIL_OT_draw', 'GPENCIL_OT_layer_add', 'GPencilFrame', 'GPencilFrames', 'GPencilLayer', 'GPencilStroke', 'GPencilStrokePoint', 'GPencilStrokePoints', 'GPencilStrokes', 'GreasePencil', 'GreasePencilLayers']

This revealed something useful: The naming scheme. Grease Pencil operators start with GPENCIL.

Time to grep the Blender sources! GPENCIL_PT_ won't match anything, this kind of abstraction isn't really used in the C code. But we know there are buttons (=operators) drawn in the panel, so we can search for them and try to locate what adds them to the layout - GPENCIL_OT_ finds blender\source\blender\editors\gpencil\gpencil_buttons.c among other files.

GPENCIL_OT_data_add is the first match, on line 306 it reads:

    uiTemplateID(col, C, ctx_ptr, "grease_pencil", "GPENCIL_OT_data_add", NULL, "GPENCIL_OT_data_unlink");

This is part of the function draw_gpencil_panel(), this is defintely the right place.

UI widgets are directly added to the layout:

uiItemO(col, IFACE_("New Layer"), ICON_NONE, "GPENCIL_OT_layer_add");

This is obviously the C-equivalent of

col.operator("gpencil.layer_add", text="New Layer")

Some of the functions could probably be ported to python, but others can't. Take the 3D View layers widget for example: it draws nice little orange dots on the layers, which have at least one object on them. We couldn't do this nicely in python.


Turn off the headers for the rendered window I am using python script to render the image. I only want to show the IMAGE_EDITOR area( I think the rendered image gets shown in IMAGE_EDITOR area). It should show only the rendered image.

So basically I am trying to do 2 things here

Render the image
Show only the area with the image.

I hope I am clear on this. I tried to render image by -

for area in bpy.context.screen.areas:
    if area.type == 'INFO':
        override = bpy.context.copy()
        override['area'] = area
        bpy.ops.render.render(override, use_viewport=True)
        break

But it doesn't work.

EDIT: So as iKlsR told, I used a differnt display mode. I am able to get the whole rendered image using

bpy.data.scenes["Scene"].render.display_mode = 'FULL'
for area in bpy.context.screen.areas:
    if area.type == 'INFO':
        override = bpy.context.copy()
        override['area'] = area
        bpy.ops.render.view_show('INVOKE_DEFAULT')
        bpy.ops.render.render(override, use_viewport=True)
        break

However, I need just the rendered area. Not the headers . How can I make them turn off?

If I understand what you are asking, you can get the same results by choosing New Window or Fullscreen in the Render panel under the Display drop-down list.

Choosing New Window will give you a tad bit more screen estate by not having the Info header. Hover over the list with the current selection for the python equivalent if you want to use it in a script.


Using 360 images for scene background I'd like to be rendering a scene in which the camera is behind a plane of glass looking at a background scene (a PNG image I provide), and there's rain on the plane of glass. This is what my scene looks like currently:

As you can see, the rain drops are reflecting a lot of the gray background outside the image, but I don't want this. I have 360 camera images that I could use for the background instead, but I'm not sure how to use them in blender. Any advice? Currently my background is just an image on a plane (using "import image as plane"). This is the kind of 360 image I have to use for the background instead:

Is it possible to use an image like this to create a "wrapped" background, where the whole scene is this 3D background image (instead of just on a plane in front of the camera)?

Use your image as Environment texture for the world.

Instead of color you can choose a texture. Select Environment.

Then select the image.


Deforming a mesh in BGE runtime I have two objects in my scene. One of them is a rigid body and it has to collide with the another one (soft body). I need to do the rigid body deforms the softbody in runtime and the deformation has to be plastic. I tried setting the object as Soft body in Game Render and setting Plastic = 100, but I think these parameters don't affect in the game engine. What could I do? I think changing the position of each vertex of the softbody when the rigid body touch it could be computationally expensive.

The Blender Game Engine and the Blender's simulation system use two different pysics solvers. To see the game physics settings you have to set the Blender engine to 'Blender Game':

But the softbody settings of the game engine do not offer any settings for plastic deformation:

So why is there a difference?
The solver used in the animation system is more powerfull and accurate, but as you may have noticed it is much too slow for a game.
The solver in the Game Engine on the other hand uses a very fast position-based softbody simulation called Shape Matching (see the paper for more information). While the paper also describes the implementation of plastic deformations, this is either not implemented or not activated in Blender.


materials rendered as black in BI suddenly all my objects are rendered as black, i'm in Blender render.
any tips?
cheers

I accidentally hid the lamp.

That's why all of the objects turned black.


Using global nodes to control environment quality? I'm working on a fairly large environment render with multiple houses, trees, grass etc. and I'm on the limit of maxing out my GPU memory. Depending on what angle I'm doing a render, I will manually hide objects outside the viewport or lower subdivions, disable displacements or make glass non reflective to avoid maxing out my GPU memory limit. It works but it's really time time consuming and I do forget to redo those changes when I switch to the next angle.
I'm curious is there a good workflow using nodes to control quality? For example if I could have a set of nodes with values from 0-5, I could somehow utilize those values on textures or controlling will some objects be visible?
I could not find any tutorial relating to this kind of workflow.

You can use the Simplify panel to do some of this with global control.


What are the system requirements for working with heavy/complex scene in Blender? Is it possible to create a scene like kung fu panda with more that 5 characters, environment, simulation, vfx, lighting ...etc.

Of course it is possible, the minimum for rendering/composting this type of scene in less than 20 hours is and Nvidia GTX 650+ and either intel i5 or i7. But, your question was a bit vague so I don't really know what you mean. I hoped this answer helped though. :)


How do I remove world lighting for a certain object? I want to prevent a specific object in my scene from being lit by the world background. How can I make this happen?

I'm not sure if this is possible, but a workaround would be to render that object without the world background (transparent, etc), and then add it onto the world background and whatever other objects you have in your scene in the compositor.

Someone else may have a better answer that actually solves what you're asking for, but this is a solution that would work.


Flag Physics seems fine when on the viewport but looks messed up when rendered I'm fairly new to blender and I've come across this issue. My flag with wind physics seems fine when I animate it on my view port using collision physics.

Here's a sample:

https://imgur.com/qmJvESK

But the moment I render the animation the flag seems to spins around then the meshes seems to break.

https://imgur.com/W4as88R

Do you have any subdiv modifiers for that flag? If so make sure they have the same amount of subdiv steps on render and viewport. Because the gif you posted seems to have more geometry on it than the last image you posted...


Two armature, two rest pose, fixing animations So I have one FBX that have it's own armature and one object. Let's call it T pose. I have second FBX that contains one armature with let's say walk animation.

I am trying to assign walk animation to object with t-pose with no success. What have I tried so far:

Adding just walk armature to object won't work. I mean I can add the armature, but walk armature's rest pose is different than t-pose's rest pose. If I just change armature, animation is awkward.
I wrote one simple Python script that copy rest pose of walk animation and paste it to rest pose of t-pose. That didn't helped.
tried Copying FBX animation to armature

Am I right that deformations in animations are just offsets from rest pose?

I see others had same problems like:  Merge multiple fbx animations into single rig
or Import fbx animation

Is there any solution for this? Any comment is appreciated.

The solution is rather simple.
You need to add Bone Constraint -> Copy Transforms to armature without animation. As Target add armature with animation, and as a Bone, bone with the same name. Rinse and repeat for all bones.
Here is the code that automates all:

Creates constraints and link bones with other armature
Iterate over all frames, apply transform, and insert keyframes for all bones
Delete constrains

Just fill source and target armature, and animation from and to.
Moreover, you can just call add_constraints() function which will link armatures and bones.
import bpy

source = "Bip001"
target = "Bip001.001"
frame_from = 0
frame_to = 35

# add constrains and link them with target bones
def add_constraints():
    global source, target

    source_ob = bpy.data.objects[source]

    for bone in source_ob.pose.bones:
        sel_bone=source_ob.data.bones[bone.name]
        sel_bone.select=True
        bpy.context.object.data.bones.active=sel_bone

        trans_bone = bpy.context.object.pose.bones[bone.name]
        if trans_bone.constraints.find('Copy Transforms') == -1:
            if bpy.data.objects[target].pose.bones.get(bone.name) is not None:
                bpy.ops.pose.constraint_add(type='COPY_TRANSFORMS')
                trans_bone.constraints["Copy Transforms"].target = bpy.data.objects[target]
                trans_bone.constraints["Copy Transforms"].subtarget = bone.name

# delete previously created constrains
def del_constraints( ):
    for bone in bpy.context.selected_pose_bones:
        copyLocConstraints = [ c for c in bone.constraints if c.type == 'COPY_TRANSFORMS' ]
        # Iterate over all the bone's copy location constraints and delete them all
        for c in copyLocConstraints:
            bone.constraints.remove( c ) # Remove constraint

def apply_animation():
    global source, target, frame_from, frame_to
    #set keying set to whole character
    #we have all bones selected
    scene = bpy.context.scene
    for frame in range(frame_from, frame_to ):
        scene.frame_current = frame
        scene.frame_set(scene.frame_current)
        # apply visual transfrom to pose Ctrl+A
        bpy.ops.pose.visual_transform_apply()
        # insert all keyframes -> press I
        bpy.ops.anim.keyframe_insert_menu(type='__ACTIVE__', confirm_success=True)

def select_all_bones():
    global source, target
    ob = bpy.data.objects[source]
    for bone in ob.pose.bones:
        b=ob.data.bones[bone.name]
        b.select=True
        bpy.context.object.data.bones.active=b

ks = bpy.data.scenes["Scene"].keying_sets_all
ks.active = ks['Whole Character']

ob = bpy.data.objects[source]
# uncomment line below if you are using Blender version below 2.8 and comment out 2nd line
#bpy.context.scene.objects.active = ob
bpy.context.view_layer.objects.active = ob
bpy.ops.object.mode_set(mode='POSE')
#select_all_bones()
add_constraints()
apply_animation()
del_constraints()


A/V Sync issues after update to 2.79 My video clips which are pulled From OBS, do not line up on blender. I have A/V Sync on. the videos FPS on VLC say it is at 30 fps (plus the raw files DO sync when played back in VLC) and that is what I am trying to render at. Even though the channels do not line up when I render them they come out matching. Now when I try to make the channels line up when editing them and I try to render then the A/V is out of sync in the rendered video.

I just edited an OBS file in Blender's VSE and Blender auto-conformed the project frame rate to FPS: 10 FramerateBase: 0.330. So its not quite 30fps. If you added something else to the project first then added the OBS file later, then Blender will default to the first specified frame rate. Either try this rate or add the OBS file first.

Consider checking that you are using SDL as your Audio Device in Blender preferences.


Cannot load movie files on Ubuntu I am starting to use Blender to edit videos on Linux.
What it's wrong if I add a movie in avi format and it only works on Windows but not on Linux? In Linux it says that file cannot be loaded. If opened by terminal, it says "not an anim: /home/matsetes/kdenlive/Minetest mod spotlight 4.avi"
I am using Ubuntu latest version and I installed Blender from the repository, but I tried also compiling it.
Perhaps it's a problem with some codec on Ubuntu? I am able to open these files on Ubuntu and also edit them with Kdenlive.

Thank you for all, guys =)

I solved, after two months from when the problem occurred. I used the irc chat and three or four forums and, of course, Google.
The page that helped me a lot is https://developer.blender.org/T28790
where it says that is a problem of ffmpeg with the compiling of GCC. You can solve that downloading the precompiled version here https://builder.blender.org/download/
It doesn't work if you compile the version and also the repository one does not work.

I answered my question to help all the people that will have the same problem =)


How can I convert an SVG to a mesh? In Blender, extruding and beveling of SVG imported objects, works very well when they are still bezier objects, but the conversion of a SVG path to a mesh is very ugly, with a lot of unnecessary vertex and edges.

Is there a way to better the conversion?

Alternatively, is there a better way to model a mesh starting from an SVG shape?

No, the conversion its self will be scan-filled (like the image you show), however you can cleanup the mesh after.

For more even distribution: Select the faces that have ugly tessellation. Select the menu item Mesh -> Faces -> Beautify Fill.
To remove redundant edges (and get an ngon), select the face area. Select the menu item Mesh -> Delete -> Limited Dissolve. set the angle very low to avoid loosing details of the shape, this will give you an ngon.


How to move the Armature Original Point without moving bones? I am a newcomer.

I made an Armature and when I have to use X-Axis Mirror I found my Armature Original Point was not in the middle. It's like this.

So how can I move it to the middle without moving other bones?

Thanks a lot!

Your armature is rotated, maybe it's your problem, you should first unparent the mesh in the Properties panel > Object > Relations, apply its rotation (CtrlA), put its origin at its center, reparent the mesh in the same panel, align it on the armature, and it seems to work better.


Why is bpy.ops.ptcache.bake is not executing bake to external cache when bake_all() working? I'm trying to bake externally a single cache smoke domain, with multiple/other domains in the same scene file which I don't want to cache, but when I run the below it simply returns {'FINISHED'} as a result without executing the external bake to disk.

Am I needing to specify another element or flag in the modifier's attributes before I execute it?

I'm close to getting a solution to this and can see all the attribs but it's tricky getting a clear guideline as to what's making this refuse to bake to an external cache location.

import bpy

def cacheThisSmokeSim(smokeCacheName):
    for scene in bpy.data.scenes:
        for object in scene.objects:
            for modifier in object.modifiers:
                if modifier.type =='SMOKE':
                    if object.name == smokeCacheName:
                        override = {'blend_data': bpy.data,'scene': scene, 'active_object': object.name,'point_cache': modifier.domain_settings.point_cache}
                        #bpy.ops.ptcache.bake_all(override)
                        print ("CACHE THIS*:",smokeCacheName,"\n")
                        result =  bpy.ops.ptcache.bake(override,bake=True)
                        print ("END OF CACHE")
                    else:
                        print ("BUT NOT THIS:",object.name)
    return result

cacheResult = cacheThisSmokeSim('SMOKEDOMAIN')

Please also note that I'm able to bake everything well enough but for big scenes when you want to simply adjust one cache this would be super helpful without having to execute:

bpy.ops.ptcache.bake_all(override)

which works perfectly.

make sure use_disk_cache is enabled or enable it before baking the cache :

object.modifiers['Smoke'].domain_settings.point_cache.use_disk_cache = True


Armature parent with automatic weights swaps the legs I'm fairly new to weight painting and armatures, so I heavily rely on automated tools. So far parenting an armature with automatic weights was working perfectly. However this time it's not working.
See screenshot: Right leg is selected, the weight is on the left leg. Same for the lower part. Back bones are not even weighted.

I'm not sure if this is another setting I overlook or just a bug, but any help is appreciated

I applied the scale and rotation to the model before, so I guess the exact solution was to recalculate the normals. I'm not sure exactly, however applying loc,rot, scale and recalculating normals together fixed the issue.


Is it possible to render a file with combined CPUs of 4 systems? I have four servers, each having 16 threads. Is it possible to render a single file using the combined power of 4*16 threads? Basically, I want to know whether different CPUs can render a single file simultaneously.

If it's a long render like an interior visualization with lots of indirect light and it takes hours to render it pays off to just split the samples in 4 parts, so if you need 20 000 samples you can just render 5000 on each machine with different render seeds saving them in EXR 32bit full float format. Then you need to combine everything mixing them proportionally - so you would blend each 2 of them with weight of 0.5 and then blend the results together with 0.5 weight as well in Blender's compositing so each of them contribute 1/4th to the result. Obviously if you are rendering animations that will be too much work so you would need to look into automating this with Python, but with animations you can just render different frames on different machines as well. There might be addons for automating this already that I am not aware of, so it is probably a good idea to search for them as well if manually doing this is too much trouble for you.


bgl.Buffer() to bytes I want to transfer an image that has been rendered in Blender via a socket.
I have an implementation that does work already, but with a framerate of 0.5fps.

currentImage stores an image that was rendered.

currentImage = obj["RenderToTexture"].source.image
imageSize = obj["RenderToTexture"].source.size
imageData = np.array(currentImage, dtype=np.uint8)

imageSize = (imageSize[1], imageSize[0])

if(clientSocket!=None):
    try:
        height, width = imageSize
        data = imageData.tobytes()
        transmitData = struct.pack("L", len(data))
        transmitData = transmitData + struct.pack("H", height)
        transmitData = transmitData + struct.pack("H", width)
        transmitData = transmitData + data
        clientSocket.sendall(transmitData)
    except socket_error as e:
        print("Error sending data: ", e.strerror)
        bge.logic.endGame()

The following line slows everything down:

imageData = np.array(currentImage, dtype=np.uint8)

Is there another way of sending the content of currentImage using a socket? Blender tells me, that this is a bgl.Buffer() object.

I actually solved the problem. I have now >30fps. The solution was the following:

Change

imageData = np.array(currentImage, dtype=np.uint8)

to

imageData = np.asarray(currentImage, dtype=np.uint8)

will let numpy try to get the values using the buffer protocol of numpy (maybe np.array will also do this, didn't check). For more informations about the buffer protocol: https://docs.python.org/3/c-api/buffer.html

Then I extended the source code of Blender by implementing the buffer protocol in the bgl.Buffer code. Now, the numpy call will access the buffer of the given buffer object.

The following lines will need to be inserted into the bgl.c source file:

static int itemsize_by_buffer_type(int buffer_type)
{
    if (buffer_type == GL_BYTE) return sizeof(GLbyte);
    if (buffer_type == GL_SHORT) return sizeof(GLshort);
    if (buffer_type == GL_INT) return sizeof(GLint);
    if (buffer_type == GL_FLOAT) return sizeof(GLfloat);
    return -1;  /* should never happen */
}

static const char *bp_format_from_buffer_type(int type)
{
    if (type == GL_BYTE) return "b";
    if (type == GL_SHORT) return "h";
    if (type == GL_INT) return "i";
    if (type == GL_FLOAT) return "f";
    return NULL;
}

static int BPy_Buffer_getbuffer(Buffer *self, Py_buffer *view, int flags)
{
    void* buffer = self->buf.asvoid;
    int itemsize = itemsize_by_buffer_type(self->type);
    // Number of entries in the buffer
    const unsigned long n = *self->dimensions;
    unsigned long length = itemsize * n;

if (PyBuffer_FillInfo(view, (PyObject *)self, buffer, length, false,     flags) == -1) {
        return -1;
    }

    view->itemsize = itemsize;
    view->format = (char*)bp_format_from_buffer_type(self->type);

    Py_ssize_t *shape = MEM_mallocN(sizeof(Py_ssize_t), __func__);
    shape[0] = n;
    view->shape = shape;

    return 0;
}

static void BPy_Buffer_releasebuffer(Buffer *UNUSED(self), Py_buffer *view)
{
    MEM_freeN(view->shape);
}

static PyBufferProcs BPy_Buffer_Buffer = {
    (getbufferproc)BPy_Buffer_getbuffer,
    (releasebufferproc)BPy_Buffer_releasebuffer,
};

Last, but not least, you need to change the following line:

/* Functions to access object as input/output buffer */
NULL,         /* PyBufferProcs *tp_as_buffer; */

into

/* Functions to access object as input/output buffer */
&BPy_Buffer_Buffer,         /* PyBufferProcs *tp_as_buffer; */

I also created a patch for that and I'll hope that this will make its way into a future version of Blender: https://developer.blender.org/D2734


viewing frames of animation I have a simple query, (I hope). I have a few frames of a walking figure which I can animate, but I need to access the frames so I can print and trace them for hand drawn work. Problem is, after I animate them, where do they go???

With the default key bindings, F12 will render a frame, and F11 will toggle the render view on and off.  The rendered result is shown in the "UV Image Editor" panel.  In that view, select from the menus Image -> Save As Image to save the one frame.

If you have more than just one or two frames, this will quickly get tedious.  Go into Scene settings, set up an output folder, and you can render a stack of separate frame images in one go.


Export only the selected object to STL file in Blender 2.8x How can I export only the selected objects out to an STL file.  I tried hiding from view and render but they are still included in the STL ile see images below.
My settings before exporting to STL format.

The image when it's imported

PS: I'm using Blender 2.83

First select the object you want exported, then begin the export process as normal, by going to File > Export > Stl, then under the Include section, you will see a checkbox for exporting only the selection.


Rendered trees look flat I am working on a small scene you can see below on the render picture. It's almost done, but I have a problem with the trees. They are fully 3D objects, with some textures UV unwrapped.
My problem is, whenever I try and render the image, the trees look super flat, like they are 2D. I have no idea why it does that, I tried rotating them, didn't work, and while it's not that visible if you don't point it out, it still irritates me.
Any idea what could cause this? If you need more information just ask questions I will gladly answer :)

try to add some lights from the right shining to the left, so that you could see the tree trunk better, then it will look more like 3d – Chris


Blender 2.8, how to add a new shortcut Question:
How to add shortcut to a button or create a new shortcut in User Preferences in Blender 2.8 ?
Problem:
I'm trying to assign Shift + F3 to switch the window space type, to what previously was Node Editor, now "Shader Editor".
Tried:

RMB click over the Shader Editor icon in the drop down menu at
the top left corner of the window. No add shortcut link there.
Main Menu, Edit > Preferences > Input
, Add New, rename to Cycle Space Type Set (following the naming convention of other shortcuts related to space types), Setting the shortcut to Shift+F3, RNA shows Disabled, the value is OperatorProperties and cannot find a way to change it.

It looks to me that it still needs to be implemented as is literally missing from the options even if you want to modify the existing one.

But for now you could do a quick addon, install it and use it as a shortcut.

if you use this script then the operator name is object.shading_workspace

don't know if there is a simpler way.

bl_info = {
    "name": "Shading Workspace",
    "author": "Your Name Here",
    "version": (1, 0),
    "blender": (2, 80, 0),
    "location": "",
    "description": "Shading Workspace",
    "warning": "",
    "wiki_url": "",
    "category": "",
}

import bpy

def main(context):
   for ob in context.scene.objects:
       print(ob)

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.shading_workspace"
    bl_label = "Shading Workspace"

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        main(context)

        # this is the line you need
        bpy.context.window.workspace = bpy.data.workspaces["Shading"]

        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.object.shading_workspace()


why are my cones upside down using the blender api? I'm trying to create some supports dropping down from the face of a shape.
However when creating cones at the base they are all upside down.
If I copy the output text for one of the cones back into the console it creates a cone in exactly the same spot but up the correct way.
What am I doing wrong?

import bpy
import math

import bmesh

#The relevant faces should already have been selected in edit mode
#The context can be edit or object mode

# get current mesh
current_mesh = bpy.context.object.data

# create empty bmesh, add current mesh into empty bmesh
current_bm = bmesh.new()
current_bm.from_mesh(current_mesh)

#bpy.ops.object.mode_set(mode = 'EDIT')
wX =  bpy.context.object.matrix_world[0][3]
wY =  bpy.context.object.matrix_world[1][3]
wZ =  bpy.context.object.matrix_world[2][3]

print(wX,wY,wZ)

def support_below(x1, y1, z1, x2, y2, z2, r):

    dx = x2 - x1
    dy = y2 - y1
    dz = z2 - z1
    dist = math.sqrt(dx**2 + dy**2 + dz**2)

    bpy.ops.mesh.primitive_cylinder_add(
        vertices=3,
        radius = r,
        depth = dist,
        location = (dx/2 + x1, dy/2 + y1, dz/2 + z1)
        )

    ## really strange - these cones are all inverted, but if I paste the context output into the console they're correct
    bpy.ops.mesh.primitive_cone_add(
        depth=dist/10,
        location=(x2, y2, z2),
        scale=(1, 1, 1),
        )

    phi = math.atan2(dy, dx)
    theta = math.acos(dz/dist)

    bpy.context.object.rotation_euler[1] = theta
    bpy.context.object.rotation_euler[2] = phi

selected_face_locations = []
for face in current_bm.faces:
    if face.select:
        selected_face_locations.append(face.calc_center_median())

curMode = bpy.ops.object.mode
bpy.ops.object.mode_set(mode = 'OBJECT')
userSelection = bpy.context.selected_objects
for face_location in selected_face_locations:
    x = face_location[0] + wX
    y = face_location[1] + wY
    z = face_location[2] + wZ
    support_below(x,y,z,x,y,0,0.1)

# return back to original
#userSelection.select
# bpy.ops.object.mode_set(mode = curMode)  # sadly this doesn't work :-(
#print (curMode)
#if curMode == 'EDIT':
#    bpy.ops.object.mode_set(mode = 'EDIT')

Code re-jig.

Don't think deletion is required, will however run thru an alternative route or in other terms FWIW:  "How I would go about it".  BTW also really appreciate questions like this one where the OP has had a red hot go at creating a script. Please take this in the spirit of offering an alternate way
Some tips.

Use Vector math. There is never a reason to include the Euclidean distance formula when dealing with vectors.  It is the vector length. Rarely do we need to split the vectors component wise. For example the 6 components passed to the create support method, should it be the case that x2, y2, z2 is not on vertical line then q code would not create an angled strut in any case.

Multiplying local coordinates by the matrix world of their object will put them into global space, which allow for all transforms including scale.

Avoid edit mode toggling. Here I've created the struts using lower level bmesh operators, enabling no edit mode toggling.  Could also consider making a support only once and copying and scaling when more are required.

Test code.
import bpy
import bmesh
from mathutils import Vector, Matrix

from bpy import context

ob = context.edit_object
me = ob.data
bm = bmesh.from_edit_mesh(me)
mw = ob.matrix_world
coll = context.collection

strut_radius = 0.1
cone_radius = 0.4

coords = (mw @ f.calc_center_median() for f in bm.faces if f.select)
bm = bmesh.new()
for co in coords:
    bm.clear()
    cone_mesh = bpy.data.meshes.new("Cone")
    bmesh.ops.create_cone(
            bm,
            segments=16,
            diameter1=cone_radius,
            depth=co.z / 10,
            cap_ends=True,
            cap_tris=True, # tri fan fill.
            matrix=Matrix.Translation((0, 0, co.z / 20))
            )
    bm.to_mesh(cone_mesh)
    cone = bpy.data.objects.new("Cone", cone_mesh)
    cone.location = (co.x, co.y, 0)
    coll.objects.link(cone)

    bm.clear()
    strut_mesh = bpy.data.meshes.new("Strut")

    bmesh.ops.create_cone(
            bm,
            segments=3,
            diameter1=strut_radius,
            diameter2=strut_radius,
            depth=co.z,
            cap_ends=True,
            matrix=Matrix.Translation((0, 0, co.z / 2)),
            )
    bm.to_mesh(strut_mesh)
    strut = bpy.data.objects.new("Strut", strut_mesh)
    strut.location = (co.x, co.y, 0)
    coll.objects.link(strut)


Exporting animations for mutliple armatures not working as exptected I'm trying to export an FBX file with 2 armatures and corresponding animations but the export file does not contain all animations from both armatures.

I have rigged some fps arms and and a gun. The wrist bone from the hand is attached to the gun bone with an child-of constraint.

The animations work fine in blender. I can switch between them and the animations plays.
When I export to an FBX file I expect 4 clips. 2 for the arm armature and 2 for the  gun armature.
This works perfectly when only having one animation.

But what I end up with is having 2 animations for the gun armature and only one animation for the arm armature.

As you can see only 3 animations instead of 4 get created.
I need to have separate animatons because I want to use the arms for multiple weapons.

I've read that there might be a bug regarding this.
Or do I need to check for something else?

I also faced the same issue but then I came up with a solution of joining the mesh and armature of the gun to the mesh and armature of the arms. All the animations were exported properly and there were no problems with the animations as well.


Glare shows in compositing window, not in final render I am trying to do the Blender Guru Neon tutorial, all good EXCEPT I can't figure out the glare node set up. I have mine set up just like his tutorial shows, but in mine the glare only shows as a preview in the compositing window, does not show up in final render. I have attached a picture of the compositing window view and a shot of the render (bottom).

I am a total noob - I must have something set up wrong. Anybody have any ideas?

(Someone else asked an almost identical question to mine, but if you read it, he just says he figured it out and didn't give the solution)

You need to connect the output of the Glare node to the image input of the Composite node. Otherwise you're just viewing the result of the glare but not applying it to the compositing output.


Weird Orbit feature with 2.80 When you use the multiresolution modifier in blender, whenever you orbit the subdivisions have the same effect as if turning off and when you stop orbiting they are displayed again.  I believe this is a feature of blender to make orbiting faster, but I want to turn it off.  How do I do that?

In the Options dropdown of the sculpt mode, deactivate Fast Navigate.


Get smoke simulation to observe emitter's pose? Right now I am making a model of a wind elemental in blender, and was trying to use the smoke simulation to make a small whirlwind that swirls around its main body.

However, the smoke simulation doesn't appear to observe the emitter mesh's current pose.  Rather than emitting from the model itself, it appears to emit from an invisible figure in a T-pose.

Is there a way to correct this problem, or is this something I should file a bug report on?

EDIT: I've rendered the first frame of the smoke simulation to show where it starts off from, in order to better demonstrate the issue:

I know the smoke sim has changed a lot recently, but it used to have a modifier on the modifier stack. It's possible that your smoke sim's modifier is above the armature modifier in the modifier stack, IWC the smoke sim is getting calculated, THEN the pose is getting calculated.

It also looks like the t-pose figure is a little bigger than the other. If that's the case, you should make sure your scale is applied on the model and the rig.

Hope that helps!


How do I control scenes switching I currently have two scenes in the Blender.

When you enter the game the first scene comes up and when you press "play" the second scene comes up. I've managed to have done that.

Now the third scene is a video.

I want the third scene before the second scene and the game to be continue after the third scene (Video) finishes.

How can I do this, ask anything if you're confused by question or want me to clarify something.

Because you are using an actual video, Blender doesn't know when it's finished. At least not if you use a plane and a video texture. In that case, as soon as the scene where that video is located gets activated, the video starts playing.

I program all everything that's scene-related to the camera, since that is an easy object to find and it isn't used to program so it's a clean space. Here I connected a 'scene' actuator to whatever setup you use to click the 'play'button. It should be set to 'set scene' and include the scene you want to activate (which in this case is your video scene).

So now, once we click 'play', we should get into the video scene and the video begins. Since Blender doesn't know when it ends, we should know. Therefore you should take a look at how long the video is (in seconds). Then keep in mind that the refresh rate of your game is by default set to 60. This means ever 'tick' in your game is a refresh. We can use this to let Blender know exactly when to switch over to the next scene.

Here I used an always sensor with a positive pulse trigger set at a skip of 0. This means that every time when the game refreshes (60 times per second) the always sensor sends a true signal to the controller. Now we add a game Property. Give it a name and set it to 'integer' mode. Make sure it's set to 0. On the always sensor we added, add an 'and' controller and after that, a 'Property' actuator. Set the mode of the actuator to 'Add' and set the value to 1. We also need to insert the recently created property in the actuator.
What we're doing here is adding 1 to the property 60 times per second. So when one second has passed, the property is 60. If your video is let's say 10 seconds exact, we know that we have 10 x 60 = 600 refreshes till the end of the video.
Add a 'property' sensor and set the mode to 'more than' (equal could work too, but anything causing blender to skip a refresh could make it fail). The value should be set to 600 in the case of 10 seconds and of course we are going to use the same property again. Onto this sensor we need to add an 'and' controller and a 'Scene' actuator. Set the mode to 'Set scene' and insert the scene that you use for your game. Now, once the video has ended, your game will start.


How do i twist two objects together I'm trying to do a candle stand which has two twisted pieces merging together, how do i take my ]two twisted pieces and then twist those around one another?.

Add an empty between both objects

Add a simple deform modifier to each object

Set origin to the empty
The axis to Z
At deform you can chose the twisting angle


Blender textures are rendered on each triangle individually If I make a new texture, then it draws the same tiny texture on each triangle of whatever I'm drawing. If I modify the material on the cube on the starting scene, it works fine. But I can't figure out how to copy materials, so I can only have one material per scene.

My problem seems similar to the one [here][2], but when I tried their solution, it ended up projecting it onto the UV map. I'm making a procedural texture on a sphere. If I use the UV map, it gets really warped on the poles.

Here's a picture:

The sphere on right is what I want. I made it by modifying the material on the starting cube. It is textured as if it was carved from a solid block of wood.

The sphere in the middle is what I get if I apply a new texture to a sphere. Each triangle is individually given a 2d texture.

The sphere on the left is what happens if I UV unwrap it. It mostly looks okay, but it's really warped at the poles and it has a seam. there are other ways to unwrap it, but there's no good way to put a 2d texture on a 3d object.

When the mesh does not have an UV map, the polygons still have default UV coordinates. The default maps the whole 2D texture to the entire polygon. That's why every face separately repeats what you see in the texture preview.

But to actually get this, coordinate mapping has to be switched to UV.

The procedural wood texture is a 3D texture. It can use 3D coordinates to calculate the color. But only if the coordinate mapping is of a 3D kind. UV is 2D mapping.

The "Object" coordinate mapping is a 3D mapping. Normally it is based on the bounding box of the mesh, but it can be changed in the Texture Space settings for the mesh.