コード例 #1
0
 def read_mdx(self, stream: BinaryStream, version):
     start = stream.index
     size = stream.read_uint32()
     super().read_mdx(stream, version)
     self.speed = stream.read_float32()
     self.variation = stream.read_float32()
     self.latitude = stream.read_float32()
     self.gravity = stream.read_float32()
     self.life_span = stream.read_float32()
     self.emission_rate = stream.read_float32()
     self.width = stream.read_float32()
     self.length = stream.read_float32()
     self.filter_mode = stream.read_uint32()
     self.rows = stream.read_uint32()
     self.columns = stream.read_uint32()
     self.head_or_tail = stream.read_uint32()
     self.tail_length = stream.read_float32()
     self.time_middle = stream.read_float32()
     self.segment_colors[0] = stream.read_float32_array(3)
     self.segment_colors[1] = stream.read_float32_array(3)
     self.segment_colors[2] = stream.read_float32_array(3)
     self.segment_alphas = stream.read_uint8_array(3)
     self.segment_scaling = stream.read_float32_array(3)
     self.head_intervals[0] = stream.read_uint32_array(3)
     self.head_intervals[1] = stream.read_uint32_array(3)
     self.tail_intervals[0] = stream.read_uint32_array(3)
     self.tail_intervals[1] = stream.read_uint32_array(3)
     self.texture_id = stream.read_int32()
     self.squirt = stream.read_uint32()
     self.priority_plane = stream.read_int32()
     self.replaceable_id = stream.read_uint32()
     self.read_animations(stream, size - (stream.index - start))
コード例 #2
0
 def read_mdx(self, stream: BinaryStream, version: int):
     start = stream.index
     size = stream.read_uint32()
     self.filter_mode = stream.read_uint32()
     self.flags = stream.read_uint32()
     self.texture_id = stream.read_int32()
     self.texture_animation_id = stream.read_int32()
     self.coord_id = stream.read_uint32()
     self.alpha = stream.read_float32()
     if version > 800:
         self.emissive_gain = stream.read_float32()
         self.fresnel_color = stream.read_float32_array(3)
         self.fresnel_opacity = stream.read_float32()
         self.fresnel_team_color = stream.read_float32()
     self.read_animations(stream, size - (stream.index - start))
コード例 #3
0
 def read_mdx(self, stream: BinaryStream, version):
     size = stream.read_uint32()
     self.alpha = stream.read_float32()
     self.flags = stream.read_uint32()
     self.color = stream.read_float32_array(3)
     self.geoset_id = stream.read_int32()
     self.read_animations(stream, size - 28)
コード例 #4
0
 def read_mdx(self, stream: BinaryStream, version):
     size = stream.read_uint32()
     self.name = stream.read(80)
     self.object_id = stream.read_int32()
     self.parent_id = stream.read_int32()
     self.flags = stream.read_uint32()
     self.read_animations(stream, size - 96)
コード例 #5
0
 def read_mdx(self, stream: BinaryStream, version):
     start = stream.index
     size = stream.read_uint32()
     super().read_mdx(stream, version)
     self.path = stream.read(260)
     self.attachment_id = stream.read_int32()
     self.read_animations(stream, size - (stream.index - start))
コード例 #6
0
 def read_mdx(self, stream: BinaryStream, name: str):
     frames = self.frames
     values = self.values
     in_tans = self.in_tans
     out_tans = self.out_tans
     tracks_count = stream.read_uint32()
     interpolation_type = stream.read_uint32()
     self.name = name
     self.interpolation_type = interpolation_type
     self.global_sequence_id = stream.read_int32()
     for i in range(tracks_count):
         frames.append(stream.read_int32())
         values.append(self.read_mdx_value(stream))
         if interpolation_type > 1:
             in_tans.append(self.read_mdx_value(stream))
             out_tans.append(self.read_mdx_value(stream))
コード例 #7
0
 def read_mdx(self, stream: BinaryStream, version: int):
     stream.read_uint32()
     self.priority_plane = stream.read_int32()
     self.flags = stream.read_uint32()
     if version > 800:
         self.shader = stream.read(80)
     stream.skip(4)  # LAYS
     for i in range(stream.read_uint32()):
         layer = Layer()
         layer.read_mdx(stream, version)
         self.layers.append(layer)
コード例 #8
0
 def read_mdx(self, stream: BinaryStream, version):
     start = stream.index
     size = stream.read_uint32()
     super().read_mdx(stream, version)
     self.height_above = stream.read_float32()
     self.height_below = stream.read_float32()
     self.alpha = stream.read_float32()
     self.color = stream.read_float32_array(3)
     self.lifespan = stream.read_float32()
     self.texture_slot = stream.read_uint32()
     self.emission_rate = stream.read_uint32()
     self.rows = stream.read_uint32()
     self.columns = stream.read_uint32()
     self.material_id = stream.read_int32()
     self.gravity = stream.read_float32()
     self.read_animations(stream, size - (stream.index - start))
コード例 #9
0
 def read_mdx(self, stream: BinaryStream, version: int):
     stream.read_uint32()
     stream.skip(4)  # VRTX TAG
     self.vertices = stream.read_float32_array(stream.read_uint32() * 3)
     stream.skip(4)  # NRMS TAG
     self.normals = stream.read_float32_array(stream.read_uint32() * 3)
     stream.skip(4)  # PTYP TAG
     self.face_type_groups = stream.read_uint32_array(stream.read_uint32())
     stream.skip(4)  # PCNT TAG
     self.face_groups = stream.read_uint32_array(stream.read_uint32())
     stream.skip(4)  # PVTX TAG
     self.faces = stream.read_uint16_array(stream.read_uint32())
     stream.skip(4)  # GNDX TAG
     self.vertex_groups = stream.read_uint8_array(stream.read_uint32())
     stream.skip(4)  # MTGC TAG
     self.matrix_groups = stream.read_uint32_array(stream.read_uint32())
     stream.skip(4)  # MATS TAG
     self.matrix_indices = stream.read_uint32_array(stream.read_uint32())
     self.material_id = stream.read_uint32()
     self.selection_group = stream.read_uint32()
     self.selection_flags = stream.read_uint32()
     if version > 800:
         self.lod = stream.read_int32()
         self.lod_name = stream.read(80)
     self.extent.read_mdx(stream)
     for i in range(stream.read_uint32()):
         extent = Extent()
         extent.read_mdx(stream)
         self.sequence_extents.append(extent)
     if version > 800:
         if stream.peek(4) == 'TANG':
             stream.skip(4)
             self.tangents = stream.read_float32_array(
                 stream.read_uint32() * 4)
         if stream.peek(4) == 'SKIN':
             stream.skip(4)
             self.skin = stream.read_uint8_array(stream.read_uint32())
     stream.skip(4)
     for i in range(stream.read_uint32()):
         stream.skip(4)
         self.uv_sets.append(
             stream.read_float32_array(stream.read_uint32() * 2))
コード例 #10
0
 def read_mdx(self, stream: BinaryStream, version):
     super().read_mdx(stream, version)
     stream.skip(4)  # KEVT TAG
     count = stream.read_uint32()
     self.global_sequence_id = stream.read_int32()
     self.tracks = stream.read_uint32_array(count)
コード例 #11
0
ファイル: bone.py プロジェクト: Rigborn4/PyMdlxConverter
 def read_mdx(self, stream: BinaryStream, version):
     super().read_mdx(stream, version)
     self.geoset_id = stream.read_int32()
     self.geoset_animation_id = stream.read_int32()