public override void SaveAnimation(NUIHumanoidAnimation animation) { // Check if there is capture data if (animation == null) { UnityEngine.Debug.LogWarning("No capture data was found."); return; } // Map captured data to Collada data ColladaAnimationData data = GetColladaAnimation(animation); // Check filename string appendedFileName = string.Format("MoCapHumanoid@{0}", fileName); string newFileName = appendedFileName; if (BaseSystem.IO.File.Exists(string.Format(SAVE_DESTINATION_FORMAT, animSaveDestination, newFileName))) { newFileName = CinemaMocapHelper.GetNewFilename(animSaveDestination, appendedFileName, "dae"); UnityEngine.Debug.LogWarning(string.Format(NAME_DUPLICATE_ERROR_MSG, appendedFileName, newFileName)); } // Save if (transformationType == TransformationType.Matrix) { ColladaUtility.SaveAnimationData(data, SOURCE_FILE_MATRIX_PATH, string.Format(SAVE_DESTINATION_FORMAT, animSaveDestination, newFileName), true); } else { ColladaUtility.SaveAnimationData(data, SOURCE_FILE_PATH, string.Format(SAVE_DESTINATION_FORMAT, animSaveDestination, newFileName), false); } }
/// <summary> /// Once capturing is complete, write out the animation file. /// </summary> private void StopRecording() { // Change to stopped state stopwatch.Stop(); captureState = RecordingState.NotRecording; // Check if there is capture data if (captureData == null) { UnityEngine.Debug.LogWarning("No capture data was found."); return; } // Reload the rig data and mapper if necessary if (inputMapper == null) { rigData = ColladaUtility.ReadRigData(SOURCE_FILE); inputMapper = new NUIInputToRigMapper(rigData); } // Map captured data to Collada data ColladaAnimationData data = inputMapper.GetColladaAnimation(captureData); // Check filename string appendedFileName = string.Format("MoCapHumanoid@{0}", fileName); string newFileName = appendedFileName; if (System.IO.File.Exists(string.Format(FILE_DESTINATION, appendedFileName))) { newFileName = getNewFilename(appendedFileName); UnityEngine.Debug.LogWarning(string.Format(NAME_DUPLICATE_ERROR_MSG, appendedFileName, newFileName)); } // Save if (transformationType == TransformationType.Matrix) { ColladaUtility.SaveAnimationData(data, SOURCE_FILE_MATRIX, string.Format(FILE_DESTINATION, newFileName), true); } else { ColladaUtility.SaveAnimationData(data, SOURCE_FILE, string.Format(FILE_DESTINATION, newFileName), false); } AssetDatabase.Refresh(); }