Ejemplo n.º 1
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="motionData">モーションデータ</param>
 /// <param name="options">トラックオプション</param>
 public MMDMotionTrack(MMDMotion motionData, MMDMotionTrackOptions options)
 {
     Options = options;
     //ボーンの配列抜き出し
     boneFrames = motionData.BoneFrames;
     //表情の配列抜き出し
     faceFrames = motionData.FaceFrames;
     //モーションのFPS=30
     FramePerSecond = DefaultFPS;
     //差分一覧を作成
     subPoses = new Dictionary<string, SQTTransform>(motionData.BoneFrames.Count);
     //表情一覧を作成
     faces = new Dictionary<string, float>(motionData.FaceFrames.Count);
     //現在の再生位置を設定&最大フレーム数のチェック
     foreach (var it in motionData.BoneFrames)
     {
         bonePos.Add(it.Key, 0);
         foreach (var it2 in it.Value)
         {
             if (it2.FrameNo > m_MaxFrame)
                 m_MaxFrame = it2.FrameNo;
         }
     }
     foreach (var it in motionData.FaceFrames)
     {
         facePos.Add(it.Key, 0);
         foreach (var it2 in it.Value)
         {
             if (it2.FrameNo > m_MaxFrame)
                 m_MaxFrame = it2.FrameNo;
         }
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// モーションの追加
 /// </summary>
 /// <param name="motionKey">モーション識別用のモーション名</param>
 /// <param name="motionData">MikuMikuDance MotionData</param>
 /// <param name="options">トラックオプション</param>
 public void AddMotion(string motionKey, MMDMotion motionData, MMDMotionTrackOptions options)
 {
     motionTracks.Add(motionKey, new MMDMotionTrack(motionData, options));
 }