2021-05-07 22:05:11 -04:00

149 lines
4.2 KiB
C#

//
// BoneNameConverter.cs - converts bone names from MikuMikuDance to Moosta OMP and vice versa
//
// Author:
// Michael Becker <alcexhim@gmail.com>
//
// 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 <http://www.gnu.org/licenses/>.
using System.Collections.Generic;
namespace UniversalEditor.ObjectModels.Multimedia3D.Model
{
/// <summary>
/// Converts bone names from MikuMikuDance to Moosta OMP and vice versa.
/// </summary>
public static class BoneNameConverter
{
private static List<List<string>> _cnvs = new List<List<string>>();
static BoneNameConverter()
{
InitializeMMD();
InitializeMoosta();
}
private static void InitializeMMD()
{
List<string> _cnv = new List<string>();
_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<string> _cnv = new List<string>();
_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);
}
}
}