ARToolKit_MMD_20100405_source

所属分类:Windows编程
开发工具:Visual C++
文件大小:925KB
下载次数:35
上传日期:2012-06-24 15:17:11
上 传 者466897045
说明:  AR核心文件,基于VS2008 这是一部分 剩下的需要自己写
(AR core document, based on the VS2008 is part of the rest of the need to write your own)

文件列表:
ARToolKit_MMD_20100405_source\ARToolKit_MMD.exe (474112, 2010-04-05)
ARToolKit_MMD_20100405_source\ARToolKit_MMD.vcproj (11118, 2010-04-04)
ARToolKit_MMD_20100405_source\Data\camera_para.dat (136, 2004-11-04)
ARToolKit_MMD_20100405_source\Data\patt.sample1 (12484, 2004-11-04)
ARToolKit_MMD_20100405_source\Data\pattSample1.pdf (1210, 2004-11-04)
ARToolKit_MMD_20100405_source\Data\WDM_camera_flipV.xml (505, 2005-07-29)
ARToolKit_MMD_20100405_source\DSVL.dll (77824, 2005-05-17)
ARToolKit_MMD_20100405_source\DSVLd.dll (385024, 2005-05-17)
ARToolKit_MMD_20100405_source\Effect\Accessory.fx (18170, 2010-03-22)
ARToolKit_MMD_20100405_source\Effect\Accessory_simple.fx (14282, 2010-03-22)
ARToolKit_MMD_20100405_source\Effect\Copy.fx (7137, 2010-04-05)
ARToolKit_MMD_20100405_source\Effect\FloorShadow.fx (5318, 2010-04-05)
ARToolKit_MMD_20100405_source\Effect\PMD.fx (22100, 2010-04-02)
ARToolKit_MMD_20100405_source\Effect\PMD_simple.fx (18809, 2010-03-22)
ARToolKit_MMD_20100405_source\Effect\ShadowMap.fx (5081, 2010-03-21)
ARToolKit_MMD_20100405_source\Effect\Skinning.fx (9594, 2010-03-02)
ARToolKit_MMD_20100405_source\glut32.dll (237568, 2005-05-17)
ARToolKit_MMD_20100405_source\gpl.ja.txt (21354, 2010-02-28)
ARToolKit_MMD_20100405_source\libARvideo.dll (6656, 2007-04-03)
ARToolKit_MMD_20100405_source\msvcp71.dll (499712, 2007-07-25)
ARToolKit_MMD_20100405_source\msvcr71.dll (348160, 2007-07-25)
ARToolKit_MMD_20100405_source\setting.ini (1702, 2010-04-05)
ARToolKit_MMD_20100405_source\Source\AABB.cpp (4968, 2010-02-28)
ARToolKit_MMD_20100405_source\Source\AABB.h (616, 2010-02-27)
ARToolKit_MMD_20100405_source\Source\AccessoryAnimation.cpp (11949, 2010-04-05)
ARToolKit_MMD_20100405_source\Source\AccessoryAnimation.h (1991, 2010-03-27)
ARToolKit_MMD_20100405_source\Source\AccessoryData.cpp (7965, 2010-04-04)
ARToolKit_MMD_20100405_source\Source\AccessoryData.h (1981, 2010-04-04)
ARToolKit_MMD_20100405_source\Source\AccessoryFrame.cpp (5002, 2010-02-28)
ARToolKit_MMD_20100405_source\Source\AccessoryFrame.h (1707, 2010-02-24)
ARToolKit_MMD_20100405_source\Source\ARWrapper.cpp (8065, 2010-03-22)
ARToolKit_MMD_20100405_source\Source\ARWrapper.h (1737, 2010-03-22)
ARToolKit_MMD_20100405_source\Source\Bezie.cpp (1487, 2009-10-11)
ARToolKit_MMD_20100405_source\Source\Bezie.h (479, 2009-10-11)
ARToolKit_MMD_20100405_source\Source\Bone.cpp (10203, 2010-02-01)
ARToolKit_MMD_20100405_source\Source\Bone.h (1639, 2010-02-01)
ARToolKit_MMD_20100405_source\Source\BoneFrame.cpp (5272, 2009-07-13)
ARToolKit_MMD_20100405_source\Source\BoneFrame.h (1818, 2009-07-13)
ARToolKit_MMD_20100405_source\Source\BulletWrapper.cpp (6836, 2010-02-08)
... ...

ARToolKit_MMD ver.20100405 readme.txt ■はじめに  このプログラムは、ARToolKitを用いてMikuMikuDance(以下、MMD)のモデルおよびモーションを表示するためのプログラムです。  MMD用に作成されたモデルモーションを、*.pmmファイルから直接ARToolKit上で表示することを目的に作っています。  ただし、非公式なプログラムであるため、必ずしも正確な動作をするとは限りません。  些細なきっかけで、エラーを吐いて終了するかもしれません。何かあっても責任は負いかねます。  正常に動作しない場合、MMDの作者様に迷惑をかけないよう、お願いします。 ■ARToolKitについて  ARToolKitについては、工学ナビ様のサイトにて解かり易く解説されております。  「ARToolKitを使った拡張現実感プログラミング」   http://kougaku-navi.net/ARToolKit.html   ARToolKitは加藤博一先生とワシントン大学HITL(Human Interface Technology Lab)によって開発されました。   ARToolKitはフリーで提供されており,ARToolKit Home Page よりダウンロードすることができます。   http://www.hitl.washington.edu/artoolkit/   (以上、工学ナビ様より転載)  ARtoolKitはGPLの元、提供されています。  そのため、本プログラムもGPLを継承しています。  GPLについては、同梱の"gpl.ja.txt"をお読みください。   ■注意事項  肉眼では見えません。USBカメラが必要です。  それなりの処理性能のあるCPU/GPUが必要です。  一部ファイルは、工学ナビ様のサンプルを流用しています。  物理演算処理部分は、ARTK_MMD(http://ppyy.hp.infoseek.co.jp/)のソースを使用しています。  また、シェーダプログラムについては、「DirectXシェーダプログラミング」(N2Factory著)の  サンプルコードをベースにしています。 ■用意するもの [ハードウェア]  1.Windowsマシン    Windows7(32bit/***bit)での動作を確認済みです。    XP、Vista でも動作すると思います。    MacOSでは動きません。あしからず。  2.USBカメラ    960x720 or ***0x480 or 320x240でキャプチャ可能なもの。***0x480を推奨。    別にUSBじゃなくてもいいかも。  3.DirectX9(SM3.0)対応ビデオカード    古いビデオカードの場合、セルフシャドウ表示がカットされます。  4.紙とプリンタ    マーカを印刷するため。手書きでもいけるけど。  5.ダンボール    お好みで [ソフトウェア]  1.MikuMikuDance    VPVP(http://www.geocities.jp/higuchuu4/)よりダウンロードしてください。    Ver.7.02で動作確認済み。  2.VisualC++ 2008 ランタイム    必要無いかもしれませんが、起動時にそれらしきdllを要求されるかも。(未確認)    Visual C++ 2008 再頒布可能パッケージ    http://www.microsoft.com/Downloads/details.aspx?displaylang=ja&FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2 )  3.DirectXラインタイム    最新版DirectXランタイムをインストールしておくこと    http://www.microsoft.com/downloads/Browse.aspx?displaylang=ja&categoryid=2    "d3dx9_41.dll"等を要求された場合、上記URLから最新ランタイムをインストールしてみてください。 ※ソースからのコンパイル方法は、本テキストの末尾にて。 ■使い方  1.USBカメラを接続する    ちゃんと映っているか、まず確認を。    確認後は、カメラを使うアプリを必ず終了させておいてください。  2.マーカパターンを印刷する    "./Data/pattSample1.pdf" を、紙に印刷します。    手書きでも、正確な線が引けるなら問題無いようです。    その際、マーカの黒い外枠の一辺は、80.0mm ぐらいが良いです。    (形状の比率が正しければ、サイズはいくつでも構わないようです。)  3.マーカの形を整える    紙がふにゃっていると、正確に検出できません。    平らで硬く、加工が楽なもの、例えばダンボールのようなものに貼り付けて、    四角に切りとります。    マーカ全体のサイズは、黒四角の一辺が80.0mmを仮定しています。  4.MikuMikuDanceの解凍    適当なフォルダへ解凍します。    すでにMMDをお持ちでしたら、そのままで結構です。  5.setting.iniの編集    テキストエディタで、"setting.ini"内の下記を書き換えます。    ※setting.iniファイルの空白は、必ず'tab'1個で挿入してください。手抜き仕様です。    - PMMFileName      MikuMikuDance用の、プロジェクトファイル(.pmm)名を、絶対パス名で記入すること。      ※MikuMikuDance付属のサンプル(きしめん)を動作させる場合、一度該当ファイルをMMDで開き、       保存しなおす必要があります。  6.プログラムを実行する    "./ARToolKit_MMD.exe" をダブルクリック。    DLLが足りないと表示されたら、該当するDLLをGoogle等で検索して、    インストールしてから、再試行してみてください。    その際、何を要求されたかを報告してくださると、助かります。    ※MMDと同時に実行すると、速度が遅くなります。遅い場合は、MMDを終了させてください。  7.カメラの設定    カメラ設定ダイアログが開きますので、解像度を選択します。    ***0x480を推奨    (それ以外の解像度だと、表示位置がずれたり、動作が重かったり、最悪エラー終了したりします。)    カメラ画像が表示されない場合について     - USBカメラ以外に、キャプチャカードやTVチューナといった、映像入力デバイスが接続されている場合、      USBカメラの映像が読み込めない場合があります。      下記の工学ナビ様のHPの"もし画面が真っ黒になる場合は"の項を参考に、      ./Data/WDM_camera_flipV.xml を編集して、USBカメラを直接指定してみてください。      http://kougaku-navi.net/ARToolKit.html      なお、手っ取り早いのは、他のキャプチャデバイスを殺すことです。  8.マーカをカメラで写す    マーカが検出されれば、モデルが表示されるはずです。    マーカの形が歪んでいたり、明るさの関係で、白と黒が判別できないと、    うまく検出されません。    その場合、setting.iniのMarkerGrayScaleThreshold値を調整してみてください。    また、黒四角の一部でも隠れていると、検出されません。    ここらへんは、ARToolKitの仕様です。  9.キーボードで操作できること    キーボード入力で、下記の操作が可能です。    このとき、カメラ映像ウィンドウがアクティブになっている必要があります。   再生/一時停止     キーボードの"S"を押すと、モーションの再生開始と、一時停止を実行します。   コマ送り     一時停止状態のとき、カーソルキーの ←→ で、1フレームずつコマ送りします。   リセット     キーボードの"R"を押すと、最初のポーズに戻ります。   半透明表示     キーボードの"A"を押すと、半透明と普通の表示が切り替わります。     ただし、後述のアンチエイリアシングの設定が"1"の場合でないと正常に動作しません。   検出モードの切り替え     キーボードの"L"を押すと、マーカ検出のモードが通常/軽量に切り替わります。     軽量にすると、検出精度が下がりますが、CPU負荷が下がる(はず)です。     確認してないので、効いていないかもしれません。  10.終了方法     キーボードの"Esc"を押すと、プログラムを終了します。 ■setting.iniの内容 □MMD関連の設定 PMMFileName  PMMファイル名   開きたいファイル名を指定します。   絶対パスで指定する必要があります。   複数のPMDモデル、アクセサリの表示に対応しています。   表示IKフレーム、アクセサリフレームの設定も含む。   地面影の表示非表示、物理演算のOn/Off、セルフシャドウのOn/Off等の設定も反映されます。   ただし、物理演算の”再生時のみ演算”は、常に演算するものとして扱います。 MMDDataFolderName  MMDの"Data"フォルダへのパス   MMDの標準トゥーンテクスチャを差し替えたい場合、行頭の#を削除して、指定してください。   絶対パスで指定する必要があります。   意味が分からない場合は、ほっておいて構いません。 Scale  PMDオブジェクトの拡大縮小率   初期値は、x5倍です。お好みで変更可能です。   ただし、大きくしすぎると、モデルの表示がぐらついてしまいます。 Height  表示する高さ   モデルデータを表示する高さを変更できます。 LightColor_RGB  ライトの色(r,g,b)   MMDの、"照明操作"の赤緑青の値に相等します。   0から255の間の整数で指定します。   ただし、本家と微妙に発色が異なります。 LightDirection_XYZ  ライトの方向(x,y,z)   MMDの、"照明操作"のXYZに相等します。   -1.0から1.0の少数で指定します。 BulletMode  物理演算のセッティング(1 or 2 or 3)  1: ver20091025まで使用していたセッティング。  2: 1と2の間のセッティング。  3: ver20100111で使用したセッティング。    一概にどれがベストかは言い切れません(どれも不正解)。    モデルにより適当な設定をお使いください。 HWSkinningOn  GPU側でスキニング処理を行う ( 0:Off / 1:On(モード1) / 2:On(モード2) )  ※このオプションは、SM3.0以上のGPUでなければ動作しません。   CPU側の処理負荷は下がりますが、GPU側の処理負荷が増加します。   On/Offのどちらが良いかはPCの環境や表示モデルに左右されますので、   軽い方を選んでご利用ください。  0 : CPU側で頂点変形(スキニング)処理を行います。  1,2: GPU(Vertex Shader)で頂点変形処理を行います。     モード2でモデルが表示されなくなる場合は、1に変更してみてください。     それでもだめなら、0に戻してご利用ください。 □描画関連の設定 AntiAliasing  アンチエイリアシング (0:Off, 1:On, 2:On(HW))   0: アンチエイリアシングを行いません。エッジがギザギザになります。   1: アンチエイリアシングを行い、なめらかに表示されます。   2: グラフィックカードの機能を使用してアンチエイリアシングを行います。     1よりも軽量ですが、画質は劣る場合があります。     ご使用のグラフィックカードの種類や、表示するモデルにより向き不向きがありますので、     お好みで選択してください。    ※アンチエイリアシング2の時、背景スクリーンが表示されない場合があります(おそらく機器依存)     その場合は、1か0に変更してください。 ShadowMapRegion  シャドウマップの範囲 (0:PMDのみ, 1:PMD+アクセサリ)   0の場合、PMDモデルデータ周辺のみにセルフシャドウが表示されます。   1の場合、アクセサリデータを含む領域にセルフシャドウが表示されます。    ただし、ステージのような巨大なアクセサリを表示させている状態では、影の精度が著しく低下します。 ShadowMapResolution  シャドウマップの解像度 (2:2048x2048, 1:1024x1024, 0:512x512)   大きい方が綺麗です。ただし、2048では処理が重くなります。 ShadowMapPrecisio  シャドウマップの精度 ( 32bit, 16bit, 8bit )   大きい方が綺麗です。8bitだとノイズが目立ちます。 ARscreen  拡大スクリーンモード ( 0:Off, 1:On )   スクリーンアクセサリに表示する内容を切り替えます。   主に、キャラクターのバストアップショットを表示する用途を想定しています。   0: カメラに映る映像をそのまま表示します。   1: PMMファイルのカメラフレームで設定された注視点を中心に、拡大表示します。     拡大率は、下記の"ARperspective"の値により変更可能です。     拡大スクリーン表示の場合、下記に該当する内容は表示されません。      背景の実写映像      PMDモデルよりも前に描画するアクセサリ      マスク描画用のアクセサリ    ※拡大スクリーンは別途ポリゴン描画するため、処理負荷が増加します。     カメラフレームの注視点はMMD上で移動可能ですので、     キャラクタの移動に追従したい場合は、MMD上で設定してください。 ARperspective  拡大スクリーンモード時の視野角 ( ズームイン:5.0 ~ 10.0 ~ 20.0:ズームアウト )   "ARscreen"がOnの場合の、拡大表示率を調整します。   値が小さい場合、拡大率が大きくなります。   値が大きい場合、拡大率が小さくさります。   初期値は10.0ですが、モデルサイズやスクリーンサイズにより適切な値は異なります。 □ARToolKit関連の設定 ARToolKit  ARToolKitのOn/Off (0:Off, 1:On)   Offにした場合、カメラ接続を行わず、CGモデルのみ描画します。   あくまで、デバッグ用、動作確認用のモードです。   キーボード操作での再生制御に加え、マウス操作でカメラ視点の変更が可能です。   左クリック : 平行移動   右クリック : 視点回転   ホイール  : ズームインアウト   J,Kキー   : モデル回転 WindowSize  ARToolKit Off時の画面サイズ (1:***0x480, 2:960x720, 3:1280x960, 4:FullScreen)   ARToolKitを使用する際は無視されます(カメラ入力サイズに依存)。   同じくデバッグ、動作確認用の設定です。 MarkerPatternFileName  マーカパターンファイル   マーカを別の模様のものに変える場合、このファイル名を変更します。 CameraConfigFileName  カメラ設定ファイル   接続するカメラを明示的に選択する場合、ここで指定されるファイルを変更してください。 CameraParamFileName  カメラパラメタファイル   カメラのキャリブレーション設定ファイルです。   詳しいことは、ARToolKitの世界の話なので、正直よくわかりません。 MarkerDetectMode  マーカ検出モード (0:等倍(精度優先), 1:縮小(速度優先))   0の方が精度が良いです。   動作がどうにも重いという場合、1に変えてみてください。   ただし、他の部分の処理も重いので、焼け石に水かも。   処理を軽くするには、軽いモデルを使うのが一番です。わた七葉1052式とかがオススメです。 MarkerGrayScaleThreshold  白と黒の閾値 ( 0 ~ 255 )   マーカの、白と黒の境目の値を設定します。   基本的には、100~130あたりが普通なのですが、環境に合わせて調整してください。    マーカ周辺が明るい場合:高めの値へ    マーカ周辺が暗い場合 :低めの値へ ■PMMファイルから読み込まれる設定  下記の設定は、PMMファイルから読み込まれます。  MMDで設定変更し、必ずPMMファイルに保存するようにしてください。 地面影表示On/Off  MMDメニューの、表示->地面影表示 の設定により、  地面表示する影を表示するかしないかを変更できます。 物理演算On/Off  MMDメニューの、物理演算->常に演算 or 再生時のみ演算 を選択した場合、  物理演算が有効になります。当プログラムでは、どちらでも常に演算します。  MMDメニューの、物理演算->演算しない を選択した場合、物理演算は行いません。 セルフシャドウOn/Off  MMDメニューの、表示->セルフシャドウ表示 の設定により、  OnかOffかのみ、指定できます。Modeは反映されません。  モデル操作ウィンドウの、モデル別のセルフ影指定は反映されます。  ただし、セルフ影フレームによる、再生中の切り替えには対応していません。 アクセサリの影の濃さ  MMDメニューの、表示->地面影色設定 の設定により、  アクセサリの影の濃さが変化します。  この値は、地面に落ちる影色には反映されません。  地面影の色は、プログラム内で固定されています。 WAVファイル(音声ファイル)  MMDメニューの、ファイル->WAVファイル読み込み の設定により、  指定した音楽ファイルが勝手に再生されます。  音量調整とか再生しないようにするとかできません。とりあえず機能です。 ■マスク用アクセサリの使用方法について  MMD用アクセサリファイルのファイル名の先頭3文字が、"AR_"である場合、  そのアクセサリは下記のように表示されます。  透明化され、色やテクスチャは描画されない。  そのアクセサリに隠れるモデルアクセサリは描画されず、背景画像が透けて見える。  影表示ONの場合は、他のモデルの影が投影される。  実世界のオブジェクト形状に重ねて使用することにより、  実世界のオブジェクトに隠れたり、影を落としたりすることが可能になります。 ■ファイルの説明  ARToolKit_MMD.exe     プログラム本体  readme.txt        本ファイル  setting.ini        設定ファイル  gpl.ja.txt        GPLライセンス  - Data    camera_para.dat    カメラパラメータファイル    patt.sample1     マーカパターンファイル    pattSample1.pdf    印刷用のマーカパターンファイル    WDM_camera_flipV.xml カメラ設定ファイル  - Effect    *.fx         DirectXシェーダファイル(HLSL)  libARvideo.dll      以下、ARToolKitの実行に必要なDLL  DSVL.dll  msvcp71.dll  msvcr71.dll ■ソースからのコンパイル方法  ソースからコンパイルする場合は、下記のソフトやライブラリを用意する必要があります。 1.Visual C++ 2008 Express Edition   http://www.microsoft.com/japan/msdn/vstudio/express/   Microsoftのページからダウンロードしてインストールします。 2.DirectX SDK (February 2010)   http://www.microsoft.com/downloads/details.aspx?FamilyID=2c7da5fb-ffbb-4af6-8c66-651cbd28ca15&DisplayLang=en   Microsoftのページからダウンロードしてインストールします。   他のバージョンでもコンパイルできるかもしれません 3.ARToolKit 2.72.1   http://www.hitl.washington.edu/artoolkit/   ARToolKit Home PageのDownloadページから、   Latest VersionのWindows版コンパイル済みバイナリをダウンロードしてください。    ファイル名:ARToolKit-2.72.1-bin-win32.zip   その後、工学ナビ(http://www.hitl.washington.edu/artoolkit/)等を参考にして、   インクルードフォルダとライブラリフォルダへのパスを設定してください。 4.Bullet Physics SDK 2.75 RC6   http://www.bulletphysics.com/   BulletのHPより、該当するSDKをダウンロードしてください。   その後、Shader.jp様の下記ページ等を参考にして、   ライブラリのビルドと、パスの設定をしてください。。   http://www.shader.jp/xoops/html/modules/xfsection/article.php?articleid=28 ■既知の相違点 レンダリングの違い  MMD風のトゥーンシェードだが、輪郭線の描画は行わない。  本家と比較すると、発色の具合が異なる。素材の色やテクスチャ色の混合比率が異なる模様。  ちなみに、ARという観点でいうと、トゥーンシェードは相応しくない。  実写と合成した際の違和感を減らすには、普通に陰影を付けた方が良い。  しかしながら、MMD用モデルはトゥーンシェードを想定したものがほとんどであり、  MMD上での見た目をできるだけ維持することを優先する。 モーションの違い  IK部分、特に膝と足首周辺の曲がり方に差異が見られる。  本家とIKの計算方法が違うのかもしれない。  このプログラムでは、CCD(Cyclic-Coordinate Descent)法と呼ばれる手法を使用している。  IKアルゴリズムは他にも色々あるが、他のはさっぱり理解できなかったので、CCD法を用いる。 物理演算の違い  本家と計算結果にズレがある。また、処理が重くて追いつかなくなると不安定になる。  特に、動作が激しい場合に、ジョイント部分が外れてしまうことがある。今のところ原因不明。  物理演算部分は別スレッド化して並列処理しているので、マルチコアCPU推奨。 アクセサリ表示  本家と発色が異なる。色のブレンド方法が違うみたい。 ■履歴  (2010/04/05) 音楽再生機能を追加。その他細かい不具合修正  (2010/03/22) 拡大スクリーン表示機能マスク用アクセサリ機能を追加         セルフシャドウの描画方法を変更。IK計算方法を調整  (2010/02/28) アクセサリ表示機能を追加  (2010/02/22) ARToolKit呼び出し処理の修正  (2010/02/21) GPU側でのスキニング処理方法を変更  (2010/02/15) 描画処理負荷の軽減。ARToolKitをOffにしての起動オプションを追加  (2010/02/13) GPU側でスキニング処理を行うオプションを追加  (2010/02/08) セルフシャドウの表示方法を本家MMDの仕様に合わせた         960x720のカメラ入力サイズに対応。モデル拡大時の表示バグを修正         アンチエイリアシングに、GPU機能を使用するモードを追加         セルフシャドウOn/Offの設定を、PMMファイルから読み込むように変更         物理演算処理の設定を選択可能とした  (2010/01/11) MMD ver.6以降に対応。物理演算処理を微調整         地面影表示物理演算On/Offの設定を、PMMファイルから読み込むように変更  (2009/10/25) Bullet Physicsによる物理演算に対応  (2009/10/13) スフィアマップのBMP混合表示に対応(.sph乗算および.spa加算)  (2009/10/12) スフィアマップに対応(.sphのみ。BMP混合と、.spaには未対応)。影描画処理を微修正  (2009/07/13) IK回転影響下ボーンの動作不具合修正  (2009/07/02) 特定PMMファイル読み込み後、1フレーム目で落ちるバグを修正  (2009/06/27) 特定モデル読み込み時に落ちるバグを修正。描画処理とIK処理を微修正  (2009/06/24) モデル表示高さ、マーカ検出閾値の設定を追加  (2009/06/22) 描画モードの切り替え(Normal/Low)の設定を追加  (2009/06/21) 影のOn/Offの設定を追加  (2009/06/18) α版公開 EOF

近期下载者

相关文件


收藏者