Interaction Tasks
Independent Research - Spring 2024 - XR Collaboratory, Cornell Tech
Student: David Lou
Overview
This is a package implementing tasks which can be used in the evaluation process for interaction techniques. The package includes a set of selection and manipulation tasks which can be used directly. Additionally, custom tasks can be created by extending the provided task according to the interface provided.
Components
Selection Task
Circle Selection Task
Circle Selection Task requires the user to select the target placed in a circle. The task is considered complete when the user selects all targets.
Property | Description |
---|---|
Interactor | The interactor used in the task |
Target Size | Size of the target |
Target Distance | The distance between user to the center of the circle where the targets are placed |
Number of Targets | Number of targets in the task |
Number of Distractors | Number of distractors in the task |
Task Completed with Info | A list of subscribers to the event that is called when the task is completed with the time taken to complete the task and the name of the task |
Target Prefab | The specific prefab to be used as target in this task |
Direction to Target In Degrees | The direction between user to the center of the circle where the targets are placed |
Radius | The radius of the circle placing targets |
Spatial Selection Task
Spatial Selection Task requires the user to select the target placed in the 3D space. The task is considered complete when the user selects all targets.
Property | Description |
---|---|
Interactor | The interactor used in the task |
Target Size | Size of the target |
Target Distance | The distance between user to the center of the circle where the targets are placed |
Number of Targets | Number of targets in the task |
Number of Distractors | Number of distractors in the task |
Task Completed with Info | A list of subscribers to the event that is called when the task is completed with the time taken to complete the task and the name of the task |
Target Prefab | The specific prefab to be used as target in this task |
Manipulation Task
Position Task
Position Task requires the user to move the target to a specific location. The task is considered complete when the target is within the error threshold in distance.
Property | Description |
---|---|
Interactor | The interactor used in the task |
Target Size | Size of the target |
Target Distance | The distance between user to the center of the circle where the targets are placed |
Number of Targets | Number of targets in the task |
Number of Distractors | Number of distractors in the task |
Task Completed with Info | A list of subscribers to the event that is called when the task is completed with the time taken to complete the task and the name of the task |
Target Prefab | The specific prefab to be used as target in this task |
Starting Area Size | The size of the starting area where all targets and distractors are originally placed |
Target Area Size | The size of the target area where all targets are to be moved to |
Precise Position Task
Precise Position Task requires the user to move the target to a specific location. The task is considered complete when the target is within the error threshold in distance.
Property | Description |
---|---|
Interactor | The interactor used in the task |
Target Size | Size of the target |
Target Distance | The distance between user to the center of the circle where the targets are placed |
Number of Targets | Number of targets in the task |
Task Completed with Info | A list of subscribers to the event that is called when the task is completed with the time taken to complete the task and the name of the task |
Target Prefab | The specific prefab to be used as target in this task |
Error Threshold In Distance | The error threshold in distance for the docking task |
Rotation Task
Rotation Task requires the user to rotate the target to a specific angle. The task is considered complete when the target is within the error threshold in degrees.
Property | Description |
---|---|
Interactor | The interactor used in the task |
Target Size | Size of the target |
Target Distance | The distance between user to the center of the circle where the targets are placed |
Task Completed with Info | A list of subscribers to the event that is called when the task is completed with the time taken to complete the task and the name of the task |
Target Prefab | The specific prefab to be used as target in this task |
Error Threshold In Degrees | The error threshold in degrees for the rotation task |
Docking Task
Docking Task requires the user to move the target to a specific location at a certain angle. The task is considered complete when the target is within the error threshold in distance and error threshold in degrees.
Property | Description |
---|---|
Interactor | The interactor used in the task |
Target Size | Size of the target |
Target Distance | The distance between user to the center of the circle where the targets are placed |
Number of Targets | Number of targets in the task |
Task Completed with Info | A list of subscribers to the event that is called when the task is completed with the time taken to complete the task and the name of the task |
Target Prefab | The specific prefab to be used as target in this task |
Error Threshold In Degrees | The error threshold in degrees for the docking task |
Error Threshold In Distance | The error threshold in distance for the docking task |
Task Feedback
Task Feedback is a component that can be used to provide feedback to the user during the task. The component can be used to display the time taken to complete the task.
Property | Description |
---|---|
Timer Text | Text Mesh for the timer |
Instruction Text | Text Mesh for the task instructions |
Installation instructions
To install this package, follow these steps:
- In the Unity Editor, click on Window > Package Manager
- Click the + button and choose Add package from git URL option
- Paste the URL to the package repository: https://github.com/xrc-students/xrc-students-sp2024-ir21-lou.git in the prompt and click on Add (make sure your URL ends with ".git")
- If the repository is private, you will be asked to authenticate via your GitHub account. If you haven't been granted access to the repository you will not be able to install the package.
- The package should be installed into your project
- You can download the package samples from under the Samples tab in the Package Manager
Note: Even though the package documentation is public, several XRC packages are private and accessible only to XRC staff and students.
Requirements
This package was developed and tested using the following Unity Editor version:
- 2022.3.7f1 LTS
Dependencies:
- XRC Core
- XR Interaction Toolkit
- Input System
- TextMesh Pro
Workflow
The workflow for using the tasks is as follows:
- Different tasks can be used directly in their separate scenes.
- There are prepared prefabs for each task in the package, which can be used directly in the scene.
- If the task manager is wished to be used, use TaskMainScene.unity scene.
- Add the sample task scene you wish to perform in the build settings.
- Assign the interactor in use to the task manager.
- Build or run the TaskMainScene.unity scene.
- There is a list of subscribers to the event that is called when the task is completed with the time taken to complete the task and the name of the task. The subscribers can be added in the inspector of each task.
Samples
TaskSample
The sample tasks contains sample scene for each task as well as a task manager scene (TaskMainScene) which can be used to run all the tasks in one scene.