The quest system allows users to build narrative structure in space.
Usually driven by interactions with NPCs in your regions, quests can lead users through gameplay or learning and training modules, or through tours, stories or other step based user engagements.
Quest Manager
Create an empty game object in your scene, set it to location 0,0,0 and add the quest manager game component to it.
Click the reserve ID button in the inspector to assign a unique id to your quest.
Click to add a step and give the quest a name.
Quest type
You can set your quest to be type Daily – users can play it once every day. Or type Main – users can only play it once. (Allen I do not know what type side and type Activity do?)
Quest ID
The quest ID is generated automatically when you click reserve.
Quest Dependency IDs
You can chain quests using dependency ID-Set the size to the number of quests that need to be completed before this quest is available. Then add the individual quest ID of each quest that must already be completed by the user.
This allows you to have multiple quests initiated by the same quest NPC, in series.
Reward ID ?
Quest Step 1-Quest NPC
All quests are started by the user clicking an object; the “Quest NPC;” and opting in to the quest.
To turn any object in your scene into the Quest NPC, add the Quest NPC component to it. (You might normally make the Quest NPC a humanoid NPC, with the Statue component on it, rendering it as a character, but you can add the Quest NPC component to anything with a collider on it that the user can click to start the quest.)
Once you have added the quest NPC component to an object in your scene, drag that object into the Destination NPC field in the first step of your quest. Now when a user clicks that object it will allow them to start your quest.
You can add quest steps one at a time, building your story.
Each time you add a step it will duplicate your last step.
Steps can be moved up and down in the sequence using the arrows on the step title bar.
Quest step types;
NPC
The NPC step type is used to start the quest. (Allen do we need this in the drop down list?)
Activity
The activity step is a general step which you can use to deploy a wide range of activities which the user must complete before the next step initiates.
Activity
You can drag any “Startable” component into into the Activity field in this step.
The space quest system includes a range of standard startables you might want to use; for requiring a user to wear a particular clothing item or sit on a particular furniture item.
For more information on startables go here.
Scripting your own startables
You can also write your own startables, which can be full game rounds or learning modules, which the user has to complete before moving on with the quest.
Autoplay
Tick autoplay if you want this step to start immediately the prior step completes. If you leave autoplay unticked the user will need to click the quest NPC to start the step.
You may need to leave the Autoplay unticked if your prior step is one that is registered as complete at the start of the step and the user will still engaged in an unrecorded activity before needing to move on.
For instance if the prior step was an activity step using the StartableGestureRequirement, the quest system will register the user has having completed the step when they initiate a gesture but that gesture may take 30 seconds to play, during which you may not want the next step to initiate.
Replay Discussion NPC
The Replay Discussion NPC is the object in the scene the user needs to click if they have failed to complete the quest step. This may be because the quest step is a game component which can be failed; or a learning component with a passing grade. Or it may be because they logged out or were disconnected half way through the deployment of the startable.
The replay NPC can be your original Quest NPC but if that is geographically some distance from the relevant quest step you may chose to put another object near the quest step activity which the user can click to restart the step.
This can be any object with the Quest NPC component added to it, dragged into the Replay Discussion NPC field in the step.
Area Hint
If you are using a navmesh to guide your users around the quest, the area hint will tell them where to go. It might usually be the same object as the Replay Discussion NPC but it can be any game object you drag into the field.
Quest
The quest step allows you to embed one quest inside another. This is a great way to move users from one region to another. (You can also use the Quest Game Object component to spawn teleportation portals at the right moment in front of the user, leading them to the next region.)
Subquest ID
Paste the ID of the child quest here.
Visit Location
The visit location step requires the user to go to a specific place in your region to continue the quest.
Area to Visit
Drag any game object including any NPC into this field to require the user to visit this location before the quest continues.
This step can be used in conjunction with the navmesh to lead them there via a visible path.
For more information on setting up the navmesh in your region go here. (need link)
Proximity (meters)
Set the proximity in meters to the selected game objects.
Collection
The collection step requires the user to click on and collect a specific game object in the scene.
Collectible Item
Add the Quest NPC component to the object you want the user to click on and collect. Drag the object into the Collectible Item field in the quest step. Make sure it has a collider on it so the user can click it.
Area Hint
If you want the navmesh to lead the user to the collectible, you can drag it into the Area Hint field. If you want them to have to search without a hint leave it empty or add your original Quest NPC to guide users back to the quest area in the event they leave the region during this step.
Counter
?
Conversation
The conversation step allows you to build cut scenes in the quest, with successive combinations of dialogue, camera, audio and animation on the NPC and the player.
To edit the conversation step open the Quest Canvas (from the button at the bottom of the quest chain in the inspector window).
Conversation Actors
The conversation actors can be one or more NPCs and the play themselves.
Add an actor and drag any object with the Quest NPC component attached to it to the NPC Object field.
Actor Name
This will appear in dialogue panels during the conversation.
Is Player
Tick this to use the player as your actor. Add %PLAYER% to the Actor Name field to use the username in dialogue.
Move to location
Add an empty game object in the scene to this field to move your player to this location for the duration of the conversation.
This allows you to align the player with specific camera shots defined by you during the conversation.
Conversation dialogues
Once you have defined the actors in your conversation you can add as many steps to the conversation as you want.
Actor
Choose the actor narrating the dialogue step.
Text
Enter the text as it should appear in the dialogue panel.
Animations
You can add an animation to the NPC or the player during the step.
Wait for continue?
Tick this if you want the dialogue step to remain on the screen until the user clicks continue.
Wait timeout
Define a time in seconds if you want the dialogue to end and the next to start automatically without the user clicking continue.
Camera angle
Create an empty game object in your scene and position it so that it looks where you want the user's camera to look during the dialogue.
You can position your view in the scene view in the Unity editor and then highlight the game object and in the top menu go to GameObject / Align with view to move the position and rotation of the game object to your view.
Dialogue Audio
You can add audio clips to the dialogue by dragging an audio file from your project to this field.
Use Lip Sync
Tick this if you want the mouth of the actor to be animated by your audio file.
Branch NPC allows the user to setup several option for player to choose. It will lead to different quest steps based on the user's choice.
Startables are components you can drag into the activity step of a quest.
You attach the startable component to the relevant game object; it some cases it might be an empty game object created just to house the startable; and then drag that object into the Activity field of an Activity type step in your quest.
StartableGestureRequirement
This will require the user to play a specific gesture before the quest moves on.
ItemID
The item ID for a specific gesture you need played for it to succeed. You can get this from the virtual goods component attached to the gesture once it has been submitted, or from the item list in your account at curator.sine.space
Any
Tick this if you want playing any gesture to complete the quest step.
Min Participants
Defines the minimum number of gesture participants required to complete the step. So, for instance, you can set to 2 and tick Any to require the user to do any two person gesture with another user.
Requires the user to wear a specific clothing item.
Clothing Item ID1 / ID2
Allows you to specify for instance one male and one female item.
You can identify the ID of a clothing item from the virtual goods component attached to the gesture once it has been submitted, or from the item list in your account at curator.sine.space
This requires the user to sit on a specific furniture item.
Target Object
Add the SeatImproved component to any game object in your scene and then drag that game object into the Target Object field. Remember this item can also be animated so you could for instance use this step to fly someone from one part of your region to another.
The step will complete as soon as the user sits so you may want to make the next step not initiate automatically but require the user to click another Quest NPC object to continue, if sitting initiates a sequence that you want to play out before the next step launches.
This requires the user to have a specific item in their inventory before the quest continues.
They do not need to use the item; they just need to have it in inventory.
Item ID
Put the ID of the item here. You can identify the ID from the virtual goods component attached to the gesture once it has been submitted, or from the item list in your account at curator.sine.space
This requires the user to visit a specific region for the quest to continue.
Background ID
Put the region ID in this field to specify where the user needs to go.
This requires the user to take a snapshot with the in world snapshot feature.
Number of Snapshots
You can specify the number of snapshots the user needs to take in order to complete the step.
This step will teleport the user to a specific location in the same region as the quest.
Target
Drag any game object in your scene into the target field to teleport the user to that location.
To ensure they do not arrive on top of a tree or similar, it usually makes sense to create an empty game object exactly where you want them to arrive.
Delay
Allows you to add a time delay before the teleportation. A small delay (1 second) is recommended to ensure all actions as part of the prior step have time to complete. A longer delay might for instance be used in conjunction with a specific gesture playing in the prior step.
Startable Timed Counter is a game component you can add to your quest, requiring the user to collect a number of counters inside a specified time frame.
Use this startable in conjunction with objects in the scene that have either the Quest Counter Clickable or Quest Counter Proximity component attached.
Number required
Specify the number of counters the user needs to collect. This can match the total number available in the scene or there can be far more in the scene than the required number, depending on the nature of your game.
Seconds Limited
Define the duration of the round. If the user fails they can reclick the NPC to restart the step.
Counter ID
Add whatever ID you have manually applied to the Counter ID field of the Quest Counter Clickable or Quest Counter Proximity component attached to your counters.
Add the Quest Counter Clickable component to counters the user must click on to collect.
Counter ID
Enter an ID of your own creation to the Counter ID field and add the same ID to the Counter ID field of the Counter quest step or the Startable Timed Counter component.
Add the Quest Counter Proximity component to counters the user must be within a certain proximity of in order to collect.
Counter ID
Enter an ID of your own creation to the Counter ID field and add the same ID to the Counter ID field of the Counter quest step or the Startable Timed Counter component.
Trigger Distance
Specify the distance from the object that will trigger a successful collection.
QuestGameObject – DOES NOT WORK IN EDITOR
This allows you to rez and and derez items in your scene during specified quest steps.
Configurable parameters:
- QuestID - MinStep - MaxStep
Attach to other objects (preferably a parent group, if you're updating multiple in a single step)
It enables or disables the object it is on, based on whether the user is inclusively on any step between Min and Max.
Objects can only be seen by the player.
PlaceAtOrigin
This will place an object at the origin of the avatar; 0,0,0 relative to that avatar, non-attached.
To offset, place empty parent object with PlaceAtOrigin script and then offset visible object from invisible parent.
%PLAYER% - DOES NOT WORK IN EDITOR
Use in quest text fields to add player name to dialogue.
Replay NPC
If it's possible to fail an activity step drag the quest NPC into the “Replay NPC” field. It will show a "!" asking the user to repeat the step.
Avatar effect NPC – CAN ONLY TEST INWORLD
Apply to NPCs designed to automatically accept gesture invites.