Realtime Cut

Warning

Note that this feature is in Beta stage, therefore it is not stable and it can create artifacts on the newly created meshes.

MAGES gives you the ability to perform realitme cuts in meshes, by providing a Cuttable Mesh and a Cutter script. A combination of these can achieve results like the following:

Simple Cut Performed on a Cube

In this tutorial we will demonstrate how to setup the cube as a cuttable mesh and how to setup a custom cutter.

Cuttable Mesh

First drag and drop the mesh you want to setup as cuttable in the scene (The box in this case). Then go to Add Component > MAGES > Mesh Deformations > Cuttable Mesh and add the Cuttable Mesh script to the object.

The add Component Menu in the Mesh Deformations Category.

This will expose the following properties:

The inspector of the cuttable mesh.

Afterwards, we will create an empty GameObject and we will add:

  • a MeshRenderer

  • an empty MeshFilter

  • the same material as our cube

  • a Rigidbody

  • the MAGESInteractableItem script

We will then save our prefab under the Resources folder in a desired path. In the CuttableMesh inspector we will specify that path in the field partPrefabPath. For the other options we will keep their default values.

We can now use our Cuttable Mesh by calling the public void Cut(Plane cutPlane, out Mesh positiveSide, out Mesh negativeSide, out GameObject final, bool handleMeshReconstruction = true) function, or by using the already made Cutter Script as described below.

Note

You can find the above example, already set up, in the Mesh Deformations Sample Scene.

Cutter

First drag and drop the tool you will use to cut the mesh (here we will use a knife). Then go to Add Component > MAGES > Mesh Deformations > Cutter and add the Cutter script to the tool.

The add Component Menu in the Mesh Deformations Category.

This will expose the following properties:

The inspector of the cutter.

We will then (1) click the hand tool to hide the unity tool gizmos and then (2) move the two handles to match the knife’s blade.

The gizmos for setting the cut tool blade segment.

The next step is to add a trigger collider containing the blade of the knife.

../../../_images/TriggerColliderTool.png

Finally, we need to add a collider (either triger or not) on the GameObject containing the CuttableMesh script in order to specify the area a cut can be done.

We can now use the knife to cut our Cuttable Mesh inside the specified area.

Note

You can find the above example, already set up, in the Mesh Deformations Sample Scene.