Copyright kei 2008-02-15 変更履歴 2008/02/15 問題点修正 ・マーカを複数使用したとき  →吹き出しの透明部分が設定番号が後ろのマーカの吹き出しを消してしまう  →暫定対応として、DEPTH_TESTなしで吹き出しを描画している(モデルの裏に吹き出しがいかない) ☆どうも手前に描画した透明部分のうしろは描画されないようなので(DEPTH_TESTをenableにしていると)、  奥にあるものから描画するように変更 実行するだけなら ARudp/bin だけあれば動くと思います。 必要(そう)なdllもいれてあるので、OpenGL、ARToolKitのインストールも必要ないと思います。 …違ったらすいません。 実行時の注意点 ・MQOファイルの読み込みデータ数に制限があります。  →GLMetaseqOrgEx.h 最大マテリアル数  100 最大頂点数 10000 最大面数 10000  コレより多いデータを読み込む時は、インクルードファイルのデファイン値を変更してコンパイル ・頂点数、フレーム数がおおいと実行時に必要なメモリが多くなります。 ビルド時の注意点 ・ARToolKitのインクルード・ライブラリがあるパスが通っていないとビルド出来ない。 ・jpeg、png、zlibのインクルード・ライブラリがあるパスが通っていないとビルド出来ない。 (GLMetaseqEx.hのデファインでjpeg、pngの使用をしない設定にすればパスが通って無くても通る) ☆VC7.0の場合の各種パスの設定  ツール→オプション→Project→で  ディレクトリを表示するプロジェクトでインクルードを指定し、インクルードのパス設定。   ライブラリを指定し、ライブラリのパス設定。 ・ARudpはマルチスレッド、ActMsgSendはシングルスレッドです。  プロジェクトのプロパティ→C/C++→コード生成のランタイムライブラリはそれぞれに合ったものを使用してください。 ・プロジェクトのプロパティ→リンカの設定で必要ないライブラリはリンクしないようにしたほうがいい  …っと思う。  (例:マルチスレッドReleaseでビルドの場合、libcd、msvcrtd等は必要ない) このファイルの他、説明のある場所 ARudp | |-ActMsg.h コマンドの説明 | |-説明 | |-ini_999.bmp iniファイルの説明 |-cmd_999.bmp コマンドファイルの説明 | |-GLMetaseqEx | |-GLMetaseqEx.h メタセコファイルの読み込み関係の説明 現バージョンでおかしいところ ・光源と影の関係 ・オブジェクトがマーカ原点より下にあるときの影 ・オブジェクトの透明度と影がリンクしていない ・床(影を描画するところ)がマーカ位置に固定 ・MQOファイルの読み込みでチャンク名は大文字小文字の区別しないとなっているが、対応していない ・その他、エラー処理は甘いのでiniファイルに間違いがあったりコマンドが間違っていると  おかしな動きになると思います… 開発環境 OS:Windows XP ServicePack2 コンパイラ:Visualal C++ Version 7.0 OpenGL:glut-3.7.6 ARToolKit:2.72 ☆OpenGL、ARToolKitのインストールは工学ナビ様のページの参考にして…  あそこよりわかりやすく説明できません。 フォルダ/ファイル構成 ARudp 開発環境 | |-Arudp.sln VC++ソリューションファイル |-Arudp.vcproj VC++プロジェクトファイル |-ARudp.c メインスレッドのソース |-udpthread.c 通信スレッドのソース |-global.c サブルーチンのソース |-inifile_def.h iniファイル読み込み用インクルード |-global.h 大域変数のインクルード |-thread_mutex.h 排他処理のインクルード |-ActMsg.h 通信フォーマットのインクルード | |-GLMetaseqEx 工学ナビ様作成のMQOファイル読み込み処理を拡張したもの | 説明はGLMetaseqEx.hの最初に書いてあります。 | |-GLLight.h 工学ナビ様のものと同じ |-GLMetaseqOrgEx.h GLMetaseq.hを拡張したもの。コレをインクルードする必要なし |-GLMetaseqEx.h GLMetaseq.hと置き換えるためのヘッダ |-GLMetaseqEx.c GLMetaseq.hと拡張部分をマージしてコンパイルするためのソース | |-bin 実行環境 | |-ARudp.exe ARToolKitを使ったプログラム |-ActMsgSend.exe UDPでコマンドを送信するプログラム |-ARudp.ini 初期設定ファイル。ARudp.exe、ActMsgSend.exeで読み込む |-○○.dll ARToolKitをつかったプログラムに必要なDLL | dllを持っている方は、そちらを使った方がいいかもしれません。 |-ロイツマ.txt http://www.nicovideo.jp/watch/sm2303131 | で使用したはちゅねのコマンドファイル | ActMsgSendでファイル指定でこのファイルを指定していた。 |-機能.txt http://www.nicovideo.jp/watch/sm2303131 | で使用したかぐぁみねのコマンドファイル | ActMsgSendでファイル指定でこのファイルを指定していた。 | |-DATA iniファイルで指定している各種ファイルの格納場所 | |-patt.○○ パターンファイル(ARToolKit付属のもの) |-○○.pdf パターンのPDF(ARToolKit付属のもの) |-camera_para.dat カメラパラメータ(ARToolKit付属のもの) |-WDM_camera_flipV.xml カメラ設定(ARToolKit付属のもの) |-○○.bmp iniファイルで指定している吹き出し用ビットマップ |-○○.mqo iniファイルで指定しているメタセコファイル | (基本図形。iniファイルとコマンドファイルの実行確認用) |-renban 連番MQOの例(RokDeeBone2形式) | |-説明 | |-ini_999.bmp iniファイルの説明 |-cmd_999.bmp コマンドファイルの説明 | |-ActMsgSend ARudp.exeにUDPコマンドを投げる処理 | ../ActMsg.h、../inifile_def.hをインクルードしている | |-ActMsgSend.vcproj VC++プロジェクトファイル |-ActMsgSend.cpp メインソース |-inifile.h cInifileクラスのインクルード |-udpSend.h cUdpSendクラスのインクルード extend jpeg、pngを読み込むのに必要な外部ライブラリ | |-jpeg-6b jpegライブラリ | |-lib リンクする時に必要なライブラリ |-include コンパイルに必要なインクルードファイル | |-libpng pngライブラリ | |-lib リンクする時に必要なライブラリ |-include コンパイルに必要なインクルードファイル | |-zlib | |-lib リンクする時に必要なライブラリ |-include コンパイルに必要なインクルードファイル 外部ライブラリのライブラリ(libの下)は当方でコンパイルしたものです。 (バイナリ配布はされていないので) これを使って動かないときは、本家から調達してください。。。 また、すでにこれらを持っている方はそちらを使用してください。 参考web //工学ナビ様 //http://www1.bbiq.jp/kougaku/ //Metasequoia様 ファイルフォーマット //http://www.metaseq.net/metaseq/format.html //libjpeg様 (jpegのライブラリ) //http://www.ijg.org/ //libpng様 (pngのライブラリ) //http://www.libpng.org/pub/png/libpng.html //zlib様(libpngの圧縮/解凍にこのライブラリが必要) //http://www.zlib.net/