drawルーチンの調整
@@ -264,6 +264,9 @@ | ||
264 | 264 | //ライティング設定の取得 |
265 | 265 | Vector3 LightVector, LightColor; |
266 | 266 | mmdXNA.LightManager.GetParameters(out LightVector, out LightColor); |
267 | + //モデルdraw用の設定 | |
268 | + graphics.RenderState.AlphaBlendEnable = false; | |
269 | + graphics.RenderState.AlphaTestEnable = false; | |
267 | 270 | //モデルのCullModeを変更 |
268 | 271 | CullMode mode = graphics.RenderState.CullMode; |
269 | 272 | graphics.RenderState.CullMode = CullMode.None; |
@@ -61,6 +61,8 @@ | ||
61 | 61 | { |
62 | 62 | if (facename == "base") |
63 | 63 | return;//baseは何もしない…… |
64 | + if (!FaceDictionary.ContainsKey(facename)) | |
65 | + return;//対象表情が無いのでパス | |
64 | 66 | //表情情報リストに登録しておく |
65 | 67 | if (FaceRates.ContainsKey(facename)) |
66 | 68 | FaceRates[facename] = rate; |
@@ -73,8 +75,6 @@ | ||
73 | 75 | //次に表情名に合わせて頂点とその移動量を合算する |
74 | 76 | foreach (var face in FaceRates) |
75 | 77 | {//各表情ごとに頂点移動量の合成処理 |
76 | - if (!FaceDictionary.ContainsKey(face.Key)) | |
77 | - continue;//対象表情が無いのでパス | |
78 | 78 | foreach (var vert in model.ModelData.Skins[FaceDictionary[face.Key]].SkinVerts) |
79 | 79 | { |
80 | 80 | FaceTranslations[vert.VertIndex] += (new Vector4(vert.Pos[0], vert.Pos[1], vert.Pos[2], 0) * face.Value); |
@@ -101,8 +101,6 @@ | ||
101 | 101 | } |
102 | 102 | mesh.Draw(); |
103 | 103 | } |
104 | - //元に戻す | |
105 | - Game.GraphicsDevice.RenderState.AlphaBlendEnable = false; | |
106 | 104 | //CullModeの変更を戻す |
107 | 105 | Game.GraphicsDevice.RenderState.CullMode = mode; |
108 | 106 |