Step 5 - Timeline
This page provides details about timeline.json and its underlying validation rules along with a sample timeline.json file of a Bowling Alley VR Scene for your review
Here is the timeline.json template that is to be used for filling the scene requirement specifications.
{
"animate_trigSync":{
"tsyncid":"",
"tsOntrigger":"true",
"SyncObjList":[ ],
"tSyncNote":""
},
"animate_nontrigSync":{
"ntsyncid":"",
"ntsOntrigger":"false", "ntSyncObjList":[ ], "ntSyncNote":""
},
"animate_trigAsync":{
"tasyncid":"",
"taOntrigger":"true", "tAsyncObjList":[ ], "tAsyncNote":""
},
"animate_nontrigAsync":{
"ntasyncid":"",
"ntaOntrigger":"false", "ntAsyncObjList":[ ], "ntAsyncNote":""
},
"routine": [ { "routeid":"", "starttime":"", "endtime":"", "order":[] }]
}
Here is the timelinevalidator.json with details about each specification along with its usage.
{
"tsyncid":{
"root": "animate_trigSync",
"req":"mandatory",
"typeof":"number",
"repeat":"notallow",
"%comment%":"Unique Identifier for animating scene synchronously based on a trigger"
},
"tsOntrigger":{
"root": "animate_trigSync",
"req":"optional",
"typeof":"boolean",
"repeat":"notallow",
"%comment%":"True or false flag if this is a triggered animation based an action"
},
"SyncObjList":{
"root": "animate_trigSync",
"req":"optional",
"typeof":"object",
"repeat":"notallow",
"%comment%":"List of objects are animated in a timeline that are triggered Synchronously"
},
"tSyncNote":{
"root": "animate_trigSync",
"req":"optional",
"typeof":"string",
"repeat":"notallow",
"%comment%":"place holder for additional notes for Sync object"
},
"ntsyncid":{
"root": "animate_nontrigSync",
"req":"mandatory",
"typeof":"number",
"repeat":"notallow",
"%comment%":"Unique Identifier for animating scene synchronously based on a non trigger"
},
"ntsOntrigger":{
"root": "animate_nontrigSync",
"req":"optional",
"typeof":"boolean",
"repeat":"notallow",
"%comment%":"True or false flag if this is a non triggered animation based an action"
},
"ntSyncObjList":{
"root": "animate_nontrigSync",
"req":"optional",
"typeof":"object",
"repeat":"notallow",
"%comment%":"List of objects are animated in a timeline that are non triggered ASynchronously"
},
"ntSyncNote":{
"root": "animate_nontrigSync",
"req":"optional",
"typeof":"string",
"repeat":"notallow",
"%comment%":"place holder for additional notes for Sync object"
},
"tasyncid":{
"root": "animate_trigAsync",
"req":"mandatory",
"typeof":"number",
"repeat":"notallow",
"%comment%":"Unique Identifier for animating scene asynchronously based on a trigger"
},
"taOntrigger":{
"root": "animate_trigAsync",
"req":"optional",
"typeof":"boolean",
"repeat":"notallow",
"%comment%":"True or false flag if this is a triggered animation based an action"
},
"tAsyncObjList":{
"root": "animate_trigAsync",
"req":"optional",
"typeof":"object",
"repeat":"notallow",
"%comment%":"List of objects are animated in a timeline that are triggered ASynchronously"
},
"tAsyncNote":{
"root": "animate_trigAsync",
"req":"optional",
"typeof":"string",
"repeat":"notallow",
"%comment%":"place holder for additional notes for ASync object"
},
"ntasyncid":{
"root": "animate_nontrigAsync",
"req":"mandatory",
"typeof":"number",
"repeat":"notallow",
"%comment%":"Unique Identifier for animating scene asynchronously based on a non trigger"
},
"ntaOntrigger":{
"root": "animate_nontrigAsync",
"req":"optional",
"typeof":"boolean",
"repeat":"notallow",
"%comment%":"True or false flag if this is a non triggered animation based an action"
},
"ntAsyncObjList":{
"root": "animate_nontrigAsync",
"req":"optional",
"typeof":"object",
"repeat":"notallow",
"%comment%":"List of objects are animated in a timeline that are non triggered ASynchronously"
},
"ntAsyncNote":{
"root": "animate_nontrigAsync",
"req":"optional",
"typeof":"string",
"repeat":"notallow",
"%comment%":"place holder for additional notes for ASync object"
},
"routine":{
"repeat":"notallow",
"req":"mandatory",
"typeof":"object",
"%comment%":"To mention a repeated routine of timeline actions"
},
"routeid":{
"root": "routine",
"req":"mandatory",
"typeof":"number",
"repeat":"allow",
"%comment%":"Unique identifier of a routine"
},
"starttime":{
"root": "routine",
"req":"optional",
"typeof":"string",
"repeat":"allow",
"%comment%":"Start Timestamps of routine"
},
"endtime":{
"root": "routine",
"req":"optional",
"typeof":"string",
"repeat":"allow",
"%comment%":"End Timestamps of routine"
},
"order":{
"root": "routine",
"req":"optional",
"typeof":"object",
"repeat":"allow",
"%comment%":"Order of items in a routine, mention the routine ids in a sequence to understand the order of events."
}
}
Here is a sample timeline.json file for a Bowling Alley VR Scene.
{
"animate_trigSync":{
"tsyncid":21,
"tsOntrigger":true,
"SyncObjList":[ ],
"tSyncNote":"this statement is blank"
},
"animate_nontrigSync":{
"ntsyncid":22,
"ntsOntrigger":false, "ntSyncObjList":[ ], "ntSyncNote":"this statement is blank"
},
"animate_trigAsync":{
"tasyncid":23,
"taOntrigger":true, "tAsyncObjList":["_pinsetter1","_pinsetter2","_pinsetter3",
"_pinsetter4","_pinsetter5","_pinsetter6",
"_pinsetter7","_pinsetter8","_pinsetter9",
"_pinsetter10" ], "tAsyncNote":"All these change their state unpon trigger by ball"
},
"animate_nontrigAsync":{
"ntasyncid":24,
"ntaOntrigger":false, "ntAsyncObjList":[ "_scoreboard", "_floor" ], "ntAsyncNote":""
},
"routine": [{ "routeid":11, "starttime":"00:30:00", "endtime":"00:55:00", "order":[21,23,22,24] },
{ "routeid":12, "starttime":"00:40:00", "endtime":"00:45:00", "order":[21,23] },
{ "routeid":13, "starttime":"00:10:00", "endtime":"00:50:00", "order":[22,24] }
]
}
Last updated