public void ChangeFace(Dictionary <int, float> dictFace, bool blend) { bool flag = false; byte b = 0; float num = 0f; FBSTargetInfo[] fBSTarget = FBSTarget; int num2 = 0; while (num2 < fBSTarget.Length) { FBSTargetInfo fBSTargetInfo = fBSTarget[num2]; SkinnedMeshRenderer skinnedMeshRenderer = fBSTargetInfo.GetSkinnedMeshRenderer(); foreach (int key in dictFace.Keys) { if (skinnedMeshRenderer.sharedMesh.blendShapeCount <= fBSTargetInfo.PtnSet[key].Close) { b = 1; break; } if (skinnedMeshRenderer.sharedMesh.blendShapeCount <= fBSTargetInfo.PtnSet[key].Open) { b = 1; break; } num += dictFace[key]; } if (b != 0) { break; } if (flag || !(num > 1f)) { flag = true; num2++; continue; } b = 2; break; } switch (b) { case 1: Debug.LogError("ブレンドシェイプ番号が範囲外"); break; case 2: Debug.LogError("合成の割合が100%を超えています"); break; default: dictBackFace.Clear(); foreach (int key2 in dictNowFace.Keys) { dictBackFace[key2] = dictNowFace[key2]; } dictNowFace.Clear(); foreach (int key3 in dictFace.Keys) { dictNowFace[key3] = dictFace[key3]; } if (!blend) { blendTimeCtrl.End(); } else { blendTimeCtrl.Start(); } break; } }