123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using I2.Loc;
- using UnityEngine;
- using UnityEngine.Events;
- using UnityEngine.UI;
- using wf;
- public class HandSignShortcut : MonoBehaviour
- {
- public static HandSignShortcut.Serializer config
- {
- get
- {
- HandSignShortcut.LoadDefault();
- return HandSignShortcut.m_Config;
- }
- }
- private static void LoadDefault()
- {
- if (HandSignShortcut.m_IsLoadedDefault)
- {
- return;
- }
- HandSignShortcut.m_IsLoadedDefault = true;
- HandSignShortcut.m_Config = HandSignShortcut.m_Config.ReadAndSet();
- }
- public bool IsLeftHand
- {
- get
- {
- return this.m_IsLeftHand;
- }
- set
- {
- this.m_IsLeftHand = value;
- }
- }
- public AVRController controller
- {
- get
- {
- return this.m_Controller;
- }
- private set
- {
- this.m_Controller = value;
- }
- }
- private CircleListSelectUI circleList
- {
- get
- {
- return this.m_CircleList;
- }
- set
- {
- this.m_CircleList = value;
- }
- }
- public bool isEnableHandUI
- {
- get
- {
- return this.circleList != null && this.circleList.gameObject.activeSelf;
- }
- set
- {
- if (this.circleList != null && this.circleList.gameObject.activeSelf != value)
- {
- this.circleList.gameObject.SetActive(value);
- }
- }
- }
- public void Init(bool isLeftHand)
- {
- this.IsLeftHand = isLeftHand;
- Debug.Log("初期化:ハンドサインのショートカットを実行するコンポーネント");
- this.controller = ((!isLeftHand) ? GameMain.Instance.OvrMgr.ovr_obj.right_controller.controller : GameMain.Instance.OvrMgr.ovr_obj.left_controller.controller);
- this.InitHand();
- this.InitCircleUI();
- }
- private void InitHand()
- {
- Maid maid = this.GetMaid();
- Transform t;
- string[] array;
- if (this.IsLeftHand)
- {
- t = CMT.SearchObjName(maid.body0.m_Bones.transform, "Bip01 L Hand", true);
- array = HandSignShortcut.strHandBoneNameL;
- }
- else
- {
- t = CMT.SearchObjName(maid.body0.m_Bones.transform, "Bip01 R Hand", true);
- array = HandSignShortcut.strHandBoneNameR;
- }
- this.m_TransformFingerArray = new Transform[array.Length];
- for (int i = 0; i < array.Length; i++)
- {
- this.m_TransformFingerArray[i] = CMT.SearchObjName(t, array[i], true);
- }
- }
- private void InitCircleUI()
- {
- string text = "OVR/CircleCommandUI/HandSignDataShortcut(Cotroller)";
- GameObject gameObject = Resources.Load<GameObject>(text);
- if (gameObject == null)
- {
- NDebug.Assert("[HandSignShortcut] " + text + "\nプレハブが見つかりません", false);
- }
- GameObject gameObject2 = UnityEngine.Object.Instantiate<GameObject>(gameObject);
- this.circleList = gameObject2.GetComponent<CircleListSelectUI>();
- this.CreateItemList(8);
- CircleCommandUI circleCommandUI = this.circleList.circleCommandUI;
- circleCommandUI.onSelect.AddListener(new UnityAction<GameObject>(this.OnSelectItem));
- circleCommandUI.onDeselect.AddListener(new UnityAction<GameObject>(this.OnDeselectItem));
- circleCommandUI.onDecide.AddListener(new UnityAction<GameObject>(this.OnDecide));
- this.circleList.controller = this.controller;
- Transform transform = gameObject2.transform;
- transform.SetParent(base.transform);
- transform.localPosition = Vector3.zero;
- transform.localRotation = Quaternion.identity;
- transform.localScale = Vector3.one;
- Vector3 b = new Vector3(0.03f, 0.15f, -0.05f);
- Vector3 localEulerAngles = new Vector3(35f, 15f, 0f);
- if (this.IsLeftHand)
- {
- b.Scale(new Vector3(-1f, 1f, 1f));
- localEulerAngles.Scale(new Vector3(1f, -1f, -1f));
- }
- transform.localPosition += b;
- transform.localEulerAngles = localEulerAngles;
- GameObject childObject = UTY.GetChildObject(this.circleList.gameObject, "CircleCommandUI/text right hand", false);
- childObject.GetComponent<Text>().text = ((!this.IsLeftHand) ? "右" : "左");
- Localize localize = childObject.AddComponent<Localize>();
- if (this.IsLeftHand)
- {
- Utility.SetLocalizeTerm(localize, "System/左");
- }
- else
- {
- Utility.SetLocalizeTerm(localize, "System/右");
- }
- }
- private void CreateItemList(int count)
- {
- List<HandSignShortcut.MaidFingerData> dataList = HandSignShortcut.config.maidFingerDataList;
- CircleCommandUI circleCommandUI = this.circleList.circleCommandUI;
- circleCommandUI.Show<Transform>(count, delegate(int index, Transform trans)
- {
- Text componentInChildren = trans.GetComponentInChildren<Text>();
- trans.localScale = Vector3.one * 0.5f;
- HandSignShortcut.ItemData itemData = trans.gameObject.AddComponent<HandSignShortcut.ItemData>();
- itemData.text = componentInChildren;
- itemData.SetLocalizeTerm("VAS/" + componentInChildren);
- if (index == 0)
- {
- itemData.data = null;
- return;
- }
- if (dataList.Count > index - 1)
- {
- itemData.data = dataList[index - 1];
- }
- else
- {
- itemData.data = null;
- }
- });
- }
- private void OnSelectItem(GameObject item)
- {
- if (item == null)
- {
- return;
- }
- Graphic component = item.GetComponent<Graphic>();
- if (component != null)
- {
- component.color = Color.red;
- }
- item.transform.localScale = Vector3.one;
- item.transform.SetAsLastSibling();
- if (ControllerShortcutSettingData.config.isDirectMode)
- {
- HandSignShortcut.ItemData component2 = item.GetComponent<HandSignShortcut.ItemData>();
- if (component2 != null)
- {
- this.m_NowTargetFingerData = component2.data;
- }
- else
- {
- this.m_NowTargetFingerData = null;
- }
- }
- }
- private void OnDeselectItem(GameObject item)
- {
- if (item == null)
- {
- return;
- }
- Graphic component = item.GetComponent<Graphic>();
- if (component != null)
- {
- Color white = Color.white;
- white.a = 0.5f;
- component.color = white;
- }
- item.transform.localScale = Vector3.one * 0.5f;
- }
- private void OnDecide(GameObject selectItem)
- {
- if (selectItem == null)
- {
- Debug.LogWarning("選択項目にnullが入った");
- return;
- }
- this.OnDeselectItem(selectItem);
- if (!ControllerShortcutSettingData.config.isEveryShowMode)
- {
- this.m_CircleList.SetActiveUI(false);
- }
- if (ControllerShortcutSettingData.config.isDirectMode)
- {
- return;
- }
- HandSignShortcut.ItemData component = selectItem.GetComponent<HandSignShortcut.ItemData>();
- if (component != null)
- {
- this.m_NowTargetFingerData = component.data;
- }
- else
- {
- this.m_NowTargetFingerData = null;
- }
- }
- private void Update()
- {
- if (this.m_NowTargetFingerData != null)
- {
- this.UpdateFinger(this.m_NowTargetFingerData);
- }
- else
- {
- this.UpdateHandSign();
- }
- }
- private void UpdateHandSign()
- {
- if (this.controller == null || !this.controller.HandEnable)
- {
- return;
- }
- AVRControllerButtons vrcontrollerButtons = this.controller.VRControllerButtons;
- if (vrcontrollerButtons != null)
- {
- if (GameMain.Instance.VRDeviceTypeID == GameMain.VRDeviceType.RIFT_TOUCH)
- {
- if (vrcontrollerButtons.GetTouch(AVRControllerButtons.TOUCH.REST) || vrcontrollerButtons.GetTouch(AVRControllerButtons.TOUCH.XA) || vrcontrollerButtons.GetTouch(AVRControllerButtons.TOUCH.YB))
- {
- this.FingerRateTarget(HandSignShortcut.Finger.Thumb, 1f);
- }
- else
- {
- this.FingerRateTarget(HandSignShortcut.Finger.Thumb, 0f);
- }
- if (vrcontrollerButtons.GetPress(AVRControllerButtons.BTN.TRIGGER))
- {
- this.FingerRateTarget(HandSignShortcut.Finger.Index, 1f);
- }
- else if (vrcontrollerButtons.GetTouch(AVRControllerButtons.TOUCH.TRIGGER))
- {
- this.FingerRateTarget(HandSignShortcut.Finger.Index, 0.5f);
- }
- else
- {
- this.FingerRateTarget(HandSignShortcut.Finger.Index, 0f);
- }
- if (vrcontrollerButtons.GetPress(AVRControllerButtons.BTN.GRIP))
- {
- this.FingerRateTarget(HandSignShortcut.Finger.Middle, 1f);
- this.FingerRateTarget(HandSignShortcut.Finger.Ring, 1f);
- this.FingerRateTarget(HandSignShortcut.Finger.Little, 1f);
- }
- else
- {
- this.FingerRateTarget(HandSignShortcut.Finger.Middle, 0f);
- this.FingerRateTarget(HandSignShortcut.Finger.Ring, 0f);
- this.FingerRateTarget(HandSignShortcut.Finger.Little, 0f);
- }
- }
- else if (GameMain.Instance.VRDeviceTypeID == GameMain.VRDeviceType.VIVE)
- {
- this.FingerRateTarget(HandSignShortcut.Finger.Thumb, vrcontrollerButtons.GetTriggerRate());
- this.FingerRateTarget(HandSignShortcut.Finger.Index, vrcontrollerButtons.GetTriggerRate());
- this.FingerRateTarget(HandSignShortcut.Finger.Middle, vrcontrollerButtons.GetTriggerRate());
- this.FingerRateTarget(HandSignShortcut.Finger.Ring, vrcontrollerButtons.GetTriggerRate());
- this.FingerRateTarget(HandSignShortcut.Finger.Little, vrcontrollerButtons.GetTriggerRate());
- }
- }
- for (int i = 0; i < 5; i++)
- {
- this.FingerRateUpdate((HandSignShortcut.Finger)i, this.m_fTargetRate[i]);
- }
- }
- private void FingerRateTarget(HandSignShortcut.Finger f_eFinger, float f_fRate)
- {
- this.m_fTargetRate[(int)f_eFinger] = f_fRate;
- }
- private void FingerRateUpdate(HandSignShortcut.Finger f_eFinger, float f_fRate)
- {
- int num = (int)(f_eFinger * HandSignShortcut.Finger.Ring);
- for (int i = num; i < num + 3; i++)
- {
- if (this.IsLeftHand)
- {
- this.m_TransformFingerArray[i].localRotation = Quaternion.Lerp(this.m_TransformFingerArray[i].localRotation, Quaternion.Lerp(HandSignShortcut.m_aryHandRot[0, i], HandSignShortcut.m_aryHandRot[1, i], f_fRate), 0.25f);
- }
- else
- {
- this.m_TransformFingerArray[i].localRotation = Quaternion.Lerp(this.m_TransformFingerArray[i].localRotation, Quaternion.Lerp(HandSignShortcut.m_aryHandRot[2, i], HandSignShortcut.m_aryHandRot[3, i], f_fRate), 0.25f);
- }
- }
- }
- private void UpdateFinger(HandSignShortcut.MaidFingerData data)
- {
- Quaternion[] array = (!this.IsLeftHand) ? data.rightFingerData : data.leftFingerData;
- for (int i = 0; i < this.m_TransformFingerArray.Length; i++)
- {
- this.m_TransformFingerArray[i].localRotation = Quaternion.Lerp(this.m_TransformFingerArray[i].localRotation, array[i], 0.25f);
- }
- }
- private Maid GetMaid()
- {
- CharacterMgr characterMgr = GameMain.Instance.CharacterMgr;
- return characterMgr.GetMaid(0);
- }
- private void OnApplicationQuit()
- {
- this.m_IsQuitting = true;
- }
- private void OnDestroy()
- {
- if (this.m_IsQuitting)
- {
- return;
- }
- if (this.circleList != null && this.circleList.gameObject != null)
- {
- UnityEngine.Object.Destroy(this.circleList.gameObject);
- Debug.Log("[HandSignShortcut] コントローラについているUIを破棄しました");
- }
- }
- // Note: this type is marked as 'beforefieldinit'.
- static HandSignShortcut()
- {
- Quaternion[,] array = new Quaternion[4, 15];
- array[0, 0] = new Quaternion(1.379457E-08f, -1.907173E-10f, -0.1001217f, 0.9949752f);
- array[0, 1] = new Quaternion(-3.348364E-08f, -2.288052E-09f, -0.05697599f, 0.9983756f);
- array[0, 2] = new Quaternion(0.4853954f, -0.1902075f, 0.1155978f, 0.8454878f);
- array[0, 3] = new Quaternion(-2.555888E-09f, 1.190041E-09f, -0.08838178f, 0.9960867f);
- array[0, 4] = new Quaternion(-3.708266E-09f, -4.232382E-11f, -0.1423017f, 0.9898233f);
- array[0, 5] = new Quaternion(0.005196964f, -0.009313619f, -0.07643344f, 0.9970177f);
- array[0, 6] = new Quaternion(1.469708E-09f, -2.337872E-09f, -0.08838177f, 0.9960867f);
- array[0, 7] = new Quaternion(-4.677417E-09f, -1.311283E-08f, -0.1086997f, 0.9940746f);
- array[0, 8] = new Quaternion(-0.001879324f, -0.005337666f, -0.0991221f, 0.9950592f);
- array[0, 9] = new Quaternion(-8.490085E-09f, -1.805363E-09f, -0.0796621f, 0.9968219f);
- array[0, 10] = new Quaternion(2.300491E-09f, 3.334659E-09f, -0.1239805f, 0.9922847f);
- array[0, 11] = new Quaternion(-0.006921342f, 0.001893361f, -0.09829046f, 0.9951319f);
- array[0, 12] = new Quaternion(-5.701029E-09f, -1.521331E-09f, -0.05449884f, 0.9985139f);
- array[0, 13] = new Quaternion(3.803335E-09f, -5.725684E-09f, -0.1423017f, 0.9898233f);
- array[0, 14] = new Quaternion(-0.01357147f, 0.02850812f, -0.08513741f, 0.9958689f);
- array[1, 0] = new Quaternion(6.932151E-09f, -2.730647E-09f, -0.3665012f, 0.9304176f);
- array[1, 1] = new Quaternion(-1.952852E-08f, -2.699741E-08f, -0.1618618f, 0.9868135f);
- array[1, 2] = new Quaternion(0.7708589f, -0.2672266f, 0.03713043f, 0.577051f);
- array[1, 3] = new Quaternion(9.870518E-10f, 1.579613E-09f, -0.5299194f, 0.8480481f);
- array[1, 4] = new Quaternion(-5.034789E-09f, -5.799267E-09f, -0.8191521f, 0.5735765f);
- array[1, 5] = new Quaternion(0.0478053f, -0.01974053f, -0.5880075f, 0.8072003f);
- array[1, 6] = new Quaternion(8.812074E-09f, -1.401741E-08f, -0.5299194f, 0.8480481f);
- array[1, 7] = new Quaternion(-1.043265E-08f, 1.477225E-09f, -0.7992581f, 0.6009881f);
- array[1, 8] = new Quaternion(-0.009090314f, -0.01649067f, -0.6061373f, 0.7951371f);
- array[1, 9] = new Quaternion(-2.784401E-08f, 1.160059E-08f, -0.5224781f, 0.8526527f);
- array[1, 10] = new Quaternion(1.204624E-08f, 8.771129E-09f, -0.8084095f, 0.5886205f);
- array[1, 11] = new Quaternion(-0.04368013f, 0.007996441f, -0.6048046f, 0.7951349f);
- array[1, 12] = new Quaternion(-3.325827E-08f, 2.027481E-09f, -0.5008097f, 0.8655574f);
- array[1, 13] = new Quaternion(4.887594E-09f, -3.295959E-08f, -0.8191521f, 0.5735765f);
- array[1, 14] = new Quaternion(-0.09800828f, 0.05454942f, -0.591058f, 0.7987924f);
- array[2, 0] = new Quaternion(-1.299039E-08f, 7.939377E-10f, -0.08632442f, 0.9962671f);
- array[2, 1] = new Quaternion(-1.412307E-08f, -4.882294E-09f, -0.05340298f, 0.9985731f);
- array[2, 2] = new Quaternion(-0.4710969f, 0.1764064f, 0.1206711f, 0.8557962f);
- array[2, 3] = new Quaternion(-1.785701E-09f, -1.246846E-08f, -0.06366991f, 0.9979711f);
- array[2, 4] = new Quaternion(-5.778726E-11f, -1.242248E-08f, -0.1014653f, 0.9948391f);
- array[2, 5] = new Quaternion(-0.002611603f, 0.001185287f, -0.04763259f, 0.9988608f);
- array[2, 6] = new Quaternion(1.790176E-09f, -1.245129E-08f, -0.0636699f, 0.9979711f);
- array[2, 7] = new Quaternion(5.652268E-09f, 1.780454E-09f, -0.06771687f, 0.9977046f);
- array[2, 8] = new Quaternion(0.001466242f, 0.004677885f, -0.07036161f, 0.9975095f);
- array[2, 9] = new Quaternion(7.64029E-09f, 7.058498E-09f, -0.05493468f, 0.99849f);
- array[2, 10] = new Quaternion(-2.104634E-09f, -7.598384E-09f, -0.08305829f, 0.9965447f);
- array[2, 11] = new Quaternion(0.004817214f, 0.003811401f, -0.0695642f, 0.9975586f);
- array[2, 12] = new Quaternion(2.864904E-09f, -1.440215E-08f, -0.02973721f, 0.9995578f);
- array[2, 13] = new Quaternion(-7.071282E-10f, -5.241497E-09f, -0.1014653f, 0.9948391f);
- array[2, 14] = new Quaternion(0.00861063f, -0.01516612f, -0.05657673f, 0.998246f);
- array[3, 0] = new Quaternion(7.66758E-09f, -1.102812E-08f, -0.3665012f, 0.9304176f);
- array[3, 1] = new Quaternion(-8.709043E-09f, -7.065411E-09f, -0.1618618f, 0.9868135f);
- array[3, 2] = new Quaternion(-0.7708589f, 0.2672265f, 0.03713048f, 0.577051f);
- array[3, 3] = new Quaternion(-8.292553E-09f, 7.889813E-10f, -0.5299194f, 0.8480481f);
- array[3, 4] = new Quaternion(6.103158E-09f, 4.273478E-09f, -0.8191521f, 0.5735765f);
- array[3, 5] = new Quaternion(-0.0478053f, 0.01974053f, -0.5880075f, 0.8072003f);
- array[3, 6] = new Quaternion(-1.288366E-08f, 7.501511E-09f, -0.5299194f, 0.8480481f);
- array[3, 7] = new Quaternion(1.786481E-08f, 1.343313E-08f, -0.7992581f, 0.6009881f);
- array[3, 8] = new Quaternion(0.009090304f, 0.01649068f, -0.6061373f, 0.7951371f);
- array[3, 9] = new Quaternion(1.513849E-08f, -3.815058E-09f, -0.5224782f, 0.8526527f);
- array[3, 10] = new Quaternion(-1.643181E-08f, -2.748009E-09f, -0.8084095f, 0.5886205f);
- array[3, 11] = new Quaternion(0.04368011f, -0.007996418f, -0.6048046f, 0.7951349f);
- array[3, 12] = new Quaternion(1.196498E-08f, -9.074872E-09f, -0.5008097f, 0.8655574f);
- array[3, 13] = new Quaternion(-4.887593E-09f, 3.295959E-08f, -0.8191521f, 0.5735765f);
- array[3, 14] = new Quaternion(0.09800829f, -0.0545494f, -0.5910579f, 0.7987924f);
- HandSignShortcut.m_aryHandRot = array;
- }
- [SerializeField]
- private CircleListSelectUI m_CircleList;
- private static HandSignShortcut.Serializer m_Config = new HandSignShortcut.Serializer();
- private static bool m_IsLoadedDefault = false;
- private Transform[] m_TransformFingerArray;
- private static readonly string[] strHandBoneNameL = new string[]
- {
- "Bip01 L Finger02",
- "Bip01 L Finger01",
- "Bip01 L Finger0",
- "Bip01 L Finger12",
- "Bip01 L Finger11",
- "Bip01 L Finger1",
- "Bip01 L Finger22",
- "Bip01 L Finger21",
- "Bip01 L Finger2",
- "Bip01 L Finger32",
- "Bip01 L Finger31",
- "Bip01 L Finger3",
- "Bip01 L Finger42",
- "Bip01 L Finger41",
- "Bip01 L Finger4"
- };
- private static readonly string[] strHandBoneNameR = new string[]
- {
- "Bip01 R Finger02",
- "Bip01 R Finger01",
- "Bip01 R Finger0",
- "Bip01 R Finger12",
- "Bip01 R Finger11",
- "Bip01 R Finger1",
- "Bip01 R Finger22",
- "Bip01 R Finger21",
- "Bip01 R Finger2",
- "Bip01 R Finger32",
- "Bip01 R Finger31",
- "Bip01 R Finger3",
- "Bip01 R Finger42",
- "Bip01 R Finger41",
- "Bip01 R Finger4"
- };
- private static readonly Quaternion[,] m_aryHandRot;
- private bool m_IsLeftHand;
- private AVRController m_Controller;
- private float[] m_fTargetRate = new float[5];
- private HandSignShortcut.MaidFingerData m_NowTargetFingerData;
- private bool m_IsQuitting;
- [Serializable]
- public class Serializer : ISerializationCallbackReceiver
- {
- public void OnBeforeSerialize()
- {
- this.m_nVersion = 1270;
- }
- public void OnAfterDeserialize()
- {
- }
- public bool Write()
- {
- string contents = JsonUtility.ToJson(this, true);
- string path = Path.GetFullPath(".\\") + "MaidFingerDataList.json";
- try
- {
- File.WriteAllText(path, contents);
- }
- catch
- {
- Debug.LogError("MaidFingerDataList.json の書き込みに失敗。");
- return false;
- }
- return true;
- }
- public HandSignShortcut.Serializer ReadAndSet()
- {
- string path = Path.GetFullPath(".\\") + "MaidFingerDataList.json";
- if (!File.Exists(path))
- {
- this.CreateDefaultData();
- this.Write();
- }
- string json;
- try
- {
- json = File.ReadAllText(path);
- }
- catch
- {
- Debug.LogError("MaidFingerDataList.json の読込に失敗。");
- return this;
- }
- return JsonUtility.FromJson<HandSignShortcut.Serializer>(json);
- }
- private void CreateDefaultData()
- {
- this.maidFingerDataList = new List<HandSignShortcut.MaidFingerData>();
- this.maidFingerDataList.Add(new HandSignShortcut.MaidFingerData("パー", new Quaternion[]
- {
- new Quaternion(1.467912E-08f, -6.667659E-09f, -0.04146498f, 0.99914f),
- new Quaternion(-1.327911E-08f, 7.618504E-09f, -0.006113322f, 0.9999813f),
- new Quaternion(0.3676831f, -0.3100421f, 0.1039245f, 0.8705646f),
- new Quaternion(-1.67299E-09f, 3.947202E-09f, -0.01237995f, 0.9999234f),
- new Quaternion(-1.825179E-09f, 3.798766E-09f, -0.01925841f, 0.9998146f),
- new Quaternion(0.0009547397f, -0.1243148f, 0.01200425f, 0.9921698f),
- new Quaternion(2.058673E-10f, -3.274742E-10f, -0.01237995f, 0.9999234f),
- new Quaternion(-3.4198E-09f, -1.477873E-08f, 0.01461135f, 0.9998932f),
- new Quaternion(-0.0006127622f, -0.003308513f, -0.01102171f, 0.9999336f),
- new Quaternion(-7.097293E-09f, -1.542719E-08f, -0.003629622f, 0.9999934f),
- new Quaternion(1.494679E-09f, -1.210031E-08f, -0.0007735032f, 0.9999997f),
- new Quaternion(-0.0008713655f, 0.08438367f, -0.010264f, 0.9963801f),
- new Quaternion(-1.4273E-09f, -7.799848E-09f, 0.02158942f, 0.9997669f),
- new Quaternion(2.313607E-09f, -7.748858E-10f, -0.01925842f, 0.9998146f),
- new Quaternion(-0.002091327f, 0.2073798f, 0.002760789f, 0.9782544f)
- }, new Quaternion[]
- {
- new Quaternion(-1.467912E-08f, 6.667659E-09f, -0.04146498f, 0.99914f),
- new Quaternion(1.327911E-08f, -7.618504E-09f, -0.006113322f, 0.9999813f),
- new Quaternion(-0.3676831f, 0.3100421f, 0.1039245f, 0.8705646f),
- new Quaternion(1.67299E-09f, -3.947202E-09f, -0.01237995f, 0.9999234f),
- new Quaternion(1.825179E-09f, -3.798766E-09f, -0.01925841f, 0.9998146f),
- new Quaternion(-0.0009547397f, 0.1243148f, 0.01200425f, 0.9921698f),
- new Quaternion(-2.058673E-10f, 3.274742E-10f, -0.01237995f, 0.9999234f),
- new Quaternion(3.4198E-09f, 1.477873E-08f, 0.01461135f, 0.9998932f),
- new Quaternion(0.0006127622f, 0.003308513f, -0.01102171f, 0.9999336f),
- new Quaternion(7.097293E-09f, 1.542719E-08f, -0.003629622f, 0.9999934f),
- new Quaternion(-1.494679E-09f, 1.210031E-08f, -0.0007735032f, 0.9999997f),
- new Quaternion(0.0008713655f, -0.08438367f, -0.010264f, 0.9963801f),
- new Quaternion(1.4273E-09f, 7.799848E-09f, 0.02158942f, 0.9997669f),
- new Quaternion(-2.313607E-09f, 7.748858E-10f, -0.01925842f, 0.9998146f),
- new Quaternion(0.002091327f, -0.2073798f, 0.002760789f, 0.9782544f)
- }));
- this.maidFingerDataList.Add(new HandSignShortcut.MaidFingerData("チョキ", new Quaternion[]
- {
- new Quaternion(6.932151E-09f, -2.730647E-09f, -0.3665012f, 0.9304176f),
- new Quaternion(-1.952852E-08f, -2.699741E-08f, -0.1618618f, 0.9868135f),
- new Quaternion(0.7708589f, -0.2672266f, 0.03713044f, 0.577051f),
- new Quaternion(-1.692222E-09f, 3.961451E-09f, -0.008243912f, 0.999966f),
- new Quaternion(-1.793476E-09f, 3.862969E-09f, -0.01279752f, 0.9999181f),
- new Quaternion(0.0005797216f, -0.1249451f, 0.01676745f, 0.9920218f),
- new Quaternion(1.370887E-10f, -2.180677E-10f, -0.008243906f, 0.999966f),
- new Quaternion(-3.352409E-09f, -1.485988E-08f, 0.02107204f, 0.999778f),
- new Quaternion(-0.0005442168f, -0.003198181f, -0.006260789f, 0.9999751f),
- new Quaternion(-2.784401E-08f, 1.160059E-08f, -0.5224781f, 0.8526527f),
- new Quaternion(1.204624E-08f, 8.771128E-09f, -0.8084095f, 0.5886205f),
- new Quaternion(-0.04368013f, 0.00799644f, -0.6048046f, 0.7951349f),
- new Quaternion(-3.325827E-08f, 2.027481E-09f, -0.5008098f, 0.8655574f),
- new Quaternion(4.887593E-09f, -3.295959E-08f, -0.819152f, 0.5735765f),
- new Quaternion(-0.09800828f, 0.05454942f, -0.591058f, 0.7987923f)
- }, new Quaternion[]
- {
- new Quaternion(-6.932151E-09f, 2.730647E-09f, -0.3665012f, 0.9304176f),
- new Quaternion(1.952852E-08f, 2.699741E-08f, -0.1618618f, 0.9868135f),
- new Quaternion(-0.7708589f, 0.2672266f, 0.03713044f, 0.577051f),
- new Quaternion(1.692222E-09f, -3.961451E-09f, -0.008243912f, 0.999966f),
- new Quaternion(1.793476E-09f, -3.862969E-09f, -0.01279752f, 0.9999181f),
- new Quaternion(-0.0005797216f, 0.1249451f, 0.01676745f, 0.9920218f),
- new Quaternion(-1.370887E-10f, 2.180677E-10f, -0.008243906f, 0.999966f),
- new Quaternion(3.352409E-09f, 1.485988E-08f, 0.02107204f, 0.999778f),
- new Quaternion(0.0005442168f, 0.003198181f, -0.006260789f, 0.9999751f),
- new Quaternion(2.784401E-08f, -1.160059E-08f, -0.5224781f, 0.8526527f),
- new Quaternion(-1.204624E-08f, -8.771128E-09f, -0.8084095f, 0.5886205f),
- new Quaternion(0.04368013f, -0.00799644f, -0.6048046f, 0.7951349f),
- new Quaternion(3.325827E-08f, -2.027481E-09f, -0.5008098f, 0.8655574f),
- new Quaternion(-4.887593E-09f, 3.295959E-08f, -0.819152f, 0.5735765f),
- new Quaternion(0.09800828f, -0.05454942f, -0.591058f, 0.7987923f)
- }));
- this.maidFingerDataList.Add(new HandSignShortcut.MaidFingerData("グー", new Quaternion[]
- {
- new Quaternion(6.932151E-09f, -2.730646E-09f, -0.3665012f, 0.9304176f),
- new Quaternion(-1.952852E-08f, -2.699741E-08f, -0.1618618f, 0.9868135f),
- new Quaternion(0.7708589f, -0.2672266f, 0.03713043f, 0.577051f),
- new Quaternion(9.870518E-10f, 1.579613E-09f, -0.5299194f, 0.8480481f),
- new Quaternion(-5.034789E-09f, -5.799266E-09f, -0.819152f, 0.5735765f),
- new Quaternion(0.04780529f, -0.01974053f, -0.5880075f, 0.8072002f),
- new Quaternion(8.812074E-09f, -1.401741E-08f, -0.5299194f, 0.8480481f),
- new Quaternion(-1.043265E-08f, 1.477225E-09f, -0.7992581f, 0.6009881f),
- new Quaternion(-0.009090314f, -0.01649067f, -0.6061373f, 0.7951371f),
- new Quaternion(-2.784401E-08f, 1.160059E-08f, -0.5224781f, 0.8526527f),
- new Quaternion(1.204624E-08f, 8.771128E-09f, -0.8084095f, 0.5886205f),
- new Quaternion(-0.04368013f, 0.00799644f, -0.6048046f, 0.7951349f),
- new Quaternion(-3.325827E-08f, 2.027481E-09f, -0.5008098f, 0.8655574f),
- new Quaternion(4.887593E-09f, -3.295959E-08f, -0.819152f, 0.5735765f),
- new Quaternion(-0.09800828f, 0.05454942f, -0.591058f, 0.7987923f)
- }, new Quaternion[]
- {
- new Quaternion(-6.932151E-09f, 2.730646E-09f, -0.3665012f, 0.9304176f),
- new Quaternion(1.952852E-08f, 2.699741E-08f, -0.1618618f, 0.9868135f),
- new Quaternion(-0.7708589f, 0.2672266f, 0.03713043f, 0.577051f),
- new Quaternion(-9.870518E-10f, -1.579613E-09f, -0.5299194f, 0.8480481f),
- new Quaternion(5.034789E-09f, 5.799266E-09f, -0.819152f, 0.5735765f),
- new Quaternion(-0.04780529f, 0.01974053f, -0.5880075f, 0.8072002f),
- new Quaternion(-8.812074E-09f, 1.401741E-08f, -0.5299194f, 0.8480481f),
- new Quaternion(1.043265E-08f, -1.477225E-09f, -0.7992581f, 0.6009881f),
- new Quaternion(0.009090314f, 0.01649067f, -0.6061373f, 0.7951371f),
- new Quaternion(2.784401E-08f, -1.160059E-08f, -0.5224781f, 0.8526527f),
- new Quaternion(-1.204624E-08f, -8.771128E-09f, -0.8084095f, 0.5886205f),
- new Quaternion(0.04368013f, -0.00799644f, -0.6048046f, 0.7951349f),
- new Quaternion(3.325827E-08f, -2.027481E-09f, -0.5008098f, 0.8655574f),
- new Quaternion(-4.887593E-09f, 3.295959E-08f, -0.819152f, 0.5735765f),
- new Quaternion(0.09800828f, -0.05454942f, -0.591058f, 0.7987923f)
- }));
- this.maidFingerDataList.Add(new HandSignShortcut.MaidFingerData("指差し", new Quaternion[]
- {
- new Quaternion(6.932151E-09f, -2.730647E-09f, -0.3665012f, 0.9304176f),
- new Quaternion(-1.952852E-08f, -2.699741E-08f, -0.1618618f, 0.9868135f),
- new Quaternion(0.7708589f, -0.2672266f, 0.03713044f, 0.577051f),
- new Quaternion(-1.730466E-09f, 3.989648E-09f, 1.928734E-09f, 1f),
- new Quaternion(-1.730466E-09f, 3.989648E-09f, 1.928734E-09f, 1f),
- new Quaternion(-0.0001667258f, -0.1261909f, 0.02624661f, 0.9916587f),
- new Quaternion(8.812074E-09f, -1.401741E-08f, -0.5299194f, 0.8480481f),
- new Quaternion(-1.043265E-08f, 1.477225E-09f, -0.7992581f, 0.6009881f),
- new Quaternion(-0.009090314f, -0.01649067f, -0.6061373f, 0.7951371f),
- new Quaternion(-2.784401E-08f, 1.160059E-08f, -0.5224781f, 0.8526527f),
- new Quaternion(1.204624E-08f, 8.771128E-09f, -0.8084095f, 0.5886205f),
- new Quaternion(-0.04368013f, 0.00799644f, -0.6048046f, 0.7951349f),
- new Quaternion(-3.325827E-08f, 2.027481E-09f, -0.5008098f, 0.8655574f),
- new Quaternion(4.887593E-09f, -3.295959E-08f, -0.819152f, 0.5735765f),
- new Quaternion(-0.09800828f, 0.05454942f, -0.591058f, 0.7987923f)
- }, new Quaternion[]
- {
- new Quaternion(-6.932151E-09f, 2.730647E-09f, -0.3665012f, 0.9304176f),
- new Quaternion(1.952852E-08f, 2.699741E-08f, -0.1618618f, 0.9868135f),
- new Quaternion(-0.7708589f, 0.2672266f, 0.03713044f, 0.577051f),
- new Quaternion(1.730466E-09f, -3.989648E-09f, 1.928734E-09f, 1f),
- new Quaternion(1.730466E-09f, -3.989648E-09f, 1.928734E-09f, 1f),
- new Quaternion(0.0001667258f, 0.1261909f, 0.02624661f, 0.9916587f),
- new Quaternion(-8.812074E-09f, 1.401741E-08f, -0.5299194f, 0.8480481f),
- new Quaternion(1.043265E-08f, -1.477225E-09f, -0.7992581f, 0.6009881f),
- new Quaternion(0.009090314f, 0.01649067f, -0.6061373f, 0.7951371f),
- new Quaternion(2.784401E-08f, -1.160059E-08f, -0.5224781f, 0.8526527f),
- new Quaternion(-1.204624E-08f, -8.771128E-09f, -0.8084095f, 0.5886205f),
- new Quaternion(0.04368013f, -0.00799644f, -0.6048046f, 0.7951349f),
- new Quaternion(3.325827E-08f, -2.027481E-09f, -0.5008098f, 0.8655574f),
- new Quaternion(-4.887593E-09f, 3.295959E-08f, -0.819152f, 0.5735765f),
- new Quaternion(0.09800828f, -0.05454942f, -0.591058f, 0.7987923f)
- }));
- this.maidFingerDataList.Add(new HandSignShortcut.MaidFingerData("サムズアップ", new Quaternion[]
- {
- new Quaternion(1.472499E-08f, -1.164853E-08f, -0.0242227f, 0.9997066f),
- new Quaternion(2.864741E-09f, 1.253174E-08f, 0.02121386f, 0.999775f),
- new Quaternion(0.3078066f, -0.4021123f, 0.08737727f, 0.8578613f),
- new Quaternion(9.870518E-10f, 1.579613E-09f, -0.5299194f, 0.8480481f),
- new Quaternion(-5.034789E-09f, -5.799266E-09f, -0.819152f, 0.5735765f),
- new Quaternion(0.04780529f, -0.01974053f, -0.5880075f, 0.8072002f),
- new Quaternion(8.812074E-09f, -1.401741E-08f, -0.5299194f, 0.8480481f),
- new Quaternion(-1.043265E-08f, 1.477225E-09f, -0.7992581f, 0.6009881f),
- new Quaternion(-0.009090314f, -0.01649067f, -0.6061373f, 0.7951371f),
- new Quaternion(-2.784401E-08f, 1.160059E-08f, -0.5224781f, 0.8526527f),
- new Quaternion(1.204624E-08f, 8.771129E-09f, -0.8084095f, 0.5886205f),
- new Quaternion(-0.04368013f, 0.007996442f, -0.6048046f, 0.7951349f),
- new Quaternion(-3.325827E-08f, 2.027481E-09f, -0.5008098f, 0.8655574f),
- new Quaternion(4.887593E-09f, -3.295959E-08f, -0.819152f, 0.5735765f),
- new Quaternion(-0.09800828f, 0.05454941f, -0.591058f, 0.7987923f)
- }, new Quaternion[]
- {
- new Quaternion(-1.472499E-08f, 1.164853E-08f, -0.0242227f, 0.9997066f),
- new Quaternion(-2.864741E-09f, -1.253174E-08f, 0.02121386f, 0.999775f),
- new Quaternion(-0.3078066f, 0.4021123f, 0.08737727f, 0.8578613f),
- new Quaternion(-9.870518E-10f, -1.579613E-09f, -0.5299194f, 0.8480481f),
- new Quaternion(5.034789E-09f, 5.799266E-09f, -0.819152f, 0.5735765f),
- new Quaternion(-0.04780529f, 0.01974053f, -0.5880075f, 0.8072002f),
- new Quaternion(-8.812074E-09f, 1.401741E-08f, -0.5299194f, 0.8480481f),
- new Quaternion(1.043265E-08f, -1.477225E-09f, -0.7992581f, 0.6009881f),
- new Quaternion(0.009090314f, 0.01649067f, -0.6061373f, 0.7951371f),
- new Quaternion(2.784401E-08f, -1.160059E-08f, -0.5224781f, 0.8526527f),
- new Quaternion(-1.204624E-08f, -8.771129E-09f, -0.8084095f, 0.5886205f),
- new Quaternion(0.04368013f, -0.007996442f, -0.6048046f, 0.7951349f),
- new Quaternion(3.325827E-08f, -2.027481E-09f, -0.5008098f, 0.8655574f),
- new Quaternion(-4.887593E-09f, 3.295959E-08f, -0.819152f, 0.5735765f),
- new Quaternion(0.09800828f, -0.05454941f, -0.591058f, 0.7987923f)
- }));
- this.maidFingerDataList.Add(new HandSignShortcut.MaidFingerData("電話サイン", new Quaternion[]
- {
- new Quaternion(1.479486E-08f, -8.781127E-09f, -0.02975121f, 0.9995574f),
- new Quaternion(-6.50015E-09f, 1.013705E-08f, 0.007386392f, 0.9999728f),
- new Quaternion(0.3369619f, -0.3488706f, 0.09791746f, 0.8689983f),
- new Quaternion(9.870518E-10f, 1.579613E-09f, -0.5299194f, 0.8480481f),
- new Quaternion(-5.034789E-09f, -5.799266E-09f, -0.819152f, 0.5735765f),
- new Quaternion(0.04780529f, -0.01974053f, -0.5880075f, 0.8072002f),
- new Quaternion(8.812074E-09f, -1.401741E-08f, -0.5299194f, 0.8480481f),
- new Quaternion(-1.043265E-08f, 1.477225E-09f, -0.7992581f, 0.6009881f),
- new Quaternion(-0.009090314f, -0.01649067f, -0.6061373f, 0.7951371f),
- new Quaternion(-2.784401E-08f, 1.160059E-08f, -0.5224781f, 0.8526527f),
- new Quaternion(1.204624E-08f, 8.771129E-09f, -0.8084095f, 0.5886205f),
- new Quaternion(-0.04368013f, 0.007996442f, -0.6048046f, 0.7951349f),
- new Quaternion(-8.023863E-10f, -9.682119E-09f, 0.03396483f, 0.999423f),
- new Quaternion(1.91605E-09f, -7.848716E-18f, -3.011494E-09f, 1f),
- new Quaternion(-0.0007191578f, 0.2631239f, 0.01688699f, 0.964614f)
- }, new Quaternion[]
- {
- new Quaternion(-1.479486E-08f, 8.781127E-09f, -0.02975121f, 0.9995574f),
- new Quaternion(6.50015E-09f, -1.013705E-08f, 0.007386392f, 0.9999728f),
- new Quaternion(-0.3369619f, 0.3488706f, 0.09791746f, 0.8689983f),
- new Quaternion(-9.870518E-10f, -1.579613E-09f, -0.5299194f, 0.8480481f),
- new Quaternion(5.034789E-09f, 5.799266E-09f, -0.819152f, 0.5735765f),
- new Quaternion(-0.04780529f, 0.01974053f, -0.5880075f, 0.8072002f),
- new Quaternion(-8.812074E-09f, 1.401741E-08f, -0.5299194f, 0.8480481f),
- new Quaternion(1.043265E-08f, -1.477225E-09f, -0.7992581f, 0.6009881f),
- new Quaternion(0.009090314f, 0.01649067f, -0.6061373f, 0.7951371f),
- new Quaternion(2.784401E-08f, -1.160059E-08f, -0.5224781f, 0.8526527f),
- new Quaternion(-1.204624E-08f, -8.771129E-09f, -0.8084095f, 0.5886205f),
- new Quaternion(0.04368013f, -0.007996442f, -0.6048046f, 0.7951349f),
- new Quaternion(8.023863E-10f, 9.682119E-09f, 0.03396483f, 0.999423f),
- new Quaternion(-1.91605E-09f, 7.848716E-18f, -3.011494E-09f, 1f),
- new Quaternion(0.0007191578f, -0.2631239f, 0.01688699f, 0.964614f)
- }));
- this.maidFingerDataList.Add(new HandSignShortcut.MaidFingerData("狐コンコン", new Quaternion[]
- {
- new Quaternion(0f, 0f, 0f, 1f),
- new Quaternion(-1.192093E-07f, 1.788139E-07f, -0.1335995f, 0.9910354f),
- new Quaternion(0.8534603f, -0.2756786f, -0.1541951f, 0.4145248f),
- new Quaternion(-1.490116E-09f, 4.470349E-09f, 2.048909E-09f, 1f),
- new Quaternion(-1.490116E-09f, 4.470349E-09f, 2.048909E-09f, 1f),
- new Quaternion(0.0003543059f, -0.1458506f, 0.02624475f, 0.9889584f),
- new Quaternion(1.291415E-08f, 1.295253E-07f, 0.01154917f, 0.9999333f),
- new Quaternion(1.487787E-07f, -4.237517E-08f, -0.5324296f, 0.8464743f),
- new Quaternion(-0.01350924f, -0.01311721f, -0.3475225f, 0.9374825f),
- new Quaternion(7.117304E-07f, -7.226793E-07f, -0.00915247f, 0.9999582f),
- new Quaternion(2.980232E-08f, 1.061708E-06f, -0.4032317f, 0.9150979f),
- new Quaternion(-0.1480011f, 0.04210641f, -0.4022999f, 0.9024841f),
- new Quaternion(-7.434641E-10f, -8.971124E-09f, 0.03396483f, 0.999423f),
- new Quaternion(2.048909E-09f, -8.673617E-18f, -3.166497E-09f, 1f),
- new Quaternion(-0.0003274615f, 0.2406898f, 0.01689912f, 0.9704549f)
- }, new Quaternion[]
- {
- new Quaternion(0f, 0f, 0f, 1f),
- new Quaternion(1.192093E-07f, -1.788139E-07f, -0.1335995f, 0.9910354f),
- new Quaternion(-0.8534603f, 0.2756786f, -0.1541951f, 0.4145248f),
- new Quaternion(1.490116E-09f, -4.470349E-09f, 2.048909E-09f, 1f),
- new Quaternion(1.490116E-09f, -4.470349E-09f, 2.048909E-09f, 1f),
- new Quaternion(-0.0003543059f, 0.1458506f, 0.02624475f, 0.9889584f),
- new Quaternion(-1.291415E-08f, -1.295253E-07f, 0.01154917f, 0.9999333f),
- new Quaternion(-1.487787E-07f, 4.237517E-08f, -0.5324296f, 0.8464743f),
- new Quaternion(0.01350924f, 0.01311721f, -0.3475225f, 0.9374825f),
- new Quaternion(-7.117304E-07f, 7.226793E-07f, -0.00915247f, 0.9999582f),
- new Quaternion(-2.980232E-08f, -1.061708E-06f, -0.4032317f, 0.9150979f),
- new Quaternion(0.1480011f, -0.04210641f, -0.4022999f, 0.9024841f),
- new Quaternion(7.434641E-10f, 8.971124E-09f, 0.03396483f, 0.999423f),
- new Quaternion(-2.048909E-09f, 8.673617E-18f, -3.166497E-09f, 1f),
- new Quaternion(0.0003274615f, -0.2406898f, 0.01689912f, 0.9704549f)
- }));
- }
- public List<HandSignShortcut.MaidFingerData> maidFingerDataList
- {
- get
- {
- return this.MaidFingerDataList;
- }
- set
- {
- this.MaidFingerDataList = value;
- }
- }
- private const string CONF_NAME = "MaidFingerDataList.json";
- [SerializeField]
- private int m_nVersion = 1270;
- [SerializeField]
- private List<HandSignShortcut.MaidFingerData> MaidFingerDataList = new List<HandSignShortcut.MaidFingerData>();
- }
- [Serializable]
- public class MaidFingerData
- {
- public MaidFingerData(string name, Quaternion[] leftFingerData, Quaternion[] rightFingerData)
- {
- if (leftFingerData.Length != 15)
- {
- string message = "[HandSignShortcut.MaidFingerData] 項目「" + name + "」の左手指データ数が不正です";
- Debug.LogError(message);
- NDebug.Assert(message, false);
- }
- if (rightFingerData.Length != 15)
- {
- string message2 = "[HandSignShortcut.MaidFingerData] 項目「" + name + "」の右手指データ数が不正です";
- Debug.LogError(message2);
- NDebug.Assert(message2, false);
- }
- this.name = name;
- this.leftFingerData = leftFingerData;
- this.rightFingerData = rightFingerData;
- }
- public MaidFingerData()
- {
- }
- public string name
- {
- get
- {
- return this.m_Name;
- }
- set
- {
- this.m_Name = value;
- }
- }
- public Quaternion[] leftFingerData
- {
- get
- {
- return this.m_LeftFingerRotArray;
- }
- set
- {
- this.m_LeftFingerRotArray = value;
- }
- }
- public Quaternion[] rightFingerData
- {
- get
- {
- return this.m_RightFingerRotArray;
- }
- set
- {
- this.m_RightFingerRotArray = value;
- }
- }
- public void GetMaidFingerData(Maid maid)
- {
- this.leftFingerData = new Quaternion[HandSignShortcut.strHandBoneNameL.Length];
- this.rightFingerData = new Quaternion[HandSignShortcut.strHandBoneNameR.Length];
- Transform t = CMT.SearchObjName(maid.body0.m_Bones.transform, "Bip01 L Hand", true);
- string[] array = HandSignShortcut.strHandBoneNameL;
- for (int i = 0; i < array.Length; i++)
- {
- this.leftFingerData[i] = CMT.SearchObjName(t, array[i], true).localRotation;
- }
- t = CMT.SearchObjName(maid.body0.m_Bones.transform, "Bip01 R Hand", true);
- array = HandSignShortcut.strHandBoneNameR;
- for (int j = 0; j < array.Length; j++)
- {
- this.rightFingerData[j] = CMT.SearchObjName(t, array[j], true).localRotation;
- }
- }
- public void ApplyMaidFingerData(Maid maid)
- {
- Transform transform = CMT.SearchObjName(maid.body0.m_Bones.transform, "Bip01 L Hand", true);
- string[] array = HandSignShortcut.strHandBoneNameL;
- for (int i = 0; i < array.Length; i++)
- {
- CMT.SearchObjName(maid.body0.m_Bones.transform, array[i], true).localRotation = this.leftFingerData[i];
- }
- transform = CMT.SearchObjName(maid.body0.m_Bones.transform, "Bip01 R Hand", true);
- array = HandSignShortcut.strHandBoneNameR;
- for (int j = 0; j < array.Length; j++)
- {
- CMT.SearchObjName(maid.body0.m_Bones.transform, array[j], true).localRotation = this.rightFingerData[j];
- }
- }
- public static HandSignShortcut.MaidFingerData Get(string name)
- {
- HandSignShortcut.MaidFingerData.CreateDataDic();
- HandSignShortcut.MaidFingerData result;
- HandSignShortcut.MaidFingerData.m_DataDic.TryGetValue(name, out result);
- return result;
- }
- public static void Add(HandSignShortcut.MaidFingerData data)
- {
- HandSignShortcut.MaidFingerData.CreateDataDic();
- if (data == null)
- {
- Debug.Log("[HandSignShortcut.MaidFingerData] 登録するデータが null でした");
- return;
- }
- if (HandSignShortcut.MaidFingerData.m_DataDic.ContainsKey(data.name))
- {
- Debug.Log("[HandSignShortcut.MaidFingerData] 既に「" + data.name + "」が登録されています");
- return;
- }
- HandSignShortcut.MaidFingerData.m_DataDic.Add(data.name, data);
- HandSignShortcut.config.maidFingerDataList.Add(data);
- }
- private static void CreateDataDic()
- {
- if (HandSignShortcut.MaidFingerData.m_DataDic != null)
- {
- return;
- }
- HandSignShortcut.MaidFingerData.m_DataDic = new Dictionary<string, HandSignShortcut.MaidFingerData>();
- foreach (HandSignShortcut.MaidFingerData maidFingerData in HandSignShortcut.config.maidFingerDataList)
- {
- HandSignShortcut.MaidFingerData.m_DataDic.Add(maidFingerData.name, maidFingerData);
- }
- }
- [SerializeField]
- private string m_Name;
- [SerializeField]
- private Quaternion[] m_LeftFingerRotArray;
- [SerializeField]
- private Quaternion[] m_RightFingerRotArray;
- private static Dictionary<string, HandSignShortcut.MaidFingerData> m_DataDic;
- }
- private class ItemData : MonoBehaviour
- {
- public HandSignShortcut.MaidFingerData data
- {
- get
- {
- return this.m_Data;
- }
- set
- {
- this.m_Data = value;
- this.UpdateText();
- }
- }
- public Text text { get; set; }
- private Localize localize { get; set; }
- public void SetLocalizeTerm(string key)
- {
- Localize localize2;
- if (this.localize == null)
- {
- Localize localize = this.text.gameObject.AddComponent<Localize>();
- this.localize = localize;
- localize2 = localize;
- }
- else
- {
- localize2 = this.localize;
- }
- Utility.SetLocalizeTerm(localize2, key);
- }
- private void UpdateText()
- {
- if (this.text == null)
- {
- return;
- }
- if (this.m_Data == null)
- {
- this.text.text = "自由モード";
- this.SetLocalizeTerm("VAS/自由モード");
- }
- else
- {
- this.text.text = this.m_Data.name;
- this.SetLocalizeTerm("VAS/" + this.m_Data.name);
- }
- }
- private HandSignShortcut.MaidFingerData m_Data;
- }
- private enum Finger
- {
- Thumb,
- Index,
- Middle,
- Ring,
- Little,
- Max
- }
- }
|