/// <summary>
 /// モーションファイル(JSON)データ作成メソッド
 /// </summary>
 /// <returns>JSONモーションファイルデータ</returns>
 public string MotionJSONDataCreate(string name)
 {
     // 各種設定
     PLEN.JSON.Main jsonMain = new PLEN.JSON.Main();
     jsonMain.name = name;
     jsonMain.slot = slotNum;
     foreach (Frame frame in frameList)
     {
         jsonMain.frames.Add(frame.FrameJSONDataCreate());
     }
     // JSONデータを返す(string)
     return(JsonMapper.ToJson(jsonMain));
 }
    /// <summary>
    /// モーションファイル(JSON)読み込みメソッド
    /// </summary>
    /// <returns><c>true</c> : 読み込み成功 <c>false</c> 読み込み失敗</returns>
    /// <param name="jsonStr">JSONデータの文字列</param>
    public bool MotionJSONDataRead(string jsonStr)
    {
        try {
            // JSONファイル読み込み
            PLEN.JSON.Main jsonMain = LitJson.JsonMapper.ToObject <PLEN.JSON.Main> (jsonStr);
            // 読み込み失敗
            if (jsonMain == null)
            {
                return(false);
            }

            /*-- ここから読み込んだJSONファイルをMotionDataに変換 --*/
            // 全フレームを初期化
            frameList.Clear();
            // JSONファイルに記述されていたフレーム数ループ
            foreach (PLEN.JSON.Frame jsonFrame in jsonMain.frames)
            {
                // ベースフレームは初期状態フレームを使用(その後読み込んだangle値で回転させる)
                Frame frame = new Frame(defaultFrame);
                frame.transitionTime = jsonFrame.transition_time_ms;
                // JSONファイルから読み込んだフレームから各関節の情報を読み取り,設定を行う
                foreach (PLEN.JSON.Output output in jsonFrame.outputs)
                {
                    PLEN.JointName parseJointName;
                    float          angle;
                    try {
                        // JSONファイル中のdevice情報をJointName型に変換
                        parseJointName = (PLEN.JointName)Enum.Parse(typeof(PLEN.JointName), output.device);
                        // 関節角度読み込み(左半身は回転量を反転)
                        angle = (float)output.value / 10;
                        // 読み込んだ角度情報をもとに関節を回転
                        frame.JointRotate(parseJointName, angle, true);
                    } catch (Exception) {
                        return(false);
                    }
                }
                // 読み込みが完了したフレームをリストに追加
                frameList.Add(frame);
            }
            // スロット番号更新
            objects.menuController.InputFieldSlotUpdate(jsonMain.slot);
            return(true);
        }catch (Exception ex) {
            Debug.LogError(ex.Message);
            return(false);
        }
    }
 /// <summary>
 /// モーションファイル(JSON)データ作成メソッド
 /// </summary>
 /// <returns>JSONモーションファイルデータ</returns>
 public string MotionJSONDataCreate(string name)
 {
     // 各種設定
     PLEN.JSON.Main jsonMain = new PLEN.JSON.Main ();
     jsonMain.name = name;
     jsonMain.slot = slotNum;
     foreach (Frame frame in frameList) {
         jsonMain.frames.Add(frame.FrameJSONDataCreate());
     }
     // JSONデータを返す(string)
     return JsonMapper.ToJson (jsonMain);
 }