FreeWalk

Usage

※ Here we limit ourselves to a simple description.
  For a detailed explanation please refer to the FreeWalkV4 manual included inside the package

Execution

Execution method #1

  1. To start the program select Programs --> FreeWalk V4 --> FreeWalk V4 from the Start menu. (The example scenario "Evacuation guidance in the Imadegawa subway station" is launched.)
  2. Execute the scenario by pressing the 'play' button in the toolbar.

Execution method #2

You can launch other scenarios by double clicking the *.fwk files provided in the supplemental scenario packages.

back to top

Avatar control

(In the case when the scenario's defavatar's :control parameter is set to "default")

Normal displacement
With the cursor keys (up, down, left, right) move forward, backward, turn left and turn right respectively.
Strafing
Pressing and holding the shift key allows to move sideways ("strafe") using the cursor keys.
Pointing
While holding down the 'Q' key, point the avatar's finger using the cursor keys.
Turning the head
By holding the 'W' key you can turn the avatar's head in the direction of the cursor key pressed.
Gestures
Key '1' triggers a "wait" command gesture, and key '2' a "come" one. (See the notes below.)

back to top

Camera control

When the camera is not in "Walker Slave Tracking Mode" (when the toolbar's カメラ操作モード切替ボタン is down) the following actions are possible:

Normal displacement
Dragging the mouse.
Horizontal displacement
Drag the mouse while holding down the Shift key.
Changing the (camera's) viewing direction
Drag the mouse while holding down the Ctrl key.

back to top

Writing scenarios

Scenarios are described using the Q language (details on the Q Language Homepage.) In this document however, we will focus on writing working scenarios through examples. (For a detailed explanation on describing scenarios with the Q Language please download the Q Language Specification document found in the download area of Q's homepage, as well as the FreeWalkV4 manual included in the FreeWalk package.)

First, in the file assigned by the [Q] ScenarioFileName inside FreeWalk.ini (from now on referred to as the "scenario file") we write the header:

(load "define_cue_action.q")
(load "def_env.q")

This requests the loading of 2 files located in the [FreeWalk Install Folder]\Q\ directory: define_cue_action.q (parameter type descriptions) and def_env.q (environment settings descriptions).

There is no problem with leaving define_cue_action.q as it is but def_env.q is important when using the network so brief comments are provided next:

(defenv name
 :world_name
  ;; Name of the environment(string type). We recommend that you make it correspond to 'name'.
 :max_entry
  ;;Maximum number of allowed agents, etc.(integer type)
 :ip_address
  ;;IP address or machine name of machine to connect to (string type.)
 :port_number
  ;;Port number on machine to connect to (integer type.)
 :vrml_url
  ;;VRML reference URL address (string type)
 :vrml_path
  ;;Path to the local VRML folder, relative to [FreeWalk Install Folder] (string type.)
)

(Example)

(defenv space0
 :world_name  "space0"
 :max_entry  100
 :ip_address  "Machine0"
 :port_number 12345
 :vrml_url   "/shijo_street/"
 :vrml_path  "data\shijo_street\")

With such description, the community server will run on Machine0 by executing on it "FreeWalkCommunityServer.exe 12345 space0".

Next we prepare what will become our scene (an empty stage.) In the scenario file a description like the one bellow is made.

(defscenario scenario-scene ()
 (scene1))

(defagent Scene
  ;; Scene's name. This value can be used as a variable.
 scenario-scene
  ;; Assigned scenario. Here we have assigned the empty scenario "scenario-scene".
 :machine "Machine0"
  ;; The name of the machine to operate this scene.
 :location '(0.0 0.0 0.0 0.0)
  ;; Coordinates
 :shape '("scene.wrl")
  ;; VRML model
)

Now we allocate the user's avatar. It is described in the scenario file as follows:

(defscenario scenario-user ()
 (scene1))

(defavatar User
  ;; Name of the avatar. This value can be used as a variable.
 scenario-user
  ;; Assigned scenario.
 :machine "Machine0"
  ;; Name of the machine to control the avatar.
 :location '(10.0 0.0 10.0 0.0)
  ;; Initial position (x coordinate[m] y coordinate[m] z coordinate[m] direction[degrees])
 :shape '("user.wrl")
  ;; VRML model
)

Finally we assign the autonomous agents that will move responding to the assigned scenario.

(defagent agent
  ;; Agent's name. Can be used as a variable.
scenario-agent
  ;; Assigned scenario.
 :machine "Machine1"
  ;; Name of the machine that will control the agent.
 :location '(20.0 0.0 20.0 0.0)
  ;; Initial position and direction
 :shape '("agent.wrl")
  ;; VRML model
)

(defscenario scenario-agent ()
  ;; Simple scenario assigned to agent.
  ;; If the user-controlled avatar is near, come and go to that place.
 (scene1
  ((?position :name_s User :distance_range '(0.0 5.0))
    ;; If the user is in the 0.0 - 5.0 range
   (!walk :route '((0.0 5.0)) :relative #t)
    ;; Walk only (0.0 5.0) relative to its own current position
   (go scene2)))
    ;; scene2へと移る
 (scene2
  ((?position :name_s User :distance_range '(0.0 5.0))
   (!walk :route '((0.0 -5.0)) :relative #t)
   (go scene1))))

back to top

Editing the configuration file (FreeWalk.ini)

Leaving all details to the manual, here we focus on what you are most likely to use. Also, unless specifically prohibited, file and folder name assignments are done using the path relative to the folder where FreeWalk.exe is ([FreeWalk Install Folder]\Program\) or an absolute path.

[Q] Section

Q
Q's executable file name (Q.exe) is assigned.
Show
Select whether to show a detailed log in Q's standard output window. 1 for showing, 0 otherwise.
ScenarioFileName
Assigns the scenario file to use in FreeWalk.

[MachineName] Section

Of the form NewMachineName = ExistingMachineName
Assigns a different machine name to the machine to be used in the scenario. In this section you can have any number of these assignments.

[VRML] Section

VRMLFileFolder
Assigns the name of the folder to contain the VRML files.
ValidateDefenvVrmlPath
Selects whether the vrml_path's value set inside defenv is to be valid or not. A 1 makes it valid, 0 will invalidate it. If made invalid, the value set for VRML file folder is used as the VRML file path 'as is'.

[Scene] Section

SkyBackgroundEnable
Selects whether to use sky background or not. 1 = use, 0 = don't use. If your machine's specs are not high enough it is probably best to set to 0.
FogEnable
Sets whether to use fog or not. 1 = use. 0 = don't use. If your machine's specs are not high enough it is probably best to set to 0.
AlphaProcessEnable
Selects whether to do alpha processing or not. 1 = enable, 0 = disable. If your machine's specs are not high enough it is probably best to set to 0.
ReductionFrameEnable
Set whether to enable reduction frame or not. 1 = enable, 0 = disable.

[Server] Section

UseServer
Enable FreeWalk to work on a network environment. 1 = network, 0 = standalone.
RequestPortNo
Transmit port no. for the FreeWalk application.
ReceivePortNo
Receive port no. for the FreeWalk application.

[Broadcast] Section

BroadcastPortNo
Transmit port no. of the agent and camera position information.
ReceivePortNo
Receive port no. of the agent and camera position information.

[Voice] Section

UseVoice
Enable/disable voice usage. 1 = enable, 0 = disable.
WaveFilePath
Assigns the path of the wave file(s) to use in the scenario.
BroadcastPortNo
Transmit port no. of the voice data.
ReceivePortNo
Receive port no. of the voice data.
UseSpeechRecognition
Set whether to perform speech recognition or not. 1 = enable, 0 = disable.
DefaultVoiceMode
String specifying the voice to use when !speak :tone is not specified. The default is to use the character's voice as specified in the speech section of the Window's control panel.

back to top

Tips

We will be adding tips related to FreeWalk in the future.

back to top


FreeWalkBanner
Please send questions to "fw-admin at lab7.kuis.kyoto-u.ac.jp"