/// <param name="fileName">ストリームを表すファイル名。マップへの登録用。</param> /// <param name="stream">ストリーム。</param> /// <param name="ignoreParent">すべての親を無視するか否か</param> /// <returns>モーションプロバイダ</returns> public モーション ストリームからモーションを追加する(string fileName, Stream stream, bool ignoreParent) { // MMDモーションを生成 モーション motion = new MMDモーション(stream, ignoreParent); // 終了イベントを登録 motion.モーションが終了した += motion_MotionFinished; // モーションリストに追加。 モーションリスト.Add(new KeyValuePair <string, モーション>(fileName, motion)); モーションリストが更新された?.Invoke(this, new EventArgs()); return(motion); }
/// <summary> /// モーションをファイルから生成して返す。 /// 生成されたモーションは、このインスタンスの <see cref="モーションリスト"/> に追加される。 /// </summary> public モーション ファイルからモーションを生成し追加する(string ファイルパス, bool すべての親を無視する) { モーション motion; // 拡張子に基づいてモーションを生成。 var 拡張子 = Path.GetExtension(ファイルパス); if (String.Compare(拡張子, ".vmd", true) == 0) { // VMD ファイルから motion = new MMDモーション(ファイルパス, すべての親を無視する); } else if (String.Compare(拡張子, ".vme", true) == 0) { // VME ファイルから motion = new MMDモーションforVME(ファイルパス, すべての親を無視する); } else { throw new Exception("ファイルが不適切です!"); } // モーションをスキニングに割り当てる motion.モーションをアタッチする(_スキニング.ボーン配列); // 終了イベントを登録 motion.モーションが終了した += motion_MotionFinished; // モーションリストに追加。 モーションリスト.Add(new KeyValuePair <string, モーション>(ファイルパス, motion)); モーションリストが更新された?.Invoke(this, new EventArgs()); return(motion); }