469 lines
16 KiB
JSON
469 lines
16 KiB
JSON
{
|
|
"$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
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|