pub struct ModelOutlineEvent {
    pub model_name: String,
    pub model_id: String,
    pub convex_hull: Vec<Vec2>,
    pub convex_hull_center: Vec2,
    pub window_size: Vec2,
}
Expand description

An event that is triggered at a constant 15 FPS and sends subscribed plugins the model outline.

Specifically, it sends an approximated convex polygon based on the bounding-box center points of all (visible) ArtMeshes in the model. If no model is loaded, the event isn’t sent.

This event can be configured using ModelOutlineEventConfig.

Fields

model_name: String

Model name. E.g., "My VTS Model Name".

model_id: String

Model ID. E.g., "165131471d8a4e42aae01a9738f255ef".

convex_hull: Vec<Vec2>

2D points describing the rough outline of the model.

This list is ordered. The x/y coordinate of each point is its position within the VTube Studio window. X or Y coordinates may be bigger than 1 or smaller than -1 if an outline point is outside of the window boundaries.

The convex_hull list is guaranteed to have at least 3 entries. There is no limit to how many entries it can have, but for most normal Live2D models, it has between 5 and 25 entries. Please also keep in mind that the number of list entries can (and will most likely) change between events you receive. Do not implement your plugin expecting the number of outline points to remain constant.

convex_hull_center: Vec2

The center/average of all the convex_hull points.

window_size: Vec2

The current VTube Studio window size.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more