Hikari は、 OGRE3D で Flash を扱えるようにするためのアドオンです。flash.ocx アクティブXコンポーネントが必要なため Windows 専用ということになります。単に Flash を再生するのではなく、最近ゲーム業界でトレンドになりつつある「 UI や 2D を Flash でデザインして、ゲームプログラムにバインドする」という実装が可能になる、きちんとした作りのアドオンです。
(今のところオーバーレイ限定で、テクスチャレンダリングには対応していないっぽいですが、普通に十分でしょう)
デモではスライダやカラー選択の値をビューポートの値に反映させています。また FPS 値を Flash 側に送って Flash の機能で値を表示しています。つまり Flash 側の値を取れるし、 Flash 側に値を送ることもできるということです。
アドオンの組み込みも非常に容易で、プログラムもしっかり作られています。きちんと日本語で紹介したいという気持ちはありますが、まずは第一報まで。
(フォーラムではだいぶ前から話題になってましたけど)
sunday-labの日本語訳版です。英語版のXOOPS Cube関連記事を翻訳作業中...
2008年9月3日水曜日
Shoggoth から SceneNode::getWorldPosition() と getWorldOrientation() がなくなった
リリース候補版として検証が続いている Ogre 1.6.0 RC1 ですが、 SceneNode クラスからワールド空間における座標と姿勢を取得する getWorldPosition() と getWorldOrientation() が取り除かれ、 1.6.0 に乗り換えた開発者がコンパイルエラーを起こすというトピックが立っています。
Changelog によると Renderable インターフェイスからこの2つのメソッドが削除された(Renderable はエンジン側ではフルトランスフォームマトリクスでしかやりとりしていなかった)のに併せて SceneNode からも削ったとのこと。_getDerivedPosition() と _getDerivedOrientation() を代わりに使うようにということです。
1.4 系はまったく追えていなかったので知らなかったのですが元々 Eihort で deprecated 扱いになっていたそうです。 getWorld* は _getDerived* の完全なエイリアスということで、使用にあたり問題はありません。ただ、 SceneNode を NULL ノードとみなして計算結果を抜き取る用途を多用するスタイルの自分にとっては getWorld* メソッドがなくなったことで、別のやり方をとれと言われてるようで、ちょっと気になるところではあります。
専用のノードクラスを作成する? タグポイントだけのボーンをアタッチしてそこから情報を取得する? ……パフォーマンス的にはおとなしく _getDerived* ですね。(^^;
とはいえ getWorld* はこれまでも _getDerived* が畳み込まれていたはずなので、自前で付け足すだけでも大丈夫です。 prebuild SDK でも .h の変更だけで済みます。
'getWorldOrientation' : is not a member of 'Ogre::SceneNode'
Changelog によると Renderable インターフェイスからこの2つのメソッドが削除された(Renderable はエンジン側ではフルトランスフォームマトリクスでしかやりとりしていなかった)のに併せて SceneNode からも削ったとのこと。_getDerivedPosition() と _getDerivedOrientation() を代わりに使うようにということです。
1.4 系はまったく追えていなかったので知らなかったのですが元々 Eihort で deprecated 扱いになっていたそうです。 getWorld* は _getDerived* の完全なエイリアスということで、使用にあたり問題はありません。ただ、 SceneNode を NULL ノードとみなして計算結果を抜き取る用途を多用するスタイルの自分にとっては getWorld* メソッドがなくなったことで、別のやり方をとれと言われてるようで、ちょっと気になるところではあります。
専用のノードクラスを作成する? タグポイントだけのボーンをアタッチしてそこから情報を取得する? ……パフォーマンス的にはおとなしく _getDerived* ですね。(^^;
とはいえ getWorld* はこれまでも _getDerived* が畳み込まれていたはずなので、自前で付け足すだけでも大丈夫です。 prebuild SDK でも .h の変更だけで済みます。
2008年8月31日日曜日
OGRE 1.6.0RC1 ('Shoggoth') Released!
OGRE 1.6.0 RC1 (コード名 'Shoggoth')がリリースされました。主たる追加機能はこちらです:
数日後にビルド済み SDK も出るようです。
マテリアル定義やパーティクルエフェクトの定義に使っていたスクリプトに新しいフィーチャーが加わりました。この機能に関する調整(使用の有無)は OgreConfig.h の OGRE_USE_NEW_COMPILERS で選択できます。マテリアル管理まわりはかなり強化されていて、GPUに送れるシェーダパラメータもかなり増えました。
もうひとつの興味深いパワーアップは "ポータルコネクトゾーン" のサポートで、視野クリッピングの情報をレベルに埋められるようになりました。屋外から屋内への切り替えなどが楽になります。プラグインの説明に使われていた動画はこちら:
逆に驚いたのがメモリアロケーターの変更がこれまでできなかったという点です。知らなかった……
これで日本人が大好きな自前ヒープが作れます。
引っ越しでフリーソフトにかけることができる時間が大幅にアップしました。これまで各フリーソフトの活動に復活する復活するといいいながら、マッハの勢いで遠ざかっていましたが、今度こそ復活しようと思います。
- 新しいよりパワフルなスクリプトコンパイラ
- OpenGL のジオメトリシェーダー
- Windowsと同等のレンダーテクスチャにおけるアンチエイリアシング
- sRGB ガンマコレクション
- アルファの適用範囲をサポート
- シーンマネージャの新しい 'ポータルコネクトゾーン'
- シャドウマップの並列分割をサポート
- タンジェント生成を強化
- 骨格ブレンドのマスク
- 背景ロードの新しいオプション
- カスタムメモリアロケーターのサポート
数日後にビルド済み SDK も出るようです。
マテリアル定義やパーティクルエフェクトの定義に使っていたスクリプトに新しいフィーチャーが加わりました。この機能に関する調整(使用の有無)は OgreConfig.h の OGRE_USE_NEW_COMPILERS で選択できます。マテリアル管理まわりはかなり強化されていて、GPUに送れるシェーダパラメータもかなり増えました。
もうひとつの興味深いパワーアップは "ポータルコネクトゾーン" のサポートで、視野クリッピングの情報をレベルに埋められるようになりました。屋外から屋内への切り替えなどが楽になります。プラグインの説明に使われていた動画はこちら:
逆に驚いたのがメモリアロケーターの変更がこれまでできなかったという点です。知らなかった……
これで日本人が大好きな自前ヒープが作れます。
引っ越しでフリーソフトにかけることができる時間が大幅にアップしました。これまで各フリーソフトの活動に復活する復活するといいいながら、マッハの勢いで遠ざかっていましたが、今度こそ復活しようと思います。
2008年5月13日火曜日
OGRE 1.4.8 [Eihort] Released
OGRE の新しいメンテナンスリリースが出ました。もうリポジトリが追えなくなってどれくらいになるんだろう…… orz
中を見ていないので翻訳も正しいものではないかもしれませんが、一応訳してみました。
---
コードネーム "Eihort" … 1.4.x ブランチ上では九分九厘最後のメンテナンスリリースになるであろうものが現在ダウンロードエリアで利用可能になったことをお知らせします。
ほんの少しのバグフィックスだけが、今回のレポートです。
ソースリリースと大半の SDK パッケージは既に更新されました。ほかのものは各メンテナが提供可能になった際に更新されます。
このリリースの後、私たちは待望の コードネーム"Shoggoth"こと 1.6.x ブランチ上の新しい安定版リリースに集中するつもりです。私たちは昨年のうちに、多くの新しいフィーチャーや改善されたフィーチャーを加えました。そして、相当な数の人々がそれを Subversion から既に使用中ですので、安定版リリースはそう遠い話ではありません。
v1.4.7 からの変更点:
中を見ていないので翻訳も正しいものではないかもしれませんが、一応訳してみました。
---
コードネーム "Eihort" … 1.4.x ブランチ上では九分九厘最後のメンテナンスリリースになるであろうものが現在ダウンロードエリアで利用可能になったことをお知らせします。
ほんの少しのバグフィックスだけが、今回のレポートです。
ソースリリースと大半の SDK パッケージは既に更新されました。ほかのものは各メンテナが提供可能になった際に更新されます。
このリリースの後、私たちは待望の コードネーム"Shoggoth"こと 1.6.x ブランチ上の新しい安定版リリースに集中するつもりです。私たちは昨年のうちに、多くの新しいフィーチャーや改善されたフィーチャーを加えました。そして、相当な数の人々がそれを Subversion から既に使用中ですので、安定版リリースはそう遠い話ではありません。
v1.4.7 からの変更点:
- Mac OS X:
- 古いマシン、特に初代iMacと古いPowerPCマシン上のわずかな GL ドライバが持つバグに対する回避方法
- GLSL頂点アトリビュートエイリアシング問題に対する回避方法
- Linux
- 非整合なGLXビジュアルの使用禁止
- 一部のLinux NVIDIA 169.xドライバーに関するFBO問題のためのワークアラウンド - このフィックスがあなたの手元で機能しない場合は、フォーラムスレッドにより根本的な当面の回避方法があります
- Windows:
- D3D9RenderSystem::__SetTextureStageState におけるセーフティチェックは7を上回るテクスチャーステージを無視しなければならない。D3D9デバッグモードで大量のテクスチャーを使用した場合のエラーの原因となりえた。
- NOMINMAX宣言をWindowEventUtilitiesヘッダに加えた - windows.h をインクルードしていたため他の Ogre ヘッダの std::min/max と競合を起こしていた
- GetModuleHandle呼び出しは、より正しくデバッグプラグインに対処するために修正された。
- Terrain:
- カメラやビューポートより先に地形を作成することを許可した
- 地形が見つからないときに assert するだけでなく例外を投げるようにした
- Maya エクスポータの頂点カラーを修正 - float4 の代わりに Packged RGBA を使うように
- Camera::setWindow() 修正
- 絶対パス指定における FileSystemArchive::exists のバグ修正
- MayaExport の OSX ポート フォンマテリアルのサポート
- すべての新しいGLSLカスタム頂点アトリビュート(一部のドライバ上で起こるエイリアシング問題を避けて全カスタムアトリビュートを使う必要がある場合にビルトインとリプレスする)をリストするためにマニュアルを更新
2008年5月6日火曜日
An Overview of Collision Detection in OGRE 3D
OGRE 3D は、衝突検出(Collision Detection)に関して複数の方法を提供してくれる。我々、日本の開発者は、衝突検出を「ヒット」と呼ぶことがある。衝突検出を説明する前に、我々の認識を共有化するために、その要素を列挙する:
私は、最後の項目「負荷の軽いヒットのためのローポリメッシュ」に少しの説明を加えたい。日本の開発者は、そのようなメッシュを「ヒットモデル」と呼ぶ。私は、英語でそれを何と呼ぶかを知らない。従って、私は、それをこのエントリではヒットモデルと記述する。
OGRE 3D は基本的なヒット機能はほとんどすべて提供する。また、境界ボリュームのインスタンスは自動的に生成される。たとえば、メッシュクラスは境界球や境界ボックスを自動的に生成してそれをキープする。ヒット用のデータを細かく作り込む必要がない点はプログラマにとっては魅力的で即席だが、開発上は問題になるかもしれない。
まず手初めに、あなたはレイと地形のヒットの取り方(いわゆる地形ヒット/床ヒット)を知りたがるかもしれない。もしあなたのゲームの地形ジオメトリが高さマップではなく静的なメッシュ(リジッドモデル)であれば、ヒットを取るのは簡単である。あなたはレイと地形ジオメトリ(のヒットモデル)に含まれるトライアングルとのヒットを取る必要があるわけだが、プリミティブクラスの組み合わせの代わりに RaySceneQuery クラスを使うことができる。これは非常に強力な考え方である。
RaySceneQuery は、要するにレイである。しかし、このクラスは衝突検出を扱うために存在する。 Ray クラスのほうを使う場合、あなたはレイと衝突の可能性のあるシーン内のジオメトリデータとの衝突を検出するためにプログラムをたっぷりと書かなければならない。加えて、あなたのプログラムは、八分木もしくは四分木を用いて分割された空間から、絶対にヒットしないジオメトリを取り除いて候補を絞り込み、さらに境界球からトライアングルまで段階的な検出を実装しなければならない。
RaySceneQuery はそのような標準的なヒット検出を実装済みのクラスとなっている。どこまでやっているかは後日読解する。なんにしても RaySceneQuery はヒット地点までの距離を返すので、Y アンジュレーションや押し出しを簡単に行うことができる。 SceneQuery サブクラスは、他のヒット関係のクラスのためにもいくらかの種類が定義されている。
さて、あなたは標準的なヒット検出プロセスに何が必要だと考えるか? シーンは多くのジオメトリ/メッシュを持ち、メッシュは多くのトライアングルを持っている。我々がエンジンに求める機能は以下のようなものになるだろう:
RaySceneQuery はこのようなフィーチャーを提供するか? まず初めに、 OGRE 3D が提供するヒット関係の機能すべてを把握したいところである。
- 衝突検出のために、プリミティブ形状が多く定義されていれば便利である。 OGRE はレイ、境界球、軸平行境界ボックス(AABB)を定義している。
- そのほか、トライアングルや平面の概念も扱うことが可能だ。
- 楕円、円柱などの形状は提供されない。
- プリミティブなバウンディングボリューム同士のヒットだけでなく、メッシュに含まれるトライアングルとのヒットを取ることも体系化されている。
- 負荷の軽いヒットのために専用のローポリメッシュがよく使われる。さて、汎用エンジンたる OGRE3D はそういった手段を提供するだろうか?
私は、最後の項目「負荷の軽いヒットのためのローポリメッシュ」に少しの説明を加えたい。日本の開発者は、そのようなメッシュを「ヒットモデル」と呼ぶ。私は、英語でそれを何と呼ぶかを知らない。従って、私は、それをこのエントリではヒットモデルと記述する。
OGRE 3D は基本的なヒット機能はほとんどすべて提供する。また、境界ボリュームのインスタンスは自動的に生成される。たとえば、メッシュクラスは境界球や境界ボックスを自動的に生成してそれをキープする。ヒット用のデータを細かく作り込む必要がない点はプログラマにとっては魅力的で即席だが、開発上は問題になるかもしれない。
まず手初めに、あなたはレイと地形のヒットの取り方(いわゆる地形ヒット/床ヒット)を知りたがるかもしれない。もしあなたのゲームの地形ジオメトリが高さマップではなく静的なメッシュ(リジッドモデル)であれば、ヒットを取るのは簡単である。あなたはレイと地形ジオメトリ(のヒットモデル)に含まれるトライアングルとのヒットを取る必要があるわけだが、プリミティブクラスの組み合わせの代わりに RaySceneQuery クラスを使うことができる。これは非常に強力な考え方である。
RaySceneQuery は、要するにレイである。しかし、このクラスは衝突検出を扱うために存在する。 Ray クラスのほうを使う場合、あなたはレイと衝突の可能性のあるシーン内のジオメトリデータとの衝突を検出するためにプログラムをたっぷりと書かなければならない。加えて、あなたのプログラムは、八分木もしくは四分木を用いて分割された空間から、絶対にヒットしないジオメトリを取り除いて候補を絞り込み、さらに境界球からトライアングルまで段階的な検出を実装しなければならない。
RaySceneQuery はそのような標準的なヒット検出を実装済みのクラスとなっている。どこまでやっているかは後日読解する。なんにしても RaySceneQuery はヒット地点までの距離を返すので、Y アンジュレーションや押し出しを簡単に行うことができる。 SceneQuery サブクラスは、他のヒット関係のクラスのためにもいくらかの種類が定義されている。
さて、あなたは標準的なヒット検出プロセスに何が必要だと考えるか? シーンは多くのジオメトリ/メッシュを持ち、メッシュは多くのトライアングルを持っている。我々がエンジンに求める機能は以下のようなものになるだろう:
- 1) レイと衝突する可能性がないジオメトリ(レイの方向の反対側の分割空間に属するジオメトリなど)を衝突候補から取り除く
- 2) マスクできること
- 3) 最初のヒットチェックには境界ボリュームを使う
- 4) 1) の絞り込みの過程をある程度保持しておいて、次回のチェックに再利用する。
RaySceneQuery はこのようなフィーチャーを提供するか? まず初めに、 OGRE 3D が提供するヒット関係の機能すべてを把握したいところである。
2008年5月3日土曜日
OGRE 3D moves their source code repository from CVS to SVN
XOOPS Cube プロジェクトが参照したプロジェクトモデルを持つ OGRE 3D は、 CVS から SVN へソースコードリポジトリを移動した。私達は、 CVS が各 CVS 上のモジュールを担当しているコミッターのアクセス権限範囲を管理できることから、現在 CVS のほうを利用している。私達は OGRE のプロジェクトモデルを見習って、そしてこの枠組みを導入した。しかし彼らは SVN を使い始めたわけだから、私達は OGRE 3D がどう SVN をプロジェクトモデルに当てはめていくかをチェックした方がいいだろう。
一部のプログラマは、 XOOPS Cube のリポジトリをチェックすることを望まない。なぜなら、彼らは、リポジトリに何が入っているかとは関係なく、 CVS を使うこと自体を恥ずかしく思っているからだ。私は、優秀なプログラマが持つそういったこだわりを理解することができるレベルにいないが、 SVN が我々のプロジェクトモデルを運営することができるならば、 XOOPS Cube が彼らのプライドをカバーできることは素晴らしいことだ。
一部のプログラマは、 XOOPS Cube のリポジトリをチェックすることを望まない。なぜなら、彼らは、リポジトリに何が入っているかとは関係なく、 CVS を使うこと自体を恥ずかしく思っているからだ。私は、優秀なプログラマが持つそういったこだわりを理解することができるレベルにいないが、 SVN が我々のプロジェクトモデルを運営することができるならば、 XOOPS Cube が彼らのプライドをカバーできることは素晴らしいことだ。
2008年4月19日土曜日
CEGui Mesh Viewer (1)
OGRE3Dにおける実機ビューワに相当する CEGui Mesh Viewer 。これがあれば、プログラマの方は、デザイナーのためにゲームアプリケーション専用ビューワを開発する手間を軽減できます。よほど特殊なことをやらない限り、開発の序盤から終盤まで全面的に活躍するビューワーになるでしょう。
CEGui とは、 OGRE3D コミュニティを中心に活用されているアプリケーション内の GUI システムで、この Mesh Viewer は CEGui を使って優れた操作性を確保したビューワです。ダウンロードはこちらから。
起動すると下のような画面になります。

アプリケーションの中にメニューが?と思うかもしれませんが、「これは実機ビューワ」と10回ほど頭の中で唱えれば気にならなくなると思います。 Mac OS X や Linux でも動くアプリケーションにするためにも、こういった CEGui のようなウィジェットは必須です。 OGRE で独自のツールやデバッグメニューを組み込んでいく際にも CEGui を使っていくことになると思いますので、ここは慣れていきましょう。といっても CEGui は非常に本格的な GUI ですので、何の心配も要りません。
とりあえずメッシュを読み込んで表示してみましょう。アプリケーションの特性上本格的なファイラーは積んでおらず、あくまで OGRE のリソースマネジメント機構を通じてデータを読み込むことになります。任意のデータの読み込み方法はまた次の機会で説明するとして、まずはサンプルを読んで使ってみましょう。
左上の Select Group のリストボックスをクリックすると、リソースグループの選択ができます。
リソースグループとは何なのか?ということはさておき、まず General を選択してみます。

次に左から2番目のリストボックスをクリックします。ここに表示されるのは General に所属するリソースです。
robot.mesh を選択してみます。

robot.mesh が表示されます。マウスの左ボタンを押しながら動かすと注視点を中心とした回転、右ボタンを押すとドリーになります。
メッシュデータがアニメーションデータを持っていれば、そのままアニメーションを表示することができます。
(プログラマからしてみれば、大助かりですね)
メッシュのウィンドウから Anims のタブを押すと、 Animation State の欄にモーションの一覧が表示されます。
ここで表示したいモーションを選ぶと、アニメーションが始まります。

もちろん CEGui Mesh Viewer はソースが公開されていますので、何か追加の機能が必要な場合はこれをベースに改良を進めていけばいいと思います。
CEGui とは、 OGRE3D コミュニティを中心に活用されているアプリケーション内の GUI システムで、この Mesh Viewer は CEGui を使って優れた操作性を確保したビューワです。ダウンロードはこちらから。
起動すると下のような画面になります。

アプリケーションの中にメニューが?と思うかもしれませんが、「これは実機ビューワ」と10回ほど頭の中で唱えれば気にならなくなると思います。 Mac OS X や Linux でも動くアプリケーションにするためにも、こういった CEGui のようなウィジェットは必須です。 OGRE で独自のツールやデバッグメニューを組み込んでいく際にも CEGui を使っていくことになると思いますので、ここは慣れていきましょう。といっても CEGui は非常に本格的な GUI ですので、何の心配も要りません。
とりあえずメッシュを読み込んで表示してみましょう。アプリケーションの特性上本格的なファイラーは積んでおらず、あくまで OGRE のリソースマネジメント機構を通じてデータを読み込むことになります。任意のデータの読み込み方法はまた次の機会で説明するとして、まずはサンプルを読んで使ってみましょう。
左上の Select Group のリストボックスをクリックすると、リソースグループの選択ができます。
リソースグループとは何なのか?ということはさておき、まず General を選択してみます。

次に左から2番目のリストボックスをクリックします。ここに表示されるのは General に所属するリソースです。
robot.mesh を選択してみます。

robot.mesh が表示されます。マウスの左ボタンを押しながら動かすと注視点を中心とした回転、右ボタンを押すとドリーになります。
メッシュデータがアニメーションデータを持っていれば、そのままアニメーションを表示することができます。
(プログラマからしてみれば、大助かりですね)
メッシュのウィンドウから Anims のタブを押すと、 Animation State の欄にモーションの一覧が表示されます。
ここで表示したいモーションを選ぶと、アニメーションが始まります。

もちろん CEGui Mesh Viewer はソースが公開されていますので、何か追加の機能が必要な場合はこれをベースに改良を進めていけばいいと思います。
2008年4月17日木曜日
Prevent the unexpected distortion at setDirection()
SceneNode や Camera のクラスについている setDirection() や lookAt() は、指定した座標の方向にノードやカメラの正面を向けることができる非常に便利なメソッドです。ただし、デフォルトの設定では特に回転軸を考えずに、最短距離で回転するため、カメラのオートトラックや lookAt() を扱おうとすると、ありがたくない Z-ROLL が頻発します。

Z-ROLL をロックするには、 setFixedYawAxis() メソッドで固定のヨー回転軸を設定します。これは本来 yaw() メソッドの回転軸をデフォルトの Vector3::UNIT_Y から変更するためのメソッドですが、 setDirection() 内のクォータニオン計算が切り替わり、 Z-ROLL を抑制する効果があります。
(実際、そのための機能です)
第二パラメータ Vector3::UNIT_Y はデフォルト値なので、省略してしまって構いません。これを指定すると、おおむね意図したとおりの回転が得られると思います。

Z-ROLL をロックするには、 setFixedYawAxis() メソッドで固定のヨー回転軸を設定します。これは本来 yaw() メソッドの回転軸をデフォルトの Vector3::UNIT_Y から変更するためのメソッドですが、 setDirection() 内のクォータニオン計算が切り替わり、 Z-ROLL を抑制する効果があります。
(実際、そのための機能です)
pNode->setFixedYawAxis(true, Vector3::UNIT_Y);
第二パラメータ Vector3::UNIT_Y はデフォルト値なので、省略してしまって構いません。これを指定すると、おおむね意図したとおりの回転が得られると思います。
2008年4月15日火曜日
Ogre Application Wizard for VC++
VisualStudio で Ogre プログラミングを楽しむなら The Conglomerate Project が作成、公開している Ogre Application Wizard をセットアップしておくと何かと便利です。

このアプリケーションウィザードは、ほかのアプリケーションウィザードと同様、いくつかの質問に答えるだけでプログラムの雛形を作成し、 DLL などの必要なファイルをプロジェクトのディレクトリにコピーして、ビルドが通るところまでをやってくれます。
アーカイブを解凍し、それなりのディレクトリにコピーしてから、VC8_Setup.js もしくは VC8_Express_Setup をダブルクリックするとインストールしてくれます。アプリケーションウィザードは解凍先のディレクトリから必要なファイルをコピーしようとしますので、このディレクトリはインストールが終わった後も動かしたり消したりしてはいけません。 SDK の近くに解凍するとか、自分がいつもプロジェクトを作っているディレクトリに入れるなどして、不意に削除されることがないようにしておきましょう。
添付されている js ではうまくインストールができない場合があります。その場合は手動でインストールします。まず、 Files の中にある OgreSDKAppWizard80.vsz をエディタで開き、 ABSOLUTE_PATH に解凍先のディレクトリの Files のパスを書き込みます。
自分の場合は以下のようになりました。
次に、 OgreSDKAppWizard80 という名前を持つ3つのファイルを VisualStudio のインストールディレクトリの VC/vcprojects にコピーします。 VC++ Express の場合は VC/Express/VCProjects にコピーです。
これらの手順は README ファイルの受け売りなので (^^;
行き詰ったら一度 README を確認してみてください。

このアプリケーションウィザードは、ほかのアプリケーションウィザードと同様、いくつかの質問に答えるだけでプログラムの雛形を作成し、 DLL などの必要なファイルをプロジェクトのディレクトリにコピーして、ビルドが通るところまでをやってくれます。
アーカイブを解凍し、それなりのディレクトリにコピーしてから、VC8_Setup.js もしくは VC8_Express_Setup をダブルクリックするとインストールしてくれます。アプリケーションウィザードは解凍先のディレクトリから必要なファイルをコピーしようとしますので、このディレクトリはインストールが終わった後も動かしたり消したりしてはいけません。 SDK の近くに解凍するとか、自分がいつもプロジェクトを作っているディレクトリに入れるなどして、不意に削除されることがないようにしておきましょう。
添付されている js ではうまくインストールができない場合があります。その場合は手動でインストールします。まず、 Files の中にある OgreSDKAppWizard80.vsz をエディタで開き、 ABSOLUTE_PATH に解凍先のディレクトリの Files のパスを書き込みます。
自分の場合は以下のようになりました。
Param="ABSOLUTE_PATH = C:\projects\ogresdkwizard80_Eihort_v1_4_2\Files"
次に、 OgreSDKAppWizard80 という名前を持つ3つのファイルを VisualStudio のインストールディレクトリの VC/vcprojects にコピーします。 VC++ Express の場合は VC/Express/VCProjects にコピーです。
これらの手順は README ファイルの受け売りなので (^^;
行き詰ったら一度 README を確認してみてください。
登録:
投稿 (Atom)
