Ejemplo n.º 1
0
 public void Dispose()
 {
     if (QumarionModel.AttachedQumarion != null)
     {
         QumarionModel.DetachQumarion();
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// PCに接続されたQumarionがあればモデルに関連づけます。
        /// 複数のQumarionがある場合の選択は自動で行われます。</summary>
        /// <returns>接続成功または既に接続済みだった場合<see cref="true"/></returns>
        public bool TryAttachQumarionToModel()
        {
            if (QumarionModel.AttachedQumarion != null)
            {
                return(true);
            }

            if (PdkManager.ConnectedDeviceCount == 0)
            {
                return(false);
            }

            QumarionModel.AttachQumarion(PdkManager.GetDefaultQumarion());
            return(true);
        }
Ejemplo n.º 3
0
        /// <summary>Qumarionの情報を更新し、適用先のモデルに角度を割り当てます。</summary>
        /// <param name="model">適用先のモデル</param>
        public void Update(Model model)
        {
            if (QumarionModel.AttachedQumarion == null)
            {
                return;
            }

            //Qumarion側
            QumarionModel.Update();
            _rootBone.Update();

            //MMD側への適用: シンプルに。
            ApplyFK(model);
            ApplyIK(model);
            if (BindFootToGround)
            {
                BoundCenterToGround(model);
            }
        }