/// <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); }