コンテンツパイプライン時にベイク出来るようにするための作業(途中、クラスはある程度準備した)
@@ -6,7 +6,7 @@ | ||
6 | 6 | /// <summary> |
7 | 7 | /// MMDモデルデータクラス(内部用) |
8 | 8 | /// </summary> |
9 | - internal class MMDModelData | |
9 | + public class MMDModelData | |
10 | 10 | { |
11 | 11 | /// <summary> |
12 | 12 | /// モデルデータ |
@@ -128,7 +128,7 @@ | ||
128 | 128 | public MMDMotion LoadMotion(string assetName) |
129 | 129 | { |
130 | 130 | MMDMotion result = new MMDMotion(); |
131 | - result.Initialize(Content.Load<MMDMotionData>(assetName), this); | |
131 | + result.Initialize(Content.Load<MMDMotionData>(assetName)); | |
132 | 132 | return result; |
133 | 133 | } |
134 | 134 | /// <summary> |
@@ -0,0 +1,16 @@ | ||
1 | +using System; | |
2 | +using System.Collections.Generic; | |
3 | +using System.Linq; | |
4 | +using System.Text; | |
5 | + | |
6 | +namespace MikuMikuDance.XNA.Motion.MotionData | |
7 | +{ | |
8 | + /// <summary> | |
9 | + /// ベイク済みモーションデータ | |
10 | + /// </summary> | |
11 | + public class MMDBakedMotionData | |
12 | + { | |
13 | + } | |
14 | + | |
15 | + | |
16 | +} |
@@ -280,6 +280,9 @@ | ||
280 | 280 | mmdModel.FaceManager.FaceRates = PopedFaces; |
281 | 281 | mmdModel.BoneManager.Update(); |
282 | 282 | } |
283 | + /// <summary> | |
284 | + /// ベイク用ワーカースレッドのためのクラス | |
285 | + /// </summary> | |
283 | 286 | class BakeTaskManager |
284 | 287 | { |
285 | 288 | public Thread thread; |
@@ -16,7 +16,6 @@ | ||
16 | 16 | {//このクラスは指定したフレーム⇔データの管理クラス |
17 | 17 | //内部データ |
18 | 18 | internal MMDMotionData MotionData { get; private set; } |
19 | - internal MikuMikuDanceXNA mmdXNA { get; private set; } | |
20 | 19 | |
21 | 20 | //モーションデータで使用するボーンの一覧 |
22 | 21 | List<string> BoneDictionary; |
@@ -29,10 +28,9 @@ | ||
29 | 28 | internal long MaxFrame { get; private set; } |
30 | 29 | internal MMDMotion() { }//外から作らせない |
31 | 30 | |
32 | - internal void Initialize(MMDMotionData motionData, MikuMikuDanceXNA mmdxna) | |
31 | + internal void Initialize(MMDMotionData motionData) | |
33 | 32 | { |
34 | 33 | MotionData = motionData; |
35 | - mmdXNA = mmdxna; | |
36 | 34 | //モーションデータ内を検索し、ボーン辞書を作っておく |
37 | 35 | BoneDictionary = new List<string>(); |
38 | 36 | Dictionary<string, int> bones = new Dictionary<string, int>(); |
@@ -150,10 +148,6 @@ | ||
150 | 148 | /// <returns>トランスフォーム</returns> |
151 | 149 | internal QuatTransform GetBoneTransform(string bone, decimal NowFrame) |
152 | 150 | { |
153 | -#if TRACE | |
154 | - if(mmdXNA.TimeRular!=null) | |
155 | - mmdXNA.TimeRular.BeginMark(3, "MMDMotion-GetBoneTransform", Color.Blue); | |
156 | -#endif | |
157 | 151 | MMDBoneMotion[] motions = BoneMotions[bone]; |
158 | 152 | //前後のフレームをチェック |
159 | 153 | long BeforePos = 0; |
@@ -203,10 +197,6 @@ | ||
203 | 197 | v = new Vector3(x, y, z); |
204 | 198 | q = Quaternion.Slerp(motions[BeforePos].Quatanion, motions[NextPos].Quatanion, ProgR); |
205 | 199 | } |
206 | -#if TRACE | |
207 | - if (mmdXNA.TimeRular != null) | |
208 | - mmdXNA.TimeRular.EndMark(3, "MMDMotion-GetBoneTransform"); | |
209 | -#endif | |
210 | 200 | return new QuatTransform(q, v); |
211 | 201 | } |
212 | 202 |