Difference between revisions of "HowTo:Configure Dynamic AR Content"
(→Examples) |
(→Examples) |
||
Line 162: | Line 162: | ||
When configuring a tag without the ''UBIK-UID'' sub-tag, the object is searched based on the value of its ''MarkerID'' property, which is the compared to the value of the ''TrackingID'' attribute. If the ''UBIK-UID' tag exists the object is searched based on the value inside the ''UBIK-UID' tag. | When configuring a tag without the ''UBIK-UID'' sub-tag, the object is searched based on the value of its ''MarkerID'' property, which is the compared to the value of the ''TrackingID'' attribute. If the ''UBIK-UID' tag exists the object is searched based on the value inside the ''UBIK-UID' tag. | ||
− | = | + | = Client = |
In order to use the previously configured xml's, you can use either the ID Marker activity or the Markerless activity on the {{UBIK}} Android Client. | In order to use the previously configured xml's, you can use either the ID Marker activity or the Markerless activity on the {{UBIK}} Android Client. | ||
Revision as of 11:49, 17 February 2015
Introduction
The Dynamic AR Content feature allows the user to see different content according to a marker configuration. The configurable content are 3D objects, movies and UBIK® objects. Currently this feature is enabled for ID Markers and Markerless scanning, meaning image tracking. Therefore, every time the user has scanned an ID marker or a picture, the corresponding object (3D object, movie or UBIK® object) will be processed and, according to the configuration, displayed on the screen.
Setup
In order to be able to use the feature properly, a certain folder structure is required and can be found at the following link FolderStructure. The setup folder contains:
- A root folder, named UBIK
- The UBIK root folder contains a child folder, named ARConfig
- The ARConfig contains two child folders named IDMarker and Markerless
- IDMarker folder contains the resources and configuration files needed for scanning an id marker
- Markerless folder contains the resources and configuration files needed for scanning a picture
- IDMarker and Markerless folder contain a res and a conf folder
- The res folder contains all the resources to be shown, like 3D objects, videos and links to UBIK® objects
- The conf folder contains all the configuration files
The following shows an exemplary sketch of the folder structure:
/UBIK/ARConfig/
- IDMarker
- conf
- TrackingData_Marker.xml
- Action_Mapping.xml
- res
- .obj
- .png
- .jpg
- .mtl
- .3g2
- .md2
- conf
- Markerless
- conf
- TrackingData_Game.xml
- Action_Mapping.xml
- res
- .obj
- .png
- .jpg
- .mtl
- .3g2
- .md2
- conf
A senseful configuration always consists of a tracking configuration (in one of the TrackingData.xml) and a corresponding action configuration (in the parallel ActionMapping.xml). So when the pattern configured in tracking is recognized by the camera, the configured action is triggered.
Tracking Setup
The first step is to configure the tracking data xml in order for UBIK® to recognize scanned pictures and ID's. In case the marker is a picture (image), the location of the pictures must also be provided. In the example it's ../res/pic_name.(png, jpeg). The id located in the tracking data xml should be the same as the order of the id in the list of ids.
- This example below the configuration of the location of the image:
<SensorCOSID>1</SensorCosID>
<Parameters>
<referenceImage widthMM="420" heightMM="297">../res/img_pic.png</referenceImage>
</Parameters>
</SensorCOS>
Action Setup
After the folder is configured, the next step is to validate the schema against an online validator. A solution can be found at Online XML Schema Validator. The schema used to validate against can be found inside the UBIK Folder and is named xsd_schema_validation.
The action mapping xml contains different actions such as GeometryAction (3D Object), MovieAction and UBIKObjectAction.
- The following xml shows an example configuration:
<GeometryAction TrackingID="1">
<GeometryResource>
<ResourcePath>pump.obj</ResourcePath>
<Scale>100</Scale>
</GeometryResource>
</GeometryAction>
<GeometryAction TrackingID="2">
<GeometryResource>
<ResourcePath>pump.obj</ResourcePath>
<Scale>100</Scale>
<RotationDegrees>
<Z>90</Z>
</RotationDegrees>
</GeometryResource>
</GeometryAction>
<UBIKObjectAction TrackingID="3">
<UBIK-UID>a5aa5a70-591f-11e3-949a-0800200c9a66</UBIK-UID>
</UBIKObjectAction>
</TrackingActionMapping>
All Action tags must specify a Tracking id, as an attribute. The Tracking id must exist in the corresponding tracking xml within a <SensorCOSID> tag.
Displaying 3D objects
3D objects can be displayed using the <GeometryAction> tag. The sub-tag <GeometryResource> defines the content and the parameters for displaying the 3D object.
GeometryResource Tag
The GeometryResource contains:
- Resource path: the resource path of the 3D object or video to be displayed.
- Scale: if specified, the 3D object will be scaled to this size.
- OffsetMillimeters: if specified, this value will be added to the position of the detected marker when displaying the 3D object. The offset can be defined along the X, Y and Z axis.
- RotationDegrees. if specified, the 3D object will be rotated by this value against the detected marker.
- Resource path example. pump/pump.obj.
- OffsetMillimeters example.
<X>10</X>
</OffsetMillimeter>
In the following rotation example the user must see the 3D object rotated around X axis and around Z axis 90 degrees. Note that the angle is in radians.
- RotationDegrees example.
<X>0.5707</X>
<Z>0.5705</Z>
</Rotation>
Displaying movies
Inside the MovieAction tag there can be two possible resources defined, a MovieResource and a PlayButton resource.
MovieResource Tag
Movies can be displayed using the <MovieResource> tag, which basically contains the same values as the GeometryResource, except the rotation vector.
PlayButton Tag
By using the <PlayButton> tag, the movie will not start immediately but there will be a geometry shown in between which basically contains the same values as the GeometryResource tag. Its purpose is to start the video only when this intermediate geometry is touched.
<MovieResource>
...
</MovieResource>
<PlayButton>
<Scale>150</Scale>
<ResourcePath>plane/plane.obj</ResourcePath>
<RotationDegrees>
<Z>3.14</Z>
</RotationDegrees>
</PlayButton>
</MovieAction>
Displaying a UBIK object dialog
The <UBIKObjectAction> allows to bring up a popup to navigate to a UBIK® object when scanning either a picture or an id marker. The tag must contain the tracking id attribute and, optional, the <UBIK-UID> tag. When configuring a tag without the UBIK-UID sub-tag, the object is searched based on the value of its MarkerID property, which is the compared to the value of the TrackingID attribute. If the UBIK-UID' tag exists the object is searched based on the value inside the UBIK-UID' tag.