Namespace nadena.dev.ndmf
Namespaces
Classes
- AvatarProcessor
This class is the main entry point for triggering NDMF processing of an avatar.
- BuildContext
The BuildContext is passed to all plugins during the build process. It provides access to the avatar being built, as well as various other context information.
- BuildPhase
Build Phases provide a coarse mechanism for grouping passes for execution. Each build phase has a recommended usage to help avoid ordering conflicts without needing explicit constraints.
Currently, the following phases are defined:
- Resolving
- Generating
- Transforming
- Optimizing
- DependsOnContext
This attribute declares a pass or an extension context to depend on another context. When an extension context depends on another, it will implicitly activate the other context whenever the depending context is activated.
- ErrorReport
Contains any errors or warnings issued during a single build operation.
- ExportsPlugin
This attribute declares a plugin to be registered with NDMF.
[assembly: ExportsPlugin(typeof(MyPlugin))] class MyPlugin : Plugin<MyPlugin> { // ... }
- ObjectReference
The ObjectReference class gives you a way to reference an object that may have been moved or destroyed since its initial creation.
- ObjectRegistry
The ObjectRegistry tracks the original position of objects on the avatar; this is used to be able to identify the source of errors after objects have been moved within the hierarchy.
- ObjectRegistryScope
This class allows you to set a particular Object Registry instance as the current one to be used for static methods. This is primarily intended for unit testing.
- ParameterInfo
Provides information about VRChat Expression Parameters and animator parameters generated by NDMF-registered components.
- ParameterProviderFor
Annotates a class as a provider of parameters for a specific component type. The class should implement IParameterProvider, and expose a public constructor taking an argument with the type of the ForType argument here. This constructor will be invoked when querying a component's parameters.
- ProvidedParameter
This class declares a parameter that is supplied by a NDMF component. This is intended to be used for introspection via the ParameterInfo API. Note that exposing a ProvidedParameter does not actually add the parameter to the Expressions Parameters asset; this is left up to individual NDMF plugins. However, it can be used to detect parameter names and in-use bit counts for use in user-facing UI.
- SerializationScope
This helper invokes Unity's StartAssetEditing API, and will StopAssetEditing on disposal.
It also provides an API to serialize an asset to an asset container; NDMF internally maintains multiple asset container files to balance between the overhead of creating a new asset container and the overhead of adding new assets to existing containers.
- SimpleError
Base class for errors that obtain their messages from the Localization system.
Structs
- ErrorContext
Holds a single error and information about where the error originated from.
- ProfilerScope
Performs a
Profiler.BeginSample
call on construction, andProfiler.EndSample
on disposal.
Interfaces
- IAssetSaver
This interface allows you to explicitly save temporary assets. This can be useful when writing textures, or when you need to save assets (e.g. animator objects) prior to the automatic serialization pass at the end of processing.
The asset saver must be disposed at the end of the avatar build.
- IError
A base interface for custom NDMF error reports.
- IErrorContext
This interface allows multiple context objects to be passed to an error in a single argument. Passing an object implementing IErrorContext to ErrorReport methods will add all objects referenced in ContextReferences as context objects.
- IExtensionContext
The IExtensionContext is declared by custom extension contexts.
- IParameterProvider
Provides information about parameters supplied by a (custom) component.
Enums
- ErrorSeverity
Indicates the severity of a reported error.
Delegates
- ParameterInfo.ConflictHandler
Invoked when multiple components provide a parameter with the same name, but with conflicting configuration. May be invoked multiple times for different conflict types.