xrfragment/schema/xrfragment-engine-prefixes.json

470 lines
16 KiB
JSON
Raw Normal View History

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://xrfragment.org/schema/xrfragment-engine-prefixes.json",
"$version": 34,
"title": "XR Fragments Engine Prefixes",
"type": "object",
"flatten": true,
"properties": {
"engine": {
"type": "enum",
"enum": [
["NONE", "-- Select --", ""],
["JANUSXR", "JanusXR", ""],
["THREEJS", "Three.js", ""],
["GODOT3", "Godot 3", ""],
["GODOT4", "Godot 4", ""],
["AFRAME", "AFRAME", ""],
["BABYLON", "Babylon.js", ""],
["PLAYCANVAS", "PlayCanvas", ""]
],
"default": "NONE"
},
"engine_settings": {
"oneOf": [
{"engine_val": "JANUSXR", "$ref": "#/$defs/janus", "title": "JanusXR"},
{"engine_val": "THREEJS", "$ref": "#/$defs/three", "title": "THREE.js"},
{"engine_val": "GODOT3", "$ref": "#/$defs/godot3", "title": "Godot3 (beta)"},
{"engine_val": "GODOT4", "$ref": "#/$defs/godot4", "title": "Godot4 (beta)"},
{"engine_val": "AFRAME", "$ref": "#/$defs/aframe", "title": "AFRAME (beta)"},
{"engine_val": "BABYLON", "$ref": "#/$defs/babylon", "title": "Babylon.js (beta)"},
{"engine_val": "PLAYCANVAS", "$ref": "#/$defs/playcanvas", "title": "PlayCanvas (beta)"}
]
}
},
"$defs": {
"three": {
"oneOf":[
{"$ref": "#/$defs/three_material"},
{"$ref": "#/$defs/three_object"}
]
},
"aframe": {
"oneOf":[
{"$ref": "#/$defs/three_material"},
{"$ref": "#/$defs/three_object"}
]
},
"three_material":{
"title": "Material",
"description": "Material is THREE's abstract base material class",
"url": "https://threejs.org/docs/?q=material#Material",
"properties":{
"_three-type": { "title": "type", "type": "string", "default":"material", "description": "needed for blender UI"},
"-three-material.blending":{
"type":"string",
"enum": ["THREE.NormalBlending", "THREE.NoBlending", "THREE.AdditiveBlending", "THREE.SubtractiveBlending", "THREE.MultiplyBlending" ]
},
"-three-material.sides":{
"type":"string",
"description": "culling: which sides to render (less increases fps)",
"enum": ["THREE.FrontSide","THREE.BackSide","THREE.DoubleSide"]
},
"-three-material.map.offset.x+":{
"type":"number",
"description": "texture scrolling speed",
"default": 0.005,
"minimum": 0.000001,
"maximum": 1
},
"-three-material.map.offset.yx+":{
"type":"number",
"description": "texture scrolling speed",
"default": 0.005,
"minimum": 0.000001,
"maximum": 1
}
}
},
"three_object":{
"title": "Object3D",
"description": "Object3D is THREE's abstract base entity class",
"url": "https://threejs.org/docs/?q=Object3D#Object3D",
"properties":{
"_three-type": { "title": "type", "type": "string", "default":"object3D", "description": "needed for blender UI"},
"-three-renderOrder":{
"type":"integer",
"minimum": 0,
"maximum": 100
}
}
},
"janus": {
"oneOf":[
{"$ref": "#/$defs/janus_image"},
{"$ref": "#/$defs/janus_video"},
{"$ref": "#/$defs/janus_link"}
]
},
"janus_image": {
"description": "The <image> tag allows displaying images via url, relative file, or data-uri's",
"url": "https://janusvr.com/docs/build/roomtag/index.html#Link",
"title": "<image>",
"properties": {
"-janus-tag": {"type":"string", "default":"image"},
"-janus-id": {"type":"object.name"},
"-janus-col": {"$ref": "#/$defs/-janus-col"},
"-janus-lighting": {"$ref": "#/$defs/-janus-lighting"},
"-janus-fwd": {"$ref": "#/$defs/-janus-fwd"},
"-janus-scale": {"$ref": "#/$defs/-janus-scale"},
"-janus-rotation": {"$ref": "#/$defs/-janus-rotation" },
"-janus-locked": {"$ref": "#/$defs/-janus-locked"},
"-janus-draw-layer": {"$ref": "#/$defs/-janus-draw_layer"}
}
},
"janus_video": {
"title": "<video>",
"description": "The <video> tag allows displaying videos",
"url": "https://janusvr.com/docs/build/roomtag/index.html#Video",
"properties": {
"-janus-tag": {"type":"string", "default":"video"},
"-janus-id": {"type":"object.name"},
"-janus-thumb_id": {"$ref": "#/$defs/-janus-thumb_id"},
"-janus-col": {"$ref": "#/$defs/-janus-col"},
"-janus-lighting": {"$ref": "#/$defs/-janus-lighting"},
"-janus-fwd": {"$ref": "#/$defs/-janus-fwd"},
"-janus-scale": {"$ref": "#/$defs/-janus-scale"},
"-janus-rotation": {"$ref": "#/$defs/-janus-rotation" },
"-janus-locked": {"$ref": "#/$defs/-janus-locked"},
"-janus-draw-layer": {"$ref": "#/$defs/-janus-draw_layer"},
"-janus-gain": { "type":"float", "minimum":0, "maximum":1 }
}
},
"janus_link": {
"title": "<link>",
"description": "The <link> tag allows creating portals to other scenes",
"url": "https://janusvr.com/docs/build/roomtag/index.html#Link",
"properties": {
"-janus-tag": {"type":"string", "default":"link"},
"-janus-url": {"type":"string", "default": "https://..."},
"-janus-title": {"type":"string", "default": "my title"},
"-janus-thumb_id": {"$ref": "#/$defs/-janus-thumb_id"},
"-janus-draw_glow": {"type": "boolean", "default": true },
"-janus-draw_text": {"type": "boolean", "default": true },
"-janus-auto_load": {"type": "boolean", "default": false },
"-janus-mirror": {"type": "boolean", "default": false },
"-janus-col": {"$ref": "#/$defs/-janus-col"},
"-janus-lighting": {"$ref": "#/$defs/-janus-lighting"},
"-janus-fwd": {"$ref": "#/$defs/-janus-fwd"},
"-janus-scale": {"$ref": "#/$defs/-janus-scale"},
"-janus-rotation": {"$ref": "#/$defs/-janus-rotation" },
"-janus-locked": {"$ref": "#/$defs/-janus-locked"},
"-janus-draw-layer": {"$ref": "#/$defs/-janus-draw_layer"}
}
},
"janus_object": {
"title": "<object>",
"description": "The <object> tag allows displaying 3D files",
"url": "https://janusvr.com/docs/build/roomtag/index.html#Object",
"properties": {
"-janus-tag": {"type":"string", "default":"object"},
"-janus-col": {"$ref": "#/$defs/-janus-col"},
"-janus-fwd": {"$ref": "#/$defs/-janus-fwd"},
"-janus-scale": {"$ref": "#/$defs/-janus-scale"},
"-janus-rotation": {"$ref": "#/$defs/-janus-rotation" },
"-janus-locked": {"$ref": "#/$defs/-janus-locked"},
"-janus-lighting": {"$ref": "#/$defs/-janus-lighting"},
"-janus-draw-layer": {"$ref": "#/$defs/-janus-draw_layer"}
}
},
"-janus-thumb_id": {"type":"object.name"},
"-janus-lighting": {"type": "boolean", "default": false },
"-janus-col": {"type": "color", "default": "#FFFFFF"},
"-janus-fwd": {"type": "string", "default": "0 0 1"},
"-janus-scale": {"type": "string", "default": "1 1 1"},
"-janus-rotation": {"type": "string", "default": "0 0 0"},
"-janus-locked": {"type": "boolean", "default": false},
"-janus-draw_layer": {"type": "integer", "default": 0, "minimum":0, "maximum": 100},
"godot3": {
"oneOf": [
{ "$ref": "#/$defs/godot3_material" },
{ "$ref": "#/$defs/godot3_spatial" }
]
},
"godot3_material": {
"title": "SpatialMaterial",
"description": "The default Pmaterial for Godot 3.",
"url": "https://docs.godotengine.org/en/3.0/tutorials/3d/spatial_material.html",
"properties": {
"_godot3-type": {
"title": "type",
"type": "string",
"default": "SpatialMaterial"
},
"-godot3-params_blend_mode": {
"type": "string",
"description": "mat.params_blend_mode = SpatialMaterial.BLEND_MODE_MIX",
"enum": [
"SpatialMaterial.BLEND_MODE_MIX",
"SpatialMaterial.BLEND_MODE_ADD",
"SpatialMaterial.BLEND_MODE_SUB",
"SpatialMaterial.BLEND_MODE_MUL"
]
},
"-godot3-params_cull_mode": {
"type": "string",
"description": "mat.params_cull_mode = SpatialMaterial.CULL_BACK",
"enum": [
"SpatialMaterial.CULL_BACK",
"SpatialMaterial.CULL_FRONT",
"SpatialMaterial.CULL_DISABLED"
]
},
"-godot3-uv1_offset.x+": {
"type": "number",
"description": "mat.uv1_offset.x += speed * delta",
"default": 0.005,
"minimum": 0.000001,
"maximum": 1
},
"-godot3-uv1_offset.y+": {
"type": "number",
"description": "mat.uv1_offset.y += speed * delta",
"default": 0.005,
"minimum": 0.000001,
"maximum": 1
}
}
},
"godot3_spatial": {
"title": "Object",
"properties": {
"_godot3-type": {
"title": "type",
"type": "string",
"default": "Object"
},
"-godot3-render_priority": {
"type": "integer",
"description": "mat.render_priority = value",
"minimum": -128,
"maximum": 127
}
}
},
"godot4": {
"oneOf": [ { "$ref": "#/$defs/godot4_material" }, { "$ref": "#/$defs/godot4_node3d" } ]
},
"godot4_material": {
"title": "StandardMaterial3D",
"description": "The default PBR material for Godot 4.",
"url": "https://docs.godotengine.org/en/stable/classes/class_standardmaterial3d.html",
"properties": {
"_godot4-type": {
"title": "type",
"type": "string",
"default": "StandardMaterial3D"
},
"-gotod4-blend_mode": {
"type": "string",
"description": "mat.blend_mode = BaseMaterial3D.BLEND_MODE_MIX",
"enum": [
"BaseMaterial3D.BLEND_MODE_MIX",
"BaseMaterial3D.BLEND_MODE_ADD",
"BaseMaterial3D.BLEND_MODE_SUB",
"BaseMaterial3D.BLEND_MODE_MUL"
]
},
"-gotod4-cull_mode": {
"type": "string",
"description": "mat.cull_mode = BaseMaterial3D.CULL_BACK",
"enum": [
"BaseMaterial3D.CULL_BACK",
"BaseMaterial3D.CULL_FRONT",
"BaseMaterial3D.CULL_DISABLED"
]
},
"-gotod4-uv1_offset.x+": {
"type": "number",
"description": "mat.uv1_offset.x += speed * delta",
"default": 0.005,
"minimum": 0.000001,
"maximum": 1
},
"-gotod4-uv1_offset.y+": {
"type": "number",
"description": "mat.uv1_offset.y += speed * delta",
"default": 0.005,
"minimum": 0.000001,
"maximum": 1
}
}
},
"godot4_node3d": {
"title": "Node3D",
"properties": {
"_godot4-type": {
"title": "type",
"type": "string",
"default": "Node3D"
},
"-godot4-render_priority": {
"type": "integer",
"description": "mat.render_priority = value",
"minimum": -128,
"maximum": 127
}
}
},
"playcanvas": {
"oneOf": [
{
"$ref": "#/$defs/playcanvas_material"
},
{
"$ref": "#/$defs/playcanvas_entity"
}
]
},
"playcanvas_material": {
"title": "StandardMaterial",
"properties": {
"_playcanvas-type": {
"title": "type",
"type": "string",
"default": "material",
"description": "var mat = new pc.StandardMaterial()"
},
"-playcanvas-material.blendType": {
"type": "string",
"description": "mat.blendType = pc.BLEND_NORMAL",
"enum": [
"pc.BLEND_NORMAL",
"pc.BLEND_NONE",
"pc.BLEND_ADDITIVE",
"pc.BLEND_SUBTRACTIVE",
"pc.BLEND_MULTIPLICATIVE"
]
},
"-playcanvas-material.cull": {
"type": "string",
"description": "mat.cull = pc.CULL_BACK",
"enum": [
"pc.CULL_BACK",
"pc.CULL_FRONT",
"pc.CULL_NONE"
]
},
"-playcanvas-material.diffuseMapOffset.x": {
"type": "number",
"description": "mat.diffuseMapOffset.x += speed * dt",
"default": 0.005,
"minimum": 0.000001,
"maximum": 1
},
"-playcanvas-material.diffuseMapOffset.y": {
"type": "number",
"description": "mat.diffuseMapOffset.y += speed * dt",
"default": 0.005,
"minimum": 0.000001,
"maximum": 1
}
}
},
"playcanvas_entity": {
"title": "Entity",
"properties": {
"_playcanvas-type": {
"title": "type",
"type": "string",
"default": "entity"
},
"-playcanvas-renderOrder": {
"type": "integer",
"description": "entity.render.layers = [layerID] // Custom sorting via layers or drawOrder",
"minimum": 0,
"maximum": 100
}
}
},
"babylon": {
"oneOf": [
{
"$ref": "#/$defs/babylon_material"
},
{
"$ref": "#/$defs/babylon_node"
}
]
},
"babylon_material": {
"title": "StandardMaterial",
"properties": {
"_babylon-type": {
"title": "type",
"type": "string",
"default": "StandardMaterial"
},
"-babylon-material.alphaMode": {
"type": "string",
"description": "mat.alphaMode = BABYLON.Engine.ALPHA_COMBINE",
"enum": [
"BABYLON.Engine.ALPHA_COMBINE",
"BABYLON.Engine.ALPHA_DISABLE",
"BABYLON.Engine.ALPHA_ADD",
"BABYLON.Engine.ALPHA_SUBTRACT",
"BABYLON.Engine.ALPHA_MULTIPLY"
]
},
"-babylon-material.sideOrientation": {
"type": "string",
"description": "mat.backFaceCulling = true // or mat.sideOrientation",
"enum": [
"BABYLON.Material.ClockWiseSideOrientation",
"BABYLON.Material.CounterClockWiseSideOrientation",
"BABYLON.Material.TwoSidedLighting"
]
},
"-babylon-material.diffuseTexture.uOffset": {
"type": "number",
"description": "mat.diffuseTexture.uOffset += speed * scene.getAnimationRatio()",
"default": 0.005,
"minimum": 0.000001,
"maximum": 1
},
"-babylon-material.diffuseTexture.vOffset": {
"type": "number",
"description": "mat.diffuseTexture.vOffset += speed * scene.getAnimationRatio()",
"default": 0.005,
"minimum": 0.000001,
"maximum": 1
}
}
},
"babylon_node": {
"title": "AbstractMesh",
"properties": {
"_babylon-type": {
"title": "type",
"type": "string",
"default": "mesh",
"description": "var mesh = new BABYLON.Mesh('mesh', scene)"
},
"-babylon-renderingGroupId": {
"type": "integer",
"description": "mesh.renderingGroupId = value // 0 to 3 by default",
"minimum": 0,
"maximum": 100
}
}
}
}
}