FreeWalk

使い方

※ ここでは簡単な説明にとどめます。
  詳しくはパッケージに含まれているFreeWalkV4のマニュアル等を参照して下さい

実行方法

実行方法1

  1. スタートメニューから プログラム→FreeWalk V4→FreeWalk V4 を選択して起動する。(例題シナリオ:地下鉄今出川駅避難誘導 が起動します。)
  2. ツールバーにあるシナリオ再生ボタンを押してシナリオを実行する。

実行方法2

別途追加シナリオパッケージで提供している *.fwk ファイルをダブルクリックすることで、ほかのシナリオを起動できます。

back to top

アバターの操作方法

(シナリオのdefavatarの:controlパラメタが"default"の場合です)

通常移動
カーソルキー(↑、↓、←、→)でそれぞれ前進、後退、左回転、右回転をします
平行移動
Shiftキーを押しながらカーソルキー平行移動をします
指差し動作
'Q'キーを押しながらカーソルキーで指差しをします
首振り動作
'W'キーを押しながらカーソルキーでその方向を向く首振りをします
ジェスチャー
'1'キーで「待て」、'2'キーで「来い」のジェスチャーします。 ただしそのキーを離した時点でジェスチャーを終了し、直立姿勢に戻ります

back to top

カメラの操作方法

カメラの歩行者追従モードではない(ツールバーのカメラ操作モード切替ボタンが押されている)時、以下の操作が出来ます

通常移動
マウスをドラッグします
平行移動
Shiftキーを押しながらマウスをドラッグします
カメラの向きの変更
Ctrlキーを押しながらマウスをドラッグします

back to top

シナリオの書き方

シナリオはQ言語(詳しくはQ言語のHPを参照して下さい)で記述されますが、ここではとりあえず動くシナリオの書き方を中心に、例を挙げながら説明します(詳しい記述方法はQ言語のHPのダウンロードの所にあるQ言語の仕様書や、パッケージにあるFreeWalkV4のマニュアルを参照して下さい)

まずは、FreeWalk.iniの[Q]ScenarioFileNameで指定されたファイル(以降シナリオファイルと記述)の先頭に、

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

と書きます。これは、[FreeWalkインストールフォルダ]\Q\フォルダにある2つのファイル、define_cue_action.q(パラメータの型の記述)とdef_env.q(環境設定の記述)を読み込むことを指定しています。

define_cue_action.qはこのままで何の問題もありませんが、def_env.qの方は主にネットワークを使用する時に必要になってきますので、ここで少し解説します。

(defenv name
 :world_name
  ;; 環境の名前(string型)。nameと一致させることを推奨します。
 :max_entry
  ;;存在可能なエージェント等の最大数(integer型)
 :ip_address
  ;;接続先IPアドレス、又はマシン名(string型)
 :port_number
  ;;接続先ポート番号(integer型)
 :vrml_url
  ;;VRML参照先URL(string型)
 :vrml_path
  ;;ローカルにあるVRMLフォルダの、[FreeWalkインストールフォルダ]からの相対パス(string型)
)

(例)

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

このように記述し、Machine0上で「FreeWalkCommunityServer.exe 12345 space0」と実行することにより、Machine0上でコミュニティサーバが稼働します。

次に舞台となるシーン(ステージ)を準備します。シナリオファイルに以下の様に記述します。

(defscenario scenario-scene ()
 (scene1))

(defagent Scene
  ;; シーンの名前。変数としてこの値を使用できる。
 scenario-scene
  ;; 与えるシナリオ。ここでは何もしないシナリオscenario-sceneを与えている。
 :machine "Machine0"
  ;; このシーンが稼働するマシン名
 :location '(0.0 0.0 0.0 0.0)
  ;; 座標
 :shape '("scene.wrl")
  ;; VRMLモデル
)

今度はユーザの操作するアバターを配置します。シナリオファイルに以下の様に記述します。

(defscenario scenario-user ()
 (scene1))

(defavatar User
  ;; アバターの名前。変数としてこの値を使用できる。
 scenario-user
  ;; 与えるシナリオ
 :machine "Machine0"
  ;; このアバターが稼働するマシン名
 :location '(10.0 0.0 10.0 0.0)
  ;; 初期位置(x座標[m] y座標[m] z座標[m] 向き[degree])
 :shape '("user.wrl")
  ;; VRMLモデル
)

最後にシナリオを与えることにより自律的に動くエージェントを配置します。

(defagent agent
  ;; エージェントの名前。変数としてこの値を使用できる。
scenario-agent
  ;; 与えるシナリオ
 :machine "Machine1"
  ;; このエージェントが稼働するマシン名
 :location '(20.0 0.0 20.0 0.0)
  ;; 初期位置
 :shape '("agent.wrl")
  ;; VRMLモデル
)

(defscenario scenario-agent ()
  ;; エージェントに与える簡単なシナリオ。
  ;; ユーザの操作するアバターが近くにいたら、その場を行ったり来たりする。
 (scene1
  ((?position :name_s User :distance_range '(0.0 5.0))
    ;; Userが0.0〜5.0の範囲にいれば
   (!walk :route '((0.0 5.0)) :relative #t)
    ;; 今の自分の位置から相対的に(0.0 5.0)だけ歩いて
   (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

設定ファイル(FreeWalk.ini)の書き方

詳しくはマニュアルを参照してもらうとしまして、ここでは主に使うであろう物を説明します。なお、特に断りをしない限り、ファイル名やフォルダ名を指定する物はFreeWalk.exeのあるフォルダ([FreeWalkインストールフォルダ]\Program\)からの相対パス、又は絶対パスで指定します。

[Q]セクション

Q
Qの実行ファイル名(Q.exe)を指定します
Show
Qの標準出力ウィンドウで、詳細なログを表示するかどうかを指定します。1で表示、0で非表示です。
ScenarioFileName
FreeWalkで使用するシナリオファイルを指定します

[MachineName]セクション

定義するマシン名 = 既存のマシン名 という形で使用
シナリオで使用するマシン名に、別のマシン名を与えます。任意の数をこのセクション内に記述できます。

[VRML]セクション

VRMLFileFolder
VRMLファイルを格納しているフォルダ名を指定します
ValidateDefenvVrmlPath
defenv内にあるvrml_pathのパス名を有効にするかどうかを指定します。1で有効、0で無効です。無効にした時はVRMLFileFolderの値がそのままVRMLファイルのパスになります。

[Scene]セクション

SkyBackgroundEnable
天空背景を使うかどうかを指定します。1で使用、0で未使用になります。マシンスペックが低い時は0にした方がいいかもしれません。
FogEnable
フォグを使うかどうかを指定します。1で使用、0で未使用になります。マシンスペックが低い時は0にした方がいいかもしれません。
AlphaProcessEnable
アルファ処理をするかどうかを指定します。1で処理する、0で処理しないになります。マシンスペックが低い時は0にした方がいいかもしれません。
ReductionFrameEnable
コマ落ち処理をするかどうかを指定します。1で処理する、0で処理しないになります。
JoyStick
アバターの操作をジョイスティックを用いて行う場合には1にして下さい。0ではキーボードの方向キーを用いて行います。

[Server]セクション

UseServer
FreeWalkでネットワークを使用するかどうかを指定します。1で使用、0で未使用になります。
RequestPortNo
FreeWalkアプリケーションの送信ポート番号を指定します。
ReceivePortNo
FreeWalkアプリケーションの受信ポート番号を指定します。

[Broadcast]セクション

BroadcastPortNo
エージェント情報及びカメラ位置情報の送信ポート番号を指定します。
ReceivePortNo
エージェント情報及びカメラ位置情報の受信ポート番号を指定します。

[Voice]セクション

UseVoice
音声を使用するかどうかを指定します。1で使用、0で未使用になります。
WaveFilePath
シナリオで使用するWaveファイルのあるフォルダ名を指定します。
BroadcastPortNo
音声データの送信ポート番号を指定します。
ReceivePortNo
音声データの受信ポート番号を指定します。
UseSpeechRecognition
音声認識を行うかどうかを指定します。1で行う、0で行わないになります。
DefaultVoiceMode
!speak :toneの無指定時に利用される話者モード文字列です。デフォルトはWindowsコントロールパネルのSpeechセクションで指定されます。

back to top

Tips

FreeWalkに関するTipsを随時追加していきます。

back to top


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