コード例 #1
0
ファイル: MotionAgent.cs プロジェクト: Defair/UnityEffectTest
        /// <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));
        }
コード例 #2
0
        /// <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));
        }