Friday, 21 November 2008

ORIENT software

Hi all,

The latest version of the application can be found at http://www.macs.hw.ac.uk/~myl/rundir.zip

Currently, the scenario starts with the Dinner Party where the user appear as invisible. The users will not be able to interact with the characters but observe what they are doing. After this episode, the users will be brought to a hub (the beach) where they can move to the other episodes.

If you want to test the interaction and do not want to wait for the Dinner Party episode to finish, change "TheDinnerParty" in the following line: in OrientStart.xml in the folder rundir\data\scenarios\Orient\episodes to the episode you want to test. For example, TheMeal, TheGardening or TheRecycling

No matter which episode you start with, when you finish it, you can go to the blinking lights and press start on the dance mat to go to the beach hub. You can also switch episode half way through if you wish.

If you want the software to run in German, please refer to Michael's previous post.

Thursday, 20 November 2008

German Version Of Orient

The user interface is now also available in German. To switch to German, the language code in OrientProfile.xml should be switched from "EN" to "DE". Note that this does not change the agent dialogues to english. Sibylle and Natalie are still working on the translation for this. Once they are finished and we have integrated the translated sentences the agent language can be changed in data/scenarios/Orient/Orient.xml (in line 2 change the value of parameter language from "EN" to "DE").

Other components independent of the main software that are also different depending on language are the mobile phone interface (for RFID and speech recog) and the oracle components.

edit 21/11: Agent dialogues are now also in place in German. However additionally to what i have listed above every character's agent language also has to be switched from "en" to "de". So to summarize, switch language by changing the language code in OrientProfile.xml, the parameter "language" in line 2 of Orient.xml and the parameter agentLanguage for every character listed in Orient.xml.

Tuesday, 11 November 2008

User Interface Explained

Hi all,

this is an updated explanation of the Orient User Interface and the Keyboard shortcuts.

Starting Up:

starting up Orient brings you into training mode. You can recognize this mode by the little white "GO" button. In Training mode you can test the connection between user interface devices and Orient, so you can practise for example gesture and speech recognition. Pressing the "go" button loads Orient and starts the first scenario. Before you press the "Go" Button make sure the agent launcher server is running (more on that in this post from Samuel). If you want to use the real interaction devices and not just keyboard shortcuts the Orient Interaction Server also has to run.

Interaction Conventions:

The interaction conventions are as follows:
- A wii gesture selects the action a user wants to perform
- The mobile phone defines the context for that action (speech rec for characters, RFID for objects)
- The user interface will display on the screen which gesture, object and character are currently selected (if any)
- In order to start the action the user has to press Wii button A.
- If that happens the action is started and broadcasted to the agents but only if the action context is valid and set.
- To simulate the interaction devices without having them connected use keyboard shortcuts, described below.

Wii Gestures:
number keys 1-0 simulate the different Wii gestures

1: Greet
2: Consume
3: Pick
4: Accept
5: Reject
6: Attend To
7: Ask
8: Apologise
9: Give

Character Names (Speech Recognition):
function keys F1-F7 simulate the speech recognition for different character names

F1: Abbuk
F2: Errep
F3: Evui
F4: Ikop
F5: Ardoot
F6: Cerkith
F7: Tigrit

Items & Conversation Topics (RFID):

function keys F8-F12 (not F10) and the letters u, t , y and h simulate the item selection for different items via RFID

Conversation Topics (used together with the verbs Accept, Reject and Ask):
F8: Meal
F9: Gardening
F11: Recycling
F12: Drink

Items (used together with the verbs Consume, Pick, Accept, Reject, Give):
T: Seedpod
Y: Soil
U: Green Drink

Special RFID function:
H: Healing a dead Spryte

Wii Buttons:
- The Ctrl key simulates the "A" Button on the Wii to confirm/send an action
- Letter O key simulates The "1" Button on the Wii, Letter p key simulates the "2" Button on the Wii (used for operating the recycling machine)
- Letter L simulates the "+" button on the wii used to toggle the character names display

Camera controls via dancemat:

- The up arrow on the dancemat (keyboard shortcut W) moves the user forward
- The up-right arrow on the dancemat (keyboard shortcut E) turns the users view 45 degrees to the right
- The up-left arrow on the dancemat (keyboard shortcut Q) turns the users view 45 degrees to the left
- The down arrow on the dancemat (keyboard shortcut X) moves the user backward
- The "Start" button on the dance mat (keyboard shortcut S) has to be pressed when the user is at a portal point (signalled by blinking lights) to move to another scene

Wednesday, 15 October 2008

2D overlay user interface: Inventory list and "system busy" button

Hello all,

I have committed my changes regarding the user interface:
- It has now a inventory list with a backpack at the top-left corner of the screen. When user picks up objects in the first scene, objects will appear in the list. Alternatively, if user consumes the object (e.g. seedpod or liquid), then the object will disappeared.
- There is a busy (red) or idle (green) button at the top right corner of the screen showing if the system is busy and the user needs to wait. It works now with the user leaves one scene and enters another while the graphics are being loaded. It should also work during the process of recognising user's input from the system - if you have the input device (e.g. mobile phone for magic-word recognition, or Wii controller for gesture recognition), try it for me please.

Tuesday, 14 October 2008

Orient -> Oracle protocol

note: last time updated with some minor changes 15 /04 /09

I have updated the interface to the Oracle and added some additional events that are send to the Oracle. Here is a description of the communication protocol used for later reference.

Basics

- messages are sent individually
- messages are encoded in UTF-8
- message components are separated by single whitespaces
- every message is terminated with a null byte (\0)

Message Format (Input message)


there are 2 types of messages input and event messages. An input message is always sent when the user uses one of the input devices. Input messages always have the following format:


USER inputActionName inputActionParameter

where inputActionName is a placeHolder for the identifier of the type of inputAction and inputActionParameter stores the value. Refer to the list of possible input actions later in this post.


Message Format (Event actions)


An event message is always sent when an action ends in the world. This action could be caused by the user or any character. The format for event messages is the following:


ORIENT subject action target parameter1 parameter2 parameter3 ...


where subject is user or the name of the agent causing the action, action the name of the action, target the target of the action if there is any. Like the target all the parameters are optional, i.e. there dont have to be any and there can be many depending on the action. Further on in this post I list all actions plus the parameters they have. An exception to the message format are speech acts, those have an additional identifier for the meaning (the type of speech act). The speech act format looks like this:


ORIENT subject say-to meaning target parameter1 parameter2 parameter3


Speech acts are identified through their action name, which is always "say-to". Speech acts also always have a target. They can have parameters or not, depending on the type/meaning. Also it is worth noting that the user cannot speak, the subject will never be "user" for a "say-to" action


Possible Input Actions and their parameters

The following input events are transmitted:

- action: "UserGestureAction" , means the system has recognized a Wii gesture performed by the user, possible parameter values are: "GreetBack", "EatDrink", "UserPick", "Accept", "Reject", "GiveAttentionFollow", "Ask", "Apologise" or "Give"

- action: "UserNavigationAction", means the user has stepped on a dancemat button, possible parameter values are: "F", "FR", "R", "BR", "B", "BL", "L", "FL" for the direction buttons (forward, left, right back and the 4 diagonals) or "START" for the start button or "SELECT" for the select button

- action: "UserItemSelectionAction" means the system has recognized an item scanned by RFID, parameter value can be any item category or topic, for the current scenarios can take the values: "liquid", "seedpod", "soil", "greenDrink", "recycling", "meal", "gardening"

- action: "UserSpeechRecogAction" means the system has recognized user speech / magic word, parameter value for the current training data is any character name: "Abbuk", "Ardoot", "Cerkith", "Errep", "Evui", "Ikop" or "Tigrit"

- action: "UserWiiButtonAction" means the user has pressed a button on the Wii, at the moment only button A is used to execute user commands, but possible parameter values are: "A", "B", "-", "+", "1", "2", "Home", "Up", "Left", "Right", "Down"

- action: "UserMobilePhoneButtonAction" means the user has pressed the start or back button on the phone, we need this because speech recognition or RFID might take some time and in the mean time we might want to react to the button press event to assure the user that something is happening. possible parameter values are: "Start" and "Back"

Possible Character Actions:

for a list of possible character actions and their parameters please refer to the actions defined in the file rundir/data/characters/minds/Actions.xml, actions the user can carry out are also listed in this file

for the special case of speech acts, all possible meanings are listed in the file rundir/data/characters/minds/language/agent/en/language-set-1/templates.tdl

Failed User Actions:

if needed for certain rules we are going to implement user action failures. That means the user wanted to execute a certain action but couldn't. At the moment only few failed user action areimplemented but it is now very easy to add more. The actions implemented are:

USER fail-UserPick seedpod noItemHere // failed because there was no seedpod near the user

USER fail-UserPick noItemSelected // failed because there was no item selected

USER fail-Ask noItemSelected // failed because there was no item selected

USER fail-Accept noItemSelected // failed because there was no item selected

USER fail-EatDrink noItemSelected // failed because there was no item selected

USER fail-Reject noItemSelected // failed because there was no item selected

Note that one of the parameters will always be the reason for failure.

User Entering Scene:

As discussed with Rui and Paola on Skype, there will now also be an event sent, when a new episode starts. This event is an Orient event with the following syntax

ORIENT user EnterScene place

Concrete this means the following events are generated when starting the following episodes

ORIENT user EnterScene village - for episode the Meal
ORIENT user EnterScene glade - for episode the Recycling
ORIENT user EnterScene garden - for episode the Gardening
ORIENT user EnterScene beach - for the transition episode at the beach (walking form one scene to the other)



Thursday, 9 October 2008

Gibberish Speech Integration

Hi again!

I've just integrated gibberish speech. Gibberish audio file is picked according to the minimal distance (Levenshtein edit distance) to all the available sentences in the database.

Magic-words and voices definition is done in voices.xml located in rundir\data\audio-data\voices. Inside the same directory there is an index.csv file containing the available senteces and index keys database.

The voice definition is done per character in its XML file, by setting voice-id="x", where x is the id of the voice defined in voices.xml. Please change and test the voices attribution to each character, I've only set the default values.

Exclusive Behaviour Execution

Hi everyone!

Just changed the characters' behaviours to support exclusive action execution (only one character executing certain behaviour at a time).
This definition is optional and activated by setting argument ARG_SIMULTANEOUS_STR = true in the behaviour creation.
Please see SayTo behaviour for an example of how to use the exclusive action execution.

Monday, 6 October 2008

Ritual's Social Context remake

Since there were some changes to the way Rituals are represented in FAtiMA, I just redid the way Social Context is done on Rituals.

In terms of code, now there's no longer a representation of the Context. Instead, when the ritual's XML is parsed, the social context is loaded as pre-conditions.

The social context remains the same. For Time Conditions:

<Time value="morning" /> <!-- This means that all characters must be "in the morning" -->

<Time target="[character]" operator="=" value="morning" /> <!-- [character] must be "in the morning" -->

<Time target="[char-a]" operator="=" value="[char-b]" /> <!-- [char-a] must be in the same time as [char-b] -->


For Place Conditions:

<Place value="farm" /> <!-- This means that all characters must be at the farm -->

<Place target="[character]" operator="=" value="farm" /> <!-- [character] needs to be at the farm -->

<Place target="[char-a]" operator="=" value="[char-b]" /> <!-- [char-a] must be at the same place as [char-b] -->


Both Time and Place Conditions also support the keyword "any" on the value argument, which is as if the condition didn't exist (i.e. if the character is at any place or any time).

<Time value="any" /> <!-- The characters can be on any time -->

<Place value="any" /> <!-- The characters can be at any place -->


For Social Conditions:

<Social name="power" target="[char-a]" operator="=" value="[char-b]" /> <!-- [char-a] has the same power as [char-b] -->

<Social name="power" target="[char-a]" operator="<=" value="5" /> <!-- [character] has a power of 5 or lower -->

<Social name="host" target="[character]" operator="=" value="True" /> <!-- [character] is a host -->

Thursday, 2 October 2008

Agent Launcher Server Source Code

Added the Agent Launcher Server source code into the SVN repository.

It's located in the AgentMind folder.

Wednesday, 1 October 2008

FAtiMA - Server For Launching Agents

Agent minds can now be launched by an independent java server application.

This allows agents to be runned on a separate computer. Also it greatly improves the "debug" of the minds because the server prints, in it's console window, everything the minds are printing.

The configuration parameters for this application are defined in the Orient_Profile.xml (located in the runDir folder). The jar and respective batch file are also located in the runDir folder. Their names are: FAtiMA-AgentLauncherServer.jar and FAtiMA-AgentLauncher.bat

I'll give a quick explanation of these parameters:

1. UseRemoteAgentLauncher [true,false] - setting this to false means the ORIENT GUI will bypass the server application an launch itself the agents (just like before).

2. OrientIP - this is the ip of the computer running the graphical application. (WARNING: this IP is used by the Server application. So if you set the agents to run on another computer don't use localhost because then the server will say to the agents to connect to localhost and not to the computer running the GUI).

3. RemoteAgentLaucherServerIP - this is the ip of the computer running the server application.

4. RemoteAgentLaucherServerPort - this is the port where the graphical application will communicate with the server application. (WARNING: if you set it to a different port you have to change it also in the server application.)

5. DebugAgents [true,false] - a true value means the agents will launch the java graphical application that displays their needs, goals, KB, etc.

IMPORTANT NOTES:

Don't forget to launch the server application before running ORIENT otherwise it will freeze.

If you want to run the agents on another computer you have to copy both the jar and batch file MUST ALSO the data folder, otherwise agents will give an error saying they can't find the goals and actions xml files.


Tuesday, 30 September 2008

Oracle connected

I have added an oracle client (in separate project oracle) that connects to the oracle server. It is commented out at the moment (line 37 in renderwindow.cs) because the oracle server has to run for orient to start otherwise. I will fix this later along with not using a hardcoded port and ip anymore (then port and ip will be defined in orientprofile.xml - also for connection to the interaction devices server).

Monday, 22 September 2008

Finished Authoring for a High-Power Culture

Hi,

Just finished the authoring of the culture authoring for a high-power distance culture. There are 4 rituals:
- Greeting Ritual;
- Welcome to Party Ritual;
- Dinner Ritual;
- Toast Ritual.

This is currently working on FAtiMA only. It still needs to be integrated with the graphical layer.

Saturday, 20 September 2008

Sit on chair / Get up Behaviours

Added new behaviors for sitting on chair /getting up. Character now has a property telling whether it is seated in some place.
Changed body actions to have an animation for the character to perform when it's standing and another one when it is sitting. Actions themselves where not changed.
Changed move actions so that when the character is seated, it first gets up and then moves.

The syntax for these new behaviors is:

behaviour: sit on a given chair type available in the scenario
name: "sit-on-chair"
parameters:
  • "target" - the tag representing the type of chair available in the set where to sit the character (e.g.: "arm-chair", "simple-chair")

action: get up from the chair where the character is seated
name: "get-up"
parameters: none

Thursday, 18 September 2008

SVN Commit Warning

Hi all!

Just a warning for all people that are working directly with the SVN repository.
There have been some recent commits where the newly created files were not added to the repository.
Please make sure to add all files to SVN before commiting as the code will not compile in other machines due to those missing files.

Cheers

Wednesday, 17 September 2008

Fullscreen Mode Update

Just made a simple change to fullscreen mode. Because sometimes is easier to test the application in windowed mode (as other windows are displaying), now it only goes to fullscreen if so is defined in OgreConfig file.
So run OgreConfig.exe to choose window size and fullscreen mode.

Friday, 12 September 2008

user interface keybaord shortcuts

We are starting to integrate user interaction with the characters now. The way that we plan to do it is that a wii gesture selects the action a user wants to perform, and the mobile phone defines the context for that action (speech rec for characters, RFID for objects). The user interface will display on the screen which gesture, object and character are currently selected (if any). In order to start the action the user has to press Wii button A. If that happens the action is started and broadcasted to the agents but only if the action context is valid and set. To simulate the interaction devices without having them connected use the following keys:

number keys 1-0 simulate the different Wii gestures
function keys F1-F7 simulate the speech recognition for different character names
function keys F8-F12 simulate the item selection for different items via RFID
The Ctrl key simulates the "A" Button on the Wii to confirm/send an action
letter o key simulates The "1" Button on the Wii, Letter p key simulates the "2" Button on the Wii (used for operating the recycling machine)
letter l simulates the "+" button on the wii used to toggle the character names display

Camera controls via dancemat: At the moment, because its easier for debugging the free look camera is switched on (controls via w,a,s,d keys plus mouse). The dance mat cannot control this camera, but a different camera (1stperson). This can be changed by modifying the TheMeal.xml episode file and commenting out the line:

changestorymode newmode="freeNavigationMode"

and remove instead the comments form

changestorymode newmode="firstPersonNoFreeLookNavigationMode"

In this mode the controls that simulate the dancemat buttons are the keys q,w,e,d,c,x,z,a. Those keys form a cirlce that corresponds to the keys in the same pattern on the dancemat. The s key in the middle of that circle simulates the start button on the dance mat (might be later used to confirm if the user wants to leave from one scene to another).

Regarding the same topic, we thought it would be probably better if the agent minds were put to sleep while the user is in "input mode", i.e. setting the context for an action. So whenever the user waves the Wii or uses the phone, the agents would not perform any actions to let the user concentrate on the input task. The agents would wake up when the action is confirmed/sent or when the user cancels/leaves input mode. Feel free to comment or make suggestions.

Thursday, 11 September 2008

All characters

I have authored all characters for ORIENT. The test scenarios are available on SVN. All the .bat files and FAtiMA.jar have also been updated. Samuel has also completed the cultural component.

User: Controller, Interface and Entity

This is a quick note about revision 167 of Orient: I rearranged the user project quite a bit. I wanted to make a distinction between ION actions that are related to user input and those that are actual actions in the world that the agents can perceive. There is no 1-to-1 mapping between these as some user interface actions (e.g. scanning an RFID item) only set the context for a world action but do not actually start it. For this purpose there are now 2 ION entities for the user instead of one. UserController is the one that receives input. UserEntity is the one which represents the user as an agent in the world. UserController has actions like wiigesture, wiibuttonpress etc, whereas userentity has actions like "Greet", "Eat", etc. In between there is also a new class for the user interface (still empty, but I'm going to reuse the code that steve has created for user interface display)

Also, in the process of restructuring the user project, I have removed some more FearNot specific code that won't be needed in Orient and was not compatible to this new model. This refers to the class UserSpeechAction, the Interface IUserinterface and various places within the code where those are used.

Wednesday, 3 September 2008

New Character Body XML Definition

Changed actions, phonemes and facial expressions definition. All is defined individually per character in respective XML file.
Changed also ActionEditor to edit characters actions accordingly.

Note for phoenemes and facial expressions XML definition:
key is mesh pose name, value the expression name in the application domain, so change key only.

Tuesday, 2 September 2008

Pick / Drop Item Behaviours

Added new behaviours at Orient ION level that allow a character of picking and later droping items in certain locations of the set. Character animation is adjusted to item pick/drop site.
Added a list of picked items to the characters which can be displayed in the user interface so that the user can choose to perform a certain action over the picked items.
Some other behaviours like give-object or eat can later be changed to be used in conjunction with these new ones.
The syntax for these new character behaviors is:

bahaviour: pick an item from the current scenario
name: "pick-item"
parameters:
  • "item" - the name of the item to be picked

behaviour: drop or discard an item in some location
name: "drop-item"
parameters:

  • "item" - the name of the item to be droped
  • "target" - optional, the name of a set, character or other item where to drop this item, otherwise the item is just discard in the floor (eg: "table") Note: must contain a waypoint tagged "drop-spot".
  • "spot" - optional, the tag of the item-spot where to place the item (eg: "table-drop-spot"), otherwise in any item-spot.

Notes: you can check DemoFormApp to see an example of these behaviors.

Item Placement

Added item place/unplace actions at Orient ION level. As discussed, from now on item placement is done through this layer as character placement is by the StoryFacilitator.

The syntax for these item actions is:

action: place and show an item in some spot
name: "place-item"
parameters:

  • "target" - the name of a set, character or other item where to place this item (eg: "table")
  • "spot" - optional, the tag of the spot where to place the item (eg: "top-table-spot"), otherwise in any item spot
  • "fade" - optional, if set to "false", item visibility won't change

action: unplace and hide item from current spot
name: "unplace-item"
parameters:
  • "fade" - optional, if set to "false", item visibility won't change

Monday, 1 September 2008

DanceMat update

I have made some changes to the OrientInteraction project: the dance mat part now also works with our new PS2 to USB adapter here at HW (has a different device ID, something with "TigerGame") and furthermore I changed the code so that if a button is held down, this does not continuously generate events.

In the Orient project the dance mat from the interaction project is now properly linked up, so dance mat camera navigation now works. Also a bug is corrected that would crash Orient if two dancemat buttons were quickly pressed repeatedly.

Thursday, 28 August 2008

First Person Camera (pt2)

I have now implemented the changes to the 1st person camera that I was talking about in the last post.

First Person Camera (pt1)

I have started implementing the first person camera navigation. The latest version on svn implements it sort of, but I'm not happy with it yet. You can test it without a dance mat with the keys W,E,D,C,X,Z,A and Q. What I want to change now is first of all that the camera also changes orientation to face the way its walking and second that only the forward key actually moves the camera and the other keys just turn the camera, I think that will feel more natural without compromising the benefits of the navigation, we were discussing.

On another note, about 40 MB of new graphical materials are also added to the Orient repository. They are not integrated yet though.

Thursday, 21 August 2008

Gardening scenario

The gardening scenario is now on as well. Please remember to change the arguments in the worldTest when you try out the different scenarios. Same goes with userOptions.txt The arguments and options are available in the 'Setting up the AgentMind projects in Eclipse.doc' in the AgentMind folder. Characters involve in the gardening scenario are Erepo (should appear first at the entrance of the garden, he is to take the user to the garden), Arduus (the gardener) and Abbus (also in the garden, will be involved in the child argument - making a decision).

Recycling Scenario

Hi, I have done the authoring for the recycling scenario and refined the meal scenario. It is available on svn. For the meal scenario, the characters involve are Erepo, Abbus and Child while for the recycling scenario, the character is Cercops. Now, if you run the program, you can see that the user will need to greet the agent correctly before they interact with him. If the user did something wrong or reject the character invitation or offer, then the character would be angry and the user would have to apologise to continue interaction but if the user make mistake many times, then eventually, the character will stop interacting. Please try it out and if you detect any bugs, do let me know. The interaction flows are based on the scenario graph available at bscw in the directory eCircus/ORIENT/Working Materials/ALL-Scenario Graphs - with objects-gestures(1).doc
Please note that the needs value are not correct yet, they are just some random values I chose.

Tuesday, 5 August 2008

I've just done some changes for the speech recognition via mobile phones. We've trained the system on the (German pronounced) Spryte's names.

You can find the changes in the SVN.

Friday, 18 July 2008

2D overlay interface on ORIENT_UI & connected to IONServer (Augsburg)

Hello all,

I created a simple 2D overlay as the user input recognition interface on ORIENT_UI. This overlay displays text when user has input something or has no input for a long time (or in certain situation which requires the input, can be added later). There are some animated pictures displayed on this overlay to promted the user to wave the Wii controller.

The 2nd thing I did was to connect Augsburg's IONServerSocket project (with miniDemo GUI interface) to ORIENT_UI. First of all, I converted their projects to MSVS 2005 version - I think it is easier for other people who work on MSVS 2005 to run and change the codes. So now you can start ServerION.exe from ServerION\ServerION\bin\Debug, you will still see Augsburg's miniDemo GUI interface opened. Then you can run the new version of ORIENT_UI and click Go at the bottom-right corner - now two applicatoins are connected by socket. When you want to give some input, you should click on SeverION's miniDemo GUI window first, then you can either click 1 or 2 on your keyboard, then ORIENT_UI will give you the response. Mapping other keys on the keyboard or adding real input devices like Wiimote/DanceMat should be very straight foward becasue Augsburg has already got the codes in their project.

Comments and modifications are welcome. The 2D overlay is very simple at the moment (please use resolution 1280 x 960, otherwise you can change some code about setPosition for text and picture in the class User.Utility3.cs - apologize for this setting) , please feel free to discuss the changes with me. I haven't uploaded the new code to SVN, just want to make sure you guys are happy with the 2D overlay and the server connection parts first. So please download the all the code from the following website to test the changes:

http://homepages.feis.herts.ac.uk/~comqwch/ORIENTDevelopment.rar (67.17MB)

I just downloaded from SVN the most recent version of ORIENT 1 hour ago, and I have added new codes in the following classes:
ORIENT_UI.Programs.cs
ORIENT_UI.RenderWindow.cs
User.UserGestureAction.cs
(new class) User.Utility3.cs

Many thanks :) I look forward to hearing from you.

Tuesday, 15 July 2008

OSM Previewer

Hi guys!

Just created new OSM file previewer (used to test set graphical content) according to the current framework. Scene navigation is similar to previous versions, mouse controls camera rotation and WASD keys control camera movement.

Compiled version is also available at:
http://gaips.inesc-id.pt/~psequeira/orient/OSMPreviewer.zip

Cheers

Wednesday, 9 July 2008

Repeating Goal and Cultural Goals

Goals can be repeated now by using 'NewEvent' in the xml instead of 'RecentEvent'. For example,

<ActivePursuitGoal name="x">
<PreConditions ... />

<SucessConditions>
<NewEvent occurred="True" ... />
</SucessConditions>

<FailureConditions ... />

<ExpectedEffects ... />
</ActivePursuitGoal>


And the Precondition should not contain RecentEvent=false for the NewEvent in the SuccessConditions.

Goals that are shared by all in a culture can be specified using the same format as the ActivePursuitGoal except replacing the ActivePursuitGoal with CulturalGoal and have to be specified in the culture.xml file. These goals do not need to be listed in individual agent's xml file because it will be automatically added as goals for all agents.

Fullscreen mode

Hey everyone!

Only now I've had the chance to post about the new fullscreen graphical feature:

Created fullscreen display mode for Orient. Screen resolution will match resolution chosen in Ogre config, and restore desktop resolution upon exit. Removed old FearNot! interface widgets.
Still we need to get rid off old FearNot! code and StoryFacilitator actions.. I've talked to Rui and we'll have that ready soon.

About the initial screen, maybe it would be good to have an initial screen with background image and a "start" button like the one that exists now. What do you think?

New Agent Mind

Hi everyone, I have uploaded the FAtiMA source code with WorldTest and UserInterface (the version I showed at the Venice meeting). It is in the AgentMind folder. An instruction to set up the projects in eclipse is also provided (Setting up the AgentMind projects in Eclipse.doc).

Tuesday, 8 July 2008

Expected Outcome in triggers

Just added the option of specifying a expected outcome for a trigger, the syntax is the following:

<trigger expectedOutcome="EVENT(CHARACTER_NAME, ACTION_NAME, ACTION_PARAMETERS)">

    <condition>

       ...

    </condition>

    <actions>

       ...

    </actions>

</trigger>



Please note that there are no double/single quotes when specifiying the expectedOutcome. Here's an example of a correct expected outcome: expectedOutcome="EVENT(John, Kick, Luke)"

The expected outcome is used in the double appraisal process. If the author decides to specify an expected outcome for a trigger, then that expected outcome is sent to the active agents for them to assess. The response to the query about the expected outcome is used to score the trigger (in the default process the triggers are scored by querying the active agents about each of the narrative actions that will get executed if the trigger is fired).

user interaction integrated

I updated the "Orient" and "Orient-Interaction" repositories: just stuff transfered over from Mini Orient. When Orient is run now, a server is started that listens in the background to incoming connections. If Orient Interaction is run in parallel and a WiiMote is connected then everytime a user interface action is performed (Wii gesture, dance mat step, RFID scan, etc.) the Orient Interaction program connects to the server that sits within ION, which then raises a new ION action, of the respective type (i.e. UserGestureAction). At the moment there is nothing to respond to these actions yet.

Monday, 7 July 2008

Welcome

The Orient development blog is open now, lets see if this will work. Please create a small posting, when you commit changes to the SVN and quickly described what you have changed. Feel free to also use this as a technical discussion platform. Everything we discuss on here won't be lost later and might contribute to the SW documentation later. Cheers