Exemplo n.º 1
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name='file'>読み込むファイルパス</param>
 public MotionAgent(string file_path)
 {
     if (string.IsNullOrEmpty(file_path))
     {
         throw new System.ArgumentException();
     }
     file_path_ = file_path;
     header_    = VMDLoaderScript.GetHeader(file_path_);          //VMD読み込み
     format_    = null;
 }
Exemplo n.º 2
0
        /// <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));
        }
Exemplo n.º 3
0
    void OnGUI()
    {
        const int height = 20;

        pmdPrefab = EditorGUI.ObjectField(
            new Rect(0, 0, position.width-16, height), "PMD Prefab" ,pmdPrefab, typeof(GameObject)) as GameObject;
        vmdFile = EditorGUI.ObjectField(
            new Rect(0, height+2, position.width-16, height), "VMD File", vmdFile, typeof(Object));

        if (pmdPrefab != null && vmdFile != null) {
            if (GUI.Button(new Rect(0, height*2+4, position.width/2, 16), "Convert")) {
                VMDLoaderScript scr = new VMDLoaderScript(vmdFile, pmdPrefab);
                vmdFile = null;
            }
        } else {
            if (pmdPrefab == null)
                EditorGUI.LabelField(new Rect(0, height*2+4, position.width, height), "Missing", "Select PMD Prefab");
            else if (vmdFile == null)
                EditorGUI.LabelField(new Rect(0, height*2+4, position.width, height), "Missing", "Select VMD File");
            else
                EditorGUI.LabelField(new Rect(0, height*2+4, position.width, height), "Missing", "Select PMD and VMD");
        }
    }
Exemplo n.º 4
0
    /// <summary>
    /// VMDファイルのインポート
    /// </summary>
    /// <param name='file_path'>VMDファイルのパス</param>
    /// <returns>内部形式データ</returns>
    public static VMDFormat Import(string file_path)
    {
        VMDLoaderScript loader = new VMDLoaderScript();

        return(loader.Import_(file_path));
    }
Exemplo n.º 5
0
    /// <summary>
    /// VMDファイルのヘッダー取得
    /// </summary>
    /// <param name='file_path'>VMDファイルのパス</param>
    /// <returns>ヘッダー</returns>
    public static VMDFormat.Header GetHeader(string file_path)
    {
        VMDLoaderScript loader = new VMDLoaderScript();

        return(loader.GetHeader_(file_path));
    }
Exemplo n.º 6
0
	/// <summary>
	/// VMDファイルのインポート
	/// </summary>
	/// <param name='file_path'>VMDファイルのパス</param>
	/// <returns>内部形式データ</returns>
	public static VMDFormat Import(string file_path) {
		VMDLoaderScript loader = new VMDLoaderScript();
		return loader.Import_(file_path);
	}
Exemplo n.º 7
0
	/// <summary>
	/// VMDファイルのヘッダー取得
	/// </summary>
	/// <param name='file_path'>VMDファイルのパス</param>
	/// <returns>ヘッダー</returns>
	public static VMDFormat.Header GetHeader(string file_path) {
		VMDLoaderScript loader = new VMDLoaderScript();
		return loader.GetHeader_(file_path);
	}