HOME » FAQ

よくある質問

Q.Irrlichtはどう発音すればいいのですか?

A.自由にどうぞ。日本ではイルリヒトかイルリッヒが多いです。ネイティブの発音ではィルリッヒ(ィにアクセント)と聞こえます。

Q.自由に使っていいのでしょうか?

A.改変、商用、研究、その他いかなる事へも特別の許可なく使用出来ます。別途ライセンス料を請求される事もありません。ただし、最低限の規約があります。詳しくはライセンス を参照。

Q.DirectX9 SDK Update - (Feb. 2007)にDirectX8のヘッダがなくてコンパイル出来ません(公式フォーラム)

A.IrrCompileConfig.hから以下の行を見つけてコメントアウトしてください。DirectX8の機能がオフになります。

#define _IRR_COMPILE_WITH_DIRECT3D_8_

なお、DirectX8はDirectX 9.0 SDK Update - (December 2004)までサポートされていたようです。Vistaで開発するのでなければ、古いSDKを使うのが無難でしょう(※VC6ならDirectX 9.0 SDK Update - (October 2004)を使用)

Q.アニメーションファイルを読み込ませたが動作が遅いです(もしくは速い)

A.setAnimationSpeed()で調節しましょう。

#include <windows.h>
#include <irrlicht.h>
 
using namespace irr;
using namespace core;
using namespace video;
using namespace scene;
 
#pragma comment(lib, "Irrlicht.lib")
 
int main()
{
    IrrlichtDevice *Device = createDevice(EDT_OPENGL, dimension2d<s32>(640, 480), 32, false, false, 0);
    IVideoDriver *Driver = Device->getVideoDriver();
    ISceneManager *Scene = Device->getSceneManager();
 
    Scene->addCameraSceneNode(0, vector3df(1000,500,-40), vector3df(0,0,0));
    IAnimatedMesh *SydneyMesh = Scene->getMesh("tiny.x");
    IAnimatedMeshSceneNode *SydneyNode = Scene->addAnimatedMeshSceneNode( SydneyMesh );
    SydneyNode->setMaterialFlag(EMF_LIGHTING, false);
    SydneyNode->setFrameLoop(0, 5000); //tinyの歩きフレームを設定
    SydneyNode->setAnimationSpeed(5000);//5000frame/secでアニメーション
 
    while(Device->run())
    {
        Driver->beginScene(true, true, SColor(0,100,100,160));
        Scene->drawAll();
        Driver->endScene();
    }
 
    Device->drop();
    return 0;
}

Q.Ver.1.2からVer.1.3へバージョンアップしたら自前のSceneNodeがコンパイルできません

A.関数名が変更になりました。下記の5つを変更してください。

公式の更新履歴では、OnPreRender()はOnAnimate()に、OnPostRender()はOnRegisterSceneNode()へ置換すればいい、と書いてあります。これは記載ミスで逆です。

virtual void OnPostRender(u32 timeMs) → virtual void OnAnimate(u32 timeMs)
virtual void OnPreRender() → virtual void OnRegisterSceneNode()
SViewFrustrum → SViewFrustum
virtual video::SMaterial& irr::scene::ISceneNode::getMaterial(s32 num) → virtual video::SMaterial& irr::scene::ISceneNode::getMaterial(u32 num)
virtual s32 irr::scene::ISceneNode::getMaterialCount() → virtual u32 irr::scene::ISceneNode::getMaterialCount()

Q.Visual C++ 2005 Express Edition でビルドエラー。「プロジェクト : error PRJ0003 : 'cmd.exe' の起動中にエラーが発生しました。」

A.パスが通っていません。システムのプロパティの詳細設定、環境変数のPathの内容を確認。%SystemRoot%\system32を追加してください。既に追加されていても、もう一度書き直して再起動してみると改善することがあります。

もしくはVC2005のメニューから、[ツール]-[オプション]ウィンドウを表示。左のツリーから[プロジェクトおよびソリューション]-[VC++ディレクトリ]を選択。右上のドロップダウンリスト[ディレクトリを表示するプロジェクト]から「実行可能ファイル」を選択。そこに以下のパスを追加してください。

$(SystemRoot)\System32
$(SystemRoot)
$(SystemRoot)\System32\wbe

Q.コンソールウィンドウを非表示にしたい

A.[構成プロパティ]-[C/C++]-[プリプロセッサ]-[プリプロセッサの定義]から"_CONSOLE"定義を削除。[構成プロパティ]-[リンカ]-[システム]-[サブシステム]を、コンソール "(/SUBSYSTEM:CONSOLE)"から"Windows (/SUBSYSTEM:WINDOWS)"へ変更。ソースコードのメイン関数を"main"から"WinMain"に変えてください。"windows.h"も追加する必要があります。

ソースコードの書き換えが面倒に感じるならば、下記コードのようにプリプロセッサを利用して自動切換を行ってください。

#if !defined(_CONSOLE) && defined(WIN32)
#include
#endif

#if !defined(_CONSOLE) && defined(WIN32)
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
#else
int main (int argc, char* argv[])
#endif
{
return 0;
}

更新日:2009.03.10 (Tue)

海外ゲーム予約

Download

IrrlichtML 1.7.1 Updated 06.Jul.2010

スポンサー

カウントダウン

Ubuntu 10.04 LTS - It's here!