【3Dエンジン】Irrlicht初心者質問スレ【高速描画】
zlibライセンスでクロスプラットホームなゲームライブラリ、Irrlichtのスレです。
※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近Irrlichtを始めたばかり
3.SDKを見ても、Googleで検索しても、エキサイト翻訳でもいまいち理解できない人
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「英語読め」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する人 】
・ どんな事で躓いているのか明確にする。
・ 長くならないなら躓いている部分のコードを晒してみてください。
・ 解決した場合、お礼を言うのは当然ですが、何をどうしたら解決したかを明確に書くこと。
前スレ
http://pc8.2ch.net/test/read.cgi/tech/1104179696/
・特徴
zlibライセンス(組込、商利用自由)
マルチプラットホーム(Win、Linux、X-BOX...)
高速描画
DirectX9c、DirectX8、OpenGL、ソフトウェアドライバ2種、NULLデバイス
C++クラスによる初心者にも分かりやすいコーディングスタイル
キー・マウス入力対応(パッド不可)
BSPマップ対応
スキン・ボーンアニメーション対応
パーティクル、スカイドーム、テライン、ビルボード対応
コリジョン対応
屋内と屋外をシームレスに管理できるシーンマネージャー内蔵
XMLパーサー内臓
サウンド未搭載(別プロジェクト有)
ネットワーク未搭載(要各種ライブラリ)
物理エンジン未搭載(要各種ライブラリ)
4 :
名前は開発中のものです。:2006/10/05(木) 06:54:12 ID:UN/zUzoQ
移転完了!
5 :
名前は開発中のものです。:2006/10/05(木) 11:13:39 ID:W5DsfdEw
乙
6 :
名前は開発中のものです。:2006/10/05(木) 15:36:11 ID:wO+ehfKg
7 :
名前は開発中のものです。:2006/10/05(木) 18:49:43 ID:UN/zUzoQ
まず、Irrlicht をどう読んだらいいのか、小一時間悩んでいます・・・いるりっちゅっ?
ネイティブの発音だと、ィルリッヒ(ィにアクセント)って聞こえる。
日本ではイルリヒトとイルリッヒが候補で、アンケートでは現在前者が僅かにリード。
いるりっちゅもいいな。サルゲッチュみたいでw
>>1 乙
3のゲームエンジンの比較・評価ってかなり前の書き込みですよね。今でも状況変わってないもの多いのですか?
ネットもこれだけ普及したんだし、記事に日付つけるの普通にならんかなー。
一年前の安売り予告で店でえらい恥かいたorz
ほとんどが2004年くらいのだと思う。
ほぼ実装完了した枯れたライブラリで無い限り今はずいぶん変わってるかと。
公式のFuture見ただけでは分からない細かい使用感はどうにもならないなー。
イリチットって読んでた
>>11 ありがとです。
じゃあORGEを書き直そうかな、って書き直されてる!?maxうんぬんのあたりが変わってる・・・。乙。
じゃあ2004年と現在の最新情報が断わりなしに一覧になって評価されてるのか・・・。更新日を明記しないのって問題にならないのかしら。
イルたんブログ面白シロス。
評価に一覧表作ったら収拾つかなくなった('A`)
あんな見づらいんじゃいらないな。
17 :
名前は開発中のものです。:2006/10/13(金) 03:17:27 ID:M/9tq8+w
Irrlichtでゲーム作るときにState管理は何でやってますか?
ICE、IrrWizard、IrrRPG等があるけど、これ以外にも既存のものがあれば紹介して欲しいです。
だれか、雪をパーティクルで・・・Customizeable Particle systems for snow, smoke, fireらしいし
あ、それならパーティクルエディタってのがフォーラムかリンクのところにあるよ。
それにテクスチャ変えれば粉雪でもなんでも調節できるのあった。
mikoto2xのサンプルを読ませたらコマ送りになってしまった。
ってかアニメーションXファイルはどれもおかしくなってしまう。
MD2は作るのめんどいしなぁ
>>24 アニメーションスピードってIrrlichtから変えられなかった?
26 :
名前は開発中のものです。:2006/10/22(日) 19:05:44 ID:a0fByjKA
さげちまった、あげあげ
>>25 MD2以外も変えられた?
良ければその方法か、リファレンスへのリンクを教えてもらえるとすごく助かる
Xファイル内部のウェイトを変えても駄目っぽいな。
28 :
名前は開発中のものです。:2006/10/23(月) 20:39:14 ID:wY9PEWBQ
>>27 OK、コマ送り現象確認した。 てら遅す。
setAnimationSpeedでなんとかなったよ。
DirectXSDKのtinyで検証してみた。
↓イカソース
29 :
名前は開発中のものです。:2006/10/23(月) 20:40:15 ID:wY9PEWBQ
#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); //←歩き終わるまでの桁が大杉な件
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;
}
>>28-29 あなたが神ですか?
Tinyちゃんが滑らかに歩いてくれたよ。
でもkobito(mikoto2xサンプル)は相変わらず異常なんだよなあ
動くには動いているんだけど、二つのポーズを交互に取っている状態。
他のxファイルでも試してみる。
うーむ、mikoto2xだけの問題かもねぇ。
kobito見たけどアニメーションくっついてなくて試してなかった。
他のアニメーションソフトを中継して出力してみるのもいいんじゃないかと思う。
32 :
30:2006/10/24(火) 17:44:15 ID:1HiJlOW7
GameSpace light で円柱にボーン仕込んでクネクネさせてみた。
そしたら、とりあえず意図した通りにクネクネしてくれた。メインで使っていこうかな。
ちなみに、kobitoはGSLでは読み込めなかった。Tinyは正常に読み込まれたけど。
一方で、mikoto2xのデータをDirectX9で利用している人がいたけど、特に問題は無いみたいだった。
他のソフトと相性が悪いんだろうか。
>>32 GSLのファイル動作おめでと。
mikoto2x出力のファイルにはGSLやIrrlichtで使用するためのデータが欠落してる予感。
TinyはMSオフィシャルだから動いて当然だものね。
そういえば、Irrlichtのdwarf.xってMSのMesh Viewerで開けない件。
xメッシュ事態に方言あるし
35 :
名前は開発中のものです。:2006/11/28(火) 01:32:32 ID:ffG4Yfcn
irrEdit0.6記念age
パッド使いたいときってなに使えば良いん
2つある。
1つはmmsystem.h中のjoyで始まる関数を使う方法(joyGetDevCaps、joyGetPos)
※#ifndef MMNOJOYから下に関数と構造体が列挙されてる、winmm.libをリンクすればOK
2つ目はDirectInputを使う方法
前者はどの環境でも使用可能だがパフォーマンス悪し。
後者はDirectXの手続きを覚えないといけない、ただしパフォーマンス良し。
OSに標準でDirectXがインストールされてる時代、後者がお薦めだと思う。
38 :
36:2006/11/28(火) 23:15:42 ID:gHTOVHiX
>>37 レスサンクス
今上の方法を試してみたけどなんかエラーがいっぱい出てコンパイルできなかった
コンパイラはVC2005EE
39 :
名前は開発中のものです。:2006/11/28(火) 23:34:00 ID:ffG4Yfcn
40 :
36:2006/12/01(金) 00:52:34 ID:xtV8Ooq8
やっぱり駄目だったorz
DirectInput使うことにする
サンクス
今なら、DirectInputがらくだ織るね
42 :
名前は開発中のものです。:2006/12/07(木) 09:46:19 ID:OV4RuHsD
irrklang使った人いる?
やっとウィンドウが出せるようになったんですが
モデルの表示方法がわかりません
どのような流れで表示するんですか?
釣れますか
demoぱくれ
46 :
名前は開発中のものです。:2006/12/08(金) 13:21:47 ID:j7CKzRkT
>>42 お試しで使ってる。
ソースコードなくて不安だから、他のライブラリに切り替えられるようにラッピングしてあるけどね。
モデルの移動とか回転ってどうやるの?
サンプルどうりにやっても動かない
モデルはXファイルでやってる
48 :
名前は開発中のものです。:2006/12/18(月) 03:20:37 ID:dvGgNW4D
49 :
47:2006/12/20(水) 23:25:55 ID:UedEvhl1
モデルAとモデルBがあってその両方が常に向かい合うようにしたいときはどうやれば良いんですか?
二人の中間を二人で見ればいいと思います
相手を見ればいいじゃん
なぜ中間
>>50が向かい合っているって自分で言ってるからそれは考えて別な方法を探してるのかと、ほとんど一緒だけどww
54 :
名前は開発中のものです。:2007/01/02(火) 22:39:36 ID:i1cvRmIr
irrKlang0.3リリースage
変更点
・プラグイン機能によりmp3読込対応(使用にはライセンス料必須なので選択制)
・3Dサラウンドの本格実装
・マルチバッファリングを標準として追加(←リニアとの違いがよくわからんが)
手頃なサウンドエンジンとして、何よりIrrlichtとの親和性で注目株だな。
FPS固定する方法ってある?
余った時間sleep入れるのが簡単でいいんじゃないかな。
派生というかNX++が名称変えただけだよ。
オリジナルの機能が積極的にマージされてれば、肌に合ったほうを選べるんだけどね。
59 :
名前は開発中のものです。:2007/01/12(金) 08:36:16 ID:vcHi0rw8
何でこの手のサウンドエンジンはどれもこれもループ開始位置を指定できないんだろう。
音屋さんとの交流がないんだろうか。
位置の指定むずかしんじゃ?
>>59 ここの人が言ってる左上に変換候補が出ちゃうよ問題に対応した奴を
フォーラムにぶちこんどいた。
uuencodeでなwwww
うにこで?
base64とちがうの?
>>62 フォーラムでGUIのハンドル取れないよバーローって言ってた者だけどuudecodeでpatch出してみた。
Linuxパッチまで当たってて震撼したよ、すごいわ。
Win32でJPtester動かしたら見事に変換ウィンドウがキャレットに追従してくれました。
で、フォーラムにさっき必死に英語で書いた内容について。
>>62氏の改造したオリジナルに近いCGUITTFONTだと開放時(アプリ閉じるとき)にアクセス違反起すと思うんだけどどうでしょ?
>>67 そのバグ悩んでたんですわ。
と思って
>>67氏の書いたcodeを読んでアクセス違反する原因がわかったので
そのまま取り込んで件のcodeに対するパッチとして投げといた。ありがとう〜
69 :
67:2007/01/19(金) 00:14:43 ID:4ViJjUXT
70 :
62:2007/01/21(日) 21:03:51 ID:h2P6Ovzc
>>69 おー。いけてないなーと思ってたところが綺麗に直ってていい感じです。
手元のにも取り込んでおきました。ありがとう〜
で、Linux版の動作確認を半年ほどやってないなぁと思って手元でやってみたら駄目になってました。
CIrrDeviceLinux.cpp の 893行目あたりに } の閉じが一つ足りないのと、
同じあたりのcase文で FocusIn と FocusOut が重複しちゃってます。
case FocusIn:
WindowActive=true;
if(ic!=NULL) XSetICFocus(ic);
break;
てな感じで修正してやってください。
そうすればLinuxでもちゃんと変換文字列がキャレットのところに表示されるヨ!
71 :
67:2007/01/22(月) 01:53:40 ID:uv5VkyKb
>>70 やばい、既にnikoに「62氏が神パッチ作ってくれたよー」ってメールしてしまった。
Win環境でしか使ってないから、Linuxコードは見て無かったです。
こっちでもまとめて修正して、またフォーラムに上げておきます。
ちなみに現フォーラムに掲示してある1.2差分はGUIFontのenumタイプ削ってあるっす(1.3で実装っぽい)
ついでにリコンパイルのも配布してくれ
73 :
67:2007/01/23(火) 14:35:34 ID:RD0A4fem
74 :
名前は開発中のものです。:2007/01/23(火) 19:43:03 ID:T/gytIIy
平行投影の仕方がわからないのですが、
どうやったらよいでしょうか。
75 :
62:2007/01/23(火) 22:41:47 ID:KkYiu/aO
>>73 その次の行(postEventFromUser()の直後)ですー
76 :
67:2007/01/24(水) 01:03:24 ID:7OEN4I+O
>>75 ありがと、直しておきました。
>>74 Irrlichtなら投影方法は意識しなくていいような
77 :
74:2007/01/24(水) 02:29:51 ID:2b+nBpuN
>>76 3Dのモデルを使って、平面のアクションゲームを作ろうとしてるのですが、
解説サイトにあるカメラの設定だと、画面端にキャラを移動させると、
カメラを基準にした遠近感が出てしまうので・・・。
当たり判定ってどうやってる?
80 :
74:2007/01/25(木) 11:13:47 ID:JQgZdb+y
>>78 まさしくこれです。
無事に解決できました。
ありがとうございました。
>>79 サンプルの07.Collisionを見るといいよ、いいよ。
82 :
名前は開発中のものです。:2007/01/28(日) 21:25:17 ID:M5eTE2+w
視野角がおかしんだと思うけど、あれどうにかならないかな・・・・なんでレンズ通した感じみたいなままにしとくんだろう・・・
Irrlichtを使い始めてみたのですが、
インストールしたフォルダのexamplesのサンプルはビルドして正常に動作するのに
他のフォルダに移したり、mainをWinMainに変えたりすると
Irrlicht.dllが見つからないというエラーが出てしまう。
Irrlicht.dllを実行フォルダにコピーしてみましたが駄目です。
本当に初心者的な質問で申し訳ありませんがどなたかご教授下さい。
84 :
83:2007/02/14(水) 19:27:00 ID:iAuHcm9f
Irrlicht.dllコピーしたつもりがIrrlicht.libだった・・・。
救いようもない大ボケです。
スレ汚し失礼しました。
FPSカメラモードだと視点の位置を変えることはできませんか?
デフォルトの位置だとなんか低くて・・・
>>85 virtual void irr::scene::ISceneNode::setPosition(const core::vector3df & newpos)
カメラのメンバ関数に上記のがあるから、それで高さ変えてみて。
>>86 ごめん・・・
重力かかってるとカメラの位置高くしてもストンって落ちちゃうね・・・
普通のカメラ使った方がいいのかな・・・
重力の影響の対象外にするか、高さのある透明オブジェクトの子供としてリンクは?
irrKlang 0.5きたね
相変わらずnikoは開発速度速いね。
ただ、ISoundEngine::stopAllSounds()がDirectSoundで正常動作しない不具合があるらしい。
次で直るだろうけど、それまで一つずつとめるしかないか。
D3dx8core.hがみつからなくてビルドできねーーーーーーーーーーーーーー
DXSDK2007FEB使ってるからかもしれないが・・・・・・・
>>91 とうとうDX8のヘッダ外されたのか。
IrrCompileConfig.hの以下の行をコメントアウトするといいよ。
#define _IRR_COMPILE_WITH_DIRECT3D_8_
ちなみにVC6だとこのヘッダでDX9がオフにされる。
コンパイルでデバッグ、リリース、リリース、FAST FPUって何を選べばいいんだろう
あー、シェーダーが1.0使ってるからサンプルで動かなくなったぜdxsdk-Feb2007まあがんばるか
直りん不可だったみたいだからブラウザで開いて
Shaders.exeだね。
こればっかりは対応ハード使うしかないっぽい。
うちはDirectX8で100%、OpenGLで50%しか正常に表示されないわ。
あーhigh level shader使わなきゃ表示されるのか・・・前は普通にできたはずなんだが・・・
>>99 今試したらsdk.zipの実行ファイルのならできるが自分でコンパイルしたのは
>>97 やっぱ2007?
まあopenglでやってもらえば良いし自分としてはどっちでも良いや
2d系のライブラリから乗り換えようと思って色々やってみてるんですが
draw2DImageは拡大縮小回転もできなそうなので板ポリ+テクスチャで
何とかなるかと思い3Dツールで板を作成し→テクスチャ指定とやってみたところ、
IAnimatedMeshSceneNode *gazou=Scene->addAnimatedMeshSceneNode(Mesh,-1,vector3df(0,0,-10),vector3df(0,0,0),vector3df(1.0f,1.0f,1.0f));
gazou->setMaterialTexture( 0, driver->getTexture("test.bmp") );
見事にテクスチャが枠からはみ出たりしてうまく表示されませんorz
3Dツール側で合わせてみても同じでした。
ぴったりあわせる方法、もしくは画像を貼る大きさや範囲を調整する方法はありますか?
板ポリ出すならビルボードってノードがあるよ。
scene::ISceneNode*gazou = 0;
gazou = Scene->addBillboardSceneNode(0, core::dimension2d<f32>(50, 50));
gazou->setMaterialTexture(0, driver->getTexture("test.bmp"));
>>105 ありがとうございます。
しかしAnimatedMeshで出した板ポリと違い、板に対してsetRotationもsetScaleも
ききませんでしたorz
大人しく2Dにも強いライブラリに乗り換えます。
アニメーションノードをくっつけたらどうかね。
scene::ISceneNodeAnimator* anim =
smgr->createRotationAnimator(core::vector3df(0.8f, 0, 0.8f));
gazou->addAnimator(anim);
anim->drop();
>>106 ごめん、ビルボードはアニメーションノードでも回転しないっぽいね。
メッシュの比率を調整しないといけないけど、これなら。
scene::ISceneManager* smgr = device->getSceneManager();
scene::IAnimatedMesh* Mesh = smgr->addHillPlaneMesh("plane", core::dimension2d<f32>(10.f, 10.f), core::dimension2d<s32>(10, 10));
scene::IAnimatedMeshSceneNode* gazou = smgr->addAnimatedMeshSceneNode(Mesh);
gazou->setMaterialTexture( 0, driver->getTexture("test.bmp") );
gazou->setRotation(core::vector3df(0,5,0));
Irrlicht のビルボードのソース利用にして、回転とかできるノード作っちゃえば簡単なんじゃない?
おお、追加情報が。ありがとうございますー。
時間ができたときにまた色々試してみます。
Mar-16-2007 Irrlicht 1.3 released
We just released version 1.3 of the Irrlicht Engine. The following new features can be found in the SDK:
* Improved font support: Anti aliasing, alpha channels, different character sets, and a new font tool
* Enhanced GUI system: serialization, a first version of a GUI editor, element alignment, tool tips and more
* BurningVideo (the 2nd Software Rasterizer) speed improvements and new features: VertexCache, Bilinear Dither, Clipping test, ...
* Several speed enhancements
* A lot of API breaking changes (for example to ISceneNodes and Materials), so be careful when updating
* Literally hundreds of bug fixes
For a detailed list of changes, please see changes.txt. You can download the package from the download page.
開発速度すごいなーだけど公式で日本語IME対応してくれると(ryまあIMEないのにどうやって作るのか
とういうかOGREとリリース争ってないか?w
112 :
名前は開発中のものです。:2007/03/17(土) 09:10:49 ID:hTC3q0Zy
>>111 うぉぉ、すげぇぇぇぇ!!
SVN鯖見てたら毎日のように開発チームがコミットしてるの見るんだけど、この勢いは期待。
>公式でIME
対応しても日本語フォントをフリータイプ形式で扱えないと使いづらいかなぁ。
それにnikoが言うには、Irrlicht自体の他ライブラリ依存を極力避けたい、って方向性みたい。
このスレの日本語対応版はfreetype2使っちゃってるしね。
(一応GPLと旧BSDのダブルライセンスだから、問題ないんだが)
OGREはGUIにCEGUI使うのが主流なんだっけ?
Irrlichtでも使えるから、改造無しでこれで日本語IMEいけるんじゃなかろうか…。
http://www.cegui.org.uk/
Irrlichtが対応しているメッシュの形式で、
頂点アニメーションだけでなくボーンによるアニメーションをサポートしている形式って
どれですか
>>113 Xかms3d形式がまあ無難。
ぽまいさん質問スレに「こっち行きます」の一言ぐらい言っとけ。
マルチ呼ばわりされるぞ。
115 :
名前は開発中のものです。:2007/03/22(木) 18:57:51 ID:lImyW20j
画角の変更ってできますか?
117 :
115:2007/03/23(金) 16:16:57 ID:nDMEwllj
>>116 解決できました。
ありがとうございます。
>>114 遅レスですがdクスです。
しかしツールは何にすれば
119 :
67:2007/03/25(日) 17:27:01 ID:ia9ij4eQ
irrKlang0.6リリースされたよ
.NET、MOD演奏サポート、わずか1ヶ月で機能増えすぎ
今日はじめてイルリッヒを知って驚きました。
サンプルみて唖然
すごいものがあるものですね・・・
>>121 ようこそ、3Dエンジンの世界へ。
1.2→1.3で更新履歴読んでないと躓く名称変更3つ
エラーのオンパレードで焦ったよ
OnPreRender()→OnAnimate()
OnPostRender()→OnRegisterSceneNode()
SViewFrustrum.h→SViewFrustum.h
>>122 hello , Irrlicht world. !!!!--キ--(゚∀゚)--タ--!!!!
Irrlichtのドキュメントとか解説サイト少ないですね。
学びながら自分用にドキュメント書いてみてます・・・
ttp://volbic.ddo.jp/ の ドキュメントです。
解説内容で間違ってるのありましたら指摘願います。
エロ吹いた
親の前でページ開いてしまってあせったわw>123
でも、俺はこのスレでIrrlichtを知ったばかりなので、解説ページはありがたいです
がんばってください
>>123 トップ画像もブログ絵もやばいww
日本語の解説は少ないから増えてくのはいい流れですな
ちょい前に動画解説してる人も見つけた
作り途中のようだったけどね
Ver頻繁に変わるから更新新しいってだけで解説サイトは助かる
>>124,125
自分も親に見られて自爆したクチです orz
これからがんばって整理していきます (゚ω゚) -3
>>126 その動画を参考にして作ってみました。
初心者としてはかなり助かったので、文章化したです。
>>127 国内のIrrlicht情報サイトの更新日が古いのが多くて困惑しましたね・・・
(;`・ω・´) とうとう・・・宣伝しちまった・・・がんばらねば
>>128 >その動画を参考にして作ってみました。
うぁ、同じページを見ていたとは世界って狭いのね。
がんばれ、超がんばれ!後でこっそりリンクはっておこう…
FreeBasicから使ってるのって俺だけ?
IrrlichtWrapperてやつ。結構使いやすいね
131 :
128:2007/03/31(土) 04:50:01 ID:7BP7cxxh
Irrlicht以前にC++が浅いのでよく分からないのですが
IAnimatedMesh *_MODEL_ = _SCENE_->getMesh("../media/font_a.x");
などで生成された *_MODEL_ の中身の型(?)はなんなんでしょうか?
クラスのようなもので複数IDを管理しようと思ってるのですが
IAnimatedMesh.hに定義されてるでしょ。
void *で保持も可能だろうけど、
いちいちtype castingすること考えたたら、
素直にIAnimatedMesh.hをincludeして..って
質問の意味取り違えた?
OGREもすごそうな。知らなかった。
>>132 > IAnimatedMesh *_MODEL_ = _SCENE_->getMesh("../media/font_a.x");
????(1) *_MODEL_ = _SCENE_->????(2)
~~~~~~
単純には ????(1) がどのような意味をしているのか分かりません。
C++は色々な書き方あって困る orz
????(1)ってただ単に ????クラスを宣言してるだけ
つまり、IAnimatedMesh *_MODEL_は
IAnimatedMeshのポインタ型(IAnimatedMeshの大きさを持つポインタ)の
変数_MODEL_を宣言してるだけじゃないの?
で、IAnimatedMeshのクラスの定義はIAnimatedMesh.h
>>134 なるほど *はポインタ ってこういう事か・・・
クラスもソースと概念だけは見てましたけど、こう使うとは知らなかった。
ヘッダみるとクラスの構造が・・・
朝から本当にありがとうございます。
>135
言い方きついですけど、これはCの基本じゃないでしょうか……
がんばってください
>>131 "Ixxxxx"とIが先頭にあるクラスはインターフェースクラスと呼ばれるもの。
これをlistやvector(もしくはただのクラス配列)で管理すれば
そこから派生したものは全て共通関数呼び出して制御可能。
srcフォルダの"Cxxx"はDLL内部クラス。
インターフェースクラスから派生した仮想関数の実実装を行っている。
拡張しないのであれば、こっちは見なくてもおk。
ICameraSceneNode<-CCameraSceneNode<-CCameraFPSSceneNode
>>136 言い出しっぺの法則、おながいします。
>>137 入門書を読み進めたら同じ式がありました。
本当に面目ないです。
>>138 list型は知らなかったです。明日の宿題が増えた!!(゚∀゚)
IxxとCxxの違いは入門書のバーチャルというのを見たら、なるほど・・・と思いました。
親切にありがとうございます (´ω`;) 基礎は大事ですね
>>138 OGRE3Dのほうはちょこっとやったけどこれは何を直そうかわかんなかったんだ
FPSが3000だってよこれでフォトリアル目指すって
( ;゚Д゚) fps3000によりフォトリアルの段階に・・・(・し・`)
OGRIRRハジマタ
おい!今度のは4.1ネタじゃないぞ!
nikoはirrEditをアップグレード中らしい。
で、1.3用に再構築しながら、irrEdit独自拡張(未公開?)をエンジン側に反映。
ttp://www.irrlicht3d.org/pivot/entry.php?id=489 >#include "IIrrEditPlugin.h"
>#include "IBody.h"
>#include "IPhysicsSimulation.h"
>#include "ISceneNodeAnimatorPhysicsBody.h"
>#include "irrEditServices.h"
>#include "IScriptEngine.h"
プラグイン、既存物理エンジンラッパー、スクリプトラッパーにwktk
ある意味、OGRIRRハジマタ
俺もそろそろエロい人エンジンに頼るか。
wikiだから翻訳して書き込んで〜。
149 :
名前は開発中のものです。:2007/04/15(日) 02:21:13 ID:JGgkq1md
ループ開始位置だから、どこからループ始まってどこでループ終るか指定できなきゃダメなんでは。
なるほど、A-Bループか。
IStreamSoundを継承して制御できたりするかも?
152 :
名前は開発中のものです。:2007/04/18(水) 15:46:25 ID:YTiLNF4E
Irrlicht A GoGoの、第6回日本語表示のソースにて、
CGUITTFont* Font = new CGUITTFont(Driver);
の箇所でエラーが出てしまいます。
これを回避するにはどうしたら良いでしょう?
9条は改憲してはならない。日本の為にならない。
日本人ではない朝鮮総連や民団でさえ、日本を心配して改憲への反対運動を行ってくれている。
私は日本人だが、「改憲すべき」などという者は、日本人として彼らに恥ずかしいと思います。
Q.中国から身を守る為、戦争に対する抑止力が必要では?
A.前提から間違っています。そもそも、中国は日本に派兵しようと思えばいつでもできました。
なぜなら、日本には9条があるため、空母や長距離ミサイル等「他国を攻撃する手段」がない。
つまり日本に戦争を仕掛けても、本国の、命令をだした幹部の命は絶対に安全なのです。
「安心して戦争を仕掛けられる国」を、中国は、今まで攻めずにいてくれたのです。
Q.それは日米安保によるものでは? そして、その日米安保も絶対ではないのでは?
A.中国の良心を信じられないのはなぜですか? そして、日米安保は絶対です。
知り合いの韓国人の評論家も「絶対だ」と言っていますし、私も同じ考えです。
更に、9条が消えても米国の戦争に協力する義務は発生しませんが、米国が被害者の場合は別です。
米国は日本を守る為に戦っても、(9条があれば)日本は米国を守る為に戦う必要がないのです。
Q.9条が本当に「平和」憲法なら、世界中で(日本以外に)1国も持とうとしないのはなぜか?
A.これは、日本以外のすべての国が誤っているとも言えます。
「敵国に攻撃が届く国は攻められづらい」というのは、誤った負の考え方です。
(もっとも韓国や中国の軍に関しては、日本の右傾化阻止の為でもあるので例外ですが)
更に日本の場合、隣国が韓国・中国・ロシアと、GDP上位の安定した信頼できる国ばかりです。
Q.「9条改憲派」は「戦争反対派」。侵略者に戦争を挑発する、戦争憲法(9条)を撤廃したいのです。
A.それは、貧しい考え方ではないでしょうか?
中国や北朝鮮を信じる「強さ」があれば、そんな考えにはならないはずです。
日本が信じれば、彼らも信じるでしょう。そして、真に美しい関係が始まるのです。
>>152 どういうエラーかもうちょっと詳しく書かないと答えようが無い
156 :
152:2007/04/19(木) 12:55:03 ID:3JAfPMKW
>>154、155
返信ありがとうございます。
エラー内容は、
error C2259: 'CGUITTFont' : 抽象クラスあるいは構造体のオブジェクトが宣言されています。
また、warning C4259: 'void __thiscall irr::gui::IGUIFont::setKerningWidth(int)' : 純粋仮想関数は定義されていません。
などの警告がいくつか発生します。
これはIrrlicht1.3で起こり、1.2でビルドした場合は起こりません。
環境はWinXP VC++6.0です。
表示がうまくいったらIMEにもチャレンジしたいと思っていますので、
この記事は参考になりそうですね。
ありがとうございます。
>>156 把握。
Irrlicht1.2から1.3になったときに、Font周りが大幅に変更された。
具体的には中間クラスが増えて、setKerningWidth(s32)とsetKerningWidth(s32)という純粋仮想関数が追加。
だから、CCGIFont.cppの中身をコピペしてくればいいかと。
IME支援付きのIrrlichtML内に入ってるCGUITTFontなら、そこらへん調整済みね。
158 :
152:2007/04/19(木) 19:43:54 ID:3JAfPMKW
>>157 ご指摘ありがとうございます。
無事に日本語表示させることができました。
また、IrrlichtMLの方を使わせていただき、ビルドは通ったものの、
fonts[0] = (CGUITTFont *)env->getFont(tmp,12);
のところで、ESPエラー終了してしまっています。
もう少し粘って調査をしてみようと思います。
ありがとうございました。
160 :
152:2007/04/22(日) 23:31:09 ID:mR20oL43
>>159 Irrlicht.dllをリリースでリコンパイルすることにより、
ESPエラーを回避することができました。
ありがとうございました。
161 :
名前は開発中のものです。:2007/04/22(日) 23:54:54 ID:07IaEYjx
格闘ゲームのサンプルってありませんか?
どういうのが作れるのか知りたいんです
OpenGL2.1対応マダー
1.5→2.0→2.1
で何が変わったのか知らんけど・・
2.1って夏に出る予定のDX10相当になるやつだっけ
G80とRV6X0がVistaじゃなくても活かせるな
ってことは、ubuntu+ogl2.1で、DX10並の再現が出来るってことか
ドライバが出れば。。。
167 :
名前は開発中のものです。:2007/05/03(木) 02:20:20 ID:l7GXDK1k
最近これ知って期待age
俺が宣伝したから
いやいや、俺が俺が。
IrrEdit0.7出たね、カスタムシーンノード追加可能になるまで後少し。
名前を忘れたけどxmlでだせるのが良いねeditは
terrainシーンノードで使えるハイトマップのサイズって制限あるのかな?
512*512をつっこんだら表示がおかしくなった
LLMozLibでのweb表示が出たけど、使う人居る?
173 :
名前は開発中のものです。:2007/05/12(土) 06:22:56 ID:7ZU3t7aU
Irrlichtでテクスチャの書き換えをエラー少なく行いたいと思っているのですが、
IImageからITextureに書き換えるということは出来るのですかね?
>>173 可能。
irr::video::IVideoDriverのvirtual ITexture * addTexture (const c8 *name, IImage *image)って関数で出来るよ。
ファイル名が不明になるから、nameでテクスチャ名を与えてあげないといけない。
これはオーバーロード関数で、ファイルから直にITextureを生成する同名関数の別定義になってる。
175 :
173:2007/05/13(日) 07:00:41 ID:EG3uXyqf
あ。説明不足ですたorz
すでに同じ関数で作っているテクスチャの書き換えです。
Lock使うとほとんどエラーになりましたし……orz
やったことないから確証は出来ないけど
テクスチャアニメーションみたいなことするなら
予め全ての画像を読み込んでアタッチ切替してみては?
フライトシムっぽいHUDを作りたいんだけど、線をどうやって描写するのかわからなくて挫折した
カスタムシーンノード使うしかないのかな?
>>177 draw3DLine、draw2Dline
これスタティックにリンクすんのどうやんの?
>>179 本体ソースのビルド方法をDLLからLibに変更すればいいんじゃない?
リビルドしたLibファイルをリンクすれば動くと思う
>180
いや、それが結構エラー吐く・・・ってのは解決した。
それだけじゃなんなので簡単に言うとスタティックにするのは
そもそもLinux用なんで若干書き換えが必要だった。
そんでもwindowsでスタティックにさせると色々動作がおかしい。
何がおかしいのかちゃんと検証しないと怖くてつかってらんないんだけど
リンク時間がアホほど延びるんで検証やってらんないっす・・・
・IrrlichtMLをビルドしようとしたらd3dx8core.hが無いって言われてビルドできません。
DirectX8使わないようにすればビルドできますが・・。
・メッシュの全ての頂点の位置や法線を取得するのって出来ますか?
183 :
名前は開発中のものです。:2007/06/09(土) 22:13:02 ID:V5Gpj1Mm
age
186 :
182:2007/06/13(水) 21:41:51 ID:mogfedgO
ITextureって中身にアクセスできないんですか?
IImageにはそういう関数あるのに・・。
ITexureをIImageに変換することは出来ないんですか?
>>173 を見ると、逆は可能なようです
Jun-20-2007 Irrlicht 1.3.1 released
Irrlicht Engine - A free open source 3d engine
http://irrlicht.sourceforge.net/ 2007年6月20日 リリースされたIrrlicht1.3.1
私たちはバージョン1.3.1でIrrlichtをただリリースしました。 これはバグフィックスリリースであることが意図されますが、また、いくつかの新機能があります:
作品がまた、ただ リリースされたirrEditと共にseemlesslyされる、(0.7 .1)。
Ogre1.4.meshのために、ファイルをサポートします。
Irrlichtに組み込み機器のようなどんなまだネイティブの支持されたプラットホームでも走らせないように、任意のSDL装置を加えました。
OpenGLの、より多くの織地創造旗の加えられたサポート
全体の場面グラフのクローニングは現在、可能です。
改良されたGUIエディタ
何十ものバグフィックスで他の複数の小さい改良
詳細なリストに関しては、 changes.txtファイルを見てください。 ダウンロードすることで、幸福です。
コリジョン判定でモデルの何処に当たったか調べるにはどうすれば良いかな?
ヘッドショットみたいなのがやりたいんだ
>>187 IImage→ITextureのみ。
中身を弄りたい時はIImageを編集して再度ITexture変換を。
>>189 キャラクターモデルの各部位に透明なバウンディングボックスを割り当てて
それを使ってコリジョン判定すると楽になるよ。
191 :
187:2007/06/22(金) 21:31:25 ID:wHnVkoXG
>>190 RenderableTextureの中身を取り出したいんですが・・。
あと、シェーダー内でテクスチャ(sampler,samplerCUBE)使っているときは
どうやってテクスチャを渡すんですか?キューブマップを使うのは無理そうです。
193 :
189:2007/06/22(金) 23:50:01 ID:1Pxa+lea
>>190 バウンディングボックスを割り当てるときって透明な子モデルを追加するであってる?
なんか上手く行かない・・・orz
194 :
名前は開発中のものです。:2007/06/26(火) 13:43:45 ID:XN7t+Ew2
IrrlichtってVistaで問題なく使用できるかな?
ITextureのlock()ってピクセルにアクセスするためのメソッドっぽいですが
どうやって使うんですか?
そのぐらいリファレンスみて想像しようぜ
unsigned char *buffer = (unsigned char *)texture->lock();
irr::core::dimension2d<irr::s32> size = texture->getSize();
int width = size.Width;
int height = size.Height;
int pitch = texture->getPitch();
ふつうに生成したときに指定したピクセルフォーマットで
横方向×縦方向になったビットマップだからあとは適当に。
処理がおわったら unlock()
197 :
名前は開発中のものです。:2007/07/13(金) 23:07:01 ID:HjKp4JGG
198 :
197:2007/07/13(金) 23:31:53 ID:HjKp4JGG
up3411.zip
>>197 面白そうなものが!!
ってDLしたけど、うちではピクセルシェーダーが使えない
応援してますぜっ
ピクセルシェーダー使えないって何年前のGPUだよX8時代じゃないか
おれの開発用くそノートも普通に使えませんが何か?
radeon8500だもの
流れとる
エラー全文です。
Please select the driver you want for this example:
(a) Direct3D 9.0c
(b) Direct3D 8.1
(c) OpenGL 1.5
(d) Software Renderer
(e) Burning's Software Renderer
(f) NullDevice
(otherKey) exit
a
Please press 'y' if you want to use high level shaders.
y
Irrlicht Engine version 1.3.1
Microsoft Windows XP Personal Service Pack 2 (Build 2600)
Using renderer: Direct3D 9.0
NVIDIA GeForce FX 5600 nv4_disp.dll 6.14.10.9371
HLSL pixel shader compilation failed:
error X3539: ps_1_x is no longer supported; use /Gec in fxc to automatically upg
rade to ps_2_0
error X3539: Alternately, fxc's /LD option allows use of the old compiler DLL
HLSL pixel shader compilation failed:
error X3539: ps_1_x is no longer supported; use /Gec in fxc to automatically upg
rade to ps_2_0
error X3539: Alternately, fxc's /LD option allows use of the old compiler DLL
あとは省略
206 :
197:2007/07/15(日) 17:11:27 ID:YU7A9b2a
ちなみに、10.Shadersのexampleです。
setPixelShaderTextureはD3D9 HLSL用にしか作っていません。
207 :
名前は開発中のものです。:2007/07/15(日) 18:30:05 ID:YU7A9b2a
age
あ、ソース中でコンパイルターゲットを
ps2_0,vs2_0にすると、普通にシェーダー有効になりますね。
でも書き換える前のソースではこんな風にならないのに・・?
本来なら書き換える前のソースでコンパイルしたDLLでも
問題が起きるはずなんですが。
210 :
名前は開発中のものです。:2007/07/15(日) 20:56:28 ID:EtuSIamm
>>208 大事な部分だろうところを訳してみた。参考にどうぞ
windozer_ wrote:
>DirectX10ではpixel shader1.xはサポートされなくなりました。
>pixel shader2.0以上のみ動作します。
>まだ古いshader modelでfxcを扱いたいなら、/LDスイッチを使用してください。
>OCT2006_d3dx9_31_x86(x64).cabをアプリケーション配布ランタイムに含める必要があります。
>ps_1_xシェーダでpxcを使うには、後方互換用に/Gecスイッチが使えます。
>このスイッチは上位pixel shaderをターゲットにするときは影響しません。
>
>Dx9とDx10の相違点:
>December 2006 SDKはDx10 HLSLコンパイラ(fxc)がデフォルトです。
>Dx9コンパイラールール(fxc.exe)で、再度コンパイルしたいアプリケーションのために
>/LDスイッチをfxc.exeで使う必要があります(これにはD3DX9_31.DLLが必要)
>Dx10 HLSLコンパイラは直接ps_1_xシェーダをサポートしません。
>ps_1_xシェーダでpxcを使うには、後方互換用に/Gecスイッチが使えます。
>このスイッチは上位pixel shaderをターゲットにするときは影響しません。
>
>Dec 2006 SDKでps3.0を使うときは(/T fx_3_0)を指定してください。
あれ、同じ事が2回書かれてる。
つまり、新しいSDKではps1.xでの開発は廃止されて、尚且つDx10では実行のみ限定サポートってこと?
ピクセルシェーダは全然分からないけど、SDKのバージョンに由来する問題じゃないのかなぁ。
>>210 stubD3DXCompileShaderの処理を変えたら出なくなりました。
(flagsにD3DXSHADER_USE_LEGACY_D3DX9_31_DLLを設定)
しかし、せっかく作ったsetPixelShaderTextureは使えず・・・。
ITextureをCD3D9Textureにダイナミックキャストして、
IDirect3DDevice9::SetTextureに渡しているんですが、ここに間違いが・・?
HRESULT hr = CD3D9HLSLMaterialRenderer::pID3DDevice->SetTexture( (DWORD)hndl,
dynamic_cast<CD3D9Texture*>(texture)->getDX9Texture() );
textureはITextureです。
あ、間違い発見しました
D3DXHANDLE hndl = tbl->GetConstantByName(NULL,name)
したのをなぜかDWORDにキャストして渡しています。
これがいけなかったようです。
SetTexture( tbl->GetSamplerIndex(hndl)
dynamic_cast<CD3D9Texture*>(texture)->getDX9Texture() );
やっと動いた!バンザーイ!!
・・・うpするのはまた後で。
あと
・できればD3D8やOpenGLでもsetPixelShaderTextureを実装
・ボリュームテクスチャやキューブテクスチャの対応
したいんですが、難しそう・・
217 :
名前は開発中のものです。:2007/07/18(水) 16:54:07 ID:siT7N+Pd
irrlichtの3D周り以外をDXライブラリで補うことはできませんかね。
そうすれば非常に使いやすい物になりそうなんですが。
219 :
217:2007/07/18(水) 18:20:31 ID:siT7N+Pd
>>218 SetNotWinFlagでDXの方でウィンドウを生成せずに、IrrlichtDeviceの生成をしてみたのですが、
これだとDXの2D描画機能は使えませんよね。
ここを何とかうまくいかせる方法が知りたいのですが、アドバイス頂けませんか?
これどうやってαブレンド設定するんですか?
ピクセルシェーダーでαを0.5fにしたりしても反映されません。
221 :
名前は開発中のものです。:2007/07/22(日) 23:24:20 ID:dHNqWe5Y
IrrEditで作ったTerrainでコリジョン判定がうまくいかないっす
Demoのソースで読み込みとかcreateCollisionResponseAnimatorやってるけど
うまくいかないでっす サンプルとかないですかね。
222 :
名前は開発中のものです。:2007/07/24(火) 16:40:21 ID:GWz2iQy5
モデルに透過したテクスチャを表示したいのですがうまくいきません。
// 必要なものを用意
IrrlichtDevice *device =
createDevice( EDT_DIRECT3D9, dimension2d<s32>(800, 600), 16,
false, false, false, 0);
IVideoDriver* driver = device->getVideoDriver();
ISceneManager* smgr = device->getSceneManager();
// 画像を読み込みテクスチャを透過する
ITexture* images = driver->getTexture("texture.bmp");
driver->makeColorKeyTexture(images, position2d<s32>(0, 0));
// メッシュを読み込みノードを生成しテクスチャを貼る
IAnimatedMesh* mesh = smgr->getMesh("mesh.x");
IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode(mesh);
node->setMaterialTexture(0, images);
node->setMaterialFlag(EMF_LIGHTING, false);
driver->draw2DImageでテクスチャが透過されていることは確認しています。
ですが、実際にはテクスチャが透過されないまま貼られてしまいます。
どこが間違っているんでしょうか・・・
っ
EMT_TRANSPARENT_ALPHA_CHANNEL
EMT_TRANSPARENT_ALPHA_CHANNEL_REF
224 :
222:2007/07/24(火) 21:45:32 ID:GWz2iQy5
225 :
名前は開発中のものです。:2007/08/17(金) 16:36:03 ID:6fURu5ue
サウンド鳴らしたり、
JoyStickを使ったりキーボード同時押ししたりしたいんだけど、
どのライブラリと組み合わせるのがいいのかねえ?
やっぱSDLか。
>>225 SDLがいいだろね
1.3.1からSDLスクリーンを"_IRR_USE_SDL_DEVICE_"で指定できるらしいから
- Added an SDL device for cross-platform window support. Especially useful
for embedded systems and others without hardware acceleration. This device
is mutually exclusive with the other devices and requires linking against
the SDL library.
227 :
名前は開発中のものです。:2007/08/21(火) 13:39:32 ID:6YwC5BTI
xファイルのIAnimatedMeshを複数のIAnimatedMeshSceneNodeで使ってるんですが
IAnimatedMeshXのsetCurrentAnimationを使ってアニメーションの切り替えをすると
当然ですがすべてのNodeのアニメーションが切り替わってしまいます。
メッシュ共通でノードごとに個別のアニメーションを設定したいんです。
MD2ならIAnimatedMeshSceneNode::setMD2Animation()というメソッドがあるようですが
xファイルで同様のことをするのは無理なんでしょうか。
・巨大な1つのアニメーションのみを使用しsetFrameLoopで切り分ける
・ノードごとにメッシュを持つ
以外の策はあるでしょうか。
228 :
名前は開発中のものです。:2007/08/22(水) 01:22:32 ID:01NRLC2p
似たような質問だけど、結局キャラデータ扱うとき一番いいのはなんなんだ?
.objも.xも.md2も読めるのはわかるけど、、、 Demoとか見たり、サンプルソースみるとmd2がいいのかどうなのか
ライブラリとかツールとか人間とかの実力を手っ取り早く評価するには
その成果物を見ればいいってばっちゃが言ってた。
ってことで、なんかIrrlichtで作られたスゲーゲームない? 知ってたら教えてちょんまげ
(ORGEとかも見たいけどあっちのスレかな)
>>231 Tokusatsu Agent に、md3吹いた
234 :
名前は開発中のものです。:2007/09/11(火) 20:37:12 ID:RC31XfpB
VC6上で、STLとirrlichtを共存させた場合
std::stringと
irr:core::stringがかちあって
ビルドエラーが起きてしまうのですが、
どうすれば良いかわかりますでしょうか?
stringを使用する箇所では、全てnamespaceを入れて指定していますが、
自分が書いていない、
2つのライブラリのヘッダファイルのレベルでエラーが起こってしまいます。
以下、エラー文です。
irrlicht-1.3も試しましたが、エラーでした。
c:\vc98\include\xstring(613) : error C2955: 'string' : クラスのテンプレート名で仮引数リストの指定がありません。
c:\irrlicht-1.3.1\include\irrstring.h(817) : 'string' の宣言を確認してください。
>>234 1.ヘッダよりも下で基本名前空間を指定する
2.using namespace core;、using namespace std;を使わない(使うたびに指定する)
この二つに注意してもエラーになる?
少なくともvc2005では、その現象を再現できなかった
236 :
234:2007/09/12(水) 06:57:46 ID:yt2vr1g+
>>235 はい、使うたびに指定していますが、なってしまいます。
同じソースをVC2003でビルドしますと、うまく通るのですが、
他に使ってるライブラリがVC6を要求していまして、
VC6でビルドしないといけないもので、どうしたものかと。。
237 :
234:2007/09/12(水) 12:00:39 ID:TaH0UuNn
自己解決いたしました。
ありがとうございます。
238 :
名前は開発中のものです。:2007/09/12(水) 12:27:50 ID:8kBEhANN
>>237 おめでとう、入れ違いになった。
解決方法はどんな風に?
240 :
234:2007/09/13(木) 02:27:50 ID:Vi6ngnsF
#include <irrlicht.h>
#include <string>
↓
#include <string>
#include <irrlicht.h>
で通りました。
すみませんありがとうございましたorz
241 :
名前は開発中のものです。:2007/09/17(月) 18:17:03 ID:w4SFU02u
VisualStudio2005でlightfeatherのビルドうまくいかないけど、どうすればいいんですかね。
サンプルにあるVC6用のプロジェクトファイルだとうまくいったりいかなかったりだけど、
新たにプロジェクト作ってソースとかヘッダーいれるだけだとうまくいかないです。
lightfeatherはいじってないからわかんない
あれってまだIrrlichtの名残りある?
本家よりも拡張されてるようだけど、動作不安定で俺のところは落ちるよ
lightfeatherは、デモが落ちまくるから信頼性なしw
Irrlichtはあるのかしらん?
そろそろエンジンに頼らないとやってられなくなってきた。
>>244 あるのかしら、とは信頼性のこと?
レンダリングの挙動がおかしい場合もあるけど
少なくともエラー落ちはないに等しい
DX10にはいつ対応するのかしらん
自分でドライバ書けば
>>247 ごもっとも過ぎるw
DX10でしか実現できない機能を実装する段階にならないと対応はないんじゃないかな?
つまり当分先な気がす
10.0で何が出来るのかさ知らないがwwwww
Vista対応w
ドライバ書けって何のドライバ書けばいいのさ
ソースみて自分で学べ
ドライバじゃねがっす
DX10のラッパーと言うべきか
DX9だってエミュレーションだけどVistaで動くしな〜
>>253 Irrlichtのローカル用語でそういうのをドライバというのさ
1.CD3D9*系のモジュール(全部で7つ、必要なら増やせ)をDX10対応に書き換えて、
CD3D10*系モジュールを作る
2.CIrrDeviceWin32,cppをいじって、新しく作ったモジュールに対応できるようにする。
これだけだ、がんがれw
RADIANCEフォーマット(.hdr)の画像書き込み/読み込みクラスを作って
次にfloatのテクスチャを作れるようにしようとしたんですが
DirectX9では出来たものの、OpenGLでは知識が無くて苦戦・・
質問だが、自作ゲームが微エロゲーになってしまったんで、
18禁の定義を診断してくれないだろうか、セーフなら15禁、アウトなら18禁って事で。
問題1:
イタイケなおにゃの子が、淫魔に追っかけられるクロックタワーのパロゲー。
捕まるとハァハァされる、絵による描写は無く台詞のみ。
問題2:淫語使いまくり、顔グラに汁グラあり。
18斤
でも、すれ違い
ほかのところでやるべし
>>257 了解、回答ありがとう。
…と、言われたものの、他ねぇ。
って、今更気づいたが、
ここ質問スレは質問スレでも、スレ立てスレじゃない!?
やっべ、なんという誤爆!スレ汚しマジすまん!
でも回答サンクスコ(´・ω・`)
視野角90度で平行投影したいんですがどうすれば
ある一点からキューブマップをレンダリングしたいです。
>>261 トンクスです。
この関数は知っていましたが使い方が分かりませんでした
1.4betaなんて出てたのね
うん。
ただし、まだまだ作業中みたい
今のうちに不具合報告すれば即直してくれそうだなぁ
ところで、IGUIFileOpenDialogって
Unicodeとマルチバイト、どっちでコンパイルしても
日本語は文字化けするよね?
266 :
264:2007/10/07(日) 01:13:43 ID:IkjREsJq
>>265 うぁ、実はそのMadHyde本人です
本家のみの使用で解決してる人はいるのか気になって聞いてみた次第
せめて表示だけは文字化けしないように
zgock氏のマルチバイト変換コードを
オフィシャルでマージしてもらえるようにレポートしてみる
>>266 てら乙
Gogoのzgock氏、どうもご本人の興味がIrrlichtから
CG/Poserとかの方にいっちゃったみたいで、
(メッシュファイル関連でPoserに手出してたからそっちが楽しくなっちゃったんだろね)
そっちの世界でセルシェーダのプラグイン書いたりがんがっておられるようです。
MadHyde氏が日本語関連の砦です。
がんがってくだされ
質問よろしいですか
まだ導入もしていないのだけれども、Irrlicht SDK 1.2は安定版ですよね
プログラムの偶数バージョンは安定版のはずだけど自信がなくて…
え、そんな法則あったんですか?
linuxkernelがそうであることは知っているけど、、、
linuxというか、un*x系の流儀で、そういうルール使う場合もしばしばある(FreeBSDなんかもそう)が、
Irrlichtの場合あまり関係ない
ので、安心して1.3使ったがいい
回答サンクス!安心して1.3を導入します
272 :
名前は開発中のものです。:2007/10/09(火) 16:22:23 ID:bAtjWg0O
Lunaとどっちが凄いの?
ボーン取得して動かせる事できる?
xファイル読み込める?
当たり判定ある?
>>272 目指してる方向性が違うのでどっちが凄いかは決められない
ボーン取得はできる
xファイルは読めるし、それ以外の対応フォーマット多彩
コリジョンはある
>272 3Dマップ(bspやirrなど)を使うなら、無料ライブラリではたぶんIrrlichtが最強最速。
ただし日本語関連が非公式頼り(>264-266)なのと、
2D描画機能が最低限なのがネックか。
スケールや回転を行いたいだけでも3Dが必要になる。
あとは、言うまでもなく日本語資料の少なさ。
英語資料を含めても意外と抜けが多く、3Dマップやmd2以外のモデルの使い方は不足気味。
Lunaはドキュメント不足気味で、取っつきにくい。3Dライブラリなのにチュートリアルに3Dがないし。
Lunaのおおよその機能は次世代たるSeleneに移植されていて、そちらのほうが資料面ではマシ。
Seleneはまだメジャーリリース前なので、どうしても機能や関連ツール群で劣る。
Irrlichtに比較して、シーン構築やGUI部品がまだ実装されていない。
ただし2D描画機能はちゃんと積んでいる。代表的完成品「トラブル☆ウィッチーズ」が2DSTGだし。
あとは、独自モデルなのはともかく、モデルの作成ツールがやや使いづらいのがネック。
(テクスチャマップ貼り付けがあるのに削除がなかったり、そもそも貼り付けられているか分からない)
275 :
名前は開発中のものです。:2007/10/10(水) 20:54:11 ID:c3o/pV+/
お前ら、Irrlichtと組み合わせで、お勧めのサウンドライブラリを教えて下さい。
やっぱり、irrKlangになるんだろうか・・・
サウンドはOpenALで適当に作ったな
AudiereはIrrKlangが出来る前まではIrrlichtDemoの中で使われてたからな
279 :
名前は開発中のものです。:2007/10/12(金) 13:58:24 ID:PIfwULpF
>>276 dクス
・IrrKlang
フリー利用はフリー、商用は、有償。
マルチプラットフォーム。
3DSound、エフェクトに対応。ループポイント指定不可。
簡単そう。
・Audiere
LGPL。
マルチプラットフォームっぽい。
Java、Pythonバインディング有り。
サンプルアプリでは、ループポイント指定可能のようだ。
簡単そう。
・OpenAL
LGPL。
DirectSound並に低レベル。
・SDL_Mixer
LGPL。
簡単そう。
という感じでしょうか。
私的には、LGPLが許せば、Audiereがよさげだな・・・
一回、wikiにでも、まとめておいた方がいいですね。
これ以上は、ライブラリスレに行った方がいいか。
なんかこのスレって割と経験者の集まりだな
超初心者スレはないのか・・・
>>280 別に超初心者な質問しても誰も怒らないと思うぞ、
ただでさえ過疎スレなのに、さらに分家しても意味ない。
そうか。ありがとう
といってもまだ今日始めたばかりなんだ
もしつまづいたら聞くかも知れないので、その時は暇だったら教えてください
サンプルirrファイルを使ってコリジョン判定をやってみようかと思ったんですが、
createOctTreeTriangleSelectorだとメッシュとシーンノードの取得の方法が
わかりません。どうしたらいいのでしょうか。
シーンノードの「取得」ってのが意味不明なので・・・
軽くエスパーしてみる
TriangleSelectorは基本的に一つのシーンノードに対しての
コリジョン判定器だから、
複数のノードに対してTriangleSelectorつかうなら、
その数だけTriangleSelectorを用意することになる。
自前でコリジョン判定するなら、
TriangleSelectorのgetTrianglesメソッドで、
レイなりバウンディングボックスなりとのコリジョンをとればいいから
(Triangleが存在する=コリジョンしてるということ)
当たりを取りたいノード分だけぶん回せばいい
そうじゃなく、createCollisionResponseAnimatorで複数のノードに反応したいということなら、
CMetaTriangleSelectorを使う
えーと、その前の事で、
IrrlichtDevice *device = createDevice(略);
devive->loadScene("terrain.irr");
とシーンファイル読み込むとマップモデルが表示されるのですが、ここから
createTriangleSelectorに指定するノードとメッシュをどうやって取得すれば良いのかが分からないのです。
>>286 おk把握w
.irrのシーンファイルは、ただのxmlで、
開くと中に普通にメッシュとかのロード指示が入ってる。
サンプルのexample.irrだと、
部屋のメッシュとしてroom.3dsを読み込んでいることがわかる。
なので、こいつのNameフィールドにしかるべきvalueを与えて、
(IrrEditで開いて、Name付けても可)
getSceneNodeFromName()で持って来ればいい。
つか、TriangleSelector関係ねーじゃんw
モデラーというか、最終的にirrlichtに読み込ませるファイルはみんな何で作ってる?
色々試したけど、xファイルはmilkshapeで作ったのじゃないと上手く読めない感じ・・・
md2は作りにくいし・・・
結局Irrlicht A GoGoの作り方のとおりにやるのが一番簡単なのかな
VC2005EEで
IRR_USE_SDL_DEVICEつけてコンパイルする方法が分かりません・・。
SDL.libとSDLmain.libを追加の依存ライブラリに設定しましたが
最後にリンカエラーが出ます。
しかも、どうやったらSDLの命令を使ったり出来るのかもわかりません。
>>291 どんなエラーか詳しく。
ってか、IRR_USE_SDL_DEVICEは、
どっちかっつーとMacであるとかその他組込系とかのために、
3DエンジンをSDL管理下に投げるためにあるわけだが、
何がしたいん?
293 :
lesson.ifdef.jp:2007/10/17(水) 00:35:48 ID:MD/R4l7g
>>264 MadHydeさん
IGUIFileOpenDialogでだけ?格納されている文字列が
おかしくなっているのを確認しました。
以下に、例をあげてみます。
「終了」という名のファイルがあったとします。
WCHARで示すと 8F 49 97 B9となります。
しかし、IGUIFileOpenDialogでは8FFF 4900 97FF B9FFとなっています。
(1バイト文字だけの時は問題なく、2バイト文字がまざるとなります。)
FFを省けば問題なく日本語の表示が可能です。
(ファイル名で半角カナも混ざっている場合があるので
全角文字に変換するか、半角カナも表示する機能も必要になります。)
ここにサンプルを載せてありますので、良かったらどうぞ。
http://lesson.ifdef.jp/A03.html http://lesson.ifdef.jp/file/a03.zip
>>291 うちでIrrlichtMLのIMETEST.exe上で動作確認してみた。
別に「終了」というファイル名も、
「終了テスト」という半角カナ交じりのファイル名も
問題なく表示できたけどなあ?
WindowsXPSP2/Windows2000SP4上で確認
連投ごめん
もし、オリジナルのIrrlichtでそういう問題があるという指摘だったら、
上記のように既にzgock/MadHyde両氏で対策済だから、
別に騒がなくてもいいと思
296 :
lesson.ifdef.jp:2007/10/17(水) 02:45:21 ID:MD/R4l7g
>>294 ID:gpaUcF8iさん
MadHydeさんが「本家のみで解決できてるか」との質問を出していたので
本家ではどうなているか調べてみました。
>>264 >>265 >>266 >本家のみの使用で解決してる人はいるのか気になって聞いてみた次第
本家だけを使用した場合は、1ステップが必要になる(バグの可能性がある)。
現在Irrlichtが1.4へバージョンアップ中のため、この内容を伝えれば
修正をしてくれるかも? ということかと思います。
そして、さらに「どうせならマルチバイト変換コードもオフィシャルに」
と、伝えるつもりなのかと思って、私なりに調査・報告したまでです。
「本家で確認しました」というコメントが抜けていてすみませんでした。
>>296 了解了解。それなら納得です。
ただ、wcstombs関連の扱いについては、
提示していただいたサンプルだと、
1.setLocale()をJapanese決めうちしちゃってる
2.IrrMLの処理に比べて冗長
な気がするんで、
zgock/MadHyde氏版の処理の方がスマートな気はする。
>>296 ID:gpaUcF8iさん
遅くまでお疲れ様です。
マルチバイト文字を変換する方法としては
確かにMadHydeさんのものより長くなっております。
ですので、私のサンプルはまだまだ改善するべきかもしれません。
※Irrlichtで用意してあるGUIがマルチバイト文字必須なので
仕方なく使用している感じです。
現在はマルチバイト文字は使用していないので、
http://lesson.ifdef.jp/A02.html で示すPrintfだけで日本語が表示可能になっています。
>>293-298 Irr Lessonさんを紹介する記事をアップした矢先に中の人が降臨なさっている!
しかも、熱い討論が交わされているとは。
お二方、遅くまで乙です。
>>266を訊いてみたのは、コアハックをせずとも
エクステンションパックのような形で日本語対応できれば
利用しやすく保守が確実なものができるのではないかと考えているからです。
(ただし、他の言語圏でも有用なコードは、なるべくマージしてもらおうと言う試み)
今週中は時間取るのが難しいですが、なんとか提示頂いたサンプルを見て
最適な実装方法とは何かを検討してみようと思います。
ところで、lessonさんのお名前を伺ってもよろしいでしょうか?
サイトでの紹介には、やはり執筆者のお名前を添えたいので。
コンタクトフォームからも連絡が来てた。
返信しておきましたm(_ _)m
>>292 自己解決しました。
CIrrDeviceSDL.cppと同.hが何故かプロジェクトに入っていませんでした。
>どっちかっつーとMacであるとかその他組込系とかのために、
>3DエンジンをSDL管理下に投げるためにあるわけだが、
>何がしたいん?
複数キー同時押しとか、ジョイスティック使用とかです。
CCameraSceneNodeって、setRotationで角度指定できないんですね・・。
>>301 描画にSDL使わないんなら、
CIrrDeviceSDLを使い必要はないはずなんだがな・・・
単純にリンクできたはず。
>>301 さん
そのままでは回転できないので、カメラとは別にノードを作成し
ISceneNode *cameraMan;//カメラマンを用意
それを親とするカメラを作成してみて下さい。
カメラマンを動かすことで、カメラも一緒に動くことが可能です。
もう少しスマートに動かせたら楽なんですけども
一応上記の方法で可能です。
>>299 MadHydeさん
お返事ありがとうございます、必要事項は返信しておきました。
先日の確認はver1.3.1を使用しましたので、
時間があれば1.4Βでも確認してみたいと思います。
2バイト文字対応に関しては、私のサンプルでは日本語だけですが
irrlichtMLでは日本語以外も対応しているので、
標準機能になると心強いですね。
なんとか、頑張って欲しいものです。
>>301 ICameraSceneNode::setTarget()で間接的に回転するはず
>>304 紹介文を更新しておきました
気が向いたら確認をお願いします〜
来週、1.4へのMLのマージを兼ねて動き出しますです
306 :
名前は開発中のものです。:2007/10/22(月) 22:08:51 ID:r3G5ZH1J
Irrlichtの描画を行いながら動画を再生したいのですが
お勧めのライブラリはありますか?
出来ればその利用法などを教えていただけるとありがたいのですが。
浮動小数テクスチャや16bit整数のテクスチャが標準で使えるようにはなりませんかね
HDRレンダリングがしたいです。
>>306 SDLにMPEG2デコーダ付いてなかった?使った事無いけど
そうでなければDirectShowのグラフにgrabberをぶら下げて
ベタビットマップをテクスチャに貼り付ける.
オーバーレイはデバイス握ってるとたぶん無理じゃないか?
311 :
名前は開発中のものです。:2007/10/24(水) 00:20:01 ID:GWIOzhxY
どうもです。
>>308 更新が止まってしまっていますね。
最新バージョンに合わせたいので見送ろうかと思います。
>>309 SDLのほうはわからないです。
ビットマップはありなのかなぁ。一番楽な気はしますが。
>>311 作者のEmil氏の名誉のために言っとくが
MagicLibの1.31版がないのは1.3用でそのまま動くからのはずだけどな
>>314 最終状態としてはそれで合ってる。
「簡単な3rd Personカメラ」の章の直前までの
状態にすればいい。
そのへんの基本は変わってないはず。
>>315 返事が遅くなったけど、できました。ありがとうございます。
ところで、シーンやノードとかの概念というか関係がいまいちよく分からないんですが、
分かりやすい解説ってどこかにないですかね?
なんか翻訳wikiくらいしか拠り所がないんですが・・・
英語が得意だったらなぁ・・・
>>316 3D世界をエクスプローラのようなツリー構造で管理しているとイメージすればいいかと。
Irrlicht
|
---キューブ
|
---ボール
>>317 見てみました。
英語さえ分かればドキュメントは豊富だってのは分かるんですけどね・・・
やっぱ俺は純国産じゃないと駄目かなぁ・・・
>>318 それは分かるんですが、それぞれの役割みたいのの簡単な説明があればなぁーと。
まぁ色々いじってて、少しずつなんとなく分かってきたんですが・・・
irreditでanimatorにtextureを追加して、ファイル名を指定すると、
ファイル名が更新されずに消えてしまうんですがどうすればいいんでしょう。
FPSゲームを作っています。
FPSなのでとりあえずキャラクターは表示させず、移動はFPSカメラを利用しています。
そこで走る、歩くなどを表現したいのでFPSカメラの移動速度を変えたいのですが、
addCameraSceneNodeFPSで更新するしかないのでしょうか?
add〜を連続使用するというのも不安ですし、
そもそもキャラクターの移動はFPSカメラで済まさず、自分で処理するべきなのでしょうか?
>>321 ICameraSceneNodeを継承して、移動速度が変わるようなカメラクラスを作る
雛型はFPSのをコピーすれば後はキー入力部分を変更するだけ
このクラスはマネージャに未登録だからadd〜では追加できなくなる
次のコードで対応
CCameraSceneNodeFPSown* CameraPFS = new CCameraSceneNodeFPSown(smgr->getRootSceneNode(), smgr);
CameraFPS->drop();
323 :
名前は開発中のものです。:2007/11/11(日) 18:57:11 ID:FfvcBzgB
3rd Personカメラをあれこれいじっているんですが、
画角を調整しても、画面端に行くにつれてモデルに歪みが生じてしまい、
いまいちちゃんと表示されないのですが、
なにか良い方法ありますか?
324 :
321:2007/11/11(日) 21:35:00 ID:ogyLcZhW
>>322 クラス作りがんばります。
クラスを作り終えた結果と共にレスを返したかったのですが、
c++についても初心者なため、時間がかかりそうなのでとりあえず報告のレスをば。
あと初心者ついでにお聞きしたいのですが、
addCameraSceneNodeFPS関数は、
ICameraSceneNode* node = new CCameraFPSSceneNode(〜);
となっています。
CCameraFPSSceneNodeはCCameraSceneNodeを継承しています。
また、CCameraSceneNodeはICameraSceneNodeを継承しています。
参考にしているサイト
ttp://www.med.osaka-u.ac.jp/pub/cl-comp/saito/cppintro/cppintro8.html から考えると、ICameraSceneNodeへのポインタからCCameraFPSSceneNodeへアクセスした場合
CCameraFPSSceneNodeで定義されたメンバ関数にアクセスできるように思います。
しかしCCameraFPSSceneNodeで定義されているsetMoveSpeed関数などにアクセスできません。
理由がまったくわからないのですが、どうしてなのでしょうか?
>>324 その場合、CCameraFPSSceneNodeクラスのメンバ関数へのアクセスは
ICameraSceneNodeクラスを通した共通関数しか扱えなくなる。
だから、例えCCameraFPSSceneNode内で
setMoveSpeedがpublic関数と定義されていてもアクセス不能です。
もしsetMoveSpeedを使いたいのであれば、こうすること。
CCameraFPSSceneNode* node = new CCameraFPSSceneNode(〜);
~~~~~~~~~~~~~~~~~~~~~~~~~
他にダウンキャストって手もあるんだけど、あんまりお勧めはしない。
ICameraSceneNode* node = new CCameraFPSSceneNode(〜);
CCameraFPSSceneNode *p = dynamic_cast<CCameraFPSSceneNode*>( node );
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
326 :
324:2007/11/12(月) 05:40:47 ID:7YnjD95v
>>325 仮想関数は、インターフェース部になったクラスに存在し、
その上で再定義されたポインタ越しの関数を呼び出せるというものだったんですね。
勉強になりました、ありがとうございました。
327 :
名前は開発中のものです。:2007/11/16(金) 22:28:36 ID:h9AyeuU1
弾の速度=静止した状態から発射した場合の弾の速度+キャラの移動速度
とするのが物理的には正しいんじゃね
331 :
名前は開発中のものです。:2007/11/17(土) 11:13:17 ID:B5H01eQ3
ジョイパッドを使うには
virtual bool OnEvent(SEvent event)
{
if (event.EventType == irr::EET_KEY_INPUT_EVENT) // キー入力であれば
{
switch(event.KeyInput.Key) // キーの種類が
{
の中に入れるべきですか
Irrlicht LessonにはジョイパッドのIDやキーの取得に関しては書いてあるのですが
実際にどうやって使ったらいいか分からなくて・・・
332 :
名前は開発中のものです。:2007/11/17(土) 11:30:58 ID:B5H01eQ3
>>328,329,330
アドバイスありがとうございます。
微調整してみたら結構自然になりました
333 :
名前は開発中のものです。:2007/11/17(土) 12:39:07 ID:B5H01eQ3
と、質問ばかりなのも何なんで
マップとキャラの衝突のコード晒しときます。
これでマップ上を自由に動き回れるはず
// マップ
Device->getFileSystem()->addZipFileArchive("media\\map\\blackbridge.pk3");
IAnimatedMesh *MapMesh = Scene->getMesh("blackbridge.bsp");
ISceneNode *MapNode = Scene->addOctTreeSceneNode(MapMesh);
MapNode->setMaterialFlag(EMF_LIGHTING, false);
MapNode->setPosition(vector3df(1000,-350,550)); // マップの位置を少し下げる
scene::ITriangleSelector* selector = 0; // セレクタ−1宣言
// マップノードをトライアングルセレクターとして登録
if (MapNode){
selector = Scene->createOctTreeTriangleSelector(
MapMesh->getMesh(0), MapNode, 128);
MapNode->setTriangleSelector(selector);
selector->drop();
}
// MAPとキャラの衝突判定
scene::ISceneNodeAnimator* anim2 =
Scene->createCollisionResponseAnimator(
selector, SydneyNode, core::vector3df(10,21,10),
core::vector3df(0,-1,0),
core::vector3df(0,0,0));
SydneyNode->addAnimator(anim2);
anim2->drop();
>>331 while(device->run())ループ内で描画前にでもjoyGetPos(JOYSTICKID1, &joyinfo);してやって
その結果を元にユーザイベントを投げればOnEventで処理できると思うよ
>>334 すみません
ユーザーイベントを投げるにはどうすればいいのでしょうか・・・
virtual bool OnEvent(SEvent event)
{
if (event.EventType == irr::EET_USER_EVENT)
{
return true;
}
でいいと思うのですが、
ループからどう関連付ければいいか分からなくて・・・
よく見たらIrrlicht Lessonに解説ありました・・・
何とか自分でやってみます
乙
339 :
336:2007/11/20(火) 01:19:13 ID:njgoBjcy
ループ内で
joyGetPos(JOYSTICKID1, &joyinfo); //ジョイパッドの情報を取得
getState(joyinfo); //取得した情報をIDに置き換える
をして、getStateで△ボタンを押すとIDに1が入って、
postEventでレシーバーにユーザーイベントを投げるというのを
やろうとしたのですがpostEventのところでハンドルされていない例外が発生しました
と出ます。。。
どこが問題なのでしょうか。。
//ユーザーイベント送信
void postEvent(s32 eventType, s32 eventId)
{
SEvent event;
event.EventType = EET_USER_EVENT;
event.UserEvent.UserData1 = eventType;
event.UserEvent.UserData2 = eventId;
Device->postEventFromUser(event);
}
//変換
void getState(JOYINFO joyinfo)
{
if(joyinfo.wButtons == 0x0001){
s32 ctrlID = 1;
postEvent(EUMT_JOYPAD_INPUT, ctrlID);
}
}
Driverの宣言部分に問題があったようです。。
多重宣言になってたのに気付かなかった。。
一応ジョイパッドのボタンを押すと
キャラが前進する
というところまではできました
問題は離しても進んでしまうところ。。
>>340 さん
サンプルではグローバル宣言しているので、グローバル宣言をやめて、
postEventの引数にdriverも追加すれば大丈夫でしょう。
キャラのアニメーションに関しては、
最後に指定されたモーションが実行され続けるはずです。
キーが押されなかった場合の処理も指定する必要があります。
前回の状態と比較して、変化があった場合に、
モーションを変更するようにしてみましょう。
HDR対応・・・HDR対応・・・
空をScene->addSkyBoxSceneNodeで作成しているのですが、
これだとソースコードレベルで空が固定されてしまいます。
GtkRadiantなどの空シェーダーを利用したいのですがうまく反映されませんでした。
反映させるためには何かコードを追加しないといけないのでしょうか?
>>341 おお、管理人さん自ら恐れ入ります。
早速やってみます
346 :
344:2007/11/22(木) 05:24:42 ID:0gf5OqeX
// アニメーションパターン設定
if (lastState != Receiver->State){ // 「立ち」と「走り」状態に変化があったら
if (Receiver->State){ // 「走り」なら
Player->setMD2Animation(EMAT_RUN); // アニメーションを「走り」に
} else { // そうでなければ
Player->setMD2Animation(EMAT_STAND); // アニメーションを「立ち」に
}
lastState = Receiver->State; // 状態変化を保存
}
これを使ってやっても
Stateを発信する方が
event.KeyInput.PressedDownとevent.UserEvent.UseData1
では違うようです・・・(って当たり前か・・・)
>>344 さん
>Stateを発信する方が
>event.KeyInput.PressedDownとevent.UserEvent.UseData1
event.UserEvent.UseData1でも同様に
Stateを返してしまえば大丈夫ですね。
キーボードで右に値するキー(→・Dなど)が押されたときの処理と
コントローラで「右」を押した時の処理を同じにすればいいでしょう。
イベントの種類や名前などで難しく考える必要はありません。
日本語訳のwikiないの?
ユーザーwikiある?
訂正:>が&gt >が&lt
ほんとだねw
>にするつもりが;(セミコロン)を忘れちゃったんじゃないかな
1.4 リリースおめ
1.4キタ━━━━(゚∀゚)━━━━!!!
VISTAも認識するようだ
おめ
1.4入れてみた
以前組んだのを再コンパイルして走らせてみたが、CPU負荷がかなり改善されていい感じだ
以前のが、1.4でも普通にコンパイルできるのか
キー入力についてお聞きしたいのですが、
例えば全画面表示などに利用するAlt+ENTERを取得できるのでしょうか?
Alt+ENTERを押してもポンというシステム音がするだけで反応してくれませんでした。
確認として
printf("PressedDown : %s\n", event.KeyInput.PressedDown ? "on" : "off");
printf("KEY_RETURN : %s\n", event.KeyInput.Key == KEY_RETURN ? "on" : "off");
printf("KEY_MENU : %s\n", event.KeyInput.Key == KEY_MENU ? "on" : "off");
printf("KEY_RMENU : %s\n", event.KeyInput.Key == KEY_RMENU ? "on" : "off");
printf("is RETURN : %s\n", isKeyPressed(KEY_RETURN) ? "on" : "off");
printf("is MENU : %s\n", isKeyPressed(KEY_MENU) ? "on" : "off");
printf("is RMENU : %s\n", isKeyPressed(KEY_RMENU) ? "on" : "off");
printf("\n");
というコードをレシーバのEET_KEY_INPUT_EVENTに追加してみたところAlt単体では反応しませんでした。
唯一反応したのがAlt押す→ENT押す→ENT離す→Alt離すのときで、MENUのみonになりました。
ですがこれだと同時押しの判定ができず困っています。
ちなみにisKeyPressed()はIrrlicht Lessonさんの複数キー処理のメソッドです。
>>357 さん
WinAPIの以下の関数を使用するとよいでしょう。
・GetKeyboardState(全ての仮想キーの状態を取得)
・GetKeyState(指定したキーの状態を取得)
これらを使用することにより、システムキーの状態も取得できるはずです。
また、Shift/Ctrl/Menu(Alt)を左右別々に取得も可能です。
ただし、システムキー「離した」という情報は取得できません。
これであれば、Alt+Enterを取得できるかと思われます。
360 :
357:2007/12/03(月) 22:52:11 ID:FEcfD3/b
lessonさん、
>>359さんありがとうございます。
>>359のレスを見て簡単かもと思ったのですが、Altを押している間は
イベントが呼ばれないようなので、この中での処理は諦めました。
結果として描画ループ内に
//全画面表示
//Altはirrのイベントで処理できないのでWIN32API使用
if(GetKeyState(VK_RMENU)
>>7&1 && GetKeyState(VK_RETURN)
>>7&1){
switchToFullScreen(); //自作全画面処理
}
といった感じで追加しました。
>>359の方法を使えれば良いのですが、自分には少々ハードルが高いようです。英語読めないですしw
不恰好ですが目的の動作は実現しました。感謝です。
Windows API使うとLinuxで動かないのから
SDLとか使ったほうがいいんじゃないの
>>361 さん
せっかくの掲示板ですから、
もう少し具体的な解決策も書いたらどうでしょう?
お互いスキルアップにもつながりますし
●キー取得
・DLLの改造…SYSKEYの処理を追加する
・SDLを使用する…SDL_PollEventの後で処理を追加する
・OpenGL(GLUT)を使用する…glutGetModifiersで処理
・DirectXを使用する…GetDeviceStateで状態取得
・Win32APIを使用する…GetKeyStateで状態取得
別の方法として、そもそも複数キーを使用しない
・Homeキーを押したら全画面処理をするなど
◆質問
Irrlicht.dllを動的に読み込むにはどうするのが一番楽?
◆やったこと
状況に応じてIrrlicht.dllを切り替えたくなった。
とりあえずLoadLibraryとGetProcAddressで
createDeviceの関数ポインタ取って来るスケルトンを作ってみたけど、
GetProcAddressの返り値NULL('A`)
◆環境
VC7.1くらい Irrlicht1.4
364 :
363:2007/12/11(火) 23:48:27 ID:WAcCpdFv
そういえば関数名は正しかったのかな・・・と思いdependecywalker使用したら、
createDeviceじゃなくて、150文字くらいのもっさい関数でした…。
スケルトンは動くようになって良かったけど、DLL動的したら、この先ずっとDLL内の関数名を気にしながら開発しないといけないのか・・・?
シビアに速度を求めないのだったら、 Irrlicht の API を呼び出す単純なラッパーをつくってやればいいんジャマイカね。
俺はスクリプトエンジンから API 呼ぶプラグインつくってるけど、メモリ 2G 未満のもっさりノートで
EventReceiver とか Animator をスクリプトに記述するような無茶しても結構問題なく動いてる。
どうでもいいが間違ったorz
メモリ 1G 未満 ね。
>>363 ↓このようにC形式で関数エクスポートされてないので難しいかもしれない。
extern 'C' {
IrrlichtDevice* createDevice(...);
}
もし、動的ロードに成功したとしても問題がひとつ。
Irrlichtはマイナーバージョン間ですら互換性がない。
だから、本体実行ファイルが持っているヘッダとは別バージョンの
DLLを読み込んだときに関数エラーが発生してしまうと思います。
バージョン間の差異を解決できれば動的ロードも夢ではないです。
こう言うのしか思いつかなかった(互換性は埋められない)
exe->(動的ロード)->extern 'C' を使ったラッパーDLL1.4->(静的リンク)->Irrlicht.dll 1.4
L(動的ロード)->extern 'C' を使った ラッパーDLL1.3->(静的リンク)->Irrlicht.dll 1.3
-------
チラ裏
irrIMが手詰まりになったので、IrrlichtML 1.4おいていきます。
FreeTypeヘッダをインクルードしなくて済むようにCGUITTFontを隠蔽化。
http://etwas.wolfish.org/files/IrrlichtML-1.4-win32Linux.zip
かぶった。
>>365さんのほうが詳しそう。
>>364 extern 'C'されてないとCreateDevice@fooxyzzzzのような別の関数名に置き換わってしまうんです。
369 :
363:2007/12/12(水) 00:51:44 ID:byr9Z6t8
>>365,367,368
ありがとう
昔0.8くらいの頃に作ったスケルトンに最新DLLを上書きしたらエラーでまくりで、
createDeviceに至っては引数構成も違う雰囲気。
DLLのヴァージョン上がる度に手製ソースの方までいじるのは避けたいから、
Irrlicht1.dll・・・みたいに用意して動的に切替、と考えてた。
DLLのバージョン更新による差分については、可能ならば自前ラッパーで吸収したいと考え中。
それはそれとして追加質問
Irrlichtに慣れたいんだけど、自分は今まで2D畑中心でやってきたからやはりまず2D系テクから覚えたい。
公式チュートリアルやシューティング勉強中の人のソースは見た、けど、
2Dのキャラクタ画像を拡大縮小したり透過率を指定したり回転させたりするようなサンプルが見当たらない。
今後、これらのサンプルはどういう方向性で探索するべきだろうか?
それとも、複雑な2D機能はIrrlichtでは対応出来ない?
サンプルばっかりに頼らないでAPIドキュメントで調べろよ
でも回転は見当たらないから自分で頂点触るしかないのかな
前から気になってたんだが、
scene::ISceneNode::getRotation( ) は const core::vector3df& を返すのに、
scene::ISceneNode::getPosition( ) が const core::vector3df を返すのはなんでだぜ。
値返しなのに const はおかしいから単なるバグかね。
クォータニオンを扱う関数があるみたいですけど、どうやって使うんですか?
GOGOのサンプルをファイル分割してみた
整理してうpします
>>372さんも質問していますが、quatanionを使ったベクトルの回転はどうすれば良いのでしょうか。
API リファレンス読んでも、英語力皆無なのでどの関数がどんな機能を持っているのか…。
例えば任意のベクトル v1 とベクトル v2 があるとき、
v2 を軸として v1 を回転する方法などお教えいただけないでしょうか。
375 :
374:2007/12/20(木) 15:35:27 ID:jqRYwRor
一応自己解決。下のコードでいけました。
quaternion qua;
qua.fromAngleAxis(rot, v2);
matrix4 mat = qua.getMatrix();
mat.transformVect(v1);
ただ、Direct3Dの関数で処理したのと微妙に挙動が異なるような。
試しにカメラを縦に回転させるアニメータを作ってみたが、
Y軸付近で回転量が小さくなるような気がしたのと、ジンバルロックが解決できない。
下のコードだとジンバルロックで動かなくなることはないのだが……。
D3DXQUATERNION qua(0.0f, 0.0f, 0.0f, 1.0f);
D3DXQuaternionRotationAxis(&qua, &axis, rot);
D3DXMATRIX mat;
D3DXMatrixRotationQuaternion(&mat, &qua);
D3DXVec3TransformCoord(&normalized, &normalized, &mat);
FEZのようなインターフェースを作れないかな?
FPSっぽいカメラとキー操作なんだけど
FPS視点ではなく3rd視点という
普通に作れるでしょ・・・
当たり判定は正確ですか?
CADとかShadeで作ったメッシュを読み込むには、
どの形式でエクスポートするのがベターでしょうか。
Xファイルだと読み込めないこと多いので……。
最近ばかり初めてゲームの製作をするですが、
どうイジってIrrlichtでトゥーンレンダリングを出来ますか?
CollisionResponceAnimatorを二つ設定すると
時間経過ごとに重力が増大していくんだが…Irrlichtのバグ?
SDK同梱のサンプルマップで試したんだが
落下速度が異常に早くなって、階段すら上れなくなる。
誰か、解決法や関連情報を知っている人はいないでしょうか。
ColisionResponceAnimatorを2つ使う必要性が良くわからないんだが。
2つ以上のオブジェクトとColisionResponceしたいんなら、
1つのColisionResponceAnimatorにMetaTriangleSelectorを当てればおk
Irrlichtでクリッピング距離を変えるにはどうしたらいいでしょうか。
Direct3Dでは
D3DXMatrixPerspectiveFovLH()
の引数で設定することができましたが、
Irrlichtではそれらしきものが見当たらず・・・
387 :
386:2007/12/28(金) 20:40:22 ID:Hp4RPsA7
自己解決しました。
一応書いとくと
scene::ICameraSceneNode* camera = smgr->addCameraSceneNode(〜);
で、
camera->setFarValue( 距離 );
で最大距離、
camera->setNearValue( 距離 );
で最小距離。
なんでForum見ることを思いつかなかったんだろ(;´Д`)
>>386 Irrlicht付属のヘルプにも載ってます
irr::scene::ICameraSceneNode Class Reference
setFarValue (f32 zf)=0
Sets the value of the far clipping plane (default: 2000.0f).
setNearValue (f32 zn)=0
Sets the value of the near clipping plane. (default: 1.0f).
389 :
386:2007/12/30(日) 12:25:25 ID:KN9VCd/i
ありがとうございます。
ちゃんと調べないとダメですねorz
390 :
名前は開発中のものです。:2008/01/04(金) 06:42:00 ID:B3YR/5Yx
イルリッヒは時代遅れ
今は何の時代?
392 :
名前は開発中のものです。:2008/01/04(金) 10:30:21 ID:B3YR/5Yx
オーガ
あけましておめでとうございます
非公式ドキュメントのトップページが壊されていたため閲覧不能でした
先日修正しておきました
あそこの管理人さんは今どうしておられるのやら
394 :
名前は開発中のものです。:2008/01/09(水) 15:48:14 ID:oe3Z1pea
おまえらなんでwindowsでイルリヒト使ってんの?
ダイレクトエックソでも使ってろよ
低レベルな釣りだな
出直して来い
しかしイルリヒトと読んでるところは評価出来る
IrrlichtMLの中の人見てるみたいなので質問ここに書きます。
CGUITTFontについてです。
新たな文字が現れるたびにテクスチャに確保しているようですが、これはたとえばノベル
ゲーム等文字種が多数現れる場合、メモリ不足に陥らないでしょうか?キャッシュの上限
を設定したほうがよい気がしますが…
連投すいません。フルスクリーン<->ウインドウの切り替えはデバイス作り直し
しかないのでしょうか。
その場合、deviceをdropしたら確保したリソースは自動的に開放されるのでしょうか?
>>397 中の人じゃないが、前実験で第二水準まで全部出してみたけど
メモリ不測にはならなかったよ。
WindowsXP 512MB環境
ちょっと計算してみました。A8R8G8B8の16x16のテクスチャを確保すると1グリフあたり1024
byte=1kbyte。それが約2万文字なので約20mbyteということで比較的最近のビデオカード
だと問題の無い値に収まりますね。
とはいえたかがフォントのレンダリングにビデオメモリ20mbyteも食われるのはもったいない
おばけが出る気がします。20pixel位のフォントをレンダリングしたらさらに4倍に膨れ上がり
ますし。
やっぱり当初の計画通りFreeTypeを直接叩いてフレームバッファ(あるいはテクスチャロ
ック)に転送するという形をとることにします…
>>397 MLの中の人です。数日間、モニターが壊れて画面がとてもカレー色でした。
一見メモリ消費量が多いように見えても、読込フォントの最大文字数までです。
なので、現在のOS上では微々たる消費量ではないかと。。
テクスチャは文字単位ではなく、フォント単位で確保されると思ったほうがいいです。
ビットマップフォントも含めて、メモリ不足に遭遇してないので放置ということで…。
どうしても気になるようなら、getFont(...)せずにCGUITTFontを直に生成して、必要なくなったらdrop()してはどうでしょう?
一部のGUIに適用するだけなら、この方法でうまく開放されると思います。
>>398 フルスクリーンへの切替は、IrrlichtサンプルのDEMOのようにデバイス作り直しのみ。
deviceをdrop()した時点で、Irrlicht管理のオブジェクトは全て破棄してくれますよ。
>>400 おまいさんのこだわりは結構だし、それを止める気はないが、
現実によっぽど長編の小説でも実際に使われてる文字は
せいぜい2000文字ぐらいだぞ。
(以前トルストイの「戦争と平和」の訳で約1800文字種とかいうのを読んだ)
普通のゲームならせいぜい1000文字ぐらいじゃないか?
なので、限りなく杞憂に近いとは思う。
が、まあがんがれ
403 :
名前は開発中のものです。:2008/01/24(木) 04:50:43 ID:xvOsgKrW
横から失礼。
コンシューマだとシナリオ作った後に
よく使う文字をカウントして、必要最低限の文字をもたせたり、
あとは、最近(?でもないか)ならキャッシュ機構をもたせて、
よく使うのはキャッシュヒット、あまり使わないのはその場で生成する。
MLのライブラリの中身見てないから、すでに実装されてるよ!だったらスマソ
>>403 CGUITTFontはキャッシング機構を持ってる。
で、400が言ってるのは、
「キャッシュに上限がないみたいだけど、メモリ大丈夫?」
ということ。
で、現実としてそう問題にならんよ、と返答されてる
>>403 CGUITTFontは一度でも現れた文字は必ずキャッシュされているようです。
だからビデオメモリの消費量が心配なのですが…
>>402 情報ありがとうございます。ですがもうFreeTypeでレンダリングするところ
まではできてしまったので、もうこのままテクスチャ転送まで進めたいと思います。
1枚絵表示するのにテクスチャ確保するのもあほみたいなので、フレームバッファに
直接書き込む手段と、2D周りがかなり弱いのでその辺補うライブラリも構築することにします。
それと動的ロードの話が出てきましたけど、IReferenceCountedの実装を見るとヘッダ
ファイルのなかでdelete thisしてます。
これは、コンパイラの最適化か何かでDLL呼び出し元でdeleteされるとまずくないですかね?
new/deleteの実装が異なるコンパイラで作成されたDLLを動的ロードすると、delete時に
不整合を起こすような気がします。あまり詳しくないのでひょっとしたら無駄な心配
なのかもしれませんが…
>>401 回答ありがとうございます。
フルスクリーン切り替えは面倒ですね…。
>>405 0.5ぐらいの時代だから2年近く前?にdeleteの問題は公式フォーラムで議論されてたはず。
で、結論は「問題なす」だったはづ
>>407 以前に議論された話題だったのですね。失礼しました。
質問です。直感でさくっとお答え頂きたいです。
FPSゲーを作ろうとしていて、よさげなライブラリを探しています。
画面を左右2分割にして、2人でプレイ出来るようにしたいのですが、
irrlicht での実装は描画の面において楽に出来ますか?
>>409 ビューポートとカメラの切り替えで実現できると思います>分割対戦
>>409 公式のチュートリアルに画面分割のサンプルあるお
OctreeTriangleSelectorを使ってメッシュのどの面とどの面が
衝突したかまで分かる詳細な衝突判定ってできますか?
413 :
409:2008/01/26(土) 06:10:08 ID:/SAwn9ff
>>409-410 レスありがとうございます!
ュルルルリッヒエンジンでがんばってみます。
OGREからこっちに鞍替えを目論んでます。
本家のFeaturesに「BlenderのエクスポーターがSDKにあるよ」みたいな事が書いてあったんで1.4のSDK落としてみたんですが、見つかりません…
readmeのフォルダ一覧にもexportersフォルダが書いてあるのに見つからず。
どうすれば…orz
OGRE用のメッシュファイル(.mesh)も読めるみたいですが、試してみた方いますか?
>>415 OGREのCVSに「blenderimport」と「blendersceneexporter」ってフォルダがあるけど
これがBlender関係のSDKじゃね?
>>417 すまん、「本家のFeatures」を、OGREのFeaturesと勘違いしてたみたいだ
Irrlichtのスレなのにな・・・
Irrlicht + Blenderなら、アニメーションが出来るDirectXのメッシュ(.x)使った方がいい
IrrlichtはXメッシュをそのまま読めるからIrrlicht用にわざわざコンバートしなくて済むしな
ただ、Xメッシュはツールによってフォーマットが少し異なる場合があるので注意な
メタセコで作ると「{」の位置のせいで読めなかったりな。
仕方ないから「{」の前に改行入れるコンバータ作っちまった。
>>418 .xで試してみました。
IrrlichtのMesh Viewerで読めたので、たぶんコレで大丈夫だと思います。
ありがとうございます。
>>420 ところでOGREからこっちに移行する気になった理由はなんだったんだろか
どうせ「英語読めない」でしょ
自分はOGRE知らないのですが、ライセンスに惹かれてIrrlichtを選択しました。
ところで、drop()を忘れそうな自分はboost::intrusive_ptrを愛用していますが、
使ってる人はいるでしょうか?
>>423 俺も昔は使ってたけど、サイズがでかくなるし、ポインタコピーするたびに
内部でごにょごにょやってるしで精神衛生上よろしくない
だから、解放処理が必要なオブジェクトはシングルトンなマネージャクラスに任せてる
マネージャのコンストラクタで生成&初期化して、デストラクタで開放させれば
管理する必要が無くなる
やろうと思えば手動開放もできる
使うときは
IrrlichtDevice *dev = IrrManager::getSingleton().getIrrDevice();
みたいな感じで、初期化さえしとけばいつでもどこでもアクセスできる
OGRE使ってこの方法を見てから、俺の中ではこれが主流になってる
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);
Material.Thickness=10.0;
driver->setMaterial(Material);
driver->draw3DLine(・・・)
というとき、Thicknessの値をいろいろ変えても画面上の線が常に1ドット幅なんですが、
どうすれば2ドットの線などを描けますか?
エンジンをDX9からOPENGLにしたらうまくいきました
メインサポートがOpenGLだったんですね
たぶん、ラインのサイズ指定がOpenGL依存なんだろうと思う
OpenGLだとaddLightSceneNodeで照らしたaddCubeSceneNodeがちゃんと見えるのに、
DirectXだと光源がない状態になってしまいます。(真っ黒
しかし、ある友人のパソコンでは、
OpenGLのときにguifont->drawをするとクラッシュしてしまうので、(DXなら動く)
DirectXのサポートは続けておきたいのですが、どうしたらいいですか?
その他人のパソコンでguifont->drawが使えない理由としてどんなものか考えられるか、と、
DirectXに切り替えると上の事例が起きる問題の解決方法を教えてください。
>>429 友人のGPUがOpenGL2.0に準拠してないかバグ持ちドライバな可能性がある
>>430 うーなるほど そうだとするとこっちには手が無いですね・・・ ありがとうございます
IrrlichtML版のgetFontで得た日本語フォントをISceneManager::addTextSceneNodeに渡すと、
CGUITTGlyphのデストラクタでエラーが出ます。
サンプルでもNode関係を使っているのはなさそうなので、
これは仕様なのでしょうか?
環境はWindowsXPMCEのSP2、IrrlichtML1.4、VisualStudio2005Pro、freetype-2.3.5です。
>>425 見えない敵とかの描画を省略しようと思ったらそら交差判定が必要になるでしょう
皆さん音楽はIrrlichtで音楽はどうしてますか?IrrKangはフリー以外だとライセンス購入が
必要ですし…何かお勧めのライブラリがあれば教えてほしいです。
xファイルの読み込みについて質問があります。
irrlichtでxファイルを読み込むときに右手、左手の座標系を指定して読み込ませることって
できるんでしょうか?
ttp://gamdev.org/up/img/11075.jpg ↑のようにXSIで作成しているときと、Xファイルビューアまたはirrlicht上で表示したときに鏡
像のような表示になってしまうのを、なんとかしたいのです。
環境はWinXP VC2008 irrlicht-1.4 です。
>>432 driverに預けてあるテクスチャを本体が先に開放してるくさい
どこかで既にremoveTextureが呼ばれてる気がする
addTextSceneNodeの後にfont->grab()でもしておけばエラー回避は可能
その代わり、テクスチャ開放がされなくなります
どうしたものか
ニコニコ吹いたw
過疎り杉で全俺が泣いた。
ところで、436の件が自己解決したので報告。
汚い方法ではあると思うけど
irrlichtのCXMeshFileLoaderを元にx座標を反転させながら
xファイルを読み込むファイルローダを作って解決させました。
カメラがどんな向きを向いていても
常に手前から光が当たる
手抜きライティングをするにはどうすればいいですか?
>>441 ライティングしないようにするとかはダメ?
(ポリorテクスチャの色そのまま表示するように)
対象ノード->setMaterialFlag(irr::video::EMF_LIGHTING, false);
>>441 考え方として、以下のようなものはどうでしょう?
1.カメラの背後に光源という感じに、カメラを親として光源を設定
2.キーが押されたら、カメラの代わりにワールドを動かす
これで、一応はカメラの方向から必ずライティングされるかと
いつになったらゲームパッド対応するんだろう・・・
>>442 立体感つけたいのでライティングします。
>>443 CameraSceneNodeFPSと組み合わせたいのでそれはちょっと。
>>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)=親と一緒をセット
で、やってみてください。
446の修正
・ライトを作成する時に、親を「ライト」にすれば大丈夫です。
↓
・ライトを作成する時に、親を「カメラ」にすれば大丈夫です。
448 :
441: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;
>>441 おめでとー!
これを少しいじれば、太陽のように見せることもできそうですね。
あとでやってみようかな。
450 :
441:2008/03/08(土) 23:32:53 ID:vuhDlgNP
>>448 あれ、ELT_POINTでも同じになっている気がします・・。
点光源なのに離れても暗くなりません。
あと、テクスチャつきだとライトの色は反映されているみたいですが影がつきません。
>>441 テクスチャつきのオブジェに対してのライトは
マテリアルの設定を操作する必要があります。
SMaterialのLightingを見てみてください。
これがライトの影響を受けるか受けないかです。
(デフォルトでは影響を受けないようになってたかも)
αつきテクスチャを貼り付けたビルボードをαテストを使って透過させつつ、
頂点カのαを減少させてフェードアウトってできるんでしょうか?
EMT_TRANSPARENT_ALPHA_CHANNELに頂点のα値を反映させたいんです
lessonさんのライトのところを見たんですが
FPSゲームでよく使われるスポットライトも作れるんでしょうか
その場合カメラと連動してライトも動かさないといけないのですが・・・
>>451 いや、デフォルトではtrueですが・・。
何でだろ、examplesのSpecial FxのroomMeshを読み込む部分のコードを
そのままコピーしたらちゃんとライティングされています。
455 :
441:2008/03/12(水) 23:35:51 ID:biTsIJxr
その内ソースをupします。
SIRENみたいなゲームも作れそうですね
>>453 頂点単位でしかライティングできないから、ライトマップ使わないとだめ。
勘違いしてたらすまん。
>>457 いや、出来なくないと思いますが?
バンプマッピングとかパララックスマッピング使えますし。
フォンシェーディングは自分でシェーダー読み込まないと使えないみたいですが。
460 :
441:2008/03/17(月) 23:32:00 ID:haIYreE8
461 :
名前は開発中のものです。:2008/03/21(金) 13:41:00 ID:k9t2KKAY
単純なコリジョンについて誰か教えてください。
BB対BB、セレクタ対セレクタ、セレクタ対BBのどれかで
単純に現在接触しているかを知るにはどうすればいいですか?
円が2個あるとします。 接触する事とは、中心と中心の距離で求められます。
>>462 手のジョイント位置と対象位置でバウンディングスフィアしてパンチ!とか一応やってみました。
でもirrlichtの機能の範囲でBBなんかでさくっと判定できる方法があればやり方を知りたいです。
具体的にはCSceneNodeAnimatorCollisionResponseを参考にしてみたんですが
移動抜きで現時点の接触を知りたい場合にスフィアなりせずにirrlichtの機能任せにできないかなと思って。
464 :
441: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としての機能もつけたいんですがうまくいきません・・。
ほかにもいろいろ問題がありますが、まぁ動いたのでいいでしょう・・・。
また単発質問させてください。
スクリーンの大きさぴったりに描画されるビルボードの作り方はありますでしょうか?
(カメラを親にしてビルボードを作成しているので常に目の前にビルボードを描画するところまではできています。)
何をしたいかというと
1回テクスチャにレンダしたデータを画面に表示するときにピクセルシェーダを経由して表示させようとしています。
draw2dimageではシェーダーマテリアルの設定がうまくいきませんでした。
何かヒントでもあればご教示ください。
プロバイダが9日から規制されてて書き込みできずorz
規制解除されたので書き込みを
>>441 ライトはビデオカードによって表示できる個数に制限があるかもです
古いカードでも3個まではライトを確認してます
(前面から青、背面から赤、カメラ位置に白で確認)
うちの環境だとバンプマッピングができず、ビデオカード変えると
OpenGLでの描画ができず・・・ (初期不良か
ファイルはダウンロードできたのでOBBTreeを見てみたいと思います
当たっているOBBが違う色で表示されれば目視が楽そうですね
色々いじってみます(rockwall.bmpがなかったので適当に作りました)
467 :
441: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:2008/03/24(月) 23:59:55 ID:YyeAT6+O
あ、書き込み全部書く前に投稿してしまた、、orz..
上のZIPですが、自分の環境がirrlichtライブラリの中に手を入れたりしているので
そのままではコンパイルできないかも知れませんので注意してください。
キャラクタークラスはどう作ります?
候補と印象は以下
1、エンティティの中にシーンノードを保持する。
シーンノードを自由に組み合わせられるのは魅力的だが、
特殊な表現をするには結局新しいシーンノードを作る必要がありそう。
2、シーンノードを継承する。
自由に描画処理を記述できるメリットは大きいが面倒そう。
3、シーンノードアニメータを継承してシーンノードに追加する。
複数のシーンノードを組み合わせて使うのが大変そう。
4、それ以外。
>>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()が悪さをしているのだとは思いますが
そこまでは調べていません。
とりあえず報告まで お試しください
>>470 キャラクタークラスを作成するにあたって、
私としては「2、シーンノードを継承する。」が一番楽だとは思います。
キャラを用意して、動きなどを設定してあげれば
render()で全て描画してくれるので確かに楽です。
getPosition/setPosition/getRotationなどがすぐに使えるのがいいです。
気になる点としては、描画順番の管理の仕方でしょうか?
(弾丸を発射させても、MAPの後ろに隠れて表示されないなど
そういう問題が発生して、どうしようかと思っている所です)
これは、他にわかる人からの助言が欲しいです。
>>473 ソースを見た限り、Irrlichtはノードをテクスチャでソートしてしまっているので、
細かい描画順の管理(Ogreのプライオリティ管理のようなもの)は出来ないかと思います。
が、半透明オブジェクトのパスは、通常オブジェクトのパスより後に来ることは保証されているので、
マップのような半透明のHUDで弾オブジェクトが隠れてしまうのを防ぎたいのであれば、
registerNodeForRendering の引数に ESNRP_TRANSPARENT を指定するといいんではないでしょうか。
>>472 ありがとうございます!試してみます
>「回転する前のオリジナルのOBBTreeの位置に当たり判定が発生」しています。
どうりで当たっていないOBBが赤くなると思いましたよ・・。
さて、どうすりゃいいか・・。
>>475 >Irrlichtはノードをテクスチャでソートしてしまっているので、
やっぱり、ソートしてる感じですかorz
特定の向きだと表示される場合があったりしてすごいはまりました。
情報ありがとうございます。
はまる前はISceneNodeを継承させずにやってたので気づきませんでした。
>>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
481 :
441:2008/04/07(月) 21:45:06 ID:HN/Waynt
>>478 >なので、_checkCollisionなどで「回転」も与えないと厳しそうですね。
行列を使って回転の処理もちゃんとしているつもりでしたが
どうやら何処か処理が間違っているようです。
野村XX氏のは行列を移動用と回転用で分けて渡していますがこのプログラムでは
そうしていません。core::matrix4のtranslateVectとrotateVectを使えば分けなくてすむと
思ったのでそうしました。
>>479 >Irrlicht lessonのとうりインストールしましたが、エラーが出てコンパイルできません。
むむ、すみません。ファイルを作成した場合は、
ビルドする対象に設定する(ソリューションに追加する)必要があります。
その部分を更に詳しく追記しておきましたので、確認してください。
■エラー内容
通訳?すると、ビルドする対象が存在しないためビルドに失敗しました、です。
■対処方法
ソリューションにmain.cppを追加してください。
http://lesson.ifdef.jp/000.html の下部に詳細を追記しておきました。
ソリューション エクスプローラーにファイルを追加すると大丈夫です。
>>441 OBB自体の描画は問題ないようなので、当たり判定をする時の座標を
注目すれば何とかなりそうな気はします。
こちらでも、確認できたら再度お知らせします。
オリジナルよりも簡潔になっている部分も多々あったので応援してます。
483 :
名前は開発中のものです。:2008/04/08(火) 19:37:04 ID:46Ui6/PR
>>482 できました。ありがとうございます
またお願いします
484 :
441: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: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-テクスチャはともにうまくいきました。
どうぞご確認ください
>>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ゲームの実行ファイルをアップしておきます。
http://lesson.ifdef.jp/file/irrlesson_hb.zip
>>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/
>>490 数日で戦車のXファイルを表示できるまでになったのはスゴイですね
キー操作で動かせるようになると、さらに楽しくなるのでオススメです
>>492 ダウンロードしてみましたが、以下の2つが見つかりませんでした…
CCameraSceneNode.cpp
CCameraTPSSceneNode.cpp
とりあえずご報告まで
494 :
441:2008/04/14(月) 22:12:55 ID:u3RVdEoB
現在は使っていないのでなくても大丈夫だと思います・・・
495 :
470:2008/04/16(水) 11:25:01 ID:0VSRffog
>>473 返信遅れてすいません。
シーンノードはデータ駆動でデータを再現すれば状態を復元できます。
ゲームの特徴と一致していますし
「キャラクターはシーンノードを継承する」というので同感です。
ただ、言われた通り描画順序の問題や更新処理のみを行うことが困難です。
本格的にやるならIrrlichtの改造が必要そうですね。
496 :
441:2008/04/17(木) 22:45:15 ID:t7r2WetS
三角形同士の当たり判定って結構重いですね・・。
BVHとか使わなきゃいけないんでしょうか?
>>441 使用していないファイルをプロジェクトから外すことで
問題なく動作するのを確認できました。
キーで2つのオブジェクトも操作できるので当たり判定の確認も
わかりやすくなっていました。
>>470 キャラクターの描画だけであれば、シーンノードで特に問題はありません。
銃弾や他オブジェクトはシーンノードを継承せずに、
drawIndexedTriangleList/drawIndexedTriangleFanを使用して
回避することも可能です。
できればシーンノードを継承していきたいですが、
私としては当分は自前の描画で対応してみようかなと思っています。
498 :
441:2008/04/20(日) 20:58:58 ID:A28b/pa+
"Cache-Ef?cient Layouts of Bounding Volume Hierarchies"
を読んでみる事にします。
499 :
441:2008/04/20(日) 21:02:14 ID:A28b/pa+
500 :
470:2008/04/26(土) 22:21:42 ID:LvlHrFkO
>>497 自前で描画できれば最高ですね。
実力不足でシーンノードを利用するというのが本音です。
できればオブジェクトは統一的に管理したいので
OnRegisterSceneNodeを呼ぶタイミングを操作する手もあるかもしれません。
これならIrrlichtを修正する必要はないですしね。
色々と検討してみます。
501 :
470:2008/04/26(土) 22:43:32 ID:LvlHrFkO
>>500 テクスチャでソートされてましたね・・・。
すいません、忘れてました。
勉強してきます。
HLMV(Half-Lifeのモデルビューア)を作成しました
最初から読み込めるモデルファイルに
http://www.counter-strike-dl.com/cs-skins.html で公開されている武器やキャラクターモデルを使用できるようになります
(ここでは、Counter-Strike 1.6のモデルに対応しています)
MD2に比べて、モデルのクオリティが上がっているのでなかなかよさげです
また時間があればSourceやHL2にも対応してみたいと思います
こちらでソースと実行ファイルを公開しました
http://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
http://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を作り、これと壁との衝突を判定しているとうことでいいですか?
>>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
かなり前から公式にもアナウンスありますな
でも、まだ再稼動したばかりなので様子見…
Irrlichtは基本機能のみのリリースで
irrExtから必要な拡張機能をチョイスする使い方を想定してるっぽい
フォーラムからエクステンションを発掘してくる時間を、これで節約できればいいな、と
スレ違になるかも知れませんが、質問させてください。
GtkRadiantでマップを作ると、商用目的での利用は不可と知ったんですが、
商用目的でゲームを作成する場合、どうしたら良いのでしょうか?
bsp以外の形式では駄目なんですよね?
>>509 参考になればですが
「Valve Hammer Editor」というものもあります
GtkRadiant同様にbspファイルを作成可能ですので
こちらを調べてみてはどうでしょう
bspにこだわらなければxファイルでマップを作成することも可能です
>>510 おお!即答どうもです。
特にbspにはこだわってません。xファイルでもいけるのかぁ。
Valve Hammer Editorもこれから調べてみます。
>>511 Irrlichtはいろんなメッシュの形式をサポートしています。
そしてIrrlicht Wikiにはいろんなマップエディタへのリンクがあります。
514 :
名前は開発中のものです。:2008/06/11(水) 23:35:53 ID:2R3HrNSv
age
DirectXSDKは、最新バージョンを入れておく必要がありますか?
アーカイブ付属のIrrlicht.dllを使うだけならSDKは全く必要ないですよ
ランタイムだけ最新のものにしておけば大丈夫です
VC++2005EE に導入してサンプルをビルドしたら、以下の警告が出ました。
LNK4075: /EDITANDCONTINUE は /INCREMENTAL:NO の指定によって無視されます
デバッグオプションに、/ZI が指定されていたので、/Z7 に変更したら警告は回避されましたが、
この回避方法で問題ないでしょうか?
すみません、meshやテクスチャをリソースから読み込むには、どの命令を
使えばいいのでしょうか?
ヘルプで探しましたが、それらしい命令が見つかりませんでした。
520 :
名前は開発中のものです。:2008/06/20(金) 22:09:58 ID:tu1r3q9t
テキスト形式のXファイルをリソースから読み込むのは無理なんじゃない?
DirectXには専用の読み込み命令があるからできるけど、これにはないっぽいし。
テクスチャなら load>lock とかのファイルP取得で可能。
バイナリ形式のXにはIrrlicht自体対応していないから、別のフォーマットを
リソースにするのがよいかと。
リソースって実行ファイルの一領域のことかね
ファイルクラスにリソースから読み込めるようなコードをかけばいけそうだが面倒だろうね
標準機能ではファイルシステムとZIPファイルからのみ
小数以下まで取得できる高精度なタイマーを使うにはどうすれば?
少数以下?何が?
525 :
522:2008/06/24(火) 23:04:11 ID:WZc05MQe
この関数、整数でしか取得できないんだよなあ・・・
1000.0で割ればほら秒単位で小数点以下が
>>522 ITimerで満足できないと他に手段がないような…
Windows上ではWinAPIのメディアタイマーを使って、理論上は高精度な時間を取得してるよ
IrrlichtDevice *irrdevice;
u32 milliseconds;
irrdevice = CreateDevice(...);
milliseconds = IrrlichtDevice->getTimer->getRealTime();
>>526の言うように1000.0で割れば1秒未満は小数点以下になるのだが
>>527 変数間違えた
milliseconds = irrdevice->getTimer->getRealTime();
パフォーマンスカウンタじゃいかんのか?
530 :
522:2008/06/25(水) 22:11:45 ID:nNaFuqPk
>>529 それどうやって使うんですか?
1ms未満も取得したいです。
質問の前提条件を小出しにするのはやめてくれんか
これだけ情報が出たんだからググレカスでおk
533 :
名前は開発中のものです。:2008/07/03(木) 19:23:03 ID:2Vc3TCLM
CollisionManagerについてお聞きします。
irr::scene::ISceneCollisionManager::getSceneNodeFromRayBB()
Returns:
Returns the scene node nearest to ray.start, which collides with the ray and matches the idBitMask, if the mask is not null. If no scene node is found, 0 is returned.
この関数は、ray線に当たっているノードではなくray線に最も近いノードを返し、当たっているか否かは関知しないといことですか?
which collides with the ray
>>533 いやいや、
>>534も言ってるように、Ray直線上の物体で一番手前のものを返すってこと
言い換えるとRayが当たっているものの中で一番近いノード
>>535 だから「which collides with the ray」かつ「nearest to ray.start」なんだろ
説明読めば、答えがまんま書いてあるぞって言いたかっただけだよ
>>535 あ、すまん何をとちったか補足に煽り入れちまったwww俺m9(^Д^)プギャー
>>535さんごめんね、そして補足ありがトン
538 :
名前は開発中のものです。:2008/07/04(金) 01:04:11 ID:58m11+HL
533です。わかりました。
それと
getSceneNodeFromRayBB ( core::line3d< f32 > ray,
s32 idBitMask = 0,
bool bNoDebugObjects = false
)
idBitMaskはいったい何のことですか?お願いします
>>538 衝突判定先SceneNodeのidを選別するためのマスク
id AND idBitMask = 0ではないNodeだけがRay判定対象
対象Nodeには予め自分で好きな値を定義しておくれ
540 :
名前は開発中のものです。:2008/07/04(金) 14:00:28 ID:m932bkDc
irrlichtてWindowsメッセージのコールバックを受け取ることって出来ますか?
搭載GUI の外観ショボいから自前のを使いたいんですが
サンプルなどを見たところ
Winのメッセージプロシジャのループみたいなのも
全部隠蔽されちゃってるっぽいのですが。
542 :
名前は開発中のものです。:2008/07/04(金) 15:51:38 ID:m932bkDc
メッシュ表示したいだけなのに実行時エラーがでるんですが、誰か助けてください><
VisualStudio2005 WinXPを使ってます。
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
{
IrrlichtDevice *Device = createDevice(EDT_OPENGL, dimension2d<s32>(512, 384), 16, false, false, 0);
IVideoDriver *Driver = Device->getVideoDriver();
ISceneManager *Scene = Device->getSceneManager();
Scene->addCameraSceneNode(0, vector3df(0,10,-40), vector3df(0,0,0));
IAnimatedMesh* TigerMesh = Scene->getMesh("tiger.x");
IAnimatedMeshSceneNode* Tiger = Scene->addAnimatedMeshSceneNode(TigerMesh);
Tiger->setPosition(vector3df(-2,0,0));
while(Device->run())
{
Driver->beginScene(true, true, SColor(0,100,100,160));
Scene->drawAll();
Driver->endScene();
}
Device->drop();
return 0;
}
543 :
名前は開発中のものです。:2008/07/04(金) 16:44:31 ID:m932bkDc
あ、DLLのバージョンが違うとか?
DLL作るのってSDKに入ってるプロジェクトをそのままビルドしたら
いいんですかね?
なんかコンパイルは通りましたが何処にもDLLができてません><;
プロジェクトの構成もdllになってるようですけど、やり方があるんでしょうか?
あ、binフォルダに入ってましたwww
誤爆も含めて、ここはお前の日記帳じゃないんだぞ
ブログに書いてな
DLLなんてプリコンパイルされてるのがあるんだから、それを使えばいいじゃない
メッセージのコールバックはDevice->run()を自分で処理すればおk
以上終了
下のような感じでアルファ用とカラー用で二つのUVもたせて
テクスチャを何層か重ねて描画したいんですけど
ITerrainSceneNodeでそういうのってできますか?
------ 花カラー
****** 花アルファ
------ 草カラー
****** 草アルファ
------ 土カラー
550 :
名前は開発中のものです。:2008/07/06(日) 07:55:11 ID:IqMgGGcD
irrlichtの座標軸ってこう?なんかカメラ位置決める時とか分かりづらい。
y
/
/
/
------→x
U
U
↓
z
見え方なんてのはカメラのアップベクトルとかで変わるか・・・
ごめん。
モデルのデータファイルとか皆さんどうしてます?
ユーザーにデータ丸出しにするのは抵抗があるんだけど・・・
DXDの3DXLoadMeshFromXInMemoryみたいな
メモリ上に展開したデータから読み込む関数はないですよね?
なにか方法はないでしょうか?
>>552 irr::io::IFileSystemのcreateMemoryReadFileでいけるんじゃない?
メモリ上のデータをファイルのように扱える関数と思われる。
って、いつの間にか1.4.1リリースしてんだ。
知らなかった・・
私たちはIrrlicht1.4.1をリリースしました。sourceforgeサーバから利用可能です。
ゆっくりダウンロードしていってね。1.4.1はバグフィックスメインだよ。
・COLLADA1.3ローダーの改善。Milkshape1.8形式、拡張.3ds、.obj、
マイクロソフト.xファイルアニメーションプレイバックのサポートや改善。
・OSXでX11追加。
・いくつかの速度最適化
・たくさんのバグフィックス、API拡張、および他の小さな改善。
irrchilit1.4.1と100%互換の新しいirrEditをリリースしました。IrrEditはIrrlicht用でフリーの3Dシーンエディタです。
詳細は更新履歴を見てください。
おいおいw
気づくの遅ーよwww
>>552 ファイルシステムは自前のアルゴリズムのものを読み込ませられなかったっけ?
>>553 マニュアルみたら、なにやら「内部関数だから使わないでくれ」と・・・
>>556 >ファイルシステムは自前のアルゴリズムのものを読み込ませられなかったっけ?
もう少し具体的に教えてもらえないでしょうか。
どういうことかいまいち分かんないです。
あくまでファイルのパースやメッシュ・ボーンの構築とかはirrlichtに任せたいんです。
そこまで自前でやるとしたらこれ使う意味がかなり無くなりますし・・・
lesson.ifdef.jpタソありがとう!
おまいらIrrlichtを何で知った?
このスレwww
ogreスレ。資料少なくてこっちきちゃった
562 :
1:2008/07/09(水) 23:22:05 ID:2Ro0RYQH
>>562 ありがとう。丁度それを調べてて、その辺が落としどころかなと思った。
564 :
553:2008/07/10(木) 21:53:53 ID:Ji3rYPpZ
>>557 >マニュアルみたら、なにやら「内部関数だから使わないでくれ」と・・・
・・・そんな事書いていないけど?
Creates an IReadFile interface for accessing memory like a file.
This allows you to use a pointer to memory where an IReadFile is requested.
Parameters:
memory,: A pointer to the start of the file in memory
len,: The length of the memory in bytes
fileName,: The name given to this file
deleteMemoryWhenDropped,: True if the memory should be deleted along with the IReadFile when it is dropped.
Returns:
Returns a pointer to the created file interface. The returned pointer should be dropped when no longer needed. See IReferenceCounted::drop() for more information.
>>564 すまそ。
irr::io::createMemoryReadFile の方を見てたw
566 :
名前は開発中のものです。:2008/07/12(土) 15:03:40 ID:Mi2YO7SP
IrrNewtを落としたのですが、サンプル(helllo.cpp)をコンパイルできません。
#include "irrnewt.hpp"はリンクがうまくできましたが、その中の#include <newton.h>で
c:\irrnewt_sdk_0_4\include\irrnewt.hpp(27) : fatal error C1083: include ファイルを開けません。'newton.h': No such file or directory
と出ます。そこでnewton.hを探してもIrrNewt中どこにも見当たらず困っています。
newton.hはどこにあるのでしょうか?
サンプルのexeファイル自体は動くので問題はそれだけだと思います。
568 :
名前は開発中のものです。:2008/07/12(土) 16:56:53 ID:Mi2YO7SP
>>567 それ入れて再コンパイルしたらエラー警告の嵐。別の使います
irrlichtってモデル大量に生成したらその分だけもモデルデータ読み込む?
たとえば、同じモデルデータならそこから参照するとかの最適化は実装されてない?
調べればいいんだろうけどDLしてないからさ・・・
DLすればいいじゃん。
DLしたいんだけど目がつぶれちゃって確認できないんだよね。
目がつぶれてるなら確認できないな・・・
となるとモデルの最適化も確認できないしこの話題はこれでもう終わりか。
あ、目治った。
けど、DLするための手が折れたからDLできない。
もう夏休みなのか
嘘を言っているようには見えない
俺が確認してやるよ
ありがとうございます。ついでに答えてください。
じゃないと今度は心が折れそうです。
俺はおまえを信じたのに、おまえは俺を信じないのか?
黙って待ってろ
(;^q^) 信じてます・・・ごめんなさい・・・待ちます
今後俺を疑ったり催促するような真似をしたらもう教えねえ
いいな
はい、ほんと信じて待ってます
よし待ってろ
他の奴らは普通に話進めてくれや
582 :
名前は開発中のものです。:2008/07/14(月) 18:37:37 ID:NUWzYR3F
あげ
あのどの位待てばよいですか?
大うそつきめ!地獄におちろ!
おちてしまえ!
泣いた女が バカなのか
だました男が 悪いのか
褪(あ)せたルージュの くちびる噛んで
夜霧の街で むせび哭(な)く
恋のみれんの 東京ブルース
irrlicht用モデルにMilkshape3Dを使うと思っています
しかし、感想を読むとMilkshapeは簡単にモデルを作れる反面、アニメーションには向かない。
アニメーションをつけて動かすとばらばらになる
またシェーディングができないとかありました
そんなに使えないのでしょうか。あくまでirrlichtとの関係でなんですけど...
Milkshapeがアニメーションに向かないなんて初めて聞いたけどソースどこ?
forum
>>588 ちゃんと書こうよ。君の為のチラ裏スレじゃないんだよ?
ちゃんと書いてもこのスレ頼りにならないもの。どうせ。
じゃあ、最初から質問レスしなきゃいいのに
どうせ。
ForumのURLをはってほしかった
593 :
名前は開発中のものです。:2008/07/20(日) 09:22:15 ID:ftAAg5vX
そもそもIrrとMilkのどっちのforumなんだよ
なぜ使えないって書かれてるかわからないと答えようない
それに、使えないって言ってるやつに使えるソフトを聞くと
MAYAとXSIのどっちが使いやすいかの論争になって
MAXユーザーが「昔はみんなMAX使ってたけどね」と哀愁に浸っていると
LWユーザーが「人に勧めるわけじゃないけどLW使いやすいよ」って控えめに割り込んでくる
メタセコユーザーが「メタセコで十分だよ。むしろ高額ソフト使いにくいよ」と主張し始める
そして、全員から「メタセコはアニメーションできねーよ!!」とツッコミが入り終了
涙目で作者逃亡したアニメーション作成ソフトを引き合いに出すが誰にも相手にされず。
落ち着けよ
まあ3Dソフトはそれごとに仕様が違いすぎて単純に比較する事自体無理がある
そもそもMilkshape3Dはフォーマットのコンバートぐらいしか使い道ないだろ
個人的にはgameSpaceでもいいから市販パッケージもの使えと思うけどな(Shade以外で)
できれば最近安価になってきた4大3DCGソフトのどれかを選ぶべき
suretigai
今日のチラ裏
違う環境でモデリングして出力倍率をソフトのデフォルト値でやってしまった
お城が鶏小屋サイズ('▽'
>>600 現メインコーダーのHybridがレスしてくれてるぞw
要約するとこんな感じ?
>何件か報告があり、2つ程考えられる原因がある。
>詳しいことが分かるまでバグフォーラムに移すね。
>>601 バグスレに移されたw
困ったなぁ・・・
装備アイテムにもキャラと同じ骨仕込んでモーション付けて重ね置きするしか解決法が思いつかない。
他になにかアイデアないですか。
OGREを使ってるゲームの画像と比べてIrrlichtのはかなりクォリティ低いみたいですけど、
やっぱり向こうの方が性能いいのかなあ
性能に差はそれほど無いと思うのだが、Irrlichtはチュートリアルのモデルが超が付くほどショボい
簡単なゲームを作るんだったらIrrlichtの方が楽
逆に金とれるような、規模の大きいゲームを作りたいんだったらOGREの方が楽
その代わり、OGREは本体とエクステンションのライセンスが複雑
本体自身がIrrlicht程自由じゃないのものね
ま、金取るゲームならライセンス料払えばいいのではないかな
OGREはダイナミックリンクにしとけばおk
スタティックでも金はかからんよ。ソースは公開しなきゃならんけど
ダイナミックでもLGPLだとリバースエンジニアリングは妨げてはいけないっぽいことが
wikipediaに書いてあったけど、真相はどうなんだろ?
>>609 Readme.txtに概要、change.txtに詳細を書けばいいと思う
後は元のソースをどこからDLすればいいかとか
概要って何の概要?
>>610 >詳細を書けばいいと思う
ライセンスの問題が絡むから憶測や、曖昧さを残して
レスしては、見てる回りの人が混乱するだけですよ
>>608 ダイナミックだと、LGPLはOGRE DLLだけで、自アプリには好きな独立してライセンスを適用できるyp
スレ違いすまん
>>611-612 概要ってのは、どんな目的の改造なのか
ともかく憶測ですんません
作者に直接聞いてください
>>614 改造の”目的”なんて全く問われてないでしょう?
なんか言葉の使い方が杜撰だと思う。
>>609の
2を訳してみると、”改造した事を明示”すればいいんだと思うんだけど
それが単に”改造しましたという事実”を述べればいいのか、
あるいは”改造した内容”まで提示する必要があるのか、
その辺が分からない。
あと、3は
”この表示を消しちゃいけない”って事だと思うから
”概要”なんかじゃなくてきちんと
The Irrlicht Engine License以下を全部をコピペして貼る必要があると思うんですけど。
フォーラムにポストするにもこの辺の微妙なニュアンスを英語で書く自信がないw
>>615 ご立腹している理由がわからないけど、言葉遣いが不適切で申し訳ない
>あるいは”改造した内容”まで提示する必要があるのか
公開されたものをDLしてみる側としては、これがあると相違点がすぐわかって嬉しい
質問しといて回答の仕方にケチつけるとか阿呆にも程がある
そういうのは放置しとくに限るよ
>>616 >公開されたものをDLしてみる側としては、これがあると相違点がすぐわかって嬉しい
DLした人が嬉しいか嬉しくないかって問題じゃないでしょw
大は小をかねるという意味で改造の内容も書いとけば安全といえば安全なんだろけど。
>>617 むしろありがたい。
まともに回答もする気も考える気もない人間に適当な書き込みをされても
612もいうように周りが混乱するだけだから。
LGPLだとDLL使っても感染しないんだっけ?
「そのアプリケーションに必須の機能」の場合はDLLで外に出しても丸ごと感染するのがGPLだったと思うが。
上から目線の夏厨が降臨してるwww
自分の思い通りにいかないと気がすまないメンヘラみたいな野郎だ
更に上を行くわけですね、わかります
zlibはゆるい
Irrlicht a GoGoの日本語フォント表示クラス使いたいんですけど、
1.41だとコンパイル通りません;;
どうやって改造したらよいのでしょうか?
とりあえずIUnknownは既に無くなったらしいのでIReferenceCountedに変更。
さらに純粋仮想関数化された関数を何個か再定義しつつ、
const化された関数をconst化していくと
どんどん伝播して最後にはcache関数もconst化しなければいけなくなって
この中でメンバを変更してるのでエラー。
とりあえずconstメンバ関数はメンバ変数を変更できない、ってくらいしか難しくて分かりません・・・
うぉ、フォーラムに1.4.1対応版上げてくれてあったようです・・・
超感謝・・・
IrrlichtML使えばいいじゃん
626 :
名前は開発中のものです。:2008/08/03(日) 17:31:19 ID:uQa+vIJd
IrrlichtML導入(Irrlichtに上書き)したら、MLのサンプルIMETest.exe以外のirrlichtのサンプルHelloWorld.exe以下が全てエラーで実行できなくなりました。
どうなってるんですか?
IrrlichtMLってfont->size=nで文字サイズ変更効かないんですか?
628 :
627:2008/08/03(日) 19:53:02 ID:MvGZaNHZ
CGUITTFontだけ使わせてもらってるんですが、
ソースみるとsizeは中で使われてるっぽいんだけど・・・
なぜか表示サイズ変わらないです;;
>>626 IMETest.exe以外は再コンパイルを
>>627 IGUIFont同様の動作をするはず
なので、別サイズを作り直してsetFontをしてください
irrlicht lessonA02.日本語表示の最後で
1.文字を縦方向に2倍にして表示してみましょう。
2.文字を太字にして表示してみましょう。
3.影つきの文字を表示してみましょう。
という宿題があります。恥ずかしい話ですがさっぱり分かりません。
Printf(driver,0,120,0xFFFFFF00,"こんにちは");
をどうすればいいか教えてください
あげときます
>>632 Printf(IVideoDriver *driver, int x, int y, int sx, int sy, SColor color, const char *fmt, ...)
にでも改造して、
DrawImage(driver,tex,x+posx,y+posy, w,h,tx,ty,color,color,sx,sx);
呼び出しは、
Printf(driver,0,120,1,2,0xFFFFFF00,"こんにちは");
>>634 追伸。
そのままだと、sxとsyに1以外を入れると隣の文字同士が重なったりするから、Printf内で posx と posy をプラスしているところを弄らないといけない。
それから、sx と sy は float形(f32)の方がいいかな。とすると、posx と posy も f32 に直すか。
拡大に関しては634さんのようなやり方で大丈夫です
■太字・影つきに関してのヒント
改造をしなくとも X,Y.COLORを指定できるので
座標をちょっとずらして表示してみましょう
色が同じだと…
先に描画した文字が黒なら…
これができたら関数の中身をいじって表示する感じです
>>636 そうだな、まずは大規模に改造するよりか、
関数内の変数とか数値弄ってみるのがわかりやすいな。
教え馴れしてなくてスマソ。
以下チラ裏
ところで、時々SVN更新してみてるんだが、最近は処理速度が1.4.1の
倍くらいになってる気がする。1.5が楽しみだ。
>>632 通常のスプライト処理と同様に処理すればいいわけですね。下線の場合も自分で線を引けばいい
ご協力ありがとうございました
おすすめの3Dモデルフォーマットなにか無い?
作成ソフトに金使う気はないのでフリーので作れるようなものおながいします
X
遊星からの
サンクスコ
とりあえずx出せるらしいメタセコとかミコト使ってみます
>>639 Xファイルがいいんじゃない?
MikotoはXファイルに書き出しするのに手間かかったような…。
別なツール通さないといけないとか。
サイバデリアとかRokDeBone2はどうなんだろ。
そのあたりは別スレに行った方がいいな。
>>642 おじさんは、ホームレスプログラマーなんだ
Irrichtでユーザー独自の3Dフォーマットに対応させるにはどうすればいいですか?
どんなフォーマットも統一的に読み込んでそのままぱっと使えるってのが
いいところだから、そこ対応させるくらいならほとんどもう使う意味無いと思う。
つうかそこ意外には特に便利なところはないw
つまりirrlichtのコードでもいじらない限り出来ないってこと?
>>648 本体のソースを参考にしてローダーを作ればおk
詳しく読んだことないから、これ以上は知らない
>>648 あたりまえじゃん。
魔法じゃないんだから対応してる形式以外読めるわけねぇ。
自分でファイル解析してirrが扱う形に渡してあげるくらいなら
irrなんか使わない方がいい。
むしろ足かせの方が多い。
>>648 言いたいのは「ライブラリに手を入れる必要があるのか?」
って言いたいんだとエスパーすると、
ライブラリに手を入れる必要はないよ。
独自モデルローダーをフックできる切り口は用意されてる。
1.5実装機能抜粋
- Support for LWO files.
- Support for Collada 1.4 files.
- Added volume light scene node
- added Initial Windows Mobile 6 Version
- New device creation parameter to disable Irrlicht's system event handling.
チュートリアルをためしてる時に、マウスの挙動を取られてプログラムから抜け出せなくならない?
マウスのポインタが動かせないから終了マークをクリックできない・・・
Alt+F4
次はマウスを取られないよう改造するんだ
もうIrrlichtでいいような気がした
市販ゲーでもエンジン使ってるんだし。ねえ。
公式フォーラムの書き込みや検索できないのってうちだけ?
書き込みにはフォーラムのアカウントがいるよ
検索できないってのがあるならIPが弾かれてるのかな?
なんかPHPのエラーがでてるんだけど。
Could not obtain matched posts list
DEBUG MODE
SQL Error : 1016 Can't open file: 'phpbb_search_wordlist.MYI' (errno: 145)
SELECT m.post_id FROM phpbb_search_wordlist w, phpbb_search_wordmatch m WHERE w.word_text LIKE 'test' AND m.word_id = w.word_id AND w.word_common <> 1
Line : 340
File : search.php
ところで公式で聞けないので質問です。
シェーダーをちょっとはじめてみたんですがirr公式のチュートのshaderのサンプルを見つつ
手元の参考書に載ってる簡単なシェーダを試してみたいんですが、想定している色がつかないです。
そもそもDXの本だからirrとの絡ませ方がよく分かりません。
シェーダーのソース:
float4x4 g_wvp;
float4 g_color;
void BasicVS( float3 in_pos : POSITION,
out float4 out_pos : POSITION,
out float4 out_color : COLOR0)
{
out_pos = mul(float4(in_pos, 1.0f), g_wvp); //座標変換
out_color = g_color; //頂点の色決定
}
void BasicPS( float4 in_color : COLOR0,
out float4 out_color : COLOR0)
{
out_color = in_color; //入力された色情報をそのまま
}
tachnique BasicTeck
{
pass P0
{
vetexShader = compile vs_3_0 BasicVS();
pixelsShader = compile vs_3_0 BasicPS();
}
}
続き。irrの場合は定数をコールバックで渡すらしい・・・?
class MyShaderCallBack : public video::IShaderConstantSetCallBack
{
public:
virtual void OnSetConstants(video::IMaterialRendererServices* services, s32 userData)
{
IVideoDriver* driver = services->getVideoDriver();
matrix4 worldMat,viewMat,projMat;
viewMat = driver->getTransform(video::ETS_VIEW);
projMat = driver->getTransform(video::ETS_PROJECTION);
worldMat = viewMat * projMat;
services->setVertexShaderConstant("g_wvp",&worldMat[0],16);
video::SColorf col(0.0f,1.0f,0.0f,0.0f);
services->setVertexShaderConstant("g_color",reinterpret_cast<f32*>(&col),4);
}
};
続き。メイン部分。
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
{
/*カメラとかライトとかのセッティング略*/
//Shaderの準備
IGPUProgrammingServices* gpu = Driver->getGPUProgrammingServices();
s32 newMaterialType1 = 0;
MyShaderCallBack* mc = new MyShaderCallBack();
newMaterialType1 = gpu->addHighLevelShaderMaterialFromFiles(
"basicShader.fx","BasicVS", video::EVST_VS_3_0,
"basicShader.fx", "BasicPS", video::EPST_PS_3_0,
mc, video::EMT_SOLID);
mc->drop();
ISceneNode* boxNode = Scene->addCubeSceneNode(1);
boxNode->setMaterialType((video::E_MATERIAL_TYPE)newMaterialType1);
while(Device->run())
{
Driver->beginScene(true, true, SColor(0,100,100,160));
Scene->drawAll();
Driver->endScene();
}
Device->drop();
return 0;
}
以上です。
赤い箱が描かれることを想定しているのですが・・・真っ白です。
1・まず、グローバル変数をセットする部分が謎なのですが、
DXの場合は
まずGetParameterByNameでグローバル変数のハンドルを取得してから、
SetMatrixやSetVectorなどの関数でそれぞれの変数に値をセットしてるみたいです。
一方、irrでは
setVertexShaderConstantとsetPixelShaderConstantってのしかなくて
グローバル変数に渡すのはどっちを使っていいのかわからないです。
2・それから、DXの場合は描画する際に↓のように待ち受け形式っぽくなっているのですが、
//////////////////////////////////////////
// テクニックの実行
m_pFX->Begin(0, 0);
m_pFX->BeginPass(0);
// 三角形の描画処理
pD3DDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1);
m_pFX->EndPass();
m_pFX->End();
//////////////////////////////////////////
irrのチュートでは箱のノードのマテリアルタイプにセットしているようです。
これだと↑のように単純にトライアングルリストとかで三角ポリを描画したいだけのときなどに困ると思うし、
いちいち全部のノードにマテリアルタイプを登録したりするのが手間がかかりそうなんですが、
↑のように、エフェクトをセットした間に流れてきたポリゴンは全てシェーダーが処理するというような
形にはできないんでしょうか。
668 :
664:2008/08/16(土) 22:24:30 ID:MAdEwJ55
デバッグしたらシェーダーのタイプミスが二、三個ありました・・・orz
おそらく全て潰せたと思うけど、
そしたらモデルが描画されなくなってしまいました。
なぜーーー!!!!
そういえばirrのチュートのシェーダにはテクニックが書いてないし
本体にもなんも登録して無いっぽい。バージョンが古いのかな・・・
669 :
664:2008/08/19(火) 09:50:02 ID:2uhaScJb
一応、解決したというか、表示はされました。
シェーダーに渡す行列をかける順番が逆だったみたいです。
ただ、なんで逆なんですかね????
普通、World * View * Projectionの順番じゃないですか?
公式チュートのサンプルがなぜか逆順になってるので
そうしてみたら表示されたってだけなんですが・・・
それにしてもここは既に人がいないのだろうか・・・
>>669 >普通、World * View * Projectionの順番じゃないですか?
>それにしてもここは既に人がいないのだろうか・・・
自分の尺度だけで物事を判断・決定してる事が、そもそもの間違いじゃないのか?
>>670 誰の尺度っていうより、数学的な問題だと思うのですが。
行列はかける順番変えたら意味が変わるって習ったような記憶があります。
なぜ逆順でかけた奴を渡すのか意味が分からないのですが
教えてもらえないでしょうか?
672 :
670:2008/08/19(火) 10:14:52 ID:ok2gduFt
>>671 >教えてもらえないでしょうか?
公式フォーラム行って聞いて来いよ。
それで
>ここは既に人がいないのだろうか・・・
ちゃんと結果を報告してくれよ。
一応ここで質問したんだからな。
教えてくれようとしたけど解決しなかった、とか言うなら
こっちも公式で聞いて報告しにこようと思うけど。
知りもせんで意味不明な煽りだけくれときながら
公式で聞いて結果は報告しろてw
なんか酷すぎじゃないかそれはw
674 :
670:2008/08/19(火) 10:42:34 ID:ok2gduFt
>>673 >知りもせんで意味不明な煽りだけくれときながら
俺は煽ったつもりも無い。お前は
>>670見て煽られたと思うのか?
>公式で聞いて結果は報告しろてw
質問スレで質問した以上、質問者としての当然の義務じゃねーの?
>こっちも公式で聞いて報告しにこようと思うけど。
じゃあ、まず行ってこいよ
数スレ消費してグダグダ質問すんな。
>それにしてもここは既に人がいないのだろうか・・・
たった3日、回答レスがなかったからって決め付けんな。
お前の都合で回答がもらえると思うなよ。
付き合いきれん
>数スレ消費してグダグダ質問すんな。
テメェが意味不明なレスよこすからだろ糞キチガイが。
分かりもしねー事に口挟んで来るんじゃねーよ。
さっさとしに詩にやがれゴミクズ。
「付き合いきれん」じゃねーよwwwwwww
むしろテメェなんか必要としてねぇからさっさと消えろ。
二度と書き込むなカス。
676 :
670:2008/08/19(火) 10:55:18 ID:ok2gduFt
しかしひでぇきちがいに絡まれたもんだ。
あまりに理不尽で意味不明すぎるだろ。
つい言葉を荒げてしまったが、すまない、分かってくれみんな・・・
678 :
670:2008/08/19(火) 11:08:29 ID:ok2gduFt
>>677 無理だろ。
自分に欲しいレス(情報)以外はキチガイ扱いにする奴に
誰が真面目に相手すると思う?
質問したいなら、最後まで誠実に対応しろよ。
それに
>それにしてもここは既に人がいないのだろうか・・・
お前にとってここは人居ないんだろ?
本物の凄さを感じる。こういうのは演出できない。
もういいから他所でやれ
>>679 マジでいい加減にしてくれ。回答は得たんだろ?
さっさとロジックを組んだらどうだ?
俺は回答できないからずっとROMってたけど、ID:2uhaScJbのほうがうざいよ
ここはID:2uhaScJbの日記じゃないんだから、質問したらレス来るまで気長に待てばいいじゃん
それに、意味のない経過報告するなら、結果だけ書いて後人のため情報を提供してけ
自分の気に入らないこと言われたからって暴言吐くような沸点低いセッカチ君は暫く反省してろ
でだ、次のリリースは1.5になるようだね
とりあえず死ね。
香ばしいの〜w
ID:2uhaScJbよ、とりあえず面白いから応援しとくわw
頑張れよ〜 プップギャーッ!!m9゚。(^Д^゚≡。゚^Д^)m9゚。プップギャ-ッ!!
2chで資料性を求めるのもナンセンスという意見もあるだろうが、
技術系のスレではfaqをひとつひとつ作る姿勢で書き込みに取り組んだほうがいい
公式云々言い出した時点で敗北宣言を出したようなものなんだから
そこで無視しときゃ良かったのに、言葉尻に捉われて煽り返した時点で2uhaの負けだよ。まさしくウハwww
伸びてると思ったらなんだこりゃ。
まぁ、
>普通、World * View * Projectionの順番じゃないですか?
2uhaの普通とやらは計り知れないが、
順番なんかベクトルをどちらから乗算するのかで逆転するよねっと
しかしIrrlichtで実際にゲーム作ってる人って日本でどのくらいいるんだろうか。
少なくてもここに一人いるが、数えるくらいしかいない予感。
さらに組み込み言語を使ってる人となると、俺くらいな気がする。
IrrとLuaを使っていますが、何か?
イルルァ
>>688 おお、同士よ。といっても俺はSquirrelだが。Luaは文法がダメだった。
組み込み言語を使うときはどこまで組み込み言語で作るかは問題だよなぁ。
俺はIrrlichtのAPIをエクスポートしてるから、かなりの部分をSquirrelで組んでる。
完全に主従逆転。
ホットスポットとなる部分をネイティブコードにすることで、速度の低下は抑えられる
ことは色んなLLで実証済みだから、これはこれで手段の一つだとは思うんだが。
俺はC++好きなんだけど、C++の開発効率の悪さは認めざるを得ないから、
動的言語で組めるならそっちのほうがいいな。
irrlichtでシャドウマップって実装できますか?
チュートリアル見たらステンシルシャドウしか見当たらなかったので。
>>692 16ビット整数や浮動小数のテクスチャを標準でサポートしていないみたいなので難しい
1.4.2きてたのか
今回同様バグフィックスのみだろうけど1.4.3も出る可能性があるよ
1.5の開発も続行中
>>694 進研模試の偏差値でいうと2ちゃんねるのニュース速報がおよそ45、民放地上波の報道ステーションが約40、
ニュース速報+は35程度の読者を想定しています。
1.4.2MLもきてる
700 :
名前は開発中のものです。:2008/10/17(金) 18:28:11 ID:ewBPV70L
createOctTreeTriangleSelectorとcreateTriangleSelectorの違いがわかりません。
ポリゴン数が多いときは前者を使えとあるだけで、内部でどう処理が違うのですか?
Octreeが何であるかわかれば違いもわかると思うよ
702 :
名前は開発中のものです。:2008/10/30(木) 19:28:24 ID:oTeLmTZk
Forumでirrphysxを見つけたのですが、コンパイルできません。irrphysxのサンプルBoxesExampleで以下のエラーが出ます。
irrphysxのinclude,libディレクトリもちゃんと設定し、PhysxSDK2.8.1,irrlicht1.4.2も入れてあります。「irrlicht.lib' を開けません」というのが理解できないので、対処法を教えてください。
http://chris.j.mash.googlepages.com/irrphysx http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=30804 出力ウィンドウ コンパイルしています...
ShapeCreation.cpp
CGridSceneNode.cpp
BoxesExample.cpp
リソースをコンパイルしています...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation. All rights reserved.
リンクしています...
LINK : fatal error LNK1181: 入力ファイル '../../../../irrlicht-1.4.2/lib/win32-visualstudio/irrlicht.lib' を開けません。
結果 ビルドログは "file://c:\Program Files (x86)\IrrPhysx-v0_1\examples\BoxesExample\Release\BuildLog.htm" に保存されました。
BoxesExample - エラー 1、警告 0
fatal error出たところの相対パスにちゃんとirrlicht.libおいてある?
linuxでirrlichtを触っています。
コンソールに
Could not find win32 key for x11 key.
ってでるのをどうにかしたいんですが、どうにかできませんかね?
705 :
704:2008/11/06(木) 20:20:06 ID:yOFGd/wG
fullscreenにしたらでなくなりました
非アクティブ時に拾ってるのかな?
Irr LessonのC01のSDL組み込みをやってるんですが
そのままサンプルをコンパイルしても
SDLの方に入力イベントの制御が行きません。
まったく行かないわけではなくて、稀にSDLの方にイベントが来るみたいなんですが、
Alt+F4を押すとあっさり終了するので、Irrlichtから制御が完全に奪えていないようです。
いったいどうしたらいいんでしょうか?
開発環境はWinXP+VC2005です。
707 :
名前は開発中のものです。:2008/12/08(月) 22:41:38 ID:9RlnBp0x
保守
>>706 1.5以降で制御ありなしのデバイス生成オプションが拡張されるはず
1.5はLinuxのみの可能性大
Irrlicht1.5リリース!
変更多岐にわたるな、とりあえずトップだけ。
・バーテックスバッファオブジェクト。GPU上にメッシュを置くためとか
・すべてのプラットフォームでジョイスティックのサポート
・collada 1.4とLWOをサポート
・大きいメッシュのための32bitのインテックス
・.objの書き込みクラス
・バーニングビデオソフトウェアラスタライザの改良
・ダイナミックライト、LMTS、PNGとPCXの読み書きの改良
・FSAAがOpenGLで使えるように
・OGREの.meshローダーの改良
・地形レンダリングがよりよくより速く
・ボリュームライト
・WindowsCEポートの改良
・RTT使用時の共有デプスバッファ in D3D
・Linuxでのフォント作成ツールを追加
直訳でゴメソ、今からチェンジログみてくr
710 :
名前は開発中のものです。:2008/12/18(木) 23:42:42 ID:QB80MQLV
FileOpenDialogでファイルを指定したら
C:\Documents and Settings\
までしか入らないのは何で?まさか日本語が入っているから?
C:\hogehogeとかは大丈夫。
711 :
710:2008/12/18(木) 23:50:00 ID:QB80MQLV
最近レス少ないしage進行で
MLじゃないと駄目なのかな、日本語ファイルの選択
MLのIME変換ウィンドウの挙動を調整してたらこんな時間に…。
EditBoxのmultilineに、ある程度対応させておきました。
後程、コンパイルしてアップしておきます。
>>710 素の状態だと、日本語フォントを使っていても、mbstowcs()をかまさないと文字化けしてしまいます。
この部分は、パッチを提供したら、本家に組み込まれそうな気がしないでもないです。
ところで、今回からMLプリコンパイルDLLのDirectX8サポートを切ろうかと思うのですがいかがでしょう?
>>712 お疲れ様っす。
DX8サポートが長い間残っていたのは、0.*時代にDX9インプリメントが
結構怪しかった名残(と個人的には思っている)なので、
DX9環境も枯れてきた今なら切っちゃってもいいとは思うデス。
>>712 いつもお世話になってます。
いまどき、DX8でIrr触ってるヤシどれくらいいるんだろ。
俺は切るに賛成っす。
716 :
710:2008/12/19(金) 22:10:29 ID:Hjz5wbiY
>>712 乙です。
mbstowcsってsrcにchar*を指定しないといけないみたいですが
FileDialogはファイル名がwchar_tで返ってきます・・
IrrlichtMLを使えば問題なくなったからいいか。
Could not load shader function D3DXAssembleShader from dll, shaders disabled: d3
dx9_39.dll
Could not create vertex shader.
Could not create vertex shader.
ML-1.5に変えたら、こんなメッセージがコンソールに出たんですが大丈夫でしょうか?
ttp://uproda.2ch-library.com/src/lib081835.zip.shtml 何を作ろうかと思っていたかというと、こんなものを作っていました。
DirectShowでレンダリングされた動画をテクスチャに書き込みます。
GLだとうまく動かなかったりします。処理も遅いです。
誰かこの問題を解決できないでしょうか?ソースコード汚くてスマンです。
717 :
名前は開発中のものです。:2008/12/19(金) 22:38:06 ID:HoYFRZCL
どうやったらいいのかよくわからないけど、
漢字変換の時ってImmSetCompositionFontでフォントセットしたら
もっと自然な感じで変換できるようになるかな……
719 :
◆YATA/oetrw :2008/12/21(日) 20:46:27 ID:+GT7dnDG
あ、それと、彼らとの意思疎通に英語翻訳してくれる方がいてくれると助かります。
英語の文章を組み立てられないので、短文を書くにもexcite先生に長時間浸かってますorz
721 :
710:2008/12/21(日) 22:23:40 ID:pt1QZUzz
>>718 警告出ましたよ。アセンブリシェーダーは使わないので、別にいいんですが・・
メッセージは消したいですね。
>私のところだ警告なしで、DirectX9とBurning's Software Rendererともに元気よく動いてました。
テストありがとうございます。
それにしても、FPSたけぇ!!(こちらはRADEON HD 2600XTで800ぐらい)
やっぱりOpenGLだと動かないですか・・。何ででしょう?
main.cppでの書き込みは上手く言っているようなのに。
ttp://uproda.2ch-library.com/src/lib082512.zip.shtml 若干修正しました。
・コピーの処理をCImage.cppからとってきた
・テクスチャのサイズをビデオのサイズと同じに
・何となくWaterSurfaceのシーンノードに変えた
・現在のフレーム数を表示
問題は
・GLだと動かない。
・2の累乗でしかテクスチャが確保できない場合の処理がめんどくさい
・シークとかが未実装
・COpenFileDialogを使うと、Cドライブより上にいけない
などでしょうか。
>>721 うねうねしているせいか、コピーをCImageから取ってきるのが原因かわからんですが
テクスチャ書き換え中の垂直非同期線が見えてしまってました。
OpenGLが黒いのはIrrlichtのバグの可能性もあるのでにんともかんとも。
それと、Burning's Software Rendererでは異常終了しちゃうようになりました(CImageが対応してない?)
>メッセージは消したいですね。
ログ出力されているコンソールを非表示にして見なかったことにするという荒業なら。
とりあえず、DirectXランタイムやビデオドライバのアップデート、DLLの再コンパイルを試してみてください。
>COpenFileDialogを使うと、Cドライブより上にいけない
確かにwドライブ用リストボックスが欲しいですね
>>712さんありがと〜
ありがたく使わせていただきますね
724 :
710:2008/12/22(月) 22:07:57 ID:FcNpR8F3
ttp://uproda.2ch-library.com/src/lib082805.zip.shtml ・テクスチャとビデオのサイズが違う場合は、
ニアレストネイバーで拡大縮小する処理を復活
>>722 >うねうねしているせいか、コピーをCImageから取ってきるのが原因かわからんですが
テクスチャ書き換え中の垂直非同期線が見えてしまってました。
なんでだろう??DirectShow初めてなので原因が分かりません。
>OpenGLが黒いのはIrrlichtのバグの可能性もあるのでにんともかんとも。
テクスチャをロックできていないのかな・・うーん分からん
>それと、Burning's Software Rendererでは異常終了しちゃうようになりました(CImageが対応してない?)
すいません、テクスチャのサイズとビデオのサイズが違う場合の処理
を消してしまっていました。
>>COpenFileDialogを使うと、Cドライブより上にいけない
>確かにwドライブ用リストボックスが欲しいですね
他のOSだと必要ない機能だからでしょうか?あと、
・上のフォルダにいく「..」が常に上に来ない
代わりに「上へ」ボタンを用意してもいいんじゃないでしょうか。
・画面上に表示されているパスを編集可能にする
こんな機能も欲しいですね。
いっそそのへんひっくるめて対応して、マルチバイト文字にも対応した
拡張OpenFileDialogをエクステンションとして作った方が影響も少なくて
平和なんじゃないかとふと思った。
(初期のCGUITTFontみたく、自前でプロジェクトに追加する方法で)
726 :
710:2008/12/23(火) 22:15:39 ID:Qo9DH/Zf
今作ってるのが2DゲームなせいでIrrlichtが単にDirectX初期化ライブラリとしてしか
機能していない俺ガイル
どうでもいいけど頂点アルファとテクスチャアルファ対応の新マテリアルはまだかね
前フォーラム見たときは作ってる時間ないぜゴルァ的な回答があった気がするが
適当なマテリアルコピーして頂点アルファ使うように設定するだけなのに大変なのかね?
ソフトウェアレンダラとの兼ね合いなんだろうか、よくわかんね
自分でIrrlicht弄ったほうがはやいかな
ところで、SVN見てるんだが、branches\ogl-es ってフォルダあったのな。
これでiPhoneアプリ作れるんだろうか…。
ちょっと、フォーラムとドキュメントにいってきま ノシ
>>710 なかなかよさげなのでサイトかフォーラムで公開されてはいかがでしょ?
>>725 その方法もIrrTestxxx.zipで試してみたことがあります。
利点:DLLの修正が不要
欠点:ModalDialogが機能しないため、その部分も含めて実装しなければいけない
GUIManagerに登録すればいいのかとも思うのですが、まだ試したことがないです。
>>727 いじった成果をsf.netのパッチスレへぜひ!
待っているだけでは優先順位を落とされてしまうみたい。
>>729 まだ実験中らしいけど、動くことは動くらしいです。
今、クリスマスシーズンで、ぱったりSVNが沈黙してるのが悲しい。
733 :
710:2008/12/27(土) 22:24:08 ID:VFZuSRAM
レス代理してもらったら名前入れるの忘れられてしまったみたいですが
>>732の書き込みは私のです。
GLでも正常に動くようになるように他のスレで訊いてきます。
>>730 >なかなかよさげなのでサイトかフォーラムで公開されてはいかがでしょ?
GLで動くようになったらそうしようかと思います。
734 :
名前は開発中のものです。:2009/01/06(火) 23:36:07 ID:hXPh/BNb
age
735 :
710:2009/01/09(金) 21:57:21 ID:+Oa9zZ2Y
一応動くことは動くようになりましたが、D3Dより遅いです・・
736 :
名前は開発中のものです。:2009/01/15(木) 19:35:56 ID:RJA+UFMv
1.5になって2倍くらい速くなってワロタ
737 :
710:2009/01/15(木) 22:33:49 ID:knBmYho8
一応GLでも動くようになりました。しかし遅いです・・・
GLのAPIを直接呼び出して高速化するためにムービー読み込み機能を
Irrlichtに組み込みました。
そうしてレンダラーがOpenGLの場合のみ
glTexSubImage2Dでムービーの内容をコピーするようにしたんですが
何故か画像が上下反転する上、あまり速くないです。
(OpenGLのテクスチャはDirect3Dと違って
上下が反対なはずでは?)
メッシュのUVを反転するのも面倒ですし・・。
仕方ないので一旦CImageに反転した画像を入れて
それをglTexSubImage2Dで書き込んでいます。
http://uproda.2ch-library.com/src/lib091786.zip.shtml ・クラスの名称をVideo→Movieに変更
・GUIで再生/一時停止、シークが出来るようにした
・シーンクラスみたいなのを作りたかった
etc
>>7.37
乙
すっごく今更ではあるんだが、
いっそGL対応するんなら、ffmpeg連動するのはどうかと言ってみるテスツ
いや、大変なのはわかってるけど、
そうするとLinuxやMacOSでも使えて、OpenGL対応が生きるなあと・・・
好き勝手言ってすまん
Visual C++ 2008EEでデバッグ開始コマンドからビルドして実行するとうまくウィンドウが
立ち上がりゲームが動くのに、その後、出力された実行ファイルから起動しようとすると
「問題が発生したため、1stIrrlicht.exe を終了します。 ご不便をおかけして申し訳ありません。」
って出て強制終了されるんですけど、どうしてですか
解決しますた
DLLってみんな何処に置いてる?
膝の上
>>741 開発機ではIrrlichtのbinディレクトリに環境変数でPATH切ってる
たとえば、1面から2面に以降するときのシーンのリセットでどうやるの?
最初から1,2面のリソース全部読んでおいてノードだけ消すの?
それとも、シーンを破棄・生成しなおすの?
後者だとエラー起きるんだけど・・・
745 :
710:2009/01/18(日) 22:23:37 ID:w6uQu1u7
なぜかGLだとポスターフレームが出なかったり
一時停止中にシークすると正しい場所の画像が出なかったりします。
・・まだGLの対応は不完全でした。
何故なんでしょう?CImageに反転した画像を入れて
glTexSubImage2Dすると
テクスチャに直接書き込めるDirect3DやBurning'sVideo
より遅くなるのが、何か関係しているのでしょうか。
>>738 確かに対応しておきたいところです。
でもffmpegの他にも乱立していてどれにすべきか迷います。
746 :
710:2009/01/18(日) 22:55:13 ID:w6uQu1u7
Irrlicht使ってるけどML版作ってるひとありがとう。すごく助かってる。
irrlichtの静的リンクってどうやるのでしょうか?
>>748 もしVCを使っているなら、source\Irrlichtのプロジェクトファイル(ex. Irrlicht9.0.vcproj)を開いてごらん
1.5からはRelease、Debugと並んでStatic libが選べる
Static libを選んでリコンパイルすれば、静的ライブラリの出来上がり
以後はそれをリンクすればおk
あーなるほど!理解できました!ありがとうございます!
751 :
710:2009/01/20(火) 22:03:32 ID:NRdPFAc+
//if (Driver->Version > 101)
// PixelType=GL_UNSIGNED_INT_8_8_8_8_REV;
何でか分かりませんが、COpenGLTexture.cppの
この部分をコメントアウトすると速くなりました!
(ECOLOR_FORMATがECF_A8R8G8B8のとき、OpenGLのPixelTypeを
GL_UNSIGNED_BYTEにする)
720x480の動画でもビデオのFPSが30になるようになりました。
http://uproda.2ch-library.com/src/lib093854.zip.shtml
752 :
710:2009/01/20(火) 23:10:21 ID:NRdPFAc+
まだ
・ファイルによっては正常にシークできない(違うところにシークする)
・GLだとポスターフレームが表示されない
・GLだと一時停止時にシークしたときに画像が更新されないか
違うところの画像が表示される
等の不具合を残しています。まだまだ問題は山積みです・・。
動画をテクスチャにレンダリングする機能ってどんな使い道が
考えられるでしょうか?
使い道も分からずに一か月も何やってんのお前頭おかしいんじゃないの?と思ったが、
とりあえず3Dモデリングした各種モニタ類の表示に使える。TVとか電光掲示板とか。
なにこれ
ファイル選択画面でCPU使用率100%とかふざけてんの?
>>754 たぶんおまいさんのメインループの書き方に問題がある。
チュートリアルのメインループとかはそういうこと考慮していないから、
メインループにSleep(0)とかいれてみ。
1.5のlwoの読み込みでメッシュ表示を試してみたが、どうもポリゴンの裏表が逆になっているようなのだが気のせい?
textureファイル名を絶対パスで指定していると死ぬ orz
モデル側を直せばいいのかもしれないが、何か良い方法はないものか。
Sleep(0)だとCPU使用率100%のままだろ
1以上じゃないと
あの、Irrlichtのノードクラスなどのremove,drop,gradの違いってなんでしょうか?
動作させてもエラー起きてよくわかりません。
あとメッシュはノードが利用中は削除できない?
しかし、irrlichtは使いやすい。便利だ。ありがたや、
ああ、自己解決しました。
node->grab();
node->drop();
と、呼べばエラー起きなかった。すいませんでした。
ちなみに機能は
・DirectX9/OpenGL切り替え
・HGIMG3程度の移動・回転・描画
・リソースの共有自動管理
・HGIMG3のリソース共有をさらに進歩させて自動で同じものを使う
・自動で地面・キャラ・オブジェクトのコリジョン処理
・コリジョンはOBB〜円など
・Bullet物理エンジンによる物理処理
・xfileによるアニメーション
・影
・フォグ
・HSP用にDLL化
が、今できてるとこ。
まだやりたいことあるから次のHSPのバージョン出るころ狙ってる。
誤爆・・・orz
764 :
名前は開発中のものです。:2009/01/25(日) 22:25:33 ID:jW6fSNqp
処理の遅れにかかわらず
1コマずつ進めるのってどうするんですか?
device->getTimer()->stop();
int frameCounter = 0;
while(device->run)
{
...
device->getTimer()->setTime(frameCounter * 16.666666f);
frameCounter++;
...
}
みたいにしてみましたが、stopしてしまったせいか
シーンノードにRotationAnimator設定しているのに動きません。
どうすればいいですか?
realtime()ではじまりと終わり取得して、差分だけSleepじゃだめ?
(コマの意味が分からないから的外れな回答かもしれないけど)
int _fps = 60;
// タイム開始
timeBegin = device->getTimer()->getRealTime();
(処理)
// タイム終了
timeEnd = device->getTimer()->getRealTime();
// タイム差
timeCount = timeEnd-timeBegin;
timeSec = (1000/_fps )-timeCount;
// もし待機時間がプラスなら
// 待機
if ( timeSec > 0 ) {
Sleep( timeSec );
}
とかで_fpsで指定したフレーム/秒を維持させてカウントじゃだめ?
>>765 その方法だと、60フレーム固定にはならないね。
まじで?この方法でgetFPS()で60って出てたからいいのかと思ってた。
あとどうやるんだろ。
ん〜、というかね、sleepってそういう使い方しない方がいいね。
どれだけ止まるかわからないコードを組み込むとデッドロックになる可能性がある。
winの場合特に。
つまり、待機幅を16ms以上いかないようにするとかってこと?
プログラムは難しいね。
自分の環境だけかもしれないけど。
DirectionalLightは座標無効・光源ベクトル有効のはずが座標必須・ベクトル無効になってる。
逆にPointLightは座標必須なのに座標動かない。
今のところ、カメラの視線上(radius分)に平行光源を座標移動させると通常のDirectionaLight動作になってる。
光源周りの実装が不安定?
>>769 いや16msで終わらないときの動作がバラバラになる。
よほど古い環境を使ってなければ対処は不要かもしれないけれど
古い環境でもそれなりに遊べるようにするにはキー入力を含めた
内部的な処理と描画は分けて考えたほうがいいと思う
そうか、単に待機だけじゃなくて描画コストとかも視野にいれなくちゃだめか。
今FPSについて調べたら描画飛ばしてた、ありがとう。
773 :
764:2009/01/27(火) 21:58:40 ID:kWYCqtij
タイマーを手動で進めたいだけなんです・・・
(連番BMP出力が出来るように)
setTimerの後にtickを呼んだりしてみましたが、やっぱりシーンノードのアニメータが
動きません。
dispatchとか送ったりじゃだめなの?
OnAnimate と os::TImer 周りをちょろっと見てみたが、
とりあえず stopTimer() しておけば、getTimer() 時には
setTimer() した値がそのまま流れるから、
>>764 で
アニメーションできそうだけどなあー(1.5 で確認した限り)。
とりあえず、device 作ったらすぐに stopTimer() して、
setTimer(0) したあとに、各種 node を add するようにしてみると
どうだろうか?
776 :
764:2009/01/29(木) 21:43:37 ID:3EGnGNZl
あれ、いろいろやっていたらちゃんと動きました・・・
何でさっき動かなかったんだろ?
stopとsetTimeだけでOKでした。
irrEditのFogって何処で指定するんですか?
デフォルトで色は白みたいですが。
>>777 君はラッキーだ!とてもラッキーだ!
それはまるで青い鳥に逢えた兄弟のように!
さて質問だが知らない
シェーダーを使ってみたい
でも、分からないいいサイトとかサンプルないでしょうか?
irrlicht1ヶ月目でやっと特殊な地面・壁判定できた。
ちょっと拡張したことやろうとすると日本語の情報まったく無いねー。
(チュートリアルの翻訳とかばっかり?)
本家のAPIリファレンスでクラス追って翻訳繰り返すしかないか。
調べたことサイト載せたいけど維持できる自信ねー。長い戦いだぜ。
ぜひ、そのノウハウをブログに書いてくれ
がらんどう状態の翻訳wikiがテンプレに載ってるんだからそっちに書いてくれよ
気が向いたら書いてみる
あ、分かった ありがとう
解決法書けよ
785じゃないけど、こうかな?
モデル読み込んでるとこで、
model->setAnimationSpeed(30);
model->setFrameLoop(0, 60);
node->setTransitionTime( 15 );
ループで、
while(device->run())
{
model->animateJoints();
// biginScene〜endScene
}
ソフトウェアでボーン処理(1.4.2)してるから結構重いと思われ。
モレは、通常は
setJointMode( EJUOR_NONE );
で、ブレンディングが必要なタイミングだけ、
setJointMode( EJUOR_CONTROL );
して、ループで
animateJoints();
するようにして、なんとか凌いでる…。
ところで、まだ1.4.2なんだが、1.5は安定してる?
changes.txt見ると、魅力的な機能やらfixやらがあるんだが、
1.4.1→1.4.2でxの読み込みが超バグって泣かされたんで、躊躇してる…。
1.5普通に使えてるよ。オヌヌメ。
セレクター部分が良く分からないんだけど
IAnimatedMesh で読み込んで IAnimatedMeshSceneNode で描画ノード作る。
判定用に ISceneNode で同じメッシュデータから ITriangleSelector を作る。
そうすると ISceneNode と IAnimatedMeshSceneNode の2つ描画されちゃうよね。
こーゆー場合はどうすればいいの?
理想は1つのNodeで両方管理したい。
792 :
名前は開発中のものです。:2009/02/14(土) 01:33:42 ID:GNk4XXfi
IrrlichtMLの中の人も見ているらしいので、質問させてください。
IrrlichtML1.5のビルドで、「Release - Fast FPU」の時だけ、
1>------ ビルド開始: プロジェクト: Irrlicht, 構成: Release - Fast FPU Win32 ------
1>リンクしています...
1> ライブラリ ..\..\lib\Win32-visualstudio\Irrlicht.lib とオブジェクト ..\..\lib\Win32-visualstudio\Irrlicht.exp を作成中
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Done_Face@4" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Init_FreeType@4" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Load_Glyph@12" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Done_FreeType@4" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_New_Face@16" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Get_Char_Index@8" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Render_Glyph@8" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Set_Pixel_Sizes@12" は未解決です。
1>..\..\bin\Win32-visualstudio\Irrlicht.dll : fatal error LNK1120: 外部参照 8 が未解決です。
というリンクエラーが出ます。
他の構成だとエラーおきずにちゃんとlib/dllが作られます。
FreeTypeのビルドで何か特別な設定とかいるのでしょうか?
ビルド環境は、
VS2008SP1
DirectX November 2008
Vista(32bit)
です。
787
1.4.2→1.5
う〜ん。結構変わってるね。
Mayaスタイルのカメラの初期位置指定ができなくなった
カメラの移動速度単位が変わった
string型に直接イコール演算子でs32とかf32とかを代入できなくなった
setRotationは、現在からの相対角度ではなくて絶対角度を入れる仕様になった
bool HardwareSkinning;
の実装が待ち遠しいぜ
>>794 なるほど……呼び出し規約とは気付きませんでした。
ビルドは通り、サンプルのIMETestの動作は確認しました。
Irrlichtは、ごく最近サンプルを読みながら勉強し始めた所なので
それ以上の動作確認はできていません。
対応ありがとうございます。
久しぶりに有意義な書き込みが増えたね
文字描画はなんとかしてくんないか?
それさえありゃ、使い物になったのに
MLつかった?あっちは文字つかえなかったけ?
>>791 出来ました!ありがとうございます!
普通に
ITriangleSelector Selector = this->Core->Scene->createTriangleSelector( Mesh, Node );
Node->setTriangleSelector( Selector );
Selector->drop();
で出来ました!
OBBとか以前レスあったようなのですが、使いたいのにソースDLできません><
どなたか分かる方いませんか
irrPhysxの作者に1.5対応してくれない?ってメール送ったら対応してくれた
一応報告
SDLからキー入力が奪えない・・・
ジョイスティックは取得できてるからレシーバー継承して書くしかないのだろうか・・・
なんかスマートじゃない実装で欝だわー
併用する時点でスマートじゃない気がするが
どうすればいいぬかーーーーーーづけ!!
おま!irrlichtにもジョイスティックのイベントあるじゃないか!
なぜ教えてくれなかった!
> event.JoystickEvent
しかし、イベントが50ms毎とかなのか検出にムラがあるな・・・
なんとかirrlichtだけでキーボードのpress,down,up,releaseの4つ取得と
ジョイスティック使えるようにできた・・・ながいなー
ビルボードのUVの変え方貼り逃げ
vector2df UVCount, UVSize, UVScale, UVFrame;
// UVの縦横のコマ個数を保存
UVCount = vector2df( 4, 4 );
//UVの縦横の現在のコマを保存
UVFrame = vector2df( 0, 0 );
// 1つあたりのサイズ取得
UVSize.X = Texture->getOriginalSize().Width/UVCount.X;
UVSize.Y = Texture->getOriginalSize().Height/UVCount.Y;
// スケール比
UVScale.X = 1.0f/UVCount.X;
UVScale.Y = 1.0f/UVCount.Y;
// リソースサイズ取得
f32 sizeW = Texture->getOriginalSize().Width;
f32 sizeH = Texture->getOriginalSize().Height;
//
matrix4 mat;
// UV変更
mat = Node->getMaterial( 0 ).getTextureMatrix( 0 ).buildTextureTransform( 0.0f, vector2df( 0.0f ), vector2df( UVSize.X*UVFrame.X, UVSize.Y*UVFrame.Y ), vector2df( UVScale.X, UVScale.Y ) );
// マテリアル再設定
Node->getMaterial( 0 ).setTextureMatrix( 0, mat );
ジョイスティックイベントってずいぶん簡素な感じだけど
イベント起こるたびに使ってるキーの状態取るように自前で書いてねってこと?
Rockdebone2で作ったXファイル、読めはすれども動かん……。
他人様がBlenderで作ったらしい奴はちゃんと動くんだが。
イルリヒトレッスンに正常に読めるように直すやり方が書いてあるけど
>>809 情報thx。
Meshviewerで再保存したら普通に読めた。
頂点数20,000ぐらいのモーション付きxファイルを動かそうとしているのですが、処理が重くて詰まってます。
irrlicht → ver 1.3
exampleの01.HelloWorld → 40fps前後
上記を自前のxファイルに差し替え → 1〜2fps
・そもそもそんな頂点数は無謀?
・PCスペックをどうにかしないと厳しい?
>irrlicht → ver 1.3
なぜ最新版を使わない!(現在1.5
あと01.HelloWorldはレンダラーがソフトウェアになっていたと思うけど
EDT_DIRECT3D9かEDT_OPENGLにした方が・・
・そもそもそんな頂点数は無謀?
そんな事無い。2万ぐらい普通。・・多分。
・PCスペックをどうにかしないと厳しい?
スペック見ないとわかんない
813 :
名前は開発中のものです。:2009/03/23(月) 21:47:29 ID:XcDakVO9
ageとく
EDT_DIRECT3D9にしてみたところ、30fpsぐらいになりました。
これで行けそうな気がしたので現段階では十分です。
頂点数による比較やバージョンによる比較は別途やってみます。
(1.5にすると早くなるのでしょうか)
ありがとうございました。
バグフィックスも多いからアップデートしたほうがいいのでは。
細かいところでAPI仕様が変わりまくるから、思いっきり作りこんでるときはアップデートNGだけどね
試しに使っている分には最新版がよかろう
漏れの場合はバグ潰しの切のいいとこで移行するのが自然かな
バグ潰しと仕様変更の同時進行なんて考えただけで死ねる
819 :
名前は開発中のものです。:2009/04/17(金) 23:45:16 ID:T51/DXpG
あげ
面数が70000とかのメッシュでポリが半分くらい消えます
GPUの限界なのか頂点数や面数の16ビット制限なのかよくわかりませんが
面数20000のメッシュを4個表示するなら欠けが出ないので分割する事にし
2DマップエディタのcsvからXYZ反映したポリ生成してUV割当し任意数に分割とかmqo出力するツールをちょこっと作りました
最初は読み込んだモデルに問題があるのかと思って調べたり
irrlichtが1.5から32ビットメッシュ(頂点数だと思うんですが)に対応と書かれてるから大丈夫なのかと思って試してみたり
svnリポジトリで1.6取ってきて試すと頂点数?が16ビット超えてる的なメッセージが新たに出るようになっててダメなのか使えるのかどっちだー!?と悩んでみたり
そもそもソース見ると16bitしか使えないようにenum値を固定的に返してるように見えたり頭こんがらがりましたが
mqoのフォーマットを理解するいい機会になりましたしデカイマップ用のツールもできて無駄にはならなかったようなそうでもないような
何が言いたいかというと、疲れた、おやすみなさいorz
>そもそもソース見ると16bitしか使えないようにenum値を固定的に返してるように見えたり頭こんがらがりましたが
32bitの頂点インデックス使いたいなら
32bitのインデックスを使うCMeshBufferを自作すればいいんじゃない。
(最初から含まれてはいない?)
1.5で
SSharedMeshBufferというクラス(構造体?)があるのを知ったが
なぜか実装されていないメソッドがたくさんあった。
仕方なくCMeshBufferから移してきたけどなんで実装されてないの?
MikuMikuDanceのPMDファイル読み込むCPMDMeshFileLoader作った
http://www.77c.org/d.php?f=nk7142.zip ・・のだけど、MeshBufferのマテリアルのDiffuseColor
に設定しても面の色が黒いままのはなぜ?
EmissiveColor二設定すると反映されるけど・・
これは自己照明だから使うべきではない気がする
823 :
名前は開発中のものです。:2009/05/03(日) 00:07:18 ID:rlwz5c0a
age
824 :
822:2009/05/04(月) 17:27:55 ID:MvR/yAW0
頂点色で表示されているみたい・・
ならDiffuseColorには何の意味が?
825 :
822:2009/05/10(日) 21:59:15 ID:o8OHU3+s
どうやらディフューズ色に頂点色を使うかマテリアルのDiffuseColorを使うか
指定するための機能が無いみたい・・。
PMDを表示するにはスキンメッシュを扱う機能が必要だけど
Irrlichtのはハードウェアスキニングに対応していなくて遅いようだ。
ブレンドの重みが頂点配列じゃなくて別の配列に設定するようになってるけど
これじゃハードウェアスキニングできないじゃん・・
テクスチャのUVの仕方分からんのだけど・・・
>>826 ?
何をしようとしているの?その書き方だと分からん
3DモデルのBillbordクラスのテクスチャをUVさせたい
UVの分割とかの設定はできてるんだけど移動ができない
上に出てた通り書いてみたんだけど・・・
829 :
名前は開発中のものです。:2009/05/12(火) 23:07:46 ID:HTyyPayL
UVさせたいってどういうことなのか全然わかりません。
このコピペ思い出した。
俺は初めて彼女とMMXした。
「もうそろそろiiyama? 君のI/ODATAを確かめたいんだ。XT」
MITSUMIあうと、彼女のMECはALBATRONとしていた。
緊張した俺は焦り彼女のソケット478をAOpenしようとした。
「ちょ、ちょっとRADEON!何をSis」もう俺は既にエレコム。
Sound Blasterのホックを外すとはちきれそうなPioneerがBarracuda
でもBIOSTARは意外と玄人志向だった。
「恥ずかしいわ。あまりミネベア・・・」
SCSIをTORICAるとKEIANをSOLTEKした痕がアルファデータ。
あそこはSUPERMICROだった。OMEGAドライバも少し鼻についた。
しかし、彼女のCREATIVEを刺激しつつ俺のセレロンを
彼女のSerial-ATAからASUSに這わせると、「FireWire〜ン」
「もう、ATI」「COREGA欲しいんだろ?」「早くリテール」
俺は激しくTSUKUMO。「インテルはいってるっ!IEEE!1394!」
「あぁ・・・もうDell!」
>3DモデルのBillbord
CBillboardSceneNodeのこと?
(シーンマネージャのaddBillboardSceneNodeで使えるやつ)
UVの値を変えてテクスチャがスクロールしているように見せたいなら
ソースのCBillboardSceneNodeをいじって
OnRegisterSceneNode()にアニメーションする処理を追加すればいいんじゃない。
ビルボード表示に使われるデータはverticesというメンバに入ってるから
これのUV値を変えれば
あ、あ、最近3D離れてたら用語の使い方勘違いしてた
UVを移動させたいだった
>>831 ありがとうございます、了解です、試してみます
_. -‐"^`'ー 、
|ヽ-< ヽ_
ー-ァ{」_. \ 'ー、_
,-ゝ" `ー` Z
( 、__ rlii;;;{ヾ=,}
{_ }`ッ-、-、 、_ ,r=、 `ー、) |!
(_ ('t__`!.f.、 ; ``!ソ }テ"`! ';ト-- 、}
ク └`- `-} ヾ' `` !‘.... ν
ク チ ヽ ..ノ .ィ ,.;;;iiii|||||||)
チ ュ `-、/,,!ii||||||||||||||i、_
ュ ィii||||||||||||||!!'''" }
(( ● `|||||||!'''" _... `;
_..., / /|||!'"// _.. ` 、
_..f ./!、 ● )) /l||!'/ --==  ̄ /
_i l_/_. × i i|!〃..-- 、、_ /
(└ィニ、_/- !r;;、 l i!' ,;ii||||||||||||||||iii;ソ
×/``ニ`ヾ!||||i;、,,.. ,ィ!ニヾ!!|||||||||||||||||||!'
/ し=" `ーィi|||||i;,、<〃!、ヽ 〉||||||||||||||||/
/ / (/、 /||||||||||||||||ii;;;i、ソ||||||||||||||||/
/ ヽ-'ー"T||||||||||||||||||||||||||||||||||||||||||/
``'''〃||||||||||||||||||||||||||||||/{_
`''''〃==ミ;|||||||||||||/ii;、ヽ、_
OnAnimate() が悲しそうな目でこちらを見ています
どういうことかね 言ってみたまえ
836 :
名前は開発中のものです。:2009/06/09(火) 22:41:53 ID:3tYaXLEU
1.6まだー?ハードウェアスキニングは?
最近、SVNコミットの勢いが落ち気味だったのでなんとも
>>836 どうせ現バージョンでも使いこなしてないんだろ?
フィードバックもする気のない癖に次バージョン強請んなよ
えっびふっらいっ
840 :
名前は開発中のものです。:2009/07/09(木) 00:01:19 ID:PsfWgwwi
あげ
841 :
名前は開発中のものです。:2009/07/16(木) 22:29:22 ID:dmzlQp5y
Irrlicht使って作られた面白いゲームってどんなのがある?
>>841 公式フォーラムあたりにいって自分で調べてみようよ
>>844 おぉ、日本のエロゲ初かもしれない
にしても、デモ版の難易度が高めだわ
クリティカル率が高くて先に進めないw
846 :
名前は開発中のものです。:2009/08/18(火) 02:49:48 ID:7A3KIEsx
あげ
IrrKlang.NETで日本語のファイルが読み込めないのは仕様ですか?
SVN
#define _IRR_WCHAR_FILESYSTEMをコメントアウトすると日本語ファイルパスが通らなくなる
原因不明
なぜここで報告するの?
>>849 マルチランゲージサポートのためのオプションを外してコンパイルしたらマルチランゲージ環境で不具合が出て当然だと思うんだ
2バイト文字ファイルシステムって名前なんだから、はずしたら日本語ファイルパスが通らなくなるのは別におかしな話でもないよね
ごめん、逆だった
元々コメントアウトされてるのを有効にすると起こるんです
さっきコンパイルしたらc16が定義されてませんで通らなくなった
それはほんとにコメントだったと考えるんだ
855 :
名前は開発中のものです。:2009/10/11(日) 23:10:05 ID:cpsVifcS
Irrlicht1.6がリリースされたというのに、ここで何も動きが無いなんて
どういうことなの・・
856 :
名前は開発中のものです。:2009/10/11(日) 23:15:06 ID:cpsVifcS
・New mesh and image loaders (.PLY mesh loader, .RGB, .RGBA, .SGI, .INT, and .INTA textures)
・New Material properties ColorMask, Mipmap LOD, Depth test function, AlphaToCoverage, selective Anti-Aliasing
・New console device and possibility to create different devices from the same library
・OverrideMaterial for changing material properties globally
・New Filesystem with tighter integration of different archive types
・Improved Software rendering engine
1.5.1のときも・・
858 :
名前は開発中のものです。:2009/11/03(火) 22:05:11 ID:1pHbuKqw
age
sage
1.6ML待ち
1.7良い感じだな
複数のアニメーションXファイルを読み込んで、それを一つのモデルで切り替えて使うってのはどうすればいいんだろうか?
全てのアニメーションを一つのファイルに含めてsetFrameLoopで制御するのはできるんだが……
>>862 自己解決。SetMeshで指定するだけなんだね
アニメーションメッシュの補間ってどうやればいいんだ・・・
・・スキンメッシュ?
環境にもよるとおもうが、Irrlicht搭載のarrayだの、listだのmapだのが、
VC標準のSTLより3倍くらい速いきがするのだが、信用していいのだろうか・・・
活性化きぼんage
むしろSTLが遅い
どうせ最適化かけてないってオチだろ
標準のSTLはDebugとReleaseで桁違いの速度変わるからな
STLはDebugとReleaseじゃ3倍どころか10倍以上遅くなるっしょ
特にVCのSTLは遅いからIrrlicht搭載のarrayとかが2〜3倍速くても不自然じゃないよ
めんどいからIrrlichtとの比較ベンチは取ってないけど
突っ込まれそうだから補足
Irrlichtのコンテナは標準STLとしての全機能は実装してなかったり
速度求めて書いてるはずだからそもそも標準のSTLより速いはず
std::map<int,int>とirr::core::map<int,int>で実測してみた。
テストコードは0〜400000の数値をinsertしてerase/removeするだけの単純なものだけど、
stl版350ms前後、irr版260ms前後で、いちおうirr版のほうが速かった。
まあ、このケースだけではトータルでどの程度差があるのかは分からん。
vectorとarrayなんかはほとんど変わらない気がする。
874 :
866:2009/12/19(土) 08:54:17 ID:9hhNdrVU
>>868 たしかに・・・その辺り考えてなかた・・・
>>870 たしかに・・・OutputDebugStringする為にdebugでしかしてなかた・・・
>>873 実測thx
あとは_SECURE_SCLとか
そもそも本当に速度を気にするなら動的なコンテナ使うなって話ではある
IrrlichtML1.6が待ちきれなかったから
比較ツールでマージして自分で作っちゃった。
で?
一応動くみたいだからこれでお茶を濁そう
と思った。
告知thx
ヘルプがCHMじゃなくて普通のHTMLになってる!!
初心者です。
irrEditでterrainを作って利用したいのですが、irrEdit上でterrianを追加しても表示されません。
PropertiesのVisibleにはチェックが入っています。
ここを見ればわかる、というサイトを教えて頂くだけでも結構ですので、よろしくお願いいたします。
質問です。
1.61のチュートリアルのHello World! をVC++2008EEでコンパイルすると、
IrrlichtDevice *device =createDevice(EDT_SOFTWARE, dimension2d<s32>(512, 384), 16,false, false, false, 0);
この部分でコンパイルエラーが出たので、いろいろ調べて
IrrlichtDevice *device =createDevice(EDT_SOFTWARE, dimension2d<u32>(512, 384), 16,false, false, false, 0);
のように、符号無しのu32にすると解消されたんですが、これは1.61になってからの仕様変更なんでしょうか?
以前はs32を指定して通っていたと思うんですが。
1.6と1.6.1見てみたけど、s32になってるのはtutorial.htmlの内容で
実際のサンプルコードはu32だね。
1.5だと両方s32だね
885 :
876:2010/01/29(金) 22:38:38 ID:s99y+39E
Valve Hammer Editorで作成したbspを読み込ませると、
ヘッダーエラーが出るんですが、これってhalf-life用の
bspだからなんでしょうか?
quark3用のbspはValve Hammer Editorでは作れない?
質問です。
irrEditで作成したirrファイルは商用利用可能みたいですが、
サウンド機能を使用していても大丈夫でしょうか?
irrKlangをirrEdit内で使用しているみたいですが、
irrKlangは商用不可だそうなので。
質問です。
ノード同士の当たり判定を調べる関数は何ですか?
>>889 ノード同士ではなくオブジェクトどうしでした。
>>889 衝突を検知したいならgContactAddedCallbackやgContactProcessedCallbackなどを使うと良いかと
詳しくはリファレンスを。
892 :
889:2010/02/06(土) 22:57:14 ID:xeWNCPCE
簡単なことかもしれませんが質問です。
テクスチャを拡大せず、繰り返し適用するにはどうしたらいいでしょうか?
OpenGLでいうところの
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
に相当する機能を探しています。
setEventReceiver()でレシーバーをセットすると、FPSカメラを使用したとき視点や位置の移動ができなくなってしまいます。
これを回避する方法はあるのでしょうか?
>>893 ドキュメントを見ると、SMaterialLayer(SMaterialのメンバ)から設定できるっぽい
TextureWrapU、TextureWrapVがある。
>>895 私の環境では、恐らくバージョン違いのためTextureWrapU, VではなくTextureWrapでしたが
どうやらこれらはリピートがデフォのようですね。UV座標を変えただけでうまくいきました。
回答ありがとうございました
>>894 自己解決しました。
お騒がせしてすみませんでした。
>>889 >>891でスレ違いの回答をしてしまいました…。
サンプル7のcollisionを参考にしてください。
質問です。
Irrlichtを使ってオンラインで対戦できるゲームを作ろうと思っています。
通信はWinSockあたりを使おうと思っているのですが、
ウィンドウメッセージを自分で処理したい部分があったときはどのようにすればいいのでしょうか?
ウィンドウを最初からあるのと別にもう1つ作りたいんですが、どうやればできますか?
>>899 Win32APIは門外漢だけど
IVideoDriver::getExposedVideoDataで、Windowsならウィンドウハンドル(HWND)が取得できる。これで何とかならない?
ダメなら、Irrlichtのソースコードを編集するしかないのかも。あるいはirrNet、irrNetLiteを使うとか。
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=18263 >>900 ドキュメントにIVideoDriver::beginSceneにはSExposedVideoDataへの参照を指定する機能があるみたい。
これに(Windowsなら)別ウィンドウのHWNDの入ったSExposedVideoDataを指定してやれば良さそうだけど・・・
どうやって作れば?
>>900 複数画面を表示したいだけなら、ひとつのウィンドウを分割してもいいかもしれない。
カメラを複数作って、各カメラごとにsetViewPortで分割後の画面の大きさを指定すれば
いけると思う。
3dsとobj形式のマップを表示したいのですがどうすればできますか?
Irrlicht A GoGOにはbsp形式の場合しか載っていなかったので分かりません…
念のためniko のblog
Irrlicht 1.7.1 and irrKlang 1.3.0 out now
ttp://www.irrlicht3d.org/pivot/entry.php?id=1015 > One afternoon, two releases: I just packaged and uploaded
> Irrlicht 1.7.1 as well as irrKlang 1.3.0.
> All users of irrlicht 1.7 should update to this new version,
> because it also fixes a severe bug in the aabbox collision test
> which causes reduced rendering speed.
> Same for the irrKlang release: It doesn't only add the often
> requested possibility to capture the mixed output audio data,
> but also fixes a bug causing irrKlang not to work on 64 bit linux
> systems.
Xファイルのアニメーションが再生できません。
ビューワではきちんと再生できています。
しかし、アニメーションを再生するプログラムを実行してもまったく動きません。
IAnimatedMesh* Mesh = smgr->getMesh("media/hoge.x");
IAnimatedMeshSceneNode* = smgr->addAnimatedMeshSceneNode(Mesh);
この後に何か処理が必要なのでしょうか?
ちなみにアニメーションは1秒間隔で全部で60フレームあります。
>>907 補足です。
モデル自体は表示されているのですがアニメーションが再生されないということです。
>>907 こんな感じでできるかも
間違っていたらごめん(3年前のソースから持ってきたので)
mesh->setAnimationSpeed(35);
mesh->setFrameLoop(0, 40);
Irrlicht Leesonに載っているやり方でSDLでのキー検知のプログラムを書いたのですが、
LINK : fatal error LNK1561: エントリー ポイントを定義しなければなりません。
と出てしまいます。
どうすれば解決できるのでしょうか?
エスパーするとlibの登録し忘れだと思う
DXライブラリとIrrlichtを同時に使用しようとするとライブラリが競合してしまって、DXライブラリのページを参考に
プロジェクトのプロパティを変更すると
general error c101008a:が出てしまってコンパイルが通りません。
DXライブラリとIrrlichtってどうやったら同時に使用できますか?
Macで使ってるんだけど、Irrlichtの描画機能を Cocoa の GUI と併用して使いたくて、
NSOpenGLView 内で描写するように MyIrrDeviceMacOSX を作ってるんだが、中々大変だ。
でも先は見えてきたんで、多分作れるようだ。
>>912 ソリューションのクリーンを行ったら無事動きました。
Irrluaってもう更新されてないんだな。JIrrとかIrrlicht.NETと同様に・・
手軽にIrrlichtでスクリプトが使えたらいいなと思ったのに
お久しぶりのIrrlichtML 1.7.1 Unicode Widows専用
ttp://etwas.wolfish.org/Irrlicht/irrlichtml.html EditBox MultiiLineモードの挙動が怪しかったり、静的リンクがエラー起こしたり
CGUITTFontをDLLにマージするとメモリリークしたりしますが
NalinさんのおかげでVista、Win7でのサロゲートペア入力にも対応しました
1.6系は文字コードの関係で日本語でのANSIコンパイル壊滅。従ってスキップ
1.7系からはUnicode対応が進んだため文字化けは90%くらい解消
918 :
名前は開発中のものです。:2010/04/17(土) 14:20:28 ID:162MfgCk
>>917 バグっぽいの見つけました
同じフォントだけどサイズの違うフォントを作成して、
それらを同一フレームですべて使って描画すると、何故か描画位置が全て上にずれます。
(IrrlichtML付属のIMETestも、最初の1フレームだけ描画位置が上にずれています)
ソースコードを弄って読み込み済みのグリフの再利用をやめさせれば、一応は治りますが
こんな適当な修正だとメモリリークしますね。
(連想配列のc_facesをコメントアウトした後、エラーの出る部分を修正しただけ)
920 :
918:2010/04/19(月) 12:38:54 ID:DMP/xBFr
>>919 IrrlichtML-1.7.1に付属しているのを使っています。埋込みです。
ML1.7.1が出るまで、フォーラムにあったCGUITTFontを使っていましたが、
そちらでも同じ症状がありました。
http://www.dotup.org/uploda/www.dotup.org822653.zip.html スクリーンショットです。
両方のフォントを使うと、描画時にhcenter = true, vcenter = true
にした文字の位置がちょっと下にずれます。描画内容によってはもっとずれることもあるようです。
ソースはつけましたが、さっき実行してみたところ再現できず・・なぜでしょうか。
早速修正してくれました(私はまだ未評価)。上記URLからDLして下さい。
以下、そのときの書き込みを適当翻訳。"as"みたいな副詞は苦手です。
>オゥケイ、その問題を修正しました。スレ1のダウンロードリンクを新バージョンに更新してあります。
>
>この問題は私がFT_Faceオブジェクトをキャッシュしていたことにあります。
>より大きなフォントをロードしたときに、FT_Faceのいくつかの領域が上書きされていました。
>このため、フォント位置を計算するときにエラーを引き起こしました。
>私はfaceサイズをセットするため、サイズ計算を実行する前に2〜3つFreeType関数を追加しました。
>これら関数は、この問題に関係した部分で動作します。
>願わくば、FT_Faceをキャッシュするのと、フォントサイズ毎にこれを新規作成するのでは、どちらが良いかを判断したいです。
>これは、パフォーマンス改善のため、読み込み、描画コードを書き直す際にでもやろうと思います。
>
>------
>更新:
>実は、描画コードをどう改良するか思案しています。もちろん、解決策は描画呼び出しの一括処理(バッチ)です。
>通常のIGUIFontは単一のビットマップを使い、video driverのdraw2DImageBatch()を利用しています。
>
>私は解決策に関して、全レンダリング済グリフを保持するために空のITextureを作成する方向で検討しています。
>「新しいグリフがロードされるときは常に、自力でこれをITextureに追加し、グリフのインデックスを格納するためにmapを更新する」と言う流れです。
>これは、グリフ読み込みが遅くなる代わりに、ビルトインのIGUIFontクラスと同じくらい早い描画になります。
>
>あるいは、「個々の文字ごとに一括描画を行う」と言う、簡単ですが動作の遅い解決策もあります(例:aだけ、bだけ、cだけ、と言う単位で、いっぺんに描画)
>ひょっとすると、1つ目の方法と比べてエラーが少ないかもしれません。
>しかし、文字ごとにテクスチャを用意し、描画するのに状態変更が必要になる限り、1つ目の方法より遅くなります。
>
>誰か他の考えはありませんか?
923 :
名前は開発中のものです。:2010/04/28(水) 00:48:51 ID:u76YujbC
820くらいで、面数というか、インデックスについて、16bit制限の話をされていますが、
その後、どういう状況になっているか、ご存知の方はいらっしゃいませんでしょうか?
当方でも、STLフォーマットのファイルを読み込んで、描画しようとしていますが、
14万ほどのvertex情報があり、1/7程度しか描画されていない状況です。
32bit対応できそうな、キーワードとしてはIDynamicMeshBufferかなぁ、と
思い、試行錯誤してみたのですが、ファイルを読み込んで、、、という
形にはたどり着けませんでした、、、
924 :
918:2010/04/29(木) 22:13:17 ID:QeXnvPHr
>>922 実行してみて、修正されたの確認しました。
ありがとうございました!
しかし、デバッグ実行してみるとメモリリークが確認できます。ファイル名と行数は出ません。
「CGUITTFontをマージするとメモリリークする」と書いてありましたが、これのことなんでしょうか
Detected memory leaks!
Dumping objects ->
{1792} normal block at 0x04910040, 1053448 bytes long.
Data: < > 00 CD CD CD 00 00 00 00 00 00 00 00 CD CD CD CD
{1773} normal block at 0x04800040, 1053448 bytes long.
Data: < > 00 CD CD CD 00 00 00 00 00 00 00 00 CD CD CD CD
Object dump complete.
>>923 CSTLMeshFileLoaderで"SMeshBuffer"になっている部分を、
"CDynamicMeshBuffer"に変えたらもしかしたら動くかもしれません。試していませんが。
(勿論コンストラクタのindexTypeはEIT_32BITにする)
>>924 はい、如何にもその通りです。
新しいCGUITTFontは本体への組み込みを想定していないようです。
作者本人も、「本体を弄る必要はないのだからプロジェクト側で使ってくれ」と言う趣向の事を発言しています。
そのため、デフォルトでは_IRR_COMPILE_WITH_CGUITTFONT_を無効にして、使用は非推奨としました。
28日更新分:gccでirrUString.hがエラーになる不具合の修正(またまた他力本願です)
質問です。
3Dゲームで、ビューポートの中心(この言い方があっているかどうかはわかりませんが)を画面の特定の位置に移動させたいのですが、
これはどうやればいいのでしょうか?
具体的には、、800x480の画面から左640x480を切り取ったような表示を行いたいのですが。
>>927 D3DXMatrixPerspectiveOffCenterLH
>>928 Irrlichtの機能では可能でしょうか?
すみません解決しました
931 :
名前は開発中のものです。:2010/05/25(火) 21:39:24 ID:AoE41w8A
GUIで発生したイベントは、親のGUI Elementへどんどん上っていくことを
つい最近になって知った。
ウィンドウ内のボタンを押したときにFileOpenDialogが表示されて、
ファイルを選択するとEditBoxに反映されるようなものを作りたいんだけど、
ウィンドウのクラスにEditBoxの内容を設定できるメソッドを追加しておいて、
イベントレシーバーで受け取る→設定するしかないのかな
932 :
名前は開発中のものです。:2010/05/28(金) 00:08:30 ID:6L0xpmPe
オレオレ仕様のIrrlicht、Gitで管理したら楽かも
>>2 のサウンド未搭載 (別プロジェクト有) の別プロジェクトって何のことでしょうか?
irrKlang
FileOpenDialogでディレクトリ開いたときに
勝手に作業ディレクトリ変えるのやめて欲しいんだけど
開く前に作業ディレクトリ覚えておいて後で戻すとか面倒すぎる
好きに作り変えればいいよ
黙々とDirectXを学び続けてきたがIrrlichtチュートリアルをざっと見て驚いたわ
チュートリアル2でもうカメラの操作ができるってすごいな
クオータニオン使って一生懸命カメラを移動させてた俺が馬鹿みたいじゃないか
そうですね!
そんなに使いやすいの?
そんなことをここで確認してる人には到底使えないと思う。
Irrに限らず自分で試そうとしない奴はライブラリなんて使えないと思うな
フォーラムで不思議な質問をしているestamisuさんを見て反面教師にするといい
Irrlicht Unofficial Docsを復活させたい
何で消えちゃったの?
大人の事情
Irrlicht Unofficial Docsってもう内容拾えない?
自分で訳した分だけでも再利用しようと思うんだが・・・。
インターネットアーカイブで拾った記事を再編集してうpしてもいい?
だれにいってるんだ?
著作権持ってるやつに許可取ってるんだったら問題ないだろ?
この場合の著作権は誰になるの?
元記事の作成者かと
一般に公表してるからアーカイブにおさってるんだろうから
引用であることを明示すればいいのか?
ってもしかして翻訳のあれ?
951 :
名前は開発中のものです。:2010/07/17(土) 21:58:55 ID:Vd7QW5RT
なんとなくあげ
Irrlichtはzlibライセンスだから改変/再配布は問題なし
953 :
名前は開発中のものです。:2010/07/23(金) 20:19:29 ID:EfARQSYc
IrrlichtのXMLWriterで、テキストを出力した後タブの位置が変になる・・・何で?
</data>の部分にタブが挿入されない。仕様?
<a>
<data>
hoge
hoge
</data>
</a>
Irrlichtのライバルってどんなエンジンがありますか?
957 :
名前は開発中のものです。:2010/07/30(金) 22:23:43 ID:IpW406kN
自分が欲しいだけだろ
>>957 どうも
希望があればレンタルwikiを用意しますが
とりあえず
>>956のwikiでいいと思ってます。
作業の流れとしてはこんな感じですかね。
1. Irrlicht Unofficial Docsの記事を拾う
↓
2. 現時点までの記事をwebに残せる形で整形する
↓
3. 新たなwikiに記事を設置する
1の時点で記事をしっかり拾っておかないと
3の翻訳作業で無駄が発生するので確認をとっています
2の作業を行うのは
>>956のwikiよりレンタルwebのほうが寿命が長いでしょうから
今までの作業を一度保存する意味で行います。
>>958 自分以外の需要は正直不安ですね
当時と違って今ではそれなりに認知度もあり紹介サイトも増えたので
わざわざ翻訳記事を作る意味があるのか・・・
さらに言うと記事を翻訳したいという需要も微妙なんですよね
wiki希望する方いますか?
もし弄りたいなら今ある分からwikiにうつします
そでなければ今ある分の整理を優先します
ゲムデブ使ってあげようぜ
テンプレ案です
リンク切れの修正のみ
避難所がなくなったのでスレへのリンクは削除しています
あっちの過去ログをもってる人がいたらうpしてください
>>1(前スレのURL部分は書き換える)
>>2 >>964 リンク切れを修正しただけなので
スレの中で出てきた有力なサイトや
でてないけど追加したいサイトなどがあれば言ってください
候補としては
http://lesson.ifdef.jp/ は追加しておきたいなと思っています
そのほかにもニコニコ動画やyoutubeにアップされている
動画へのリンクがあれば新規ではじめる人がIrrlichtで何が
できるのか把握するのに便利でアピールにもなると思っています
いい動画があれば教えてください
Irrlicht標準のGUIって機能がまだまだ貧弱な気がしてしまう
CEGUIとか使ったほうがいいかな
970
972 :
名前は開発中のものです。:2010/08/28(土) 03:52:24 ID:pa8GSHHm
irredit,GtkRadiant,ValveHammerEditorいろいろマップエディタあって困っちゃう
google sketchupも捨てがたい
イルリッヒたん@wikiの更新がとまってるし、パスが公開されてないし、
今度新しくirrlichtのwikiでも作ろうかな
974 :
名前は開発中のものです。:2010/09/06(月) 17:53:51 ID:nfNc1ggB
Irrlicht用の使いやすいGUIエディターって無いですか
付属のツールは使いものにならない感じなので
Irrlicht Go Goを見ながら触り始めてみたんですど、これってFPSの調整のうまいやり方ってあるんでしょうか?
void FPScontrol(int tFPS, IVideoDriver *Driver, IrrlichtDevice *Device){
static int FPSflag=0;
static int Wait=0;
int fps = Driver->getFPS();
if(FPSflag == 0){
Wait=(int)(1000.0/tFPS-1000/(double)fps);
}
if(Wait > 0 ){
Device->sleep(Wait);
FPSflag=1;
}
}
こんな関数作ってFPSがtFPSになるようにさせようと思ったんですけれど、実行の最初1秒ぐらいは素のスピードのままなんです。
976 :
名前は開発中のものです。:2010/09/17(金) 21:33:28 ID:+ZBMJu2I
>>975 どういうやり方をしているのか分からないけど、
なんかすごく間違ってる気がする
getFPS()の戻り値を使ってFPS調整をしようとしているところとか
sleepの精度を当てにしているところとか。(指定した時間で終わるとは限らない)
関数の中でstaticは使わないに越したことはない(俺の主観だけど)。
getFPS()は1.5秒ごとに更新しているらしいから、
>実行の最初1秒ぐらいは素のスピードのままなんです。
これは当たり前。
Irrlicht LessonにFPS調整のやり方載ってたぞ
まぁ垂直同期を有効にしてFPS調整しないのもひとつの手だが
>>976 どうも。
Irrlicht Lessonはさっき見れなかったので潰れたのかと思いました。
見てみます。
FPS調整のついでに聞きたいんですが、大して処理しているわけでもないのに、CPUの使用率が高くなる現象は
抑えることはできないんでしょうか?
>>978 分かりました。
素早い返事ありがとうございます。
サンプルを実行して思ったんだけど、FPSを固定せずにCPUの使用率が高いプログラムであることになにか意味あるの?
これぐらいの速度で処理できますよって示すためなのかな。
学術的シミュレーションとか。
海外ではFPSを固定しないのが普通
CPU使用率が低いほど良いなんて思ってるのは一部の日本人だけ
モデリングソフトで立方体1個画面にあるだけでGPUもCPUもフル回転とかいや過ぎます><
全力で描画されてる立方体だ大切にしてやれ
次スレ落ちてた
ちょwww
埋まってから立てろよ
過疎板初心者か?
ワロタ
派生のLightfeather試してみたけど説明がわかりづらいね
Irrlichtのほうが気楽だ