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/
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個あるとします。 接触する事とは、中心と中心の距離で求められます。
463 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 18:15:39 ID:k9t2KKAY] >>462 手のジョイント位置と対象位置でバウンディングスフィアしてパンチ!とか一応やってみました。 でもirrlichtの機能の範囲でBBなんかでさくっと判定できる方法があればやり方を知りたいです。 具体的にはCSceneNodeAnimatorCollisionResponseを参考にしてみたんですが 移動抜きで現時点の接触を知りたい場合にスフィアなりせずにirrlichtの機能任せにできないかなと思って。
464 名前:441 mailto:sage [2008/03/22(土) 21:30:03 ID:KVorMeSU] >>461 BBって一般的なAxis Aligned Bounding Box(AABB)のことですよね。 template<class T> bool irr::core::aabbox3d<T>::intersectsWithBox(const aabbox3d<T> & other) const [inline] でAABB同士の当たり判定ができます。 セレクタ対セレクタは、・・・難しそうですね。 セレクタ対BBは、ITriangleSelectorに指定したAABBに含まれる三角形ポリゴンを取り出す機能があります。 それにしてもうpから5日経つのに音沙汰なしですか・・? >>459 の OBBTree使ったメッシュ同士の当たり判定。結構高速でそれなりに正確です。 ゲームに使うには十分だと思います。 ttp://www-2ch.net:8080/up/download/1206188724122478.uVc1b2 流れちゃったので再うpします。DLKEYはobbtreeです。OBBTreeの部分は ttp://home7.highway.ne.jp/nomura_y/prog005.htm をIrrlicht用に移植しました。TriangleSelectorとしての機能もつけたいんですがうまくいきません・・。 ほかにもいろいろ問題がありますが、まぁ動いたのでいいでしょう・・・。
465 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 17:58:02 ID:YyMn0R5A] また単発質問させてください。 スクリーンの大きさぴったりに描画されるビルボードの作り方はありますでしょうか? (カメラを親にしてビルボードを作成しているので常に目の前にビルボードを描画するところまではできています。) 何をしたいかというと 1回テクスチャにレンダしたデータを画面に表示するときにピクセルシェーダを経由して表示させようとしています。 draw2dimageではシェーダーマテリアルの設定がうまくいきませんでした。 何かヒントでもあればご教示ください。
466 名前:lesson.ifdef.jp mailto:sage [2008/03/23(日) 22:41:58 ID:fLRzMwSc] プロバイダが9日から規制されてて書き込みできずorz 規制解除されたので書き込みを >>441 ライトはビデオカードによって表示できる個数に制限があるかもです 古いカードでも3個まではライトを確認してます (前面から青、背面から赤、カメラ位置に白で確認) うちの環境だとバンプマッピングができず、ビデオカード変えると OpenGLでの描画ができず・・・ (初期不良か ファイルはダウンロードできたのでOBBTreeを見てみたいと思います 当たっているOBBが違う色で表示されれば目視が楽そうですね 色々いじってみます(rockwall.bmpがなかったので適当に作りました)
467 名前:441 mailto:sage [2008/03/24(月) 21:11:28 ID:cbUStkSt] >>465 2D用の命令ではシェーダーが適用されない使用になっているのでだめです。(ソースを見ると、シェーダー無しの状態に戻していました) struct VS_OUTPUT { float4 pos : POSITION0; float2 texCoord : TEXCOORD0; }; VS_OUTPUT vs_main( float4 inPos: POSITION ) { VS_OUTPUT o = (VS_OUTPUT) 0; inPos.xy = sign( inPos.xy); o.pos = float4( inPos.xy, 0.0f, 1.0f); // get into range [0,1] o.texCoord = (float2(o.pos.x, -o.pos.y) + 1.0f)/2.0f; return o; } RenderMonkeyのScreen-AlignedQuadから取ってきた頂点シェーダーです。(HLSL) 別にカメラを親にしなくても、このシェーダーを適用するだけで表示される・・筈です。 シーンノードで描画する場合はsetAutomaticCullingでカリングのモードをEAC_OFFにしておきましょう。 >>466 当たっているOBBは赤で表示されます。最初に見つかった1ペアだけですが。 Irrlicht SDKに含まれていますよrockwall.bmp (だからIrrlicht SDKと同じフォルダ構造にしていたんです)
468 名前:465 mailto:sage [2008/03/24(月) 23:59:55 ID:YyeAT6+O] >>467 ご指摘ありがとうございます。 指摘されたHLSLを使うことで、うまくできました。 以下が作ってたサンプルになります。 (内容は法線MAPを使って輪郭描画を行うサンプルです。) ttp://gamdev.org/up/img/11248.zip
469 名前:名前は開発中のものです。 mailto:sage [2008/03/25(火) 00:01:49 ID:YyeAT6+O] あ、書き込み全部書く前に投稿してしまた、、orz.. 上のZIPですが、自分の環境がirrlichtライブラリの中に手を入れたりしているので そのままではコンパイルできないかも知れませんので注意してください。
470 名前:名前は開発中のものです。 mailto:sage [2008/03/29(土) 00:01:52 ID:9eKD+9jY] キャラクタークラスはどう作ります? 候補と印象は以下 1、エンティティの中にシーンノードを保持する。 シーンノードを自由に組み合わせられるのは魅力的だが、 特殊な表現をするには結局新しいシーンノードを作る必要がありそう。 2、シーンノードを継承する。 自由に描画処理を記述できるメリットは大きいが面倒そう。 3、シーンノードアニメータを継承してシーンノードに追加する。 複数のシーンノードを組み合わせて使うのが大変そう。 4、それ以外。
471 名前:名前は開発中のものです。 mailto:sage [2008/03/30(日) 23:27:58 ID:q0Ctn/EA] ttp://www.irrlicht3d.org/wiki/index.php?n=Main.Shaders Special Shader Pack by Nadroって何処からDL出来るんですか? フォーラムに飛びますが何処からDLするのか分かりません。
472 名前:lesson.ifdef.jp mailto:sage [2008/04/04(金) 22:03:23 ID:I+kk4Izj] >>441 遅くなりましたがOBBTreeの報告です COBBTreeTriangleSelector.cpp内の17行目辺り bool COBBTreeTriangleSelector::_checkCollision()の この部分を if (!childAL && !childAR && !childBL && !childBR) { result = true; } trueを返していますが、コメントアウトしておいてください。 if (!childAL && !childAR && !childBL && !childBR) { // result = true; } これで、当たり判定があった部分は全て表示が変わります。 ただし問題が1つあって、回転させた場合、 「回転する前のオリジナルのOBBTreeの位置に当たり判定が発生」しています。 これは、createRotationAnimator()が悪さをしているのだとは思いますが そこまでは調べていません。 とりあえず報告まで お試しください
473 名前:lesson.ifdef.jp mailto:sage [2008/04/04(金) 22:10:21 ID:I+kk4Izj] >>470 キャラクタークラスを作成するにあたって、 私としては「2、シーンノードを継承する。」が一番楽だとは思います。 キャラを用意して、動きなどを設定してあげれば render()で全て描画してくれるので確かに楽です。 getPosition/setPosition/getRotationなどがすぐに使えるのがいいです。 気になる点としては、描画順番の管理の仕方でしょうか? (弾丸を発射させても、MAPの後ろに隠れて表示されないなど そういう問題が発生して、どうしようかと思っている所です) これは、他にわかる人からの助言が欲しいです。
474 名前:lesson.ifdef.jp mailto:sage [2008/04/04(金) 22:18:25 ID:I+kk4Izj] >>472 17行目ではなく147行目です・・・ 関数名で検索してください;; >>471 Nadro氏の投稿記事内で時々URLが出ていますが、 全てがダウンロードできるわけではなさそうです。 ttp://rapidshare.com/files/38691306/Chernobyl_Shaders.rar.html ttp://rapidshare.com/files/39444062/Chernobyl_Shaders_Multi_Lighting.rar.html ttp://rapidshare.com/files/41942562/0_1_CGE_Plastic.rar あとは、同じように記事内にShaderのプログラムがそのまま 記載されているので、それを必要な部分に組み込む形になるかと思います。
475 名前:名前は開発中のものです。 mailto:sage [2008/04/06(日) 00:16:57 ID:Naj1qGbT] >>473 ソースを見た限り、Irrlichtはノードをテクスチャでソートしてしまっているので、 細かい描画順の管理(Ogreのプライオリティ管理のようなもの)は出来ないかと思います。 が、半透明オブジェクトのパスは、通常オブジェクトのパスより後に来ることは保証されているので、 マップのような半透明のHUDで弾オブジェクトが隠れてしまうのを防ぎたいのであれば、 registerNodeForRendering の引数に ESNRP_TRANSPARENT を指定するといいんではないでしょうか。
476 名前:名前は開発中のものです。 mailto:sage [2008/04/06(日) 00:25:09 ID:8nqMAlGm] >>472 ありがとうございます!試してみます >「回転する前のオリジナルのOBBTreeの位置に当たり判定が発生」しています。 どうりで当たっていないOBBが赤くなると思いましたよ・・。 さて、どうすりゃいいか・・。
477 名前:lesson.ifdef.jp mailto:sage [2008/04/06(日) 01:01:36 ID:qjatMiVM] >>475 >Irrlichtはノードをテクスチャでソートしてしまっているので、 やっぱり、ソートしてる感じですかorz 特定の向きだと表示される場合があったりしてすごいはまりました。 情報ありがとうございます。 はまる前はISceneNodeを継承させずにやってたので気づきませんでした。
478 名前:lesson.ifdef.jp mailto:sage [2008/04/06(日) 01:19:50 ID:qjatMiVM] >>476 アニメータが悪さしてるかと思っていましたが setPosition/setRotationで移動/回転を行ってみたところ こちらでもオリジナルの座標で計算していました。 なので、_checkCollisionなどで「回転」も与えないと厳しそうですね。 オリジナル版では接触部分の色変化はさせていなかったので、 もしかしたら気づかなかったのかもしれません。
479 名前:名前は開発中のものです。 [2008/04/07(月) 17:33:46 ID:tTPi+peN] Irrlicht lessonのとうりインストールしましたが、エラーが出てコンパイルできません。 Vista,VC++Expressで、プロジェクト名lessonです。どこが悪いか教えてください <出力> 1>------ ビルド開始: プロジェクト: lesson, 構成: Debug Win32 ------ 1>マニフェストを埋め込んでいます... 1>mt.exe : general error c10100b1: Failed to load file "..\Debug\lesson.exe". U_Q9LdK 1>~[ 1>ビルドログは "file://c:\irrlicht-1.4\lesson\lesson\Debug\BuildLog.htm" に保存されました。 1>lesson - エラー 1、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== ビルド ログ ビルド 開始: プロジェクト: lesson、構成: Debug|Win32 コマンド ライン 一時ファイル "c:\irrlicht-1.4\lesson\lesson\Debug\RSP00000113044012.rsp" を作成しています。内容 : [ /outputresource:"..\Debug\lesson.exe;#1" /manifest ".\Debug\lesson.exe.intermediate.manifest" ] コマンド ライン "mt.exe @"c:\irrlicht-1.4\lesson\lesson\Debug\RSP00000113044012.rsp" /nologo" を作成しています。 出力ウィンドウ マニフェストを埋め込んでいます... mt.exe : general error c10100b1: Failed to load file "..\Debug\lesson.exe". U_Q9LdK ~[ 結果 ビルドログは "file://c:\irrlicht-1.4\lesson\lesson\Debug\BuildLog.htm" に保存されました。 lesson - エラー 1、警告 0
480 名前:名前は開発中のものです。 [2008/04/07(月) 17:35:25 ID:tTPi+peN] >>479 VC++2008Expressです
481 名前:441 mailto:sage [2008/04/07(月) 21:45:06 ID:HN/Waynt] >>478 >なので、_checkCollisionなどで「回転」も与えないと厳しそうですね。 行列を使って回転の処理もちゃんとしているつもりでしたが どうやら何処か処理が間違っているようです。 野村XX氏のは行列を移動用と回転用で分けて渡していますがこのプログラムでは そうしていません。core::matrix4のtranslateVectとrotateVectを使えば分けなくてすむと 思ったのでそうしました。
482 名前:lesson.ifdef.jp mailto:sage [2008/04/08(火) 00:32:01 ID:UBGq2D2b] >>479 >Irrlicht lessonのとうりインストールしましたが、エラーが出てコンパイルできません。 むむ、すみません。ファイルを作成した場合は、 ビルドする対象に設定する(ソリューションに追加する)必要があります。 その部分を更に詳しく追記しておきましたので、確認してください。 ■エラー内容 通訳?すると、ビルドする対象が存在しないためビルドに失敗しました、です。 ■対処方法 ソリューションにmain.cppを追加してください。 lesson.ifdef.jp/000.html の下部に詳細を追記しておきました。 ソリューション エクスプローラーにファイルを追加すると大丈夫です。 >>441 OBB自体の描画は問題ないようなので、当たり判定をする時の座標を 注目すれば何とかなりそうな気はします。 こちらでも、確認できたら再度お知らせします。 オリジナルよりも簡潔になっている部分も多々あったので応援してます。
483 名前:名前は開発中のものです。 [2008/04/08(火) 19:37:04 ID:46Ui6/PR] >>482 できました。ありがとうございます またお願いします
484 名前:441 mailto:sage [2008/04/08(火) 23:57:58 ID:s2YHW7Mx] とりあえずイベントレシーバーを使ってオブジェクトを自由に移動、回転できるようにしてみました。 でも今日うpは無理かもです。
485 名前:441 [2008/04/10(木) 21:51:47 ID:x0tHNvR8] 1箇所修正しただけで直りました! COBBTreeTriangleSelector::isCollisionの boxA.Matrix.rotateVect(vecAtoBTrans, boxA.Center - boxB.Center); となっているところを boxA.Matrix.rotateVect(vecAtoBTrans, boxB.Center - boxA.Center); にしなければならなかったようです。
486 名前:441 mailto:sage [2008/04/10(木) 23:42:49 ID:x0tHNvR8] 変更予定 1.基底クラスをITriangleSelectorではなく独自のに変更する (CTriangleSelectorだとTrianglesがCOBBTreeTriangleSelectorを作るたび配列Trianglesが 毎回作られ処理時間とメモリが無駄) 2.できればOBBの面が裏返らないようにしたい 3.接触しているポリゴンのペアと交点を取得可能にする 4.OBBTree以外にも球や直方体と当たり判定が可能にする lesson.ifdef.jpさんデバッグありがとうございます
487 名前:名前は開発中のものです。 [2008/04/11(金) 19:18:44 ID:guvAZOSL] こんにちは、Irrlicht Lessonを利用させていただいている者です。 LessonB03ーXファイルの表示について、lesson.exeを実行するとちゃんと表示できます。しかし、Lesson.dswを開いてVC++上で実行するとコンパイルはできても、tiger.xが真っ黒でテキスチャが反映されません。一応Debugフォルダにtiger.xを入れてみてもやっぱりだめです。 何が原因かがわかりません。 Lesson006-テクスチャはともにうまくいきました。 どうぞご確認ください
488 名前:lesson.ifdef.jp mailto:sage [2008/04/11(金) 22:13:29 ID:5Azux61S] >>483 VCの初期設定の不足分の指摘ありがとうございました。開発がんばです! >>441 修正お疲れ様です! 変更予定箇所が沢山ありますね。 変更は大変なので、バックアップを忘れずにっっ >>487 ご利用ありがとうございます。微妙にライトの挙動がおかしいですね… プロジェクトから実行した際に、真っ黒なのを確認しました。 現段階の対応策として、nodeの定義の後に以下を追記してください。 ライトの影響を無視するので、テクスチャの確認は可能です。 node1->setPosition(vector3df(-2,0,0)); node1->setMaterialFlag(EMF_LIGHTING, true); //←これ追加 false:ライト無視 : node2->setPosition(vector3df(2,0,0)); node2->setMaterialFlag(EMF_LIGHTING, true); //←これ追加 false:ライト無視 <<お土産>> 現在作っているFPSゲームの実行ファイルをアップしておきます。 lesson.ifdef.jp/file/irrlesson_hb.zip
489 名前:lesson.ifdef.jp mailto:sage [2008/04/11(金) 22:36:35 ID:5Azux61S] >>487 ご利用ありがとうございます。微妙にライトの挙動がおかしいですね… プロジェクトから実行した際に、真っ黒なのを確認しました。 現段階の対応策として、nodeの定義の後に以下を追記してください。 ライトの影響を無視するので、テクスチャの確認は可能です。 node1->setPosition(vector3df(-2,0,0)); node1->setMaterialFlag(EMF_LIGHTING, false); //←これ追加 false:ライト無視 : ^^^^^ node2->setPosition(vector3df(2,0,0)); node2->setMaterialFlag(EMF_LIGHTING, false); //←これ追加 false:ライト無視 ^^^^^ ※trueではなくfalseです…。 trueで表示されないことを確認して、そのままupしてしまったorz
490 名前:名前は開発中のものです。 [2008/04/13(日) 10:39:19 ID:DXszE/f/] こんなかんじで 2sen.dip.jp:81/cgi-bin/upgun/up4/source/up0364.zip
491 名前:lesson.ifdef.jp mailto:sage [2008/04/13(日) 21:34:01 ID:yZyopwHg] >>490 数日で戦車のXファイルを表示できるまでになったのはスゴイですね キー操作で動かせるようになると、さらに楽しくなるのでオススメです
492 名前:名前は開発中のものです。 mailto:sage [2008/04/13(日) 23:09:36 ID:++ZLZc4W] www-2ch.net:8080/up/download/1208095633541460.Oyrgk4 まだまだ間違いがありました・・。 DLKEYはobbtreeです。多分入れ忘れは無いと思います
493 名前:lesson.ifdef.jp mailto:sage [2008/04/13(日) 23:50:10 ID:yZyopwHg] >>492 ダウンロードしてみましたが、以下の2つが見つかりませんでした… CCameraSceneNode.cpp CCameraTPSSceneNode.cpp とりあえずご報告まで
494 名前:441 mailto:sage [2008/04/14(月) 22:12:55 ID:u3RVdEoB] 現在は使っていないのでなくても大丈夫だと思います・・・
495 名前:470 [2008/04/16(水) 11:25:01 ID:0VSRffog] >>473 返信遅れてすいません。 シーンノードはデータ駆動でデータを再現すれば状態を復元できます。 ゲームの特徴と一致していますし 「キャラクターはシーンノードを継承する」というので同感です。 ただ、言われた通り描画順序の問題や更新処理のみを行うことが困難です。 本格的にやるならIrrlichtの改造が必要そうですね。
496 名前:441 mailto:sage [2008/04/17(木) 22:45:15 ID:t7r2WetS] 三角形同士の当たり判定って結構重いですね・・。 BVHとか使わなきゃいけないんでしょうか?
497 名前:lesson.ifdef.jp mailto:sage [2008/04/19(土) 18:08:01 ID:IeoDZSma] >>441 使用していないファイルをプロジェクトから外すことで 問題なく動作するのを確認できました。 キーで2つのオブジェクトも操作できるので当たり判定の確認も わかりやすくなっていました。 >>470 キャラクターの描画だけであれば、シーンノードで特に問題はありません。 銃弾や他オブジェクトはシーンノードを継承せずに、 drawIndexedTriangleList/drawIndexedTriangleFanを使用して 回避することも可能です。 できればシーンノードを継承していきたいですが、 私としては当分は自前の描画で対応してみようかなと思っています。
498 名前:441 mailto:sage [2008/04/20(日) 20:58:58 ID:A28b/pa+] "Cache-Ef?cient Layouts of Bounding Volume Hierarchies" を読んでみる事にします。
499 名前:441 mailto:sage [2008/04/20(日) 21:02:14 ID:A28b/pa+] すいませんコピーするときfiを直すの忘れてました。 Cache-Efficient Layouts of Bounding Volume Hierarchies です。果たして実装できるのだろうか? ttp://gamma.cs.unc.edu/COLBVH/ ttp://lucille.atso-net.jp/blog/?p=177 ttp://lucille.atso-net.jp/wiki/index.php?%B6%F5%B4%D6%A5%C7%A1%BC%A5%BF%B9%BD%C2%A4
500 名前:470 mailto:sage [2008/04/26(土) 22:21:42 ID:LvlHrFkO] >>497 自前で描画できれば最高ですね。 実力不足でシーンノードを利用するというのが本音です。 できればオブジェクトは統一的に管理したいので OnRegisterSceneNodeを呼ぶタイミングを操作する手もあるかもしれません。 これならIrrlichtを修正する必要はないですしね。 色々と検討してみます。
501 名前:470 mailto:sage [2008/04/26(土) 22:43:32 ID:LvlHrFkO] >>500 テクスチャでソートされてましたね・・・。 すいません、忘れてました。 勉強してきます。
502 名前:lesson.ifdef.jp mailto:sage [2008/04/27(日) 23:35:33 ID:RbWzqJOX] HLMV(Half-Lifeのモデルビューア)を作成しました 最初から読み込めるモデルファイルに www.counter-strike-dl.com/cs-skins.html で公開されている武器やキャラクターモデルを使用できるようになります (ここでは、Counter-Strike 1.6のモデルに対応しています) MD2に比べて、モデルのクオリティが上がっているのでなかなかよさげです また時間があればSourceやHL2にも対応してみたいと思います こちらでソースと実行ファイルを公開しました lesson.ifdef.jp/ >441 BVHは詳しくないですが、基本的にはIrrlichtで用意されている ITriangleSelectorを使用しています もしかしたら、こちらの方が参考にしやすいかもしれません (Irrlichtのソースはかなり見やすい方なのでおすすめです) >470 シーンノードを使用するとrender()が呼ばれない場合が発生してしまいます 自分の記述ミスなのか、内部のミスなのかは不明ですが ここも何か関係しているのかもしれません この場合の無理やりな対策方法としてOnRegisterSceneNode()内で render()を呼び出すことで何とか回避可能です 自力の描画はモデル等ではなく空間上のスプライト(画像)関連で 使用しています これであれば、特に描画に苦しむことなく対処可能かと思います drawIndexedTriangleFan/drawIndexedTriangleListを呼べばいいので 挑戦したくなったときにでも見てみるとよいかもです (DirectXやOpenGLと記述方法が同じなので、そちらで勉強するのもアリです)
503 名前:名前は開発中のものです。 [2008/04/30(水) 19:11:34 ID:lXj3d1Z3] www.realintegrity.net/~irr/index.php?Tutorial%207.%20Collision Irrlicht-Toutorial7.Collisionで scene::IAnimatedMesh* q3levelmesh = smgr->getMesh("20kdm2.bsp"); scene::ISceneNode* q3node = 0; if (q3levelmesh) q3node = smgr->addOctTreeSceneNode(q3levelmesh->getMesh(0)); scene::ITriangleSelector* selector = 0; if (q3node) { q3node->setPosition(core::vector3df(-1370,-130,-1400)); selector = smgr->createOctTreeTriangleSelector( q3levelmesh->getMesh(0), q3node, 128); q3node->setTriangleSelector(selector); selector->drop(); } と、q3nodeが設定されていますが、このq3nodeは一体何ですか?後で妖精ノードが追加されているけどそれとは違いますよね。
504 名前:名前は開発中のものです。 [2008/04/30(水) 19:12:19 ID:lXj3d1Z3] もうひとつ scene::ICameraSceneNode* camera = camera = smgr->addCameraSceneNodeFPS(0,100.0f,300.0f); camera->setPosition(core::vector3df(-100,50,-150)); scene::ISceneNodeAnimator* anim = smgr->createCollisionResponseAnimator( selector, camera, core::vector3df(30,50,30), core::vector3df(0,-3,0), core::vector3df(0,50,0)); camera->addAnimator(anim); anim->drop(); は、カメラが壁にぶつかるのを防ぐためにカメラ衝突判定用のノードanimを作り、これと壁との衝突を判定しているとうことでいいですか?
505 名前:名前は開発中のものです。 mailto:sage [2008/05/01(木) 04:56:34 ID:CPjy9vH/] >>503 地面や壁をAnimatedMeshを元にOctTree方式でシーンノードとして生成してる。 その後、q3nodeを通して生成したシーンノード(壁)を移動させたり 衝突判定オブジェクトを各作成したりしてます。 >>504 Yes
506 名前:名前は開発中のものです。 [2008/05/01(木) 17:53:06 ID:2ANReaIH] >>505 壁がありましたね。学習がはかどりました
507 名前:名前は開発中のものです。 [2008/05/17(土) 23:39:10 ID:hnGWnyu0] sourceforge.net/projects/irrext/ こんなのが発足した模様です。
508 名前:名前は開発中のものです。 mailto:sage [2008/05/18(日) 00:30:20 ID:4fpjGLSX] かなり前から公式にもアナウンスありますな でも、まだ再稼動したばかりなので様子見… Irrlichtは基本機能のみのリリースで irrExtから必要な拡張機能をチョイスする使い方を想定してるっぽい フォーラムからエクステンションを発掘してくる時間を、これで節約できればいいな、と
509 名前:名前は開発中のものです。 mailto:sage [2008/05/27(火) 19:26:56 ID:aolezDeL] スレ違になるかも知れませんが、質問させてください。 GtkRadiantでマップを作ると、商用目的での利用は不可と知ったんですが、 商用目的でゲームを作成する場合、どうしたら良いのでしょうか? bsp以外の形式では駄目なんですよね?
510 名前:lesson.ifdef.jp mailto:sage [2008/05/27(火) 19:58:58 ID:Ku435Aae] >>509 参考になればですが 「Valve Hammer Editor」というものもあります GtkRadiant同様にbspファイルを作成可能ですので こちらを調べてみてはどうでしょう bspにこだわらなければxファイルでマップを作成することも可能です
511 名前:名前は開発中のものです。 mailto:sage [2008/05/27(火) 22:57:58 ID:aolezDeL] >>510 おお!即答どうもです。 特にbspにはこだわってません。xファイルでもいけるのかぁ。 Valve Hammer Editorもこれから調べてみます。
512 名前:名前は開発中のものです。 mailto:sage [2008/06/03(火) 21:34:28 ID:M+I6OwAB] 案内カキカキ TopPage - game-develop.com wiki wiki.game-develop.com/ GameDevWikiを何とかするスレ pc11.2ch.net/test/read.cgi/gamedev/1156117275/
513 名前:名前は開発中のものです。 mailto:sage [2008/06/03(火) 22:12:48 ID:ioTO156U] >>511 Irrlichtはいろんなメッシュの形式をサポートしています。 そしてIrrlicht Wikiにはいろんなマップエディタへのリンクがあります。
514 名前:名前は開発中のものです。 [2008/06/11(水) 23:35:53 ID:2R3HrNSv] age
515 名前:名前は開発中のものです。 mailto:sage [2008/06/16(月) 22:49:04 ID:mwennFf6] DirectXSDKは、最新バージョンを入れておく必要がありますか?