text:
Is it possible to get two Voronoi textures, F1 and F2, to use consistent colors for points?
In other words, if F1 returns point X as closest, and another F2 returns the same X as closest, is it possible to ensure that they are always set to the same color?
I assumed this would be the default, but now I'm not sure. I'm working with building a separate program that uses cell noise, and had an idea for finding (and potentially blurring) edges between cells by using |F2-F1| to get an idea of proximity. (When F1 and F2 feature points are equidistant, we should be on the edge between the two.) Naturally, being more programmer than mathematician, I thought I'd check it out in Blender first before implementing it in C or C#.
I'm getting a texture which partially does what I anticipated it would—blur at the edges—but also has a lot of hard edges. My suspicion is that either my math is wrong, or that they're showing up because I'm expecting F1 and F2 to return the same color for the same point, and they aren't.

As you can see above, for some edges it's smoothing perfectly; but for others I have a hard difference. Some of them even smooth to an odd color that doesn't appear to be a simple interpolation of the ones involved. You can see my method in the bottom workspace. Note that parameters for F1 and F2 are always identical.
If I could ensure that F1 and F2 always returned the same color for the same point, I could verify that my math is correct; but they seem to work a little differently.
One thought that came to mind is to generate a random color based on the feature point, available from position, but I'm not currently 100% sure how to do this. I'm aware of "Smooth F1", but since this is an experiment for a program I'm writing, it's more important that I know how to do it with an F1/F2 comparison so I can check my math.

So let's simplify your idea a little bit, and look at some raw-er data:

Same voronoi, top and bottom.  Top is F2 distance - F1 distance.  I've marked some centers roughly with empties so we can keep track of them.
The first thing we should notice is that F2-F1 isn't normalized to the maximum cell radius.  That isn't some value we can get.  So the highlighted empties, for instance, are all black, because other points are relatively near, and so F2-F1 is small.  This is going to impact what we get out of your blurring technique.
This is why the cells aren't a uniform color.  F2 is always greater than F1, so we're always mixing.  If we only want to mix at the edges, we need to make some choices about limits to that mixing.  We can establish those limits with a map range node:

So what I'm saying is that as F2 approaches F1, we want to be mixing half way between the two colors.  (This is pretty important: if we mixed 0.0 at equal distance, we'd get banding.)  And if we're 0.13 units away or more, I don't want to be mixing at all, I just want to use F1.color.  And here, we have uniform color in the centers of our cells, and blending between them, just like we want.
But be careful, because notice what we're doing at the previously highlighted point.  At this point, F2 is always less than 0.13 units further than F1, so we're always mixing.  Again, these aren't normalized to the cell size, and we can't normalize them, not while keeping the texture procedural (we could bake and do some calculations, but then, we could could also just run it through a blur in GIMP if we baked....)
Notice also what's happening at the "corners" of our cells, where F1 and F2 approach the same distance as a hypothetical F3.  At this point, we have discontinuities, because adjacent points are calculating different colors for our F2.  One is using the other's F3.
Unfortunately, Blender doesn't give us an F3, which is what we'd need to create a fully smoothed Voronoi.  Since you're using Blender to plan out something you're going to do elsewhere, you might be able to get yourself an F3.  If you did, you'd be determining the mix color not from F2.color, but from a mix between F2.color and F3.color very similar to your F1-F2 mix, by the distance from F2 to F3.
But even though Blender doesn't give us an F3 to create a fully smoothed Voronoi, it's mostly okay, because it provides us the exact same thing in the form of Smooth F1 color:

However, we still have the problem that the smoothing factor is in absolute distances, rather than relative to the maximum radius of our cell.  Determining the maximum radius of our cell is not something we can do in parallel on all samples, not to my knowledge (maybe there's some genius algorithm out there, sometimes I'm surprised.)

Good thinking! I'm using this for a noise modulation, and "close enough" will generally do the job for me. There are a number of cheats I can use to avoid those discontinuities.

I've considered simply separating it into monochrome textures by feature point, and applying a blur kernel to each texture, but it leads to incongruities and discontinuities at edge points in what should be an infinite texture; so procedural is generally best-case.

Oversample, blur, then crop, if that's the problem.

I think you meant "overscan" by oversample, right? "Overscan" as in, gather more texture elements than I intend to keep by treading over the edge of texture by the margin necessary for the blur matrix, and then crop, right? "Oversample" usually relates to significantly exceeding the Nyquist frequency in DSP.

@MichaelMacha Yes, thank you.

@Nathan Excuse me, Nathan. May I have a bit of your time? I'm studying the intuition behind Smooth F1. You mentioned that F3 is used to create something that is similar to Smooth F1. So could you please explain the math behind Smooth F1? How is it created? Can F3 be used to create Smooth F1, and how? Thank you so much!

@IanAmbrose For exact math, I'd recommend reading the code directly, which I haven't.  An F3, in conjunction with an F1 and F2, could be used to create a smooth F1 on a 2D voronoi.  On a 3D voronoi, I believe you'd also need an F4.  But, there is no F3 or F4, and there is a Smooth F1.

@Nathan Thank you for the response. I'm a math student, I don't know how to read code at all. I think I'll ask around for help. If I'm lucky enough to receive your help, I'll be very grateful.


text:
How can my PC composite ultra-high dimension images with Blender?
To be more specific, I'm on a machine which can easily go through 1080p images in at worst about 20 seconds, unless I'm doing something weird and cool with it. So this isn't a low-end machine per se. However, if I'm attempting to produce something 24"×36" poster print ready at 300 DPI, the recommendation is 10800x7200 pixels, which, even for an image which generally takes about six seconds per frame for an animation, has been crashing my machine.
To clarify, I'm using Cycles and can't easily compromise on that. The crash usually happens at compositing, in which I'm applying a few filters (inclusive of denoise, glare, and sun beams, but I feel this is beside the bigger problem). They're kind of essential to the flavor of the final image, so I'm not necessarily ready to drop them just yet. Getting to that final point of composition takes roughly two hours on CPU rendering and generally runs without any significant hitches, taking up only half a gig of RAM.
Compositing gobbles up all of the RAM, ruthlessly.
My workaround has been to render at a lower resolution, and scale it up, which is all kinds of a problem for me in general principle. So, it's not really a solution so much as a shim.
I have 16 GB of DDR5, high speed but kind of the low end, and would consider just getting more RAM, but given that Cycles is a ray tracer capable of tiling, I'm wondering if it's possible to render and composite portions of the image at a time? (Additionally, I have no idea how much memory it wants to reserve, and may not be able to get enough for some images.) Can I have it render part of the image to its own file, and perhaps composite afterward in some limited way? The end .exr in the temp directory is roughly 3.0 GB.
I feel like I might be overlooking an easier solution.

I wonder if rendering to exr and compositing as a second step afterwards would improve this any

You would at least be saving the render payload when it crashes :p

@AllenSimpson I tried that with the exr saved in tmp; incidentally, while not a bad idea, it didn't help.

source: Stack Exchange

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

sort: votes


text:
Is it possible to slide NURBS control points along rows?
For a mesh, I can hit 'G' twice and drag a vertex along connected edges. This could be very useful when working with NURBS surfaces, as I am now inclined to for a specific model; however, double-G does not work as expected.
Is it yet possible to slide a control point's position along a row?

This is not possible as far as I know. NURBS in Blender are not on the same level as other geometry types. They are very lacking in features and functionality

So I've seen, but they're still incredibly useful when working on something like a car body in a model. Are there any known workarounds to constrain the plane I can move the control point on?

I've found a functional workaround. If I'm attempting to constrain the motion of a control point to a plane (and I effectively am), then all I need to do is select the connected four control points, and press ⇧ Shift +  1, ⇧ Shift +  3, or ⇧ Shift +  7 to constrain my view plane to the plane between them. Moving along this plane will be adequately close to the actual axis for my purposes.
I believe the reasons that this functionality is not yet implemented in Blender involve the lack of a mathematically sensible normal for a control point. Kind of like how NURBS is effectively built from rows, not vertices, and the rows are defined by control points; a control point in a vacuum is nonsense. This makes features like sliding a lot harder to define without pretending that something not-a-mesh is a mesh, which has its own problems.
But, arbitrary common points in space do have an arguable normal. So, this will do nicely.

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


text:
How do I use bssrdf_gaussian and bssrdf_cubic in OSL?
I'm repeatedly getting errors reported that these functions are not defined, but they are explicitly mentioned here in the documentation. Everything else on this page has worked so far, including henyey_greenstein; but not the two bssrdf functions.
I've included stdosl.h (just in case), I've used an assortment of different parameters and parameter types, but it never seems to recognize it. Is this a bug, or am I missing something here?
Thank you!

can u post a script that is supposed to work? are you on Blender 3.6?

I think it might be out of date docs? Cubic and Gaussian were options on the Cycles SSS shader node menu at one point, and now are not. Idk if the BSSRDF code is still in the engine, but I wouldn't be surprised if it's not and nobody updated that page for what the new BSSDRF names were. See https://wiki.blender.org/wiki/Reference/Release_Notes/3.0/Cycles#Removed_Features_and_Compatibility

@JtheNinja I think you might be right; I'm not too-good to do some source code digging, and will double check. This may be a simple documentation bug that needs reporting, I just thought I would check.

@HarryMcKenzie There's really not much more to show, it just doesn't recognize the function.


text:
Problem with Rigging and IK-Bone when changing between rest and animated position
im pretty new to animating in Blender. But I really need help with this animation of a rower.  I imported the figure from MakeaHuman. In the beginning I didnt knew that IK- Bones exist, so I animated just with moving every Bone from Keyframe to Keyframe. I wasn´pleased with the outcome cause the person was alway pushing very unnaturally through the baseplate.
What I did after I found out that I can make a Bone to a IK Bone was linking the shin-bone to the thigh-bone as a IK Bone. Now the Movement seems to be very good when I open the .blend and let the animation play. but If I change between the animated pose and the rest pose and back the whole animation is wrong and the legs are stuck to the position in the rest position. I really hope somebody could help me and I dont have to restart everything! :) attached the .blend file!
Thanke you so much! Fabian
https://www.dropbox.com/s/20q4m3g3s8cewyb/131117_05_Ruderbewegungsanalyse.blend?dl=0

There are a few mistakes in your rig that are causing you the problems you are seeing.
First, the chain length on the leg IK bones is set to 0. You'll want to set it to 2. What the chain length does is determine how many bones the IK constraint will affect. 0 means that moving the foot bone around will affect every bone in the chain, which includes the hip bone, while setting it to 2 will make it affect only the shin and thigh bones. Your IK foot bone should only be affecting the leg, and not the hips. You'll need to change this for both IK constraints.
Second, you have the location on your foot bones locked. This isn't necessarily a bad thing, but from looking at your file it appears this was done to 'fix' another issue, but after properly fixing everything it won't be necessary.
Which brings me to issue 3. This is the issue that's causing you most of the problems. Your foot bones which are used to control the legs via the IK constraint, are still parented to the legs. What's happening is you have a circular relationship going in here. Your foot bone is telling your leg bones where to be because of the IK constraint, while the leg bones define the position on the foot bones since they are connected. That is why any edit such as changing to rest pose and back or going into edit mode and back are causing issues. Locking the foot bones location seemed to be what you did to fix this issue, but as you found out it doesn't truly fix it.
To fix the IK issue, you'll want to (in edit mode) duplicate each foot bone, rename them to be Foot_IK.R/L or something like that, clear the parent on them with Alt-P, and use them as the Bone in the IK constraint. You can also then add a copy rotation constraint to the original foot bone and have it copy the rotation of the new IK bone so that the IK bone can control the whole foot. You will most likely have to set the space from world space to local space in both menus to ensure it works properly.
The reason for using a separate bone instead of clearing the parent on the foot bone is that using the foot bone as the control will also allow you to pull the foot bone away from the ankle, stretching the leg. Using a separate bone will just fully extend the leg and not stretch any of the leg.
I think you should only have to reposition the foot IK bones once you've made all of these changes, so you won't have to redo much.

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


text:
Animate Excavator digging
I want to animate an excavator and the path he makes in the ground while digging in an abstract way. Animating the excavator seems to be no problem but I have trouble with animating the ground cause the shovel is entering it in a radial way.
I used the AnimAll add on to Animate the vertices of the ground to create the digging process but it is a very unsatisfying way.
I hope you have a better idea!
Some pictures regarding my problem
Thank you in advance
Fabian

The Boolean Modifier will come in handy here. It's not a physically accurate solution, but you can certainly fake it for illustration purposes.

Boolean can carve out geometry based on a reference object. So in this case, you can create a transparent object to point the modifier to, which will do the carving. Parent it to your solid object so they move in sync.
I've made a demo file with a basic animation. You can download it here.


text:
Parenting with Automatic Weights- Bone Heat Weight Failure
I am new to 3D. I cannot get the mesh to parent with the armature using automatic weights. I think that the problem might have to do with how I built the mesh. When I try to parent with automatic weights it tells me that there was a heat weight failure with one or more bones. Any help on how to fix the issues is greatly appreciated. Here is a link to the project.
https://www.dropbox.com/s/80qf74qspkzbjff/tripodV1B.blend?dl=0

The main cause of that error is when there are overlapping/duplicate vertices and/or intersecting parts.
I would suggest a couple of things.
First, your model has a huge number of faces. 287k faces for an object like that is quite a lot. The large number of faces is making it hard for blender to tell which vertex should be assigned to which bone. I would suggest making the model with way less faces and using a Subdivision Surface modifier to make it smooth. Unfortunately that would me remaking your model but it will save you countless headaches in the future. Using the decimate modifier set to unsubdivide with 6 iterations can do most of the work for you, but it doesn't seem to work on the legs very well.
Second, automatic weights is not going to be the best way to rig your tripod. Your tripod is made of a number of segments and each segment looks like it should be parented to a single bone. Automatic weights will assign each vertex to the nearest bone(s) and thus you will have multiple bones controlling each segment and the segments will bend and deform. Instead, I would suggest parenting with empty groups and manually selecting each section of the tripod in edit mode and assigning it to the appropriate vertex group. Hovering your mouse over a vertex and pressing L will select everything connected to what is under your mouse which will save you time selecting each section.

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


text:
BGE: 6DoF constraint - change in real time
I created several constraints (6DoF) with the following script:
import PhysicsConstraints as constr
import GameLogic
scene = GameLogic.getCurrentScene()
objList = scene.objects

stiffness = 500
MaxAngleLimit = 0.2
MinAngleLimit = -0.2
steer = objList['FrontAxisGhost']['steer']

CarBodyID = objList["CarBody"].getPhysicsId()
CarCenterID = objList["CarCenter"].getPhysicsId()
FrontAxisID = objList["FrontAxisGhost"].getPhysicsId()
RearAxisID = objList["RearAxisGhost"].getPhysicsId()
FRAxleID = objList["AxleFR"].getPhysicsId()
FLAxleID = objList["AxleFL"].getPhysicsId()
RRAxleID = objList["AxleRR"].getPhysicsId()
RLAxleID = objList["AxleRL"].getPhysicsId()
SteerLID = objList["SteerL"].getPhysicsId()
SteerRID = objList["SteerR"].getPhysicsId()
WheelFLID = objList["WheelFL"].getPhysicsId()
WheelFRID = objList["WheelFR"].getPhysicsId()

CarBody6DoF = constr.createConstraint(CarBodyID,
CarCenterID, 12, 0, 0, 0, 0, 0, 0, 0)
CarBody6DoF.setParam(3, 0.0, 0.0)
CarBody6DoF.setParam(4, 0.0, 0.0)
CarBody6DoF.setParam(5, 0.0, 0.0)

FAxis6DoF = constr.createConstraint(FrontAxisID,
CarCenterID, 12, 0, 0, 0, 0, 0, 0, 0)
FAxis6DoF.setParam(3, 0.0, 0.0)
FAxis6DoF.setParam(4, 0.0, 0.0)
FAxis6DoF.setParam(5, 0.0, 0.0)

RAxis6DoF = constr.createConstraint(RearAxisID,
CarCenterID, 12, 0, 0, 0, 0, 0, 0, 0)
RAxis6DoF.setParam(3, 0.0, 0.0)
RAxis6DoF.setParam(4, 0.0, 0.0)
RAxis6DoF.setParam(5, 0.0, 0.0)

FR_6DoF = constr.createConstraint(FRAxleID,
FrontAxisID, 12, 0, 0, 0, 0, 0, 0, 0)
FR_6DoF.setParam(3, 0.0, 0.0)
FR_6DoF.setParam(4, 0.0, 0.0)
FR_6DoF.setParam(5, MinAngleLimit, MaxAngleLimit)
FR_6DoF.setParam(15, stiffness, 1)

FL_6DoF = constr.createConstraint(FLAxleID,
FrontAxisID, 12, 0, 0, 0, 0, 0, 0, 0)
FL_6DoF.setParam(3, 0.0, 0.0)
FL_6DoF.setParam(4, 0.0, 0.0)
FL_6DoF.setParam(5, MinAngleLimit, MaxAngleLimit)
FL_6DoF.setParam(15, stiffness, 1)

RR_6DoF = constr.createConstraint(RRAxleID,
RearAxisID, 12, 0, 0, 0, 0, 0, 0, 0)
RR_6DoF.setParam(3, 0.0, 0.0)
RR_6DoF.setParam(4, 0.0, 0.0)
RR_6DoF.setParam(5, MinAngleLimit, MaxAngleLimit)
RR_6DoF.setParam(15, stiffness, 1)

RL_6DoF = constr.createConstraint(RLAxleID,
RearAxisID, 12, 0, 0, 0, 0, 0, 0, 0)
RL_6DoF.setParam(3, 0.0, 0.0)
RL_6DoF.setParam(4, 0.0, 0.0)
RL_6DoF.setParam(5, MinAngleLimit, MaxAngleLimit)
RL_6DoF.setParam(15, stiffness, 1)

SteerFL_6DoF = constr.createConstraint(SteerLID,
FLAxleID, 12, 0, 0, 0, 0, 0, 0, 0)
SteerFL_6DoF.setParam(3, 0, 0)
SteerFL_6DoF.setParam(4, 0, 0)
SteerFL_6DoF.setParam(5, 0, 0)

SteerFR_6DoF = constr.createConstraint(SteerRID,
FLAxleID, 12, 0, 0, 0, 0, 0, 0, 0)
SteerFR_6DoF.setParam(3, 0, 0)
SteerFR_6DoF.setParam(4, 0, 0)
SteerFR_6DoF.setParam(5, 0, 0)

WheelFL_6DoF = constr.createConstraint(WheelFLID,
SteerLID, 12, 0, 0, 0, 0, 0, 0, 0)
WheelFL_6DoF.setParam(4, 0.0, 0.0)
WheelFL_6DoF.setParam(5, 0, 0)

WheelFR_6DoF = constr.createConstraint(WheelFRID,
SteerRID, 12, 0, 0, 0, 0, 0, 0, 0)
WheelFR_6DoF.setParam(4, 0, 0)
WheelFR_6DoF.setParam(5, 0, 0)

So the car body, front and rear axes are attached to the car center, front, rear, right, left axles are attached to the axes, two steering dummies are attached to the front axles and wheels themselves are attached to the steering dummies. Everything is fine and dandy so far.
However, now I want the front wheels to steer according to some action. I set up some logic bricks so that I have a property called steer that always decreases to the zero if nothing is pressed and if either A or left arrow is pressed it decreases down to some negative threshold value and if either D or right arrow is pressed it increases to the same positive threshold value.
I take that steer value from the front dummy object with steer = objList['FrontAxisGhost']['steer']. However when I change the following:
SteerL_6DoF = constr.createConstraint(SteerLID,
FLAxleID, 12, 0, 0, 0, 0, 0, 0, 0)
SteerL_6DoF.setParam(3, 0, 0)
SteerL_6DoF.setParam(4, 0, 0)
SteerL_6DoF.setParam(5, steer, steer)

SteerR_6DoF = constr.createConstraint(SteerRID,
FLAxleID, 12, 0, 0, 0, 0, 0, 0, 0)
SteerR_6DoF.setParam(3, 0, 0)
SteerR_6DoF.setParam(4, 0, 0)
SteerR_6DoF.setParam(5, steer, steer)

two things happen:
1) the steering is buggy. Although the property returns to zero after I let go off the key (I can see that in debug), the dummy continues to turn and the vehicle starts to jerk (this doesn't happen when I don't include that steer thing).
2) the whole game starts to lag until the framerate is really low.
I think that there is the same cause to the both bugs: every time the property steer changes the script is executed again. I think this means the script creates numerous constraints which cumulate up to the point the game starts to lag. Of course, it is then logical that once there is numerous constraints with various values of "steer", they would somehow collide and produce unsatisfactory results.
I have a basic idea how to relieve this: when steer property is changed, it would be better to destroy all constraints and recreate them with an updated value of steer. This could be a little jerky and wasteful (no need to destroy and recreate all the constraints).
What would be even better is to create a separate script which would only update already existing constraint (SteerL -> AxleFL and SteerR -> AxleFR) and attach this new script to the change sensor of the property steer.
My question is: how to do this? The separate script doesn't recognize SteerL_6DoF and SteerR_6DoF constraint and I don't know how to retrieve an existing constraint from an object.

Save the contrain in an attribute of bge.logic (blender v2.79) module makes it persistent.
I change import GameLogic to from bge import logic to give it a try but get lazy when adding objects... so is untested.
import PhysicsConstraints as constr
from bge import logic
scene = logic.getCurrentScene()
objList = scene.objects

stiffness = 500
MaxAngleLimit = 0.2
MinAngleLimit = -0.2
steer = objList['FrontAxisGhost']['steer']

CarBodyID = objList["CarBody"].getPhysicsId()
CarCenterID = objList["CarCenter"].getPhysicsId()
FrontAxisID = objList["FrontAxisGhost"].getPhysicsId()
RearAxisID = objList["RearAxisGhost"].getPhysicsId()
FRAxleID = objList["AxleFR"].getPhysicsId()
FLAxleID = objList["AxleFL"].getPhysicsId()
RRAxleID = objList["AxleRR"].getPhysicsId()
RLAxleID = objList["AxleRL"].getPhysicsId()
SteerLID = objList["SteerL"].getPhysicsId()
SteerRID = objList["SteerR"].getPhysicsId()
WheelFLID = objList["WheelFL"].getPhysicsId()
WheelFRID = objList["WheelFR"].getPhysicsId()
if not hasattr(logic, 'CarBody6DoF')
    logic.CarBody6DoF = constr.createConstraint(CarBodyID,
    CarCenterID, 12, 0, 0, 0, 0, 0, 0, 0)
    logic.CarBody6DoF.setParam(3, 0.0, 0.0)
    logic.CarBody6DoF.setParam(4, 0.0, 0.0)
    logic.CarBody6DoF.setParam(5, 0.0, 0.0)

    logic.FAxis6DoF = constr.createConstraint(FrontAxisID,
    CarCenterID, 12, 0, 0, 0, 0, 0, 0, 0)
    logic.FAxis6DoF.setParam(3, 0.0, 0.0)
    logic.FAxis6DoF.setParam(4, 0.0, 0.0)
    logic.FAxis6DoF.setParam(5, 0.0, 0.0)

    logic.RAxis6DoF = constr.createConstraint(RearAxisID,
    CarCenterID, 12, 0, 0, 0, 0, 0, 0, 0)
    logic.RAxis6DoF.setParam(3, 0.0, 0.0)
    logic.RAxis6DoF.setParam(4, 0.0, 0.0)
    logic.RAxis6DoF.setParam(5, 0.0, 0.0)

    logic.FR_6DoF = constr.createConstraint(FRAxleID,
    FrontAxisID, 12, 0, 0, 0, 0, 0, 0, 0)
    logic.FR_6DoF.setParam(3, 0.0, 0.0)
    logic.FR_6DoF.setParam(4, 0.0, 0.0)
    logic.FR_6DoF.setParam(5, MinAngleLimit, MaxAngleLimit)
    logic.FR_6DoF.setParam(15, stiffness, 1)

    logic.FL_6DoF = constr.createConstraint(FLAxleID,
    FrontAxisID, 12, 0, 0, 0, 0, 0, 0, 0)
    logic.FL_6DoF.setParam(3, 0.0, 0.0)
    logic.FL_6DoF.setParam(4, 0.0, 0.0)
    logic.FL_6DoF.setParam(5, MinAngleLimit, MaxAngleLimit)
    logic.FL_6DoF.setParam(15, stiffness, 1)

    logic.RR_6DoF = constr.createConstraint(RRAxleID,
    RearAxisID, 12, 0, 0, 0, 0, 0, 0, 0)
    logic.RR_6DoF.setParam(3, 0.0, 0.0)
    logic.RR_6DoF.setParam(4, 0.0, 0.0)
    logic.RR_6DoF.setParam(5, MinAngleLimit, MaxAngleLimit)
    logic.RR_6DoF.setParam(15, stiffness, 1)

    logic.RL_6DoF = constr.createConstraint(RLAxleID,
    RearAxisID, 12, 0, 0, 0, 0, 0, 0, 0)
    logic.RL_6DoF.setParam(3, 0.0, 0.0)
    logic.RL_6DoF.setParam(4, 0.0, 0.0)
    logic.RL_6DoF.setParam(5, MinAngleLimit, MaxAngleLimit)
    logic.RL_6DoF.setParam(15, stiffness, 1)

    logic.SteerFL_6DoF = constr.createConstraint(SteerLID,
    FLAxleID, 12, 0, 0, 0, 0, 0, 0, 0)
    logic.SteerFL_6DoF.setParam(3, 0, 0)
    logic.SteerFL_6DoF.setParam(4, 0, 0)
    logic.SteerFL_6DoF.setParam(5, 0, 0)

    logic.SteerFR_6DoF = constr.createConstraint(SteerRID,
    FLAxleID, 12, 0, 0, 0, 0, 0, 0, 0)
    logic.SteerFR_6DoF.setParam(3, 0, 0)
    logic.SteerFR_6DoF.setParam(4, 0, 0)
    logic.SteerFR_6DoF.setParam(5, 0, 0)

    logic.WheelFL_6DoF = constr.createConstraint(WheelFLID,
    SteerLID, 12, 0, 0, 0, 0, 0, 0, 0)
    logic.WheelFL_6DoF.setParam(4, 0.0, 0.0)
    logic.WheelFL_6DoF.setParam(5, 0, 0)

    logic.WheelFR_6DoF = constr.createConstraint(WheelFRID,
    SteerRID, 12, 0, 0, 0, 0, 0, 0, 0)
    logic.WheelFR_6DoF.setParam(4, 0, 0)
    logic.WheelFR_6DoF.setParam(5, 0, 0)
else:
    logic.SteerL_6DoF.setParam(3, 0, 0)
    logic.SteerL_6DoF.setParam(4, 0, 0)
    logic.SteerL_6DoF.setParam(5, steer, steer)

    logic.SteerR_6DoF.setParam(3, 0, 0)
    logic.SteerR_6DoF.setParam(4, 0, 0)
    logic.SteerR_6DoF.setParam(5, steer, steer)

On the other hand, if you like, take a look at Vehicle Constraint > VehicleWrapper
Here is a portion of a script where i use vehicle contraint in a subclassed KX_GameObject
from bge import logic, types, constraints

class Vehicle(types.KX_GameObject):

    def __init__(self, old, wheels, ai):
        self.vehicle_constraint_id = self.create_contraint()
        //more stuff
        self.init_vehicle()

    def create_contraint(self):
        physicsId = self.getPhysicsId()
        vehicle_constraint = constraints.createConstraint(physicsId, 0, 11)
        constraintId = vehicle_constraint.getConstraintId()
        return constraints.getVehicleConstraint(constraintId)

    def init_vehicle(self):
        for wheel in range(len(self.wheels)):
            self.vehicle_constraint_id.addWheel(self.wheels[wheel], self.wheel_position[wheel], self.suspension_angle[wheel], self.wheel_axis[wheel], self.suspension_height[wheel], self.wheel_radius[wheel], self.wheel_steer[wheel])
            self.vehicle_constraint_id.setSuspensionCompression(self.suspension_compression[wheel], wheel)
            self.vehicle_constraint_id.setTyreFriction(self.wheel_grip[wheel], wheel)
            self.vehicle_constraint_id.setSuspensionDamping(self.suspension_damping[wheel], wheel)
            self.vehicle_constraint_id.setSuspensionStiffness(self.suspension_stiffness[wheel], wheel)
            self.vehicle_constraint_id.setRollInfluence(self.roll_influence[wheel], wheel)

That produces the following error: if not hasattr(logic, 'CarBody6DoF') invalid syntax (the arrow points at the last apostrophe)

What version of blender are you using?. Also can you post an img of your logic editor and maybe a the blend file use https://blend-exchange.giantcowfilms.com.

OH... if not hasattr(logic, 'CarBody6DoF') > invalid syntax.  if not hasattr(logic, 'CarBody6DoF'):  missing : at the end of if sintax.

I'm trying the same thing as you and got stuck with steering too, but your code gave me a idea, your bug is more probably to be because you are assigning "SteerL_6DoF.setParam(5, steer, steer)" what gieve you no space for the wheel swing between min-max value making it unstable, i will try your code on my car now hehe and if works i will say there!


text:
Extrude edge loop along the 'average edge normal' direction
I have a following setup: a curve aligned to one of the main axes (e.g. z), so every vertex of that curve has z = same value. I want to extrude and offset the new vertices along the direction locally given by the average normal vector of the two adjacent edges projected onto the plane of the curve (gives two options, I want to be able to choose the direction) by the same constant offset so the resulting thickness is the same. I know this must be possible mathematically, because when I choose two adjacent edges, change the transform orientation from global to normal and move in 'z' direction, it moves exactly according to the average normal of those two edges. I hope this would be possible for individual vertices and their two shared edges.
I hope this picture demonstrates what I want...

Here is how it works for two adjacent edges...note that the vertex in the middle gets displaced along the exactly correct direction, which is the average direction of the normals of the two edges next to it. However, the vertices on either end are in slightly wrong direction...

Is this even possible? Did I miss something obvious in the "Extrude region and move" menu? I also tried solidify (which also warns the user that faces are needed for useful output) and bevel, none of which produced the desired effect. Thanks.

Related https://blender.stackexchange.com/questions/103093/2d-solidify-is-it-possible

First of all, my Blender (2.82a, very recent) does not have "edit tools 2" add-on. I assume it's merged within the mesh tools? Secondly, when I press W, I don't get any tools box, I instead see the circular select tool (one that is also activated with 'c'). I think Blender is evolving so quickly that that answer does not apply anymore (user Alexander Podgayko claims this works in 2.79) :/

This feels hacky but you can manage to get the result with modifiers.
Works best with the 2.82+ version for the weld modifier.
First, add a screw modifier set to Z with 2 steps and an angle of 0°, and a very low screw.

Next, add a solidify modifier set to "complex" mode and set the offset either to 1 or - 1

If you mind having a 3D mesh, you can merge each vertex to its closest one to go back to 2D, with a merge modifier. Set the threshold to the same value as the screw modifier.

This can not be the case depending on how the merge modifier works but on my end the mesh ends up slightly above the XY plane (ie the modifier keeps the "screwed" vertex instead of the original one), so you can add a displace modifier to put it back to Z = 0

Result :

This is COOL! :O and modifiers can be applied to vertex groups so I don't even have to worry about applying a modifier to a larger mesh with a part that needs to be "pathified"...well done!

Glad it helped ! Unfortunately the Screw modifier can't be applied to certain vertex groups... (yet), and it will destroy faces elsewhere. But the other ones can ! :) FYI the vertex group option in the weld modifier doesn't work in 2.82 but it is fixed in version 2.83 and up

Two possible workflows I can quickly think of.

Select all edges in Edit Mode, press F to make a face then inset it with i. Deal with the leftover "closing loop" in the end manually.

Just convert the edges into an actual Bezier Curve object with Alt + C > Curve from Mesh, then from the Properties Window > Curve Object Data Geometry > Bevel add a second curve as Bevel Object comprised of a single edge in $XY$ direction.
Make sure the main curve is set to 2D to get consistent width, and control width with either Curve Radius, directly adjust the bevel object, or with a Taper Object.

I like the option 1! (second one is rather unsuitable, as the curve is usually a part of a bigger mesh so converting to bezier is not very convenient, as one would have to first separate it and then rejoin after the deed is done). Any way to deal with the end vertices (you can see that in your example they are pointing wayyy inwards, which is caused by the normals at that point. One solution would be, I guess, add a dummy vertex on each end by extruding and edge sliding away (with clamping turned off)...that way the last vertex (the original one) will go along the normal direction.

"One solution would be, I guess, add a dummy vertex on each end by extruding and edge sliding away" As I was reading your comment I was thinking the same, should work fine


text:
How do I evenly emit particles from a surface?
Check out the image below:

Notice how the particles are emitted in distinct streams. What I need is for the particles to be emitted in the shape of the mesh they're coming from. I've tried all the options I can think of to get an even distribution but nothing seems to work. In particular, I was hoping that increasing the amount of subdivisions on the emitter would help, but no dice.

Increasing the subdivisions of the mesh should help, you will just need to make sure the subsurf modifier is above the particle system and then check 'Use Modifier Stack' in the particles panel.
Another option is to add some random velocity to the particles in the Velocity panel. It seems (based on brief testing) that adding random velocity will produce nicer results when emitting from volume as opposed to faces.

Thanks! I adjusted the location of the subsurface modifier and got better results. There were still some noticeable particle streams, so I randomized the velocity a bit. Here's the result: https://i.imgur.com/OxZ0kCe.png


text:
Why does the shape of my explosion keep changing?
I've been working on a simulating a Hollywood-style fireball. After playing around with Force Fields and whatnot, I've come across with a shape I'm generally happy with. Blender, however, seems hell bent on undoing my work. Everything I do seems to change the simulation.
Scrub through the timeline? Simulation changes. Save the file with a new name? Simulation changes. Pet my cat? Simulation changes. None of these should affect the sim, and yet, they do. This has made further tweaking nigh impossible. What's going on?

This sort of thing is usually calculated on the fly unless it's baked (which means you can sometimes get inconsistent results). Have you baked the relevant dynamics? Baked systems should replay consistently.

How does simulation changes if you save file with a different name? Scrabbing the timeline will invoke change of the flames and smoke as they are expected to move with time (the results will be different from only if you changed some options before scrabbing though). Baking the simulation will save results into files but if you scrab the timeline simulation will change in time as well - as it should.

I've had no issues with baking so far. I'm just wondering why scrubbing through the timeline sometimes changes the dynamics if I leave all the other settings alone. I've also had issues with enabling or disabling Smoke High Resolution radically changing the shape of the explosion. As I understand it, Smoke High Resolution adds detail without changing the dynamics of the sim.

Is the origin moving on the emitter or model or particle?


text:
Attaching gun to animated character
I have a character mesh I downloaded from blendswap, and autorigged / animated using mixamo.
I'd like to add a prop to the character, in this case a rifle. What's the easiest and most reliable way to place a weapon in the hands of my animated character?
I don't need to rig the weapon up to my character or anything, I just want to place a weapon in his hands (which are already animated to hold a weapon).

Select the weaponmodel and the character -> ctrl+j -> edit mode -> move to the right position.

no you do not want to join the gun mesh to the character.

Select the gun, then shift-select the bone for the hand on the mesh and then go ctrl + P > bone. the gun should then move with the bone.

but I can't select just the hand bone, I select the gun then if I select any bone it will select all the bones

nvm I just did it in pose mode


text:
Turns Black When Saved
So I'm trying to render a logo for something that I'm working on. However, when I save the picture, it is just shown as black when I go to where it's located. When I save anything outside of Blender, it works fine, but Blender is different. Can you help me?

Is your logo in black color and has alpha?

My logo is in black, but I don't know the alpha thing. I put the background transparent.


text:
Is there a way to 'update' and see changes to an appended object?
The situation I have is that there is a blender file called scene1.blend which contains an appended object called box.blend. I have made some changes to box.blend, how do I see those changes in the appended version in scene1.blend?

Possible duplicate of How can I reuse existing materials, objects, etc from an existing .blend?

If version of box.blend was appended and not linked then no way to see other than relinking into scene1.blend.

save the scene1 blend then go to File > Revert. That will reload the file updating any linked objects.

Based on what you describe, I think you're looking for Link, not Append.
Link, allows you to have the same object in two or more documents. Being linked, if you make changes to the original the same changes will happen in every linked document too. For this reason, you can't edit a linked object, you can only edit the original whereas Append creates a duplicate of the object.
Reload Linked files by going to the Blender File in the Outliner editor type, Right-clicking the linked file, and select Reload, Shortcut E .


text:
Layer two PNG images and and having both full color
Hi I've been at this for days and I'm sure there's a simple solution but being a bit of a blender novice I've not found it.
In this blender file Two PNG Layers I've got two png textures I'm trying to mix. The bit that is currently blue I'm going to make chrome (i just wanted it to be really obvious while i'm working on it). The problem I have is that using an add shader as the last step leaves the black skull layer opaque when I need them both solid.
If I take either one of the mix shaders before the final add shader and go to the material output I get them solid but obviously just one image at a time.
Thanks for any help

Copy your 'Black' image, and set it to 'Non-Color Data'
Put in the Mix Shader in place of the Add Shader, and plug the new image copy in as the factor.
You might want to keep your Add Shader for viewport work only.

Amazing thank you! I knew it'd be something easy but I've been trying different solutions for hours. - Thanks!

Glad it worked for you.


text:
Rendering with Nvidia Grid
I've been playing with an online service paperspace.io they do cloud computers. I was hoping to render on their computers when I only have access to my laptop.
They use Nvidia Grid cards and I can't see the Cuda option in the blender settings. I've installed the Cuda drivers etc.
Just wondered if it's even possible to render on Nvidia Grid cards?
Thanks

According to this Blender Artists post it seems to be supported, but it's probably badly optimized since it's an unusual setup. Are you trying to pre-set up NVidia Grids while working locally from your laptop? That would obviously be unavailable since the cards are lodged only on the server, not directly in the laptop

@DuarteFarrajotaRamos Paperspace is kind of like Virtual box but just online. You just load it up like a normal windows computer. I think it's got an Nvidia Grid k160, which I know are shared graphics cards. I think they're going to have dedicated Quadro's in the next week or so so I'll probably just wait for then. - thanks :)

Being a virtual computer there may not be a dedicated gpu for each instance, so Blender may not be able to see the card as being available. Also if you are running blender locally on your laptop it would obviously not be able to see the remote virtual cards

@DuarteFarrajotaRamos Yeah i think it's because it's a virtual computer. I wasn't going to run Blender on the laptop, only the virtual computer, that way it's doing all the heavy work and the laptop isn't

I vaguely remember hearing this in a YouTube video. From my understanding you can't. I don't remember what the video was called, but it was a general how to explanation video about Blender. I can try looking in my history

@KyraToomey yeahI don't think you can. I ended up building a pc with a couple of decent nvidia cards instead. Seems to work well for me now :)

authors: Николай Савушкин


text:
Is it possible to change image texture after Render?
As the title suggest, I have just discovered the wonderful blend4web, the current project I'm working on requires me to be able to change the image on my render outside of blender.
I've been able to achieve this somewhat with babylon.js, but being the complete novice I am at javascript it's difficult to fully impliment what I want.
So basically, I have a plane for example, with a image mapped onto it, export out to blend4web, and I would now like a way to change that image via the code inside the html document, without needing to go back into Blender and change it?
Is this possible?

First, check version of blend4web:
Before 17.08:
//load modules:
var m_tex       = require("textures");
var m_scenes    = require("scenes");

//get object
var obj = m_scenes.get_object_by_name("_object_name_");

//change texture in object
m_tex.change_image(obj, "_texture_name_", "_image_URL_" );

After 17.08:
var m_scenes  = require("scenes");
var m_tex = require("textures");

var obj = m_scenes.get_object_by_name("_object_name_");
var image = new Image();
image.onload = function() {
    m_tex.replace_image(obj, "_texture_name_", image);
}
image.src = "_image_URL_";

Where:
_object_name_ is the name of your plane in Blender:

_texture_name_ is the name of texture data block  in Blender:

_image_URL_ url of your image in web.
More information:
https://www.blend4web.com/api_doc/module-textures.html#.replace_image
Live example:
https://www.blend4web.com/apps/code_snippets/code_snippets.html?scene=change_image

Thanks for the quick reply! Nice to know it can be done, just need to decipher your answer and figure out how haha.


text:
How can I animate hair particles by hand?
Hey on the goosebery branch there was a possibility of animating hair through shape keys, I'm wondering when we will have this feature available ? In my project I need to make a cloth land on a grass field and need to have the grass react accordingly, this is impossible to do dynamically without hair penetrating the cloth. Any Idea on how I can achieve this without having to spend a huge amount of time using goosebery build and lacking 2,5 years of features ?
Thanks in advance


text:
Curls not showing in render
I downloaded Blender yesterday and had a bit of fun sculpting. I was trying to add curly hair to my model and it seems to be working in the display but not in the render (see images).
What am I missing?
Thanks! Oli

Make sure your render strand steps (currently 3, under the render heading in particle settings) match your viewport settings (currently 7, under Display in particle settings). With curly hair you may need quite a few steps to capture all the bends.
You may also need to adjust the scaling value under Cycles Hair Settings if you want the strands to be thinner.


text:
Why is the UV being distorted when transferring to a copy of the model?
I'm making a model for a Unity game. I have the model finished, as well as the Texture & Lightmap UVs on separate copies of the model from another program (Headus UVLayout). I just need to apply both UVs to one copy of the model to be imported into Unity. However, the new UV is a spaghetti mess. I've done this dozens of times before with no issues. Images below.
Final model

Both copies of the model require 2 UVs, so one can be overwritten with the other

The final result has always been one model with two accurate UVs, one being the texture UV and the other being the lightmap UV. But now it  results in a mess that doesn't even look like both UVs combined.
Am I doing something stupid? I've double checked the process and I'm not seeing anything different from how it's always been done.

I haven't solved the specific problem, but I have solved the main issue. Turns out Unity can automatically make lightmaps. I'm uncertain about how efficient it is, but it works on this model well.

When going back and forth between programs, sometimes the vertex indices get changed (reordered). Since UV maps are basically 2D coordinates stored on vertices (face corners really), mixing up vertex indices will also mess up UV maps (any attribute really).
Try using the Data Transfer operator instead, and use one of the "Nearest Corner (...)" mapping options.
Cf manual : https://docs.blender.org/manual/en/latest/scene_layout/object/editing/link_transfer/transfer_mesh_data.html
You should also look for something called "maintain vertex order/indices" in your exporter to avoid this issue next time.

Thanks for the help, but unfortunately Headus' export options didn't improve the situation.

Alright, what about using Data Transfer? I saw you managed to work around the entire issue, that's good


text:
Modifying blend weights without "painting"
Instead of using the painting tool to assign blend weights for rigging, how can I manually key in the weight for each vertex?

In the right (N) panel in the 3D view, there's a section called "Vertex Weights". It lists all the weights the active vertex is assigned to, and you can change any of them here.
Note that this only works for the active vertex, not all the ones you have selected. If you want to assign the same weight to a group for all the selected vertices, go to the Mesh tab in the Properties panel, go to the Vertex Groups section, find your group and set your weight, and hit Assign.

Thank you. It's annoying trying to apply color-coded blend weights to inorganic mesh parts. The color for 0 is visually identical to .01, which makes a difference when dealing with parts that shouldn't stretch at all while moving.

You're quite welcome, glad I could help!


text:
Best Practices For Compositing a Complicated Animated Scene
I'm working on an animated scene that I would describe as complicated.

The scene is large so to decrease the memory load, I have each part of the scene split into a separate .blend file. Each building (there are 14) get their own .blend file. Each of which is around or greater than 40mb

Then I have separate file for the road and a file for the figures. I'm basically trying to follow how to render a complex scene but with each layer in its own file.
The problem is, and this can be seen in the image I posted above, my layers are not front to back, because sometimes my figures are behind a building.

I was thinking maybe I could somehow use the offending building as a mask over my figures in a separate composite. Something like this:

But then any figures in the foreground get cut off.
Is there a solution to this problem? Right now my idea is to render every single figure on its own layer. But I have 35 and that sounds like a pain.
What are the best practices for compositing a complicated animated scene taking into account changing foreground and background objects?

Looking at your image, there seem to be other issues as well. For example, the building are not casting shadows onto many of the mini-figures, and sometimes shadows are being double counted (when the mini-figures are in shadow themselves).
The best solution, considering you are working with lego-animation, would probably be instancing. Most objects that appear in your scene appear multiple times, so instancing them could save an insane amount of memory. I'm willing to bet you could get at least a 5-10x reduction.


text:
How To Prevent Appending An Object Changing Cycles Material
I'm new to Cycles.
I have an object in one file with a material set:

When I append this object into another file, the material changes:

How do I prevent this from happening?

You appear to have disabled (or significantly changed) color management in the first file. The actual material settings appear to be the same.

Thank you! The first file was saved from a version of blender that was a few (3+) years old. It must have been causing the issue. I imported the models/materials into a new file, saved over the old file, and I can now append with no problem. Thank you!


text:
I can't move objects
I imported an object into my model, and now I can't move anything! I can scale and rotate just fine, but whenever I try to move an object, it acts like the arrows aren't even there!

Are the locks on the XYZ axis set?

Try Ctrl + . (Dot)
i don't know what it does. But it works.

Ctrl . worked for me. Thanks :)

From your question it seems you use 3D manipulator to translate objects. In this case make sure proper mode of manipulator is checked - arrow as its icon for translating. You can choose multiple manipulators by clicking on icons with Shift.


text:
Soft body ball just teleports down
soft body ball just "teleports" down.

Download Blender File

It runs fine on my PC, I think your Cache is messed up. Try "Free all bakes" then rerun the simulation (from frame 1).

ok i will try it


text:
Is it possible to get the path of a .blend file from within OSL?
I'm aware of how to do this with Python, that won't solve the issue in an ideal way for me. Introducing Python is uncomfortably outside of the scope of what I'm writing.
I'm attempting to use a texture lookup from within OSL, as part of a tutorial I'm creating; but the default working directory is the same as Blender's. That makes it very difficult to write portable code that will work on any other machine--I can't use relative paths. I'm really trying to ensure that the tutorial file will immediately work on 2.92, on any machine, out-of-the-box.
Is there a manner in which OSL can retrieve the path to the current .blend file internally?

You can prefix the filename with ‘//‘ to indicate the directory of the current .blend file. Does that not work for your case?

@RichSedman In the case of OSL-internal, it does not. I get an error-pink texture.

It seems I can use "//" in an input field to my OSL node, though! It simply doesn't work inside the script. This is very helpful. I can just make the file path a parameter on the shader. This way, it's handled by some other part of Blender.

I've just re-tested this and I found I had to use '///' (instead of just '//') as a prefix or it didn't work!! Also, you're right - it's the Blender node that's doing the filename conversion on the string; I always thought it was the OSL side that was doing this.... this does mean that all strings are being interpreted this way!

Alright, so '//' and '///' have subtly different meanings... On Windows, '//' prefixes with the local path using the O/S file path delimiter (eg,'c:\users\rsedman\Desktop' - ie, backslashes) and '///' does the same but forcing '/' as the path separator (eg, 'c:/users/rsedman/Desktop/...')

Thanks, but I'm using Linux Mint, so I wouldn't have been bothered by that.

OSL itself doesn't provide any facilities to access files relative to the .blend file.
However, when passing a 'string' into an OSL script node, Blender automatically assumes that the string represents a filename. As with other filenames in Blender, prefixing the filename with '//' will indicate a path relative to the saved .blend file.
Therefore, in order to get the filepath to the .blend in an OSL shader simply add a 'string' input and set its value (within the node field) to '//'.

Wow. That is arcane (at least, to me).  If you don't mind me asking :) Where does that info come from?

Of course I don’t :-) I actually happened across this little feature as part of another answer regarding OSL and image filenames - and verified by reviewing the OSL api document (although some of the features in there haven’t actually been implemented yet (as picked out of the source code!)


text:
Is it possible to get the output of a different material available as a node?
I'm building a model of a piece of swampland, and I'm hoping to use a material-blending technique I know from Unity to handle its appearance. It involves lerping between multiple other materials using RGBA values.
This would be particularly easy if I could simply reference another material, as it would exist under the given conditions, as a node; and receive its color and other properties as pins. However, I've seen nothing like this, and as of the moment, the best I can do is manually copy the node map of my target material to the current node map, and in the best case make it a node group.
This feels terribly inefficient to me!
Am I overlooking an elephant in the room?

Shader Mix node will do what you want, together with node groups

But I would, effectively, still have to copy the nodes from one material to another?

Possible duplicate of Can I make a custom node from a group and have that available in other projects?


text:
Is it possible to "dissolve" a driver and commit its effects on an animated armature?
My ultimate goal is to export an animation from Blender to Unreal. This is generally done by filmbox (FBX) files. However, my animation relies somewhat on drivers, which do not seem to export through FBX.
However, armature animations (and even scaling/rotating/translating) do export, which coverse the second half of my animations; so it seems like it should be easy to work around. Currently I've been manually transforming every armature to match what the driver would have had it doing, and this has worked well enough, but it is fairly tedious.
Is it possible to "commit" a driver's actions in an animation and remove it, simply leaving everything moving as it would have with the driver around? If so, how does one do it?

You should be able to use Bake Action to bake the driver to a set of keyframes - you can then disable the driver.

Thanks, @RichSedman; I figured it out. You just saved me maybe a day of time.

Figured it out, with the help of Rich Sedman.
What I'm doing now is establishing a complete animation in Blender, with the use of drivers and empties. Blender drivers are python-dependent, so of course they don't export; but by doing the following I can make the FBX animation-ready.

Bake the movement of the empty. (This option is in the 3D view, under Object->Animation->Bake Action)
Bake the animation of the target mesh in the same way.
Open up the graph view, go to Drivers and then the driver pane on the right, and remove the driver. It's no longer necessary.
Delete the empty that was in use. I suggest this because otherwise, the animation applying to the empty will still export; and FBX doesn't do much for identifying which meshes are associated with which animations. Tools like Unreal and Unity will get confused, and most likely apply it to the end mesh.
Export the animation as an FBX file, and it should be ready to use.

I want to echo these instructions for Blender 3.3 (and the importance of deleting the drivers manually via the Driver Editor). My setup is "Object" with custom property "P" parented to "Armature" with "Bone". P drives the X rotation on Bone with keyframes on "Action". I can bake the animation on Armature via Object mode->Object->Animation->Bake Action (selecting Bake Data as "Pose"). If I delete the original "Action", however, the baked keyframes appear in the Dope Sheet but the model doesn't move.

There was no option for deleting the driver by right-clicking the X rotation on the Bone Properties panel in Pose mode. The X rotation on "Bone" was actually highlighted in brown/yellow (not purple).
I needed to open the Driver Editor (Shift-F6, or select from the Animation section of the dropdown window selection panel) and delete the drivers manually. After that, the source Action could be deleted and the baked animation remains.


text:
Video Software Advice
I know this is not directly blender related, but I do not know where else to ask for me to get helpful answers.
I am working with blender and actually making a video for the first time. I am syncing it to a music file I have, and have rendered out each picture for every frame because I was originally advised to do it that way.
I need advice on what program I should use to put videos together in. My school is currently providing iMovie for me, but my future projects will not have access to this or any Apple computers. Whether the programs are free or not, I would simply find it helpful to get some recommendations on what video editors and techniques that others have found to be helpful. I have only a slight idea of what most people use, and I never know what version of a product to get. I have already tried using my version of Adobe Permier, but it just crashed a few times and then refused to cooperate with importing my media.
So, any general advice to help a new animator?

Blender has a video sequence editor. Does this not meet your needs for any specific reason?

I'm voting to close this question as off-topic because it's not about Blender itself.

Ask on Software recomandations.

If you want to try out a wonderful piece of software that is free as in beer and used in extremely high end finishing, try Davinci Resolve 14.

Blender can also be used as a video editor (select Video Editing from the Choose Screen Layout dropdown near the top). It can be used to import video, sound, and even scenes before they are rendered. The video can then be exported by rendering the animation for scene 1 (best to use a video file for export).


text:
Combinate path and normal animation?
I have a short question. I want to animate a man, who walks through the room, then takes a chair and sits down.
I want to make a walk cycle and then a follow path animation for the walking part. When the man reaches the chair, can I continue to animate the man normally? Like "out" of the path I mean?
Thanks a lot

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

and this the keyframe after (101-200)

and this would be the result

thanks, i'm not sure if that's the technique i'm looking for but i'll give it a try :)


text:
What is the most efficient way to paint a 3D Sculpture?

Hello Everyone,
I am new to Blender and digital sculpting, I've only been at this a month or so. Thus far I've been unable to find a good resource regarding painting digital sculpts that will be used for illustrative purposes. Therefore I do not wish to make low-poly versions. Attached are a few busts I've created of some of my characters ranging from caricature, fantasy as well as cartoon. I'm looking for an efficient way to paint these for rendering in Cycles. Does anyone have any recommendations as to best-practices for painting high-poly sculpts that will be used for digital illustration and not gaming? Is there a some additional software I could get for this purpose?
Thank you in advance for your help!
Best regards,
David Mansch
www.mansch.com

Welcome to Blender.Se. I think that there are many different ways to approach the problem. Try to tell more about your goals and restrictions, why you are not satified with for example texture painting/vertex painting, why you would like to use additional software, for which purpose, what kind of style you have in mind....

You may use vertex paint (https://wiki.blender.org/index.php/Doc:2.4/Manual/Materials/Vertex_Paint).

I'm a traditional illustrator hoping to expand into the 3D world. The painting toolset within Blender, so far, does not seem very efficient. I was hoping to paint directly to the sculpt similar to painting in Zbrush. I could use Painter, but the thought of laying out uv's in a clean manner for such a high-poly workflow is mind boggling. I was under the assumption Blender could handle this task. I am enjoying working with Blender and am hoping there is a workflow to support high-quality painting directly to the sculpt.

I tried Vertex Paint but it doesn't seem to render in Cycles, plus the toolset is lacking.

Vertex Paint can be rendered in Cycles just fine, see https://blender.stackexchange.com/questions/19459/how-can-vertex-paint-be-rendered. Vertex paint is the nearest alternative of the PolyPaint in ZBrush. Regarding the toolset provide more info about your needs and what you don't find; "lacking" doesn't explain anything

Mr Zak thank you for the link, very helpful!

Use Vertex Paint mode to color the sculpt. To make the vertex colors renderable set the nodes as pictured below (add the Atribute node with the vertex color's name and use it as a Diffuse color). There are some limitations in this method though- you have the access to only few brushes (compared to the ones available in Texture Paint mode) and the sculpted mesh should be very dense if you want to paint some detailed strokes.

Thank you Paul, exactly what I needed. You're a gentleman and a scholar!

Thank you for the kind words David. I've visited your website and have to admit you're a very talented illustrator. Really love your style. Awesome works!


text:
How does a texture image file get mapped on an OBJ model?
I am trying to understand how a texture image is mapped on an OBJ file. For example, if you map below color grid image (texture) on the capsule obj model (screenshot #1), it looks like the screenshot #2.
QUESTION:
How do we know where the first pixel on the top left corner of the texture file will stay on the OBJ model surface? Does the OBJ file carry such a data? Or are there certain rules/protocols about texture mapping? Or does Blender have internal logic? I'd like to know the fundamental principle of texture mapping. Any help would be appreciated.

Grid Image (texture)

Screenshot #1

Screenshot #2
Model source: http://paulbourke.net/dataformats/obj/minobj.html

The reason is because the capsule object already has a UV Map, as shown in the image below.
The OBJ file format keeps the UV coordinates, which are assigned during unwrapping of your model in the UV space.

The answer to "How do we know where the first pixel on the top left corner of the texture file will stay on the OBJ model surface?" is unwrapping. Basically, when you unwrap your model, you unfold it so you can have a 2D projection of it. A simple object like the capsule is fairly simple to unwrap to a single part. But if you have a more complex object (such as Suzanne), you have to separate your mesh in several parts by creating Seams, and unfold one part at a time, to get a result like this:

This procedure is fundamental to apply textures on your model: any other texture will be applied based on the UV map coordinates that you have created. My suggestion is to use a checker color grid while you unwrap your model, so you can have a nice preview of how the textures will be applied on your model:

Keep in mind this concept: any other texture will be applied in the same exact way the color grid is applied. You have to take control of the distortions: it's normal to have some distortion while unwrapping your model (because you convert your model from 3D to 2D). Adding seams reduce a lot the distortions on your unwrap. Anyway, common mistakes at the beginning are:

stretched and/or squashed uvs (first image below)
not uniform scale of the projections (second image below)

The model is correctly unwrapped when you see perfect squared numbers of the color grid texture over all the parts of your model.
Useful resources:

Darrin Lile - Basics of UV Map
Darrin Lile - Character UV Map

Thanks so much, @G. Garone. Beautifully explained!! I have another question—do other file formats such as gltf, fbx, and dae contain UV mapping data in the models?

You're welcome! Yes, FBX, GLTF, OBJ and DAE keep UV mapping data. PLY file format too, but sometimes getting this information is a bit more tricky. However this format is mostly used in 3D scanning context.


text:
Is it possible to animate a single mesh with multiple armatures at once?
As a short background, I'm doing a lot of animation keying in a study of my ideal workflow, typically from Blender to Unreal (or Unity). I've learned a lot about armatures and shape keys; but I have a singular curiosity.
Is it possible, without merging the armatures in any way, to parent a mesh to more than one skeleton at the same time? As in, if I want one set of bones to be the basis for an animation, but without using shape keys, I want to add a portable addition onto it for another animation?
I tried parenting one armature to another, but it didn't seem to want to work on the base mesh.

You can't parent a mesh to multiple armatures, but you can have multiple armatures deforming a single mesh. As armatures can have multiple bones, it wouldn't normally be needed.
I don't think that any of the following will export to Unreal or Unity, so this would only relate to animations to be rendered using blender  -
Parenting the armatures to each other will only move them together in object mode. Within blender, you could use a child of constraint to have multiple armatures move as one in pose mode when desired, you can animate the influence to turn it on/off. This also allows you to parent it to different armatures or bones at different times. Other constraints may also give a desired result.

For an object, you can add as many armature modifiers as you want, each modifier then uses a different armature. Instead of using the Parent->Armature Deform options, you will want to add and set each modifier manually. The catch is that the bone names are used to link bones to which vertex groups they move, unless you are using bone envelopes, that means the armatures will need to use unique bone names between them or multiple bones will move the same vertices.


text:
How to stretch out animation time for a volume object
Blender volumes are great; particularly when I've got a scene (as I do right now) with a number of fluid effects going on. I can simply save them into a directory as a bunch of OpenVDB files and import them as a volume, once I have them looking right. This is great for animations in which I want to add physics effects incrementally.
The problem is, I have my volume (a cloud from a firework) saved in a folder, but need to stretch it out in sync with an expanded animation length. I decided to expand my animation from 250 frames to 700. However, I can't figure out how to get the frames of the volume to step any slower and match this change.

I see plenty of possibilities for changing the start frame, the frame count, the resolution, and other things; but nothing for interpolation or stretching out time. How does one do this?

How should be calculated missing information for frames ..., 2, 3, ..., 5, 6, ..., 8, 9, ... for such extended animation? Volumetrics are like 3D texture what would be algorithm to calculate transition between those? For changing start you have Offset parametr.


text:
Does cloth baking take a (steadily increasing) number of frame samples into account? Can I control the count?
So, when I'm baking a cloth simulation, I generally only need so much precision in the beginning. I'm still lining up my model and getting everything in place; until I know that it is what it's meant to be, I stick to simplistics.
Workspace renderer. Minimum modifiers. 640x480 (or even QVGA at 320x240). I do the animation before the major sculpting, and then add on to it, a little at a time.
The problem I'm seeing comes into play when my character is wearing something with a cloth modifier. Baking it can help later, but it seems as though with every passing frame, I have to wait a little longer. As an artist who is also a programmer, it occurs to me that this might be because, instead of mapping velocity persistently for each point on the mesh, it might be looking over the time curve of every point on the cloth mesh up to that frame. So, frame two might only need one frame to determine its velocity; but frame 249 might have 248 frames to look over and combine with some kind of Poisson distribution most likely.
This is a good thing, but I can't prove it—I have no idea where in the source code to look. However, if it is true, is it possible to set a maximum number of frames to look back through when baking cloth? Can I limit it to, say, thirty two frames?


text:
Is it possible to add boid behavior to a Geometry Node point distribution?
Specifically, I would like to know what the vector is to the closest other point created in geometry nodes. I created them with the standard Point Distribute. This is basically Boid behavior, where each "particle" is attempting to maintain an ideal distance from other particles.
It feels like it should be very possible; but I'm not sure it's been implemented yet. Perhaps someone here with more familiarity with geometry nodes can help me out?

Do you want the Vector, or do you just want to define a min distance?

I'm ultimately trying to add realistic-ish flow behavior to a point map driving a mud flow. A minimum distance would work, especially if I could just add a Hooke force to it; but I've already implemented a velocity parameter so a vector would be ideal. It currently looks good, but a minimum distance would make it look better.


text:
Blender + Ni Mate (Mocap Animation)
I made an animation with Blender + Ni Mate using the Kinect v2, i have followed this tutorial: https://www.youtube.com/watch?v=1UPZtS5LVvw
I have my own armature that is copying the ni mate armature, but when i record the animation, blender puts the animation movement on the bones of the ni-mate kinect armature, so when i export the animation in a fbx file and import on unity there's a lot of animation files.
Is it possible to do this animation in to my own armature and export as an fbx or other type of file and import into Unity?

I had the same problem and I found a solution to it. It's a function called "Bake Action".
Select all the kinect-empties, select the armature you want to have the action on and either use the space bar to search for "bake action" or click the button at the side menu under "Animation". In the pop-up window deselect "Only Selected" and select "Visual Keying", "Clear Constraints" and "Pose". Press "Okay" and your selected armature should now have an Action that is suitable to be played in Unity.
Source for Action baking: https://www.blend4web.com/en/forums/topic/271/


text:
Cloth simulation plus attached object

I have 2 objects. Zipper and a case. Both objects have a cloth simulation. I need to connect these objects together to animate together and create something like in the third image.
I tried to merge objects into one, vertex parent zipper and case, pin case to the zipper... But none of that worked. Maybe I tried the wrong way.
Is there a way how to get the two objects into one and achieve they correctly deform together?

follow-up question: https://blender.stackexchange.com/q/309441/107598

Finally I solved it with MeshDeform Modifier. It is simple and effective.
I made a mesh around zipper and case and assign Cloth Simulation to it. Then I assigned MeshDeform to the zipper and the case and for Object I used the mesh with Cloth Simulation.
I followed this tutorial: blender Quick Tips - Cloth Simulation for Animations

Would you expand your solution so that people can understand the answer without the video? Because it's no longer available, the link is dead. That's why it is highly suggested here to explain the method in the answer itself and not rely on external links.


text:
Procedural texture is not visible in render
I made procedural texture, but it is only visible in material viewport shading but not in rendered view or rendered image.
Can anyone please advise me what is wrong?

Could you possibly post the .blend file?

Your node tree is an incoherent mess. You have textures connected to shader input, and shader output driving colors, no input for texture coordinates. Mind your data flow and match socket colors

@DuarteFarrajotaRamos Texture coordinate input might not be necessary depending on what OP is after. Regarding the nodes - yes. Posted an answer below.

The problem is with the 'Add Shader' node before the color ramp node. This is because the 'fac' input to the color ramp node should be a value. Instead the 'Add Shader' node gives a shader which the colorramp node can't understand properly.Also, ideally the 'Add Shader' node should take shaders as inputs instead of color or values.

In the place of the 'Add Shader' node, use 'Math' node and change it to add.Math node can be accessed by Converter>Math

The node setup will look something like this.

You are using an Add Shader, but aren't inputting any shaders there but only values from your textures. Replace that Add Shader by a Color - Mix RGB node and switch that to Add. Then it should work as expected.


text:
I am using metric system in Blender but bevel properties (Amount) is in blender units
Why I'm having blender units in bevel properties even thou I am using metric system? Please see the attached image.


text:
Select similar vertex in a symmetric mesh
I'm looking for a way to speed up my work in blender, i have a mesh, decagon polygon. I want to select all the vertex similar like in the picture below. Is there a quick way to do this ? without doing everytime with mouse. I found the SHIFT+G option but it didn't resolve my problem. Thank you

What do you mean similar to the vertex? Do you mean you want to select that whole loop quickly?

Not the entire loop cut, but just a couple of vertex for every edge of the loop cut as i did in the picture above.What i mean if is there a way to select all of the vertex  of a mesh with a certain pattern, if this pattern is repeated more time in the mesh.

The simplest way to select everything in that loop but vertices in the middle is to use Shift+G > By Length in Edge selection mode. Select one long edge from the loop and run Select Similar command.

Then convert that selection to the pattern shown on your screenshot by changing Selection mode to Vertex.
However this way may not be the best since it will select all the edges falling under the specified length threshold (length of the active edge).
Another way is to use Checker Deselect to deselect vertices you don't need to be selected according to certain pattern.
First select the edge loop with Alt+RMB on it. Then deselect and select again vertex in between long edges to make it active. Run Checker Deselect from Select menu in the viewport footer or from the Spacebar menu. Change its settings to Nth Selection - 2 (to deselect every 2nd element), Skip - 2 (to skip every 2 steps of selection) and Offset - to 2 (to offset the start of selection).

Checker Deselect is so powerfull. I didn't know that. Thank you


text:
Reset vector where objects are added to origin (0, 0, 0)
Some time ago I was following a tutorial that I can no longer find in which the presenter suggests to edit a setting that changes the vector an object is added to the vector of the 3d cursor rather than origin (0 ,0, 0). Can somebody direct me how to find this setting again?

Most objects are already by default added to the 3D Cursor position, not scene origin. Could you clarify what you mean?

I might be mistaken then. I thought that objects were added to scene origin before I changed the setting, but its been a while since I've done it so I can't recall. Is there a setting that does this though? (places objects at scene origin rather than 3d cursor when added)

I'm not aware of anything like that. Closest thing I recal is new object alignment setting found in User Preferences > Editing > Align to, which can be World or View

You can change coordinates in the Location field in the Last Operator panel for Add primitive menu and set there 0,0,0 (use an old trick for entering all 3 values quickly - set the mouse in the top-most field and drag it all the way through to the bottom-most field, then type a value).

However there doesn't appear to be any default way to save this into user preferences to use later. It's possible to edit the location of the object afterwards by placing 3D cursor to scene origin though (Shift++S > Cursor To Center) and then aligning object to the cursor (Shift++S > Selection To Cursor). See Precisely move the 3D cursor and The easiest way to move an object to 3D cursor for more info.

Or, alt-g to reset the object origin to world origin.


text:
BGE Game LogicImport
I'm doing some game with city traffic in BGE. I'd like to spawn driving cars near player using script but I want to give them different Game Logic on spawn dynamically and randomly (for different types of drivers like agressive or calm). Is it possible to import GameLogic from file or object from other .blend file? I know it is possible using bpy but how to do it in bge?
Thanks in advance.

Within Blender (and the BGE) the logic is assigned to the game object and can't be exchanged. This means the behavior is fixed assigned to a specific game object.
But there are options to work with that.
Separate objects
Have one object with the behavior and others for representation. This way you can exchange the behavior be assigning another behavior object. You can establish the relationship via parenting.
Composition pattern (Python only)
You object gets fixed high-level behavior. E.g. Perform the driving behavior.
Your code is designed around the composition pattern. For example the car can have a driver. The driver performs the driving behavior. You can have one driver for aggressive driving and one for calm driving etc.. They all share the same interface to the car.
Before driving you assign a specific driver to the car. You can even exchange the driver on-the-fly.
This design fits very well
- on a discrete number of driver tpyes
- the driver types have not much in common (they are very different)
- you want to add further driver types later
The different driver types are Independent of each other.
Parametric
You have one driver's behavior that can be controlled by different parameters e.g. aggressiveness.
This fits well
- when there is smooth transition from one behavior to the other. e.g. aggressiveness 0.0 .. 1.0
- when the different behaviors are pretty similar


text:
How can I disable bpy.ops.convert objects sorting?
I would like to iterate through all objects in my scene and change their type to Mesh using script. It works, however after every iteration blender sorts all objects on the map (I've got over 130 000 objects). It is realy slowing down the process.
Is there a way to disable it through some function or just modify convert function in Blender source code? (I've tried to look for it but I failed, do someone knows where is it exactly?)
Or maybe there is another way to convert curves to meshes or optimize it?
Thanks in advance for any help. Cheers
My convert function:
def to_mesh(obj):
    obj.select = True
    bpy.context.scene.objects.active = obj
    bpy.ops.object.convert(target = 'MESH')
    obj.select = False

Console output. I think that the process is so slow because convert sorts all objects after operation (ordered on the top), or am I wrong?

Run the operator once for all curves
I imagine you are getting poor performance because you are running the operator for each curve object, rather than once for all.  See Python performance with Blender operators
Suggest selecting all the curves in scene, and running the operator once, example test code.
import bpy

context = bpy.context

# select only curves
for o in context.scene.objects:
    o.select = o.type == 'CURVE'

curves = context.selected_objects
if curves:
    # just in case context object not a curve
    if not context.object.select:
        context.scene.objects.active = curves[0]
    # convert them all
    bpy.ops.object.convert(target='MESH')

As for the sorting, that's just what blender does in its background processing, and is I doubt responsible for slowing down your blender.
There is also the Object.to_mesh which can be used to convert the curve to mesh without using the operator. However in this case I think selecting all curves and converting with one operator call is sufficient.

Thank you so much. That's what I needed. But maybe you can help me with another problem? What if I want to do the same with converting this meshes physics type to 'NAVMESH'? I looked for answer in your link, theres much help about operations but nothing about physics type. Cheers, and again, thanks for help.

Related  After the convert operator all new meshes will be context.selected_objects either loop thru and set ob.game.physics_type = 'NAVMESH' or if you want a single mesh,  join them bpy.ops.object.join() then  context.object.game.physics_type = 'NAVMESH'


text:
Cycles Baking to .EXR - Workflow questions!
I baked lightmaps for several objects for my archviz Scene into .exr and now i want to tonemap the maps and save them as 16bit-.png for final use in my shaders.
The tonemapping with Reinhard in the Compositor gives me a good result, Problem is that if I run the Operator with the same Settings, the resulting maps do not look coherent (difference in brightness/contrast).
I think this is to be expected, because every object captures different luminance values and there is no reference to the value range of the whole Scene. I definetly would like to generate maps with value range from 0-1 as 16bit-.pngs (to avoid banding), because we will afterwards render texture-overlay and reflections on top in Cycles and if I take underlying .exrs I think I will need more samples for final Rendering to clean up noise. (render time is critical, 5min Animation / 360°- pano-movie / 8K).
Thank you all in advance for every idea or answer regarding this Topic!


text:
Help With UV Maps?
Well I am working with vectors right now and I kinda ran into a problem with textures. I was going to export the UV map so I could paste the texture over and have it properly put in but . . .

There doesn't seem to be a UV option in the image editor. :L
Anyone know how to fix or if I'm doing something wrong? I'm probably doing something wrong.

might be a stupid question but have you unwrapped it?

You can't unwrap bezier curve objects. If it is just a simple image applied to the bounds use Generated texture coordinates, otherwise convert (a copy) to mesh and unwrap.

Oh, well I don't know how to use generated texture coordinates.


text:
How Do I Texture Curves Using Generated Textures?
So I've been trying to texture this thing for the past month or so and I've made no progress at all. I'm trying to keep the bezier curve because it makes animating it much easier but I'm trying to add a texture. I tried using generated textures but it ended up looking like a weird and badly warped image of the texture I was trying to use. I want the image to display as if it were lain on top of the image and not stretched around. I was considering exporting a texture map but that seems to require a UV which requires it be a mesh, which is not what I want to use. And I don't know why but it started rendering wrong

As you can see, in the render it has a much less curved object rendered. I've really no idea what I'm doing wrong; help?

what is the animation that is easier when it is a curve? It might be you can convert it to a mesh for texturing and use something else to get the animation effect.

Well the way I animate I have to move the nodes around because my characters don't have rigid bodies all the time. So when they swing around their arms they tend to turn into shapeless blobs for a bit. I was considering turning it to a mesh and doing each frame but then I'd end up back where I started, doing each part of the animation frame by frame. With a mesh there are a gazillion more smaller nodes.

Don't needlessly convert to mesh just for texturing unless necessary. What is the texture you want to overlay and why isn't it working? Most of the time using either Generated or Object texture coordinates should suffice

I'm trying to put this one: https://i.imgur.com/3d7K6YJ.png but minus the legs. For some reason when it comes up on there it just renders it blue with a few blocky patches that are darker and that's it.


text:
Is it possible to output two sample levels from the same render?
I'm working on a sizable animation which may end up having around 512 samples to ideally handle hair follicles; maybe more. This is going to take time to do. Incidentally, I'm also on a soft deadline for it, and would love it if I could somehow do the following.
I would like to set the sample count to my ideal 512 for the final render, but have the same render, as of, say, 32 or 64 samples, output to a second image on disk. I would have a high-sample-count and a low-sample-count rendering. I would like to avoid doing the work of that first smaller-sample-count render twice; as there are over a thousand frames, and counting, on this animation and it's going to add up.
It occurs to me that Blender is in a specific state during the rendering process, which should be deterministic and enumerable, and it would wonderful if I could, say, render it in 32-samples first, and then cache that state somewhere on disk; then return to it when I'm ready for the all-out 512 sample render of the animation so it doesn't have to rework the first thirty two samples.
This animation is partially for a game, and if a set of textures/sprites/etc. could be modeled in low detail, they could be immediately inserted into, and "fitted" to, the code; then replaced with their higher-quality equivalents later on without any hassle.
I'm now wondering if this has already been done, and might be possible? I get that it would be dependent on an unchanged model, that's fine. It won't be a problem to do a handful of frames twice to correct an error, as long as I catch it at 32 samples.

If they understand the time constraint and limitations, would it be possible to give them an eevee render in the meantime?  It would be much quicker to iterate on any changes.  Edit: perhaps not with some of the features you're using, idk

This feature which will be available in one of the next versions  might help https://developer.blender.org/rBc63e735f6b601e662fbb1ed5d7a71293552d6720

@Gorgious That is a juicy-looking feature which I will definitely use down the line! Unfortunately it'll happen well after my deadline. Thanks!

@MichaelMacha Well I believe it is already available in the latest 3.1 alpha version which you can download. Although wouldn't recommend using on full production project, creating a standalone file just for rendering can't really hurt the rest of the workflow. Food for thought :) https://builder.blender.org/download/daily/

@Gorgious, an interesting notion, I'm hoping to wait for 3.1 before I depend on it for a project in an alpha state, though. If I slip up and lose access to a file, it's of course a big deal.

@Allen Simpson I actually am generally using Eevee for initial geometry checks, it's wonderful for that. You're right, though, some features only work on a ray tracer like Cycles; if I've got some kind of material error Eevee may not catch it. If it's a firefly problem, it definitely won't! But thank you!


text:
When snapping to faces, is it possible to snap with an offset?
I frequently use the snap-to tool modifier, typically (but not always) to the closest face, when I'm modeling clothing.

While this is very useful, I consistently have to make adjustments afterwards, usually with Alt+S (scale along normal), to remove intersections with some stray faces.
It would be incredibly useful if, like with the Shrink Wrap modifier, I could simply snap to the face plus an offset.

It's useful and obvious enough that I'm not the least bit certain that I actually can't do this, and am not simply failing to see the option. Can this be done, and if so, how?

Michael, As you say this would be useful.. but I think the best way to do it is to have a shrinkwrap modifier on the clothing using Outside Surface and toggle On Cage so it shows as you do the remeshing on the clothes.


text:
How can I programmatically control a video texture frame?
There are many different reasons why I might want to do this; but at the moment, I'm attempting to splice a complicated pre-rendered scene into a new one, so that the angle to the camera will control the frame of the video. (That way, I can "fake" an even more complicated scene with an older one.)
I know that I can add a texture to a shader, and set it to a video, for a video texture; I also know that I can set start and end frames. However, there are no feeds into these values—I can't just noodle the camera angle, with a little math, onto a frame input to solve the problem—and attempting to sync it by hand seems very inefficient.
So I can't wire it. There's no obvious way to add a driver, though it seems possible to copy a driver from the frame. I'm at the point of considering a color key and doing it in compositing, but this still seems way out of line.
Is it possible to control a video frame with an element of the scene like look-angle or position?

You can drive anything in a shader node-- right click in a value node or combineXYZ node and select "add driver".  You can also get camera space coordinates of the sample with a texture coordinates/object, or get camera depth with a camera info node.

@Nathan Yes, I'm aware I can do that—my concern is with the frame number and driving it, which does not have a driver option. You can copy from it, but not paste to it. So no, you can't drive literally anything.

Okay, now I understand.  But no, hard no, you cannot sample multiple frames of an animated texture with a single node.  This decision was probably made because the video memory usage would get insane really fast.  The best that you can do is mixRGB between multiple animated texture nodes-- possibly referencing the same video only with different offset/start frame.  Then, you can do whatever with the fac of that mixRGB.

@Nathan that's actually a great idea, and should probably be an answer! I'll experiment with that, and with color keying in the compositor like I've been doing.


text:
Is it possible to wrap the original textures into the new mesh without distortion?
I've been working on this mod for Fallout 4 where I intend to "restore" the damaged piece of clothing. The meshes are good but the textures within that region are all over the place:

I've searched everywhere but couldn't find an answer to this. Any way I can fix that without having to create an entirely new texture set?
And I've been using Blender for only 2 days with no previous experience whatsoever, so please bear with me.

Looks like messed up UV coordinates. I can probably be fixed without a new texture, but whether or not it is easy or doable by hand is another matter.

Did you unwrap the new faces? Could you provide a sample file to test?

As long as your texture has image information for the ripped out part, you can correct the UVs by hand. One quick way to do it us by using the Pin Tool in UV Editor.
Example
I have a mesh with a hole in the middle (left). After filling the hole manually I may end up with a highly distorted, but still connected UV projection (right).

When selecting the original mesh part in Edit Mode, by default only the selcted and correctly unwrapped faces are shown in UV Image Editor. Move cursor to the UV Editor, select all vertices with A and press P to pin these vertices. This means they will not be changed if the mesh is unwrapped again.

Next select all vertices, including the newly created with distorted UVs, and unwrap using the default method (in Edit Mode: select all, U -> Unwrap; in UV Editor: select all, U)

The distorted parts are automatically repaired whilst the original parts are untouched. Optionally, press Alt+P to remove the pins again.


text:
Rendering to movie: Under File format there are no options for h.264, Qicktime or MPEG
I just downloaded Blender, testing to render animation. But there seem to be something missing under Output > File format. Here is my version

Greatful for help...:-I!

Also check the release notes for Blender 2.79, they describe this change.


text:
Configuring .blend file for remote machine GPU rendering
I would like to render an animation on a remote compute cluster with several GPUs. The machine I configure the .blend file on is a laptop on which I cannot enable the User Settings>System GPU compute device setting

It does seem as if I can select GPU render in the render properties:

on my laptop. But unfortunately this doesn't seem to have any effect on the remote cluster: Rendering doesn't use the GPU (I checked with nvidia-smi) but uses all available CPU threads. I figured the GPU compute option is greyed out since the laptop I set the scene up with doesn't have a supported GPU to run on. But the machine I render on does.
Unfortunately there is also no way for me to start a graphical session on the remote cluster (blender in GUI mode) so I could change the User settings or confirm the render settings before I render.
I understand that I cannot set GPU rendering from the command line but is there maybe some other way I can setup a .blend file on a machine without GPU to render on the GPU when it is executed? For example: is there a way to start the render with a python script that forces the GPU option before starting the render process?
Thanks a lot for any hints on this!

Look at using python. This and this should help.

Check out this: https://github.com/WARP-LAB/Blender-Network-Render-Additions
Allows you to override the render device and tile settings on a per slave basis

As far as I understood, you manually put your .blend file on the server without using any third-party software. This answer so may help you:
How do I force the netrender to render everything on GPU?
This consists of running blender from the command line while also passing him a python script to set the GPU device (code from the link above):
blender -b file.blend -E CYCLES -t 0 -o //file -P script.py

This way you CAN set GPU rendering from the command line using, in the python script, bpy.context.scene.cycles.device = 'GPU'.

Well you can use scripts that automatically load your blend file (if you like code for that let me know) set the Gpu-settings and render it. You can start the script from cmd and let it run in the background..
Here some codesnippets that work for me
# [8] Enable CUDA and activate GPU
# code from https://developer.blender.org/T54099

scene = bpy.context.scene
scene.cycles.device = 'GPU'

prefs = bpy.context.user_preferences
cprefs = prefs.addons['cycles'].preferences

# Attempt to set GPU device types if available
for compute_device_type in ('CUDA', 'OPENCL', 'NONE'):
    try:
        cprefs.compute_device_type = compute_device_type
        break
    except TypeError:
        pass

# Enable all CPU and GPU devices
for device in cprefs.devices:
    device.use = True

The last I saw on this was a dev note for 2.6.
https://wiki.blender.org/index.php/Dev:Source/Render/Cycles/Network_Render
which has no discussion.  I have not seen any comment or publication that would suggest that baked in network rendering is available and some explicit comments that it will not.  However...
Use secondary computer for rendering
has some possible third-party solutions.  I do understand your desires in the current GUI as well as the concerns about running headless on the remote.  YMMV with the above solutions.

Building on the solution above, here's how to run the code snippet as a script on the command line with blender so that your GPU cluster will render using GPUs. Since you can't run a blender UI, you'll need to use the -P option in blender's command line interface to specify a script to be run before rendering.
First save your blend file with GPU compute set (even if its greyed out). This will ensure the file is configured to use GPUs.
Then you'll need to run the script given in the answer above as part of the command to render. Assuming you were on windows:
blender.exe -b -P *path_to_GPU_enable_script* (followed by all other options for rendering)

This command should be run from the location of the blender executable. A similar pattern applies for linux and MacOS.
./blender -b -P *path_to_GPU_enable_script* (followed by all other options for rendering)