// // BoneNameConverter.cs - converts bone names from MikuMikuDance to Moosta OMP and vice versa // // Author: // Michael Becker // // Copyright (c) 2013-2020 Mike Becker's Software // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . using System.Collections.Generic; namespace UniversalEditor.ObjectModels.Multimedia3D.Model { /// /// Converts bone names from MikuMikuDance to Moosta OMP and vice versa. /// public static class BoneNameConverter { private static List> _cnvs = new List>(); static BoneNameConverter() { InitializeMMD(); InitializeMoosta(); } private static void InitializeMMD() { List _cnv = new List(); _cnv.Add("センター"); _cnv.Add("上半身"); _cnv.Add("首"); _cnv.Add("頭"); _cnv.Add("左目"); _cnv.Add("右目"); _cnv.Add("両目"); _cnv.Add("左肩"); _cnv.Add("左腕"); _cnv.Add("左ひじ"); _cnv.Add("左手首"); _cnv.Add("左親指1"); _cnv.Add("左親指2"); _cnv.Add("左人指1"); _cnv.Add("左人指2"); _cnv.Add("左人指3"); _cnv.Add("左中指1"); _cnv.Add("左中指2"); _cnv.Add("左中指3"); _cnv.Add("左薬指1"); _cnv.Add("左薬指2"); _cnv.Add("左薬指3"); _cnv.Add("左小指1"); _cnv.Add("左小指2"); _cnv.Add("左小指3"); _cnv.Add("右肩"); _cnv.Add("右腕"); _cnv.Add("右ひじ"); _cnv.Add("右手首"); _cnv.Add("右親指1"); _cnv.Add("右親指2"); _cnv.Add("右人指1"); _cnv.Add("右人指2"); _cnv.Add("右人指3"); _cnv.Add("右中指1"); _cnv.Add("右中指2"); _cnv.Add("右中指3"); _cnv.Add("右薬指1"); _cnv.Add("右薬指2"); _cnv.Add("右薬指3"); _cnv.Add("右小指1"); _cnv.Add("右小指2"); _cnv.Add("右小指3"); _cnv.Add("下半身"); _cnv.Add("左足"); _cnv.Add("左ひざ"); _cnv.Add("左足首"); _cnv.Add("右足"); _cnv.Add("右ひざ"); _cnv.Add("右足首"); _cnvs.Add(_cnv); } private static void InitializeMoosta() { List _cnv = new List(); _cnv.Add("OMP.ROOT"); _cnv.Add("OMP.UPPERBODY"); _cnv.Add("OMP.NECK"); _cnv.Add("OMP.HEAD"); _cnv.Add("OMP.L.EYE"); _cnv.Add("OMP.R.EYE"); _cnv.Add("OMP.EYES"); _cnv.Add("OMP.L.COLLAR"); _cnv.Add("OMP.L.SHOULDER"); _cnv.Add("OMP.L.ELBOW"); _cnv.Add("OMP.L.WRIST"); _cnv.Add("OMP.L.THUMB.1"); _cnv.Add("OMP.L.THUMB.2"); _cnv.Add("OMP.L.FINGER1.1"); _cnv.Add("OMP.L.FINGER1.2"); _cnv.Add("OMP.L.FINGER1.3"); _cnv.Add("OMP.L.FINGER2.1"); _cnv.Add("OMP.L.FINGER2.2"); _cnv.Add("OMP.L.FINGER2.3"); _cnv.Add("OMP.L.FINGER3.1"); _cnv.Add("OMP.L.FINGER3.2"); _cnv.Add("OMP.L.FINGER3.3"); _cnv.Add("OMP.L.FINGER4.1"); _cnv.Add("OMP.L.FINGER4.2"); _cnv.Add("OMP.L.FINGER4.3"); _cnv.Add("OMP.R.COLLAR"); _cnv.Add("OMP.R.SHOULDER"); _cnv.Add("OMP.R.ELBOW"); _cnv.Add("OMP.R.WRIST"); _cnv.Add("OMP.R.THUMB.1"); _cnv.Add("OMP.R.THUMB.2"); _cnv.Add("OMP.R.FINGER1.1"); _cnv.Add("OMP.R.FINGER1.2"); _cnv.Add("OMP.R.FINGER1.3"); _cnv.Add("OMP.R.FINGER2.1"); _cnv.Add("OMP.R.FINGER2.2"); _cnv.Add("OMP.R.FINGER2.3"); _cnv.Add("OMP.R.FINGER3.1"); _cnv.Add("OMP.R.FINGER3.2"); _cnv.Add("OMP.R.FINGER3.3"); _cnv.Add("OMP.R.FINGER4.1"); _cnv.Add("OMP.R.FINGER4.2"); _cnv.Add("OMP.R.FINGER4.3"); _cnv.Add("OMP.LOWER_BODY"); _cnv.Add("OMP.L.HIP"); _cnv.Add("OMP.L.KNEE"); _cnv.Add("OMP.L.ANKLE"); _cnv.Add("OMP.R.HIP"); _cnv.Add("OMP.R.KNEE"); _cnv.Add("OMP.R.ANKLE"); _cnvs.Add(_cnv); } } }