/// <summary> /// モーションの再生を開始する。 /// </summary> /// <param name="type">モーションの種類</param> /// <param name="motion">モーション</param> /// <param name="loop_enabled">ループが使えるなら有効化する。</param> /// <returns></returns> public CubismMotionQueueEntry StartMotion(MotionType type, ICubismMotion motion, bool loop_enabled = false) { switch (type) { case MotionType.Base: return(BaseMotionManager.StartMotion(motion, loop_enabled)); case MotionType.Expression: return(ExpressionMotionManager.StartMotion(motion, loop_enabled)); case MotionType.Effect: return(EffectMotionManager.StartMotion(motion, loop_enabled)); default: return(null); } }
/// <summary> /// モデルを更新する。 /// モーション、ポーズなども更新される。 /// </summary> /// <param name="elapsed_seconds">前回の更新時刻からの経過時間[秒]</param> public void Update(double elapsed_seconds) { if (elapsed_seconds < 0.0) { throw new ArgumentException(); } // モーションを更新する // ベースモーションの更新後は、次の更新のために表情やエフェクトの影響を受ける前のパラメータを保存しておく Model.RestoreSavedParameters(); BaseMotionManager.Update(elapsed_seconds); Model.SaveParameters(); ExpressionMotionManager.Update(elapsed_seconds); EffectMotionManager.Update(elapsed_seconds); if (PoseController != null) { PoseController.UpdateParameters(elapsed_seconds); } Model.Update(); }