1.2 3D Inscription (Experimental Stage)
Last updated
Last updated
This is an explanation of the attribute settings for 3D resources in Metaverse Resources. These attributes are still under experimental development, and any reference and usage at this stage are for testing purposes only and do not represent the final resource specification. Developers should assess the related issues at their own discretion.
3D resources are much more complex than 2D resources, and their file sizes are relatively larger as well. They also occupy more space on the blockchain and their configurations are also more complex.
This experimental protocol divides 3D models into:
ModelData (Model Data): The basic data of the model, generally in universal model file formats like OBJ, FBX, GLB, etc., or specific engine package resources such as UnityAsset, UEAsset, etc. This includes all vertices, normals, tangents, and other relevant data of the model.
MaterialData (Material Data): Base : If there is a complete material data format, it can be directly referenced.
Textures : The texture resources referenced by the material.
Shader : The shader resources on which the material depends.
Animation : The animation data of the model, which records the keyframe information for one or more animations. This is usually highly dependent on the engine but can also use universal data formats. Physical : The physical properties of the model, used for physics calculations.
Other : Other data of the model.
Some 3D resource data formats can not only store the basic data of the model but also materials, shaders, and even animations, such as GLB, UnityAsset, UEAsset, etc.
modelsrc
Yes
On-chain address of the model's source files
modeltype
Yes
Type of 3D model file; can be OBJ, FBX, GLB, UnityAsset, UEAsset, etc.
Material settings can either directly reference a material resource format or be assembled through Texture and Shader references. Grouped under <meterialdata>.
src
No
If present, the data source address for the material. Ready to use.
type
No
Linked to data source; can be UnityAsset, UEAsset, Mat, etc.
basemat
No
Default texture, e.g., leather, metal, marble, etc.
basecolor
No
Default color
src
Yes
Data source address for the related texture image.
type
No
Image format, e.g., PNG, JPG, TGA, etc.
propname
No
Property keyword when referenced by shader, e.g., main, normal, specular, etc.
Shader is a critical dependency in material resources and determines the rendering. Developers can upload their custom shader code.
Due to differences in compilation and parsing methods across engines and platforms, the 'type' attribute is crucial.
About <shader> key:
src
Yes
Data source address for the shader source code or a parseable file.
type
No
Shader file parsing format; can be GLSL, HLSL, UnityAsset, UEAsset, etc.
propname1
No
Default attribute settings in shader. E.g., propname1="1.8"
Animation.
...
...
propnameN
...
Similar to 2D settings and <animation> keys:
src
Yes
On-chain address of the animation data resource
type
Yes
Parsing format for animation files; can be anime, ani, UnityAsset, UEAsset, etc.
name
Yes
Animation name
duration
Yes
Playback speed
loop
No
Whether it loops or not
weight
No
Weight for physical calculations
friction
No
Coefficient of friction
status
No
Default is static; can be static or dynamic
type
No
Type of model, e.g., avatar, building, transportation, plant, etc.
speed
No
Initial speed if it's a dynamic 3D object.
others
...