public static void CreateGestureController(VRCAvatar originalAvatar, VRCAvatar editAvatar) { if (!originalAvatar.Descriptor.customizeAnimationLayers) { EnableCustomPlayableLayers(originalAvatar); EnableCustomPlayableLayers(editAvatar); } if (originalAvatar.GestureController is null) { string saveFolderPath; if (originalAvatar.FxController != null) { saveFolderPath = Path.GetDirectoryName(AssetDatabase.GetAssetPath(originalAvatar.FxController)); } else { saveFolderPath = "Assets/" + originalAvatar.Animator.gameObject.name + "/"; } var fileName = $"Gesture_HandsLayer_{ originalAvatar.Animator.gameObject.name}.controller"; var createdGestureController = InstantiateFxController(Path.Combine(saveFolderPath, fileName)); originalAvatar.Descriptor.baseAnimationLayers[2].isDefault = false; editAvatar.Descriptor.baseAnimationLayers[2].isDefault = false; originalAvatar.Descriptor.baseAnimationLayers[2].animatorController = createdGestureController; editAvatar.Descriptor.baseAnimationLayers[2].animatorController = createdGestureController; } originalAvatar.LoadAvatarInfo(); editAvatar.LoadAvatarInfo(); }
public static void CreatePlayableLayerController(VRCAvatar originalAvatar, VRCAvatar editAvatar) { var fileName = $"Fx_HandsLayer_{ originalAvatar.Animator.gameObject.name}.controller"; var saveFolderPath = "Assets/" + originalAvatar.Animator.gameObject.name + "/"; var fullFolderPath = Path.GetFullPath(saveFolderPath); if (!Directory.Exists(fullFolderPath)) { Directory.CreateDirectory(fullFolderPath); AssetDatabase.Refresh(); } var createdFxController = InstantiateFxController(Path.Combine(saveFolderPath, fileName)); // まばたき防止機構をつける SetNoBlink(createdFxController); if (!originalAvatar.Descriptor.customizeAnimationLayers) { EnableCustomPlayableLayers(originalAvatar); EnableCustomPlayableLayers(editAvatar); } originalAvatar.Descriptor.baseAnimationLayers[4].isDefault = false; originalAvatar.Descriptor.baseAnimationLayers[4].animatorController = createdFxController; editAvatar.Descriptor.baseAnimationLayers[4].isDefault = false; editAvatar.Descriptor.baseAnimationLayers[4].animatorController = createdFxController; if (originalAvatar.GestureController is null) { fileName = $"Gesture_HandsLayer_{ originalAvatar.Animator.gameObject.name}.controller"; var createdGestureController = InstantiateFxController(Path.Combine(saveFolderPath, fileName)); originalAvatar.Descriptor.baseAnimationLayers[2].isDefault = false; originalAvatar.Descriptor.baseAnimationLayers[2].animatorController = createdGestureController; editAvatar.Descriptor.baseAnimationLayers[2].isDefault = false; editAvatar.Descriptor.baseAnimationLayers[2].animatorController = createdGestureController; } originalAvatar.LoadAvatarInfo(); editAvatar.LoadAvatarInfo(); }