# Abstract Class: InternalModel (/pixi-vn-live2d/core/classes/InternalModel)



Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3145

A wrapper that manages the states of a Live2D core model, and delegates all operations to it.

## Emits [#emits]

[InternalModelEvents](/pixi-vn-live2d/core/interfaces/InternalModelEvents)

## Extends [#extends]

* `EventEmitter`

## Extended by [#extended-by]

* [`CubismLegacyInternalModel`](/pixi-vn-live2d/core/classes/CubismLegacyInternalModel)
* [`CubismInternalModel`](/pixi-vn-live2d/core/classes/CubismInternalModel)

## Constructors [#constructors]

### Constructor [#constructor]

\> **new InternalModel**(): `InternalModel`

#### Returns [#returns]

`InternalModel`

#### Inherited from [#inherited-from]

`EventEmitter.constructor`

## Properties [#properties]

### coreModel [#coremodel]

\> `abstract` `readonly` **coreModel**: `object`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3149

The managed Live2D core model.

***

### destroyed [#destroyed]

\> **destroyed**: `boolean`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3203

Flags this instance has been destroyed.

***

### drawingMatrix [#drawingmatrix]

\> **drawingMatrix**: `Matrix`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3182

The final matrix to draw the model.

***

### focusController [#focuscontroller]

\> **focusController**: [`FocusController`](/pixi-vn-live2d/core/classes/FocusController)

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3152

***

### height [#height]

\> `readonly` **height**: `number`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3174

Canvas height of the model, scaled by the `height` of the model's layout.

***

### hitAreas [#hitareas]

\> **hitAreas**: `Record`\<`string`, [`CommonHitArea`](/pixi-vn-live2d/core/interfaces/CommonHitArea)>

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3186

The hit area definitions, keyed by their names.

***

### localTransform [#localtransform]

\> **localTransform**: `Matrix`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3178

Local transformation, calculated from the model's layout.

***

### motionManager [#motionmanager]

\> `abstract` **motionManager**: [`MotionManager`](/pixi-vn-live2d/core/classes/MotionManager)

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3153

***

### options [#options]

\> `abstract` `readonly` **options**: [`InternalModelOptions`](/pixi-vn-live2d/core/interfaces/InternalModelOptions)

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3151

***

### originalHeight [#originalheight]

\> `readonly` **originalHeight**: `number`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3166

Original canvas height of the model. Note this doesn't represent the model's real size,
as the model can overflow from its canvas.

***

### originalWidth [#originalwidth]

\> `readonly` **originalWidth**: `number`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3161

Original canvas width of the model. Note this doesn't represent the model's real size,
as the model can overflow from its canvas.

***

### parallelMotionManager [#parallelmotionmanager]

\> `abstract` **parallelMotionManager**: `ParallelMotionManager`\<`Live2DMotion` | `CubismMotion`, `never`>\[]

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3154

***

### physics? [#physics]

\> `optional` **physics?**: `unknown`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3156

***

### pose? [#pose]

\> `optional` **pose?**: `unknown`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3155

***

### settings [#settings]

\> `abstract` `readonly` **settings**: [`ModelSettings`](/pixi-vn-live2d/core/classes/ModelSettings)

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3150

***

### textureFlipY [#textureflipy]

\> **textureFlipY**: `boolean`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3190

Flags whether `gl.UNPACK_FLIP_Y_WEBGL` should be enabled when binding the textures.

***

### viewport [#viewport]

\> **viewport**: \[`number`, `number`, `number`, `number`]

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3194

WebGL viewport when drawing the model. The format is `[x, y, width, height]`.

***

### width [#width]

\> `readonly` **width**: `number`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3170

Canvas width of the model, scaled by the `width` of the model's layout.

***

### prefixed [#prefixed]

\> `static` **prefixed**: `string` | `boolean`

Defined in: node_modules/eventemitter3/index.d.ts:9

#### Inherited from [#inherited-from-1]

`EventEmitter.prefixed`

## Methods [#methods]

### addListener() [#addlistener]

\> **addListener**\<`T`>(`event`, `fn`, `context?`): `this`

Defined in: node_modules/eventemitter3/index.d.ts:45

#### Type Parameters [#type-parameters]

##### T [#t]

`T` *extends* `string` | `symbol`

#### Parameters [#parameters]

##### event [#event]

`T`

##### fn [#fn]

(...`args`) => `void`

##### context? [#context]

`any`

#### Returns [#returns-1]

`this`

#### Inherited from [#inherited-from-2]

`EventEmitter.addListener`

***

### bindTexture() [#bindtexture]

\> `abstract` **bindTexture**(`index`, `texture`): `void`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3315

Binds a texture to the model. The index must be the same as that of this texture
in the [ModelSettings.textures](/pixi-vn-live2d/core/classes/ModelSettings#textures) array.

#### Parameters [#parameters-1]

##### index [#index]

`number`

##### texture [#texture]

`WebGLTexture`

#### Returns [#returns-2]

`void`

***

### destroy() [#destroy]

\> **destroy**(): `void`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3253

Destroys the model and all related resources.

#### Returns [#returns-3]

`void`

#### Emits [#emits-1]

\`InternalModelEvents.destroy\` | destroy

***

### draw() [#draw]

\> `abstract` **draw**(`gl`): `void`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3319

Draws the model.

#### Parameters [#parameters-2]

##### gl [#gl]

`WebGLRenderingContext`

#### Returns [#returns-4]

`void`

***

### emit() [#emit]

\> **emit**\<`T`>(`event`, ...`args`): `boolean`

Defined in: node_modules/eventemitter3/index.d.ts:32

Calls each of the listeners registered for a given event.

#### Type Parameters [#type-parameters-1]

##### T [#t-1]

`T` *extends* `string` | `symbol`

#### Parameters [#parameters-3]

##### event [#event-1]

`T`

##### args [#args]

...`any`\[]

#### Returns [#returns-5]

`boolean`

#### Inherited from [#inherited-from-3]

`EventEmitter.emit`

***

### eventNames() [#eventnames]

\> **eventNames**(): (`string` | `symbol`)\[]

Defined in: node_modules/eventemitter3/index.d.ts:15

Return an array listing the events for which the emitter has registered
listeners.

#### Returns [#returns-6]

(`string` | `symbol`)\[]

#### Inherited from [#inherited-from-4]

`EventEmitter.eventNames`

***

### extendParallelMotionManager() [#extendparallelmotionmanager]

\> `abstract` **extendParallelMotionManager**(`managerCount`): `void`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3324

Add parallel motion manager.

#### Parameters [#parameters-4]

##### managerCount [#managercount]

`number`

Count of parallel motion managers.

#### Returns [#returns-7]

`void`

***

### getDrawableBounds() [#getdrawablebounds]

\> **getDrawableBounds**(`index`, `bounds?`): `Bounds`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3237

Gets a drawable's bounds.

#### Parameters [#parameters-5]

##### index [#index-1]

`number`

Index of the drawable.

##### bounds? [#bounds]

`Bounds`

Object to store the output values.

#### Returns [#returns-8]

`Bounds`

The bounds in model canvas space.

***

### getDrawableIDs() [#getdrawableids]

\> `abstract` **getDrawableIDs**(): `string`\[]

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3293

Gets all the drawables' IDs.

#### Returns [#returns-9]

`string`\[]

IDs.

***

### getDrawableIndex() [#getdrawableindex]

\> `abstract` **getDrawableIndex**(`id`): `number`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3298

Finds the index of a drawable by its ID.

#### Parameters [#parameters-6]

##### id [#id]

`string`

#### Returns [#returns-10]

`number`

The index.

***

### getDrawableVertices() [#getdrawablevertices]

\> `abstract` **getDrawableVertices**(`index`): `Float32Array`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3304

Gets a drawable's vertices.

#### Parameters [#parameters-7]

##### index [#index-2]

`string` | `number`

Either the index or the ID of the drawable.

#### Returns [#returns-11]

`Float32Array`

#### Throws [#throws]

Error when the drawable cannot be found.

***

### getHitAreaDefs() [#gethitareadefs]

\> `abstract` `protected` **getHitAreaDefs**(): [`CommonHitArea`](/pixi-vn-live2d/core/interfaces/CommonHitArea)\[]

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3275

Gets all the hit area definitions.

#### Returns [#returns-12]

[`CommonHitArea`](/pixi-vn-live2d/core/interfaces/CommonHitArea)\[]

Normalized definitions.

***

### getLayout() [#getlayout]

\> `abstract` `protected` **getLayout**(): [`CommonLayout`](/pixi-vn-live2d/core/interfaces/CommonLayout)

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3288

Gets the layout definition.

#### Returns [#returns-13]

[`CommonLayout`](/pixi-vn-live2d/core/interfaces/CommonLayout)

Normalized definition.

***

### getSize() [#getsize]

\> `abstract` `protected` **getSize**(): \[`number`, `number`]

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3280

Gets the model's original canvas size.

#### Returns [#returns-14]

\[`number`, `number`]

`[width, height]`

***

### hitTest() [#hittest]

\> **hitTest**(`x`, `y`): `string`\[]

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3222

Hit-test on the model.

#### Parameters [#parameters-8]

##### x [#x]

`number`

Position in model canvas.

##### y [#y]

`number`

Position in model canvas.

#### Returns [#returns-15]

`string`\[]

The names of the *hit* hit areas. Can be empty if none is hit.

***

### init() [#init]

\> `protected` **init**(): `void`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3207

Should be called in the constructor of derived class.

#### Returns [#returns-16]

`void`

***

### isHit() [#ishit]

\> **isHit**(`hitAreaName`, `x`, `y`): `boolean`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3230

Hit-test for a single hit area.

#### Parameters [#parameters-9]

##### hitAreaName [#hitareaname]

`string`

The hit area's name.

##### x [#x-1]

`number`

Position in model canvas.

##### y [#y-1]

`number`

Position in model canvas.

#### Returns [#returns-17]

`boolean`

True if hit.

***

### listenerCount() [#listenercount]

\> **listenerCount**(`event`): `number`

Defined in: node_modules/eventemitter3/index.d.ts:27

Return the number of listeners listening to a given event.

#### Parameters [#parameters-10]

##### event [#event-2]

`string` | `symbol`

#### Returns [#returns-18]

`number`

#### Inherited from [#inherited-from-5]

`EventEmitter.listenerCount`

***

### listeners() [#listeners]

\> **listeners**\<`T`>(`event`): (...`args`) => `void`\[]

Defined in: node_modules/eventemitter3/index.d.ts:20

Return the listeners registered for a given event.

#### Type Parameters [#type-parameters-2]

##### T [#t-2]

`T` *extends* `string` | `symbol`

#### Parameters [#parameters-11]

##### event [#event-3]

`T`

#### Returns [#returns-19]

(...`args`) => `void`\[]

#### Inherited from [#inherited-from-6]

`EventEmitter.listeners`

***

### off() [#off]

\> **off**\<`T`>(`event`, `fn?`, `context?`, `once?`): `this`

Defined in: node_modules/eventemitter3/index.d.ts:69

#### Type Parameters [#type-parameters-3]

##### T [#t-3]

`T` *extends* `string` | `symbol`

#### Parameters [#parameters-12]

##### event [#event-4]

`T`

##### fn? [#fn-1]

(...`args`) => `void`

##### context? [#context-1]

`any`

##### once? [#once]

`boolean`

#### Returns [#returns-20]

`this`

#### Inherited from [#inherited-from-7]

`EventEmitter.off`

***

### on() [#on]

\> **on**\<`T`>(`event`, `fn`, `context?`): `this`

Defined in: node_modules/eventemitter3/index.d.ts:40

Add a listener for a given event.

#### Type Parameters [#type-parameters-4]

##### T [#t-4]

`T` *extends* `string` | `symbol`

#### Parameters [#parameters-13]

##### event [#event-5]

`T`

##### fn [#fn-2]

(...`args`) => `void`

##### context? [#context-2]

`any`

#### Returns [#returns-21]

`this`

#### Inherited from [#inherited-from-8]

`EventEmitter.on`

***

### once() [#once-1]

\> **once**\<`T`>(`event`, `fn`, `context?`): `this`

Defined in: node_modules/eventemitter3/index.d.ts:54

Add a one-time listener for a given event.

#### Type Parameters [#type-parameters-5]

##### T [#t-5]

`T` *extends* `string` | `symbol`

#### Parameters [#parameters-14]

##### event [#event-6]

`T`

##### fn [#fn-3]

(...`args`) => `void`

##### context? [#context-3]

`any`

#### Returns [#returns-22]

`this`

#### Inherited from [#inherited-from-9]

`EventEmitter.once`

***

### removeAllListeners() [#removealllisteners]

\> **removeAllListeners**(`event?`): `this`

Defined in: node_modules/eventemitter3/index.d.ts:79

Remove all listeners, or those of the specified event.

#### Parameters [#parameters-15]

##### event? [#event-7]

`string` | `symbol`

#### Returns [#returns-23]

`this`

#### Inherited from [#inherited-from-10]

`EventEmitter.removeAllListeners`

***

### removeListener() [#removelistener]

\> **removeListener**\<`T`>(`event`, `fn?`, `context?`, `once?`): `this`

Defined in: node_modules/eventemitter3/index.d.ts:63

Remove the listeners of a given event.

#### Type Parameters [#type-parameters-6]

##### T [#t-6]

`T` *extends* `string` | `symbol`

#### Parameters [#parameters-16]

##### event [#event-8]

`T`

##### fn? [#fn-4]

(...`args`) => `void`

##### context? [#context-4]

`any`

##### once? [#once-2]

`boolean`

#### Returns [#returns-24]

`this`

#### Inherited from [#inherited-from-11]

`EventEmitter.removeListener`

***

### setupHitAreas() [#setuphitareas]

\> `protected` **setupHitAreas**(): `void`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3215

Sets up the hit areas by their definitions in settings.

#### Returns [#returns-25]

`void`

***

### setupLayout() [#setuplayout]

\> `protected` **setupLayout**(): `void`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3211

Sets up the model's size and local transform by the model's layout.

#### Returns [#returns-26]

`void`

***

### update() [#update]

\> **update**(`dt`, `_now`): `void`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3248

Updates the model's parameters.

#### Parameters [#parameters-17]

##### dt [#dt]

`number`

Elapsed time in milliseconds from last frame.

##### \_now [#_now]

`number`

Current time in milliseconds.

#### Returns [#returns-27]

`void`

***

### updateMotions() [#updatemotions]

\> `protected` **updateMotions**(`model`, `now`): `boolean`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3270

Updates all active motions for the model and emits lifecycle events.

This method coordinates the update cycle for both primary and parallel motion managers,
ensuring all animations are synchronized with the current timestamp. It emits events
before and after the update process, allowing external listeners to hook into the motion
lifecycle. The return value indicates whether any motion was actively updated during this cycle.

#### Parameters [#parameters-18]

##### model [#model]

`object`

The model instance to apply motion updates to.

##### now [#now]

`number`

The current timestamp (in milliseconds) used to calculate motion progress.

#### Returns [#returns-28]

`boolean`

Returns `true` if any motion (primary or parallel) was updated; `false` otherwise.

#### Emits [#emits-2]

beforeMotionUpdate - Triggered before any motion updates are processed.

#### Emits [#emits-3]

afterMotionUpdate - Triggered after all motion updates are completed.

***

### updateTransform() [#updatetransform]

\> **updateTransform**(`transform`): `void`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3242

Updates the model's transform.

#### Parameters [#parameters-19]

##### transform [#transform]

`Matrix`

The world transform.

#### Returns [#returns-29]

`void`

***

### updateWebGLContext() [#updatewebglcontext]

\> `abstract` **updateWebGLContext**(`gl`, `glContextID`): `void`

Defined in: node_modules/untitled-pixi-live2d-engine/types/index.d.ts:3310

Updates WebGL context bound to this model.

#### Parameters [#parameters-20]

##### gl [#gl-1]

`WebGLRenderingContext`

WebGL context.

##### glContextID [#glcontextid]

`number`

Unique ID for given WebGL context.

#### Returns [#returns-30]

`void`
