From a2b8d32c006c1de49d8abb5dd52c929b6e5b5096 Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Mon, 12 Jul 2021 15:25:03 +0200 Subject: [PATCH] Implemented automatic animating of group frame alias models, using the existing AliasModelAnimator component. --- Assets/Scripts/Game/Entity.cs | 7 +++++++ Assets/Scripts/Support/AliasModel.cs | 1 + Assets/Scripts/Support/AliasModelAnimator.cs | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts/Game/Entity.cs b/Assets/Scripts/Game/Entity.cs index d8dfde5..1edcbd7 100644 --- a/Assets/Scripts/Game/Entity.cs +++ b/Assets/Scripts/Game/Entity.cs @@ -53,6 +53,13 @@ public class Entity // Set a default pose based on the first animation frame UpdateAnimation(0); + + if (model.AutoAnimate) + { + // TODO: do something with syncbase value to push similar animations out of phase + var animator = gameObject.AddComponent(); + animator.aliasModel = model; + } } public void SetBrushModel(GameObject brushModelGO) diff --git a/Assets/Scripts/Support/AliasModel.cs b/Assets/Scripts/Support/AliasModel.cs index c6a0c1f..88fd3c5 100644 --- a/Assets/Scripts/Support/AliasModel.cs +++ b/Assets/Scripts/Support/AliasModel.cs @@ -14,6 +14,7 @@ public class AliasModel public string Name => name; public bool IsAnimated => header.numPoses > 1; + public bool AutoAnimate => frameType == QAliasFrameType.Group; public AliasModel(string name, QAliasHeader header, QAliasFrameType frameType) { diff --git a/Assets/Scripts/Support/AliasModelAnimator.cs b/Assets/Scripts/Support/AliasModelAnimator.cs index 830b2fa..f0380d0 100644 --- a/Assets/Scripts/Support/AliasModelAnimator.cs +++ b/Assets/Scripts/Support/AliasModelAnimator.cs @@ -10,7 +10,7 @@ public class AliasModelAnimator : MonoBehaviour [SerializeField] [Range(1, 20)] - private float animateFps = 5f; + private float animateFps = 10f; [SerializeField] private float frameNumber = 0;