mirror of
https://github.com/bdunderscore/modular-avatar.git
synced 2024-12-29 18:55:06 +08:00
chore: unexpose animation context for now
This API is still a bit unstable; it'll probably be added in a future release.
This commit is contained in:
parent
6332825980
commit
c9c9701e1d
@ -1,5 +1,5 @@
|
|||||||
using nadena.dev.ndmf;
|
using nadena.dev.ndmf;
|
||||||
using nadena.dev.ndmf.animation;
|
using nadena.dev.modular_avatar.animation;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using nadena.dev.ndmf.animation;
|
using nadena.dev.modular_avatar.animation;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEditor.Animations;
|
using UnityEditor.Animations;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using nadena.dev.ndmf.animation;
|
using nadena.dev.modular_avatar.animation;
|
||||||
using nadena.dev.modular_avatar.core;
|
using nadena.dev.modular_avatar.core;
|
||||||
using nadena.dev.modular_avatar.core.editor;
|
using nadena.dev.modular_avatar.core.editor;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using nadena.dev.ndmf.animation;
|
using nadena.dev.modular_avatar.animation;
|
||||||
using nadena.dev.modular_avatar.core;
|
using nadena.dev.modular_avatar.core;
|
||||||
using nadena.dev.modular_avatar.core.editor;
|
using nadena.dev.modular_avatar.core.editor;
|
||||||
using nadena.dev.modular_avatar.editor.ErrorReporting;
|
using nadena.dev.modular_avatar.editor.ErrorReporting;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using nadena.dev.ndmf.animation;
|
using nadena.dev.modular_avatar.animation;
|
||||||
using nadena.dev.modular_avatar.core.editor;
|
using nadena.dev.modular_avatar.core.editor;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
@ -1,13 +1,18 @@
|
|||||||
using System;
|
#region
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using nadena.dev.ndmf;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEditor.Animations;
|
using UnityEditor.Animations;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using VRC.SDK3.Avatars.Components;
|
using VRC.SDK3.Avatars.Components;
|
||||||
|
|
||||||
namespace nadena.dev.ndmf.animation
|
#endregion
|
||||||
|
|
||||||
|
namespace nadena.dev.modular_avatar.animation
|
||||||
{
|
{
|
||||||
public static class AnimationUtil
|
internal static class AnimationUtil
|
||||||
{
|
{
|
||||||
private const string SAMPLE_PATH_PACKAGE =
|
private const string SAMPLE_PATH_PACKAGE =
|
||||||
"Packages/com.vrchat.avatars/Samples/AV3 Demo Assets/Animation/Controllers";
|
"Packages/com.vrchat.avatars/Samples/AV3 Demo Assets/Animation/Controllers";
|
||||||
|
@ -22,19 +22,22 @@
|
|||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#region
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using nadena.dev.ndmf.util;
|
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEditor.Animations;
|
using UnityEditor.Animations;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using VRC.SDK3.Avatars.Components;
|
using VRC.SDK3.Avatars.Components;
|
||||||
using Object = UnityEngine.Object;
|
using Object = UnityEngine.Object;
|
||||||
|
|
||||||
namespace nadena.dev.ndmf.animation
|
#endregion
|
||||||
|
|
||||||
|
namespace nadena.dev.modular_avatar.animation
|
||||||
{
|
{
|
||||||
public class AnimatorCombiner
|
internal class AnimatorCombiner
|
||||||
{
|
{
|
||||||
private readonly AnimatorController _combined;
|
private readonly AnimatorController _combined;
|
||||||
private bool isSaved;
|
private bool isSaved;
|
||||||
@ -56,7 +59,7 @@ namespace nadena.dev.ndmf.animation
|
|||||||
|
|
||||||
private int controllerBaseLayer = 0;
|
private int controllerBaseLayer = 0;
|
||||||
|
|
||||||
public AnimatorCombiner(String assetName, UnityEngine.Object assetContainer)
|
public AnimatorCombiner(String assetName, Object assetContainer)
|
||||||
{
|
{
|
||||||
_combined = new AnimatorController();
|
_combined = new AnimatorController();
|
||||||
if (assetContainer != null)
|
if (assetContainer != null)
|
||||||
|
@ -1,10 +1,16 @@
|
|||||||
namespace nadena.dev.ndmf.animation
|
#region
|
||||||
|
|
||||||
|
using nadena.dev.ndmf;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
namespace nadena.dev.modular_avatar.animation
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This interface tags components which supply additional animation controllers for merging. They will be given
|
/// This interface tags components which supply additional animation controllers for merging. They will be given
|
||||||
/// an opportunity to apply animation path updates when the TrackObjectRenamesContext is committed.
|
/// an opportunity to apply animation path updates when the TrackObjectRenamesContext is committed.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IOnCommitObjectRenames
|
internal interface IOnCommitObjectRenames
|
||||||
{
|
{
|
||||||
void OnCommitObjectRenames(BuildContext buildContext, TrackObjectRenamesContext renameContext);
|
void OnCommitObjectRenames(BuildContext buildContext, TrackObjectRenamesContext renameContext);
|
||||||
}
|
}
|
||||||
|
@ -1,24 +1,33 @@
|
|||||||
using System;
|
#region
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Immutable;
|
using System.Collections.Immutable;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using nadena.dev.ndmf;
|
||||||
using nadena.dev.ndmf.util;
|
using nadena.dev.ndmf.util;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEditor.Animations;
|
using UnityEditor.Animations;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using VRC.Core;
|
|
||||||
using VRC.SDK3.Avatars.Components;
|
using VRC.SDK3.Avatars.Components;
|
||||||
|
using Object = UnityEngine.Object;
|
||||||
|
|
||||||
namespace nadena.dev.ndmf.animation
|
#endregion
|
||||||
|
|
||||||
|
namespace nadena.dev.modular_avatar.animation
|
||||||
{
|
{
|
||||||
using UnityObject = UnityEngine.Object;
|
#region
|
||||||
|
|
||||||
|
using UnityObject = Object;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This extension context tracks when objects are renamed, and updates animations accordingly.
|
/// This extension context tracks when objects are renamed, and updates animations accordingly.
|
||||||
/// Users of this context need to be aware that, when creating new curves (or otherwise introducing new motions,
|
/// Users of this context need to be aware that, when creating new curves (or otherwise introducing new motions,
|
||||||
/// use context.ObjectPath to obtain a suitable path for the target objects).
|
/// use context.ObjectPath to obtain a suitable path for the target objects).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class TrackObjectRenamesContext : IExtensionContext
|
internal sealed class TrackObjectRenamesContext : IExtensionContext
|
||||||
{
|
{
|
||||||
private Dictionary<GameObject, List<string>>
|
private Dictionary<GameObject, List<string>>
|
||||||
_objectToOriginalPaths = new Dictionary<GameObject, List<string>>();
|
_objectToOriginalPaths = new Dictionary<GameObject, List<string>>();
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using nadena.dev.ndmf.animation;
|
using nadena.dev.modular_avatar.animation;
|
||||||
using nadena.dev.modular_avatar.editor.ErrorReporting;
|
using nadena.dev.modular_avatar.editor.ErrorReporting;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -422,24 +422,25 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
&& (
|
&& (
|
||||||
Vector3.SqrMagnitude(mergedSrcBone.transform.localScale - src.transform.localScale) > 0.00001f
|
Vector3.SqrMagnitude(mergedSrcBone.transform.localScale - src.transform.localScale) > 0.00001f
|
||||||
|| Quaternion.Angle(mergedSrcBone.transform.localRotation, src.transform.localRotation) > 0.00001f
|
|| Quaternion.Angle(mergedSrcBone.transform.localRotation, src.transform.localRotation) > 0.00001f
|
||||||
|| Vector3.SqrMagnitude(mergedSrcBone.transform.localPosition - src.transform.localPosition) > 0.00001f
|
|| Vector3.SqrMagnitude(mergedSrcBone.transform.localPosition - src.transform.localPosition) >
|
||||||
|
0.00001f
|
||||||
)
|
)
|
||||||
&& src.GetComponent<IConstraint>() != null
|
&& src.GetComponent<IConstraint>() != null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// Constraints are sensitive to changes in local reference frames in some cases. In this case we'll
|
// Constraints are sensitive to changes in local reference frames in some cases. In this case we'll
|
||||||
// inject a dummy object in between in order to retain the local parent scale of the retargeted bone.
|
// inject a dummy object in between in order to retain the local parent scale of the retargeted bone.
|
||||||
var objName = src.gameObject.name + "$ConstraintRef " + Guid.NewGuid();
|
var objName = src.gameObject.name + "$ConstraintRef " + Guid.NewGuid();
|
||||||
|
|
||||||
var constraintScaleRef = new GameObject(objName);
|
var constraintScaleRef = new GameObject(objName);
|
||||||
constraintScaleRef.transform.SetParent(src.transform.parent);
|
constraintScaleRef.transform.SetParent(src.transform.parent);
|
||||||
constraintScaleRef.transform.localPosition = Vector3.zero;
|
constraintScaleRef.transform.localPosition = Vector3.zero;
|
||||||
constraintScaleRef.transform.localRotation = Quaternion.identity;
|
constraintScaleRef.transform.localRotation = Quaternion.identity;
|
||||||
constraintScaleRef.transform.localScale = Vector3.one;
|
constraintScaleRef.transform.localScale = Vector3.one;
|
||||||
|
|
||||||
constraintScaleRef.transform.SetParent(newParent.transform, true);
|
constraintScaleRef.transform.SetParent(newParent.transform, true);
|
||||||
mergedSrcBone = constraintScaleRef;
|
mergedSrcBone = constraintScaleRef;
|
||||||
|
|
||||||
BoneDatabase.AddMergedBone(mergedSrcBone.transform);
|
BoneDatabase.AddMergedBone(mergedSrcBone.transform);
|
||||||
BoneDatabase.RetainMergedBone(mergedSrcBone.transform);
|
BoneDatabase.RetainMergedBone(mergedSrcBone.transform);
|
||||||
PathMappings.MarkTransformLookthrough(mergedSrcBone);
|
PathMappings.MarkTransformLookthrough(mergedSrcBone);
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
using nadena.dev.ndmf.animation;
|
using nadena.dev.modular_avatar.animation;
|
||||||
using nadena.dev.modular_avatar.editor.ErrorReporting;
|
using nadena.dev.modular_avatar.editor.ErrorReporting;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -252,7 +252,7 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
dst.bindposes = newBindPoses;
|
dst.bindposes = newBindPoses;
|
||||||
renderer.sharedMesh = dst;
|
renderer.sharedMesh = dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
var newRootBone = _boneDatabase.GetRetargetedBone(rootBone, true);
|
var newRootBone = _boneDatabase.GetRetargetedBone(rootBone, true);
|
||||||
if (newRootBone == null)
|
if (newRootBone == null)
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using nadena.dev.modular_avatar.animation;
|
||||||
using nadena.dev.modular_avatar.editor.ErrorReporting;
|
using nadena.dev.modular_avatar.editor.ErrorReporting;
|
||||||
using nadena.dev.ndmf;
|
using nadena.dev.ndmf;
|
||||||
using nadena.dev.ndmf.animation;
|
|
||||||
using nadena.dev.ndmf.fluent;
|
using nadena.dev.ndmf.fluent;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using nadena.dev.ndmf.animation;
|
using nadena.dev.modular_avatar.animation;
|
||||||
using nadena.dev.modular_avatar.editor.ErrorReporting;
|
using nadena.dev.modular_avatar.editor.ErrorReporting;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit f6caa431ab9c8e6071edfc0ac75595519161b9e2
|
Subproject commit d1cbaa4aabd87b006b6e858de2a64192be5e42e9
|
Loading…
Reference in New Issue
Block a user