protected override void ReadExtensionRegion(MvdDocument document, MvdObject obj, BinaryReader br) { if (br.GetRemainingLength() >= 4) this.StageCount = br.ReadInt32(); if (this.MinorType >= 2) this.ParentClipId = br.ReadInt32(); }
protected override void Read(MvdDocument document, MvdObject obj, BinaryReader br) { // フォーマットバグ対策 if (this.MinorType == 0) this.RawItemSize -= 4; base.Read(document, obj, br); }
protected override void ReadExtensionRegion(MvdDocument document, MvdObject obj, BinaryReader br) { if (br.GetRemainingLength() >= 4) this.IKBones = Enumerable.Range(0, br.ReadInt32()).Select(_ => br.ReadInt32()).ToArray(); if (this.MinorType >= 3) this.ModelRelationCount = br.ReadInt32(); }
protected override void Read(MvdDocument document, MvdObject obj, BinaryReader br) { if (this.RawItemSize <= 0) throw new InvalidOperationException("RawItemSize must be greater than 0."); for (int i = 0; i < this.RawCount; i++) using (var ir = new BinaryReader(new MemoryStream(br.ReadBytes(this.RawItemSize)))) ReadItem(document, obj, ir); }
protected override void ReadItem(MvdDocument document, MvdObject obj, BinaryReader br) { MvdCameraPropertyFrame cpf; this.Frames.Add(MvdCameraFrame.Parse(this, br, out cpf)); if (cpf != null) { var cpd = obj.Sections.OfType<MvdCameraPropertyData>().FirstOrDefault(); if (cpd == null) obj.Sections.Add(cpd = new MvdCameraPropertyData()); cpd.Frames.Add(cpf); } }
public static MvdObject Parse(MvdDocument document, BinaryReader br) { var rt = new MvdObject(); rt.ObjectName = document.Encoding.GetString(br.ReadSizedBuffer()); rt.EnglishObjectName = document.Encoding.GetString(br.ReadSizedBuffer()); rt.KeyFps = br.ReadSingle(); br.ReadSizedBuffer(); // reservedSize / reserved while (br.GetRemainingLength() > 1) { var section = MvdSection.Parse(document, rt, br); if (section == null) break; rt.Sections.Add(section); } return rt; }
protected override void ReadItem(MvdDocument document, MvdObject obj, BinaryReader br) { this.Frames.Add(MvdLightFrame.Parse(br)); }
protected override void ReadItem(MvdDocument document, MvdObject obj, BinaryReader br) { this.MotionBlendLink = MvdMotionBlendLink.Parse(br); }
protected override void ReadExtensionRegion(MvdDocument document, MvdObject obj, BinaryReader br) { this.ParentClipId = br.ReadInt32(); }
protected override void Read(MvdDocument document, MvdObject obj, BinaryReader br) { for (int i = 0; i < this.RawCount; i++) this.Names.Add(br.ReadInt32(), document.Encoding.GetString(br.ReadSizedBuffer())); }
protected override void ReadItem(MvdDocument document, MvdObject obj, BinaryReader br) { this.Frames.Add(MvdAccessoryPropertyFrame.Parse(br)); }
protected override void ReadExtensionRegion(MvdDocument document, MvdObject obj, BinaryReader br) { this.ToneCurveControlPointCount = br.ReadInt32(); }
protected override void ReadExtensionRegion(MvdDocument document, MvdObject obj, BinaryReader br) { if (br.GetRemainingLength() >= 4) this.Parameters = Enumerable.Range(0, br.ReadInt32()).Select(_ => MvdEffectParameter.Parse(br)).ToList(); }
protected abstract void ReadItem(MvdDocument document, MvdObject obj, BinaryReader br);
public static MvdSection Parse(MvdDocument document, MvdObject obj, BinaryReader br) { var tag = (MvdTag)br.ReadByte(); MvdSection rt = null; switch (tag) { case MvdTag.NameList: rt = new MvdNameList(); break; case MvdTag.Bone: rt = new MvdBoneData(); break; case MvdTag.Morph: rt = new MvdMorphData(); break; case MvdTag.MotionClip: rt = new MvdMotionClipData(); break; case MvdTag.MotionBlend: rt = new MvdMotionBlendLinkData(); break; case MvdTag.ModelProperty: rt = new MvdModelPropertyData(); break; case MvdTag.AccessoryProperty: rt = new MvdAccessoryPropertyData(); break; case MvdTag.EffectProperty: rt = new MvdEffectPropertyData(); break; case MvdTag.Camera: rt = new MvdCameraData(); break; case MvdTag.CameraProperty: rt = new MvdCameraPropertyData(); break; case MvdTag.Light: rt = new MvdLightData(); break; case MvdTag.Project: rt = new MvdProjectData(); break; case MvdTag.Filter: rt = new MvdFilterData(); break; case MvdTag.Eof: br.ReadByte(); return null; } rt.MinorType = br.ReadByte(); rt.RawKey = br.ReadInt32(); rt.RawItemSize = br.ReadInt32(); rt.RawCount = br.ReadInt32(); using (var exr = br.CreateSizedBufferReader()) rt.ReadExtensionRegion(document, obj, exr); rt.Read(document, obj, br); return rt; }
protected virtual void ReadExtensionRegion(MvdDocument document, MvdObject obj, BinaryReader br) { }