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.