2
$\begingroup$

The image below illustrates a model of six rigid links connected by six revolute joints. I've written a Python script to make the mechanism articulate around its joints and move relative to its fixed Barycentric frame shown in the middle of the image. The mechanism's spatial articulation is expressed as a function of a single parameter, which can be tied to the animation frame number variable. As the six links move through 3D space, I would like to leave behind ghost images of the space occupied by the colored objects. In essence, I want to generate six colored ghost images, red, yellow, green, cyan, blue, and magenta, of the space occupied by the corresponding colored objects.

Is there any way to accomplish this? For example, when rendering an animation, might there be a way to superimpose and accumulate the current frame's object images onto a single background frame image that would partially show through? I generate a new image at each frame, so there are no interpolations between frames.

Since there is no time limit for accomplishing this task, I'm considering to create a different layer for each object color. Then, at each new mechanism pose in the next frame, for each color, select the corresponding colored objects in the model, copy them, and paste them into their corresponding color layer. Then merge the newly pasted object meshes with the previously merged mesh. When finished with all frames, each color layer should contain a single colored object in the shape of the total space occupied by the corresponding colored model objects during the total frame sequence. All of these operations would be programmed in Python script because doing this manually is not practical.

bmesh may solve the problem, if it will merge the added meshes together.

Articulating 6R Bricard Mechanism

bpy.ops.object.booltool_auto_union() should merge the meshes if bpy.bmesh doesn't

$\endgroup$
2
  • $\begingroup$ I don't think Blender has a built-in function to do that (the closest would be "onion skin" but i don't think it fits your needs). Did you tried something using Animation Nodes ? $\endgroup$
    – thibsert
    May 4 at 12:46
  • $\begingroup$ Related - blender.stackexchange.com/a/213637/29586 (just place your objects infront of the background image) - although only for 2D final render. Also, blender.stackexchange.com/a/94976/29586 for leaving a trail behind parts of an animating mesh. $\endgroup$ May 4 at 13:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.