Beispiel #1
0
        /// <summary>
        ///     指定されたストリームから読み込む。
        /// </summary>
        internal static PMXモデル情報 読み込む(FileStream fs, PMXヘッダ header)
        {
            var info = new PMXモデル情報();

            info.モデル名   = ParserHelper.get_TextBuf(fs, header.エンコード方式);
            info.モデル名_英 = ParserHelper.get_TextBuf(fs, header.エンコード方式);
            info.コメント   = ParserHelper.get_TextBuf(fs, header.エンコード方式);
            info.コメント_英 = ParserHelper.get_TextBuf(fs, header.エンコード方式);

            return(info);
        }
        /// <summary>
        ///     指定されたストリームから読み込む。
        /// </summary>
        public static PMXモデル 読み込む(FileStream fs)
        {
            var model = new PMXモデル();

            model.ヘッダ      = PMXヘッダ.読み込む(fs);
            model.モデル情報    = PMXモデル情報.読み込む(fs, model.ヘッダ);
            model.頂点リスト    = 頂点リスト.読み込む(fs, model.ヘッダ);
            model.面リスト     = 面リスト.読み込む(fs, model.ヘッダ);
            model.テクスチャリスト = テクスチャリスト.読み込む(fs, model.ヘッダ);
            model.材質リスト    = 材質リスト.読み込む(fs, model.ヘッダ);
            model.ボーンリスト   = ボーンリスト.読み込む(fs, model.ヘッダ);
            model.モーフリスト   = モーフリスト.読み込む(fs, model.ヘッダ);
            model.表示枠リスト   = 表示枠リスト.読み込む(fs, model.ヘッダ);
            model.剛体リスト    = 剛体リスト.読み込む(fs, model.ヘッダ);
            model.ジョイントリスト = ジョイントリスト.読み込む(fs, model.ヘッダ);
            if (model.ヘッダ.PMXバージョン >= 2.1)
            {
                // Todo: SoftBody の読み込みは未対応
                //model.SoftBodyデータリスト = SoftBodyリスト.読み込む( fs, model.ヘッダ );
            }
            return(model);
        }