Table of Contents

Namespace nadena.dev.ndmf

Namespaces

nadena.dev.ndmf.VRChat
nadena.dev.ndmf.builtin
nadena.dev.ndmf.config
nadena.dev.ndmf.fluent
nadena.dev.ndmf.localization
nadena.dev.ndmf.preview
nadena.dev.ndmf.runtime
nadena.dev.ndmf.sample
nadena.dev.ndmf.ui
nadena.dev.ndmf.util

Classes

AsyncProfiler
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> {
  // ...
}
NullAssetSaver
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.

Pass<T>
PluginBase
Plugin<T>
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.

SingleAssetSaver

Structs

ErrorContext

Holds a single error and information about where the error originated from.

ParameterMapping
ProfilerScope

Performs a Profiler.BeginSample call on construction, and Profiler.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.

IObjectRegistry
IParameterProvider

Provides information about parameters supplied by a (custom) component.

Enums

ErrorSeverity

Indicates the severity of a reported error.

ParameterInfo.ConflictType
ParameterNamespace

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.