Making object (like pipe connecting two objects) appear progressively

Let’s say I have two buildings A and B and an oil pipe with bends and curves connected between them.

How do i start with first frame where entire pipe is hidden. In each of successive frame , pipe starts appearing from building A and more of it gets revealed towards building B, eventually it meets building B in final frame.

I can imagine similar animation in say showing a wire connection from computer to its peripheral.

I think i probably need a dynamic paint with brush following curve, not sure how or if there are simpler ways.

1 Like

You can do it with the build modifier. It seems like there is a bug with the curves version nevertheless there are couple ways around that.

Thanks - tried that in 2.80, it works for me, though not very smooth - the step size is pretty large.
I am using a curve with bevel to represent pipe. I thought I can make it smoother by increasing the resolution of curve, but that doesn’t help.

while trying this out, I could achieve this effect in another way - by animating the bevel end property of curve. That gives a very smooth effect !

There are a number of different ways, and which is best depends on exactly what you’re doing.

For the exact example you’ve given, I would do this by giving the curve a UV texture space and then animating a mask (to mix transparency) along the length of its UV space.

Other ways to do this are via dynamic booleans, render layers + masks, build modifier as mentioned, deforming modifiers to stretch the object along its path rather than reveal it-- really, a bazillion different ways, depending on the particulars of what you want to do.

1 Like

Thanks @bandages.
I looked up all the keywords you had mentioned, and really liked the dynamic booleans idea.
though in my case a simple bevel end property sufficed, it was very specific to curve/object i had - while your suggestions are much more generic and can apply everywhere.

Still reading up on animating masks - that seems a little cumbersome though.

Hi,

You could animate the Node Shaders to switch progressively from Pipe Shader to Transparent Invisible Shader. (That way you wouldn’t have to deal with animating booleans)

I had given a solution on this topic for animating color along a pipe :

You can do the same but instead of one color and the other you would use final shading, and transparent shading :wink:

See you :slight_smile: ++
Tricotou

1 Like

thats a pretty neat way - effectively its animating the mask on top of UV using UV co-ordinates ! thanks !

If you wanted to be able to control that animation with an object (or empty) you can use a setup like this. You can keyframe stuff in the material editor as well as the object in the scene to control the thing and this can be kinda useful for those situations where you need to some fine control over how textures map based on object coordinates rather then uv.

thank you - yet another good technique to learn. Though this will create a different effect in case say the pipe has a “U” shaped bend… in that case both sides of “U” will get painted at same time.