1read 100read
2011年10月1期ゲ製作技術【3Dエンジン】Irrlicht初心者質問スレその4 TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
なぜVBは扱いが低いのか
ロックマンワールド5をFC風にリメイク Part1
プログラマはユーザーの評価に偉そうに反論するな
プレイヤーの自由と作者の自由


【3Dエンジン】Irrlicht初心者質問スレその4


1 :10/09/21 〜 最終レス :11/12/11
zlibライセンスでクロスプラットホームなゲームライブラリ、Irrlichtのスレです。
※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近Irrlichtを始めたばかり
3.SDKを見ても、Googleで検索しても、エキサイト翻訳でもいまいち理解できない人
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「英語読め」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する人 】
・ どんな事で躓いているのか明確にする。
・ 長くならないなら躓いている部分のコードを晒してみてください。
・ 解決した場合、お礼を言うのは当然ですが、何をどうしたら解決したかを明確に書くこと。
過去スレ
3 http://hibari.2ch.net/test/read.cgi/gamedev/1281085813
2 http://hibari.2ch.net/test/read.cgi/gamedev/1159998619/
1 http://pc8.2ch.net/test/read.cgi/tech/1104179696/

2 :
・特徴
zlibライセンス(組込、商利用自由)
マルチプラットホーム(Win、Linux、X-BOX...)
高速描画
DirectX9c、DirectX8、OpenGL、ソフトウェアドライバ2種、NULLデバイス
C++クラスによる初心者にも分かりやすいコーディングスタイル
キー・マウス入力対応(パッド不可)
BSPマップ対応
スキン・ボーンアニメーション対応
パーティクル、スカイドーム、テライン、ビルボード対応
コリジョン対応
屋内と屋外をシームレスに管理できるシーンマネージャー内蔵
XMLパーサー内臓
サウンド未搭載(別プロジェクト有)
ネットワーク未搭載(要各種ライブラリ)
物理エンジン未搭載(要各種ライブラリ)

3 :
・公式サイト
Irrlicht Engine - A free open source 3d engine
http://irrlicht.sourceforge.net/
フォーラム
http://irrlicht.sourceforge.net/phpBB2/
・翻訳ドキュメント
Irrlicht 非公式ドキュメント
http://wiki.game-develop.com/index.php?irrlicht
・解説サイト
Irrlicht A GoGo
http://www.zgock-lab.net/irrlicht/
イルリッヒたん@Wiki
http://www6.atwiki.jp/t-na/

4 :
IrrLicht Lesson
http://lesson.ifdef.jp/
・ゲームエンジン比較・評価
http://wiki.game-develop.com/index.php?%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2F%A5%E9%A5%A4%A5%D6%A5%E9%A5%EA%2F%C8%E6%B3%D3
・IrrlichtでSTGを最初からみんなで作るスレに挑戦
http://irrlichtstg.ifdef.jp/
・Irrlichtいろいろ
http://f30.aaa.livedoor.jp/~kimkim/VC/DirectX3D/irrlicht_etc.html
日本使用で躓くと思われるものを捕捉。必要に応じて使い分けて。
・2バイト文字表示クラス(Irrlicht A GoGo)
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=3995
・GUIパーツで2バイト入力を実現するサブバージョン(要リコンパイル)
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=38338
・使用例(動画)
月桂樹Gekkeiju online
http://www.youtube.com/watch?v=wh3HBUx6s3w
Miku in Motion
http://www.youtube.com/watch?v=J6tV0Hr4Koc
Irrlicht + Augmented Reality
http://www.youtube.com/watch?v=_cl2rWZzGLY

5 :
何とか立てれた。
これ使ってる人に質問、3Dモデルにアニメーションさせるとき、何で作って、どういう形式で使ってる?

6 :
>>5
2Dばかりで3Dは殆どやってないから分からないけど、
作るソフトはBlenderでどう?

7 :
ん?
>>2
>キー・マウス入力対応(パッド不可)
>XMLパーサー内臓
ジョイパッドは最近のVerだと対応してたはず
内臓ってw

8 :
>>6-7
アドバイスありがとう。
blendファイルが直接読めるわけではないみたいだし、アニメーションさせようと思ったら対応形式にあわせて
それようにエクスポーター使わないとダメっぽいんだけど、スクリプトの動きに関してあんまりいい話聞かないんだよね。
前スレのテンプレそのままコピったら、そうなってしまった。スマン。

9 :
IrrlichtML
http://etwas.wolfish.org/Irrlicht/irrlichtml.html

10 :
Irrlicht/Blender Exporter v0.4
http://code.google.com/p/tubras/wiki/irrb
GoogleCodeにIrrlicht関連のプロジェクトって結構たくさんあるみたい

11 :
武器持たせるのどうすればおk?
examplesに入っとらんぞ

12 :
xファイルでのアニメーションはMD2みたいにモーション名指定は無理なの?
現状SetFrameしかないのかな
しかもSetFrame使うと全部頂点書き出しさないと、xファイルがでかくなるorz

13 :
Irrlicht1.7.1を使っていて
なぜか桁の大きいdouble型変数の演算時に小数部が切り捨てられていたので、原因を探ってみたところ
どうやら
irr::createDeviceの第一引数のレンダリング環境を設定するところでDirectX(EDT_DIRECT3D8及びEDT_DIRECT3D9)を指定するとこの現象が起きるようでした。
createDeviceを使用しなかったり、DirectX以外のOpenGLやソフトウェアレンダラを指定するとこの現象は起きませんでした。
原因や解決法を教えていただきたいです。。
C++自体初心者なので全く関係の無いところで勘違いしてるのかもしれませんが…
なお以下のコードで現象を確認しました(test03が10000000.5になって欲しいのに10000000.0になる)
#include <irrlicht.h>
#include <windows.h>
#pragma comment(lib, "Irrlicht.lib")
using namespace irr;
using namespace core;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
IrrlichtDevice *device =createDevice(video::EDT_DIRECT3D9, dimension2d<u32>(640, 480), 16, false, false, false, 0);
double test01=10000000;
double test02 = 0.5;
double test03=test01+test02;
device->drop();
return 0;
}

14 :
連レスすみません。
上の現象はDebugで発生しました。
Releaseでビルドすると問題ないようです。

15 :
>>13
普通にDirect3Dデバイスを作ると、高速化のために内部で浮動小数点演算の精度が落とされる。
これを防ぐにはデバイス作成時にD3DCREATE_FPU_PRESERVEを指定すればいいんだけど、
irrlichtで出来るかはよく知らない。
ttp://msdn.microsoft.com/ja-jp/library/cc324349.aspx

16 :
>>13
調べた。
irr::SIrrlichtCreationParameters::HighPrecisionFPU に true を設定して
rr::createDeviceEx を呼べばいい。
そうすればD3DCREATE_FPU_PRESERVEを使ってくれる。

17 :
>>15,16
素早い回答ありがとうございます。
早速試してみます!

18 :
お教えいただいた方法で見事問題が解決されました。
本当にありがとうございました!

19 :
みんな、公式のフォーラムは利用しているのかな

20 :
>>19
検索して読む程度・・・。

21 :
自分用に改造を加えたIrrlichtを
git svnで管理すると便利という事に最近まで気がつかなかった。
本家で変更があっても追いつくのが大分楽になった

22 :
あげ

23 :
>>12
これはxファイルとの相性が悪い。だからやめた

24 :
何故そこまでxファイルに拘る?

25 :
>>23
モルダー、あなた憑かれてるのよ

26 :
Irrlicht-1.7.2リリース記念火気庫ヽ( ´∀`)ノ ボッ

27 :
知らなかった
バグフィックスのみか、早速DLしてみよう

28 :
戻り値がIAbc*のgetAbcって基本的に同じ値が返ってきてdropする必要はないってことだよね?
getTimerとか複製できなきゃタイマー機能としてはあまり役に立たないような

29 :
>>28
つ 付属のドキュメント
メソッドごとにdropすべきか書いてある
drop忘れててもVisualStudioのメモリリーク検出機能使えば分かるけど
タイマー複製したいって何で?

30 :
ごめん、役に立たないと言ったのは見当違いで
同時に複数計測したい場合に、個別にstart stopできた方がいいんじゃないかって思っただけ

31 :
このエンジン好きなんだが3dのアニメーションだけはどうしたらいいかわからん
まともにやりとりできるフォーマットがなさすぎる

32 :
>>31
何のソフトでアニメーション作ってるん?

33 :
いまはBlender2.49+Ogremeshエクスポーター
過去に試した組み合わせは(1年前〜現在。各エクスポート最新とは限らない)
 Irrlicht1.7.1
  Modtool6.01
   DirectX    export△ Irrlicht Load △ モデル・モーションとテクスチャUVがそれぞれ左右反転
   OgreMesh   export×(クラッシュ)
  Blender2.4.9
   DirectX    export△ Irrlicht Load × 読み込みエラー
   Ogremesh   export△ Irrlicht Load △ 頂点抜けが起きることがある。エクスポートが不安定
b3d(Blitz3dフォーマット)がいいよって意見もみたけどエクスポーターが見つけられず
fragMOTIONなどの別ツール経由は・・・ちょっと非現実的かな。手間的に考えて
Ogremeshエクスポーターのエラーに悩みつつIrrmeshの完成を待ちわびています
ネットではPMD+BVHで走らせてる方もいらっしゃるみたいだね

34 :
>>33
ttp://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=222901#222901
b3dならここにあるみたいだよ。使ってみたら?

35 :
過疎ってるなあ
もっと認知度を上げられないものだろうか

36 :
IrrlichtにしろOrge3DにしろUnrealEngineにしろなぜか人がいないよね。
なぜなんだろう。そんなにゲームが作りたい人がいないのか。
ゲーム作ろうと思ったらここらのゲームエンジンを使わざるを得ないのに。

37 :
そもそも3Dはマップ作りにしろ、カメラを含むシーンにしろ、モデルにしろ、アニメーションのモーションにしろ。
すべての敷居が2Dの比じゃないからな。
出来るやつも少ないし。まだまだ希少。
それらがすべて出来る前提のエンジンなんてなかなか流行らないだろーな。

38 :
3Dをやっている人は探せばいるでしょう
Irrlichtのような3Dエンジンを使おう、とは思いつかないだけで

39 :
例えば生のOpenGL使って作れるゲームなんてたかがしれてるよね。
どうしてるんだろうか

40 :
個人でやるような分には、生でDirectXやOpenGLを使おうがラッパーライブラリを使おうが
できること(作れるもの)自体はあんまり変わらない気もするけども
生で使う場合はある程度は自前でラッパー作るようなもんだから、まあ最初から既存のラッパー使ったほうが楽ではあるが…

41 :
オライリーあたりがライブラリの参考書を出してくれればいいんだが・・・

42 :
3DグラフィックとC++って時点で両方習得するのに何年かかんのって話だからなw
登山みたいで楽しいんだが
登るのが大変すぎるだけに登って満足して終わりになっちゃう気もする

43 :
>>42
それわかるw
正直なところ敷居が高すぎる。
かと言ってUDKとかUnityもツクールみたいに気兼ねなく簡単にできる、
ってわけでもないし。

44 :
敷居が高いって元々はそういう意味じゃないぞ!
「相手に不義理などをしてしまい、行きにくい」というのが本来の意味。
2DだけのゲームでIrrlicht使っている人はいるだろうか 自分みたいに

45 :
2chで国語のお勉強とかどうでもいいことをw

46 :
UDKやUNITYをさわりだけいじってみたけど、マップ作ったり、テクスチャ読み込んでマテリアル作ったりは簡単にできるんだがな。
JRPGみたいにNPC出して会話とかできて、攻撃は剣と弓で、とかゲームシステムの細かい部分になると自力でどうぞ、って事になってしまう。
自分でゲームエンジンを解析して、どこに作り込でいけばいいか理解しないと進めない。
そこからの難しさは一からプログラムで作っているのと大して変わらない。

47 :
ここは何時から、自分のスキル不足を愚痴るスレになったんだっけか?

48 :
公式のニュースを見ると、Irrlichtの本が出たらしい
https://www.packtpub.com/irrlicht-1-7-1-realtime-3d-engine-beginners-guide/book

49 :
日本語じゃなきゃやだやだ

50 :
翻訳しろ話はそれからだ

51 :
e-book版が21.59米ドル = 1776円
けっこう安いな
日本語版がでてないとはいえ勝手に訳してwikiにアップなんてしたら怒られるよね
日本語版発売に期待
立ち読み版みたいなのはないの?

52 :
怒られるだけならまし。訴えられるレベル

53 :
>日本語版がでてないとはいえ勝手に訳してwikiにアップ
この努力をなぜ本家HPの日本語化に向けないのか

54 :
勝手に訳して出版社に持ち込んで交渉したらお金も入るよ。

55 :
しっかり許可取れな?

56 :
RPGは作れますかお?

57 :
作れません。お帰りください

58 :
そういや今Irrlichtで作っているのがSRPGだった
どこで作っているかは秘密だが

59 :
別に”秘密”とか書かなくても興味ないから

60 :
はは、つれないなぁ

61 :
書き込むならオープンにする
秘密にしたいなら黙ってるかチラシの裏にでも書いておけ
ただの構ってちゃんだろ

62 :
これから制作するソフト用のエンジンを探しているのですが、
Irrlichtは、マウスカーソルがある所のポリゴンを取得できますか?
CGツールみたいに、オブジェクト中の特定のポリゴンを選択とか
やりたいので

63 :
>>62
もちろんできるよ。
公式のチュートリアル7で解説してるから見るといいよ

64 :
ありがとう!

65 :
フォーラムに書けないチキンなのでここに書く。
フォーラムの方々に泣くほど感謝。
ハードウェアスキニングのコード
Hardware Skinning for Irrlicht 1.7
を改変してウェイトに対応させた。三晩悶絶した。
ウェイトに対応する代わりにNormalが使えなくなるけど
irrlicht側は一切変更不要。
ポイントは
mesh->setHardwareSkinning(true);
mesh->updateNormalsWhenAnimating(false);
の実行順序。
ドワーフ6*6(6*7?)
HD5850 windows 7 x64(exeはx86)
OpenGL [Light:off][HWS:off] 125fps
OpenGL [Light:off][HWS(Weight):on] 688fps

66 :
65続き
更にフォーラムのfmxさんの投稿を参考に
convertToTangentsして
Binormalをウェイト*3(4番目は1.0-(合計))に転用しNormalを生き残らせてみた。
まだやってないけどTangentに頂点カラーかマトリクスindexを持たせれば
頂点カラーも生き残らせることができるかも。
本当に本当にフォーラムは必見。
連投ごめん。終わり。

67 :
Irrlichtのフォーラムの色変わってた!!

68 :
標準テンプレを差し替えただけかよ!

69 :
2Dゲー作る勉強を始めたんだけど、今までSDLをちょろっと触った程度の知識しかなかったから
画像を思った場所にポリゴンで表示するだけで一苦労だった
チュートリアルサイト見ててもその処理が何をしてて何故必要なのかが説明されてないことが多くて(常識だから?)
理解を得るのにかなり苦戦するぜ。という俺の日記

70 :
日記は他でやれ・・・と言いたいが久しぶりのポジティブなレス
応援してる がんばれ

71 :
irrExtが全然使われていないのって公式からたどり着きにくいからなのか?
そもそもどんな物なのか、よく分からないと言っている人もいる
http://irrlicht.sourceforge.net/forum/viewtopic.php?f=2&t=43064

72 :
テクスチャの透過色(完全に透明)を設定した上で
実際に表示するときに全体的な透過率を設定できるようにしたいんですが全く手立てがつかめません
MaterialTypeの設定だけでは無理そうな感じだとは思うのですが、何か良い方法はありませんか
具体的には、黒を透過色とした画像ファイルをテクスチャに読み込んで
表示させるときに黒以外の部分の透過率を0〜100%で設定したいんです

73 :
texture->lock()でピクセルを調べて、カラーキーでなければアルファ値を設定することで実現可能な感じがしました
でも手元の環境で想定できるフォーマットはA8R8G8B8のみ・・・他も考えなきゃならないんだろうか
テクスチャ生成フラグにETCF_ALWAYS_32_BITを指定しても常にA8R8G8B8になる保障はないのかな

74 :
>>72-73
透過色を設定するというか、指定した色を投下したテクスチャを新たに作るメソッドなのだが
IVideoDriver::makeColorKeyTexture
http://irrlicht.sourceforge.net/docu/classirr_1_1video_1_1_i_video_driver.html#aed772902f4fe1185b44ce81b9b0b9add
・アルファテストを有効にしたままマテリアルカラー(または頂点カラー)のアルファを使う
・テクスチャのアルファとマテリアルカラー(または頂点カラー)のアルファを乗算する
マテリアルタイプがあれば良かったんだが、どうやら無さそうだな・・・
>>73で言うようにテクスチャを書き換えるか、シェーダーを使うしか無いかも
固定機能でテクスチャ書き換えずにやるにはIrrlicht本体のソースをいじるしかない
CD3D9Texture.cppを見てみた
テクスチャ生成フラグにvideo::ETCF_NO_ALPHA_CHANNELが指定されていると、
ETCF_ALWAYS_32BITでもR8G8B8になるよ
あと、生成に失敗すると16bitでリトライしているようだ。
テクスチャのカラーフォーマットが指定されたものになっているかは確認したほうがいいと思う。

75 :
>>74
調べてくださってありがとうございます
その通りのマテリアルタイプがあれば万々歳でしたね
テクスチャ書き換えでは毎フレーム行うと相当な負荷がかかるようで工夫が要りそうでした
試しに同じ結果になる処理をDXライブラリにやらせたらCPU使用率3%以下で毎フレーム余裕orz
ソースいじる自信もないので保留か

76 :
テクスチャいじるより、頂点カラーいじったら?
マテリアルタイプは EMT_ONETEXTURE_BLEND にして。
ブレンド/アルファソース情報をMaterialTypeParamに適切にpackする必要あるけど、
まあそこはCD3D9MaterialRender.hのTRANSPARENT_ALPHA_CHANNELを参考に、
SMaterial.h の enum なんかとにらめっこする感じで、あとはアルファソースを EAS_VERTEX_COLOR | EAS_DIFFUSE にすれば modulate してくれる。はず。
あ、最近のバージョンって、マテリアルで D3DRS_DIFFUSEMATERIALSOURCE 選択できんだっけ?
SMaterial.ColorMaterial かな。頂点カラーがダイナミックライトに反応しなくていいなら
これを NONE にして、SMaterial.DiffuseColorのaいじるだけでいいかも。
適当に説明端折ってるんで、ヘッダとかソースとか見つつで。

77 :
あ、 SMaterial.DiffuseColorのaいじるだけでいいかも っていうのは、
その前段に書いた ONETEXTURE_BLEND の対応をした上で、
頂点カラーをいじるんじゃなくて、マテリアルのDiffuseColorの設定だけで
いけるかも、っつーことね。

78 :
>>76
仰るとおりにやってみたら上手くいきました
結果的には以下のようなコードで確認できました(テストではスプライトを意識したものです)
material.MaterialType = EMT_ONETEXTURE_BLEND;
material.MaterialTypeParam = pack_texureBlendFunc( // texureってなんぞ
EBF_SRC_ALPHA,
EBF_ONE_MINUS_SRC_ALPHA,
EMFN_MODULATE_1X,
EAS_TEXTURE | EAS_VERTEX_COLOR);
verts[0].Color.setAlpha(alpha);
verts[1].Color.setAlpha(alpha);
verts[2].Color.setAlpha(alpha);
verts[3].Color.setAlpha(alpha);
速度も損なわずに動作するようなので目的は達成できそうです、本当にありがとうございました
Diffuseを使う方法については思うようにいきませんでした。EAS_DIFFUSEも存在しないようです

79 :
>>78
あ、EAS_DIFFUSE は記憶で書いた後直そうとして間違ったみたいw
EAS_TEXTURE | EAS_DIFFUSE って最初書いてて、ヘッダ確認したら
_DIFFUSE じゃなくて _VERTEX_COLOR だったので直そうとしたら、
間違って _TEXTURE のほう書き換えちゃったみたいw
マテリアルのDiffuseはダメだったかー。そのコードで、
material.ColorMaterial = ECM_NONE;
material.DiffuseColor.setAlpha(alpha);
みたいにすると、ドライバ見る限りはディフューズソースを
マテリアルディフューズにしてくれそうな感じだったんだけど(1.7.2)。
まあ、目的はこなせたようなので良かった。

80 :
ONETEXTURE_BLENDがそんなに万能だったとは・・・

81 :
ドット絵のキャラに吹き出しでしゃべらしたいんだけど、吹き出しってどうやったらだせるでしょうか?

82 :
え、そんな事聞いてどうすんの?
吹き出しを書いた画像を作って、それを描画した上に文字を出せとか
そういう答えが聞きたいのかい

83 :
目標は2Dゲーなんだけど、用意された機能でできることの見極め(というか模索)が大変でなかなか進まないなぁ
拡大縮小、反転、アルファブレンドまでならdraw2DImageで高速描画
回転や加算ブレンドが絡むと独自の何でもできるポリゴン描画、というとこまできた
ところで2Dとか自前のポリゴンってシーンマネージャーに触らずとも表示されるんだね

84 :
addBillboardSceneNode等で追加されている子ノードを
順に取り出して扱うにはどうすればいいのですか?

85 :
あげときます

86 :
親子関係を持つのはISceneManagerではなくISceneNode派生
リファレンス読んでないのがばればれだし意味も無く上げんな

87 :
>>86

addBillboardSceneNodeの第一引数は親となるノードの指定なんだけど?

88 :
こんなことでなんで面倒な雰囲気になってるのかわからんが、
ISceneNode.h を読むなりリファレンスを読むなりすれば、
childrenを引っ張り出すメソッドがあると思うのでそれを使っておくれ。
parent=0 で追加した連中がよくわからんというなら、
ISceneManager に root node 取るメソッドがあるのでそれ使っておくれ。
CSceneManager の実装的な事を言えば、root = SceneManager のはずだが、
まあ API を使っておいた方が良いだろう。

89 :
んなもんないわカス共
調子乗んなよ

90 :
irrihitの本ないですか?
自分で触る前に概要だけ把握しておきたい

91 :
はいどうぞ
https://www.packtpub.com/irrlicht-1-7-1-realtime-3d-engine-beginners-guide/book

92 :
Unityの本は日本語のものが3冊ぐらい出るのになあ。

93 :
なんとはなしにあげ

94 :
>>92
完成度が違いすぎる
Irrlichitが悪いとは思わんが商用利用するようなものじゃない
良くも悪くも個人クリエイター向け

95 :
有志が空き時間に作るものと商業的にフルタイムで開発されているものを比べるのは無意味

96 :
こんなの過去スレで紹介されていたよね
Irrlicht Engine ? View topic - "AlterEgo" First Adult game in the world using Irr
http://irrlicht.sourceforge.net/forum/viewtopic.php?f=6&t=34558

97 :
で?

98 :
商用でも使う人は使っているって

99 :
アクションとかやるんだったらUnityとかの方が楽に気はするけど、
ただ3Dで絵を出したいだけのRPGとかシミュレーションとかだと、
こっちの方がやっぱり楽そう。
フレームワークがかえって足かせになる、とUnityをろくに触ってもいない人が言ってみる。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
なぜVBは扱いが低いのか
ロックマンワールド5をFC風にリメイク Part1
プログラマはユーザーの評価に偉そうに反論するな
プレイヤーの自由と作者の自由