1 名前:名前は開発中のものです。 mailto:sage [2006/10/05(木) 06:50:19 ID:UN/zUzoQ] zlibライセンスでクロスプラットホームなゲームライブラリ、Irrlichtのスレです。 ※回答する人も、質問する人も必ず読んでください これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近Irrlichtを始めたばかり 3.SDKを見ても、Googleで検索しても、エキサイト翻訳でもいまいち理解できない人 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「英語読め」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する人 】 ・ どんな事で躓いているのか明確にする。 ・ 長くならないなら躓いている部分のコードを晒してみてください。 ・ 解決した場合、お礼を言うのは当然ですが、何をどうしたら解決したかを明確に書くこと。 前スレ pc8.2ch.net/test/read.cgi/tech/1104179696/
405 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 10:23:18 ID:FpXK7fP/] >>403 CGUITTFontは一度でも現れた文字は必ずキャッシュされているようです。 だからビデオメモリの消費量が心配なのですが… >>402 情報ありがとうございます。ですがもうFreeTypeでレンダリングするところ まではできてしまったので、もうこのままテクスチャ転送まで進めたいと思います。 1枚絵表示するのにテクスチャ確保するのもあほみたいなので、フレームバッファに 直接書き込む手段と、2D周りがかなり弱いのでその辺補うライブラリも構築することにします。 それと動的ロードの話が出てきましたけど、IReferenceCountedの実装を見るとヘッダ ファイルのなかでdelete thisしてます。 これは、コンパイラの最適化か何かでDLL呼び出し元でdeleteされるとまずくないですかね? new/deleteの実装が異なるコンパイラで作成されたDLLを動的ロードすると、delete時に 不整合を起こすような気がします。あまり詳しくないのでひょっとしたら無駄な心配 なのかもしれませんが…
406 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 10:45:41 ID:FpXK7fP/] >>401 回答ありがとうございます。 フルスクリーン切り替えは面倒ですね…。
407 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 10:49:29 ID:YttCO1k2] >>405 0.5ぐらいの時代だから2年近く前?にdeleteの問題は公式フォーラムで議論されてたはず。 で、結論は「問題なす」だったはづ
408 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 17:48:13 ID:FpXK7fP/] >>407 以前に議論された話題だったのですね。失礼しました。
409 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 19:00:41 ID:MPN2QJSG] 質問です。直感でさくっとお答え頂きたいです。 FPSゲーを作ろうとしていて、よさげなライブラリを探しています。 画面を左右2分割にして、2人でプレイ出来るようにしたいのですが、 irrlicht での実装は描画の面において楽に出来ますか?
410 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 20:32:40 ID:jU51nQMI] >>409 ビューポートとカメラの切り替えで実現できると思います>分割対戦
411 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 22:21:07 ID:Vt/UlEbN] >>409 公式のチュートリアルに画面分割のサンプルあるお
412 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 23:45:04 ID:+c4l9exa] OctreeTriangleSelectorを使ってメッシュのどの面とどの面が 衝突したかまで分かる詳細な衝突判定ってできますか?
413 名前:409 mailto:sage [2008/01/26(土) 06:10:08 ID:/SAwn9ff] >>409-410 レスありがとうございます! ュルルルリッヒエンジンでがんばってみます。
414 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 06:11:19 ID:/SAwn9ff] スマソ >>410-411 ですた。ありがとう!
415 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 18:00:09 ID:0EKxzkd2] OGREからこっちに鞍替えを目論んでます。 本家のFeaturesに「BlenderのエクスポーターがSDKにあるよ」みたいな事が書いてあったんで1.4のSDK落としてみたんですが、見つかりません… readmeのフォルダ一覧にもexportersフォルダが書いてあるのに見つからず。 どうすれば…orz OGRE用のメッシュファイル(.mesh)も読めるみたいですが、試してみた方いますか?
416 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 18:35:32 ID:zD+QiSlQ] >>415 OGREのCVSに「blenderimport」と「blendersceneexporter」ってフォルダがあるけど これがBlender関係のSDKじゃね?
417 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 21:19:47 ID:0EKxzkd2] >>416 それってもしかしてコレのことですか? ttp://ogre3d.org/wiki/index.php?title=Tools:_Blender&printable=yes OGREでBlenderで作ったデータを読むことはできてます。 思いっきり要すると Blenderで作ったデータをIrrlichtで読むにはどうすればいいの? という事が聞きたかったのですが、うまく伝えられてなかったらすいません。 OGREで使ってた.meshのデータをIrrlichtでアニメ付でちゃんと読めればベストなんですが。 ttp://irrlicht.sourceforge.net/features.html に there are exporters for popular 3D packages (Blender, 3DSMax, Gile[s], ..) included in the SDK. って書いてあるから、SDK落とせば何か入ってんだろ、とか思ってたらそれらしいのが入ってないし。。。 BlenderとIrrlichtの組み合わせでやってる人、居ませんか?
418 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 22:32:35 ID:zD+QiSlQ] >>417 すまん、「本家のFeatures」を、OGREのFeaturesと勘違いしてたみたいだ Irrlichtのスレなのにな・・・ Irrlicht + Blenderなら、アニメーションが出来るDirectXのメッシュ(.x)使った方がいい IrrlichtはXメッシュをそのまま読めるからIrrlicht用にわざわざコンバートしなくて済むしな ただ、Xメッシュはツールによってフォーマットが少し異なる場合があるので注意な
419 名前:名前は開発中のものです。 mailto:sage [2008/01/27(日) 00:34:07 ID:+Y3aPJmy] メタセコで作ると「{」の位置のせいで読めなかったりな。 仕方ないから「{」の前に改行入れるコンバータ作っちまった。
420 名前:名前は開発中のものです。 mailto:sage [2008/01/27(日) 15:56:59 ID:oNRFDMwA] >>418 .xで試してみました。 IrrlichtのMesh Viewerで読めたので、たぶんコレで大丈夫だと思います。 ありがとうございます。
421 名前:名前は開発中のものです。 mailto:sage [2008/01/28(月) 17:43:17 ID:afuGywxJ] >>420 ところでOGREからこっちに移行する気になった理由はなんだったんだろか
422 名前:名前は開発中のものです。 mailto:sage [2008/01/28(月) 17:58:37 ID:XOEvg/3a] どうせ「英語読めない」でしょ
423 名前:名前は開発中のものです。 mailto:sage [2008/01/28(月) 23:58:25 ID:G7mZ8jO6] 自分はOGRE知らないのですが、ライセンスに惹かれてIrrlichtを選択しました。 ところで、drop()を忘れそうな自分はboost::intrusive_ptrを愛用していますが、 使ってる人はいるでしょうか?
424 名前:名前は開発中のものです。 mailto:sage [2008/01/30(水) 11:06:43 ID:+OYkniIM] >>423 俺も昔は使ってたけど、サイズがでかくなるし、ポインタコピーするたびに 内部でごにょごにょやってるしで精神衛生上よろしくない だから、解放処理が必要なオブジェクトはシングルトンなマネージャクラスに任せてる マネージャのコンストラクタで生成&初期化して、デストラクタで開放させれば 管理する必要が無くなる やろうと思えば手動開放もできる 使うときは IrrlichtDevice *dev = IrrManager::getSingleton().getIrrDevice(); みたいな感じで、初期化さえしとけばいつでもどこでもアクセスできる OGRE使ってこの方法を見てから、俺の中ではこれが主流になってる
425 名前:名前は開発中のものです。 mailto:sage [2008/02/02(土) 16:46:40 ID:XyRp6hRG] irr1.3.1で壁の向こう側など、見えないポリゴンの描画を省略したいのですがうまくいきません。 現在は自分の後ろ側などしか省略されず、視線方向のものは全て描画されています。 マップ作成にはGtkRadiant1.4.0を使用しているのですが、マップの作成法に問題があるのでしょうか? それともそういった処理はirrに何かコードを追加しないといけないのでしょうか? 描画ポリゴン数が4万を越えたあたりから貧弱ノートでは厳しくなってきました。 マップロード部はこんな感じです。 IQ3LevelMesh *mapMesh = (IQ3LevelMesh*)scene->getMesh("maps/village.bsp"); IMesh *geometry = mapMesh->getMesh(quake3::E_Q3_MESH_GEOMETRY); ISceneNode *mapNode = scene->addOctTreeSceneNode(geometry);
426 名前:名前は開発中のものです。 mailto:sage [2008/02/05(火) 00:59:32 ID:iDwHPm2h] Material.Thickness=10.0; driver->setMaterial(Material); driver->draw3DLine(・・・) というとき、Thicknessの値をいろいろ変えても画面上の線が常に1ドット幅なんですが、 どうすれば2ドットの線などを描けますか?
427 名前:名前は開発中のものです。 mailto:sage [2008/02/05(火) 20:36:47 ID:iDwHPm2h] エンジンをDX9からOPENGLにしたらうまくいきました メインサポートがOpenGLだったんですね
428 名前:名前は開発中のものです。 mailto:sage [2008/02/06(水) 00:53:20 ID:Ac93WCkK] たぶん、ラインのサイズ指定がOpenGL依存なんだろうと思う
429 名前:名前は開発中のものです。 mailto:sage [2008/02/13(水) 21:57:17 ID:sC00+SwF] OpenGLだとaddLightSceneNodeで照らしたaddCubeSceneNodeがちゃんと見えるのに、 DirectXだと光源がない状態になってしまいます。(真っ黒 しかし、ある友人のパソコンでは、 OpenGLのときにguifont->drawをするとクラッシュしてしまうので、(DXなら動く) DirectXのサポートは続けておきたいのですが、どうしたらいいですか? その他人のパソコンでguifont->drawが使えない理由としてどんなものか考えられるか、と、 DirectXに切り替えると上の事例が起きる問題の解決方法を教えてください。
430 名前:名前は開発中のものです。 mailto:sage [2008/02/13(水) 23:32:38 ID:1ZAmjx1a] >>429 友人のGPUがOpenGL2.0に準拠してないかバグ持ちドライバな可能性がある
431 名前:名前は開発中のものです。 mailto:sage [2008/02/13(水) 23:43:28 ID:sC00+SwF] >>430 うーなるほど そうだとするとこっちには手が無いですね・・・ ありがとうございます
432 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 13:19:44 ID:uwsfmr7Z] IrrlichtML版のgetFontで得た日本語フォントをISceneManager::addTextSceneNodeに渡すと、 CGUITTGlyphのデストラクタでエラーが出ます。 サンプルでもNode関係を使っているのはなさそうなので、 これは仕様なのでしょうか? 環境はWindowsXPMCEのSP2、IrrlichtML1.4、VisualStudio2005Pro、freetype-2.3.5です。
433 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 22:44:27 ID:aJ3r8mIn] >>425 見えない敵とかの描画を省略しようと思ったらそら交差判定が必要になるでしょう
434 名前:名前は開発中のものです。 mailto:sage [2008/02/16(土) 00:11:18 ID:Kcju6cnr] ttp://lesson.ifdef.jp/B03.html このバグ、1.4では直ってないの
435 名前:名前は開発中のものです。 mailto:sage [2008/02/16(土) 19:51:58 ID:BJXzP4O8] 皆さん音楽はIrrlichtで音楽はどうしてますか?IrrKangはフリー以外だとライセンス購入が 必要ですし…何かお勧めのライブラリがあれば教えてほしいです。
436 名前:名前は開発中のものです。 mailto:sage [2008/02/17(日) 11:12:58 ID:k/Iqe8sD] xファイルの読み込みについて質問があります。 irrlichtでxファイルを読み込むときに右手、左手の座標系を指定して読み込ませることって できるんでしょうか? ttp://gamdev.org/up/img/11075.jpg ↑のようにXSIで作成しているときと、Xファイルビューアまたはirrlicht上で表示したときに鏡 像のような表示になってしまうのを、なんとかしたいのです。 環境はWinXP VC2008 irrlicht-1.4 です。
437 名前:名前は開発中のものです。 mailto:sage [2008/02/18(月) 20:53:38 ID:9PaR4TSR] >>432 driverに預けてあるテクスチャを本体が先に開放してるくさい どこかで既にremoveTextureが呼ばれてる気がする addTextSceneNodeの後にfont->grab()でもしておけばエラー回避は可能 その代わり、テクスチャ開放がされなくなります どうしたものか
438 名前:名前は開発中のものです。 mailto:sage [2008/02/19(火) 11:43:22 ID:CEbiXydm] ニコニコ吹いたw
439 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 02:38:40 ID:eWBznvro] 過疎り杉で全俺が泣いた。 ところで、436の件が自己解決したので報告。 汚い方法ではあると思うけど irrlichtのCXMeshFileLoaderを元にx座標を反転させながら xファイルを読み込むファイルローダを作って解決させました。
440 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 11:04:27 ID:OyDG9+KH] >>439 おつかれです。
441 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 23:42:36 ID:ve4woYRm] カメラがどんな向きを向いていても 常に手前から光が当たる 手抜きライティングをするにはどうすればいいですか?
442 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 00:44:37 ID:pSPDiQm8] >>441 ライティングしないようにするとかはダメ? (ポリorテクスチャの色そのまま表示するように) 対象ノード->setMaterialFlag(irr::video::EMF_LIGHTING, false);
443 名前:lesson.ifdef.jp mailto:sage [2008/02/27(水) 01:28:06 ID:7TCghY78] >>441 考え方として、以下のようなものはどうでしょう? 1.カメラの背後に光源という感じに、カメラを親として光源を設定 2.キーが押されたら、カメラの代わりにワールドを動かす これで、一応はカメラの方向から必ずライティングされるかと
444 名前:名前は開発中のものです。 mailto:sage [2008/02/28(木) 15:18:04 ID:e5iGSVK/] いつになったらゲームパッド対応するんだろう・・・
445 名前:名前は開発中のものです。 mailto:sage [2008/02/28(木) 23:49:36 ID:9jMY1Ybl] >>442 立体感つけたいのでライティングします。 >>443 CameraSceneNodeFPSと組み合わせたいのでそれはちょっと。
446 名前:lesson.ifdef.jp mailto:sage [2008/02/29(金) 19:57:00 ID:MU+29BuV] >>441 「常にカメラの方向からライティングされる」という意味ですよね? 「常に手前」という表現がちょっと曖昧なので、上記で解釈しました。 ライトを作成する時に、親を「ライト」にすれば大丈夫です。 (前回のは、親に設定したはずが別の値を設定していたため、 期待した動きにならなかったので、別の方法を提示してみました。 今日見たら引数が間違ってた・・・) //FPSカメラを作成 ICameraSceneNode *CameraNode = smgr->addCameraSceneNodeFPS(0,100,5); //カメラを親にライトを設定(ライトはカメラの位置) smgr->addLightSceneNode(CameraNode, vector3df(0,0,0), SColorf(0xFFFF0000), 100.0f); 第1引数にカメラのnodeをセット 第2引数に親からの位置を(0,0,0)=親と一緒をセット で、やってみてください。
447 名前:lesson.ifdef.jp mailto:sage [2008/02/29(金) 19:59:41 ID:MU+29BuV] 446の修正 ・ライトを作成する時に、親を「ライト」にすれば大丈夫です。 ↓ ・ライトを作成する時に、親を「カメラ」にすれば大丈夫です。
448 名前:441 mailto:sage [2008/03/04(火) 23:27:13 ID:+F3tYXlG] 出来ました!こんな感じでやりました。 scene::ICameraSceneNode *camera = smgr->addCameraSceneNodeFPS(0, 100.f, 100.f); camera->setPosition( core::vector3df(0,0,-100) ); scene::ILightSceneNode *light = smgr->addLightSceneNode( camera, core::vector3df(0,0,0) ); light->getLightData().Type = video::ELT_DIRECTIONAL;
449 名前:lesson.ifdef.jp mailto:sage [2008/03/08(土) 20:08:31 ID:42plfOng] >>441 おめでとー! これを少しいじれば、太陽のように見せることもできそうですね。 あとでやってみようかな。
450 名前:441 mailto:sage [2008/03/08(土) 23:32:53 ID:vuhDlgNP] >>448 あれ、ELT_POINTでも同じになっている気がします・・。 点光源なのに離れても暗くなりません。 あと、テクスチャつきだとライトの色は反映されているみたいですが影がつきません。
451 名前:lesson.ifdef.jp mailto:sage [2008/03/09(日) 01:14:28 ID:QaJyCdZ9] >>441 テクスチャつきのオブジェに対してのライトは マテリアルの設定を操作する必要があります。 SMaterialのLightingを見てみてください。 これがライトの影響を受けるか受けないかです。 (デフォルトでは影響を受けないようになってたかも)
452 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 21:38:47 ID:qxZlvuLX] αつきテクスチャを貼り付けたビルボードをαテストを使って透過させつつ、 頂点カのαを減少させてフェードアウトってできるんでしょうか? EMT_TRANSPARENT_ALPHA_CHANNELに頂点のα値を反映させたいんです
453 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 23:26:06 ID:txVQuh45] lessonさんのライトのところを見たんですが FPSゲームでよく使われるスポットライトも作れるんでしょうか その場合カメラと連動してライトも動かさないといけないのですが・・・
454 名前:名前は開発中のものです。 mailto:sage [2008/03/12(水) 22:51:57 ID:biTsIJxr] >>451 いや、デフォルトではtrueですが・・。 何でだろ、examplesのSpecial FxのroomMeshを読み込む部分のコードを そのままコピーしたらちゃんとライティングされています。
455 名前:441 mailto:sage [2008/03/12(水) 23:35:51 ID:biTsIJxr] その内ソースをupします。
456 名前:名前は開発中のものです。 mailto:sage [2008/03/13(木) 16:26:24 ID:Aiv+dbIO] SIRENみたいなゲームも作れそうですね
457 名前:名前は開発中のものです。 mailto:sage [2008/03/13(木) 17:25:48 ID:23U/XaUN] >>453 頂点単位でしかライティングできないから、ライトマップ使わないとだめ。 勘違いしてたらすまん。
458 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 22:33:58 ID:HWct05mu] >>457 いや、出来なくないと思いますが? バンプマッピングとかパララックスマッピング使えますし。 フォンシェーディングは自分でシェーダー読み込まないと使えないみたいですが。
459 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 23:23:15 ID:haIYreE8] >>453 スポットライトはパララックスマッピングやバンプマッピングでは使えないようです・・。 しかもライト2個までだし!!自分で実装しないといけませんね、これは。 ttp://gonzo.dip.jp/~gonzo/cgi-bin/uploader2/upload.cgi?mode=dl&file=4407 ライティングはどうやってもうまくいかないのであきらめることにしました・・。 それよりさまざまな問題が。 何故かどうやっても1バイトのメモリリークがなくなりません。行やファイル名が表示されないんです。 OBBTreeを使ったメッシュ同士の衝突判定クラスで、 三角形を含む全ての当たっているOBBを検出したいのですが1個しか検出できません。 ソースのDLKEYはobbtreeです。 ttp://home7.highway.ne.jp/nomura_y/prog005.htm OBBTreeの使い方はここを参考にしました。というよりプログラムをコピーしました。
460 名前:441 [2008/03/17(月) 23:32:00 ID:haIYreE8] >>459 = >>441 とりあえず上げときます。
461 名前:名前は開発中のものです。 [2008/03/21(金) 13:41:00 ID:k9t2KKAY] 単純なコリジョンについて誰か教えてください。 BB対BB、セレクタ対セレクタ、セレクタ対BBのどれかで 単純に現在接触しているかを知るにはどうすればいいですか?
462 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 17:06:47 ID:ipDiEarq] 円が2個あるとします。 接触する事とは、中心と中心の距離で求められます。