text:
Sending object data from blender with urllib very slow
I am sending object loc rot and scale every keyframe to http address using urllib but the frame rate drops significantly.
Thats the code I am using:
import bpy
import urllib
import mathutils
from bpy import context
from urllib import request, parse
from math import sin, cos, radians
from mathutils import Matrix

def RunPerFrame(scene):
    for obj in bpy.data.objects:
        mat = bpy.context.object.matrix_world
        loc = mat.to_translation()
        rot = mat.to_3x3().to_quaternion()
        scale = obj.dimensions
        qtX = round(rot.x,3)
        qtY = round(rot.y,3)
        qtZ = round(rot.z,3)
        qtW = round(rot.w,3)
        loX = round(loc.x,3)
        loY = round(loc.y,3)
        loZ = round(loc.z,3)
        scX = round(scale.x,3)
        scY = round(scale.y,3)
        scZ = round(scale.z,3)

    url = ''
    values = { 'msgInstruction=' : 'MOVE_OBJ',
        'rotQuat=' : str(qtX) + ',' + str(qtY) + ',' + str(qtZ) + ',' + str(qtW),
        'objLoc=' : str(loX) + ',' + str(loY) + ',' + str(loZ),
        'objScale=' : str(scX) + ',' + str(scY) + ',' + str(scZ) }

    data = urllib.parse.urlencode(values)
    encoded_data = data.encode('ascii')
    req = urllib.request.Request(url, encoded_data)
    response = urllib.request.urlopen(req)
    the_page = response.read()

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

Currently testing with one object and the frame rate drops below 2 fps
Is there a way to make this faster with this code?

Are you sure this is a Blender issue?

Im not really sure, Im very new with scripting, but the animation slows down in blender and not in external animation.

I don't know if urllib is threaded. That means whenever it's sending data over the network, it locks up the rest of Blender. Look into threading: http://blender.stackexchange.com/questions/2428/how-to-run-scripts-in-the-backround-of-the-game-engine-without-freezing-or-openi/2593#2593

@MikePan Yes the urllib is not threaded, so I assume that is the issue. Now need to figure out how to add that.

@MikePan can you give a suggestion how to put that code in a thread?

@Denis can you test this now ?

I am checking it now, it looks good and there is no delay at all in blender, but I'm getting HTTP 503 and requests.py errors probably because application side cant process data fast enough.

using Mike Pan answer i have tried to split the code and put the networking part on a different thread see if this helps with the speed
import bpy
import urllib
import mathutils
from bpy import context
from urllib import request, parse
from math import sin, cos, radians
from mathutils import Matrix

import time
import threading

class Worker(threading.Thread):

    def __init__(self, values):
        self.values = values
        threading.Thread.__init__(self)

    def run(self):
        url = ''
        data = urllib.parse.urlencode(self.values)
        encoded_data = data.encode('ascii')
        req = urllib.request.Request(url, encoded_data)
        response = urllib.request.urlopen(req)
        the_page = response.read()

def RunPerFrame(scene):
    for obj in bpy.data.objects:
        mat = bpy.context.object.matrix_world
        loc = mat.to_translation()
        rot = mat.to_3x3().to_quaternion()
        scale = obj.dimensions
        qtX = round(rot.x,3)
        qtY = round(rot.y,3)
        qtZ = round(rot.z,3)
        qtW = round(rot.w,3)
        loX = round(loc.x,3)
        loY = round(loc.y,3)
        loZ = round(loc.z,3)
        scX = round(scale.x,3)
        scY = round(scale.y,3)
        scZ = round(scale.z,3)

    values = { 'msgInstruction=' : 'MOVE_OBJ','rotQuat=' : str(qtX) + ',' + str(qtY) + ',' + str(qtZ) + ',' + str(qtW),'objLoc=' : str(loX) + ',' + str(loY) + ',' + str(loZ),'objScale=' : str(scX) + ',' + str(scY) + ',' + str(scZ) }
    thread = Worker(values)
    thread.start()

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


text:
Rigify Rig is no longer editible
background
I made the mistake of saving my project in 2.8, this broke the project (crashes in 2.79). thus, I created a new project (2.79) and 'appended' the old project's data (text, texture, mesh, armature, action) via the 'file' menu.
problem
it appears that I can no longer pose the rig, it still animates via the actions I had (timeline scrub), but I can't grab individual (ik/fk) bones any longer (as if it were in object mode)
I noticed that the "bone groups" under the armature tab still contains color-coded groups to which bones are assigned, however the UI still shows them orange as if it were in object mode.

as opposed to the default rig

editx2: Interestingly, I was able to snap a mis-aligned frame which tells me the rig still contains its meta-data (or whatever it is), I just cant manually do it via the UI...

You won't have this problem if you'd just copy>paste the character with the rig from one file to another, although I never had problems with appending a character with any rig from another file. Different situation is with linking, then you would have to "Make single user" to edit the rig.

copy/pasting results in the same issue. I came to the conclusion the rig was actually truncated somehow (maybe it lost information when importing to 2.8 or something) after a few days of wasting time, I ended up just re-rigging/animating it :/

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Is it possible to animate which characters of a text object are assigned to a material?
Is it possible to animate which materials are assigned to specific characters in a text object? It is quite easy to assign the materials how I want using this method, but I do not know of a way to animate it. Is this possible at this point? And if not, is there a workaround using different techniques that I could use?
This question is similar to this question and this question, I just want to know if there are other methods that could be used for text objects.

..but if it can be scripted it can be animated, either via a driver or a frame_change event handler, or Sverchok / Animation Nodes and their Scripted Nodes.
import bpy
import random

for character in bpy.data.objects['Text'].data.body_format:
    character.material_index = random.choice([0, 1])

    ''' more options per character '''
    # character.use_bold
    # character.use_italic
    # character.use_small_caps
    # character.use_underline

This loops through all characters in the body of the Font Object (even non-visible characters) and set their material_index to 0 or 1. Material_Indices and Material_Slots are explained here (Both Cycles and Blender Internal render use the same convention)
Yes this is not super convenient if you aren't comfortable with writing scripts, i'm guessing there aren't many requests for easy ways to do this.
As a Driver

import math
import random

import bpy

def driver_func(animation_state):
    for i, character in enumerate(bpy.data.objects['Text'].data.body_format):
        if i < animation_state:
            character.material_index = 0
        else:
            character.material_index = 1
    return 0

# add function to driver_namespace
bpy.app.driver_namespace['driver_func'] = driver_func

here's the blend, you drag the slider (purple) between 0 and 4 and it switches character materials.

(you will need to enable Auto Run Python Scripts... )

I'd really appreciate it, not sure who else would use it. I bet you could get it posted on BlenderNation to increase interest once made.

To add to the answer as the link is broken: To set a material list via script you can bpy.data.objects['Text'].data.materials.clear() and then bpy.data.objects['Text'].data.materials.append(bpy.data.materials['Material']) for each.

Blender 2.76: This appears to currently be an unavailable feature.
Some workarounds could be to assign a different material to each letter and animate the colors of the individual materials, but there is no built in way to do this.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How can I select the greater of two properties in python and send the result to a driver?
I am using the method shown in this question to select the size of a text object and drive the size of that object, however I have two text objects in my scene that should be the same size. Is there a way to select the greater of the two and drive both drivers by that value. Is this possible?

An update on script from my answer in linked question Any idea how to fit text width to screen
If scene.match_font_width is True it will resize all text in scene to match the one with greatest width.  I've put in both an update method on scene.match_font_width and a scene_update handler to make it "live" in the interface.  For most applications, I would imagine, the handler is "overkill", as you can just toggle the switch.
Using a driver approach here could result in the dreaded cyclic redundancy check, as the width of t2 is set to t1 (if bigger) that is checking to see if its bigger than t2.
import bpy
from bpy.props import BoolProperty

def set_width(scene):
    if not scene.match_font_width:
        return None

    text_objs = [o for o in scene.objects if o.type == 'FONT']
    max_width = max([o.dimensions.x for o in text_objs])
    for o in text_objs:
        o.dimensions.x = max_width
        o.scale.y = o.scale.x

    return None

def setwidth(self, context):
    return set_width(self)

bpy.types.Scene.match_font_width = BoolProperty(default=False, update=setwidth)
bpy.app.handlers.scene_update_post.clear()
bpy.app.handlers.scene_update_post.append(set_width)

if True:
    def match_textwidth(self, context):
        self.layout.prop(context.scene, "match_font_width", toggle=True)

    # for unregister method, hit F8 to clear by reloading scripts.
    #bpy.types.DATA_PT_font.remove(match_textwidth)

    bpy.types.DATA_PT_font.append(match_textwidth)

If there are some text's you want to resize and others you want left untouched, adding a custom prop to the ones to resize would be one solution
text_objs = [o for o in scene.objects
             if o.type == 'FONT'
             and "prop" in o.keys()]

Ternary ops
duplicate: Is it possible to put an if statement into the scripted expression of a driver?
var if var > x else y
Of course you need two driver and one value

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Array modifier with rotation value?
Is it possible to create a turret like mesh like this using the bottom mesh and an array modifier? I want to be able to easily change the height of the shown shingle siding pattern. What I am basically looking for is some way to offset the mesh in a similar way to an array modifier, but with a small rotation value.

This is similar to this question but has some differences. That question wasn't exactly what I wanted.

Not sure if I got your question right but I made some rings in the past and made a video on how I did this: https://www.youtube.com/watch?v=giiv3-7f4vM

The answer that you link to is a good solution, you can even use an object offset in two arrays to get the result you are after.
Start with one simple piece.

Add a solidify and array with object offset, rotate the empty to fit.

Add a second array also with object offset, move this empty up and rotate to offset the notches.

You can look at the sample blend here

That is not what I was looking for. I want to be able to apply one array and add some variations to the individual shingles in the future, and I can't using this method.

I found a solution that works for round objects. The base mesh will need to have an Array modifier and a curve modifier like so:

That just creates the mesh on the bottom, in order to make it repeat at that offset rotation, you need to add another Array modifier before the Curve modifier. Changing the Count will determine the height of the resulting mesh, I have it set to 5 for test purposes.

This makes the mesh able to be offset using the standard location offsets, and then it can be wrapped around into a circle with the Curve modifier.
Here is the result:


text:
Modelling Flat Surfaces and Wall Corners With Megascans Textures
I am new at 3d environment modelling. I am using Megascans for textures. I have a problem with modelling corners of building and variation on flat surfaces. How can ı add geometry over texture?
Examples of what I want to do:

Are you referring to the texture displacement/height texture?

No. They are not displaced geometry. They are modelled over 2d texture I think. They have less triss than displaced surfaces.

Are you looking for an automated way to get low poly geometry to add 3D detail to a textured object? If not, the answer would be the same as how to make any other textured object.

Yes. I am looking for how to add detail to a textured object.

@Ytwenty  Manually?

Manually or automatic, it doesn't matter how. I cant find any tutorial and breakdown about that.


text:
modeling a stadium and import it to PES 2017
one day my client told me to model a stadium for the game PES 2017.I used some references to do my best but the client cannot answer my questions like:1)how to put grass on soccer field(i dont know actually if I use particle system it works correctly in the game or not)another question is applying transform and scale of the model for the game.should I place the model in 0,0,0 and the scale in 1,1,1?last one is creating CPK format to be accepted in the game.I don't know how to create such these with models and textures?I hope there is someone to give me a hand or advice.
thanks(btw I work with blender).

Hello :). Please keep it one specific question per post. You're welcome to post as many separate questions as you need.

Doesn't really sound like a question for BSE since it's really more about PES. Maybe you should ask a modding community.


text:
Is it possible to rotate and move a face in one simultaneous motion?
I'm somewhat new to blender, and I've asked Google in every possible way to find an answer to this, but I'm stuck.  My intention is to design a simple cable clip to 3D print.  The cylinders represent the cables and are only there as reference.  I'm trying to "wrap" the flat piece around them, using proportional editing to get a nice curve.  I want to be able to both move and rotate that plane around and over, but I can only seem to do either one or the other, never both simultaneously.
It's extra frustrating because I also do sculpting in VR, and it's so simple to just grab the one end, and move it where I want while simply rotating my hand, all in one motion.  I'm about ready to just go do it in VR, because it would take a few short minutes, while I've been here for almost an hour in Blender trying to figure this out.  But it just seems like something that I should be able to do, and I'd like to know how for future reference as I plan on doing a lot more design in Blender for 3D printing in the future.
I'm guessing there's some kind of modifier I can use, but I was hoping to just be able to hit a key on the keyboard or roll my mouse wheel so I can perform both different actions at once.  I've attached an image that will hopefully give you an idea of what I'm struggling with.  Any help is greatly appreciated!

Have you considered a different workflow, like using a curve to define the shape and then letting Blender generate the rectangles?

maybe? https://blender.stackexchange.com/questions/137554/how-to-create-reeling-spool-effect  and https://blender.stackexchange.com/questions/50396/how-can-i-animate-a-mesh-moving-in-a-spiral-fashion

The bend tool might help, though I don't know how to run it.

I strongly recommend user253751 suggestion. You should build this with a curve instead. You can do this in many different ways, but probably the best for you is using the curve's own extrusion properties. here is a little info on how to make curves 3D, but there's more in the curve editing chapter as a whole, which I recommend reading from beginning to end. Hope this helps!

Yeah, I never knew about the curve tool.  Just getting started with it now, watching some youtube videos, but I'll definitely look at those links now that you've shared them.  I have experience with vectors in Illustrator, but they're not behaving quite the same.  They're not even behaving the way they do in the videos, so I'm missing something.  Back to the drawing board!  I'll get back to you all once I wrap my head around the curves.

Ok, so I'm starting to try working with curves, I've got the general idea down, but for some reason, instead of my shape uniformly curving around the curve I've made, it stays aligned in its specific position.  What I mean is, when the curve makes a 180 and goes back towards where it starts, the mesh "folds" instead of curves.  I'm hoping there's a simple checkbox to change this?  But I don't know where it is in the object data menu.
here's an image of what it's doing

Ouch, yeah, that looks bad. Okay, lets see. How are you deforming the mesh? what modifier are you using?

Curves can actually generate their own geometry without a mesh. Check that out in the curve data tab in the properties editor.

Not sure I'm fully understanding what you're asking.  I'm not using any mesh.  The shape being conformed was nothing more than a simple rectangular plane.  From that perspective, the way it's shaded, it looks rounded.  But it's perfectly rectancular from another angle.

I've looked into what the curve generates on its own in the beveling section.  It's just too beveled for me though, I'd prefer something more square.  It's too bad there aren't multiple options.
You've set me on the right path though.  I think I'm going to look more into making curves as the corners of what I want, then just exruding out from there.  So instead of a mesh following a curve, I'll use multipe curves to create the skeleton of the shape.  Still feels like a lot more steps than what I thought I would need, but I'm coming at it from a more analog angle because of my VR sculpting

I appreciate your help!

A) A mercedes is a car, and the plane thing is a mesh :D B) I wanted that too, thankfully there's a much simpler answer. Check out the Solidify modifier: it works on curves :D

Tried the solidify, nothing seemed to happen.  But I took a different approach to the curves today, and it worked out.  Turns out, there's a weird quirk with Bezier curves that I didn't see in any videos or documentation (though admittedly that was a skim).  The curve always started out way too big for what I needed, and shaped along the wrong axis I was working on.  So I used the rotate, scale, and move tools for the entire curve to "rough it in" before I started working with it.  Turns out, that warps the final result out of shape.  Oops.

Once I realized that, I started from scratch, and quite quickly got the result I was looking for, just using a single bezier curve, and a plane as a curve to create the box shape.  I'll definitely be using this method a lot in the future, so thanks again for the suggestion!
Here's a link to a photo of my current result.  I'll still tweak it a bit more to polish it for printing, but essentially this is exactly what I wanted!


text:
Is it possible to push an object when I touch it by moving another object in Object Mode?
I have created 2 cubes and I want to know how to consider each cube, in Object Mode, as a real solid (without gravity) and so:

when I move one cube to another cube this second cube moves too when the first cube touch one of its faces.
and this second cube stop to move as soon as the first object no longer touches the second object.

Thank you very much @Bruno .

Here a solution using RigidBodies:

add a ground (large cube), make it a passive ridig body
add rigidbody to the two other cubes sitting on the ground, check the "Rigidbody/Animated" box for the 1st cube
hit space to play the animation then move the first cube toward the second. Collisions should happen...

Thank you @Bruno ! ---  But I also want a to be able to work in the Object Mode without to play animation ! ---- Is it possible  ? ---  Perhaps with an addon or a code ?


text:
How to make a race track join to terrain
I'm making a racing game. I am able to make a track with kerbs easily:

I can create this road with an array and curve modifer, however I'm struggling to join it flush with/add surrounding terrain so my car doesn't just drive off the edge. I dont just want the road to be perfectly flat, I want there to be hills and terrain etc.
I have tried just filling in the gaps but that takes ages and I cant do it in a nice way. I also tried cutting a track sized hole in a plane with boolean, but I cant get it to work. Any help or methods to do this would be great!

Possible duplicate of Create a road along large terrain

I noticed the possible duplicate but decided to answer this because it seemed sufficiently different to have a pre-constructed road you want to fit to terrain. My answer ends up being a bit different than the answer to that question, and I think there are lots of valid cases where you might have a road that's been generated by means other than a curve that can be shrinkwrapped.

You can do this using the shrinkwrap modifier. Add a Shrinkwrap modifier to your road, set it to Project mode, limiting the axis to Z and checking Negative under Direction. You will need some offset to keep the road from overlapping with the terrain. There will be a gap that can be filled by extruding the entire road downward on the Z axis or using the Solidify modifier if you want to do it non-destructively.

While doing this I noticed that with any kind of steep terrain the road looks weird because it's ungraded, following the terrain too closely. If this is a problem you can shrinkwrap the road to a smoothed copy before solidifying it. Create a copy of the terrain, add a Smooth modifier, limit it to the Z axis, set the intensity to about .5 and the iterations to around 20. Play with these settings until you get something that looks right in your case.

My example graded road has to stick out the ground to avoid overlapping with the terrain and it's a little taller than I'd like. To get it any closer the underlying terrain has to be smoothed where the road will be. To do this, manually select the vertices under the road using circle select, assign them to a vertex group, add a smooth modifier to the actual terrain and set it's vertex group to one you created. You can use similar settings to the ones above. Now the graded road can be moved further down. In some cases we won't need a second terrain and can just shrinkwrap to the partially smoothed terrain, but by using both we get fine control over how the road and terrain meet each other.


text:
How to check if optional function parameter is set
I want to append some code to the bpy.app.handlers.render_post operator.
But I need to know whether the bpy.ops.render.render() operator has been called with the animation parameter (/argument?) set to True or False.
import bpy

def mRenderOutput(scene):
    print(getattr(bpy.ops.render.render, "animation"))
    #something like: if bpy.ops.render.render.animation == True: do my code

def register():
    bpy.app.handlers.render_post.append(mRenderOutput)

def unregister():
    bpy.app.handlers.render_post.remove(mRenderOutput)

if __name__ == "__main__":
    register()

Unfortunately, this throws:

Traceback (most recent call last):   File
  "C:\Users\morph3us\Desktop\mRenderOutput\mSaveRender001.blend\Text.004",
  line 4, in mRenderOutput AttributeError: 'BPyOpsSubModOp' object has
  no attribute 'animation'

So my question:
How can I detect in an if clause inside of "mRenderOutput" whether a still image or an animation has been rendered?

bpy.ops.foo.bar is not an instance of nor the operator class. Have a look at context.active_operator or in the window managers operators collection.

Thanks for the pointer! I do not fully understand what you are saying, although I have been trying to figure it out for the past 3 hours, but I hope I will eventually get behind it!

Sorry bum steer the render operator isn't added to wm's operators collection.  Once apon a time could get all operator classes from bpy.types, appears no longer the case.  One way is to look at the other render handlers. More than one render between render init and complete suggests animation. https://blender.stackexchange.com/a/62870/15543

I would like to automatically save still images and rename the output
(e.g. scene = scene name, cam = cam name, etc.)
There are 3 different cases:

Still Image
Animation - Output as movie file
Animation - Output as image sequence
I couldnt just check the output file type because of case 3.
I couldnt check the timeline length, too, one could also render one still frame from an animation.
Also, first rendering an image sequence and renaming when finished is bad, as they wouldnt be renamed at all if the PC gets stuck somewhere in between.
But thanks for the suggestion!

Another is to create your own render operator that  calls the old one.

Oh and "somewhere between init and complete" could also be the second.


text:
duplicating a surface and making it a child node
I would like to copy a surface from a rounded cube and make it a child node of the rounded cube. This image depicts what I mean.

The black square represents the surface that I want to duplicate and add to the cube as a child node. I'm really new to Blender and I appreciate any help I get.

Duplicate, separate and parent
To get the surface you'll have to duplicate the faces.

Enable Edit Mode, select the faces you need, duplicate them by pressing shift+d.
Your new faces shall now be selected, but they still belong to the cube object.
To separate them press p while the faces are still selected. Choose "Separate" in the pop up menu to tell blender that you want to put those faces in a different object with "selection" criteria.
Now that you have two diffeent object you can parent with hierarchy.

okay that worked great. Where to I set the node hierarchy?

See the second paragraph (start from "The 3D view"..) of this related answer


text:
Game Engine Texture errors
Hi I have a similar problem with texture as other Blender user BUT the difference is that all the solutions posted here on the website(blender beta) are not solving my issue..
(Picture 1)  I build a game in Blender (** built & Works in Blender 2.57 only)** and textures were displaying at first but since 2015 January the engine started to behave strange..
(Picture 2) Each time I load the Game this message pops up "Texface Conversion problem (see error in console)"
(Picture 3) Even after trying the solution you posted... the Game still looks Black in Texture Mode and Total white in Game mode (after presing P)
In the MULTEXTURE Mode the textures appear...see picture below
(Picture 4)
**Lastly.. I only use BLender 2.57 because Latest Versions give me more ERRORS* for example Animations stop working during GAME RUN time*

How can I upload my Game Blend file...? cant find or see uploading link on the site....

Uploading blend files - http://meta.blender.stackexchange.com/questions/658/including-a-blend-file

This is the Game Link :  http://www.filedropper.com/mysticalgamematerial3

" Hi I have a similar problem with texture as other Blender user" which other user? Also, what problem?

@KhayaKunene is there a specific reason you can't upgrade to 2.74? this may be a bug that was fixed since you're problem started. "Texface Conversion problem (see error in console)" tells me this is probably the case.

Ola Radish..I use & download the latest blender version all the time, for example all my 3d animation, modelling are done on the new blender version(2.74)....but the game give me ERRORS..., the game animation in blender 2.6 or 2.7  does not play fully...it stops responding & get corrupted. (Textures & animation get corrupted in 2.6/2.7). Pls download the GAME from the LINK...u will see what I mean.


text:
How to set glow in text object, with python?
So, I want to make my text glows. Using python. Until now, I've scripted this, after reading some tutorials:
import bpy
def create():
    bpy.ops.object.text_add(location=(0, 0, 0))
    text_obj = bpy.context.object
    #'glow'
    scene = bpy.context.scene
    scene.world.light_settings.use_indirect_light = True
    scene.world.light_settings.gather_method = 'APPROXIMATE'
    scene.world.light_settings.passes = 2

    mat = makeMaterial("font", (1,1,1), 1.8)
    text_obj.active_material = mat

def makeMaterial(name, color, emit):
    mat = bpy.data.materials.new(name)
    mat.diffuse_color = color
    mat.diffuse_shader = 'LAMBERT'
    mat.diffuse_intensity = 1.0
    mat.specular_color = color
    mat.specular_shader = 'COOKTORR'
    mat.specular_intensity = 0
    mat.use_transparency = True
    #mat.raytrace_transparency.fresnel = 2
    #mat.alpha = transp
    mat.emit = emit
    return mat

if __name__ == "__main__":
    create()

Why this isn't working good?
Tks

this script  is for blender internal and you should : - add import bpy  - fix the return mat identation - add a call at the end create() and it should work

Srry, I've edited. I'm using this already... I think the error is in part of code I've wrote, so I don't put this other part :)

if you mean that the text is not emit enough light then this is not a script problem but a material setting that you should figure out from the UI then you can attempt to set them up through python ( this script creates a text object and give it an emission mat )

The way you setup the scene, the glow is only noticeable if you have another object. It will not cause the 'air' around the text to glow.
Below is my test render when I run your script with a plane. I this what you want?

If you want the air around the text to glow, approximate ambient occlusion cannot give you that. You'll need to use the compositor.


text:
Recorded Animation appearing as Recorded, but not moving when animating?
Today, I recorded animation and it is showing up in the bottom bar but when I animate it two of the shapes I animated aren't even appearing b/c the animation ends with them off screen. But it starts with them on, so I don't know... Also the shapes that are there on camera won't move... Please Help
Here is the screen when editing

Here is the screen when animating

Is this the same animation i helped you with before? To render it you need to press the Animate button in the Render tab, not F12.

A different animation same shapes, and I have been pressing animate

Oh, and also, the internal blender viewer to my understanding, does not play vidoes, and thus you must go to where you saved it and play it from there using whatever software you have for playing videos.

I tried that even the video that it exported doesn't show the movement

Here is the .blend on blend exchange

Your starting point for the animation is around 60, nothing happens from 60 to the end, when i set it to 0 i see the objects fall, i am now rendering this, and so far it appears to be working.

At the near bottom of your screen set the beginning keyframe to 0. Play the animation and then set it back to 63.
Another way is just set the current keyframe to 0 and hold down right arrow until it's at the keyframe you want it to stop the animation at. This is because of the way rigidbody animations work, it has to play at least once to record the motion it will take, you could say.

In shading view, in the upper right there are three circle tabs: camera, hand and magnify. Click the camera. I had the same issue and that worked for me.


text:
Split a plane into smaller plane objects
I just started using Blender and I'm trying to cut a plane in equal squares and have each square be its own separate object. My main goal is create the plane and add a displace and decimate modifier to create a low poly terrain. By cutting the plane in equal squares I'll be able to tile them in a 3D maze game I'm working on. If anyone know a better way to approach this it would also be greatly appreciated.

Manual and slow approach

Select the object and go into edit mode, using Tab
Subdivide the plane into any number of smaller faces using W -> S repeatedly
Click face select  or do Ctrl + Tab -> F
Proceed to select each face in the plane, the press P + Enter to split the plane into separate objects

UPDATE: Automatic and fast approach
Instead of having to go through each face manually, you can do everything in one sweep like this:

Instead of starting with a plane, create a Grid object with Shift + A -> M -> G. Then go into edit mode, using Tab.
Select all faces with A and do Ctrl + E -> D (edge split). Now all of your faces are disconnected.
Select all faces with A and do P -> L. This separated all the faces by loose parts, into separate objects.

Thank you, this exactly what I was looking for. Sometimes It's the simplest things sometimes that hold us back.

Glad I could help! Please accept my answer if you found it useful. I was in your position a year ago and what made the biggest difference for me was getting familiar with the hotkeys. For every hour you spend studying the program I swear you save yourself 10 hours of wasting time figuring stuff out. I would recommend Blender Guru's cheat sheet to begin with, it has a lot of essentials that will get you far.

I couldn't agree more. This is only my third day using any 3D modeling program. I have already taken all the Lynda.com tutorials and a bunch of youtube tutorials. Thanks for the Blender Guru's cheat sheet recommendation.

I updated the answer to solve the problem in one step without having to go through each face manually!

@Chebhou Thanks, I updated the answer to reflect your suggestion.

@ poor @UlfAslak Wow much faster, but now I ran into another problem. After I applied the Decimate and Displace modifiers, to get that low poly look, and after I followed your steps, it seemed to remove the low poly. Is there a work around to this?

@poor @ UlfAslak Here's what I mean by removing the low poly look after the separation. Before and After

Even though I understand what you mean, I'm not quite sure how you get "that low poly look", so I can't reproduce the steps and come up with a solution for you, BUT my best guess is that you have forgotten to apply the modifiers before you go through my steps.

You're right, I didn't apply the modifiers. If I hit apply I won't be able to separate in even squares. Does that make sense?

Yes that makes sense. You want the resulting objects to contain two triangle faces, and be sort of "bent" squares? In this case you should apply the modifiers, and then manually select the edges that you want to split on and then edge split them, but that kind of beats the purpose of this neat approach.

Okay, so the only way I can seem to get this to work is after applying the decimate and displace multipliers is to use the knife tool to cut squares. Then following your steps to edge split and separate by loose parts. I only have one question, is it possible to snap the knife to the grid?

A user over at r/blenderhelp made this little video showing his method of slicing up the mesh without changing the topology after you apple the decimate modifier.

To subdivide the plane :

select the plane and switch to edit mode .
Press W  then click Subdivide .
You can number of cuts in the tools panel .

Yes, I already did that. I have also used the displace and decimate modifiers to create the look I'm going for. My question is now, how do I cut that plane into a bunch of small squares and have each square be its own object. Is that even possible? I would need to save each square individually as well.

Yes . You can select all faces you want to seperate and press P > Selection. The amount of time it takes is depended on what you have

Ah, I see. Thank you, this has helped me a lot.


text:
How to use KX_CharacterWrapper.walkDirection
I want to make a character, which would move, and I want to use character physics and python for easyer controll. I know you get the character wrapper with wraper = bge.constraints.getCharacter(own) Then I want to make it move, but I can't figure out how walkDirection works. I did it like so:
import bge

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

wraper = bge.constraints.getCharacter(own)
direction = (0, 1, 0)
wraper.walkDirection(direction)

But whnever I press the key and run the code I get an error: 'Vector' object not callable
I can't find any examples of how that's done on the intrnet, and I tryed changing the code many times.
Please, can someone tell me how it's done?
Thanks.

The wraper.walkDirection is a property of type Vector and not a function so you should do an assignment :
wraper.walkDirection = direction

to move in the local space orientation multiply the direction vector by the orientation matrix of the object :
direction = own.orientation*Vector((0, 0.1, 0))

you should include the Vector type by adding this line :
from mathutils import Vector

Thanks a lot. It works now. But is it possible to make the character move according to local rotation of the object (just like with applyMovement(x, y, z), Local)

@RokiPodpecan Updated the answer to include this

@RokiPodpecan thanks , I have added that : )


text:
Blender Smoke Domain Cube casts a shadow
This is what I see when I try to render smoke.

The smoke itself renders okay, but there is a problem that the domain cube itself casts a shadow. How do I solve this?
material of the domain object :

Can we see the material settings for your domain object?

Here. Sorry for the accidental tooltips.

Enable Shadow > Receive Transparent in the ground plane's material:

This is easy: in the material panel for the domain, disable "traceable".
Edit: This works if you don't want any shadow at all. If you want to still have the shadow from the smoke, refer to gandalf3's answer.


text:
Assigning Different names to a text box?
I am trying to make a custom panel with two text box which will be assigned to two different lists. However in my panel tool bar, whenever i change one text box, that other automatically changes. I know this is because I am calling both text boxes to "my_string_prop", but everytime i change that name, the text box disappears. Additionally, are the word in the parenthesis key words and if show does anyone know where i can will the list for them.

import bpy

class LayoutDemoPanel(bpy.types.Panel):
    """Creates a Panel in the scene context of the properties editor"""
    bl_label = "Layout Demo"
    bl_idname = "SCENE_PT_layout"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    #bl_context = "scene"

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

        scene = context.scene

        row = layout.row()
        row.label(text="X-Points:")
        row = layout.row()
        row.prop(context.scene, "my_string_prop")
        list1 = [context.scene.my_string_prop]
        print (list1)

        row = layout.row()
        row.label(text="Y-Points:")
        row = layout.row()
        row.prop(context.scene, "my_string_prop" )
        list2 = [context.scene.my_string_prop]
        print(list2)

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

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

if __name__ == "__main__":
    register()

As both items refer to the property my_string_prop they will show the same data. The name of the property used has to exist, if you change the name and it doesn't exist it will not draw the textbox.
To add new properties to the scene object you should add the property in your register function.
bpy.types.Scene.my_string_prop2 = bpy.props.StringProperty(name="String2")

To get a list of items you can use prop_search
row.prop_search(context.scene, "my_string_prop2", bpy.data, "objects")

That will show a list of object names to choose from.


text:
Is it possible to blur an Input value in the Cycles material node editor?
I saw this question on how to blur an image texture, but how can I blur a defined input like a Fresnel input? When you set the Fresnel node to a value less than 1, it becomes sharp. However the color distribution is ideal for what I want. I just can't figure out how to adjust or even add a blur to that output.

I also could see this being very useful for other inputs, like the Wireframe node. You can get the wireframe lines very easily, however the transition has no way to be controlled currently.

AFAIK this isn't really possible. The accepted answer to the other question works by tweaking the mapping coordinates (if you zoom in you'll be able to see a noise pattern). But not sure how that would apply to a fresnel node.. Can I ask what you want to do this for?

Specifically for a custom cartoon shader, but I run across this issue quite frequently.

Unfortunately you can't. The answer you linked works by adjusting the mapping coordinates, but this isn't possible with the fresnel node.

Perhaps if we knew more about what kind of effect you were trying to get we could think of an alternate approach..


text:
How do I add a specific number of loop cuts?
I know you can add a loop cut using Ctrl+R, but I want to know how to specify how many to add, i.e. add 15 loop cuts to a plane. I know you can manually use the scroll wheel to get this number, however this can be quite tedious.
Related: Increase number of Loop Cuts - Apple Magic Mouse

You can do this simply by typing the desired number (1 then 5) after pressing Ctrl+R and before left-clicking to complete the operation.

authors: Кристина Водорезова


text:
How can I align a text object to curve without deformation?
Is there a way to make text follow the contours of a curve without distorting the individual characters? When I use curve deform modifiers, then I get very oddly stretched text, often making it unreadable.
I have already checked these questions, they don't help:

Array Modifier deforming mesh
Why is the curve modifier deforming strangely?

You can use the text on curve settings in the text panel.

The behavior of this setting requires practice.  Note the curve is in the XY plane, but the text is positioned in the ZX Plane.

Wow! How could one miss that? It is so obvious now :P Thanks!


text:
Is it possible to snap objects to faces in the Blender Game Engine?
I recently have been experimenting with X-27's excellent answer on how to place objects dynamically in the BGE. I have been trying to figure out how to do the same thing, only make it possible to snap the next block to previously added ones as well as the ground. Is there a simple way to do this? And if not, what sorts of workarounds/complex solutions are there?

do you want a snapping system to place cubes along a 3D grid or other cubes, or objects on any face?

@X-27 On any face of a cube.

Starting with the rig that is in this answer, Making a grid snapping system is actually very simple.
First, select the ground plane and scale it to be relatively small.
Replace the script on the ground plane to this
from bge import logic

def main():
    scene = logic.getCurrentScene()
    cont = logic.getCurrentController()
    own = cont.owner

    mouse_over = cont.sensors["Mouse_Over"]

    if mouse_over.positive:
        tracker = scene.objects["Tracker"]
        tracker.worldPosition = own.worldPosition
        tracker.worldPosition.z += 1

You need to also use this logic setup on your plane

Now, when the mouse is over that plane, it will move our arrow to the world position of the plane.

However, this is not much of a grid - yet.
First we should move the plane to one corner. Your current setup should look like this.

To create the grid, we can use the array modifier on the ground plane.

Enter edit mode by pressing tab

With all of the faces selected, we can press p Note that we must be In edit mode, if we were in object mode, this would start the game engine.
Select separate by loose parts
We now have all of the planes now as different objects. If we press play we can see how it will work so far.

For some reason it is not working. Good thing is that I'm writing this answer and I happen to know why it isn't working. (This is really easy to fix :-)

Our problem is that all of the origins are in the same place. The system actually Is working, but quite simply, the world positions of all the objects are in the exact same location so there will be no noticeable change.
However, with all (most) problems, there is a solution. Select all of the grid objects, and press Ctrl+Shift+Alt+C  This will allow you to change the origins of all the grid objects.

You could select Origin to Center of Mass or Origin to Geometry
Since they are infinity square planes there is no difference.

Now, Each grid section has it's origin centered over itself, so when it snaps the arrow to it's origin, it will work like a grid snapping system Translation: everything works and everyone is happy

Now we have a basic grid snapping system.

The basic idea for making a world building system is being able to stack cubes and place them next to each other. This is not Very hard to do, we only need to add the Boolean property Ground to the cube that is being added (Building), and we also need that cube (still named Building) to be running the script.

There are a few more minor adjustments we need to make to the grid objects.
First, because our cubes are 2x2x2  the grid planes should all also be 2x2 . Also, If two cubes are stacked, there is a space of Two  between their origins. we must adjust the script.

Also, because the cubes are being added Two  above the plane, we need to move the origins down one unit.
The end result can be seen working awesomely.

Working blend with world building system.

Works great, but I wanted to snap to the previously added objects as well. How hard is that?

so you want a minecraft type building system? (that is relatively easy)
add the Ground property to the cubes that you are adding, and also have them running the grid placement script. You can also adjust the size of the grid to be the same size as the cubes.

Sort of, I want to be able to build buildings adjacent to or on top of each other

I'll edit the answer with a new gif.


text:
how to ad a panel in the properties/data Speaker specific
I can't find anywhere how can i add the panel of an operator in the Speaker properties data tab only.
it appears in all other objects data tab and i can't find a context list

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

Thank you.

Add a poll method.
To narrow it down could look to see if context object is of type 'SPEAKER' or since it is in the properties space, there is a speaker context member available when the object is not a  speaker it will be none.
class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "data"

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

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

        obj = context.object

        row = layout.row()
        row.label(text="Hello world!", icon='WORLD_DATA')

I hope this is Python, because I'm a beginner learning it. Thanks for sharing.


text:
Cloth parameters database, library or add-on
I would like to be able to simulate as realistically as posible different cloth materials.
I searched for a library or a database that contains the physics parameters of several cloths without success. I only could find materials and textures, without cloth sim parameters.
Any idea if something like this exist? I'm aware of the presets existing built-in in blender, but would be great if a more extensive list exist.


text:
Shadow issues on rotation
I have a rotating in a blender file with a single plane as ground. The object rotates find and the shadow is casted correctly onto the plane, but the shadows of the rotating object itself do something very annoying: they kind of "snap", it doesn't look natural.
It's also on only some places on the object that this happens, on all the other parts it does look natural and normal. I'll upload a short animation here to show the issue.
You can see that when the object rotates, most parts cast their shadow normal but this one part is very obviously "snappy":

I'm using the cycles engine, 60fps, 128 samples and no denoiser (not yet final product). Changing the framerate did not solve the issue, at 120 fps (way to much for my goal) this was still issue was still present.
Also changing the sample count did not really help, but there was visible difference. But once I go over 128 samples it seems to not change the effect anymore, it stays like in the gif no matter how high I put the sample count.
Is this a known issue and is there a way to solve it? I really don't know what I can do more to avoid this.
I've also changed the light source and resized it etc etc, it does change the issue but the snapping stays, it's just a bit shorter or a bit later but it still snaps, no matter what I do.

This is strange.. could you share the file on https://blend-exchange.giantcowfilms.com/ ?

I will add it to this questions once I can. The current blend file is one I cannot share unfortunately but I will recreate the issue and upload that .blend.

Is this object pretty low poly count?  Is this illuminated by a point light?

@AllenSimpson yes and yes.

I'm having trouble replicating it but my suspicion is a topological problem and/or maybe an individual face is set to a different shading mode.  Are you using shade smooth or autosmooth?

@AllenSimpson The mesh is made out of (previously) seperated and then joined meshes, when they were all joined I applied subsurface and shade smooth;

I had, and corrected a nearly identical issue moments ago. The problem was that I had overlooked marking one edge of my low poly model as sharp, causing it to render correctly from most angles but the shadows to snap when tweening under lighting.
Hope this helps.


text:
set one mesh as constraint for another
I'm trying to make an animated model of the lungs breathing naturally. I have two separately meshes and I want to merge them together in a single model.
The first model is the lung surface (the ribcage) with the external motion animation. It dilates and contracts when breathing. The frames were created using shrinkwrap shapekeys.

The second model are the airways and blood vessels with the internal motion animation. The frames were created using an armature that deforms these internal structures. However, this movement does not consider the external motion from the ribcage, which leads to strange behavior near where the lung surface would be.
My question is, is there a fast way to use the first model (the lung surface) as a constraint for the second model? For example, in places near the surface, the mesh from the second model would follow the surface and deforms instead of following the internal motion pattern.
*EDIT Thanks for the replies. I don't think I was very clear about the problem, I have close to zero expertise with blender so I'm quite lost with the tools availiable. I will be adding some information and an image to get a better idea of what I'm trying to do. I will try the shrinkmap method meanwhile.
Initially I had only the second model (the one with the airways and the blood vessels). The motion pattern (and deformation) is calculated using a 3rd party software, creating the armature for the airways (in cyan in the image). While near the airways the blood vessels (the colored objects) are fine, at the endpoints I must consider the lung surface movement, more than the motion pattern from the armature. As it is the endpoints behaves incorrect, even piercing the rib cage at some locations.
What I was trying to do was creating an animation of the rib cage moving, and then merging this rib cage model with my armature, adding new constraints to it. Is it possible to combine these two somehow? I thought about using hooks but it would take quite a long time to do manually, since I would have to fix every endpoint of the blood vessels to a correspondent location at the rib cage model. Also, I'm using real CT data so the way the 3rd party software calculates the armature unfortunately cannot be changed

I feel like I'm missing something here.  What is preventing having your two models share the same armature?

I'm not sure on the specifics of your setup, but you can use Mesh Deform as a way to deform both meshes at once. If you bind with the same cage with the same precision, both meshes will deform equally when the cage is deformed with a shapekey or armature.

Kirbinator is on the right track. The "correct" way to do this is either to have them both in the same object, and deformed (animated) by the same armature, or to have two armatures that are both controlled by a third (you move one thing, and it moves both others).
You can just select both objects and press ctrlj to join them into one mesh, but that can be a little tricky. Experimenting with it wouldn't be hard.
Where you are now, though, it seems like the best solution would be a shrinkwrap modifier. You'll need to experiment with whether to shrinkwrap the lungs to the inside of the chest, or the chest to the outside of the lungs, but one of those should work.
The reason I mention this is that the shrinkwrap modifier has a setting for "Offset" which will shrinkwrap to a certain distance from the target, instead of to the target itself. So, for example, you could shrinkwrap the chest to the lungs, but with a 1cm gap.
IIRC, you said the lungs had the armature, in which case you'd want to shrinkwrap the chest to match the lungs. Either way, you'll want to shrinkwrap the one that is NOT rigged onto the one that is.
Hope that helps!


text:
I can't render past frame 35!
Whenever I render an animation I have downloaded and edited it wont render past frame 35. It stops, freezes on me then I have to open it back up again! But when I attempt to make my own, (thats why I download templates I cant animate...) It does... What is a possibility or the problem? I need this fixed ASAP! I'm making this for a client and I cant have a bad rep!

Is it possible you could upload a screenshot or .blend?

Perhaps an obvious thing to check, but always worth noting, did you check the end frame was not set to 35?

I did check the end frame... I've check as many stuff as I remembered... I even went to see if res could affect rendering...

and i dont know how to upload a screenshot. This is my first time having this big of a problem...

Can you edit your question to be more clear about what happens after frame 35? Do you get the same frame over and over? Do you get blank frames? Does rendering totally stop and not produce any more images?

...a bigger image would also be nice, if you can upload it. This resolution makes it difficult to read what any of your settings are.

is VSE a type of rendering engine? I cant find it! in blender 2.70

The VSE isn't so much an engine as it is Blender's Video Editor.  Also does this problem persist if you open the .blend on the latest version of Blender? (2.77a)

Didnt think of reinstalling on version 2.77 trying it now!

If Blender is freezing and crashing while you're rendering, then the animation is doing something that demands more resources than Blender is able to give it.
Without being able to see the file, it's really hard to guess. There are a number of things that might be going on at frame 35. At that point, there are some keyframes. These keyframes might be related to something very complex going on. There might be a whole lot of objects introduced into the scene at that point, which would increase the RAM requirement. There might be some kind of feature introduced at that point, that Cycles isn't able to handle.
It looks like this scene might be trying to use Animation Nodes, which aren't supported in 2.70.
Generic solutions are few and far between, but one of them is upgrade Blender to the latest release (the one on Blender.org, not from the nightly builds). Don't try to solve anything else until you've upgraded.
The next thing you need to do is find out what NEW thing the scene is trying to do at frame 35.

Look in the Visual Sequence Editor to see if there's a new effect or strip that starts at frame 35.
Look in the Graph Editor and/or Dope Sheet to see if there are any animations that start on frame 35.
Look in the Compositor to see if there are any nodes that have keyframes. Maybe there's a compositing thing that starts at frame 35.
Look in the Console (Windows -> Toggle System Console) to see if it's giving you any error information that might help.
Look in the Info panel (blue circle with an 'i'; it looks like it's just a menu bar, but drag its border to make it bigger) to see if there are any errors there that might help.

On an unrelated note, if you've gotta deliver this to a client, you don't have time to solve this problem. You've run into this problem already. It's likely that you'll run into more problems with the same file, even if you solve this one. You need to dump this file and go find another solution.

Nodes disapeared in new version of blender, but switching fixed it! My Desktop PC has enough RAM, but I guess it was adding something in it didnt have in 2.70


text:
Seperate mesh into multiple ones
I'm a developer that is doing a little mini VR game. I will buy all my assets since Im not a skilled artist. I bought a pistol on Unity Asset store.
Problem is the main mesh called G17 in the picture below contains both the Main body, the slide and the trigger, I need to seperate these 3 into 3 meshes. You can see that there are vertex vertex groups for Slide and trigger. Can I somehow use this to separate the mesh? I'm a complete noob at blender so please a step, by step, guide :D Thanks

update: Edit mode loooks like this, pressing ctrl+l does nothing as far as i can see

I cant understand how to do it using that answer, I need more detailed explanation

Your case differs from the linked answer only with vertex groups' presence. Choose appropriate vertex group from the list, press Select button which will select adjacent vertices. Now with selection you can separate it; to do that hover over 3D Viewport, press P and choose Selection as desribed, like in this example.

You can manually select the faces you want to separate (or entire continuous chunks with Ctrl+L) then break up the meshes by pressing P while still in Edit mode then choosing "Selected".

Your talking to a complete blender noob here, with edit mode you mean if i press, if  i press the drop down saying Object mode in the pic above I can only have that option in the drop down

please see update of question

How can i select only the Slide and trigger vertex group?


text:
Get the transform matrix for each frame

I'm new to scripting inside blender (two days). I have a camera folowing a path (a circle).
I have written the following code to get the location and rotation for each frame and write it to a file:
import bpy

transformMetrix=open('C:\\Users\\sunimalm\\Desktop\\transformMetrix.txt','w')

for f in range(bpy.context.scene.frame_start,bpy.context.scene.frame_end):
    for obj in bpy.context.selected_objects:
        transformMetrix.write('\n'+obj.name+'\n')
        transformMetrix.write('\n'+ str(f)+'\n')
        transformMetrix.write('Location : ' + str(obj.location.x) +' '+ str(obj.location.y) +' '+ str(obj.location.z) +'\n')
        transformMetrix.write('rotation : ' + str(obj.rotation_euler.x) +' '+str(obj.rotation_euler.y) +' '+str(obj.rotation_euler.z)+'\n')
        transformMetrix.write('scale : ' + str(int(obj.scale.x)) +' '+str(int(obj.scale.y))+' '+str(int(obj.scale.z)) +'\n')

transformMetrix.close()

When I play and run the script I only get the same rotation and location matrix for every frame.

What am I doing wrong here?
Then I tried to put above code inside a function and append it to a handler, but I still get the same output:
bpy.app.handlers.frame_change_post.append(function)

Looks like to me that you just iterate through the frames but don't ask where the object is in a certain frame, just where the object is (that will be frame 0 or 1 w/e)

Get the fcurves for the animation and use fcurve.evaluate() to get the values at a given frame.

You have to change the frame in your for-loop via Scene.frame_set():
bpy.context.scene.frame_set(f)

By the way, I would not use obj.location, rotation_euler etc. because they do not contain the final location, rotation and so on.
For example, parent your camera to an object, then rotate the object - the camera.rotation_euler will not change.
You should use obj.matrix_world instead (if you need it separated, decompose this matrix with to_location, to_euler etc.)

Note too the decompose method loc, rot, scale = obj.matrix_world.decompose()

Thank you for the answer. Adding bpy.context.scene.frame_set(f) for the initial code  didn't gave me the expected output. it was same as the result I posted. I think this is because of the issue mentioned here right? but setting the frame  bpy.context.scene.frame_set(f) and taking the transform metrix with  obj.matrix_world worked.


text:
How to model a curved book page?
I am a noob in blender. I want to create this non-symmetrical curve between the top curve of the page and the bottom curve of the page, but I couldn't find the way to make it.
Is there anyone want to tell me how to make it, or give me some easy tips and a tutorial?

Do you need to animate it?

Related https://blender.stackexchange.com/questions/55372/how-to-model-spread-book-interior

@RobinBetts no.. i just want to modeling a book for a mockup..

Quite nice result with Cloth Sim + Empty

Under Physics Properties Enable Cloth Simulation, Preset > Rubber > Vertex Mass decrease to 0.3 kg
Create two Vertex Groups, one for Pinning second to Hook Empty

Pinning - select left two line of vertices + right-down vertex, add a new group and assign. Select second line of vertices and lower weight to 0.5

Hook - for this vertex group select only right-down vertex, add a new vertex group and assign

Snap cursor to Selected (Shift+S), go to object mode and add Empty.
Select page and add Hook modifier above Cloth with Object > Empty, Vertex Group > Hook. As a last moodier add Subdivision (with border vertices selected press Shift+E+1 (Crease) to keep sharp edge shapes of page.

Tip: to affect curvature at book binding slide second edge more left or right or add one more edge loop ...

'Quite' nice?  That's 'quite' an understatement .. :D ..And 'quite' nicely presented, too .. !

@RobinBetts Ehm ... thanks :) "Quite" I mean - sometimes it lives by its life. You know cloth :) I didn't test it such deeply, so there can be a case ...

It's a great answer.:)

Effectively a really great answer (missed it before today). Thanks!

I'm having difficulty implementing this in Blender 3. The cloth wrinkles and stretches when animated. Does anyone have any updated suggestions on how to achieve this effect?

@Craig -Seems to be working fine in 3.x ... if you want more advice please create new Question with screen of your issue and share your simplified file https://blend-exchange.com to let us see your setup. Thank you

'Bendy Bones' are a good fit for this.
Start with a suitably sub-divided plane :

Create an armature (single bone) and position it along one edge :

In Edit mode (Tab) duplicate the bone and position on the opposite edge :

Change the armature Display to 'B-Bone' :

While still in Edit mode, select each bone in turn and change the Bone properties Bendy Bone Segments to a suitably high number for your mesh level of detail (eg, 10 - more segments make for a smoother bend) :

Now swap back to Object mode and parent the armature to the plane (select the plane, Shift-select the armature, Ctrl+P, Armature Deform with Automatic Weights).
Now, bending the bone (by changing the Curve XY Offsets) will bend the page.


text:
How can I globally disable specific ray visibility settings on multiple objects at once?
I have a little scene and wanted to check the differences in render times and visuals by changing some of these cycles settings:

However, the scene consists out of many objects and it would take a long time to manually modify them all. Is there a way to do this with a few less clicks?

If you are able to select all the objects you want to change a property for (adding them to a group can help with that), you can hold Alt while clicking a property to change that property on all the selected objects.

Thanks for this from 6 years in the future. Been using Blender for a decade, and I did not know you could do this until today. What a time-saver!


text:
How do I get an object to stretch between two animated objects?
I want to animate this LEGO x-wing closing its wings, and have managed to rig up bones to control the wings so they close on the correct rotation, but it has this elastic band on the back that needs to be on those two black pieces and stretch between them when the wings open and close. How to I do that?
I'm thinking weight painting is involved? Do I make a bone on each black piece?
I'm only new to blender only this year so please explain as basic level as possible please! Many thanks in advance!

use shape keys, either animate directly or link with stretch to bone to automate ... any detail required let me know, ill answer below.

I can suggest two options:

if you want to use it in 3d engines (with only bones animation), you can use two bone system:

One bone at one black thing and weight paint it (gradient) to the parallel part of the rubber mesh.
Second bone at the other black part
attach "track to" modifier to the first bone with target as second bone.

Make a "Shape Key" of the rubber with stretched pose, and move and rotate as required. You can also use both (1 & 2) for easy animation and right mesh deformation.

Thanks, I would like to try 1, then 2 after. I have added a bone to each black piece but what do you mean by "weight paint it (gradient) to the parallel part of the rubber mesh."? Do you mean weight paint the black piece or the rubber band? Can you tell me the steps? Thank you!

weight paint the rubber, weight 1.0 (red) the nearest and zero (blue) the last. weight paint the rubber for the bone.

Figured it out. Thanks for the help @user105387.
1) add one bone at each of the four black pieces. (snap your cursor to the active element then add armature to be exact)
2) select the rubber band and also select the upper bone. Go into pose mode, parent the rubber band to the upper bone with automatic weights. when you move the upper bone in pose mode the rubber band should move with it. when you move the lower bone the rubber band should move too.
3) parent the bone for each black piece to the corresponding bone you made on each wing. That will make the band bone move when you move the wing bone.
4) select a bone nearby, then the rubber band, go into weight paint mode and make sure the band is all blue for those bones so it's not influenced by any other bones than the ones on the black pieces.
5) you can now create a pose and if they're all parented correctly it should work.


text:
How can I change the size of the error message pop ups?
How can I change the size of the error message pop ups? At the moment as shown in the printscreen, I am not able to see the whole text of the message.

How do you call the popup? operator.report?

Is this a question about scripting, are you writing your own addon? Or is this about an issue with an existing addon you are using?

It is about an existing addon (Make Clothes). After modeling, when I press the Make Clothes button, that error message appears, but as you can see, not all of the message text is shown. So I wonder how I can manage to see all of it?


text:
Changing textures realtime in game engine
I am looking for a way to change the texture in the game engine.
I have managed to apply 4 textures and enable/disable them usong a python script. The textures change is working, but only becomes visible when the BGE stops.
It seems that textures are not reloaded in realtime.
How can I force update the texture in realtime ?

You're probably using functions from bpy? Don't use BPY in the game engine! Thankfully, bge.texture provides this functionality. Here's a code snippet that I use quite often:
def show_picture(obj, path, mat_id=0, tex_id=0):
    '''Loads a picture into a texture'''
    # The texture has to be stored in a place associated with other game data
    # so we store it in a game property. This name inlucdes the mat ID's and
    # tex ID's so that a single object with a complex setup does not have the
    # textures overwrite each other.
    # If a bge.texture object already exists for this object/mat_id/tex_id, then
    # we retrieve that.
    prop_name = 'SHOW_PICTURE{}:{}'.format(mat_id, tex_id)
    if prop_name not in obj:
        tex = bge.texture.Texture(obj, mat_id, tex_id)
        obj[prop_name] = tex
    else:
        tex = obj[prop_name]

    # Load the image from the path
    raw = bge.texture.ImageFFmpeg(os.path.join(path))

    # Check to see that it loaded
    if raw.status == bge.texture.SOURCE_ERROR:
        # Error in loading image
        raise ValueError("Unable to load image at {}".format(path))

    # Assign the new image to the texture and update the texture.
    tex.source = raw
    tex.refresh(True)

Pass in an object, a filepath and (optionally) the material slot and texture slot.
Now, this function reloads the image from disk every time you use it, and as a result it is quite slow - don't go calling it each frame. If you want to have something change picture rapidly, you need to keep it loaded in RAM and just point the plane's material at a bunch of different textures. This can be done by using the bind id. I don't have any nice code snippets for this, but maybe this line will help:
material = obj.meshes[0].materials[0]
material.textures[slot_id].bindCode = tex.bindId

where tex is some dynamic texture (ie a bge.texture.Texture object). You may be able to do:
material1.textures[slot_id].bindCode = material2.textures[slot_id].bindCode

But I have not tested that.

Hi, How does one find the material ID and texture ID?

Most objects have a single material, so most of the time you can leave it at zero. If not you can use: https://docs.blender.org/api/blender_python_api_2_78a_release/bge.texture.html#bge.texture.materialID
It seems you use the same function for finding materials. Normally I just hard-code the values because they match the location in the material and texture slots. (ie a texture in the first texture slot has ID zero).

Thanks, I was actually able to find it out:     tex_id = bge.texture.materialID(obj, 'filename.jpg')

You can use texture bind ID.
Once you have it, you can pass a image buffer into it I think.


text:
Mapping texture to repeat itself from a bigger map
I'm working on a model for Cities: Skyline. It is my very first model for a game, as a mod or as an asset for my own game.
My question is about the texture usage on meshes. As this wiki says, the limit of map sizes is 2048x2048 though it is set for very special structures such as stadiums.
I'm modeling Brazilian National Congress. So far I have this model, not finished and, as you can see, partially textured.

Then I faced a problem with texture size used at the access ramp. I've set a texture and used the UV map to set the correct position of it and size. By this way, I could set a way bigger size making the tiles to repeat themselves as shown in this image:

But I need to use another texture for windows at the taller buildings for example and if I map the the texture as I've done with the ramp, it wont repeat that small portion of texture but the blank space as well, as shown here:

My question is, how can I get a texture to repeat itself selecting just a portion of it from a bigger map? Is what I'm doing right?

The following page may help you with this.  http://blender.stackexchange.com/questions/24111/making-texture-atlas-for-only-some-part-of-objects/24112#24112

As everything will be packed onto just 1 texture, tiling would repeat the whole texture and this is unwanted. Nowadays engines don't have problems with polygons so if you want a part of that packed texture to repeat simply create the surface of many polygons each mapped to the same area on the packed image.
To utilize multiple tiling textures you would need support for multiple materials with multiple UV maps. Each section of model would then have different material with different UV map. Blender can do this but I have no clue about the format which you might use.

You suggest that I should have a 20 cubes of 1x1x1 mapped to the same area instead of a single cube of 20x1x1?

@FabianoAraujo A 20 quads joined together yes, each quad being a tile.

While I'm still curious, I'll continue modeling with that idea. Thank you.


text:
User Varialble input failure
I'm trying to enter dimensions of an object.  I'm using the code below.
It does not recognize the variables XX or YY and get the error: Key "XX" not found
Any clues??
import bpy
from bpy.props import FloatProperty
from bpy.props import IntProperty
from bpy.types import Operator
import os

#create variables
bpy.types.Scene.XX=FloatProperty(name="XX", default=10.0, description="Enter XX") #XX
XX = bpy.context.scene['XX']
#print (XX)

bpy.types.Scene.YY=FloatProperty(name="YY",default=4, description="Enter YY") #YY
YY = bpy.context.scene['YY']
#print (YY)
#Draw the panel buttons for user inputs
class CustomPanel(bpy.types.Panel):
    bl_label = "Wall"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    def draw(self, context):
        layout = self.layout
        row = layout.row()
        row.label(text="Dimensions:")
        Wall_layout=self.layout.column(align=True)
        Wall_layout.prop(context.scene, 'XX') #XX
        Wall_layout.prop(context.scene, 'YY') #YY

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

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

if __name__ == "__main__":
    register()

you should access it like this : scene.XX

You have defined a RNA property, it will be available on any instance of this class( all scenes will have this property ) , to access this property use the following line  :
XX = context.scene.XX
# in the UI
row.prop(context.scene, 'XX')

you can also define an ID property which will be available only on this scene :
context.scene['XX'] = 10.0
print(context.scene['XX'])
#in UI
row.prop(context.scene, '["XX"]')

To learn more about this Topic refer to this DOC page : RNA properties versus ID properties

Thanks, this works with the addition of: XX=bpy.context.scene.XX


text:
What is the size of the default grid floor?
I'm a total Blender beginner. I'm struggling with something regarding the default platform/floor that comes up when you first open blender.
Does anyone know the size of that default floor/grid/area that sits there before you, once you've just opened up the Blender programme? I.e. is it one mile long by one mile wide? Or one metre long by one metre wide? Etc?
The reason why I ask is because I used the shapes tool to draw a cube on the screen, whose size (actual "measurements", not merely "scaling") I made 10 MILLIMETRES long by 10 Millimetres wide by 10MM depth, but then it just seemed to disappear from the screen! When I re-sized its measurements to 10 METRES H. by 10 Metres W. by 10M D., then it did show up clearly, sitting on the floor/platform/area's base (not floating in the air, of course). Why would a large cube stay sitting in front of me on the screen, when a tiny cube vanishes into thin air? So, of course, I can't even see it or click on it to move it around any more.

Blender 2.79 or earlier
The X-Y grid that is visible in the viewport at all angles is 16x16 "units" large.

It is infinite if you are in any of the ortographic views: Top Numpad 7, Right Numpad 3 or Front Numpad 1.
What is a unit?
By default the "units" are dimensionless. But you can make them be meters or inches by selecting "Metric" or "Imperial" from the "Length" menu under the Scene panel

Blender 2.8 Alpha
In Blender 2.8 Alpha the base grid is infinite. The units are Meters by default.


text:
About Blender logo in my Youtube video
I am making videos on Youtube about products I made by Blender. I don't know that is it ok if I put the Blender logo on my video's cover image. Is it copyright?

I'm voting to close this question as off-topic because it is about licensing and copyright

see https://www.blender.org/about/logo/

This is not a question about using Blender, licensing and legal matters are considered off topic here, we are not lawyers and cannot be liable for answers given here.
Since there is an official document about it online in the Blender official website, where you can find the recommended Blender logo usage guidelines, I will just quote it verbatim.

Blender logo usage guidelines
Blender is a registered trademark (®) of the Blender Foundation in EU
and USA. The Blender logo itself is a property of the Blender
Foundation. The logo and the brand name “Blender” are not part of the
GNU GPL, and can only be used commercially by the Blender Foundation
on products, websites, and publications.
Under the following conditions, third parties may use the Blender logo
as well:

The logo can only be used to point to the product Blender. When used with a link on a web page, it should point to the URL
blender.org.

You will visualize and promote your own branding more prominent than you use the Blender logo. The Blender logo only can be used as a
secondary brand, which means it has to be clear for an average viewer
that this is not an official Blender or Blender Foundation website,
publication or product.

You can use the Blender logo on promotion products, such as T-shirts or caps or trade show booths, provided it is a secondary
brand as described in point 2.

The logo is used unaltered, without fancy enhancements, in original colors, original typography, and always complete (logo + text
blender).

In case you use the logo on products you sell commercially, you always have to contact us with a picture of how it will be used, and
ask for explicit permission.

If you have further questions or doubts, do not hesitate to contact
us.

In short you can use it as long as you don't make it look like your product is made by the Blender Foundation, nor that you are somehow endorsed by or officially associated with it.

Do note that starting an answer with a paragraph explaining why it's off-topic is very ambiguous. Vote to close or flag a question for migration if you believe it's a poor fit for this site.

Your first paragraph explains exactly why you shouldn't have answered.

Since there is an official document about it it seemed like a safe-ish answer to just quote it


text:
Extracting vertices data after transformations
I'm using few rotations and scale changes in a model and then export the location of the vertices after the change, but when I do so, the vertices extracted are those of before the transformations and not after. How can I extract the new vertices?
An example for a transformation:
bpy.data.objects["Main"].pose.bones["finger5-.L"].rotation_quaternion[1]=random.uniform(0, 0.4)

And the code for extracting the vertices:
mesh = bpy.data.objects["Main:Body"]
vertices = mesh.data.vertices
for vertex in vertices:
    vertex1 = vertex.co[0]
    vertex2 = vertex.co[1]
    vertex3 = vertex.co[2]
    row = [vertex1, vertex2, vertex3]
    with open(os.path.join(vertices_output_path, 'vertices.csv'), 'a') as csvFile:
        writer = csv.writer(csvFile)
        writer.writerow(row)
        csvFile.close()

Related and  Related

Please search here at BSE for
matrix_world
as in
worldc = o1.matrix_world * vertex.co


text:
Why do I get an "internal error setting the array" error when editing a mesh with Python?
I want to update an object's mesh (only vertices and edges, plus screw modifier) at every new frame via frame_change_pre. This is my code:
import bpy
import numpy as np

def get_mirror_vertices_dummy(frame):
    zpos = np.array([0., 1.]);
    rpos = np.array([0., np.sin(frame/10.)]);
    return zpos, rpos, [], [];

def create_mirror_mesh(mesh, frame):
    # mesh arrays
    verts = [];
    edges = [];

    zpos, rpos, zneg, rneg = get_mirror_vertices_dummy(frame);

    # calculate vertices
    for vertexID in range(0,zpos.size):
        x = rpos[vertexID];
        y = 0.;
        z = zpos[vertexID];

        vert = (x,y,z);
        print(vert);
        verts.append(vert);

    # fill edges
    for vertexID in range(0,zpos.size-1):
        edge = (vertexID, vertexID+1);
        print(edge);
        edges.append(edge);

    # create mesh from data calculated above
    mesh.from_pydata(verts, edges, []);
    mesh.update();

def add_mirror():
    # create mesh and object
    mesh = bpy.data.meshes.new("mirror");
    mesh.update();
    object = bpy.data.objects.new("mirror", mesh);
    # set mesh location
    object.location = bpy.context.scene.cursor.location;
    bpy.context.scene.collection.objects.link(object);

    # add screw modifier
    object.select_set(state=True)
    bpy.context.view_layer.objects.active = object;
    bpy.ops.object.modifier_add(type='SCREW');

def mirror_update(frame):
    # if object does not yet exist, create it
    if not 'mirror' in bpy.data.objects:
        add_mirror();
    # delete old mesh first
    mesh = bpy.data.meshes['mirror'];
    #bpy.data.meshes.remove(mesh);
    create_mirror_mesh(mesh, frame);

def mirror_update_handler(scene):
    frame = scene.frame_current;
    mirror_update(frame);

bpy.app.handlers.frame_change_pre.append(mirror_update_handler);

When I run it in Blender (v2.82.7) in a fresh, empty scene, the first time I jump to a new frame, the object gets created and the mesh is also appearing. However, when jumping to another frame, I get the error
Error: Array length mismatch (expected 12, got 6)
Traceback (most recent call last):
  File "/Text", line 61, in mirror_update_handler
  File "/Text", line 57, in mirror_update
  File "/Text", line 33, in create_mirror_mesh
  File "/snap/blender/37/2.82/scripts/modules/bpy_types.py", line 469, in from_pydata
    self.vertices.foreach_set("co", tuple(chain.from_iterable(vertices)))
RuntimeError: internal error setting the array

I tried to remove the mesh before calculating the new vertices by un-commenting the line
bpy.data.meshes.remove(mesh);

in the function mirror_update. When I run this and jump to a new frame, the mesh is deleted and I get the error:
Error: Array length mismatch (expected 18, got 6)
Traceback (most recent call last):
  File "/Text", line 61, in mirror_update_handler
  File "/Text", line 57, in mirror_update
  File "/Text", line 33, in create_mirror_mesh
  File "/snap/blender/37/2.82/scripts/modules/bpy_types.py", line 469, in from_pydata
    self.vertices.foreach_set("co", tuple(chain.from_iterable(vertices)))
RuntimeError: internal error setting the array
(0.0, 0.0, 0.0)
(0.3894183423086505, 0.0, 1.0)
(0, 1)
Traceback (most recent call last):
  File "/Text", line 61, in mirror_update_handler
  File "/Text", line 57, in mirror_update
  File "/Text", line 33, in create_mirror_mesh
ReferenceError: StructRNA of type Mesh has been removed

The strange thing is: when I now comment-in again this line and run it afterwards, it works exactly as expected.
Can someone spot what I am doing wrong here?

I got it working by replacing bpy.data.meshes.remove(mesh); with mesh.clear_geometry();.


text:
Compositor Problems when working with alpha over and blur nodes
I am doing an animation. The images I have attached show 2 different render layer view node results.

Image one shows a cube on layer 1, and 2 icosphere on layer 2. I have layer 2 set to fast blur. I have to use transparent film and therefore I use the Alpha over nodes in composition.
Image two shows a cube and 1 icosphere. Image 1 should not be showing 2 icospheres, as the left most one is behind the cube.

Image 2 is from the same render result, and is correcting showing only 1 icosphere. However, that icosphere should be blurred as it is on layer 2. It seems for whatever reason I can not have both the correct composition effect and also have every object's visibility render correctly. I can only either have everything work fine, with no composition, or composition with every emission object showing through every other object in the scene.
I am aware that masks would solve this problem, but because of the complicated setup of object materials and particles, masking produces these very strange and suddenly appearing artifacts. Material Indexing also produces odd artifacts and does not consistently effect the appropriate materials.
This is also a new problem, I did not have this issue in the last blender version. So, material indexing is out, masking is out, object indexing is out.

I want to use the compositor to blur certain layers, but every emission object in the scene shows through. It shows through as though it was on x-ray, regardless if it is behind another or inside another object. The first image is an example of this, the left icosphere is behind the cube, and should not be visible. That is the problem. Why is it visible when it shouldn't be?

Where is the cube? Would it be possible for you to upload this part of the scene to http://blend-exchange.giantcowfilms.com/ for a more in depth inspection of the settings?

You have mentioned the compositor.  Please place an image of the compositor nodes.  By presenting the nodes you may see simplifications.  Of course you can simplify the node image and scene image to protect  confidential information.  The [simplest] arrangement that fails would be interesting.  You can also bold the word COMPLEX if you like for extra emphasis.  On the other hand I find the find the problem description difficult to read. Suggestion.  Rewrite the problem description in more paragraphs ... not more words.

It's not a bug, it's the expected behaviour, what you need is to use the "Z combine node". In my example I've set layer 1 into render layer1 only, and L 2 into RL 2. As the blur increases the size of the icosphere, i've added a dilate/erode node on the Z channel of render layer 2.


text:
Motion blur in scaling object
I have a bouncing ball with a texture on it. The Motion blur checkbox on Cycles.
While it is falling I have motion blur, but when it touches the floor, the object itself stops moving, but it starts some squishing frames. I do not have any motion blur there.
Can I have motion blur on scaling objects?

Edit:
Well, this issue is now solved with newer versions of the program.

Scale motion blur was disabled in Cycles due to a known bug in CUDA.
It was added back again recently by Brecht on Jan 11 2018, meaning it will be available on the next major release of Blender 2.8.
Currently it is not possible to achieve this with the last official release.


text:
Wrong equirectangular panorama
Why my panorama is wrong?
This is the cube with the camera inside.
Under the camera (and above too) 360 panorama is "shrunk":

This is the camera settings:

And this is the render result:

The scene looks like:

Blender file:

P.S. I used FSPViewer (FSoft) for view panorama render result.

I think your question was down voted, because it is not detailed enough. Can you add comment to the images you posted?

test on 2.78RC1 without problem.The pinching makes me think you used an UV sphere unwrapped.

Could you post a .blend file.

Using your blend file (in blender 2.77a) the render was ok. Then using it as environment texture in world shader and viewport showed no pinching.

The problem seems to come from FSPViewer (sphere UV mapping).

EDIT:
Mapping an equirectangular texture on a UV sphere can't be done with UV unwrapping without pinching because of the tris at north and south poles. But you can use this setup:

got it, thank you, do you know how to make spherical panorama in blender?

If this is the answer you were looking for, accept it. What do you mean "spherical panorama"?

I think than found an answer - http://blender.stackexchange.com/questions/36573/equirectangular-rendering-for-blender-internal

This is an exemple where you can use equirectangular map on a sphere, but you will get that pinching. AFAIK, the only solution I know to map an Equirectangular image on a UV sphere is using generated texture coordinates and sphere mapping on texture node.


text:
Object On Characters Back Follows Character but Not In Unity
I have a backpack object attached to my character model in Blender.  It is parented to the armature, and then the chest bone.  It moves well with the character in Blender completely fine.  But when I export to Unity, it doesn't want to follow anymore along with the animations.
The weird part is that I also have a weapon slot with the exact same settings as the backpack, and it works fine in Blender and in Unity.
I've applied all transforms, and both the backpack and weapon slots origins are at world origin.
Any ideas?

Nevermind I figured it out.  Turns out I did not have my backpack meshes vertices assigned to the chest bone in weight paint


text:
Cloud Effect In Blender to Unity
Hi I'm trying to create 3D clouds in Blender to be used in Unity. Imagine the bubbly-like fx of the flying nimbus in Dragon Ball.  Not really sure what the best approach is.  I've tried using displacement modifiers and get decent results in Blender.  But exporting to Unity is a no go.  Are shape keys my only option? If so, what's a good way to achieve what I'm after using shape keys?

Hello, could you add an example of what these clouds look like ?

You could create a cube, subdivide and smooth it:

Give it several shapekeys:

In Object mode, select a shapekey, push its Value up to 1 and sculpt:

Sculpt the other shapekeys, animate them:

Or you could create your mesh with metaballs that you convert to mesh:

Then give it a Displace modifier with a Cloud texture and an empty as Object:

In the Displace modifier, save several versions As Shapekeys:

Now you can animate the shapekeys, also sometimes do some Shrink/Fatten to inflate the cloud a bit:

This is perfect thank you!


text:
Is there a keyboard shortcut to change the render engine?
Is there a keyboard shortcut to change the render engine? I have looked through the keymap preferences and I cannot find one. Is there any way to make one?
My computer takes a while to render with the Cycles engine and becomes very slow so it is hard for me to switch back to Eevee using my mouse, so a keyboard binding to switch back and forth between the engines would be very helpful.
If anyone could give me any advice on this is, I would appreciate it very much :)

If it's not in the keymapping preferences then I don't think it exists.  The only way to really do that would probably be to program something with python.  But Idk

Does this answer your question? Change merge shortcut? (Works for the render engine field too)


text:
Removing objects from collection with script works but gives an error
I'm sorry in advance if my script looks really messy and not optimised, it's my first time using python or a dev language for that matters.
I've tried to setup a script that, among other things, create and assign objects to a LP collection by checking their names.
When I'm trying to unlink the object from the HP collection they were taken from, the script successfully does the task, but still return an error, here's the script :
#List all object in scene that ends with remeshed and select them
for obj in bpy.context.scene.objects:
    if obj.name.endswith("remeshed"):
        obj.select_set(True)

#Create collection with selected objects
bpy.ops.collection.create(name='LP')

#Link collection to Scene Collection
bpy.context.scene.collection.children.link(bpy.data.collections["LP"])

#Remove low poly objects from HP Collection
for obj in bpy.context.scene.objects:
    if obj.name.endswith("remeshed"):
        bpy.context.view_layer.objects.active = obj
        bpy.ops.collection.objects_remove(collection = 'HP')

I've also tried to use
bpy.context.scene.collection.objects.unlink(obj) withtout success even with the HP collection selected and active.
Here's the error message :
Traceback (most recent call last):
  File "<blender_console>", line 4, in <module>
  File "C:\Program Files\Blender Foundation\Blender 2.91\2.91\scripts\modules\bpy\ops.py", line 132, in __call__
    ret = _op_call(self.idname_py(), None, kw)
TypeError: Converting py args to operator properties:  enum "HP" not found in ('LP')

And as I was saying the script does what I want and unlink the object from the HP collection, but since it returns an error, it stop when running it.
Thanks in advance for all the help and advise you could give me.

I have enhanced and modified your code and, it works perfectly :

bl_info = {
    "name" : "Clear Collection",
    "author" : "CédricF",
    "description" : "",
    "blender" : (2, 80, 0),
    "version" : (0, 0, 1),
    "location" : "Sidebar(N)>Clean Up",
    "category" : "Clean Up"
}

import bpy

from bpy.props import PointerProperty

#----------------------------------------
#MAIN PANEL
#----------------------------------------

class CLEARCOLLECTION_Property(bpy.types.PropertyGroup):

    ClrByNameEnd : bpy.props.StringProperty(name= "All Objects Ending By", default="")
    ClrByCOLNameEnd : bpy.props.StringProperty(name= "Collection", default="")

class CLEARCOLLECTION_PT_MAINPANEL(bpy.types.Panel):
    bl_idname = "CLEARCOLLECTION_PT_CLEARBYNAMEEND"
    bl_label = "Clear By Name End"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "Clean Up"

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

        scene = context.scene

        CLRCTool = scene.CLRTool

        row = layout.row()
        row.prop(CLRCTool, "ClrByNameEnd", icon= "TRASH")

        row = layout.row()
        row.prop(CLRCTool, "ClrByCOLNameEnd", icon= "TRASH")

        layout.operator("clearcollection.clearbyend", icon= "TRASH")
        layout.operator("clearcollection.slecbyend", icon= "RESTRICT_SELECT_OFF")

#----------------------------------------
#CLEAR OBJECTS
#----------------------------------------

class CLEARCOLLECTION_OT_CLEAR(bpy.types.Operator):
    bl_idname = "clearcollection.clearbyend"
    bl_label = "Clear Objects"
    bl_description = "Clears objects which end with the given input"
    bl_options = {"REGISTER"}

    def execute(self, context):

        scene = context.scene

        CLRCTool = scene.CLRTool

        for obj in bpy.context.scene.objects:
            if CLRCTool.ClrByNameEnd != "":
                if obj.name.endswith(CLRCTool.ClrByNameEnd):
                    bpy.data.objects.remove(obj)

        for obj in bpy.context.scene.objects:
            if CLRCTool.ClrByCOLNameEnd != "":
                for objc in bpy.data.collections[CLRCTool.ClrByCOLNameEnd].all_objects:
                    if CLRCTool.ClrByNameEnd != "":
                        if obj.name.endswith(CLRCTool.ClrByNameEnd):
                            bpy.data.objects.remove(obj)

        return {"FINISHED"}

#----------------------------------------
#SELECT OBJECTS
#----------------------------------------

class CLEARCOLLECTION_OT_SELEC(bpy.types.Operator):
    bl_idname = "clearcollection.slecbyend"
    bl_label = "Select"
    bl_description = "Selects objects which end with the given input"
    bl_options = {"REGISTER"}

    def execute(self, context):

        scene = context.scene

        CLRCTool = scene.CLRTool

        for obj in bpy.context.scene.objects:
            if CLRCTool.ClrByNameEnd != "":
                if obj.name.endswith(CLRCTool.ClrByNameEnd):
                    obj.select_set(True)

        for obj in bpy.context.scene.objects:
            if CLRCTool.ClrByCOLNameEnd != "":
                for objc in bpy.data.collections[CLRCTool.ClrByCOLNameEnd].all_objects:
                    if CLRCTool.ClrByNameEnd != "":
                        if obj.name.endswith(CLRCTool.ClrByNameEnd):
                            obj.select_set(True)

        return {"FINISHED"}

classes = [CLEARCOLLECTION_Property, CLEARCOLLECTION_OT_CLEAR, CLEARCOLLECTION_OT_SELEC, CLEARCOLLECTION_PT_MAINPANEL]

def register():

    for cls in classes :
        bpy.utils.register_class(cls)
        bpy.types.Scene.CLRTool = PointerProperty(type= CLEARCOLLECTION_Property)

def unregister():

    for cls in classes :
        bpy.utils.unregister_class(cls)
        #del bpy.types.Scene.CLRTool

if __name__ == "__main__":
    register()

Btw thanks for this helpful idea, this thing is sure gonna help me a lot in my workflow.

Glad it was of any help. I actually found my issue and used the following code:
#Remove low poly objects from HP Collection    col = bpy.data.collections['HP']    for obj in bpy.context.scene.objects:         if obj.name.endswith("remeshed"):            print(obj)            obj.select_set(True)            unlinkobj = col.objects.get(obj.name)            col.objects.unlink(unlinkobj)
But yours seems definitely more accurate and clearer.


text:
How can I add a vertex at the center of a circle?
I have filled circle and I want to add vertex at center of it. After that I want to connect vertices from circle to the center vertex (this part I know how to do).

If you've already added the circle there are some other fast ways to do this:
Method 1:

Select the circle.

Extrude (E), then cancel the translate part of the extrusion with Esc.

Press ⎇ AltM > Center to merge the extruded vertices into a single central vertex.

Method 2:

Select the circle.

Fill (F) to make an n-gon.

Poke Faces (⎇ AltP) to triangulate the n-gon with a central vertex.

Darn, I can't do screen capture gifs. Excellent answer!

@NoviceInDisguise Why not? LICEcap works just fine for me..

If it is necessary to use an existing mesh, select all the vertices in the circle, and press Shift-S Cursor to Selected.

Then deselect all, then hold Ctrl and click anywhere in the viewport. This will add a vertex.

Now press Shift-S Selection to Cursor. This will place it where the 3D cursor is located, which is in the exact center of the circle.

Select the entire cicle A, then hit E > S > 0. in that order.
This will scale all vertices to 0.
Ctrl > V > remove doubles.
To make a master vertex at center, rather than all thirty-two occupying the same space.

You can do this when you first add the circle. When you first add the mesh, go to the tools where you normally enter the vertex number, and select Fill Type > Triangle Fan.

This will make a mesh like this: