Skip to main content

PROPOSED STATE: This integration profile is currently in a proposed state and is under community review. The specification may change based on feedback and implementation experience.

Avatar Profile

Purpose and Use Cases

The Avatar Profile extends the Basic Profile with properties specific to virtual characters and avatars. It defines metadata structures for customizable, interactive characters that can represent users or NPCs in virtual environments.

Key Use Cases:

  • User representation in virtual worlds and social platforms
  • Non-player characters (NPCs) in games and interactive experiences
  • Digital identity visualization
  • Cross-platform avatar portability
  • Virtual influencers and digital humans

Required Properties

The Avatar Profile inherits all required properties from the Basic Profile and adds the following avatar-specific properties:

{
"@context": {
"@vocab": "https://schema.org/",
"mvmd": "https://mvmd.org/v1/"
},
"@type": "VirtualCharacter",

// Basic Profile required properties...

"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "avatarProperties",
"name": "Avatar Properties",
"value": {
"type": "humanoid",
"style": "stylized",
"skeleton": "standard-humanoid",
"measurements": {
"height": 1.75,
"unit": "meters"
}
}
},
{
"@type": "PropertyValue",
"propertyID": "animationSupport",
"name": "Animation Support",
"value": {
"supported": ["idle", "walk", "run"]
}
}
]
}
PropertyDescriptionTypeNotes
@typeAsset typeStringMust be "VirtualCharacter"
avatarProperties.typeCharacter topologyStringE.g., "humanoid", "creature", "robot"
avatarProperties.styleVisual styleStringE.g., "realistic", "stylized", "cartoon"
avatarProperties.skeletonRigging systemStringStandard rig identifier
avatarProperties.measurementsBasic dimensionsObjectAt minimum, include height
animationSupport.supportedSupported animationsArrayList of basic animation names

Optional Properties

The Avatar Profile includes the following optional properties to enhance functionality:

{
// Required properties as above...

"additionalProperty": [
// Required additional properties...

{
"@type": "PropertyValue",
"propertyID": "customization",
"name": "Customization Options",
"value": {
"features": [
{
"category": "face",
"options": ["eyes", "nose", "mouth", "ears"],
"blendshapes": true
},
{
"category": "hair",
"options": ["style", "color"]
},
{
"category": "body",
"options": ["build", "height"]
}
],
"textures": [
{
"category": "skin",
"resolution": "2048x2048",
"customizable": true
}
]
}
},
{
"@type": "PropertyValue",
"propertyID": "expressiveness",
"name": "Expressiveness",
"value": {
"facialExpressions": true,
"voiceSupport": false,
"lipSync": false,
"emotionTriggers": ["happy", "sad", "angry", "surprised"]
}
},
{
"@type": "PropertyValue",
"propertyID": "equipmentSupport",
"name": "Equipment Support",
"value": {
"slots": ["head", "body", "hands", "feet"],
"attachmentPoints": ["rightHand", "leftHand", "back"]
}
}
]
}
PropertyDescriptionTypeNotes
customization.featuresCustomizable featuresArrayUser-modifiable aspects
customization.texturesTexture customizationArrayModifiable texture maps
expressivenessEmotional capabilitiesObjectExpression capabilities
equipmentSupportEquipment compatibilityObjectAttachment points for items

Complete Example

{
"@context": {
"@vocab": "https://schema.org/",
"mvmd": "https://mvmd.org/v1/"
},
"@type": "VirtualCharacter",

"name": "Universal Avatar",
"description": "Highly customizable humanoid avatar with extensive animation support and cross-platform compatibility",

"identifier": {
"@type": "PropertyValue",
"propertyID": "MVMD-ID",
"value": "avatar-2024-001"
},

"creator": {
"@type": "Organization",
"name": "Virtual Characters Inc.",
"url": "https://example.com/virtual-characters"
},

"dateCreated": "2024-03-15",
"dateModified": "2024-03-20T14:30:00Z",
"version": "1.2.0",

"license": "https://creativecommons.org/licenses/by/4.0/",

"contentUrl": "https://example.com/avatars/universal.glb",
"encodingFormat": "model/gltf-binary",
"fileSize": 3145728,

"thumbnail": "https://example.com/thumbnails/avatar.jpg",

"keywords": ["avatar", "humanoid", "customizable", "cross-platform"],

"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "avatarProperties",
"name": "Avatar Properties",
"value": {
"type": "humanoid",
"style": "stylized",
"skeleton": "standard-humanoid-v2",
"measurements": {
"height": 1.75,
"proportions": "standard",
"unit": "meters"
}
}
},
{
"@type": "PropertyValue",
"propertyID": "animationSupport",
"name": "Animation Support",
"value": {
"supported": ["idle", "walk", "run", "jump", "sit", "wave", "dance"],
"format": "glTF animations",
"retargetable": true
}
},
{
"@type": "PropertyValue",
"propertyID": "customization",
"name": "Customization Options",
"value": {
"features": [
{
"category": "face",
"options": ["eyes", "nose", "mouth", "ears", "jaw", "cheeks"],
"blendshapes": true,
"parameters": 24
},
{
"category": "hair",
"options": ["style", "color", "length", "texture"],
"presets": 12
},
{
"category": "body",
"options": ["build", "height", "weight", "musculature"],
"parameters": 18
}
],
"textures": [
{
"category": "skin",
"resolution": "2048x2048",
"maps": ["diffuse", "normal", "roughness"],
"customizable": true
},
{
"category": "clothing",
"resolution": "2048x2048",
"maps": ["diffuse", "normal", "roughness"],
"customizable": true
}
]
}
},
{
"@type": "PropertyValue",
"propertyID": "expressiveness",
"name": "Expressiveness",
"value": {
"facialExpressions": true,
"blendshapeCount": 52,
"voiceSupport": true,
"lipSync": true,
"emotionTriggers": ["happy", "sad", "angry", "surprised", "disgusted", "fearful", "neutral"]
}
},
{
"@type": "PropertyValue",
"propertyID": "equipmentSupport",
"name": "Equipment Support",
"value": {
"slots": ["head", "upper_body", "lower_body", "hands", "feet", "accessories"],
"attachmentPoints": ["rightHand", "leftHand", "back", "hip", "shoulder"],
"supportedWearableFormats": ["glTF", "VRM"]
}
},
{
"@type": "PropertyValue",
"propertyID": "platformSupport",
"name": "Platform Support",
"value": {
"vrmSupport": true,
"readyPlayerMeCompatible": true,
"vrChatCompatible": true,
"testedPlatforms": ["unity", "unreal", "mozilla-hubs", "meta-horizon"]
}
},
{
"@type": "PropertyValue",
"propertyID": "performanceOptions",
"name": "Performance Options",
"value": {
"lod": [
{
"level": 0,
"triangles": 50000,
"textureSize": 2048
},
{
"level": 1,
"triangles": 25000,
"textureSize": 1024
},
{
"level": 2,
"triangles": 10000,
"textureSize": 512
}
]
}
}
]
}

Validation Rules

Required Fields Validation

  • All required fields from Basic Profile must be present
  • @type must be "VirtualCharacter"
  • avatarProperties must include at minimum:
    • type: String value describing topology
    • measurements.height: Numeric value with unit
  • animationSupport.supported must contain at least one animation name

Optional Fields Validation

  • customization.features must be an array if present
  • customization.textures must be an array if present
  • expressiveness should include appropriate boolean values
  • equipmentSupport.slots and equipmentSupport.attachmentPoints should be arrays if present

Implementation Considerations

Cross-Platform Compatibility

  • Use standard bone/joint naming conventions following major platform guidelines
  • Provide VRM metadata when possible for wider compatibility
  • Test across multiple platforms to ensure consistent appearance and animations
  • Include LOD variants for different performance requirements

Animation Implementation

  • Ensure animations are properly retargetable
  • Provide base locomotion animations at minimum (idle, walk, run)
  • Test facial animations across platforms if implemented
  • Document platform-specific animation limitations

Customization Support

  • Follow platform-specific guidelines for customization parameters
  • Document the range and limits of each customizable feature
  • Consider providing default presets for quick setup
  • Test customization across different rendering engines