System Requirements:
	Minimum:
		OS: Windows 10
		CPU: ?
		Memory: 8GB
		Storage: 4GB free space
		Camera: 2 webcams

	Recommended:
		OS: Windows 10
		CPU: 4.5GHz quad-core processor
		Memory: 16GB
		Storage: 4GB free space
		Camera: 2 webcams
		GPU: Geforce GTX 1080 Ti


Download links:
	
	If you cannot download large files from BOOTH, try these links or use Network Installer.

		Readme:     https://d3ohm2q3tvfr8c.cloudfront.net/readme_full_v1.5.zip
		Appendix1:  https://d3ohm2q3tvfr8c.cloudfront.net/Appendix1_Precision_mode.zip
		Appendix2:  https://d3ohm2q3tvfr8c.cloudfront.net/Appendix2_HDRI_maps.zip
		Appendix3:  https://d3ohm2q3tvfr8c.cloudfront.net/Appendix3_MetaHuman_character.zip
		Appendix4:  https://d3ohm2q3tvfr8c.cloudfront.net/Appendix4_TensorRT_mode.zip

	If you need older versions, use these links.

		v1.4.1
			Readme: https://d3ohm2q3tvfr8c.cloudfront.net/readme_full_v1.4.1.zip

		v1.3
			Readme: https://d3ohm2q3tvfr8c.cloudfront.net/readme_full_v1.3.zip

		v1.2
			Readme: https://d3ohm2q3tvfr8c.cloudfront.net/readme_full_v1.2.zip
			Part2:  https://d3ohm2q3tvfr8c.cloudfront.net/Part2_MocapForAll_Full_v1.2.zip
			Part3:  https://d3ohm2q3tvfr8c.cloudfront.net/Part3_MocapForAll_Full_v1.2.zip

		v1.1
			Readme: https://d3ohm2q3tvfr8c.cloudfront.net/readme_full_v1.1.zip
			Part2:  https://d3ohm2q3tvfr8c.cloudfront.net/Part2_MocapForAll_Full_v1.1.zip
			Part3:  https://d3ohm2q3tvfr8c.cloudfront.net/Part3_MocapForAll_Full_v1.1.zip

		v1.0.1
		[Readme]
			        https://d3ohm2q3tvfr8c.cloudfront.net/readme_full_v1.0.1.zip
		[CPU version]
			Part2:  https://d3ohm2q3tvfr8c.cloudfront.net/Part2_MocapForAll_CPU_Full_v1.0.1.zip
			Part3:  https://d3ohm2q3tvfr8c.cloudfront.net/Part3_MocapForAll_CPU_Full_v1.0.1.zip
		[GPU version]
			Part2:  https://d3ohm2q3tvfr8c.cloudfront.net/Part2_MocapForAll_GPU_Full_v1.0.1.zip
			Part3:  https://d3ohm2q3tvfr8c.cloudfront.net/Part3_MocapForAll_GPU_Full_v1.0.1.zip
			
		v1.0
		[Readme]
			        https://d3ohm2q3tvfr8c.cloudfront.net/readme_full.zip
		[CPU version]
			Part2:  https://d3ohm2q3tvfr8c.cloudfront.net/Part2_MocapForAll_CPU_Full_v1.0.zip
			Part3:  https://d3ohm2q3tvfr8c.cloudfront.net/Part3_MocapForAll_CPU_Full_v1.0.zip
		[GPU version]
			Part2:  https://d3ohm2q3tvfr8c.cloudfront.net/Part2_MocapForAll_GPU_Full_v1.0.zip
			Part3:  https://d3ohm2q3tvfr8c.cloudfront.net/Part3_MocapForAll_GPU_Full_v1.0.zip

			
How to install:

	You can install MocapForAll manually or by using network installer.
	
		Manual installation
			1. Download "MocapForAll_Full_v1.5.zip" and unzip it.
			2. (Optional) If you do not need the functions in Appendix, you can skip this step.
			   Download "AppendixN_xxxxx_yyyyy.zip" and unzip it.
			   Overwrite "MocapForAll_Full_v1.5\MocapForAll" by "AppendixN_xxxxx_yyyyy\MocapForAll".
			3. Execute MocapForAll.exe in the "MocapForAll_Full_v1.5" folder.
			4. If the "UE4 Prerequisites" installation screen is displayed, install it.
		
		Installation by Network Installer
			1. Download "Network_Installer_-_MocapForAll_Full_v1.5.zip" and unzip it.
			2. Execute "Network_Installer _-_ MocapForAll_Full_v1.5.exe".
			3. Execute MocapForAll from start menu or execute MocapForAll.exe in your installation path.
			4. If the "UE4 Prerequisites" installation screen is displayed, install it.

	To use with SteamVR:
		5. Install "Virtual Motion Tracker" from "https://gpsnmeajp.github.io/VirtualMotionTrackerDocument/download/".
			We tested with vmt_012.
			vmt_010 and before are not supported.
			Note that you need to setup "Room matrix" in vmt_manager.exe. See "https://gpsnmeajp.github.io/VirtualMotionTrackerDocument/setup/" for the details.

		***********************
		*****  IMPORTANT  *****
		***********************
		Please note that Virtual Motion Tracker is a separated program from MocapForAll, and is designed for developers who know how to use it.
		DO NOT contact the author of Virtual Motion Tracker for any issues you encountered when using MocapForAll and Virtual Motion Tracker together.

	(Advanced) TensorRT installation
		This section is only for enthusiasts who want to improve performance even by 1ms/frame.
		（Using GTX1080Ti in our dev env, TensorRT has better performance than DirectML by 1ms/frame/camera in Precision mode, for example.)
		Requires an Nvidia GPU that supports CUDA, cuDNN, and TensorRT.
		RTX30** series is not supported.
		
		6. Install "CUDA 11.0.3" from "https://developer.nvidia.com/cuda-11.0-update1-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exenetwork"
			Please note that the installer may fail to install the NVIDIA driver. In that case, please install the latest NVIDIA driver manually.
		7. Download and unzip "cuDNN v8.0.2 (July 24th, 2020), for CUDA 11.0" from "https://developer.nvidia.com/rdp/cudnn-archive".
			Overwrite "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin"     by unzipped "cudnn-11.0-windows-x64-v8.0.2.39\cuda\bin".
			Overwrite "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include" by unzipped "cudnn-11.0-windows-x64-v8.0.2.39\cuda\include".
			Overwrite "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\lib"     by unzipped "cudnn-11.0-windows-x64-v8.0.2.39\cuda\lib".
			Add an environment variable "CUDNN_PATH", and set its value to "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0".
		8. Download and unzip "TensorRT 7.1.3.4" from "https://developer.nvidia.com/nvidia-tensorrt-7x-download".
			Add the path of lib folder in that to the environment variable "PATH", for example "C:\Program Files\NVIDIA GPU Computing Toolkit\TensorRT-7.1.3.4\lib"
		9. Add an environment variable "ORT_TENSORRT_ENGINE_CACHE_ENABLE" and set its value to "1".
		10. Add an environment variable "ORT_TENSORRT_CACHE_PATH" and set its value to any path where you want to save the cache files, for example "C:\temp".
			(For other options of TensorRT, see https://www.onnxruntime.ai/docs/reference/execution-providers/TensorRT-ExecutionProvider.html#configuration-options)
			
			(Your environment variables will be something like "EnvironmentVariables.png" and "EnvironmentVariables2.png".)
			(Your environment variable "Path" will be something like "Path.png".)


How to use the app:

	0. Move viewport
		Use WASD key and mouse drag to move the viewport.
		Screen maximization can be turned on and off with F11 key.

	1. Camera calibration
		(See "How_to_calibrate_cameras.mp4" for demonstration.)
		
		1.1. Open camera
			1.1.1. Connect at least two cameras to your PC.
				   You can use applications such as "DroidCam (https://www.dev47apps.com/)" or "Iriun (https://iriun.com/)" that allow you to use smartphones as webcams for PCs.
			1.1.2. Click "Add camera" button.
				   If you need to use virtual cameras, click the small triangle next to the "Add camera" button and select "DirectShow".
			1.1.3. Select "Camera" and search for the cameras you connected.
			1.1.4. You can change the image size of the camera by entering the dimensions and clicking "Apply" if camera supports the specified image size.
				   Somtimes it fails to change the image size. In that case, please close camera, wait for a moment, and try again.
		1.2. Intrinsic calibration (Repeat this for all cameras you use)
			1.2.1. Open "IntrinsicCalibration.png" in your favorite app and display the image on the screen in the maximum size. (Alternatively, you may print it on a paper.)
			1.2.2. Click "Start" button under "Calibration > Intrinsic".
			1.2.3. Capture "IntrinsicCalibration.png" image with the camera from various angles for around 10 seconds. When calibration is completed, intrinsic parameters will be displayed on the app's screen.
		1.3. Extrinsic calibration (using default ChArUco board)
			1.3.1. Print "ExtrinsicCalibration.png" on a large peice of paper. (A3 or larger is recommended.)
			1.3.2. (Optional) Measure the length of the side of the black square in the printed image. (See "Which_side_to_measure_-_ChArUco_board_(default).png")
			       Put the value in "Settings > Calibration > Marker size > ChArUco board [m]". The unit is meters. This value is used to define the scale of captured motion.
			1.3.3. Place the printed "ExtrinsicCalibration.png" on the floor. This will be the origin of the captured motion.
			1.3.4. Place your cameras where they can see the printed "ExtrinsicCalibration.png" paper.
			1.3.5. Click "Start" button under "Calibration > Extrinsic". When calibration is completed, extrinsic parameters and the camera position will be displayed.
			       You can check the position of the camera on 3D viewport if you input a correct value in 1.3.2.
			       Note that the camera may appear below the floor (in this case, the calibration has failed).
			
				After this step until finishing calibrations for all cameras, don't move calibrated cameras and "ExtrinsicCalibration.png" paper. If you move them, you need to redo extrinsic calibration.
				After finishing calibrations for all cameras, you may remove "ExtrinsicCalibration.png" paper from the floor.

		1.4. Save and load calibration result
			You can save and load the calibration results by clicking "Save" and "Load" buttons.
			
			Also, you can save and load the whole camera setup by clicking "Save All Cameras" and "Load All Cameras" buttons.
			Note that the camera selection is saved as an index inside the combo box. If you remove the cameras from your PC, the order of the cameras in the combo box will change and you will not be able to load the cameras properly.
				
		(Advanced) Calibration of camera extrinsic parameters using other methods
			Make sure you understand the calibration of external parameters using method 1.3 before trying this section.
			In the 1.3 method, it was necessary to place "ExtrinsicCalibration.png" image on the floor and place the cameras where they can see the image.
			To avoid this camera placement restriction, the following two methods are available.
		
			1.4. Calibration of camera extrinsic parameters by "Aruco cluster" method
				
				<< Preparation >>
				1.4.1. Print "arucoMarker0.png" and "(same)1.png" to "(same)5.png" in the "Advanced" folder. Print them in the same size. (A4 size seems to be enough) (If you like, use "arucoMarker6.png" and later, too)
				1.4.2. (Optional) Measure the length of the side of the square in the printed image. (See "Which_side_to_measure_-_ArUco_marker.png")
				        Put the value in "Settings > Calibration > Marker size > ArUco marker [m]". The unit is meters. This value is used to define the scale of captured motion.
				1.4.3. Place the printed "arucoMarker0.png" on the floor. This will be the origin of the captured motion.
				       Place some of the printed "arucoMarker1.png" and later on the same floor as "arucoMarker0.png". Also, place some others on the wall. (The more markers you place on one surface, the more stable the result)
				1.4.4. Under "Settings > Calibration > Extrinsic calibration method", select "ArUco cluster".
				
				<< Measurement of marker positions >>
				1.4.5. Click "Scan markers" button under "Camera > Calibration > Extrinsic" of a camera that has finished calibration of internal parameters.
				1.4.6. Place the camera at a position where it can see "arucoMarker0.png" and "arucoMarker1.png" or later at the same time (you can hold it by hand). This measures the relative position of the marker.
				       When the relative position of the marker is measured and the position based on "arucoMarker0.png" is determined, the marker will be displayed on the 3D viewport.
				       Note that the marker may appear below the floor. The measurement takes a few seconds to 10 seconds.
				1.4.7. Place the camera at a position where it can see a marker whose position has been determined and a marker whose position has not been determined at the same time, and repeat the same operation as in 1.4.5 and 1.4.6.
				       Once positions of all the markers are determined, click "Stop scanning" button under "Camera > Calibration > Extrinsic".
				       
				       (If the markers are in the wrong positions and you want to reset the previous detections of markers, change "Settings > Calibration > Extrinsic calibration method" to ohter values.)
				
				<< Extrinsic calibration >>
				1.4.8. Place a camera that has finished calibration of internal parameters at a position where it can see a marker whose position has been determined. It doesn't matter if you performed 1.4.5 to 1.4.7 with that camera or not.
				1.4.9. Click "Start" button under "Calibration > Extrinsic". After this, it is the same as 1.3.5.
				
				
			1.5. Calibration of camera extrinsic parameters by "Diamond cluster" method
				The Diamond marker gives more precision than the ArUco marker, but requires printing on larger sizes of paper.

				<< Preparation >>
				1.5.1. Print "diamondMarker0.png" and "(same)1.png" in the "Advanced" folder. Print them in the same size. (A3 or larger is recommended) (If you like, use "diamondMarker2.png" and later, too)
				1.5.2. (Optional) Measure the length of the side of the black square in the printed image. (See "Which_side_to_measure_-_Diamond_marker.png")
				        Put the value in "Settings > Calibration > Marker size > Diamond marker [m]". The unit is meters. This value is used to define the scale of captured motion.
				1.5.3. Place the printed "diamondMarker0.png" on the floor. This will be the origin of the captured motion.
				       Place some of the printed "diamondMarker1.png" and later on the same floor as "diamondMarker0.png". Also, place some others on the wall. (The more markers you place on one surface, the more stable the result)
				1.5.4. Under "Settings > Calibration > Extrinsic calibration method", select "Diamond cluster".

				<< Measurement of marker positions >>
				Same as 1.4. Please read "arucoMarker" as "diamondMarker".

				<< Extrinsic calibration >>
				Same as 1.4.

	2. Start capture
		Click "Start capture" to start motion capture.
		If the captured motion looks wrong, see "3. Motion" of Troubleshooting section.
	
	3. Data export
		3.1. BVH
			Turn on "Settings > Data export > Record to BVH file" to save tracking result in BVH format.
			Currently, BVH export is supported only on VRM models.
			If you do not own VRM models, please select "VRM runtime load" in "Settings > General > Character" without actually loading a model.
			A dummy VRM model runs in background.

+		3.2. VMC
+			You can send tracking positions to other apps via Open Sound Control protocol.
+			The message format of "VMC protocol" maintenanced by gpsnmeajp can be used.
+			See "https://protocol.vmc.info/" for the details of the definition.
+			MocapForAll sends and receives "/VMC/Ext/Bone/Pos name, x, y, z, qx, qy, qz, qw" for bones and
+			"/VMC/Ext/Blend/Val name value" and "/VMC/Ext/Blend/Apply" for blend shapes.
+			Currently, the bones that can be received are limited to the eye bones.
+			
+			To send data to other apps, you need to turn on "Settings > Data export > VMC protocol > Send bones".
+			To receive data from other apps, you need to turn on "Settings > Data export > VMC protocol > Receive facial morphs". If you are receiving data from other device, turn on "From other device".
+			Then, you need to load the same VRM file that you use in other apps. To load a VRM file, simply drag and drop the VRM file into the MocapForAll window. (This is an experimental feature. There is no warranty that all VRM files work properly.)
			
		3.3. VMT
			You can send tracking positions to other apps via Open Sound Control protocol.
			The message format of "Virtual motion tracker" created by gpsnmeajp can be used.
			See "https://gpsnmeajp.github.io/VirtualMotionTrackerDocument/api/" for the details of the definition.
			MocapForAll sends "/VMT/Room/Unity index, enable, timeoffset, x, y, z, qx, qy, qz, qw" 
			or "/VMT/Follow/Unity index, enable, timeoffset, x, y, z, qx, qy, qz, qw, serial" format depending on the option settings.
			
			To send data to other apps, you need to turn on "Settings > Data export > VMT protocol > Send bones" or "Settings > Data export > VMT protocol > Send tracking points".
			For the details of the data export options, see "4.5. Data export".

			To use with Unreal Engine 4 or Unity, check our "MocapForAll Receiver Plugins" at "https://akiya-souken.booth.pm/items/3026430".

			To use with SteamVR, install "Virtual Motion Tracker" from "https://gpsnmeajp.github.io/VirtualMotionTrackerDocument/download/".
			Always face the orientation in "orientation.png" when you reorient the HMD's tracking space.
			To use with VRChat,
				turn on "Settings > Data export > VMT protocol > Send tracking points",
				turn on "Settings > Data export > VMT protocol > Send tracking points > As relative position to HMD".
			Also, see "Quick_Start_For_VRChat.mp4".
		
	4. Settings
		4.1. General
			4.1.1. Run DNN on ...
				You can use CPU or GPU for calculation. In general, using a GPU will improve performance.
				If you have multiple GPUs installed in your PC and want to change the GPU to use, click the small triangle next to the "Run DNN on" and select the pull down.
				GPU_DirectML: 
					DirectML provides GPU acceleration on DirectX 12 capable GPUs. Examples of compatible hardware include:
					- NVIDIA Kepler (GTX 600 series) and above
					- AMD GCN 1st Gen (Radeon HD 7000 series) and above
				GPU_TensorRT:
					TensorRT provides GPU acceleration on supported NVIDIA GPUs.
					To use this, you need to install CUDA, cuDNN, and TensorRT. See 6-10 of "How to install" section.
					To use this, you need to install "Appendix4_TensorRT_mode", too. See 2 of "How to install" section.
			4.1.2. Priority on ...
				You can choose Precision-oriented mode (more CPU / GPU usage) or Speed-oriented mode (less CPU / GPU usage). It is recommended to use GPU for Precision-oriented mode.
				To use Precision-oriented mode, "Appendix1_Precision_mode" needs to be installed. See 2 of "How to install" section.
			4.1.3. Capture hand
				Check "Capture hand" to capture the movements of your fingers.
				Note that this is an experimental feature. The accuracy is low and CPU / GPU usage is high.
			4.1.4. Capture face
				Check "Capture face" to capture facial expressions. It is recommended not to wear glasses for accurate capture.
				Check "Preview" to show the tracking points of your face in separated windows.
				Note that this is an experimental feature. The accuracy is low and CPU / GPU usage is high.
			4.1.5. Character
				"Empty": No character drawn. This is recommended to use to achieve the best performance.
				"MetaHuman F_Tal_Unw": Simple character which has Epic games' MetaHuman bone. Note that facial capture is not supported on this model.
				"MetaHuman Sample": A character created by Epic games' MetaHuman Creator. "Appendix3_MetaHuman_character" needs to be installed. See 2 of "How to install" section.
				"VRM runtime load": Automatically selected when using VRM model. To use your VRM model, simply drag and drop the VRM file into the app's window. (This is an experimental feature. There is no warranty that all VRM files work properly.)
			4.1.6. Draw tracking points
				Check this to show the tracking points of your body as yellowish cubes.
			4.1.7. Map
				"Minimum": Floor and poor lighting only. This is recommended to use to achieve the best performance.
				"HDRI------": Some HDRI textures from HDRI Haven (https://hdrihaven.com) are used. "Appendix2_HDRI_maps" needs to be installed. See 2 of "How to install" section.
				"Chroma_key": For chroma key compositing.
				
		4.2. Performance
			4.2.1. Show frame rate
				Check "Show frame rate" to show the current frame rate and some stats.
			4.2.2. Limit frame rate to...
				You can set the upper limit of the frame rate. The lower the value, the less CPU / GPU used.
			4.2.3. Set screen percentage to...
				You can specify the internal resolution of the app. The smaller the value, the less CPU / GPU used.
		
		4.3. Calibration
			4.3.1. Show cameras and markers
				Whether to show positions of cameras and markers in 3D viewport. Note that the camera may appear below the floor (in this case, the calibration has failed).
			4.3.2. Snap markers to surfaces
				Whether to correct the positions and orientations of the detected markers.
				If the difference of orientations between the markers is within 30 degrees, it is assumed that they are in the same plane and the positions and orientations of the markers are corrected.
				Nearly horizontal markers get snapped to the floor. Nearly vertical markers' orientations are corrected to be vertical.
			4.3.3. Extrinsic calibration method
				ChArUco board (default): 
					A method of calibrating external parameters by placing a single ChArUco board on the floor. 
					If the ChArUco image is printed large enough, this method gives the easiest and most stable result.
				ArUco cluster: 
					A method in which multiple ArUco markers are placed and their relative positions are also used to calibrate external parameters. 
					By placing some markers on the wall, calibration is possible even if the camera cannot capture the floor. 
					However, since the ArUco marker has lower precision (especially in its orientation), calibration sometimes fails.
				Diamond cluster: 
					A method in which multiple ChArUco Diamond markers are placed and their relative positions are also used to calibrate external parameters. 
					By placing some markers on the wall, calibration is possible even if the camera cannot capture the floor. 
					The ChArUco Diamond marker gives more precision than the ArUco marker, but requires printing on larger sizes of paper.
			
		4.4. Coordinates
			4.4.1. Scales
				Change the values under "Scales" to adjust the scales of the captured motion. These values depend on the paper size used in "1.3. Extrinsic calibration".
			4.4.2. Origin position
				Change the values under "Origin position" to adjust the origin of the captured motion. (Z-Up)
			4.4.3. Coord. rotation
				Change the values under "Coord. rotation" to adjust the rotation of the captured motion.
				
		4.5. Data export
			4.5.1. Destination IP address for VMT and VMC
				If you send data to the app running on the same PC, set this value to "127.0.0.1".
				If you send data to the app running on other PC, set this value to the IP adress of that PC.
			4.5.2. VMT protocol > Send bones
				Check this to send bone transforms which is acting in this app. (This does not work with runtime-loaded VRM models.)
				This is used for replicating the exact result of animation of this app to another app.
			4.5.3. VMT protocol > Send tracking points
				Check this to send tracking points of your body.
				This is used when you just need raw value of positions and rotations of "trackers", without animation retargetting done by this app.
				(For example, turn this on to use with VRChat.)

				4.5.3.1. As relative position to HMD
					Check this to send tracker positions as relative positions to the head.
					When used with SteamVR and "Virtual Motion Tracker", it is recommended to check this to make the latency of the virtual trackers less noticeable.
				4.5.3.2. Tracking points to be sent
					You can select which joint of your body to be sent, and specify the index of the virtual tracker.
					For the spine and feet, you can adjust the position and rotation offsets of the virtual trackers.
		
		4.6. Animation Post Process
			4.6.1. Force feet grounded
				When checked, inverse kinematics are used to control the positions of the feet so that they do not float in the air or sink into the floor.
			4.6.2. Smoothing on body, finger, and facial expression
				You can turn on/off the smoothing of the captured motion, and specify the smoothing intensity.
				To make motions smoother, decrease the values. For quick motions, increase the values.
				(See https://cristal.univ-lille.fr/~casiez/1euro/ for more information of the parameters)
		
		4.7. Advanced
			4.7.1. Cropping size for hand / face
				You can adjust the crop size of the image used to capture your hands and face.
			4.7.2. Specify facial morph target names
				You can specify the names of facial morph targets.
				This only works when using VRM models.
				To confirm the morph target names of your model, use VRM4U (https://github.com/ruyo/VRM4U) to import your model to UE4 editor and check the skeletal mesh asset.
				(More advanced usage: you can turn off specific morph by specifying invalid names here.)

Troubleshooting:
	1. Crash
		1.1. App crashes at startup
			- The downloaded files may be corrupted. Please download them again.
			- Try resetting the saved settings. Delete "C:\Users\<username>\AppData\Local\MocapForAll\Saved\SaveGames" folder and restart MocapForAll.
		
		1.2. App crashes when opening cameras
			We are very sorry that this is a known issue: App sometimes crashes when opening cameras.
			Please restart app.
		
		1.3. App crashes when starting capture
			- If you are using normal version and using GPU_DirectML for calculations, your PC may not have a GPU that supports Direct X 12.
			  Please use the CPU for calculations.
			- If you are using TensorRT version and using GPU_TensorRT for calculation, CUDA, cuDNN, or TensorRT may not be installed properly.
			  Please confirm the installation.
			- If you are using TensorRT version and using TensorRT for calculation, your GPU may not support TensorRT.
			  Please use GPU_DirectML or CPU for calculation.
		
		1.4. App crashes when changing the charcter
			We are very sorry that this is a known issue: App sometimes crashes when changing the charcter.
			Please restart app.
		
		1.5. App crashes when extrinsic calibratin is wrong and "Capture hand" is on.
			We are very sorry that this is a known issue.
			Please restart app.
		
		1.6. App crashes when using VRM models.
			We are very sorry that this is a known issue: App sometimes crashes when using VRM models.
			Please restart app.
			
	2. Calibration
		2.1. I am not sure camera intrinsic parameter is properly calibrated.
			Intrinsic parameter:
				fx  0 px
				 0 fy py
				 0  0  0
			In general, there is often no significant difference between the values of fx and fy.
			The px and py values are close to about half the width and height of the camera image.
			The parameter fx and fy represents focal length of the camera lens. px and py represents the position of center of the lens.

		2.2. I am not sure camera extrinsic parameter is properly calibrated.
			If calibration finishes within few frames after pressing "Start" button, it is likely to be OK.
			If calibration does not finish for more than seconds after pressing "Start" button, it is not likely to be OK. Please adjust the positions of "ExtrinsicCalibration.png" paper and cameras, or use a larger paper.
	
	3. Motion
		3.1. The captured motion is totally wrong.
			Redo the camera calibration.
			Please note that if you rotate camera by software (changing Landscape or Portrait) or change the resolution, you need to calibrate again.
		
		3.2. The character is floating in the air.
			Decrease the value at "Settings > Coordinates > Scale > Lower body".
			
		3.3. The character is always crunching.
			Increase the value at "Settings > Coordinates > Scale > Lower body".
		
		3.4. The character's shoulder is always facing up / down.
			Adjust the value at "Settings > Coordinates > Scale > Upper body".
		
		3.5. Legs tremble when crunching.
			Try turn off "Settings > Animation Post Process > Force feet grounded".
		
	4. Performance
		4.1. My PC cannot handle this app. / I want to reduce resource consumption to use with other apps.
			Select "Speed+" mode in "Settings > General > Priority on".
			Turn off "Settings > General > Capture hand".
			Turn off "Settings > General > Capture face".
			Select "Empty" character in "Settings > General > Character".
			Select "Minimum" map in "Settings > General > Map".
			Set small value (30% for example) and turn on "Settings > Performance > Set screen percentage to"
			Minimizing the camera preview also improves the performance.
	
	5. Export data
		5.1. No data has been sent.
			Check the firewall settings and make sure that communication is possible with the specified port number.


________________________________________________________________________________________________________

動作環境:
	最低：
		OS: Windows 10
		CPU: ？
		メモリ: 8GB
		ストレージ: 4GBの空き容量
		カメラ: ウェブカメラ2個
		
	推奨：
		OS: Windows 10
		CPU: 4.5GHz クアッドコアプロセッサ
		メモリ: 16GB
		ストレージ: 4GBの空き容量
		カメラ: ウェブカメラ2個
		GPU: Geforce GTX 1080 Ti

ダウンロード:

	もしBoothからのダウンロードがうまくいかない場合は、こちらのリンクをお試しいただくか、Network Installerをご使用ください。

		Readme:     https://d3ohm2q3tvfr8c.cloudfront.net/readme_Full_v1.5.zip
		Appendix1:  https://d3ohm2q3tvfr8c.cloudfront.net/Appendix1_Precision_mode.zip
		Appendix2:  https://d3ohm2q3tvfr8c.cloudfront.net/Appendix2_HDRI_maps.zip
		Appendix3:  https://d3ohm2q3tvfr8c.cloudfront.net/Appendix3_MetaHuman_character.zip
		Appendix4:  https://d3ohm2q3tvfr8c.cloudfront.net/Appendix4_TensorRT_mode.zip	

	また、古いバージョンが必要な場合は、こちらからダウンロードしてください。

		v1.4.1
			Readme: https://d3ohm2q3tvfr8c.cloudfront.net/readme_full_v1.4.1.zip

		v1.3
			Readme: https://d3ohm2q3tvfr8c.cloudfront.net/readme_full_v1.3.zip

		v1.2
			Readme: https://d3ohm2q3tvfr8c.cloudfront.net/readme_full_v1.2.zip
			Part2:  https://d3ohm2q3tvfr8c.cloudfront.net/Part2_MocapForAll_Full_v1.2.zip
			Part3:  https://d3ohm2q3tvfr8c.cloudfront.net/Part3_MocapForAll_Full_v1.2.zip

		v1.1
			Readme: https://d3ohm2q3tvfr8c.cloudfront.net/readme_full_v1.1.zip
			Part2:  https://d3ohm2q3tvfr8c.cloudfront.net/Part2_MocapForAll_Full_v1.1.zip
			Part3:  https://d3ohm2q3tvfr8c.cloudfront.net/Part3_MocapForAll_Full_v1.1.zip

		v1.0.1
		[Readme]
			        https://d3ohm2q3tvfr8c.cloudfront.net/readme_full_v1.0.1.zip
		[CPU version]
			Part2:  https://d3ohm2q3tvfr8c.cloudfront.net/Part2_MocapForAll_CPU_Full_v1.0.1.zip
			Part3:  https://d3ohm2q3tvfr8c.cloudfront.net/Part3_MocapForAll_CPU_Full_v1.0.1.zip
		[GPU version]
			Part2:  https://d3ohm2q3tvfr8c.cloudfront.net/Part2_MocapForAll_GPU_Full_v1.0.1.zip
			Part3:  https://d3ohm2q3tvfr8c.cloudfront.net/Part3_MocapForAll_GPU_Full_v1.0.1.zip
		
	
		v1.0
		[Readme]
			        https://d3ohm2q3tvfr8c.cloudfront.net/readme_full.zip
		[CPU version]
			Part2:  https://d3ohm2q3tvfr8c.cloudfront.net/Part2_MocapForAll_CPU_Full_v1.0.zip
			Part3:  https://d3ohm2q3tvfr8c.cloudfront.net/Part3_MocapForAll_CPU_Full_v1.0.zip
		[GPU version]
			Part2:  https://d3ohm2q3tvfr8c.cloudfront.net/Part2_MocapForAll_GPU_Full_v1.0.zip
			Part3:  https://d3ohm2q3tvfr8c.cloudfront.net/Part3_MocapForAll_GPU_Full_v1.0.zip
			

インストール手順:

	MocapForAllは、手動で、またはネットワークインストーラーを使用してインストールできます。

	手動インストール
		1.「MocapForAll_Full_v1.5.zip」をダウンロードして展開します。
		2.（省略可）Appendixに付属の機能が不要な場合はこの手順はスキップしてください。
		  「AppendixN_xxxxx_yyyyy.zip」をダウンロードして展開します。
		  「MocapForAll_Full_v1.5\MocapForAll」を「AppendixN_xxxxx_yyyyy\MocapForAll」で上書きします。
		3.「MocapForAll_Full_v1.5」フォルダでMocapForAll.exeを実行します。
		4.「UE4 Prerequisites」のインストール画面が表示された場合は、インストールしてください。

	ネットワークインストーラーによるインストール
		1.「Network_Installer_-_MocapForAll_Full_v1.5.zip」をダウンロードして解凍します。
		2.「Network_Installer_-_MocapForAll_Full_v1.5.exe」を実行します。
		3. スタートメニューからMocapForAllを実行するか、インストールパスでMocapForAll.exeを実行します。
		4.「UE4 Prerequisites」のインストール画面が表示された場合は、インストールしてください。

	SteamVRで利用するには:
		5. "Virtual Motion Tracker" を "https://gpsnmeajp.github.io/VirtualMotionTrackerDocument/download/" からダウンロードしインストールしてください。
			vmt_012でテスト済みです。
			vmt_010以前はサポートされていません。
			vmt_manager.exeで"Room matrix"の設定を行う必要があることに注意してください。詳細は"https://gpsnmeajp.github.io/VirtualMotionTrackerDocument/setup/"をご覧ください。

		**********************
		*****    重要    *****
		**********************
		Virtual Motion Tracker は MocapForAll とは別のプログラムであり、使い方がわかる開発者向けに作成されていることに注意してください。
		MocapForAllとVirtual Motion Trackerを一緒に利用して発生したいかなる問題についても、Virtual Motion Tracker の作成者様に問い合わせしないでください。

	(Advanced) TensorRTのインストール
		このセクションは、1ms/フレームでもパフォーマンスを向上させたい熟練したガチ勢のみを対象としています。
		（例えば開発環境のGTX1080Tiだと、TensorRTはDirectMLに比べてPrecisionモードで 約1ms/フレーム/カメラ だけ優れた性能を発揮します）
		CUDA、cuDNN、TensorRTをサポートするNvidia製のGPUが必要です。
		RTX30**シリーズはサポートされていません。
		
		6. 「CUDA11.0.3」を「https://developer.nvidia.com/cuda-11.0-update1-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exenetwork」からインストールします。
			インストーラーがNVIDIAドライバーのインストールに失敗する場合があることに注意してください。その場合は、最新のNVIDIAドライバーを手動でインストールしてください。
		7. 「cuDNN v8.0.2 (July 24th, 2020), for CUDA 11.0」を「https://developer.nvidia.com/rdp/cudnn-archive」からダウンロードして展開します。
			展開されてできた「cudnn-11.0-windows-x64-v8.0.2.39\cuda\bin」で    「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin」を上書きします。
			展開されてできた「cudnn-11.0-windows-x64-v8.0.2.39\cuda\include」で「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include」を上書きします。
			展開されてできた「cudnn-11.0-windows-x64-v8.0.2.39\cuda\lib」で    「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\lib」を上書きします。
			環境変数「CUDNN_PATH」を追加し、その値を「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0」に設定します。
		8. 「TensorRT7.1.3.4」を「https://developer.nvidia.com/nvidia-tensorrt-7x-download」からダウンロードして解凍します。
			上記Zipを展開したフォルダの中のlibフォルダを環境変数「PATH」に追加します（例：「C:\Program Files\NVIDIA GPU Computing Toolkit\TensorRT-7.1.3.4\lib」）。
		9. 環境変数「ORT_TENSORRT_ENGINE_CACHE_ENABLE」を追加し、その値を「1」に設定します。
		10. 環境変数「ORT_TENSORRT_CACHE_PATH」を追加し、その値をキャッシュファイルを保存する任意のパス（「C:\temp」など）に設定します。
			（TensorRTのその他のオプションについては、「https://www.onnxruntime.ai/docs/reference/execution-providers/TensorRT-ExecutionProvider.html#configuration-options」を参照してください）

			（環境変数は「EnvironmentVariables.png」や「EnvironmentVariables2.png」のようになります。）
			（環境変数「Path」は「Path.png」のようになります。）


アプリの使い方：

	0. ビューポートの移動
		WASDキーとマウスのドラッグでビューポートを移動します。
		（最初はキャラクターを探すのが少し大変かも…）
		画面の最大化は、F11キーでオンオフできます。

	1. カメラキャリブレーション
		("How_to_calibrate_cameras.mp4"にデモ動画があります)
	
		1.1. カメラを開く
			1.1.1 少なくとも2台のカメラをPCに接続します。
				   「DroidCam（https://www.dev47apps.com/）」や「Iriun（https://iriun.com/）」など、スマートフォンをPCのWebカメラとして利用できるアプリも利用可能です。
			1.1.2. 「Add camera」ボタンをクリックします。
			1.1.3. 「Camera」をプルダウンボックスから選択し、接続したカメラを探します。
			1.1.4. サイズを入力し「Apply」をクリックすると、カメラが指定された画像サイズをサポートしていれば、カメラの画像サイズを変更できます。
				   カメラの画像サイズの変更に失敗することがありますが、その場合はカメラを閉じてから少し待って、再度お試しください。
		1.2. カメラ内部パラメータのキャリブレーション（使用するすべてのカメラに対してこれを実行してください）
			1.2.1. 好きなアプリで「IntrinsicCalibration.png」を開き、画像を最大サイズで画面に表示します。 （または、紙に印刷してもOKです）
			1.2.2. 「Calibration > Intrinsic」の下の「Start」ボタンをクリックします。
			1.2.3. 10秒間程度、さまざまな角度からカメラで画像を写してください。キャリブレーションが完了すると、アプリの画面上にパラメータが表示されます。
		1.3. カメラ外部パラメータのキャリブレーション（デフォルトのChArUcoボードによる方式）
			1.3.1. 大きな紙に「ExtrinsicCalibration.png」を印刷します。（A3以上が推奨です）
			1.3.2. (省略可) 印刷された画像の黒い四角形の辺の長さを測定します。「Which_side_to_measure_-_ChArUco_board_(default).png」を参照してください。
			       「Settings > Calibration > Marker size > ChArUco board [m]」に測定した値を入力します。単位はメートルです。この値がキャプチャされた動きのスケールの基準になります。
			1.3.3. 印刷した「ExtrinsicCalibration.png」を床に置きます。これがモーションキャプチャの原点になります。
			1.3.4. 床に置いた「ExtrinsicCalibration.png」の紙が見える場所にカメラを設置します。
			1.3.5. 「Calibration > Extrinsic」の下の「Start」ボタンをクリックします。キャリブレーションが完了すると、外部パラメータが表示されます。
			       1.3.2で正しい値を入力していれば、3Dビューポート上でカメラの位置を確認できます。
			       カメラが床より下の位置に表示される場合がある可能性があることに注意してください（この場合、キャリブレーションが失敗しています）。
			       
				この手順後、全カメラのキャリブレーションが完了するまでは、キャリブレーションされたカメラと「ExtrinsicCalibration.png」用紙をを動かさないでください。これらを動かした場合は、外部パラメータのキャリブレーションをやり直す必要があります。
				すべてのカメラのキャリブレーションが終了したら、「ExtrinsicCalibration.png」用紙を床から取り除いてOKです。
		
		1.4. カメラキャリブレーション結果のセーブとロード
			「Save」「Load」ボタンをクリックすると、キャリブレーション結果を保存およびロードできます。
			
			また、「Save All Cameras」ボタンと「Load All Cameras」ボタンをクリックして、カメラ設定全体を保存およびロードできます。
			カメラの選択は、コンボボックス内の番号として保存されることに注意してください。 PCからカメラを取り外すと、コンボボックス内のカメラの順序が変わり、カメラを正しくロードできなくなります。
			
		(Advanced) その他の方式でのカメラ外部パラメータのキャリブレーション
			このセクションの内容は、1.3の方式での外部パラメータのキャリブレーションを理解してから実施してください。
			1.3の方式では、「ExtrinsicCalibration.png」を床面に置き、それが見える位置にカメラを配置する必要がありました。
			このカメラ配置の制約を回避するために、以下の二つの方式が選択可能です。
		
			1.4. Aruco cluster方式によるカメラ外部パラメータのキャリブレーション

				【準備】
				1.4.1. 「Advanced」フォルダの中にある「arucoMarker0.png」および「同1」～「同5」を印刷します。画像のサイズが同じになるように印刷してください。（A4程度のサイズで十分なようです）（お好みで「同6」以降もどうぞ）
				1.4.2. (省略可) 印刷された画像の四角形の辺の長さを測定します。「Which_side_to_measure_-_ArUco_marker.png」を参照してください。
				       「Settings > Calibration > Marker size > ArUco marker [m]」に測定した値を入力します。単位はメートルです。この値がキャプチャされた動きのスケールの基準になります。
				1.4.3. 印刷した「arucoMarker0.png」を床に置きます。これがモーションキャプチャの原点になります。
				       印刷した「arucoMarker1.png」以降のいくつかを「arucoMarker0.png」と同じ床面に置きます。また、他のいくつかを壁面に貼り付けます。（一つの面に配置するマーカが多いほど結果が安定します）
				1.4.4. 「Settings > Calibration > Extrinsic calibration method」で「ArUco cluster」を選択します。

				【マーカ位置の測定】
				1.4.5. 内部パラメータのキャリブレーションが完了しているカメラで、
				       「Camera > Calibration > Extrinsic」の下の「Scan markers」ボタンをクリックします。
				1.4.6. 配置した「arucoMarker0.png」、および、「arucoMarker1.png」以降のいずれかが同時に映る位置にカメラを配置します（手で持ってもOKです）。これによりマーカの相対位置を測定します。
				       マーカの相対位置が測定され、「arucoMarker0.png」を基準とした位置が確定すると、3Dビューポート上にマーカが表示されます。
				       マーカが床面より下に表示されることがあることに注意してください。測定には数秒～10秒程度かかります。
				1.4.7. 位置が確定済みのマーカと位置が未確定のマーカが同時に映る位置にカメラを配置し、1.4.5～1.4.6と同様の操作を繰り返します。
				       全てのマーカの位置が確定したら、「Camera > Calibration > Extrinsic」の下の「Stop scaning」ボタンをクリックします。

				       （マーカーの位置が間違っていてリセットしたい場合は、「Settings > Calibration > Extrinsic calibration method」を別の値に変更してください）

				【カメラ外部パラメータのキャリブレーション】
				1.4.8. 内部パラメータのキャリブレーションが完了しているカメラを、位置が確定済みのマーカが見える位置に配置します。そのカメラで1.4.5～1.4.7の操作を行ったかどうかは関係ありません。
				1.4.9. 「Calibration > Extrinsic」の下の「Start」ボタンをクリックします。これ以降は1.3.5と同じです。
			
			1.5. Diamond cluster方式によるカメラ外部パラメータのキャリブレーション
				DiamondマーカはArUcoマーカより向きの精度が高いですが、大きなサイズの紙に印刷する必要があります。
			
				【準備】
				1.5.1. 「Advanced」フォルダの中にある「diamondMarker0.png」および「同1」を印刷します。画像のサイズが同じになるように印刷してください。（A3以上が推奨です）（お好みで「同6」以降もどうぞ）
				1.5.2. (省略可) 印刷された画像の黒い四角形の辺の長さを測定します。「Which_side_to_measure_-_Diamond_marker.png」を参照してください。
				       「Settings > Calibration > Marker size > Diamond marker [m]」に測定した値を入力します。単位はメートルです。
				1.5.3. 印刷した「diamondMarker0.png」を床に置きます。これがモーションキャプチャの原点になります。
				       印刷した「diamondMarker1.png」以降のいくつかを「diamondMarker1.png」と同じ床面に置きます。また、他のいくつかを壁面に貼り付けます。（一つの面に配置するマーカが多いほど結果が安定します）
				1.5.4. 「Settings > Calibration > Extrinsic calibration method」で「Diamond cluster」を選択します。
				
				【マーカ位置の測定】
				1.4と同様です。「arucoMarker」を「diamondMarker」に読み替えてください。

				【カメラ外部パラメータのキャリブレーション】
				1.4と同様です。

	2. キャプチャー開始
		「Start Capture」をクリックしてモーションキャプチャーを開始します。
		キャラクターに正しくモーションが反映されない場合は、Troubleshooting の「3. Motion」をご確認ください。
	
	3. データのエクスポート
		3.1. BVH
			"Settings > Data export > Record to BVH file" を有効にすると、BVH形式でデータを保存できます。
			現在、BVH形式でのエクスポートはVRMモデルでのみサポートされています。
			VRMモデルをお持ちでない場合は、実際にモデルをロードせずに、"Settings > General > Character" で "VRM runtime load" を選択してください。
			ダミーのVRMモデルがバックグラウンドで実行されます。
	
		3.2. VMC
+			Open Sound Controlプロトコルを介して、キャプチャ結果を他のアプリに送信できます。
+			gpsnmeajp様がメンテナンスされている「VMCプロトコル」のフォーマットを使用することができます。
+			定義の詳細は「https://protocol.vmc.info/」を参照してください。
+			MocapForAllは、ボーンについては「/VMC/Ext/Bone/Pos name, x, y, z, qx, qy, qz, qw」、 for bones and
+			表情のBlendShapleについては「/VMC/Ext/Blend/Val name value」および「/VMC/Ext/Blend/Applyを送受信します。
+			なお、現在は、受信できるボーンは目のボーンのみに限定されています。
+			
+			他のアプリにデータを送信するには、「Settings > Data export > VMC protocol > Send bones」をオンにする必要があります。
+			他のアプリからデータを受信するには、「Settings > Data export > VMC protocol > Receive facial morphs」をオンにする必要があります。他のデバイスからデータを受信する場合は「From other device」をオンにします。
+			また、他のアプリで使用しているものと同じVRMファイルをロードする必要があります。 VRMファイルをロードするには、VRMファイルをMocapForAllウィンドウにドラッグアンドドロップするだけです。 （これは実験的な機能です。すべてのVRMファイルが正しく機能するという保証はありません。）

		3.3. VMT
			Open Sound Controlプロトコルを介して、キャプチャ結果を他のアプリに送信できます。
			gpsnmeajp様が作成した「バーチャルモーショントラッカー」のフォーマットを使用することができます。
			定義の詳細は「https://gpsnmeajp.github.io/VirtualMotionTrackerDocument/api/」を参照してください。
			MocapForAllはオプション設定に応じて「/VMT/Room/Unity index, enable, timeoffset, x, y, z, qx, qy, qz, qw」または「/VMT/Follow/Unity index, enable, timeoffset, x, y, z, qx, qy, qz, qw, serial」の形式でデータを送信します。
			
			他のアプリにデータを送信するには、「Settings > Data export > VMT protocol > Send bones」または「Settings > Data export > VMT protocol > Send tracking points」をオンにする必要があります。
			データ出力オプションの詳細については、「4.5. データ出力」を参照してください。

			Unreal Engine 4やUnityでのデータ受信の例は、「MocapForAll Receiver Plugins」（https://akiya-souken.booth.pm/items/3026430）を参照してください。
			
			SteamVRで利用するには、「https://gpsnmeajp.github.io/VirtualMotionTrackerDocument/download/」から「Virtual Motion Tracker」をインストールしてください。
			また、トラッキング環境の向きを「orientation.png」の向きに合わせてください。
			VRChat等での利用には、
				「Settings > Data export > VMT protocol > Send tracking points」と
				「Settings > Data export > VMT protocol > Send tracking points > As relative position to HMD」をオンにしてください。
			「Quick_Start_For_VRChat.mp4」も参考にしてください。
	
	4. 設定
		4.1. General
			4.1.1. Run DNN on ...
				演算にCPUかGPUのどちらを使用するか選択できます。一般に、GPU を使用するとパフォーマンスが向上します。
				PCに複数のGPUがインストールされている場合、使用するGPUを変更するには、「Run DNN on」の横にある小さな三角形をクリックして、プルダウンを選択します。
				GPU_DriectML:
					DirectMLは、DirectX12対応GPUでGPUアクセラレーションを可能にします。使用可能なハードウェアの例は次の通りです。
						NVIDIA Kepler（GTX 600シリーズ）以降
						AMD GCN 1st Gen（Radeon HD 7000シリーズ）以降
				GPU_TensorRT：
					TensorRTは、サポートされているNVIDIA製GPUでGPUアクセラレーションを可能にします。
					これを使用するには、CUDA、cuDNN、およびTensorRTをインストールする必要があります。 「インストール方法」セクションの6～10を参照してください。
					また、これを使用するには、「Appendix4_TensorRT_mode」をインストールする必要があります。「インストール方法」セクションの2を参照してください。
			4.1.2. Priority on ...
				精度重視モード (CPU/GPU 使用率が高い) または速度重視モード (CPU/GPU 使用率が低い) を選択できます。精度指向モードには GPU を使用することをお勧めします。
				精度指向モードを使用するには、「Appendix1_Precision_mode」をインストールする必要があります。 「インストール方法」セクションの2を参照してください。
			4.1.3. Capture hand
				指の動きをキャプチャするには、これをチェックします。
				これは実験的機能であることに注意してください。正確性に欠け、CPU/GPU使用率は高くなります。
			4.1.4. Capture face
				顔の表情をキャプチャするには、これをチェックします。正確なキャプチャのためには、メガネを着用しないことをお勧めします。
				「Preview」にチェックを入れると、顔のトラッキングの状況が別ウィンドウで表示されます。
				これは実験的機能であることに注意してください。正確性に欠け、CPU/GPU使用率は高くなります。
			4.1.5. Character
				「Empty」：キャラクターを描画しません。パフォーマンス最適化のために使用することをお勧めします。
				「MetaHuman F_Tal_Unw」: Epic Games の MetaHuman ボーンを持つシンプルなキャラクター。
				「MetaHuman Sample」: Epic Games の MetaHuman Creator によって作成されたキャラクター。「Appendix3_MetaHuman_character」をインストールする必要があります。 「インストール方法」セクションの2を参照してください。
				「VRM runtime load」：VRMモデル使用時に自動で選択されます。 VRMモデルを使用するには、VRMファイルをアプリのウィンドウにドラッグ&ドロップしてください。（実験的機能です。全てのVRMファイルに対応することを保証するものではありません）
			4.1.6. Draw tracking points
				これをチェックすると、体のトラッキングの座標が黄色い立方体で表示されます。
			4.1.7. Map
				「Minimum」: 床と低精度の照明のみ。パフォーマンス最適化のために使用することをお勧めします。
				「HDRI------」: HDRI Haven (https://hdrihaven.com) の HDRI テクスチャを使用したマップです。「Appendix2_HDRI_maps」をインストールする必要があります。 「インストール方法」セクションの2を参照してください。
				「Chroma_key」：クロマキー合成用。
				
		4.2. Performance
			4.2.1. Show frame rate
				オンにすると、現在のフレームレートといくつかの統計情報が表示されます。
			4.2.2. Limit frame rate to...
				フレームレートの上限を設定します。値が小さいほど、CPU / GPU の使用が少なくなります。
			4.2.3. Set screen percentage to...
				アプリの内部解像度を指定できます。値が小さいほど、CPU / GPU の使用が少なくなります。
				
		4.3. Calibration
			4.3.1. Show cameras and markers
				カメラとマーカーの位置を3Dビューポートに表示するかどうか。カメラが床より下の位置に表示される場合がある可能性があることに注意してください（この場合、キャリブレーションが失敗しています）。
			4.3.2. Snap markers to surfaces
				検出されたマーカーの位置と向きを修正するかどうか。
				マーカ間の向きの差が30度以内なら、同じ平面内にあるとしてマーカの位置と回転を補正します。ほぼ水平のマーカは床面に対してスナップされます。ほぼ垂直のマーカは、垂直になるよう補正されます。
			4.3.3. Extrinsic calibration method
				ChArUco board (default): 
					単一のChArUcoボードを床面に置いて外部パラメータのキャリブレーションを行う方式。
					ChArUcoの画像を十分大きく印刷すれば、最も簡単に安定した結果が得られる。
				ArUco cluster: 
					複数のArUcoマーカを配置して、それらの相対位置も使って外部パラメータのキャリブレーションを行う方式。
					一部のマーカを壁面に設置することで、カメラが床面を捉えられなくてもキャリブレーションができる。
					ただし、ArUcoマーカは向きの精度が低いため、キャリブレーションに失敗しやすい。
				Diamond cluster: 
					複数のChArUco Diamondマーカを配置して、それらの相対位置も使って外部パラメータのキャリブレーションを行う方式。
					一部のマーカを壁面に設置することで、カメラが床面を捉えられなくてもキャリブレーションができる。
					ChArUco DiamondマーカはArUcoマーカより向きの精度が高いが、大きなサイズの紙に印刷する必要がある。
		
		4.4. Coordinates
			4.4.1. Scales
				キャプチャしたモーションのスケールを調整します。これらの値は、「1.3. 外部キャリブレーション」で使用する用紙サイズに依存します。
			4.4.2. Origin position
				キャプチャしたモーションの原点を調整します。(Zが上向きです)
			4.4.3. Coord. rotation
				キャプチャしたモーションの向きを調整します。
				
		4.5. Data export
			4.5.1. IP address
				同一PC上で動作するアプリにデータを送信する場合は、「127.0.0.1」に設定してください。
				他のPCで動作しているアプリにデータを送信する場合は、そのPCのIPアドレスを設定します。
			4.5.2. VMT protocol > Send bones
				このアプリで表示している MetaHuman のボーンのトランスフォームを送信します。（VRMモデルを使っている場合は機能しません）
				このアプリでのアニメーションの結果をそのまま別のアプリにコピーするために使用します。
			4.5.3. VMT protocol > Send tracking points
				これをチェックすると、体のトラッキング位置が送信されます。
				このアプリでアニメーションのリターゲットを行わずに、「トラッカー」の位置と回転の生の値が必要な場合に使用します。

				4.5.3.1. As relative position to HMD
					トラッカーの位置を頭に対する相対位置として送信します。
					SteamVR および Virtual Motion Tracker と併用する場合は、これをチェックして仮想トラッカーのレイテンシーを目立たなくすることをお勧めします。
				4.5.3.2. Tracking points to be sent
					各トラッキング位置のどれを送信するか、および、仮想トラッカーの番号を指定できます。
					腰と足については、仮想トラッカーの位置と回転のオフセットを調節できます。
		
		4.6. Animation Post Process
			4.6.1. Force feet grounded
				IK（逆運動学）を使用して足の位置を制御し、足が宙に浮いたり床に沈んだりしないようにします。
			4.6.2. Smoothing on body, finger, facial expression
				キャプチャしたモーションのスムージングのオン/オフと、スムージングの強度を指定できます。
				モーションを滑らかにするには、小さな値を指定します。素早い動きの場合は、値を大きくしてください。
				(パラメーターの詳細については、https://cristal.univ-lille.fr/~casiez/1euro/ を参照してください)
		
		4.7. Advanced
			4.7.1. Cropping size for hand / face
				手と顔のキャプチャに使用する画像のトリミング サイズを調整できます。
			4.7.2. Specify facial morph target names
				顔のモーフターゲットの名前を指定できます。
				これは、VRM モデルを使用している場合にのみ機能します。
				モデルのモーフターゲット名を確認するには、VRM4U (https://github.com/ruyo/VRM4U) を使用してモデルを UE4 エディターにインポートし、skeletal meshを確認してください。
				(裏技的な使い方: ここで無効な名前を指定することで、特定のモーフをオフにすることができます。)

トラブルシューティング:
	1. クラッシュ
		1.1. 起動時にアプリがクラッシュする
			- ダウンロードしたファイルが破損している可能性があります。再度ダウンロードをお試しください。
			- 設定情報を削除すると起動できるようになる場合があります。「C:\Users\<username>\AppData\Local\MocapForAll\Saved\SaveGames」フォルダを削除してみてください。
			- TensorRT版を使用している場合は、CUDA、cuDNN、TensorRT が正しくインストールされているか確認してください。

		1.2. カメラ開くときにアプリがクラッシュする
			申し訳ありません。これは既知の問題です。カメラを開くときにアプリがクラッシュすることがあります。
			アプリを再起動してください。

		1.3. キャプチャの開始時にアプリがクラッシュする
			- 通常版を使用していて、計算に GPU_DirectML を使用している場合、Direct X 12をサポートするGPUがPCに存在しない可能性があります。
			  ご使用のGPUがDirect X 12をサポートしていない場合、CPUを計算に使用してください。
			- TensorRT版を使用していて、計算に GPU_TensorRT を使用している場合、CUDA、cuDNN、または TensorRT が正しくインストールされない可能性があります。
			  インストールを確認してください。
			- TensorRT版を使用していて、計算に GPU_TensorRT を使用している場合、GPU が TensorRT をサポートしていない可能性があります。
			  計算にGPU_CUDAまたはCPUを使用してみてください。
		
		1.4. キャラクタ変更するとアプリがクラッシュする
			申し訳ありません。これは既知の問題です。キャラクタを変更するとアプリがクラッシュすることがあります。
			アプリを再起動してください。
		
		1.5. カメラの外部パラメータが間違っていて、手のキャプチャがオンになっていると、アプリがクラッシュする。
			申し訳ありません。これは既知の問題です。
			アプリを再起動してください。

		1.6. VRMモデルを使っていると、アプリがクラッシュする。
			申し訳ありません。これは既知の問題です。VRMモデルを使っていると、まれにアプリがクラッシュすることがあります。
			アプリを再起動してください。
		
	2. 校正
		2.1.カメラの内部パラメーターが適切にキャリブレーションされているかどうかわかりません。
			内部パラメーターの定義:
				fx  0 px
				 0 fy py
				 0  0  0
			一般に、fx と fy の値に大きな違いはないことが多いです。
			px と py の値は、画像の幅と高さの約半分に近い値になります。
			パラメータ fx および fy は、カメラ レンズの焦点距離を表します。 px と py はレンズの光軸の位置を表します。

		2.2.カメラの外部パラメータが適切にキャリブレーションされているかどうかわかりません。
			「Start」ボタンを押してから数フレーム以内にキャリブレーションが終了すれば、おそらくOKです。
			外部キャリブレーションの「Start」ボタンを押した後、数秒以上キャリブレーションが終了しない場合は、うまくいかない可能性が高いです。
			「ExtrinsicCalibration.png」の用紙とカメラの位置を調整するか、より大きな用紙を使用してください。
	
	3. モーション
		3.1. キャプチャしたモーションが完全に間違っています。
			カメラキャリブレーションをやり直してください。
			ソフトウェアでカメラを回転させた場合 (Landscape と Portrait の変更等) や解像度を変更した場合は、再度キャリブレーションを行う必要があることに注意してください。
		
		3.2. キャラクターが宙に浮いています。
			「Settings > Coordinates > Scale > Lower body」で値を減らします。
			
		3.3. キャラクターが常にしゃがんでいます。
			「Settings > Coordinates > Scale > Lower body」で値を増やします。
		
		3.4. キャラクターの肩が常に上あるいは下を向いています。
			「Settings > Coordinates > Scale > Upper body」で値を調整します。
		
		3.5. しゃがむと足が震えます。
			「Settings > Animation Post Process > Force feet grounded」をオフにすると改善することがあります。
		
	4. パフォーマンス
		4.1. PCのスペックが足りません / 他のアプリと併用するためリソース消費を抑えたいです。
			「Settings > General > Priority on」で「Speed+」モードを試してください。
			「Settings > General > Capture hand」をオフにします。
			「Settings > General > Capture face」をオフにします。
			「Settings > General > Character」で「Empty」キャラクターを選択してください。
			「Settings > General > Map」で「Minimum」マップを選択してください。
			「Settings > Performance > Set screen percentage to」をオンにし、小さな値 (たとえば 30%) を設定します。
			カメラのプレビューを最小化すると、パフォーマンスが若干向上します。
	
	5. データのエクスポート
		5.1. データが送信されてきません。
			ファイアウォールの設定を確認し、指定しているポート番号で通信が可能であることを確認してください。

