When true, ears will be included in the Face Mesh geometry.
When true, a small area in the corners of the eyes will be included in the Face Mesh geometry.
When true, eyes will be included in the Face Mesh geometry.
When true, the general face (not including eyes and mouth) will be included in the Face Mesh geometry.
Index of the face this FaceRenderObjectProvider mirrors.
When true, the mouth will be included in the Face Mesh geometry.
ReadonlyonAn event that will fire each time new expression weights are available.
In most cases, providers can be accessed via the control property of an asset.
For example, we can jump to the last frame of an animated texture:
// @input Asset.Texture myAnimatedTexture
const myAnimatedTextureProvider = script.myAnimatedTexture.control;
const frameCountOfTexture = myAnimatedTextureProvider.getFramesCount();
myAnimatedTextureProvider.pauseAtFrame(frameCountOfTexture - 1);
Or do it in TypeScript:
@component
export class ProviderExample extends BaseScriptComponent {
@input()
myAnimatedTexture: Texture;
onAwake() {
const myAnimatedTextureProvider = this.myAnimatedTexture.control as AnimatedTextureFileProvider;
const frameCountOfTexture = myAnimatedTextureProvider.getFramesCount();
myAnimatedTextureProvider.pauseAtFrame(frameCountOfTexture - 1);
}
}
When true, the skull will be included in the Face Mesh geometry.
The tracking context this effect is being applied to.
In most cases, providers can be accessed via the control property of an asset.
For example, we can jump to the last frame of an animated texture:
// @input Asset.Texture myAnimatedTexture
const myAnimatedTextureProvider = script.myAnimatedTexture.control;
const frameCountOfTexture = myAnimatedTextureProvider.getFramesCount();
myAnimatedTextureProvider.pauseAtFrame(frameCountOfTexture - 1);
Or do it in TypeScript:
@component
export class ProviderExample extends BaseScriptComponent {
@input()
myAnimatedTexture: Texture;
onAwake() {
const myAnimatedTextureProvider = this.myAnimatedTexture.control as AnimatedTextureFileProvider;
const frameCountOfTexture = myAnimatedTextureProvider.getFramesCount();
myAnimatedTextureProvider.pauseAtFrame(frameCountOfTexture - 1);
}
}
Returns a Promise that resolves once this Provider has finished loading its resource.
If the Provider is already loaded when ensureLoaded() is called, the returned Promise
resolves immediately. Otherwise it resolves once loading completes.
Completion is determined by the Provider's load status (see Provider.getLoadStatus). Some Providers only become loaded once supporting runtime data is available — for example, a Provider whose resource depends on tracking will not report loaded until the relevant tracking data has arrived — so the returned Promise stays pending until that data is produced.
This method is useful when Lens script needs to await a Provider before reading its data — for example, waiting for a remote-asset Provider to finish downloading before sampling it.
Fetch a Texture at runtime via RemoteMediaModule and wait for its Provider to finish loading before using it:
const internetModule = require("LensStudio:InternetModule");
const remoteMediaModule = require("LensStudio:RemoteMediaModule");
function loadImageTexture(url) {
const resource = internetModule.makeResourceFromUrl(url);
return new Promise((resolve, reject) => {
remoteMediaModule.loadResourceAsImageTexture(resource, resolve, reject);
});
}
const texture = await loadImageTexture("https://example.com/image.png");
// Wait until the fetched Texture's Provider has finished loading before using it.
await texture.control.ensureLoaded();
print("Texture ready, loadStatus: " + texture.control.getLoadStatus());
Returns a list of all expression names being tracked.
Use FaceRenderObjectProvider.onExpressionWeightsUpdate instead.
Returns the weight of the expression with the passed in name. See Expressions for valid expression names.
Use FaceRenderObjectProvider.onExpressionWeightsUpdate instead.
Returns a Float32Array of all expression weights being tracked.
Use FaceRenderObjectProvider.onExpressionWeightsUpdate instead.
StaticgetReturns the fully-qualified JavaScript type name for this class (for example, "Component.Camera"). This is a static accessor (no instance required) and returns the same value as the instance getTypeName().
Returns the name of this object's type.
Returns true if the object matches or derives from the passed in type.
Returns true if this object is the same as other. Useful for checking if two references point to the same thing.
Mesh provider for a Face Mesh. Accessible through the
controlproperty on a Face MeshRenderMesh.Example