stride3d/stride · error · NotImplementedException

This type of animation asset is not supported yet!

Error message

This type of animation asset is not supported yet!

What it means

AnimationAssetCompiler.Prepare builds compile steps for animation assets, including additive animations that need a diff between two animations. If the AdditiveAnimationParameters does not match a supported layout, it throws NotImplementedException because that animation asset type has no compilation strategy yet. It marks an explicitly unimplemented code path.

Solutions

  1. Change the asset's additive animation settings to a supported configuration (correct source and target animations).
  2. Re-import the animation from the source model so the compiler generates supported parameters.
  3. Implement the missing case in AnimationAssetCompiler.Prepare if you own the pipeline.
  4. Avoid additive animation for this asset (use standard animation) until supported.

Example fix

// before
var parameters = new AdditiveAnimationParameters { Animation = anim }; // missing source for diff
// after
var parameters = new AdditiveAnimationParameters { Animation = anim, ExtraSourceAnimation = baseAnim };
Defensive patterns

Strategy: validation

Validate before calling

if (parameters is AdditiveAnimationParameters add && add.ExtraSourceAnimation == null)
    throw new InvalidOperationException("Additive animation requires a source animation for the diff");

Try / catch

try { result = assetCompiler.Prepare(asset, context); }
catch (NotImplementedException ex) { Logger.Error(ex, "Unsupported animation asset; skipping"); return fallbackResult; }

Prevention

When it happens

Trigger: Importing/building an animation asset with additive blending parameters whose source/target animation combination is not one of the two supported diff cases (e.g. missing extra source animation).

Common situations: A model/animation import pipeline emits an additive animation the compiler doesn't handle; upgrading assets authored by older/newer Stride versions with different additive parameters; hand-crafting asset files with unsupported additive settings.

Related errors


AI-assisted analysis of stride3d/stride@96fad776d2 (2026-09-14). Data as JSON: /api/errors/64ccacd32df8e961. Report an issue: GitHub.

Appendix: source

Thrown at sources/engine/Stride.Assets.Models/AnimationAssetCompiler.cs:163

                    yield return new ObjectUrl(UrlType.File, GetAbsolutePath(assetItem, diffAnimationAsset.BaseSource));
                }

                var diffCommand = new AdditiveAnimationCommand(targetUrlInStorage, new AdditiveAnimationParameters(baseUrlInStorage, sourceUrlInStorage, rebaseMode), assetItem.Package)
                {
                    InputFilesGetter = InputFilesGetter
                };

                var diffStep = new CommandBuildStep(diffCommand);

                BuildStep.LinkBuildSteps(sourceStep, diffStep);
                BuildStep.LinkBuildSteps(baseStep, diffStep);

                // Generate the diff of those two animations
                buildStep.Add(diffStep);
            }
            else
            {
                throw new NotImplementedException("This type of animation asset is not supported yet!");
            }

            result.BuildSteps = buildStep;
        }

        internal class AdditiveAnimationCommand : AssetCommand<AdditiveAnimationParameters>
        {
            public AdditiveAnimationCommand(string url, AdditiveAnimationParameters parameters, IAssetFinder assetFinder) :
                base(url, parameters, assetFinder)
            {
                Version = 3;
            }

            protected override Task<ResultStatus> DoCommandOverride(ICommandContext commandContext)
            {
                var assetManager = new ContentManager(MicrothreadLocalDatabases.ProviderService);

                // Load source and base animations

View on GitHub (pinned to 96fad776d2)