2
$\begingroup$

What I want to do is to cut open a mesh like a cake for an animation.

So to do something like this:

circle pie chart

to create something like this:

pie cuts

The second image is a render taken from the Cycles Demoreel 2015 ( https://www.youtube.com/watch?v=wDRTjzLNK0g )

EDIT: My question now is: How can I create such a thing.

I have not found any way to have an animated circle that can cut a mesh like a boolean tool. I didn't find any option rotate or midify a cylinder or any other mesh to get the same effect of the second image.

$\endgroup$
  • 2
    $\begingroup$ blender.stackexchange.com/questions/34685/… $\endgroup$ – cegaton Feb 21 '18 at 14:58
  • $\begingroup$ @cegaton, can your array modifier version be animated smoothly? $\endgroup$ – Bruno Feb 21 '18 at 20:06
  • $\begingroup$ @Bruno you can control the thickness of the slice and the count on the array. $\endgroup$ – cegaton Feb 21 '18 at 20:23
  • 1
    $\begingroup$ @Delta - Have noted your request to contribute to this question also but as it's done entirely with openGL masking, the method may not suit what you've got in mind. A video of the result is up on Dropbox at this link - dropbox.com/s/g88f7nm04qctkh3/Pie3.mp4?dl=0 - Just click in a vacant space should a sign-in page appear. If you wish to see how it's done, I'll drop an answer here $\endgroup$ – Edgel3D Mar 11 '18 at 3:44
1
$\begingroup$

There's a lot of ways that you can change the shape of the cutting mesh. For versions where you only alter the shape, you can animate whether the boolean even affects the cylinder , so you have a full cylinder to start with. You simply switch it on for the first frame of cutting.

You can use shape keys which is a very cool answer, you could use hooks, you could use an armature.

But why not go overboard with this and boolean Napoleon the boolean?

From Haunt's bag of tricks:

The yellow box is just ever so slightly larger than the orange one. When they align, it swallows the orange one whole in effect making it cease to exist... sort of.

If I rotate the yellow one, it reveals more and more of the orange box. I simply subtract the yellow box from the orange box and I subtract the result from the cylinder. The possibilities are endless.

Although this only works for a 180° cutaway.

enter image description here

TLDR: yellow eats orange, orange eats cylinder. YUM!

$\endgroup$
  • $\begingroup$ Interesting approach. Can you expand the system as well for a 360 cut? After I used an empty object to rotate the cube It worked very nice for 180° ( streamable.com/tpdew ) $\endgroup$ – Delta Feb 23 '18 at 12:20
0
$\begingroup$

Can be done using Shape Keys and a simple cube. If you want to achieve full 360 (see EDIT BELOW) cut-through you will need a bit more work on the cutter shape and shape key deformation though:

enter image description here enter image description here

EDIT: if full 360 is desired, use a 5 edge polygon instead of a cube and use 2 shapekeys as shapekeys do not work with rotation keyframes, only with vertex location keyframes.

enter image description here

$\endgroup$
  • $\begingroup$ As far as my testing goes the problem I have is that when I want to cut a mesh with more than 90° (beginnig from one side and opening it to the other). At some point there is a little leftover of the other mesh. When I try to rotate the edge 180° around the cursor it just went to the other side. So there is not really the cut open effect I want to have. Any ideas on that? $\endgroup$ – Delta Feb 23 '18 at 12:41
  • $\begingroup$ sounds like you don't have enough of the cutter object located outside the other one. In my example notive one of the edges of the cutter cube is well outside the sylinder. $\endgroup$ – Bruno Feb 23 '18 at 12:58
  • $\begingroup$ yes and no. the mesh was indeed not big enough to surround the other one. In the example video ( streamable.com/h8ta3 ) you can see that instead of rotating the edge along a circle line it just moves it to the final position which does not create the 180° cake-like cut I want to achieve $\endgroup$ – Delta Feb 23 '18 at 14:19
  • $\begingroup$ Ah, that's because you are using a translation instead of a rotation. The rotation must be around the 3D cursor which must be place first at the center or the main object. Then make sure 3D cursor is used as Pivot Point instead of Individual Origins (hit Period key on keyboard). Then simply hit R $\endgroup$ – Bruno Feb 23 '18 at 14:52
  • $\begingroup$ Here is how I did it: I made a cube and moved the outer edges to the 0 line so that it's a flat box. I saved this as basic shape key. Then I created a new shape key, got into edit mode, selected the edge I want to move, made sure that I did rotate around the crosshair like cursor and then I pressed R + Z to move the edge. In edit mode the edge indeed rotates around the cursor, but when I leave edit mode it does not save that it should rotate. $\endgroup$ – Delta Feb 23 '18 at 19:50
0
$\begingroup$

The objective - Produce a radial reveal (animated pie chart) using a mask.

OpenGL -==================-===============- Blender Render

A single cube is used as a mask and that is morphed around the pie to radially hide the pie's lid..

To emulate pie lid thickness a special 'Lip' is constructed to rotate with the mask.

An empty is parented to the Lip's outer extrememty.

The cube's two corner vertices at 3 O'clock are "hooked" to another empty and that empty is parented to the Lip's empty. As the lip rotates it drags the cube-corner around with it to give us a rotating 'cutting face'.

The cube quickly distorts so it's other corners are also given Hook-Empties which we keyframe to keep the cube edges outside the pie's.

@Cegaton posted an answer recently that makes this hooking process a lot easier to manage and set up.

Instead of creating a special object for each corner to be Hooked to, we do as @Cegaton suggests, select both corner vertices, press CTL-V for the Vertice menu, and select "Hooks --> Hook to new object".

An Empty will appear on the corner's edge which importantly, doesn't initially move the edge from it's at- rest position. The Empty is selectable in Object mode and thus can be keyframed to move about, rather than using shapekeys.

As the cube's face is being dragged around the pie, each Hooked corner can now be dragged "LOCATION" wise to correct unacceptable distortions and keep the pie inside the cube's current arc.

The mask cube therefore is ideal for pie-charting with Boolean, Chroma-Key masking, and OpenGL masking.

Masking was chosen here because it doesn't interfere with mesh, nor does it distort texture, which can, along with material shading, reach unacceptable levels on smoothed surfaces when Boolean cutting is used.

OpenGL rendering was also used because of it's convenience.

Rendering is quite fast, no compositing is required, no multiple rendering is required, no mixing in the VSE is required, and it's a WYSIWYG situation.

-==========-

You commented that you're not familiar with masking, nor OpenGL so the following has been appended...

Inviso masking: (OpenGL)

It's a term I use to describe the effect a semmi transparent object has in the viewport, which also happens to be what is rendered when using OpenGL. It can effectively hide objects that get behind it.

Setting a mask object's Material Opacity to 0.008, and both specular sliders to 0 (zero), it's Diffuse to a dull grey - not only renders it virtually invisible, it will also selectively conceal other objects behind it..

The Opacity setting of 0.008 is just above the Alpha Threshold of 0.004, the default alpa threshold value as set in User Preferences.

The mask will only work when the viewing mode is set to "Material".

To force an object to be hidden when behind it simply parent it to the mask, then unparent again immediately. Make sure to select "Keep Transformation" each time.

To immunize an object so it won't be affected by the mask, parent in reverse, i.e. the mask is the child, the object the parent. Unparent immediately.

Deselect everything (press A) and be in the "Material" view mode when testing it out.

When immunizing, it's possible that you'll reset the masking and need to re-parent one or more of the objects that are to be hidden.

Further Information -

Objects behind the mask may or may not become invisible by default. This appears to depend on whether the objects are created before or after the mask.

Masks created last, usually hide everything behind them whereas when created earlier, conceal some objects and not others.

This isn't a problem - simply Parent as described.

-=================-

Rendering in OpenGL -

OpenGL is what you are looking at in the 3D viewport. It uses your computer's graphics hardware and at the same time sacrifices several colour and texture features in Blender in the interests of speed.

Rendering -

In the viewport's properties (press N) Display tab, tick the "Render Only" box.

Select the render menu at top left of the 3D window and click either "OpenGL Render Image" or "OpenGL Render Animation"

The latter will render out the animation you see in the viewport.

If you're in Solid or Wireframe view-mode, that's what you end up with in your footage.

$\endgroup$

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.