🧊 MCSA#

Usage Example#
from scfile import formats

with formats.mcsa.McsaDecoder("path/to/model.mcsa") as mcsa:
  data = mcsa.decode()

with formats.obj.ObjEncoder(data) as obj:
  obj.encode().save("output.obj")

Decoder#

class McsaDecoder(file, options=None)[source]#

Bases: FileDecoder[ModelContent], McsaFileIO

format: FileFormat = 'mcsa'#
order: ByteOrder = '<'#
signature: Optional[bytes] = b'MCSA'#
to_obj()[source]#
to_glb()[source]#
to_dae()[source]#
to_ms3d()[source]#
parse()[source]#

Parse file content into self.data.

Exceptions#

exception McsaDecodingError(file)[source]#

Bases: FileError, DecodingError

Base exception for MCSA model related errors.

prefix#
exception McsaCountsLimit(file, type, count)[source]#

Bases: McsaDecodingError, ParsingError

Raised when model exceeds allowed geometry limits (vertices/polygons count).

type: str#
count: int#
exception McsaBoneLinksError(file, links_count)[source]#

Bases: McsaDecodingError, ParsingError

Raised when mesh contain unexpected/invalid links count.

exception McsaVersionUnsupported(file, version)[source]#

Bases: McsaDecodingError, UnsupportedError

Raised when attempting to parse unsupported model version.

version: float#

IO#

Extensions for MCSA file format with custom struct-based I/O methods.

class McsaFileIO(file, mode='r', closefd=True, opener=None)[source]#

Bases: StructFileIO