/// <summary> /// アニメーションクリップを作成する /// </summary> /// <param name='assign_pmd'>使用するPMDのGameObject</param> /// <param name='create_asset'>Prefab外に作成するか(true:Prefab外に作成, false:Prefab内蔵)</param> /// <param name='interpolationQuality'>補完曲線品質</param> public void CreateAnimationClip(GameObject assign_pmd, bool create_asset, int interpolationQuality) { //VMDファイルのインポート if (null == format_) { //まだ読み込んでいないなら読むこむ format_ = VMDLoaderScript.Import(file_path_); //VMD読み込み header_ = format_.header; } //アニメーションクリップの作成 AnimationClip animation_clip = VMDConverter.CreateAnimationClip(format_, assign_pmd, interpolationQuality); if (animation_clip == null) { throw new System.Exception("Cannot create AnimationClip"); } // ここで登録 //anim.AddClip(animation_clip, animation_clip.name); if (create_asset) { // フォルダを生成してアニメーションのファイルを書き出す string prefab_folder = AssetDatabase.GetAssetPath(assign_pmd); prefab_folder = Path.GetDirectoryName(prefab_folder); if (!Directory.Exists(prefab_folder + "/Animation")) { AssetDatabase.CreateFolder(prefab_folder, "Animation"); } AssetDatabase.CreateAsset(animation_clip, prefab_folder + "/Animation/" + animation_clip.name + ".anim"); } else { // こちらはPrefabの中に入れるタイプ AssetDatabase.AddObjectToAsset(animation_clip, AssetDatabase.GetAssetPath(assign_pmd)); } AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(animation_clip)); }
/// <summary> /// AnimationClipを作成する /// </summary> /// <param name='name'>内部形式データ</param> /// <param name='assign_pmd'>使用するPMDのGameObject</param> /// <param name='interpolationQuality'>補完曲線品質</param> public static AnimationClip CreateAnimationClip(VMDFormat format, GameObject assign_pmd, int interpolationQuality) { VMDConverter converter = new VMDConverter(); return(converter.CreateAnimationClip_(format, assign_pmd, interpolationQuality)); }