FreeWalk チュートリアル 最終更新 2004.6.22 修士2回 板倉豊和 このチュートリアルでは、FreeWalk を研究のために使用・改造する際に必要となる環境の 構築手段などを説明します。より詳しくは以下の公開サイトまたはパッケージに付属のマ ニュアルを参照してください。 FreeWalk 公開サイト:http://www.lab7.kuis.kyoto-u.ac.jp/freewalk/index.html 更新履歴 2004.4.16 チュートリアル作成 2004.4.19 誤植を修正 2004.6.22 ソースコード改造関係(3章)の内容を大幅に更新 ・ ビルド時に必要な以下のソフトウェアのインストールに関して Microsoft DirectX SDK Microsoft Speech SDK Silicon Graphics OpenGL Optimizer Silicon Graphics Image Format Library (IFL) ・ デバッグビルドに関して ・ Visual C++ .net に関して 1. FreeWalk を使ってみる FreeWalk を使用するために必要な環境は以下の通り。 ・ Windows2000 または WindowsXP ・ DirectX 8.0 以上 ・ メモリ:128MB 以上 DirectX は以下のサイトからダウンロードできます。現在のバージョンは 9.0b。 http://www.microsoft.com/japan/windows/directx/default.mspx また、3D描画のため、できるだけ高性能なグラフィック性能(グラフィックチップ、 グラフィック用メモリ)が望まれます。 1.1. ダウンロード&インストール まず FreeWalk のインストールパッケージをダウンロードし、FreeWalk が動く最低限の 1 環境を以下の1~8の手順に従い構築します。 1.http://www.lab7.kuis.kyoto-u.ac.jp/freewalk/download/index.html に ア ク セス。 2.ライセンスに同意後、名前とネームアドレスを入力、「FreeWalk 本体パッケ ージ(実行環境のみ)」にチェックし、適当なフォルダにダウンロード。 3.ダウンロードした zip ファイルを解凍し、できたフォルダ内の setup.exe を実 行(下図)。 4.「FreeWalk V4」を選択。指示に従いインストール。 5.「Microsoft Speech API」を選択。コピーが終了したら完了。 6.「音声合成エンジン ダウンロード」を選択。 Microsoft のサイトが開くので、 [Text-to-speech engines:]から[Lernout & HauspieR TTS3000 TTS engine – Japanese]を選択、適当なフォルダにダウンロード。ダウンロードしたファイ ルを実行し、コピーが終了したら完了。 7.「OpenGL Optimizer 1.2」を選択。指示に従いインストール。 8.「Image Format Library (IFL) 1.3.1」を選択。指示に従いインストール。 これで環境構築は完了。 1.2. FreeWalk の起動&シナリオ再生 インストールが終了すると、「地下鉄今出川駅の避難誘導シナリオ」が実行できる状態に なっています。Windows スタートメニューから「プログラム→FreeWalk V4→FreeWalk V4」を選択すると FreeWalk が起動し、上記サンプルシナリオが読み込まれます。ツール 2 バー上の再生ボタンが選択できるようになればシナリオ読み込み完了です。再生ボタンを 押してシナリオ開始。 1.3. 基本的な使い方 カーソルキー:↑、↓、←、→でそれぞれ前進、後退、左回転、右回転 F1 キー:視点の切り替え(アバターの視点とアバターの後ろからの視点) 指差し:Q キーを押しながらカーソルキーで操作 首振り:W キーを押しながらカーソルキーで操作 待て:1キーで「待て」のジェスチャ 来い:2キーで「来い」のジェスチャ 1.4. シナリオの停止&FreeWalk の終了 ツールバー上の停止ボタンを押すと、FreeWalk 起動直後の状態に戻ります。メニューか ら[終了]を選ぶかウィンドウ右上の[×ボタン]で FreeWalk を終了します。 2. 自分で作ったシナリオを動かす 研究で FreeWalk を使う場合、自分でシナリオを書く必要があると思います。シナリオは Q 言語で書かれますが、ここではシナリオの記述方法は詳しくは説明しません。詳しくは Q 言語のページ(http://www.digitalcity.jst.go.jp/Q/index-j.html)を参照してください。 以下、”scenario_sample.q”というシナリオファイルを作った場合の、そのシナリオの動 かし方を説明します。 3 2.1. シナリオの作り方 以下はサンプルシナリオ(scenario_sample.q)の内容です。 (load "define_cue_action.q") (load "def_env.q") (defagent Scene scenario-scene :machine "Machine0" :location '(0.0 0.0 0.0 0.0) :shape '("Imadegawa/vrml/imadegawa.wrl") ) (defavatar User scenario-user :machine "Machine0" :location '(-2.5 -4.65 15.0 0.0) :shape '("Human/vrml/male_01.wrl") ) (defagent Agent scenario-agent :machine "Machine0" :location '(2.5 -4.65 25.0 0.0) :shape '("Human/vrml/male_02.wrl") ) (defscenario scenario-scene () (scene1 (#t) ) ) (defscenario scenario-user() (scene1 (#t) ) ) (defscenario scenario-agent() (scene1 (#t (!walk :route '((2.5 31.0) (1.0 35.0) (1.0 37.0) (1.0 53.0))) ) ) ) “defagent”、”defavatar”でそれぞれエージェントとアバターを定義しています。各部分 の説明は以下の通り。 scenario-user キャラクタが従うシナリオ :machine キャラクタが動くマシン名。ネットワーク機能を使う場合に意味を持ちます :location キャラクタの初期位置 :shape キャラクタの形状を決める VRML ファイルのパス([FreeWalk インストールフ 4 ォルダ]¥Data¥VRML からの相対パス)。 ”defagent Scene”では使用するシーン(今出川駅)の VRML モデルを読み込んでいます。 “defscenario”ではそれぞれのキャラクタが従うシナリオを定義しています。 2.2. シナリオの置き場所 作ったシナリオファイルは [FreeWalk インストールフォルダ]¥Data¥Scenario に置 い て く だ さ い 。 こ こ で は 上 で 作 っ た scenario_sample.q と い う シ ナ リ オ フ ァ イ ル を [FreeWalk インストールフォルダ]¥Data¥Scenario 以下に保存したとします。 2.3. 読み込むシナリオの指定 スタートメニューから FreeWalk を起動したときに読み込むシナリオは、FreeWalk.ini という設定ファイルに指定されています。このファイルを書き換えれば自分の作ったシナ リオを読み込むことができます。FreeWalk.ini ファイルは ルダ]¥Property [FreeWalk インストールフォ にあります。 FreeWalk.ini ファイルの[Q]セクションにある ScenarioFileName=../Data/Scenario/talk_Imadegawa.q という記述が読み込むシナリオファイル名を指定しています。これを以下のように書き直 します。 ScenarioFileName=../Data/Scenario/scenario_sample.q これで次回 FreeWalk 起動時には scenario_sample.q が読み込まれます。 3. FreeWalk の改造 自分で書いたシナリオを FreeWalk で動かすのとは別に、研究の中で FreeWalk 自体を改 造しなくてはならないこともあると思います。以下では改造のための環境構築手順などを 説明します。 3.1. ソースコードつきパッケージのダウンロード&インストール FreeWalk を改造するには、FreeWalk のソースコードをダウンロードして自分でビルド (コンパイル)する必要があります。ソースコードつきの本体パッケージは、1.1.の手順2 において「FreeWalk 本体パッケージ(実行環境のみ)」の代わりに「FreeWalk 本体パッケ 5 ージ(実行環境+ソースコード)」をチェックしてダウンロードします。FreeWalk 本体と 音声合成エンジンのインストールについては 1.1.と同じですので、1.1.の手順6までそのと おりに進めてください。手順7・8については次節をご覧ください。 3.2. 改造・ビルドに必要なソフトのインストール ソースコードから FreeWalk を改造してビルド(コンパイル)する場合、「リリースビル ド」と「デバッグビルド」とがあります。それぞれのビルド方式でできあがる実行ファイ ル(exe や dll ファイル)や、その大きさなどが違います。FreeWalk ならば、それぞれ FreeWalk.exe、FreeWalkD.exe が対応します。リリースビルドは「通常の」ビルドと考え ておいてよいですが、デバッグビルドでできた実行ファイルでは、エラー発生時に自動的 に Visual C++が立ち上がりデバッグを行う(エラー発生箇所を検証する)ことができます。 デバッグビルドを含めて、以下で FreeWalk を改造してビルドするために必要な環境を構築 します。 まず 1.1.の手順7・8にある、 ・ Silicon Graphics OpenGL Optimizer ・ Silicon Graphics Image Format Library (IFL) の2つのソフトをインストールします。Optimizer と IFL のインストールについては、1.1. で示したとおりインストール用パッケージからそれぞれセットアッププログラムを立ち上 げ、以下のセットアップタイプ選択画面で “Custom” を選択してインストールします(デ フォルトでは ”Typical” が選択されています)。 FreeWalk の改造には、これまでインストールしたソフトの他に以下の SDK が必要にな 6 ります。それぞれ下記のページからダウンロードしてください。 ・ Microsoft DirectX SDK (Ver. 9.0b) (dx90bsdk.exe) http://www.microsoft.com/downloads/details.aspx?familyid=1d97f320-9dfd-4e7a -b947-3a037ccf84af&displaylang=en ・ Microsoft Speech SDK (Ver. 4.0a) (SAPI4SDK.exe) http://www.microsoft.com/speech/download/old/sdk40a.asp それぞれ exe ファイルをダウンロード後、ファイルを実行し、指示に従ってインストール してください。ただし、DirectX SDK のインストールに関しては”Retail” と “Debug” が 選択できるようになっていますが、”Debug”を選択してインストールします。 3.3. ワークスペースの起動 FreeWalk を改造するためには Visual C++ 6.0(SP5.0 以降)が必要です。以下、Visual C++ 6.0 について説明します。 (Visual C++ .net では Windows のバージョン管理等の関係でビ ルド時にエラーが出るようです。まだ対応策はわかっていません) まず、 [FreeWalk インストールフォルダ]¥FreeWalk 開発環境¥FreeWalkV4.dsw をダブルクリックして Visual C++に FreeWalk のプロジェクトワークスペースを読み込み ます。 3.4. ビルド環境の構築 改造したソースをビルド(コンパイル)するためには、すでにインストールした ・ Microsoft DirectX SDK ・ Silicon Graphics OpenGL Optimizer ・ Silicon Graphics Image Format Library (IFL) ・ Microsoft Speech SDK の4つについて、そのインクルードファイル・ライブラリファイルを使えるようにしてお かなくてはいけません。以下ではその手順を説明します。 ワークスペースを起動したら、「ツール→オプション」でオプションウィンドウを開き、 「ディレクトリ」タブを選択。「表示するディレクトリ」から「インクルードファイル」を 7 選び、下の「ディレクトリ」に以下の4つを追加(下図) 。 C:¥Program Files¥DirectX9SDK¥Include C:¥Program Files¥Silicon Graphics¥IFL 1.3.1¥include C:¥Program Files¥Silicon Graphics¥Optimizer¥include C:¥Program Files¥Microsoft Speech SDK¥Include ただし、このフォルダパスはインストールした環境により異なります。 次に、「表示するディレクトリ」から「ライブラリファイル」を選び「ディレクトリ」に 次の4つを追加(下図) 。 C:¥Program Files¥DirectX9SDK¥Lib 8 C:¥Program Files¥Silicon Graphics¥IFL 1.3.1¥lib C:¥Program Files¥Silicon Graphics¥Optimizer¥lib C:¥Program Files¥Microsoft Speech SDK¥Lib 以上でビルドできる環境が整いました。 3.5. 初めてビルドする時 初めてワークスペースを起動したときは、まず「リビルド」します。その前に、行うビ ルド(リビルド)がリリースビルドなのか、デバッグビルドなのかを確認しておきます(ビ ルドの種類に関しては 3.2.節を参照) 。 ビルドの種類の確認は次のように行います。メニューから「ビルド→アクティブな構成 の設定」を選択すると、以下のようなウィンドウが出ます。 ここで、「FreeWalk – Win32 Release」が選択されていればリリースビルド「FreeWalk – Win32 Debug」が選択されていればデバッグビルドです。普通はリリースビルドでいいと 思いますので、 「FreeWalk – Win32 Release」を選択してください。デバッグビルドを行う 必要がある場合は「FreeWalk – Win32 Debug」を選択してください。 ビルドの種類の確認ができたら、メニューから「ビルド→リビルド」を選択してリビル ドを開始します。リビルドが始まりますが、 ・・・ C:¥Laboratory¥FreeWalk¥FreeWalk V4¥FreeWalk 開発環境 ¥Component¥Voice¥VoiceAgency¥SmartVoiceManager.cpp(51) : fatal error C1083: インクルード ファイルがオープンできません。'VoiceServer.h': No such file or directory 9 ・・・ コードを生成中... cl.exe の実行エラー FreeWalk.exe - エラー 1、警告 0 のようなエラーが出ます。ここで一度、 「ファイル→アプリケーションの終了」で Visual C++ を終了させます。次に [FreeWalk インストールフォルダ]¥FreeWalk 開発環境 ¥Component¥Voice¥VoiceServer¥VoiceServer.dsw をダブルクリックし、VoiceServer のワークスペースを起動します。ここでもリビルドを行 いますが、その前にビルドの種類を確認します。メニューから「ビルド→アクティブな構 成の設定」を選択し、以下のウィンドウで リリースビルドならば「VoiceServer – Win32 Release MinSize」を、デバッグビルドなら ば「VoiceServer – Win32 Debug」を選択します。 ビルドの種類を選び終わったら、「ビルド→リビルド」でリビルドを実行。ここで現状で はエラーが出てしまいます。エラーが出た場合、 [FreeWalk インストールフォルダ] ¥FreeWalk 開発環境 ¥Component¥Voice¥VoiceServer¥dlldata.c というファイルを次のように書き換えます。 /********************************************************* DllData file -- generated by MIDL compiler 10 DO NOT ALTER THIS FILE This file is regenerated by MIDL on every IDL file compile. To completely reconstruct this file, delete it and rerun MIDL on all the IDL files in this DLL, specifying this file for the /dlldata command line option *********************************************************/ #define PROXY_DELEGATION #include <rpcproxy.h> #ifdef __cplusplus extern "C" { #endif EXTERN_PROXY_FILE( VoiceServer ) PROXYFILE_LIST_START /* Start of list */ REFERENCE_PROXY_FILE( VoiceServer ), /* End of list */ PROXYFILE_LIST_END DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID ) #ifdef __cplusplus } /*extern "C" */ #endif /* end of generated dlldata file */ つまり、「/* end of generated dlldata file */」以下は余計な部分ですので、これをカットし てください。書き換えたらリビルドし、リビルドが終了したら Visual C++を終了。 次に再度、 [FreeWalk インストールフォルダ]¥FreeWalk 開発環境¥FreeWalkV4.dsw を起動し、今度は「ビルド→ビルド」を選びます。リビルドでないことに注意してくださ い。ここでも上と同じエラーが出る場合があります。このときは、 [FreeWalk インストールフォルダ]¥FreeWalk 開発環境 ¥Component¥ApplicationManager¥ApplicationServer¥dlldata.c を以下のように書き換えてください。 /********************************************************* DllData file -- generated by MIDL compiler 11 DO NOT ALTER THIS FILE This file is regenerated by MIDL on every IDL file compile. To completely reconstruct this file, delete it and rerun MIDL on all the IDL files in this DLL, specifying this file for the /dlldata command line option *********************************************************/ #include <rpcproxy.h> #ifdef __cplusplus extern "C" { #endif EXTERN_PROXY_FILE( ApplicationServer ) PROXYFILE_LIST_START /* Start of list */ REFERENCE_PROXY_FILE( ApplicationServer ), /* End of list */ PROXYFILE_LIST_END DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID ) #ifdef __cplusplus } /*extern "C" */ #endif /* end of generated dlldata file */ ここでも、「/* end of generated dlldata file */」以下の部分を削除してください。書き換え たらビルドし、エラーが出なければビルド完了です。 3.6. ソースを書き換えてビルドするとき 3.5.で初回にリビルドすれば、2回目以降ソースコードを書き換えてその変更を反映する ときには「ビルド→ビルド」を選ぶだけでOKです。リビルドする必要はありません。ビ ルドがエラーなく終了すれば、改造箇所が反映された FreeWalk の実行ファイルが出来上が っています。 3.7. 改造が反映された実行ファイルの実行 ビルドしてできた実行ファイル(FreeWalk.exe)は [FreeWalk インストールフォルダ]¥FreeWalk 開発環境¥Executable¥Release の中に格納されています。実行ファイルを実行すれば FreeWalk が起動しますが、 FreeWalk.exe を実行する前に同じフォルダにある Regist.bat を実行します。同じフォル 12 ダの FreeWalk.exe を連続して使用する場合は次の FreeWalk の起動時には Regist.bat を実 行する必要はありません。しかし、別のフォルダの FreeWalk.exe を使用する場合には、起 動前にそのフォルダの Regist.bat を実行してください。 また、デバッグビルドを行った場合、出来上がった実行ファイル(FreeWalkD.exe)は [FreeWalk インストールフォルダ]¥FreeWalk 開発環境¥Executable¥Debug 以下に格納されています。 3.8. FreeWalk 実行時のエラー対応 FreeWalk を終了したときに Q のアウトプットウィンドウが残ったり、FreeWalk が起動 できないなどの問題が発生したときには、以下を確認してください。 1.Ctrl+Alt+Del を押し、タスクマネージャを起動 2.「プロセス」タブを選び、 FreeWalk.exe Q.exe VoiceServer.exe ApplicationServer.exe の4つのプロセスがあるかどうか確認 3.もしどれかのプロセスが残っていれば、そのプロセスを終了させる もしそれでも起動エラーが回復しない場合は、コンピュータの再起動してみてください。 それでも起動時にエラーが出る場合は、改造のために生じたエラーであると考えられるの で、改造箇所を元に戻してみることをお勧めします。 4. ネットワークを介して使う 研究室のLANやインターネットなどのネットワークを介して FreeWalk を使うことが できます。N台のコンピュータを使用した場合のネットワークの構成は ・ マシン1: CommunityServer による共有空間管理、エージェント(アバター)の 動作計算 ・ マシン2: エージェント(アバター)の動作計算 ・・・ ・ マシンN: エージェント(アバター)の動作計算 13 のようになり、1台がサーバになります。 4.1. シナリオの書き方 2台のコンピュータネットワークの場合、シナリオで (load "define_cue_action.q") (load "def_env.q") (defagent Scene scenario-scene :machine "Machine1" :location '(0.0 0.0 0.0 0.0) :shape '("Imadegawa/vrml/imadegawa.wrl") ) (defavatar User1 scenario-user1 :machine "Machine1" :location '(-2.5 -4.65 15.0 0.0) :shape '("Human/vrml/male_01.wrl") ) (defavatar User2 scenario-user2 :machine "Machine2" :location '(-2.2 -4.65 13.0 0.0) :shape '("Human/vrml/male_02.wrl") ) (defagent Agent1 scenario-agent1 :machine "Machine1" :location '(2.5 -4.65 25.0 0.0) :shape '("Human/vrml/male_03.wrl") ) (defagent Agent2 scenario-agent2 :machine "Machine2" :location '(2.7 -4.65 22.0 0.0) :shape '("Human/vrml/male_04.wrl") ) と宣言します。デフォルトでは Machine1 がサーバになりますので、シーンの宣言には 「:machine “Machine1”」としてください。つまりこのシナリオでマシン1とマシン2が受 け持つ役割は ・ Machine1: CommunityServer(シーンの管理)、Avatar1、Agent1 ・ Machine2: Avatar2、Agent2 となります。 14 Machine1 と Machine2 には、同じシナリオを持たせておかなくてはいけません。 4.2. 設定ファイルの変更 ネットワーク機能を使う場合、FreeWalk.ini ファイルは次のように記述します。 [MachineName]セクションに [MachineName] Machine1=serverPC Machine2=otherPC と記述し、実際に用いるコンピュータ名を指定します。 また、[Server]セクションを [Server] UseServer=1 と書き換えます。 4.3. 起動方法 ネットワーク機能を使う場合の FreeWalk の起動手順は以下の通り。 1.serverPC(Machine1)側の FreeWalk.exe を起動。すると自動的に FreeWalkCommunityServer.exe が起動されます。 2.タスクバーの右下に地球のアイコンが出たらサーバの起動完了。 3.otherPC(Machine2)側の FreeWalk.exe を起動。 4.両方のマシンの FreeWalk の起動が完了したら、どちらかの再生ボタンを押すともう 一方の再生ボタンも自動的に押されてシナリオが開始します。 終了手順は逆手順で、 1.otherPC(Machine2)側の FreeWalk.exe を終了。 2.serverPC(Machine1)側の FreeWalk.exe を終了。同時に FreeWalkCommunityServer.exe も終了します。 5. 別の VRML ファイルを使う 15 公開サイトから他の VRML ファイルをダウンロードできます。ダウンロードできるファ イルは ・人体モデルフルセット: FreeWalk で使用できる人体モデルのセットです。(本体 パッケージには一部のモデルしか含まれていません) ・京都駅: 京都駅の VRML モデル ・京都四条通: 四条通の VRML モデル ・地下鉄今出川駅: 地下鉄烏丸線の今出川駅の VRML モデルです。これは上記 FreeWalk 本体パッケージに最初から含まれています ・ VRML モデルフルセット: 上記4つの VRML モデルパッケージのフルセット 京都駅・京都四条通・地下鉄今出川駅のモデルは、 [FreeWalk インストールフォルダ]¥Data¥VRML フォルダ以下に置いて、シナリオのシーン定義で指定することで読み込むことができます。 人体モデルもアバター・エージェント定義において指定することができます。 16
© Copyright 2024 Paperzz