This instructable aims to show you the step-by-step process of takin a full-body scan and manipulating into any different position for a 3D print. I made the steps as short as possible, so anyone would be able to perform their own 3D scan easily.
Also, I thought some people would be interested in animating their mesh, so I decided to add the basic steps to doing so, at the end of this instructable. The video of the example animation can be found here:
Step 1: Gathering Materials
- Microsoft Kinect (ASUS Xtion and PrimeSense will also work)
-Computer (with a fairly good graphics card)
-turntable (if you don't have one the steps to make one are included in this instructable)
Once you have met the prerequisites above, you will need access to additional software (All the software used for this instructable is either free, or has a "lite" edition that you can use)
- Reconstruct Me
The newest version is much more user-friendly, but if you do not purchase the lincense, little spheres will appear in your output mesh much like a water mark. the older version does not have this watermark, but can be harder to use, and can sometimes be a bit "buggy".
Newest version download - http://reconstructme.net/projects/reconstructmeqt/
Older version download - http://reconstructme.net/releases/
Downlad - http://sourceforge.net/projects/meshlab/files/meshlab/MeshLab%20v1.3.2/
- Blender (I used version 2.66, but 2.67 should also work fine)
Download - http://www.blender.org/download/get-blender/
netfabb has a cloud service where you send an stl file, and it will attempt to repair it within five minutes and send it to your email.
netfabb cloud - http://www.netfabb.com/cloud/index.php
netfabb studio - http://www.netfabb.com/download.php
Step 2: Making a Turntable
(The turntable is not necessary, but is strongly recommended for better 3D scans)
1. One Plank of wood to serve as a base.
2. One 1'' X 15" Circular plank to serve as stand
3. Bar stool Swivel
6. No-slip Rubber Pad
7. Eight Lag Bolts
8.Impact Driver with socket attachment
11.Drill with forester bit
Step 3: Marking Your Center
2. Draw a line from one side to the opposite side, through the center.
3. Draw a line perpendicular to the first, through the center.
Step 4: Align the Swivel
Step 5: Center and Alignment of Base
2. Draw perpendicular lines from one side to the other, through the center.
3. Align the holes (opposite side from previous step) of the bar stool swivel with the perpendicular lines drawn on the base.
4. Mark where these holes intersect the lines.
Step 6: Fastening the Swivel to the Base
Step 7: Preparing to Fasten Swivel to Circular Board
2. Using the drill and the forester bit make a hole through the base, at one of the notched sections of the swivel.
Step 8: Fastening the Swivel to the Circular Board
2. Flip the turn table, so that the base is facing up.
3. Align the hole drilled in the base, with one of the holes of the swivel that is touching a marked hole on the circular board.
4. Attache an extension(impact driver extension marked by red arrow) to your drill, then fasten the bolt to the circular board through the hole in the base.
5. Turn the base, and then fasten the second bolt to the circular base. Do the same with the remaining two bolts.
Step 9: Applying a No-slip Base
2. Then using an adhesive, apply the no-slip pad to the base.
Step 10: Marking Turning Angles
1. Using your measuring device, find the center of the circular board.
2. Using your protractor mark-off points from the center, 20 degrees apart around the entire circle.
3. Draw lines across the board through the marked points.
4. Cut strips of tape, and place the tape over the the marked lines.
Step 11: Setting Up to Record
- Fairly open area to reduce the amount unwanted materials being scanned.
- Something to put the kinnect on and a way to change the elevation of the kinect(In our case we used a foldout table with some old VHS tapes and textbooks to place the kinect on. We changed the elevation of the kinect by removing some of tapes and books).
- Place the turn-table so the center is approximately 3 feet from the kinect.
Step 12: Taking the Scan
-Also, make sure the person being recorded moves as little as possible
Newer version of ReconstructMe
1. If you have the latest version of ReconstructMe, simply start up the program and click record.
2. Turn the turntable, so the kinect captures all 360 degrees of the person. Once you have finished recording one section, readjust the
height of the kinect, and record the next section.
4. Do this, until the full person has been captured by ReconstructMe.
5. All the scans taken should be located in a folder called default project as .PLY files.
Older version of ReconstructMe
1.If you have an earlier version go to where you saved the ReconstructMe folder, then shift and right click on the folder and select "open command window here".
2.In the command window type "reconstructme.exe --multscan" and press the "enter" key.
3.Then type "y" and press the "enter" key.
4.When the console pops up, press the "p" key to play or pause the recording.
5.Once you have recorded the first section of the person, readjust the height of the kinect and press the "n" key to record the next section of the person.
6.Once the entire person has been recorded, press the "esc" key to exit the record console.
7.In the command window type in reconstructme.exe --stitch.
8.All the scans taken should be located in a folder called "default project" as .PLY files.
Step 13: Piecing Together the Mesh
2.Under the "file" tab. Click on "Import Mesh" and import all the .PLY files of the person you scanned.
3.If your .ply scan file comes out like the left image, you can adjust the individual .PLY positions by toggling between "Manipulators Tool" (indicated by the green arrow) and "Not editing", (indicated by the blue arrow) located in the "edit" tab until they are in the desired locations, like in the right image.(Note: Make sure you import your .PLY files, and edit them one at a time. Once you import a second mesh, the first one is locked in place.)
Step 14: Preparing for Blender Edit
2. Go to the "File" tab, scroll down to "Export Mesh As..." and export the file as a .STL file.
3. Now you can either use netfabb studio, or the netfabb cloud service at http://www.netfabb.com/cloud/index.php to fix any holes in the mesh, that the kinect did not pick up.
4. Open the "Fixed" .stl file in MeshLab then go to the "File" tab, scroll down to "Export Mesh As..." and export the file as a .obj file.
Step 15: Removing Excess Mesh
- The numbers on the numpad(these are not the numbers in a row, at the top of the keyboard) are used to control mesh positions, such as moving the mesh to the origin, rotating up, rotating down, rotating clockwise, and rotating counter clockwise.
- Right clicking the mesh selects it, left clicking performs an action on the mesh.
1. Now open Blender, and import the .obj file.
2. Then go to the "Add" tab, scroll down to "Mesh"(both located by the red arrow) and import one of the 3D shapes there(indicated by the white arrow).
3. Position the object so that it intersects any unwanted part of the mesh.as seen in the first image.
-You can extend the size of the removal mesh by going to the "Object" tab on the right side of the screen(indicated by the green arrow), and then editing the numbers under "scale" in the "Transform" section(indicated by the blue arrow) as seen in the second image.
4. Now right click on your mesh to select it, and click on the "Object Modifiers" tab on the right side of the screen (indicated by the orange arrow).
5. Click on "Add Modifier" (indicated by the purple arrow) and then click on "Boolean" under the "Generate" column (indicated by the yellow arrow).
6. Now under "Operation" select "Difference" and under "Object" select the 3D shape you used, in my case "cube", (indicated by the pink arrow in image 4).
7. Finally, click "Apply" to remove the unwanted mesh. Redo this procedure, until all unwanted mesh is removed (indicated by the black arrow in image 5).
Step 16: Giving the Mesh "bones"
1. Click on the tab as indicated by the red arrow, and create another screen to view your image.
2. Rotate one of your screens, so it shows the side view of the mesh.
3. Click on the the joint where you want to place the first bone so it is marked by the red circle (in my case the shoulder). make sure it is aligned in both views, so that the bone is in the mesh.
4. Click on the "Add" tab, scroll down to "Add Armature", and click on the "Single Bone" option.
5. Go to the "Object Data"(image of a stickman) tab indicated by the white arrow. Now check-mark the "X-Ray" option indicated by the green arrow. Also, make sure that the "X-Ray" option is check-marked, under the "Object"(image of a cube) tab located in the same row of tabs as the "Object Data" tab.
6. Change the armature option indicated by the blue arrow to "Edit Mode".
Controlling the bone position
-Grabbing the middle of the bone will move the entire bone.
-Grabbing one of the tips of the bone will make the bone pivot off of one of those points.
-Right clicking the tip of the bone will allow you to move it freely with the mouse. Left clicking will then lock that bone in place.
Step 17: Adding More Armature
-To add a new "parent" bone (a parent bone is the first bone to be placed in an area) to the mesh press the "shift" key, and then press the "a" key while pressing the "shift" key. Then right click, and drag the bone into the position you desire.
Step 18: Assigning Mesh Parts to Bones
1. Once you have finished placing bones in the mesh, change the tab indicated by the red arrow to "Object Mode".
2. Right click on your mesh and then right click on one of the bones to select all of the armature, so that both the mesh and armature has been selected.(Note: Make sure, the mesh has been selected first.)
3. Press the "ctrl" key, and then the "p" key while the control key is pressed to open an option box. In the option box, select the "With Automatic Weights" option.
4. Following this, press on the "Object" tab indicated by the green arrow. Under the "Transform Locks" tab, lock the X,Y,and Z options as indicated by the white arrow. (by doing this the bone will only rotate along a fixed axis, so the movement of the armature is more natural).
Step 19: Perfecting Mesh Assignment
2. In the tab indicated by the red arrow, select the "Pose Mode" option.
3. Select the mesh, and in the tab indicated by the white arrow, select the "Weight Paint" option. This option allows you to choose which part of the mesh is controlled by what bone. The amount to which the bone controls the mesh depends on the color(red = most control, dark blue = no control).
"Weight Paint" controls
-The tab indicated by the green arrow allows you to choose different options such as to add color, or subtract color to the mesh (color in this case being parts of the mesh that the bone controls).
-The tabs indicated by the blue arrow you to control variables such as strength of color, and radius of coloring area.
-If you press on the "g" key while a bone is selected, you will be able to adjust the position of all the mesh that the selected bone controls (as indicated by image 3).
-Left clicking will lock the bone in place.
Step 20: Final Touches
Step 21: Animating the MeshFirst Position
1. Make sure that your armature(bones) are still set to "Pose Mode", as indicated by the red arrow.
2. Set your "current frame" to one, as seen by the white arrow.
3. Put your mesh in the position you want your animation to start, by right clicking a bone and dragging it into position(you may find useful the "translate", "rotate", and "scale" options indicated by the green arrow).
4. Select all the "bones" in your mesh, and press the "i" key. Scroll down and select the "LocRot" option, indicated by the blue arrow arrow. You have now set the first position for your animation
Step 22: Adding Positions
2. Change the frame number indicated by the white arrow, and a green line should appear next to the red arrow.
3. Change the position of your mesh for the following frame(In my case since my mesh is waving, I adjusted the rotation of the upper arm bone,and to get exact angles of rotation I clicked on the "Rotate" tab indicated by the green arrow).
4. Press on the "i" key and click on "Rotation", and you have just added the second frame to your animation.
-If your mesh has recurring movements, the next step will cover a shortcut in adding those frames.
5. Repeat this process until you have created all positions for your animation.
Step 23: A Shortcut to Adding Recurring Frames
(Example: In my animation, the mesh waves his hand up and down. In order to do this, some frames have to be copied.)
1. In order to copy a meshes position, first left click on the frame of the position you would like to copy as indicated by the red arrow.
2. Click on the "Pose" tab indicated by the white arrow, and scroll to "Copy Pose" as indicated by the green arrow.
3. Adjust the frame number you would like this pose to be located, as indicated by the blue arrow.
4. Click on the "Pose" tab again, and scroll to the "Paste Pose" option, located right above the "Copy Pose" option.
5. Press on the "i" key and click on "Rotation", to add this pose to the animation.
Step 24: Playing the Animation
2. Now right click on your mesh to select it, and click on the "X-Ray" option indicated by the white arrow (located under the object tab) to remove any background lines that may be shown in front of your mesh.
3. To play/pause your animation, press on the "alt" key, and then press on the "a" key while pressing on the "alt" key.
-Note: Be sure that your "End" frame (indicated by the green arrow) matches the frame of your final pose, so your animation loops more smoothly.
Now you have an animation, that is ready for rendering.