From f5a825e606ae6cbd66c983ad84935bfaa3937027 Mon Sep 17 00:00:00 2001 From: Mike Date: Sun, 20 Nov 2022 14:46:15 +0000 Subject: [PATCH] Fix unity asset exporter for Linux use, update branding to Overte --- .../Editor/AvatarExporter/AvatarExporter.cs | 490 +++++++++--------- tools/unity-avatar-exporter/Assets/README.txt | 7 +- .../avatarExporter.unitypackage | Bin 75756 -> 90830 bytes tools/unity-avatar-exporter/packager.sh | 30 ++ 4 files changed, 286 insertions(+), 241 deletions(-) create mode 100755 tools/unity-avatar-exporter/packager.sh diff --git a/tools/unity-avatar-exporter/Assets/Editor/AvatarExporter/AvatarExporter.cs b/tools/unity-avatar-exporter/Assets/Editor/AvatarExporter/AvatarExporter.cs index 1070449080..cc4e556fdd 100644 --- a/tools/unity-avatar-exporter/Assets/Editor/AvatarExporter/AvatarExporter.cs +++ b/tools/unity-avatar-exporter/Assets/Editor/AvatarExporter/AvatarExporter.cs @@ -2,10 +2,12 @@ // // Created by David Back on 28 Nov 2018 // Copyright 2018 High Fidelity, Inc. +// Copyright 2022 Overte e.V. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html + using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; @@ -17,8 +19,8 @@ using System.Text.RegularExpressions; class AvatarExporter : MonoBehaviour { // update version number for every PR that changes this file, also set updated version in README file - static readonly string AVATAR_EXPORTER_VERSION = "0.4.1"; - + static readonly string AVATAR_EXPORTER_VERSION = "0.5.0"; + static readonly float HIPS_MIN_Y_PERCENT_OF_HEIGHT = 0.03f; static readonly float BELOW_GROUND_THRESHOLD_PERCENT_OF_HEIGHT = -0.15f; static readonly float HIPS_SPINE_CHEST_MIN_SEPARATION = 0.001f; @@ -29,7 +31,7 @@ class AvatarExporter : MonoBehaviour { static readonly string HEIGHT_REFERENCE_PREFAB = "Assets/Editor/AvatarExporter/HeightReference.prefab"; static readonly Vector3 PREVIEW_CAMERA_PIVOT = new Vector3(0.0f, 1.755f, 0.0f); static readonly Vector3 PREVIEW_CAMERA_DIRECTION = new Vector3(0.0f, 0.0f, -1.0f); - + // TODO: use regex static readonly string[] RECOMMENDED_UNITY_VERSIONS = new string[] { "2018.2.12f1", @@ -60,8 +62,8 @@ class AvatarExporter : MonoBehaviour { "2017.4.16f1", "2017.4.15f1", }; - - static readonly Dictionary HUMANOID_TO_HIFI_JOINT_NAME = new Dictionary { + + static readonly Dictionary HUMANOID_TO_VIRC_JOINT_NAME = new Dictionary { {"Chest", "Spine1"}, {"Head", "Head"}, {"Hips", "Hips"}, @@ -117,7 +119,7 @@ class AvatarExporter : MonoBehaviour { {"Spine", "Spine"}, {"UpperChest", "Spine2"}, }; - + // absolute reference rotations for each Humanoid bone using Artemis fbx in Unity 2018.2.12f1 static readonly Dictionary REFERENCE_ROTATIONS = new Dictionary { {"Chest", new Quaternion(-0.0824653f, 1.25274e-7f, -6.75759e-6f, 0.996594f)}, @@ -175,7 +177,7 @@ class AvatarExporter : MonoBehaviour { {"Spine", new Quaternion(-0.05427956f, 1.508558e-7f, -2.775203e-6f, 0.9985258f)}, {"UpperChest", new Quaternion(-0.0824653f, 1.25274e-7f, -6.75759e-6f, 0.996594f)}, }; - + // Humanoid mapping name suffixes for each set of appendages static readonly string[] LEG_MAPPING_SUFFIXES = new string[] { "UpperLeg", @@ -206,7 +208,7 @@ class AvatarExporter : MonoBehaviour { " Thumb Intermediate", " Thumb Proximal", }; - + static readonly string STANDARD_SHADER = "Standard"; static readonly string STANDARD_ROUGHNESS_SHADER = "Standard (Roughness setup)"; static readonly string STANDARD_SPECULAR_SHADER = "Standard (Specular setup)"; @@ -245,7 +247,7 @@ class AvatarExporter : MonoBehaviour { AvatarRule.ChestMapped, AvatarRule.HeadMapped, }; - + class UserBoneInformation { public string humanName; // bone name in Humanoid if it is mapped, otherwise "" public string parentName; // parent user bone name @@ -253,7 +255,7 @@ class AvatarExporter : MonoBehaviour { public int mappingCount; // number of times this bone is mapped in Humanoid public Vector3 position; // absolute position public Quaternion rotation; // absolute rotation - + public UserBoneInformation() { humanName = ""; parentName = ""; @@ -270,22 +272,22 @@ class AvatarExporter : MonoBehaviour { position = pos; rotation = new Quaternion(); } - + public bool HasHumanMapping() { return !string.IsNullOrEmpty(humanName); } } - - class BoneTreeNode { + + class BoneTreeNode { public string boneName; public string parentName; public List children = new List(); - + public BoneTreeNode() {} public BoneTreeNode(string name, string parent) { boneName = name; parentName = parent; } } - + class MaterialData { public Color albedo; public string albedoMap; @@ -297,7 +299,7 @@ class AvatarExporter : MonoBehaviour { public string occlusionMap; public Color emissive; public string emissiveMap; - + public string getJSON() { string json = "{ \"materialVersion\": 1, \"materials\": { "; json += "\"albedo\": [" + albedo.r + ", " + albedo.g + ", " + albedo.b + "], "; @@ -326,9 +328,9 @@ class AvatarExporter : MonoBehaviour { return json; } } - + static string assetPath = ""; - static string assetName = ""; + static string assetName = ""; static ModelImporter modelImporter; static HumanDescription humanDescription; @@ -337,13 +339,13 @@ class AvatarExporter : MonoBehaviour { static BoneTreeNode userBoneTree = new BoneTreeNode(); static Dictionary failedAvatarRules = new Dictionary(); static string warnings = ""; - + static Dictionary textureDependencies = new Dictionary(); static Dictionary materialMappings = new Dictionary(); static Dictionary materialDatas = new Dictionary(); static List alternateStandardShaderMaterials = new List(); static List unsupportedShaderMaterials = new List(); - + static SceneSetup[] previousSceneSetup; static Vector3 previousScenePivot = Vector3.zero; static Quaternion previousSceneRotation = Quaternion.identity; @@ -353,25 +355,25 @@ class AvatarExporter : MonoBehaviour { static GameObject avatarPreviewObject; static GameObject heightReferenceObject; - [MenuItem("High Fidelity/Export New Avatar")] + [MenuItem("Overte/Export New Avatar")] static void ExportNewAvatar() { ExportSelectedAvatar(false); } - [MenuItem("High Fidelity/Update Existing Avatar")] + [MenuItem("Overte/Update Existing Avatar")] static void UpdateAvatar() { ExportSelectedAvatar(true); } - - [MenuItem("High Fidelity/About")] + + [MenuItem("Overte/About")] static void About() { - EditorUtility.DisplayDialog("About", "High Fidelity, Inc.\nAvatar Exporter\nVersion " + AVATAR_EXPORTER_VERSION, "Ok"); + EditorUtility.DisplayDialog("About", "Avatar Exporter\nVersion " + AVATAR_EXPORTER_VERSION + "\nCopyright 2022 Overte e.V.\nCopyright 2018 High Fidelity, Inc.", "Ok"); } static void ExportSelectedAvatar(bool updateExistingAvatar) { // ensure everything is saved to file before doing anything AssetDatabase.SaveAssets(); - + string[] guids = Selection.assetGUIDs; if (guids.Length != 1) { if (guids.Length == 0) { @@ -389,14 +391,14 @@ class AvatarExporter : MonoBehaviour { return; } if (modelImporter.animationType != ModelImporterAnimationType.Human) { - EditorUtility.DisplayDialog("Error", "Please set model's Animation Type to Humanoid in " + + EditorUtility.DisplayDialog("Error", "Please set model's Animation Type to Humanoid in " + " the Rig section of it's Inspector window.", "Ok"); return; } - + avatarResource = AssetDatabase.LoadAssetAtPath(assetPath, typeof(UnityEngine.Object)); humanDescription = modelImporter.humanDescription; - + string textureWarnings = SetTextureDependencies(); // if the rig is optimized we should de-optimize it during the export process @@ -405,15 +407,15 @@ class AvatarExporter : MonoBehaviour { modelImporter.optimizeGameObjects = false; modelImporter.SaveAndReimport(); } - + SetBoneAndMaterialInformation(); - + if (shouldDeoptimizeGameObjects) { // switch back to optimized game object in case it was originally optimized modelImporter.optimizeGameObjects = true; modelImporter.SaveAndReimport(); } - + // check if we should be substituting a bone for a missing UpperChest mapping AdjustUpperChestMapping(); @@ -427,18 +429,18 @@ class AvatarExporter : MonoBehaviour { boneErrors += failedAvatarRule.Value + "\n\n"; } else { warnings += failedAvatarRule.Value + "\n\n"; - } + } } - + // add material and texture warnings after bone-related warnings - AddMaterialWarnings(); + AddMaterialWarnings(); warnings += textureWarnings; - + // remove trailing newlines at the end of the warnings if (!string.IsNullOrEmpty(warnings)) { warnings = warnings.Substring(0, warnings.LastIndexOf("\n\n")); } - + if (!string.IsNullOrEmpty(boneErrors)) { // if there are both errors and warnings then warnings will be displayed with errors in the error dialog if (!string.IsNullOrEmpty(warnings)) { @@ -450,41 +452,41 @@ class AvatarExporter : MonoBehaviour { EditorUtility.DisplayDialog("Error", boneErrors, "Ok"); return; } - + // since there are no errors we can now open the preview scene in place of the user's scene if (!OpenPreviewScene()) { return; } - + // show None instead of blank warnings if there are no warnings in the export windows if (string.IsNullOrEmpty(warnings)) { warnings = EMPTY_WARNING_TEXT; } - + string documentsFolder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments); - string hifiFolder = documentsFolder + "\\High Fidelity Projects"; - if (updateExistingAvatar) { // Update Existing Avatar menu option + string overteFolder = documentsFolder + "/Overte Projects"; + if (updateExistingAvatar) { // Update Existing Avatar menu option // open update existing project popup window including project to update, scale, and warnings - // default the initial file chooser location to HiFi projects folder in user documents folder + // default the initial file chooser location to Overte Projects folder in user documents folder ExportProjectWindow window = ScriptableObject.CreateInstance(); - string initialPath = Directory.Exists(hifiFolder) ? hifiFolder : documentsFolder; + string initialPath = Directory.Exists(overteFolder) ? overteFolder : documentsFolder; window.Init(initialPath, warnings, updateExistingAvatar, avatarPreviewObject, OnUpdateExistingProject, OnExportWindowClose); } else { // Export New Avatar menu option - // create High Fidelity Projects folder in user documents folder if it doesn't exist - if (!Directory.Exists(hifiFolder)) { - Directory.CreateDirectory(hifiFolder); + // create Overte Projects folder in user documents folder if it doesn't exist + if (!Directory.Exists(overteFolder)) { + Directory.CreateDirectory(overteFolder); } - + // open export new project popup window including project name, project location, scale, and warnings - // default the initial project location path to the High Fidelity Projects folder above + // default the initial project location path to the Overte Projects folder above ExportProjectWindow window = ScriptableObject.CreateInstance(); - window.Init(hifiFolder, warnings, updateExistingAvatar, avatarPreviewObject, OnExportNewProject, OnExportWindowClose); + window.Init(overteFolder, warnings, updateExistingAvatar, avatarPreviewObject, OnExportNewProject, OnExportWindowClose); } } - + static void OnUpdateExistingProject(string exportFstPath, string projectName, float scale) { bool copyModelToExport = false; - + // lookup the project name field from the fst file to update projectName = ""; try { @@ -500,20 +502,20 @@ class AvatarExporter : MonoBehaviour { } } } catch { - EditorUtility.DisplayDialog("Error", "Failed to read from existing file " + exportFstPath + + EditorUtility.DisplayDialog("Error", "Failed to read from existing file " + exportFstPath + ". Please check the file and try again.", "Ok"); return; } - - string exportModelPath = Path.GetDirectoryName(exportFstPath) + "\\" + assetName + ".fbx"; - if (File.Exists(exportModelPath)) { + + string exportModelPath = Path.GetDirectoryName(exportFstPath) + "/" + assetName + ".fbx"; + if (File.Exists(exportModelPath)) { // if the fbx in Unity Assets is newer than the fbx in the target export // folder or vice-versa then ask to replace the older fbx with the newer fbx DateTime assetModelWriteTime = File.GetLastWriteTime(assetPath); DateTime targetModelWriteTime = File.GetLastWriteTime(exportModelPath); if (assetModelWriteTime > targetModelWriteTime) { - int option = EditorUtility.DisplayDialogComplex("Error", "The " + assetName + - ".fbx model in the Unity Assets folder is newer than the " + exportModelPath + + int option = EditorUtility.DisplayDialogComplex("Error", "The " + assetName + + ".fbx model in the Unity Assets folder is newer than the " + exportModelPath + " model.\n\nDo you want to replace the older .fbx with the newer .fbx?", "Yes", "No", "Cancel"); if (option == 2) { // Cancel @@ -521,9 +523,9 @@ class AvatarExporter : MonoBehaviour { } copyModelToExport = option == 0; // Yes } else if (assetModelWriteTime < targetModelWriteTime) { - int option = EditorUtility.DisplayDialogComplex("Error", "The " + exportModelPath + + int option = EditorUtility.DisplayDialogComplex("Error", "The " + exportModelPath + " model is newer than the " + assetName + ".fbx model in the Unity Assets folder." + - "\n\nDo you want to replace the older .fbx with the newer .fbx and re-import it?", + "\n\nDo you want to replace the older .fbx with the newer .fbx and re-import it?", "Yes", "No" , "Cancel"); if (option == 2) { // Cancel return; @@ -532,18 +534,18 @@ class AvatarExporter : MonoBehaviour { try { File.Copy(exportModelPath, assetPath, true); } catch { - EditorUtility.DisplayDialog("Error", "Failed to copy existing file " + exportModelPath + " to " + assetPath + + EditorUtility.DisplayDialog("Error", "Failed to copy existing file " + exportModelPath + " to " + assetPath + ". Please check the location and try again.", "Ok"); return; } AssetDatabase.ImportAsset(assetPath); - + // set model to Humanoid animation type and force another refresh on it to process Humanoid modelImporter = ModelImporter.GetAtPath(assetPath) as ModelImporter; modelImporter.animationType = ModelImporterAnimationType.Human; EditorUtility.SetDirty(modelImporter); - modelImporter.SaveAndReimport(); - + modelImporter.SaveAndReimport(); + // redo parent names, joint mappings, and user bone positions due to the fbx change // as well as re-check the avatar rules for failures humanDescription = modelImporter.humanDescription; @@ -552,32 +554,32 @@ class AvatarExporter : MonoBehaviour { } } else { // if no matching fbx exists in the target export folder then ask to copy fbx over - int option = EditorUtility.DisplayDialogComplex("Error", "There is no existing " + exportModelPath + - " model.\n\nDo you want to copy over the " + assetName + + int option = EditorUtility.DisplayDialogComplex("Error", "There is no existing " + exportModelPath + + " model.\n\nDo you want to copy over the " + assetName + ".fbx model from the Unity Assets folder?", "Yes", "No", "Cancel"); if (option == 2) { // Cancel return; } copyModelToExport = option == 0; // Yes - } + } // copy asset fbx over deleting any existing fbx if we agreed to overwrite it if (copyModelToExport) { try { File.Copy(assetPath, exportModelPath, true); } catch { - EditorUtility.DisplayDialog("Error", "Failed to copy existing file " + assetPath + " to " + exportModelPath + + EditorUtility.DisplayDialog("Error", "Failed to copy existing file " + assetPath + " to " + exportModelPath + ". Please check the location and try again.", "Ok"); return; } } - + // delete existing fst file since we will write a new file // TODO: updating fst should only rewrite joint mappings and joint rotation offsets to existing file try { File.Delete(exportFstPath); } catch { - EditorUtility.DisplayDialog("Error", "Failed to overwrite existing file " + exportFstPath + + EditorUtility.DisplayDialog("Error", "Failed to overwrite existing file " + exportFstPath + ". Please check the file and try again.", "Ok"); return; } @@ -586,13 +588,13 @@ class AvatarExporter : MonoBehaviour { if (!WriteFST(exportFstPath, projectName, scale)) { return; } - + // copy any external texture files to the project's texture directory that are considered dependencies of the model string texturesDirectory = GetTextureDirectory(exportFstPath); if (!CopyExternalTextures(texturesDirectory)) { return; } - + // display success dialog with any avatar rule warnings string successDialog = "Avatar successfully updated!"; if (!string.IsNullOrEmpty(warnings)) { @@ -600,29 +602,29 @@ class AvatarExporter : MonoBehaviour { } EditorUtility.DisplayDialog("Success!", successDialog, "Ok"); } - - static void OnExportNewProject(string projectDirectory, string projectName, float scale) { + + static void OnExportNewProject(string projectDirectory, string projectName, float scale) { // copy the fbx from the Unity Assets folder to the project directory string exportModelPath = projectDirectory + assetName + ".fbx"; File.Copy(assetPath, exportModelPath); - + // create empty Textures and Scripts folders in the project directory string texturesDirectory = GetTextureDirectory(projectDirectory); - string scriptsDirectory = projectDirectory + "\\scripts"; + string scriptsDirectory = projectDirectory + "/scripts"; Directory.CreateDirectory(texturesDirectory); Directory.CreateDirectory(scriptsDirectory); - + // write out the avatar.fst file to the project directory string exportFstPath = projectDirectory + "avatar.fst"; if (!WriteFST(exportFstPath, projectName, scale)) { return; } - + // copy any external texture files to the project's texture directory that are considered dependencies of the model if (!CopyExternalTextures(texturesDirectory)) { return; } - + // remove any double slashes in texture directory path, display success dialog with any // bone warnings previously mentioned, and suggest user to copy external textures over string successDialog = "Avatar successfully exported!\n\n"; @@ -638,32 +640,32 @@ class AvatarExporter : MonoBehaviour { // close the preview avatar scene and go back to user's previous scene when export project windows close ClosePreviewScene(); } - - // The High Fidelity FBX Serializer omits the colon based prefixes. This will make the jointnames compatible. + + // The Overte FBX Serializer omits the colon based prefixes. This will make the jointnames compatible. static string removeTypeFromJointname(string jointName) { return jointName.Substring(jointName.IndexOf(':') + 1); } - - static bool WriteFST(string exportFstPath, string projectName, float scale) { + + static bool WriteFST(string exportFstPath, string projectName, float scale) { // write out core fields to top of fst file try { - File.WriteAllText(exportFstPath, "exporterVersion = " + AVATAR_EXPORTER_VERSION + "\nname = " + projectName + - "\ntype = body+head\nscale = " + scale + "\nfilename = " + assetName + + File.WriteAllText(exportFstPath, "exporterVersion = " + AVATAR_EXPORTER_VERSION + "\nname = " + projectName + + "\ntype = body+head\nscale = " + scale + "\nfilename = " + assetName + ".fbx\n" + "texdir = textures\n"); - } catch { - EditorUtility.DisplayDialog("Error", "Failed to write file " + exportFstPath + + } catch { + EditorUtility.DisplayDialog("Error", "Failed to write file " + exportFstPath + ". Please check the location and try again.", "Ok"); return false; } - + // write out joint mappings to fst file foreach (var userBoneInfo in userBoneInfos) { if (userBoneInfo.Value.HasHumanMapping()) { - string hifiJointName = HUMANOID_TO_HIFI_JOINT_NAME[userBoneInfo.Value.humanName]; - File.AppendAllText(exportFstPath, "jointMap = " + hifiJointName + " = " + removeTypeFromJointname(userBoneInfo.Key) + "\n"); + string vircJointName = HUMANOID_TO_VIRC_JOINT_NAME[userBoneInfo.Value.humanName]; + File.AppendAllText(exportFstPath, "jointMap = " + vircJointName + " = " + removeTypeFromJointname(userBoneInfo.Key) + "\n"); } } - + // calculate and write out joint rotation offsets to fst file SkeletonBone[] skeletonMap = humanDescription.skeleton; foreach (SkeletonBone userBone in skeletonMap) { @@ -672,8 +674,8 @@ class AvatarExporter : MonoBehaviour { if (!userBoneInfos.TryGetValue(userBoneName, out userBoneInfo)) { continue; } - - Quaternion userBoneRotation = userBone.rotation; + + Quaternion userBoneRotation = userBone.rotation; string parentName = userBoneInfo.parentName; if (parentName == "root") { // if the parent is root then use bone's rotation @@ -682,7 +684,7 @@ class AvatarExporter : MonoBehaviour { // otherwise multiply bone's rotation by parent bone's absolute rotation userBoneInfo.rotation = userBoneInfos[parentName].rotation * userBoneRotation; } - + // generate joint rotation offsets for both humanoid-mapped bones as well as extra unmapped bones Quaternion jointOffset = new Quaternion(); if (userBoneInfo.HasHumanMapping()) { @@ -698,18 +700,18 @@ class AvatarExporter : MonoBehaviour { jointOffset *= lastRequiredParentRotation; } } - - // swap from left-handed (Unity) to right-handed (HiFi) coordinates and write out joint rotation offset to fst + + // swap from left-handed (Unity) to right-handed (Overte) coordinates and write out joint rotation offset to fst jointOffset = new Quaternion(-jointOffset.x, jointOffset.y, jointOffset.z, -jointOffset.w); File.AppendAllText(exportFstPath, "jointRotationOffset2 = " + removeTypeFromJointname(userBoneName) + " = (" + jointOffset.x + ", " + jointOffset.y + ", " + jointOffset.z + ", " + jointOffset.w + ")\n"); } - + // if there is any material data to save then write out all materials in JSON material format to the materialMap field if (materialDatas.Count > 0) { string materialJson = "{ "; foreach (var materialData in materialDatas) { - // if this is the only material in the mapping and it is mapped to default material name No Name, + // if this is the only material in the mapping and it is mapped to default material name No Name, // then the avatar has no embedded materials and this material should be applied to all meshes string materialName = materialData.Key; if (materialMappings.Count == 1 && materialName == DEFAULT_MATERIAL_NAME) { @@ -724,18 +726,20 @@ class AvatarExporter : MonoBehaviour { materialJson += " }"; File.AppendAllText(exportFstPath, "materialMap = " + materialJson); } - - // open File Explorer to the project directory once finished - System.Diagnostics.Process.Start("explorer.exe", "/select," + exportFstPath); - + + if(SystemInfo.operatingSystemFamily == OperatingSystemFamily.Windows) { + // open File Explorer to the project directory once finished + System.Diagnostics.Process.Start("explorer.exe", "/select," + exportFstPath); + } + return true; } - + static void SetBoneAndMaterialInformation() { userBoneInfos.Clear(); humanoidToUserBoneMappings.Clear(); userBoneTree = new BoneTreeNode(); - + materialDatas.Clear(); alternateStandardShaderMaterials.Clear(); unsupportedShaderMaterials.Clear(); @@ -743,29 +747,29 @@ class AvatarExporter : MonoBehaviour { SetMaterialMappings(); // instantiate a game object of the user avatar to traverse the bone tree to gather - // bone parents and positions as well as build a bone tree, then destroy it + // bone parents and positions as well as build a bone tree, then destroy it GameObject avatarGameObject = (GameObject)Instantiate(avatarResource, Vector3.zero, Quaternion.identity); TraverseUserBoneTree(avatarGameObject.transform, userBoneTree); Bounds bounds = AvatarUtilities.GetAvatarBounds(avatarGameObject); float height = AvatarUtilities.GetAvatarHeight(avatarGameObject); DestroyImmediate(avatarGameObject); - + // iterate over Humanoid bones and update user bone info to increase human mapping counts for each bone // as well as set their Humanoid name and build a Humanoid to user bone mapping HumanBone[] boneMap = humanDescription.human; foreach (HumanBone bone in boneMap) { string humanName = bone.humanName; string userBoneName = bone.boneName; - string hifiJointName; + string vircJointName; if (userBoneInfos.ContainsKey(userBoneName)) { ++userBoneInfos[userBoneName].mappingCount; - if (HUMANOID_TO_HIFI_JOINT_NAME.TryGetValue(humanName, out hifiJointName)) { + if (HUMANOID_TO_VIRC_JOINT_NAME.TryGetValue(humanName, out vircJointName)) { userBoneInfos[userBoneName].humanName = humanName; humanoidToUserBoneMappings.Add(humanName, userBoneName); } } } - + // generate the list of avatar rule failure strings for any avatar rules that are not satisfied by this avatar SetFailedAvatarRules(bounds, height); } @@ -779,12 +783,12 @@ class AvatarExporter : MonoBehaviour { bool mesh = meshRenderer != null || skinnedMeshRenderer != null; bool light = gameObject.GetComponent() != null; bool camera = gameObject.GetComponent() != null; - + // if this is a mesh then store its material data to be exported if the material is mapped to an fbx material name if (mesh) { Material[] materials = skinnedMeshRenderer != null ? skinnedMeshRenderer.sharedMaterials : meshRenderer.sharedMaterials; StoreMaterialData(materials); - + // ensure branches within the transform hierarchy that contain meshes are removed from the user bone tree Transform ancestorBone = modelBone; string previousBoneName = ""; @@ -805,7 +809,7 @@ class AvatarExporter : MonoBehaviour { } } } - } else if (!light && !camera) { + } else if (!light && !camera) { // if it is in fact a bone, add it to the bone tree as well as user bone infos list with position and parent name string boneName = modelBone.name; if (modelBone.parent == null) { @@ -823,21 +827,21 @@ class AvatarExporter : MonoBehaviour { } Vector3 bonePosition = modelBone.position; // bone's absolute position in avatar space - UserBoneInformation userBoneInfo = new UserBoneInformation(boneTreeNode.parentName, boneTreeNode, bonePosition); + UserBoneInformation userBoneInfo = new UserBoneInformation(boneTreeNode.parentName, boneTreeNode, bonePosition); userBoneInfos.Add(boneName, userBoneInfo); } - + // recurse over transform node's children for (int i = 0; i < modelBone.childCount; ++i) { TraverseUserBoneTree(modelBone.GetChild(i), boneTreeNode); } } - + static string FindLastRequiredAncestorBone(string currentBone) { string result = currentBone; // iterating upward through user bone info parent names, find the first ancestor bone that is mapped in Humanoid while (result != "root" && userBoneInfos.ContainsKey(result) && !userBoneInfos[result].HasHumanMapping()) { - result = userBoneInfos[result].parentName; + result = userBoneInfos[result].parentName; } return result; } @@ -854,17 +858,17 @@ class AvatarExporter : MonoBehaviour { humanoidToUserBoneMappings.Add("UpperChest", neckParentUserBone); } } - // if there is still no UpperChest bone but there is a Chest bone then we remap Chest to UpperChest + // if there is still no UpperChest bone but there is a Chest bone then we remap Chest to UpperChest string chestUserBone; - if (!humanoidToUserBoneMappings.ContainsKey("UpperChest") && - humanoidToUserBoneMappings.TryGetValue("Chest", out chestUserBone)) { + if (!humanoidToUserBoneMappings.ContainsKey("UpperChest") && + humanoidToUserBoneMappings.TryGetValue("Chest", out chestUserBone)) { userBoneInfos[chestUserBone].humanName = "UpperChest"; humanoidToUserBoneMappings.Remove("Chest"); humanoidToUserBoneMappings.Add("UpperChest", chestUserBone); } } } - + static string GetRootBoneName() { // the "root" bone is the first element in the human skeleton bone list if (humanDescription.skeleton.Length > 0) { @@ -872,20 +876,20 @@ class AvatarExporter : MonoBehaviour { } return ""; } - + static void SetFailedAvatarRules(Bounds avatarBounds, float avatarHeight) { failedAvatarRules.Clear(); - + string hipsUserBone = ""; string spineUserBone = ""; string chestUserBone = ""; string headUserBone = ""; - + Vector3 hipsPosition = new Vector3(); - - // iterate over all avatar rules in order and add any rules that fail + + // iterate over all avatar rules in order and add any rules that fail // to the failed avatar rules map with appropriate error or warning text - for (AvatarRule avatarRule = 0; avatarRule < AvatarRule.AvatarRuleEnd; ++avatarRule) { + for (AvatarRule avatarRule = 0; avatarRule < AvatarRule.AvatarRuleEnd; ++avatarRule) { switch (avatarRule) { case AvatarRule.RecommendedUnityVersion: if (Array.IndexOf(RECOMMENDED_UNITY_VERSIONS, Application.unityVersion) == -1) { @@ -948,9 +952,9 @@ class AvatarExporter : MonoBehaviour { continue; } // a suitable candidate for Chest should have Neck/Head or Shoulder mappings in its descendants - if (IsHumanBoneInHierarchy(spineChildTreeNode, "Neck") || - IsHumanBoneInHierarchy(spineChildTreeNode, "Head") || - IsHumanBoneInHierarchy(spineChildTreeNode, "LeftShoulder") || + if (IsHumanBoneInHierarchy(spineChildTreeNode, "Neck") || + IsHumanBoneInHierarchy(spineChildTreeNode, "Head") || + IsHumanBoneInHierarchy(spineChildTreeNode, "LeftShoulder") || IsHumanBoneInHierarchy(spineChildTreeNode, "RightShoulder")) { chestMappingCandidate = spineChildBone; break; @@ -958,9 +962,9 @@ class AvatarExporter : MonoBehaviour { } } failedAvatarRules.Add(avatarRule, "There is no Chest bone mapped in Humanoid for the selected avatar."); - // if the only found child of Spine is not yet mapped then add it as a suggestion for Chest mapping + // if the only found child of Spine is not yet mapped then add it as a suggestion for Chest mapping if (!string.IsNullOrEmpty(chestMappingCandidate)) { - failedAvatarRules[avatarRule] += " It is suggested that you map bone " + chestMappingCandidate + + failedAvatarRules[avatarRule] += " It is suggested that you map bone " + chestMappingCandidate + " to Chest in Humanoid."; } } @@ -982,13 +986,13 @@ class AvatarExporter : MonoBehaviour { bool rightEyeMapped = humanoidToUserBoneMappings.ContainsKey("RightEye"); if (!leftEyeMapped || !rightEyeMapped) { if (leftEyeMapped && !rightEyeMapped) { - failedAvatarRules.Add(avatarRule, "There is no RightEye bone mapped in Humanoid " + + failedAvatarRules.Add(avatarRule, "There is no RightEye bone mapped in Humanoid " + "for the selected avatar."); } else if (!leftEyeMapped && rightEyeMapped) { - failedAvatarRules.Add(avatarRule, "There is no LeftEye bone mapped in Humanoid " + + failedAvatarRules.Add(avatarRule, "There is no LeftEye bone mapped in Humanoid " + "for the selected avatar."); } else { - failedAvatarRules.Add(avatarRule, "There is no LeftEye or RightEye bone mapped in Humanoid " + + failedAvatarRules.Add(avatarRule, "There is no LeftEye or RightEye bone mapped in Humanoid " + "for the selected avatar."); } } @@ -998,7 +1002,7 @@ class AvatarExporter : MonoBehaviour { if (!string.IsNullOrEmpty(hipsUserBone)) { UserBoneInformation hipsBoneInfo = userBoneInfos[hipsUserBone]; hipsPosition = hipsBoneInfo.position; - + // find the lowest y position of the bones float minBoneYPosition = float.MaxValue; foreach (var userBoneInfo in userBoneInfos) { @@ -1007,11 +1011,11 @@ class AvatarExporter : MonoBehaviour { minBoneYPosition = position.y; } } - + // check that Hips is within a percentage of avatar's height from the lowest Y point of the avatar float bottomYRange = HIPS_MIN_Y_PERCENT_OF_HEIGHT * avatarHeight; if (Mathf.Abs(hipsPosition.y - minBoneYPosition) < bottomYRange) { - failedAvatarRules.Add(avatarRule, "The bone mapped to Hips in Humanoid (" + hipsUserBone + + failedAvatarRules.Add(avatarRule, "The bone mapped to Hips in Humanoid (" + hipsUserBone + ") should not be at the bottom of the selected avatar."); } } @@ -1026,17 +1030,17 @@ class AvatarExporter : MonoBehaviour { case AvatarRule.HipsSpineChestNotCoincident: // ensure the bones mapped to Hips, Spine, and Chest are all not in the same position, // check Hips to Spine and Spine to Chest lengths are within HIPS_SPINE_CHEST_MIN_SEPARATION - if (!string.IsNullOrEmpty(spineUserBone) && !string.IsNullOrEmpty(chestUserBone) && + if (!string.IsNullOrEmpty(spineUserBone) && !string.IsNullOrEmpty(chestUserBone) && !string.IsNullOrEmpty(hipsUserBone)) { UserBoneInformation spineBoneInfo = userBoneInfos[spineUserBone]; UserBoneInformation chestBoneInfo = userBoneInfos[chestUserBone]; Vector3 hipsToSpine = hipsPosition - spineBoneInfo.position; Vector3 spineToChest = spineBoneInfo.position - chestBoneInfo.position; - if (hipsToSpine.magnitude < HIPS_SPINE_CHEST_MIN_SEPARATION && + if (hipsToSpine.magnitude < HIPS_SPINE_CHEST_MIN_SEPARATION && spineToChest.magnitude < HIPS_SPINE_CHEST_MIN_SEPARATION) { - failedAvatarRules.Add(avatarRule, "The bone mapped to Hips in Humanoid (" + hipsUserBone + - "), the bone mapped to Spine in Humanoid (" + spineUserBone + - "), and the bone mapped to Chest in Humanoid (" + chestUserBone + + failedAvatarRules.Add(avatarRule, "The bone mapped to Hips in Humanoid (" + hipsUserBone + + "), the bone mapped to Spine in Humanoid (" + spineUserBone + + "), and the bone mapped to Chest in Humanoid (" + chestUserBone + ") should not be coincidental."); } } @@ -1044,46 +1048,46 @@ class AvatarExporter : MonoBehaviour { case AvatarRule.TotalBoneCountUnderLimit: int userBoneCount = userBoneInfos.Count; if (userBoneCount > MAXIMUM_USER_BONE_COUNT) { - failedAvatarRules.Add(avatarRule, "The total number of bones in the avatar (" + userBoneCount + + failedAvatarRules.Add(avatarRule, "The total number of bones in the avatar (" + userBoneCount + ") exceeds the maximum bone limit (" + MAXIMUM_USER_BONE_COUNT + ")."); } break; } } } - + static bool IsHumanBoneInHierarchy(BoneTreeNode boneTreeNode, string humanBoneName) { UserBoneInformation userBoneInfo; if (userBoneInfos.TryGetValue(boneTreeNode.boneName, out userBoneInfo) && userBoneInfo.humanName == humanBoneName) { // this bone matches the human bone name being searched for return true; } - + // recursively check downward through children bones for target human bone foreach (BoneTreeNode childNode in boneTreeNode.children) { if (IsHumanBoneInHierarchy(childNode, humanBoneName)) { return true; } } - + return false; } - + static string CheckHumanBoneMappingRule(AvatarRule avatarRule, string humanBoneName) { string userBoneName = ""; // avatar rule fails if bone is not mapped in Humanoid if (!humanoidToUserBoneMappings.TryGetValue(humanBoneName, out userBoneName)) { - failedAvatarRules.Add(avatarRule, "There is no " + humanBoneName + + failedAvatarRules.Add(avatarRule, "There is no " + humanBoneName + " bone mapped in Humanoid for the selected avatar."); } return userBoneName; } - + static void CheckUserBoneDescendantOfHumanRule(AvatarRule avatarRule, string descendantUserBoneName, string descendantOfHumanName) { if (string.IsNullOrEmpty(descendantUserBoneName)) { return; } - + string descendantOfUserBoneName = ""; if (!humanoidToUserBoneMappings.TryGetValue(descendantOfHumanName, out descendantOfUserBoneName)) { return; @@ -1092,7 +1096,7 @@ class AvatarExporter : MonoBehaviour { string userBoneName = descendantUserBoneName; UserBoneInformation userBoneInfo = userBoneInfos[userBoneName]; string descendantHumanName = userBoneInfo.humanName; - // iterate upward from user bone through user bone info parent names until root + // iterate upward from user bone through user bone info parent names until root // is reached or the ancestor bone name matches the target descendant of name while (userBoneName != "root") { if (userBoneName == descendantOfUserBoneName) { @@ -1104,17 +1108,17 @@ class AvatarExporter : MonoBehaviour { break; } } - + // avatar rule fails if no ancestor of given user bone matched the descendant of name (no early return) - failedAvatarRules.Add(avatarRule, "The bone mapped to " + descendantHumanName + " in Humanoid (" + - descendantUserBoneName + ") is not a descendant of the bone mapped to " + + failedAvatarRules.Add(avatarRule, "The bone mapped to " + descendantHumanName + " in Humanoid (" + + descendantUserBoneName + ") is not a descendant of the bone mapped to " + descendantOfHumanName + " in Humanoid (" + descendantOfUserBoneName + ")."); } - + static void CheckAsymmetricalMappingRule(AvatarRule avatarRule, string[] mappingSuffixes, string appendage) { int leftCount = 0; int rightCount = 0; - // add Left/Right to each mapping suffix to make Humanoid mapping names, + // add Left/Right to each mapping suffix to make Humanoid mapping names, // and count the number of bones mapped in Humanoid on each side foreach (string mappingSuffix in mappingSuffixes) { string leftMapping = "Left" + mappingSuffix; @@ -1126,24 +1130,24 @@ class AvatarExporter : MonoBehaviour { ++rightCount; } } - // avatar rule fails if number of left appendage mappings doesn't match number of right appendage mappings + // avatar rule fails if number of left appendage mappings doesn't match number of right appendage mappings if (leftCount != rightCount) { failedAvatarRules.Add(avatarRule, "The number of bones mapped in Humanoid for the left " + appendage + " (" + leftCount + ") does not match the number of bones mapped in Humanoid for the right " + appendage + " (" + rightCount + ")."); } } - + static string GetTextureDirectory(string basePath) { - string textureDirectory = Path.GetDirectoryName(basePath) + "\\" + TEXTURES_DIRECTORY; - textureDirectory = textureDirectory.Replace("\\\\", "\\"); + string textureDirectory = Path.GetDirectoryName(basePath) + "/" + TEXTURES_DIRECTORY; + textureDirectory = textureDirectory.Replace("//", "/"); return textureDirectory; } static string SetTextureDependencies() { string textureWarnings = ""; textureDependencies.Clear(); - + // build the list of all local asset paths for textures that Unity considers dependencies of the model // for any textures that have duplicate names, return a string of duplicate name warnings string[] dependencies = AssetDatabase.GetDependencies(assetPath); @@ -1152,21 +1156,21 @@ class AvatarExporter : MonoBehaviour { if (textureObject != null) { string textureName = Path.GetFileName(dependencyPath); if (textureDependencies.ContainsKey(textureName)) { - textureWarnings += "There is more than one texture with the name " + textureName + + textureWarnings += "There is more than one texture with the name " + textureName + " referenced in the selected avatar.\n\n"; } else { textureDependencies.Add(textureName, dependencyPath); } } } - + return textureWarnings; } - + static bool CopyExternalTextures(string texturesDirectory) { // copy the found dependency textures from the local asset folder to the textures folder in the target export project foreach (var texture in textureDependencies) { - string targetPath = texturesDirectory + "\\" + texture.Key; + string targetPath = texturesDirectory + "/" + texture.Key; try { File.Copy(texture.Value, targetPath, true); } catch { @@ -1177,25 +1181,25 @@ class AvatarExporter : MonoBehaviour { } return true; } - + static void StoreMaterialData(Material[] materials) { // store each material's info in the materialDatas list to be written out later to the FST if it is a supported shader - foreach (Material material in materials) { + foreach (Material material in materials) { string materialName = material.name; string shaderName = material.shader.name; - + // if this material isn't mapped externally then ignore it if (!materialMappings.ContainsValue(materialName)) { continue; } - + // don't store any material data for unsupported shader types if (Array.IndexOf(SUPPORTED_SHADERS, shaderName) == -1) { if (!unsupportedShaderMaterials.Contains(materialName)) { unsupportedShaderMaterials.Add(materialName); } continue; - } + } MaterialData materialData = new MaterialData(); materialData.albedo = material.GetColor("_Color"); @@ -1206,7 +1210,7 @@ class AvatarExporter : MonoBehaviour { materialData.occlusionMap = GetMaterialTexture(material, "_OcclusionMap"); materialData.emissive = material.GetColor("_EmissionColor"); materialData.emissiveMap = GetMaterialTexture(material, "_EmissionMap"); - + // for specular setups we will treat the metallic value as the average of the specular RGB intensities if (shaderName == STANDARD_SPECULAR_SHADER) { Color specular = material.GetColor("_SpecColor"); @@ -1215,8 +1219,8 @@ class AvatarExporter : MonoBehaviour { materialData.metallic = material.GetFloat("_Metallic"); materialData.metallicMap = GetMaterialTexture(material, "_MetallicGlossMap"); } - - // for non-roughness Standard shaders give a warning that is not the recommended Standard shader, + + // for non-roughness Standard shaders give a warning that is not the recommended Standard shader, // and invert smoothness for roughness if (shaderName == STANDARD_SHADER || shaderName == STANDARD_SPECULAR_SHADER) { if (!alternateStandardShaderMaterials.Contains(materialName)) { @@ -1224,7 +1228,7 @@ class AvatarExporter : MonoBehaviour { } materialData.roughness = 1.0f - materialData.roughness; } - + // store the material data under each fbx material name that it overrides from the material mapping foreach (var materialMapping in materialMappings) { string fbxMaterialName = materialMapping.Key; @@ -1235,7 +1239,7 @@ class AvatarExporter : MonoBehaviour { } } } - + static string GetMaterialTexture(Material material, string textureProperty) { // ensure the texture property name exists in this material and return its texture directory path if so if (material.HasProperty(textureProperty)) { @@ -1251,10 +1255,10 @@ class AvatarExporter : MonoBehaviour { } return ""; } - + static void SetMaterialMappings() { materialMappings.Clear(); - + // store the mappings from fbx material name to the Unity Material name that overrides it using external fbx mapping var objectMap = modelImporter.GetExternalObjectMap(); foreach (var mapping in objectMap) { @@ -1264,7 +1268,7 @@ class AvatarExporter : MonoBehaviour { } } } - + static void AddMaterialWarnings() { string alternateStandardShaders = ""; string unsupportedShaders = ""; @@ -1298,30 +1302,30 @@ class AvatarExporter : MonoBehaviour { "We recommend you change it to a Standard shader type.\n\n"; } } - + static bool OpenPreviewScene() { // store the current scene setup to restore when closing the preview scene previousSceneSetup = EditorSceneManager.GetSceneManagerSetup(); - + // if the user is currently in the Humanoid Avatar Configuration then inform them to close it first if (EditorSceneManager.GetActiveScene().name == "Avatar Configuration" && previousSceneSetup.Length == 0) { EditorUtility.DisplayDialog("Error", "Please exit the Avatar Configuration before exporting.", "Ok"); return false; } - + // see if the user wants to save their current scene before opening preview avatar scene in place of user's scene if (!EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) { return false; } - + // open a new empty scene in place of the user's scene EditorSceneManager.NewScene(NewSceneSetup.EmptyScene); - + // instantiate a game object to preview the avatar and a game object for the height reference prefab at 0, 0, 0 UnityEngine.Object heightReferenceResource = AssetDatabase.LoadAssetAtPath(HEIGHT_REFERENCE_PREFAB, typeof(UnityEngine.Object)); avatarPreviewObject = (GameObject)Instantiate(avatarResource, Vector3.zero, Quaternion.identity); heightReferenceObject = (GameObject)Instantiate(heightReferenceResource, Vector3.zero, Quaternion.identity); - + // store the camera pivot and rotation from the user's last scene to be restored later // replace the camera pivot and rotation to point at the preview avatar object in the -Z direction (facing front of it) var sceneView = SceneView.lastActiveSceneView; @@ -1335,18 +1339,18 @@ class AvatarExporter : MonoBehaviour { sceneView.orthographic = true; sceneView.size = 5.0f; } - + return true; } - + static void ClosePreviewScene() { // destroy the avatar and height reference game objects closing the scene DestroyImmediate(avatarPreviewObject); DestroyImmediate(heightReferenceObject); - + // restore to the previous scene setup that the user had open before exporting EditorSceneManager.RestoreSceneManagerSetup(previousSceneSetup); - + // restore the camera pivot and rotation to the user's previous scene settings var sceneView = SceneView.lastActiveSceneView; if (sceneView != null) { @@ -1393,13 +1397,13 @@ class ExportProjectWindow : EditorWindow { string scaleWarningText = ""; float sliderScale = 0.30103f; float originalSliderScale; - + public delegate void OnExportDelegate(string projectDirectory, string projectName, float scale); OnExportDelegate onExportCallback; - + public delegate void OnCloseDelegate(); OnCloseDelegate onCloseCallback; - + public void Init(string initialPath, string warnings, bool updateExisting, GameObject avatarObject, OnExportDelegate exportCallback, OnCloseDelegate closeCallback) { updateExistingAvatar = updateExisting; @@ -1413,9 +1417,9 @@ class ExportProjectWindow : EditorWindow { warningText = warnings; onExportCallback = exportCallback; onCloseCallback = closeCallback; - + ShowUtility(); - + // if the avatar's starting height is outside of the recommended ranges, auto-adjust the scale to default height float height = AvatarUtilities.GetAvatarHeight(avatarPreviewObject); if (height < MINIMUM_RECOMMENDED_HEIGHT || height > MAXIMUM_RECOMMENDED_HEIGHT) { @@ -1423,11 +1427,11 @@ class ExportProjectWindow : EditorWindow { SetAvatarScale(newScale); scaleWarningText = "Avatar's scale automatically adjusted to be within the recommended range."; } - + originalSliderScale = sliderScale; } - void OnGUI() { + void OnGUI() { // define UI styles for all GUI elements to be created GUIStyle buttonStyle = new GUIStyle(GUI.skin.button); buttonStyle.fontSize = BUTTON_FONT_SIZE; @@ -1436,24 +1440,24 @@ class ExportProjectWindow : EditorWindow { GUIStyle textStyle = new GUIStyle(GUI.skin.textField); textStyle.fontSize = TEXT_FIELD_FONT_SIZE; textStyle.fixedHeight = TEXT_FIELD_HEIGHT; - GUIStyle errorStyle = new GUIStyle(GUI.skin.label); + GUIStyle errorStyle = new GUIStyle(GUI.skin.label); errorStyle.fontSize = ERROR_FONT_SIZE; errorStyle.normal.textColor = Color.red; errorStyle.wordWrap = true; - GUIStyle warningStyle = new GUIStyle(errorStyle); + GUIStyle warningStyle = new GUIStyle(errorStyle); warningStyle.normal.textColor = COLOR_YELLOW; GUIStyle sliderStyle = new GUIStyle(GUI.skin.horizontalSlider); sliderStyle.fixedWidth = SLIDER_WIDTH; GUIStyle sliderThumbStyle = new GUIStyle(GUI.skin.horizontalSliderThumb); - + // set the background for the window to a darker gray Texture2D backgroundTexture = new Texture2D(1, 1, TextureFormat.RGBA32, false); backgroundTexture.SetPixel(0, 0, COLOR_BACKGROUND); backgroundTexture.Apply(); GUI.DrawTexture(new Rect(0, 0, maxSize.x, maxSize.y), backgroundTexture, ScaleMode.StretchToFill); - + GUILayout.Space(10); - + if (updateExistingAvatar) { // Project file to update label and input text field GUILayout.Label("Project file to update:", labelStyle); @@ -1462,19 +1466,19 @@ class ExportProjectWindow : EditorWindow { // Project name label and input text field GUILayout.Label("Export project name:", labelStyle); projectName = GUILayout.TextField(projectName, textStyle); - + GUILayout.Space(10); - + // Project location label and input text field GUILayout.Label("Export project location:", labelStyle); projectLocation = GUILayout.TextField(projectLocation, textStyle); - } - + } + // Browse button to open file/folder explorer and set project location if (GUILayout.Button("Browse", buttonStyle)) { string result = ""; if (updateExistingAvatar) { - // open file explorer starting at hifi projects folder in user documents and select target fst to update + // open file explorer starting at overte projects folder in user documents and select target fst to update string initialPath = string.IsNullOrEmpty(projectLocation) ? initialProjectLocation : projectLocation; result = EditorUtility.OpenFilePanel("Select .fst to update", initialPath, "fst"); } else { @@ -1482,13 +1486,13 @@ class ExportProjectWindow : EditorWindow { result = EditorUtility.OpenFolderPanel("Select export location", projectLocation, ""); } if (!string.IsNullOrEmpty(result)) { // file/folder selection not cancelled - projectLocation = result.Replace('/', '\\'); + projectLocation = result.Replace('\\', '/'); } } - + // warning if scale is above/below recommended range or if scale was auto-adjusted initially GUILayout.Label(scaleWarningText, warningStyle); - + // from left to right show scale label, scale slider itself, and scale value input with % value // slider value itself is from 0.0 to 2.0, and actual scale is an exponent of it with an offset of 1 // displayed scale is the actual scale value with 2 decimal places, and changing the displayed @@ -1507,24 +1511,26 @@ class ExportProjectWindow : EditorWindow { SetAvatarScale(actualScale); GUILayout.Label("%", labelStyle); GUILayout.EndHorizontal(); - + GUILayout.Space(15); - + // red error label text to display any file-related errors - GUILayout.Label("Error:", errorStyle); - GUILayout.Label(errorText, errorStyle); - + if(errorText != EMPTY_ERROR_TEXT) { + GUILayout.Label("Error:", errorStyle); + GUILayout.Label(errorText, errorStyle); + } + GUILayout.Space(10); - - // yellow warning label text to display scrollable list of any bone-related warnings + + // yellow warning label text to display scrollable list of any bone-related warnings GUILayout.Label("Warnings:", warningStyle); - warningScrollPosition = GUILayout.BeginScrollView(warningScrollPosition, GUILayout.Width(WINDOW_WIDTH), + warningScrollPosition = GUILayout.BeginScrollView(warningScrollPosition, GUILayout.Width(WINDOW_WIDTH), GUILayout.Height(WARNING_SCROLL_HEIGHT)); GUILayout.Label(warningText, warningStyle); GUILayout.EndScrollView(); - + GUILayout.Space(10); - + // export button will verify target project folder can actually be created (or target fst file is valid) // before closing popup window and calling back to initiate the export bool export = false; @@ -1535,19 +1541,19 @@ class ExportProjectWindow : EditorWindow { onExportCallback(updateExistingAvatar ? projectLocation : projectDirectory, projectName, actualScale); } } - + // cancel button closes the popup window triggering the close callback to close the preview scene if (GUILayout.Button("Cancel", buttonStyle)) { Close(); } - + // When a text field changes check for any errors if we didn't just check errors from clicking Export above if (GUI.changed && !export) { CheckForErrors(false); } } - - bool CheckForErrors(bool exporting) { + + bool CheckForErrors(bool exporting) { errorText = EMPTY_ERROR_TEXT; // default to None if no errors found if (updateExistingAvatar) { // if any text is set in the project file to update field verify that the file actually exists @@ -1561,20 +1567,28 @@ class ExportProjectWindow : EditorWindow { return true; } } else { - projectDirectory = projectLocation + "\\" + projectName + "\\"; + projectDirectory = projectLocation + "/" + projectName + "/"; if (projectName.Length > 0) { // new project must have a unique folder name since the folder will be created for it if (Directory.Exists(projectDirectory)) { - errorText = "A folder with the name " + projectName + + errorText = "A folder with the name " + projectName + " already exists at that location.\nPlease choose a different project name or location."; return true; } } if (projectLocation.Length > 0) { - // before clicking Export we can verify that the project location at least starts with a drive - if (!Char.IsLetter(projectLocation[0]) || projectLocation.Length == 1 || projectLocation[1] != ':') { - errorText = "Project location is invalid. Please choose a different project location.\n"; - return true; + // Check to ensure provided path is absolute, not relative. + if(SystemInfo.operatingSystemFamily == OperatingSystemFamily.Windows) { + if (!Char.IsLetter(projectLocation[0]) || projectLocation.Length == 1 || projectLocation[1] != ':') { + errorText = "Project location is invalid. Please choose a different project location.\n"; + return true; + } + } + else { + if (projectLocation[0] != '/') { + errorText = "Project location is invalid. Please choose a different project location.\n"; + return true; + } } } if (exporting) { @@ -1596,10 +1610,10 @@ class ExportProjectWindow : EditorWindow { } } } - + return false; } - + void UpdateScaleWarning() { // called on any scale changes float height = AvatarUtilities.GetAvatarHeight(avatarPreviewObject); @@ -1612,22 +1626,22 @@ class ExportProjectWindow : EditorWindow { scaleWarningText = ""; } } - + void SetAvatarScale(float actualScale) { // set the new scale uniformly on the preview avatar's transform to show the resulting avatar size - avatarPreviewObject.transform.localScale = new Vector3(actualScale, actualScale, actualScale); - + avatarPreviewObject.transform.localScale = new Vector3(actualScale, actualScale, actualScale); + // adjust slider scale value to match the new actual scale value sliderScale = GetSliderScaleFromActualScale(actualScale); - + UpdateScaleWarning(); } - + float GetSliderScaleFromActualScale(float actualScale) { // since actual scale is an exponent of slider scale with an offset, do the logarithm operation to convert it back return Mathf.Log(actualScale + ACTUAL_SCALE_OFFSET, SLIDER_SCALE_EXPONENT); } - + void OnDestroy() { onCloseCallback(); } @@ -1635,7 +1649,7 @@ class ExportProjectWindow : EditorWindow { class AvatarUtilities { public const float DEFAULT_AVATAR_HEIGHT = 1.755f; - + public static Bounds GetAvatarBounds(GameObject avatarObject) { Bounds bounds = new Bounds(); if (avatarObject != null) { @@ -1650,7 +1664,7 @@ class AvatarUtilities { } return bounds; } - + public static float GetAvatarHeight(GameObject avatarObject) { // height of an avatar model can be determined to be the max Y extents of the combined bounds for all its mesh renderers Bounds avatarBounds = GetAvatarBounds(avatarObject); diff --git a/tools/unity-avatar-exporter/Assets/README.txt b/tools/unity-avatar-exporter/Assets/README.txt index 0da0fc0d9d..a6de1aaae6 100644 --- a/tools/unity-avatar-exporter/Assets/README.txt +++ b/tools/unity-avatar-exporter/Assets/README.txt @@ -1,6 +1,7 @@ -High Fidelity, Inc. Avatar Exporter -Version 0.4.1 +Version 0.5.0 +Copyright 2018 High Fidelity, Inc. +Copyright 2022 Overte e.V. Note: It is recommended to use Unity versions between 2017.4.15f1 and 2018.2.12f1 for this Avatar Exporter. @@ -21,4 +22,4 @@ To update an existing avatar project: * WARNING * If you are using any external textures as part of your .fbx model, be sure they are copied into the textures folder that is created in the project folder after exporting a new avatar. -For further details including troubleshooting tips, see the full documentation at https://docs.highfidelity.com/create-and-explore/avatars/create-avatars/unity-extension \ No newline at end of file +For further details including troubleshooting tips, see the full documentation at https://docs.highfidelity.com/create-and-explore/avatars/create-avatars/unity-extension diff --git a/tools/unity-avatar-exporter/avatarExporter.unitypackage b/tools/unity-avatar-exporter/avatarExporter.unitypackage index 2ce40a8a8f1f47dbbe8af31472a91ed7ef4a2c22..2e294473bf5d91d0295dfccd44d05a68389d3e35 100644 GIT binary patch literal 90830 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 F42D0}1a{ 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 SJa8^p2qpF%mxM#HxynDYDUbU_Ob6Gi3JGVT7 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 literal 75756 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 -p " + echo -e "\t-u The path in which Unity exists" + echo -e "\t-p The path to build the project files (Default: ${projectPath})" + exit 1 +} + + +while getopts "u:p" opt +do + case "$opt" in + u ) unityPath="$OPTARG" ;; + p ) projectPath="$OPTARG" ;; + ? ) helpFunction ;; + esac +done + +if [ -z "$unityPath" ] +then + echo "Unity path was not provided"; + helpFunction +fi + +${unityPath}/Unity -quit -batchmode -projectPath ${projectPath} -exportPackage "Assets" "avatarExporter.unitypackage"