15
$\begingroup$

I'm trying to create animated cutaway views on multiple objects in my scene. For example, in my car model, the seats and other interior objects are separate objects.

This question talks about using an animated bisecting technique. However, it involves adding a solidify and boolean modifier to every object.

Is there an easier solution?

blender wiki example

$\endgroup$

3 Answers 3

12
$\begingroup$

Modifiers

Solidify and boolean modifiers should work fine.

You can use CtrlL to copy modifiers from the active object to the selected objects:

  1. Add the solidify and boolean modifiers to one object.

  2. Select other objects you want to bisect, keeping the object with the modifiers active (last selected).

  3. Press CtrlL> Modifiers

Rendering

By creating a node group like this:

enter image description here

By changing the bottom value input on the greater than node, you can adjust where the bisection takes place.

By default it will use the local coordinates of the object, but if you want to use global coordinates you can use a vector transform node, however 0,0,0 will still be at the object origin (see bottom example for using global origin):

enter image description here

To control this for multiple materials at once, add the node group to the end of the node tree:

enter image description here

Result:

enter image description here

If you want to use global coordinates with 0,0,0 at the world center, use the Position output of the geometry node instead:

enter image description here

This probably works better with multiple objects.

$\endgroup$
5
  • $\begingroup$ That only works if all the other objects do not have modifiers on already. I was hoping for a way to something like the sketchup Section Plains tool. youtube.com/watch?v=ZiMA1IAn8HU $\endgroup$
    – David
    Apr 15, 2014 at 18:22
  • $\begingroup$ @David That's true. You could apply the existing modifiers first with Alt+C > Convert to mesh. There is also a tool for drawing cross sections of objects in the viewport, called Clipping Border (Alt+B). $\endgroup$
    – gandalf3
    Apr 15, 2014 at 18:34
  • $\begingroup$ Thanks. I did know about the Clipping Border, but like you said it is only for the view port. So it looks like sketchup actually has a feature that is better then what blender has. $\endgroup$
    – David
    Apr 15, 2014 at 18:38
  • $\begingroup$ Thank you very much. I tweaked your nodes in my answer (blender.stackexchange.com/a/8636/2217) and it works wonderfully. $\endgroup$
    – David
    Apr 16, 2014 at 16:19
  • $\begingroup$ You always find a way to have the best answer :) Thanks $\endgroup$
    – David
    Apr 17, 2014 at 15:58
4
$\begingroup$

Camera Clipping Distance

One possibility is to animate the Camera Clipping Start Distance.

In Blender, the clipping distance defines the area of the scene that is visible to the camera. So, for example, in this instance shown here, everything in the scene between 0.001 distance units and 5.0 units from the camera is visible to the camera, and anything beyond 5 will be clipped out of view (i.e. not visible):

enter image description here

NOTE: You can toggle the clipping distance indicator's visibility on & off here:
Camera Object properties window -> Camera tab -> Display section -> toggle Limits

enter image description here

These Start and End values/distances can be changed so that part of your car (and any other objects in the scene) will not be visible to the camera. For example, you can increase the Start clipping distance to be halfway into your car, like this:

enter image description here

NOTE: This model of the car is not one mesh, but many separate meshes, so any objects in your scene will get clipped from view. In addition, object modifiers are not effected in any way by camera clipping.

Animating Clipping Distance

In addition, the Start and End values can be animated:

  1. Set the green frame cursor to the beginning of the animation time. Here, it is set to frame 1:

    enter image description here

  2. Now position the mouse cursor over the Camera Clipping Start value and press I to set a keyframe:

    enter image description here

    You should now see there is a yellow line at frame 1 indicating a keyframe is set there.

  3. Now do the following:

    • Position the frame cursor at the end of your animation

    • Increase the Clipping Start value so enough of your car is not visible

    • Position the mouse cursor over the Camera Clipping Start value and press I again to set a keyframe

    enter image description here

  4. Now if you play your animation, or render your animation, you will see the car and any other objects in the scene get cut in half:

    enter image description here

Limitations of this Technique

Unfortunately, there are at least 2 limitations of this technique that might make it unsuitable for your purposes:

  1. This technique is very easy to animate if your camera is stationary during the clipping animation, but if you start to move the camera around, the clipping distance will still effect the scene, so it may be more difficult to control exactly how much of the car is visible and how much is clipped:

    enter image description here

  2. Since the clipping of the car's visibility is based on distance from the camera itself, you will only be able to hide parts of the car directly facing the camera. So, you will only be able to use this technique to render 1 of the 4 views you showed in your question:

    enter image description here

$\endgroup$
1
  • $\begingroup$ Very good method, only down side is that there is no way to get off angle cuts. $\endgroup$
    – David
    Apr 16, 2014 at 0:47
2
$\begingroup$

I changed gandalf3's answer slightly to over come a few problems. First, it does not work on arrays with dupli verts,and it also does not work on any type of curve object.

I just changed the texture input type to Camera. That allows a nice whole scene cutting effect (on any and every object). The mapping node is just to translate and rotate the slice.

Also if the color on the Transparent node is above pure white, then there is a nice semi-transparent cut.

awesome nodes

$\endgroup$
1
  • $\begingroup$ Glad you got it working :) I updated my answer with another technique which doesn't require you to compensate for the camera with a mapping node, in case you need this for an animation or something. $\endgroup$
    – gandalf3
    Apr 16, 2014 at 22:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .