Esempio n. 1
0
        /// <summary>
        ///     モーションをファイルから追加する
        /// </summary>
        /// <param name="filePath">ファイルパス</param>
        /// <param name="ignoreParent">すべての親を無視するか否か</param>
        /// <returns>モーションのindex</returns>
        public IMotionProvider AddMotionFromFile(string filePath, bool ignoreParent)
        {
            // モーションプロバイダを作成する。ファイルの拡張子に応じて適切なクラスを割り当てる
            IMotionProvider motion;
            var             extension = System.IO.Path.GetExtension(filePath);

            if (String.Compare(extension, ".vmd", true) == 0)
            {
                motion = new MMDMotion(filePath, ignoreParent);
            }
            else if (String.Compare(extension, ".vme", true) == 0)
            {
                motion = new MMDMotionForVME(filePath, ignoreParent);
            }
            else
            {
                throw new Exception("ファイルが不適切です!");
            }

            motion.AttachMotion(skinningProvider.Bone);
            motion.MotionFinished += motion_MotionFinished;
            SubscribedMotionMap.Add(new KeyValuePair <string, IMotionProvider>(filePath, motion));
            if (MotionListUpdated != null)
            {
                MotionListUpdated(this, new EventArgs());
            }
            return(motion);
        }
Esempio n. 2
0
        /// <summary>
        ///     Motion to add from file
        /// </summary>
        /// <param name="filePath">File path</param>
        /// <param name="ignoreParent">Whether or not to ignore any parent</param>
        /// <returns>Motion index</returns>
        public IMotionProvider AddMotionFromFile(string filePath, bool ignoreParent)
        {
            // To create a motion provider. Assign the appropriate class in accordance with the extension of the file
            IMotionProvider motion;
            var             extension = Path.GetExtension(filePath);

            if (String.Compare(extension, ".vmd", true) == 0)
            {
                motion = new MMDMotion(filePath, ignoreParent);
            }
            else if (String.Compare(extension, ".vme", true) == 0)
            {
                motion = new MMDMotionForVME(filePath, ignoreParent);
            }
            else
            {
                throw new Exception("File is incorrect!");
            }

            motion.AttachMotion(this.skinningProvider.Bone);
            motion.MotionFinished += motion_MotionFinished;
            this.SubscribedMotionMap.Add(new KeyValuePair <string, IMotionProvider>(filePath, motion));
            if (MotionListUpdated != null)
            {
                MotionListUpdated(this, new EventArgs());
            }
            return(motion);
        }