Skip to content

Can't open BCRES files that only have animations #110

@RedStoneMatt

Description

@RedStoneMatt

Similar to #90, but for BCRES files instead of BCMDL.

I'm trying to open the fish animations from Streetpass Mii Plaza's "Ultimate Angler" game. The models and animations are stored in separate files, but while CTR Studio can open the the model files, it can't open the "motion" files (stored in romfs\region_common\module\mgFsh\fish\motion).

Object of type 'SPICA.Formats.CtrGfx.GfxDictionary1[SPICA.Formats.CtrGfx.Animation.GfxAnimationElement]' cannot be converted to type 'SPICA.Formats.CtrGfx.Emitter.GfxEmitter'. 
   at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast)
   at System.Reflection.RtFieldInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture)
   at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 300
   at SPICA.Serialization.BinaryDeserializer.Deserialize[T]() in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 36
   at SPICA.Formats.CtrGfx.GfxDictionary1.SPICA.Serialization.ICustomSerialization.Deserialize(BinaryDeserializer Deserializer) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\GfxDictionary.cs:line 48
   at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 312
   at SPICA.Serialization.BinaryDeserializer.ReadReference(Type Type, FieldInfo Info) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 408
   at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 297
   at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 286
   at SPICA.Serialization.BinaryDeserializer.Deserialize[T]() in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 36
   at SPICA.Formats.CtrGfx.Gfx.Open(Stream Input) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\Gfx.cs:line 111
   at CtrLibrary.Bcres.BCRES.Load(Stream stream) in C:\projects\ctr-studio\Plugins\CtrLibrary\Files\BCRES\BCRES.cs:line 126
   at Toolbox.Core.IO.STFileLoader.SetFileFormat(IFileFormat fileFormat, String FileName, Stream stream, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 170
   at Toolbox.Core.IO.STFileLoader.OpenFileFormat(String FileName, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 85
   at MapStudio.UI.Workspace.LoadFileFormat(String filePath, Boolean isProject) in C:\projects\ctr-studio\MapStudio.UI\src\Workspace\Workspace.cs:line 349

While I can understand that opening animations-only files by themselves is essentially useless, it would be nice to have the possibility to open a BCRES that contains a model, then to open on top of it a BCRES that contains its animations, so it can then be all exported into a single file.

Here are the affected files: motion.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions