[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 08/14 02:34 / Filesize : 147 KB / Number-of Response : 463
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【3Dエンジン】Irrlicht初心者質問スレ【高速描画】



1 名前:名前は開発中のものです。 mailto:sage [2006/10/05(木) 06:50:19 ID:UN/zUzoQ]
zlibライセンスでクロスプラットホームなゲームライブラリ、Irrlichtのスレです。

※回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近Irrlichtを始めたばかり
3.SDKを見ても、Googleで検索しても、エキサイト翻訳でもいまいち理解できない人

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「英語読め」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する人 】
・ どんな事で躓いているのか明確にする。
・ 長くならないなら躓いている部分のコードを晒してみてください。
・ 解決した場合、お礼を言うのは当然ですが、何をどうしたら解決したかを明確に書くこと。

前スレ
pc8.2ch.net/test/read.cgi/tech/1104179696/

236 名前:234 [2007/09/12(水) 06:57:46 ID:yt2vr1g+]
>>235
はい、使うたびに指定していますが、なってしまいます。

同じソースをVC2003でビルドしますと、うまく通るのですが、
他に使ってるライブラリがVC6を要求していまして、
VC6でビルドしないといけないもので、どうしたものかと。。

237 名前:234 mailto:sage [2007/09/12(水) 12:00:39 ID:TaH0UuNn]
自己解決いたしました。
ありがとうございます。


238 名前:名前は開発中のものです。 [2007/09/12(水) 12:27:50 ID:8kBEhANN]
>>236
それなら、考えられる対策3つほど簡単な順に。

・VC6にSP6を適用する
www.microsoft.com/downloads/details.aspx?FamilyID=a8494edb-2e89-4676-a16a-5c5477cb9713&displaylang=ja

・ヘッダ等をWindows Server 2003 Platform SDK February 2003 Editionにバージョンアップ(VC6.0対応は2003.02まで)
www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

・ライブラリ部分だけをDLL内部に閉じ込めて影響範囲を狭める。
やりとりはブリッジ関数をかませたりして面倒なのが欠点。

上から試して解決すればいいんだけどねぇ。
それと、運がいいとVC6でライブラリビルドしたものをvc2003以降でそのまま使えるかも。


239 名前:名前は開発中のものです。 mailto:sage [2007/09/12(水) 12:30:31 ID:8kBEhANN]
>>237
おめでとう、入れ違いになった。
解決方法はどんな風に?

240 名前:234 mailto:sage [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用のプロジェクトファイルだとうまくいったりいかなかったりだけど、
新たにプロジェクト作ってソースとかヘッダーいれるだけだとうまくいかないです。

242 名前:名前は開発中のものです。 mailto:sage [2007/09/17(月) 20:45:49 ID:dcjZVnkb]
lightfeatherはいじってないからわかんない
あれってまだIrrlichtの名残りある?
本家よりも拡張されてるようだけど、動作不安定で俺のところは落ちるよ

243 名前:名前は開発中のものです。 mailto:sage [2007/09/18(火) 02:25:01 ID:7EBKJzTE]
lightfeatherは、デモが落ちまくるから信頼性なしw

244 名前:名前は開発中のものです。 mailto:sage [2007/09/19(水) 17:41:58 ID:+A3proP+]
Irrlichtはあるのかしらん?
そろそろエンジンに頼らないとやってられなくなってきた。



245 名前:名前は開発中のものです。 mailto:sage [2007/09/19(水) 19:16:55 ID:RUbs+riS]
>>244
あるのかしら、とは信頼性のこと?
レンダリングの挙動がおかしい場合もあるけど
少なくともエラー落ちはないに等しい

246 名前:名前は開発中のものです。 mailto:sage [2007/09/22(土) 13:44:43 ID:a9XL70nj]
DX10にはいつ対応するのかしらん

247 名前:名前は開発中のものです。 mailto:sage [2007/09/28(金) 22:18:30 ID:J7/3w0px]
自分でドライバ書けば

248 名前:名前は開発中のものです。 mailto:sage [2007/09/29(土) 00:45:20 ID:hb9qADnP]
>>247
ごもっとも過ぎるw

DX10でしか実現できない機能を実装する段階にならないと対応はないんじゃないかな?
つまり当分先な気がす

249 名前:名前は開発中のものです。 mailto:sage [2007/09/29(土) 06:30:01 ID:7kgtZ9g6]
10.0で何が出来るのかさ知らないがwwwww

250 名前:名前は開発中のものです。 mailto:sage [2007/09/29(土) 08:55:07 ID:6wJlaFYW]
Vista対応w

251 名前:名前は開発中のものです。 mailto:sage [2007/09/29(土) 08:57:22 ID:PKANHVaL]
ドライバ書けって何のドライバ書けばいいのさ

252 名前:名前は開発中のものです。 mailto:sage [2007/09/29(土) 10:06:15 ID:UnzWy8dg]
ソースみて自分で学べ

253 名前:名前は開発中のものです。 mailto:sage [2007/09/30(日) 18:44:07 ID:sFU/qm7G]
ドライバじゃねがっす
DX10のラッパーと言うべきか
DX9だってエミュレーションだけどVistaで動くしな〜

254 名前:名前は開発中のものです。 mailto:sage [2007/10/01(月) 18:29:07 ID:nK/QuGDo]
>>253
Irrlichtのローカル用語でそういうのをドライバというのさ

1.CD3D9*系のモジュール(全部で7つ、必要なら増やせ)をDX10対応に書き換えて、
CD3D10*系モジュールを作る
2.CIrrDeviceWin32,cppをいじって、新しく作ったモジュールに対応できるようにする。

これだけだ、がんがれw



255 名前:名前は開発中のものです。 mailto:sage [2007/10/01(月) 21:52:00 ID:VPa19YHN]
RADIANCEフォーマット(.hdr)の画像書き込み/読み込みクラスを作って
次にfloatのテクスチャを作れるようにしようとしたんですが
DirectX9では出来たものの、OpenGLでは知識が無くて苦戦・・

256 名前:名前は開発中のものです。 mailto:sage [2007/10/01(月) 22:13:48 ID:l2LADDgi]
質問だが、自作ゲームが微エロゲーになってしまったんで、
18禁の定義を診断してくれないだろうか、セーフなら15禁、アウトなら18禁って事で。

問題1:
イタイケなおにゃの子が、淫魔に追っかけられるクロックタワーのパロゲー。
捕まるとハァハァされる、絵による描写は無く台詞のみ。

問題2:淫語使いまくり、顔グラに汁グラあり。

257 名前:名前は開発中のものです。 mailto:sage [2007/10/01(月) 22:17:10 ID:bT+F18r8]
18斤

でも、すれ違い
ほかのところでやるべし

258 名前:名前は開発中のものです。 mailto:sage [2007/10/01(月) 22:34:55 ID:l2LADDgi]
>>257
了解、回答ありがとう。
…と、言われたものの、他ねぇ。

259 名前:名前は開発中のものです。 mailto:sage [2007/10/01(月) 22:49:35 ID:l2LADDgi]
って、今更気づいたが、
ここ質問スレは質問スレでも、スレ立てスレじゃない!?
やっべ、なんという誤爆!スレ汚しマジすまん!



でも回答サンクスコ(´・ω・`)

260 名前:名前は開発中のものです。 mailto:sage [2007/10/04(木) 23:49:59 ID:XO6lWepS]
視野角90度で平行投影したいんですがどうすれば
ある一点からキューブマップをレンダリングしたいです。

261 名前:名前は開発中のものです。 mailto:sage [2007/10/05(金) 10:17:02 ID:IKhaq7cZ]
>>260
ほれ

www.irrlicht3d.org/wiki/index.php?n=Main.IsometricProjectionByJohnFredCee

ヒント:buildProjectionMatrixOrthoLH

公式のOrthgonalチュートリアル貼ろうと思ったらリンク切れてたしw

262 名前:名前は開発中のものです。 mailto:sage [2007/10/05(金) 23:17:03 ID:5WSrAfdX]
>>261
トンクスです。
この関数は知っていましたが使い方が分かりませんでした

263 名前:名前は開発中のものです。 mailto:sage [2007/10/06(土) 12:26:08 ID:Iq/e+TZM]
1.4betaなんて出てたのね

264 名前:名前は開発中のものです。 mailto:sage [2007/10/06(土) 21:22:18 ID:OSyH3sfK]
うん。
ただし、まだまだ作業中みたい
今のうちに不具合報告すれば即直してくれそうだなぁ

ところで、IGUIFileOpenDialogって
Unicodeとマルチバイト、どっちでコンパイルしても
日本語は文字化けするよね?



265 名前:名前は開発中のものです。 mailto:sage [2007/10/06(土) 22:27:35 ID:QRh8Z4nZ]
>>264
Gogoのzgock氏が公式フォーラムにパッチ投げてくれてる。
で、MadHyde氏のIrrlichtML(Truetype組込版)はそのへんマージ済

ttp://etwas.wolfish.org/Irrlicht/irrlichtml.html

266 名前:264 mailto:sage [2007/10/07(日) 01:13:43 ID:IkjREsJq]
>>265
うぁ、実はそのMadHyde本人です
本家のみの使用で解決してる人はいるのか気になって聞いてみた次第

せめて表示だけは文字化けしないように
zgock氏のマルチバイト変換コードを
オフィシャルでマージしてもらえるようにレポートしてみる


267 名前:名前は開発中のものです。 mailto:sage [2007/10/07(日) 13:50:19 ID:f6k7egVq]
>>266
てら乙
Gogoのzgock氏、どうもご本人の興味がIrrlichtから
CG/Poserとかの方にいっちゃったみたいで、
(メッシュファイル関連でPoserに手出してたからそっちが楽しくなっちゃったんだろね)
そっちの世界でセルシェーダのプラグイン書いたりがんがっておられるようです。

MadHyde氏が日本語関連の砦です。
がんがってくだされ

268 名前:名前は開発中のものです。 mailto:sage [2007/10/08(月) 10:26:52 ID:bWH+igss]
質問よろしいですか
まだ導入もしていないのだけれども、Irrlicht SDK 1.2は安定版ですよね
プログラムの偶数バージョンは安定版のはずだけど自信がなくて…

269 名前:名前は開発中のものです。 mailto:sage [2007/10/08(月) 10:50:26 ID:o9MbTnSi]
え、そんな法則あったんですか?
linuxkernelがそうであることは知っているけど、、、

270 名前:名前は開発中のものです。 mailto:sage [2007/10/08(月) 11:16:37 ID:YblPsSas]
linuxというか、un*x系の流儀で、そういうルール使う場合もしばしばある(FreeBSDなんかもそう)が、
Irrlichtの場合あまり関係ない
ので、安心して1.3使ったがいい

271 名前:名前は開発中のものです。 mailto:sage [2007/10/08(月) 12:00:58 ID:bWH+igss]
回答サンクス!安心して1.3を導入します

272 名前:名前は開発中のものです。 [2007/10/09(火) 16:22:23 ID:bAtjWg0O]
Lunaとどっちが凄いの?
ボーン取得して動かせる事できる?
xファイル読み込める?
当たり判定ある?

273 名前:名前は開発中のものです。 mailto:sage [2007/10/09(火) 16:27:38 ID:saf09NRl]
>>272
目指してる方向性が違うのでどっちが凄いかは決められない
ボーン取得はできる
xファイルは読めるし、それ以外の対応フォーマット多彩
コリジョンはある

274 名前:名前は開発中のものです。 mailto:sage [2007/10/09(火) 19:38:30 ID:biTCbtf6]
>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になるんだろうか・・・

276 名前:名前は開発中のものです。 mailto:sage [2007/10/11(木) 23:17:17 ID:WfkI6oI+]
サウンドはOpenALで適当に作ったな

277 名前:名前は開発中のものです。 mailto:sage [2007/10/11(木) 23:59:19 ID:3R315KwB]
irrKlangはIrrlichtとコーディングスタイルが似てて使いやすいかもね
Audiereもおぬぬめ
ttp://audiere.sourceforge.net/

278 名前:名前は開発中のものです。 mailto:sage [2007/10/12(金) 00:46:18 ID:s8TbIxv0]
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 名前:名前は開発中のものです。 mailto:sage [2007/10/13(土) 02:05:03 ID:HyccwUSY]
なんかこのスレって割と経験者の集まりだな
超初心者スレはないのか・・・

281 名前:名前は開発中のものです。 mailto:sage [2007/10/13(土) 02:09:08 ID:oaqS3f97]
>>280
別に超初心者な質問しても誰も怒らないと思うぞ、
ただでさえ過疎スレなのに、さらに分家しても意味ない。

282 名前:名前は開発中のものです。 mailto:sage [2007/10/13(土) 02:13:29 ID:HyccwUSY]
そうか。ありがとう
といってもまだ今日始めたばかりなんだ
もしつまづいたら聞くかも知れないので、その時は暇だったら教えてください

283 名前:名前は開発中のものです。 mailto:sage [2007/10/13(土) 08:25:21 ID:dBFGuNg7]
>>282
おぅ、がんばれー

284 名前:名前は開発中のものです。 mailto:sage [2007/10/14(日) 13:37:57 ID:5IQh9etz]
サンプルirrファイルを使ってコリジョン判定をやってみようかと思ったんですが、
createOctTreeTriangleSelectorだとメッシュとシーンノードの取得の方法が
わかりません。どうしたらいいのでしょうか。



285 名前:名前は開発中のものです。 mailto:sage [2007/10/14(日) 15:40:55 ID:lMM34/uL]
シーンノードの「取得」ってのが意味不明なので・・・
軽くエスパーしてみる

TriangleSelectorは基本的に一つのシーンノードに対しての
コリジョン判定器だから、
複数のノードに対してTriangleSelectorつかうなら、
その数だけTriangleSelectorを用意することになる。
自前でコリジョン判定するなら、
TriangleSelectorのgetTrianglesメソッドで、
レイなりバウンディングボックスなりとのコリジョンをとればいいから
(Triangleが存在する=コリジョンしてるということ)
当たりを取りたいノード分だけぶん回せばいい

そうじゃなく、createCollisionResponseAnimatorで複数のノードに反応したいということなら、
CMetaTriangleSelectorを使う


286 名前:名前は開発中のものです。 mailto:sage [2007/10/14(日) 16:23:52 ID:5IQh9etz]
えーと、その前の事で、

IrrlichtDevice *device = createDevice(略);
devive->loadScene("terrain.irr");

とシーンファイル読み込むとマップモデルが表示されるのですが、ここから
createTriangleSelectorに指定するノードとメッシュをどうやって取得すれば良いのかが分からないのです。


287 名前:名前は開発中のものです。 mailto:sage [2007/10/15(月) 00:32:46 ID:Alx2212L]
>>286
おk把握w
.irrのシーンファイルは、ただのxmlで、
開くと中に普通にメッシュとかのロード指示が入ってる。
サンプルのexample.irrだと、
部屋のメッシュとしてroom.3dsを読み込んでいることがわかる。
なので、こいつのNameフィールドにしかるべきvalueを与えて、
(IrrEditで開いて、Name付けても可)
getSceneNodeFromName()で持って来ればいい。
つか、TriangleSelector関係ねーじゃんw

288 名前:名前は開発中のものです。 mailto:sage [2007/10/15(月) 02:05:29 ID:H/ew0wXN]
モデラーというか、最終的にirrlichtに読み込ませるファイルはみんな何で作ってる?
色々試したけど、xファイルはmilkshapeで作ったのじゃないと上手く読めない感じ・・・
md2は作りにくいし・・・
結局Irrlicht A GoGoの作り方のとおりにやるのが一番簡単なのかな

289 名前:名前は開発中のものです。 mailto:sage [2007/10/15(月) 21:13:59 ID:Alx2212L]
>>288
xファイルについてなら、ここ見てみた?
ttp://lesson.ifdef.jp/

290 名前:名前は開発中のものです。 mailto:sage [2007/10/15(月) 23:00:37 ID:RgsypFFj]
>>287
できました。ありがとうございます。

291 名前:名前は開発中のものです。 mailto:sage [2007/10/15(月) 23:15:22 ID:5mOqSGG2]
VC2005EEで
IRR_USE_SDL_DEVICEつけてコンパイルする方法が分かりません・・。
SDL.libとSDLmain.libを追加の依存ライブラリに設定しましたが
最後にリンカエラーが出ます。
しかも、どうやったらSDLの命令を使ったり出来るのかもわかりません。

292 名前:名前は開発中のものです。 mailto:sage [2007/10/16(火) 01:50:36 ID:JzrpuxP2]
>>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を省けば問題なく日本語の表示が可能です。
(ファイル名で半角カナも混ざっている場合があるので
 全角文字に変換するか、半角カナも表示する機能も必要になります。)

ここにサンプルを載せてありますので、良かったらどうぞ。
lesson.ifdef.jp/A03.html
lesson.ifdef.jp/file/a03.zip

294 名前:名前は開発中のものです。 mailto:sage [2007/10/17(水) 01:48:53 ID:gpaUcF8i]
>>291
うちでIrrlichtMLのIMETEST.exe上で動作確認してみた。
別に「終了」というファイル名も、
「終了テスト」という半角カナ交じりのファイル名も
問題なく表示できたけどなあ?
WindowsXPSP2/Windows2000SP4上で確認



295 名前:名前は開発中のものです。 mailto:sage [2007/10/17(水) 01:58:45 ID:gpaUcF8i]
連投ごめん
もし、オリジナルの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へバージョンアップ中のため、この内容を伝えれば
修正をしてくれるかも? ということかと思います。
そして、さらに「どうせならマルチバイト変換コードもオフィシャルに」
と、伝えるつもりなのかと思って、私なりに調査・報告したまでです。

「本家で確認しました」というコメントが抜けていてすみませんでした。

297 名前:名前は開発中のものです。 mailto:sage [2007/10/17(水) 03:00:46 ID:gpaUcF8i]
>>296
了解了解。それなら納得です。

ただ、wcstombs関連の扱いについては、
提示していただいたサンプルだと、
1.setLocale()をJapanese決めうちしちゃってる
2.IrrMLの処理に比べて冗長
な気がするんで、
zgock/MadHyde氏版の処理の方がスマートな気はする。

298 名前:lesson.ifdef.jp mailto:sage [2007/10/17(水) 03:26:50 ID:MD/R4l7g]
>>296 ID:gpaUcF8iさん
遅くまでお疲れ様です。

マルチバイト文字を変換する方法としては
確かにMadHydeさんのものより長くなっております。
ですので、私のサンプルはまだまだ改善するべきかもしれません。
※Irrlichtで用意してあるGUIがマルチバイト文字必須なので
 仕方なく使用している感じです。

現在はマルチバイト文字は使用していないので、
lesson.ifdef.jp/A02.html
で示すPrintfだけで日本語が表示可能になっています。

299 名前:MadHyde mailto:sage [2007/10/17(水) 06:49:29 ID:lb1CWKLF]
>>293-298
Irr Lessonさんを紹介する記事をアップした矢先に中の人が降臨なさっている!
しかも、熱い討論が交わされているとは。
お二方、遅くまで乙です。

>>266を訊いてみたのは、コアハックをせずとも
エクステンションパックのような形で日本語対応できれば
利用しやすく保守が確実なものができるのではないかと考えているからです。
(ただし、他の言語圏でも有用なコードは、なるべくマージしてもらおうと言う試み)

今週中は時間取るのが難しいですが、なんとか提示頂いたサンプルを見て
最適な実装方法とは何かを検討してみようと思います。

ところで、lessonさんのお名前を伺ってもよろしいでしょうか?
サイトでの紹介には、やはり執筆者のお名前を添えたいので。

300 名前:MadHyde mailto:sage [2007/10/17(水) 07:11:32 ID:lb1CWKLF]
コンタクトフォームからも連絡が来てた。
返信しておきましたm(_ _)m

301 名前:名前は開発中のものです。 mailto:sage [2007/10/17(水) 22:09:06 ID:JMcE+2Z1]
>>292
自己解決しました。
CIrrDeviceSDL.cppと同.hが何故かプロジェクトに入っていませんでした。

>どっちかっつーとMacであるとかその他組込系とかのために、
>3DエンジンをSDL管理下に投げるためにあるわけだが、
>何がしたいん?

複数キー同時押しとか、ジョイスティック使用とかです。

CCameraSceneNodeって、setRotationで角度指定できないんですね・・。

302 名前:名前は開発中のものです。 mailto:sage [2007/10/18(木) 01:38:13 ID:QBfYpW0R]
>>301
描画にSDL使わないんなら、
CIrrDeviceSDLを使い必要はないはずなんだがな・・・
単純にリンクできたはず。

303 名前:lesson.ifdef.jp mailto:sage [2007/10/18(木) 21:12:13 ID:ttH8nhVa]
>>301 さん
そのままでは回転できないので、カメラとは別にノードを作成し
ISceneNode *cameraMan;//カメラマンを用意
それを親とするカメラを作成してみて下さい。
カメラマンを動かすことで、カメラも一緒に動くことが可能です。

もう少しスマートに動かせたら楽なんですけども
一応上記の方法で可能です。

304 名前:lesson.ifdef.jp mailto:sage [2007/10/18(木) 21:21:43 ID:ttH8nhVa]
>>299 MadHydeさん
お返事ありがとうございます、必要事項は返信しておきました。
先日の確認はver1.3.1を使用しましたので、
時間があれば1.4Βでも確認してみたいと思います。

2バイト文字対応に関しては、私のサンプルでは日本語だけですが
irrlichtMLでは日本語以外も対応しているので、
標準機能になると心強いですね。
なんとか、頑張って欲しいものです。



305 名前: ◆YATA/oetrw mailto:sage [2007/10/19(金) 00:17:15 ID:gpRuIoHa]
>>301
ICameraSceneNode::setTarget()で間接的に回転するはず

>>304
紹介文を更新しておきました
気が向いたら確認をお願いします〜

来週、1.4へのMLのマージを兼ねて動き出しますです


306 名前:名前は開発中のものです。 [2007/10/22(月) 22:08:51 ID:r3G5ZH1J]
Irrlichtの描画を行いながら動画を再生したいのですが
お勧めのライブラリはありますか?

出来ればその利用法などを教えていただけるとありがたいのですが。

307 名前:名前は開発中のものです。 mailto:sage [2007/10/22(月) 23:03:53 ID:bCtKZdb4]
浮動小数テクスチャや16bit整数のテクスチャが標準で使えるようにはなりませんかね
HDRレンダリングがしたいです。

308 名前:名前は開発中のものです。 mailto:sage [2007/10/23(火) 04:46:43 ID:RQcCX2DH]
>>306
Magic 2D Library
www.freewebs.com/bcxgl/index.htm


309 名前:名前は開発中のものです。 mailto:sage [2007/10/23(火) 04:47:09 ID:+WToHqau]
>>306
SDLにMPEG2デコーダ付いてなかった?使った事無いけど
そうでなければDirectShowのグラフにgrabberをぶら下げて
ベタビットマップをテクスチャに貼り付ける.
オーバーレイはデバイス握ってるとたぶん無理じゃないか?

310 名前:名前は開発中のものです。 mailto:sage [2007/10/23(火) 11:26:57 ID:61W+y2K1]
>>308
そのライブラリ、>>306,>>307の問題を両方解決してくれそうだな
関数群がカプセル化されてないのが惜しいぜ

311 名前:名前は開発中のものです。 [2007/10/24(水) 00:20:01 ID:GWIOzhxY]
どうもです。

>>308
更新が止まってしまっていますね。
最新バージョンに合わせたいので見送ろうかと思います。

>>309
SDLのほうはわからないです。
ビットマップはありなのかなぁ。一番楽な気はしますが。

312 名前:名前は開発中のものです。 mailto:sage [2007/10/24(水) 19:08:34 ID:R8GREAfn]
>>311
作者のEmil氏の名誉のために言っとくが
MagicLibの1.31版がないのは1.3用でそのまま動くからのはずだけどな

313 名前:名前は開発中のものです。 mailto:sage [2007/10/24(水) 21:53:30 ID:RB/VGvZD]
>>312
すいません。。。確認不足でした。

314 名前:名前は開発中のものです。 mailto:sage [2007/10/26(金) 01:34:29 ID:c03y8h9A]
最近Irrlichtを始めました。
以下のIrrlicht a GoGoのサイトのサンプルを実行してみたのですが、
ttp://www.zgock-lab.net/irrlicht/tut04.htm

キャラが回転するはずなのに世界が回ってしまいます。
ソースは随分古いみたいなので、何か仕様が変わったりしたのでしょうか?
どうすれば直るのか教えてください。




315 名前:名前は開発中のものです。 mailto:sage [2007/10/26(金) 01:59:02 ID:+UlAqHmS]
>>314
最終状態としてはそれで合ってる。
「簡単な3rd Personカメラ」の章の直前までの
状態にすればいい。
そのへんの基本は変わってないはず。

316 名前:名前は開発中のものです。 mailto:sage [2007/10/28(日) 15:24:54 ID:vLz3dorA]
>>315
返事が遅くなったけど、できました。ありがとうございます。
ところで、シーンやノードとかの概念というか関係がいまいちよく分からないんですが、
分かりやすい解説ってどこかにないですかね?
なんか翻訳wikiくらいしか拠り所がないんですが・・・

英語が得意だったらなぁ・・・

317 名前:名前は開発中のものです。 mailto:sage [2007/10/28(日) 16:05:46 ID:256r1oei]
>>316
ISceneNode.hを読む

318 名前:名前は開発中のものです。 mailto:sage [2007/10/28(日) 18:05:39 ID:lSIhpM9Z]
>>316
3D世界をエクスプローラのようなツリー構造で管理しているとイメージすればいいかと。

Irrlicht
 |
 ---キューブ
 |
 ---ボール


319 名前:名前は開発中のものです。 mailto:sage [2007/10/28(日) 18:51:34 ID:vLz3dorA]
>>317
見てみました。
英語さえ分かればドキュメントは豊富だってのは分かるんですけどね・・・
やっぱ俺は純国産じゃないと駄目かなぁ・・・

>>318
それは分かるんですが、それぞれの役割みたいのの簡単な説明があればなぁーと。
まぁ色々いじってて、少しずつなんとなく分かってきたんですが・・・

320 名前:名前は開発中のものです。 mailto:sage [2007/11/03(土) 13:53:32 ID:cu+jXMlX]
irreditでanimatorにtextureを追加して、ファイル名を指定すると、
ファイル名が更新されずに消えてしまうんですがどうすればいいんでしょう。

321 名前:名前は開発中のものです。 mailto:sage [2007/11/09(金) 00:31:56 ID:xOZdaHMl]
FPSゲームを作っています。
FPSなのでとりあえずキャラクターは表示させず、移動はFPSカメラを利用しています。
そこで走る、歩くなどを表現したいのでFPSカメラの移動速度を変えたいのですが、
addCameraSceneNodeFPSで更新するしかないのでしょうか?
add〜を連続使用するというのも不安ですし、
そもそもキャラクターの移動はFPSカメラで済まさず、自分で処理するべきなのでしょうか?



322 名前:名前は開発中のものです。 mailto:sage [2007/11/09(金) 07:41:23 ID:c3OcvDGq]
>>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 mailto:sage [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関数などにアクセスできません。
理由がまったくわからないのですが、どうしてなのでしょうか?



325 名前:名前は開発中のものです。 mailto:sage [2007/11/12(月) 02:01:36 ID:hpWiFfmI]
>>324
その場合、CCameraFPSSceneNodeクラスのメンバ関数へのアクセスは
ICameraSceneNodeクラスを通した共通関数しか扱えなくなる。
だから、例えCCameraFPSSceneNode内で
setMoveSpeedがpublic関数と定義されていてもアクセス不能です。

もしsetMoveSpeedを使いたいのであれば、こうすること。
CCameraFPSSceneNode* node = new CCameraFPSSceneNode(〜);
~~~~~~~~~~~~~~~~~~~~~~~~~

他にダウンキャストって手もあるんだけど、あんまりお勧めはしない。
ICameraSceneNode* node = new CCameraFPSSceneNode(〜);
CCameraFPSSceneNode *p = dynamic_cast<CCameraFPSSceneNode*>( node );
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

326 名前:324 mailto:sage [2007/11/12(月) 05:40:47 ID:7YnjD95v]
>>325
仮想関数は、インターフェース部になったクラスに存在し、
その上で再定義されたポインタ越しの関数を呼び出せるというものだったんですね。
勉強になりました、ありがとうございました。

327 名前:名前は開発中のものです。 [2007/11/16(金) 22:28:36 ID:h9AyeuU1]
www.zgock-lab.net/irrlicht/tut05.htm

キャラから弾を飛ばしても
自キャラの移動速度を少し速めると
キャラの前進移動スピード>弾のスピード
になってしまい、追いついてしまいます
でも弾を速くすると今度は速過ぎて見えなくなるし・・・

何か解決策はあるでしょうか

328 名前:名前は開発中のものです。 mailto:sage [2007/11/16(金) 23:29:15 ID:z3YC6Y9u]
>>327
早過ぎず遅すぎない弾の速度に微調整

329 名前:名前は開発中のものです。 mailto:sage [2007/11/17(土) 00:17:31 ID:2u92yTvZ]
弾の速度=静止した状態から発射した場合の弾の速度+キャラの移動速度
とするのが物理的には正しいんじゃね

330 名前:名前は開発中のものです。 mailto:sage [2007/11/17(土) 09:41:11 ID:/9LSycbG]
>>327
弾が尾を引くようにすれば?

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();

334 名前:名前は開発中のものです。 mailto:sage [2007/11/17(土) 22:02:27 ID:+0vqtOt2]
>>331
while(device->run())ループ内で描画前にでもjoyGetPos(JOYSTICKID1, &joyinfo);してやって
その結果を元にユーザイベントを投げればOnEventで処理できると思うよ



335 名前:名前は開発中のものです。 mailto:sage [2007/11/19(月) 09:57:08 ID:CkrKyzUS]
>>334
すみません
ユーザーイベントを投げるにはどうすればいいのでしょうか・・・
virtual bool OnEvent(SEvent event)
{
if (event.EventType == irr::EET_USER_EVENT)
{
return true;
}
でいいと思うのですが、
ループからどう関連付ければいいか分からなくて・・・

336 名前:名前は開発中のものです。 mailto:sage [2007/11/19(月) 10:23:44 ID:CkrKyzUS]
よく見たらIrrlicht Lessonに解説ありました・・・
何とか自分でやってみます

337 名前: ◆YATA/oetrw mailto:sage [2007/11/19(月) 23:37:01 ID:CwotT0bX]
公式DLLのみを使って日本語入力に漕ぎ着けました。
まだWindows版のみで手直しが必要なため動画だけ。

Input Method for Irrlicht 3D engine
ttp://www.youtube.com/watch?v=ctOgPadDnbo

先達たちに感謝。
ソースはまた後ほど。

338 名前:名前は開発中のものです。 mailto:sage [2007/11/20(火) 00:43:58 ID:R5KE+nst]


339 名前:336 mailto:sage [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);
}
}

340 名前:名前は開発中のものです。 mailto:sage [2007/11/20(火) 01:43:30 ID:njgoBjcy]
Driverの宣言部分に問題があったようです。。
多重宣言になってたのに気付かなかった。。

一応ジョイパッドのボタンを押すと
キャラが前進する
というところまではできました
問題は離しても進んでしまうところ。。


341 名前:lesson.ifdef.jp mailto:sage [2007/11/20(火) 18:31:20 ID:y97bgTzN]
>>340 さん
サンプルではグローバル宣言しているので、グローバル宣言をやめて、
postEventの引数にdriverも追加すれば大丈夫でしょう。

キャラのアニメーションに関しては、
最後に指定されたモーションが実行され続けるはずです。
キーが押されなかった場合の処理も指定する必要があります。
前回の状態と比較して、変化があった場合に、
モーションを変更するようにしてみましょう。

342 名前:名前は開発中のものです。 mailto:sage [2007/11/20(火) 23:27:33 ID:wC+JOKs+]
HDR対応・・・HDR対応・・・

343 名前:名前は開発中のものです。 mailto:sage [2007/11/21(水) 02:15:04 ID:CVvSjocp]
空をScene->addSkyBoxSceneNodeで作成しているのですが、
これだとソースコードレベルで空が固定されてしまいます。
GtkRadiantなどの空シェーダーを利用したいのですがうまく反映されませんでした。
反映させるためには何かコードを追加しないといけないのでしょうか?


344 名前:名前は開発中のものです。 mailto:sage [2007/11/21(水) 03:53:01 ID:icyD2fym]
>>341
おお、管理人さん自ら恐れ入ります。
早速やってみます



345 名前:名前は開発中のものです。 mailto:sage [2007/11/21(水) 22:55:14 ID:nvAoZQa6]
取り急ぎInput Method分離版投下
GUIを表示させるまでの手続きは増えましたが
代わりに必要なモジュールだけを組み込めるかと

IrrIM Test20071121a(win用ソース)
ttp://etwas.wolfish.org/Irrlicht/irrlichtml.html

346 名前:344 mailto:sage [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
では違うようです・・・(って当たり前か・・・)


347 名前:lesson.ifdef.jp mailto:sage [2007/11/22(木) 22:27:45 ID:CUMTGKWp]
>>344 さん
>Stateを発信する方が
>event.KeyInput.PressedDownとevent.UserEvent.UseData1

event.UserEvent.UseData1でも同様に
Stateを返してしまえば大丈夫ですね。

キーボードで右に値するキー(→・Dなど)が押されたときの処理と
コントローラで「右」を押した時の処理を同じにすればいいでしょう。
イベントの種類や名前などで難しく考える必要はありません。

348 名前:名前は開発中のものです。 mailto:sage [2007/11/28(水) 23:41:14 ID:XwD1PSD9]
日本語訳のwikiないの?
ユーザーwikiある?

349 名前:名前は開発中のものです。 mailto:sage [2007/11/29(木) 00:12:51 ID:xhLqnguP]
・翻訳ドキュメント
Irrlicht 非公式ドキュメント
ttp://www.realintegrity.net/~irr/

・解説サイト
Irrlicht A GoGo
ttp://www.zgock-lab.net/irrlicht/
Irrlicht Lesson
lesson.ifdef.jp/index.html

日本語サイトって
このぐらいしか無いのでは
特にIrrlicht Lessonにはお世話になってます
( >が>になってたり <が<になってたりするのは仕様でしょうか? )

350 名前:名前は開発中のものです。 mailto:sage [2007/11/29(木) 00:17:21 ID:xhLqnguP]
訂正:>が&gt >が&lt

351 名前:名前は開発中のものです。 mailto:sage [2007/11/29(木) 00:39:20 ID:tGg1J08/]
ほんとだねw
>にするつもりが;(セミコロン)を忘れちゃったんじゃないかな

352 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 05:45:18 ID:aXIFpf6m]
1.4 リリースおめ

353 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 08:41:19 ID:fawlqgIa]
1.4キタ━━━━(゚∀゚)━━━━!!!
VISTAも認識するようだ

354 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 10:59:54 ID:nuORG0MM]
おめ



355 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 16:12:39 ID:gcOHwiFd]
1.4入れてみた
以前組んだのを再コンパイルして走らせてみたが、CPU負荷がかなり改善されていい感じだ

356 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 17:15:56 ID:nuORG0MM]
以前のが、1.4でも普通にコンパイルできるのか

357 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 19:45:54 ID:dQ2XkPD6]
キー入力についてお聞きしたいのですが、
例えば全画面表示などに利用する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さんの複数キー処理のメソッドです。


358 名前:lesson.ifdef.jp mailto:sage [2007/12/03(月) 18:42:59 ID:L4J5OiMR]
>>357 さん

WinAPIの以下の関数を使用するとよいでしょう。
・GetKeyboardState(全ての仮想キーの状態を取得)
・GetKeyState(指定したキーの状態を取得)
これらを使用することにより、システムキーの状態も取得できるはずです。
また、Shift/Ctrl/Menu(Alt)を左右別々に取得も可能です。
ただし、システムキー「離した」という情報は取得できません。

これであれば、Alt+Enterを取得できるかと思われます。

359 名前:名前は開発中のものです。 mailto:sage [2007/12/03(月) 19:29:29 ID:adx0yp9J]
イベントレシーバでエンター検出したら、その中で>>358の関数呼べばいいかもね
それにしても、なんで、WM_SYSKEYDOWNは検出対象外なんだろか
CIrrDeviceWin32.cppのメッセージ周りを修正して再コンパイルって手もあるみたいよ
F10 in Windows(vitekのコード参照)
irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=22630

360 名前:357 mailto:sage [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
不恰好ですが目的の動作は実現しました。感謝です。


361 名前:名前は開発中のものです。 mailto:sage [2007/12/07(金) 22:33:14 ID:COpAhiGY]
Windows API使うとLinuxで動かないのから
SDLとか使ったほうがいいんじゃないの

362 名前:lesson.ifdef.jp mailto:sage [2007/12/08(土) 00:55:31 ID:ipyfMo3f]
>>361 さん
せっかくの掲示板ですから、
もう少し具体的な解決策も書いたらどうでしょう?
お互いスキルアップにもつながりますし

●キー取得
・DLLの改造…SYSKEYの処理を追加する
・SDLを使用する…SDL_PollEventの後で処理を追加する
・OpenGL(GLUT)を使用する…glutGetModifiersで処理
・DirectXを使用する…GetDeviceStateで状態取得
・Win32APIを使用する…GetKeyStateで状態取得

別の方法として、そもそも複数キーを使用しない
・Homeキーを押したら全画面処理をするなど

363 名前:名前は開発中のものです。 mailto:sage [2007/12/11(火) 01:51:39 ID:WAcCpdFv]
◆質問
Irrlicht.dllを動的に読み込むにはどうするのが一番楽?


◆やったこと

状況に応じてIrrlicht.dllを切り替えたくなった。
とりあえずLoadLibraryとGetProcAddressで
createDeviceの関数ポインタ取って来るスケルトンを作ってみたけど、
GetProcAddressの返り値NULL('A`)

◆環境
VC7.1くらい Irrlicht1.4

364 名前:363 mailto:sage [2007/12/11(火) 23:48:27 ID:WAcCpdFv]
そういえば関数名は正しかったのかな・・・と思いdependecywalker使用したら、
createDeviceじゃなくて、150文字くらいのもっさい関数でした…。

スケルトンは動くようになって良かったけど、DLL動的したら、この先ずっとDLL内の関数名を気にしながら開発しないといけないのか・・・?



365 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 00:13:40 ID:4mpK8EPR]
シビアに速度を求めないのだったら、 Irrlicht の API を呼び出す単純なラッパーをつくってやればいいんジャマイカね。

俺はスクリプトエンジンから API 呼ぶプラグインつくってるけど、メモリ 2G 未満のもっさりノートで
EventReceiver とか Animator をスクリプトに記述するような無茶しても結構問題なく動いてる。


366 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 00:16:19 ID:4mpK8EPR]
どうでもいいが間違ったorz
メモリ 1G 未満 ね。

367 名前:モデム壊れてた ◆YATA/oetrw mailto:sage [2007/12/12(水) 00:32:10 ID:hv2mu0E9]
>>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を隠蔽化。
etwas.wolfish.org/files/IrrlichtML-1.4-win32Linux.zip


368 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 00:39:16 ID:hv2mu0E9]
かぶった。
>>365さんのほうが詳しそう。

>>364
extern 'C'されてないとCreateDevice@fooxyzzzzのような別の関数名に置き換わってしまうんです。

369 名前:363 mailto:sage [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では対応出来ない?

370 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 16:19:26 ID:M90VuyCU]
サンプルばっかりに頼らないでAPIドキュメントで調べろよ
でも回転は見当たらないから自分で頂点触るしかないのかな

371 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 00:05:19 ID:NC1QbeZC]
前から気になってたんだが、
scene::ISceneNode::getRotation( ) は const core::vector3df& を返すのに、
scene::ISceneNode::getPosition( ) が const core::vector3df を返すのはなんでだぜ。
値返しなのに const はおかしいから単なるバグかね。


372 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 17:42:06 ID:G2b9tMyR]
クォータニオンを扱う関数があるみたいですけど、どうやって使うんですか?

373 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 01:35:15 ID:9HMeNQD7]
GOGOのサンプルをファイル分割してみた
整理してうpします

374 名前:名前は開発中のものです。 mailto:sage [2007/12/18(火) 23:55:35 ID:cUWqWIvR]
>>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);


376 名前:名前は開発中のものです。 mailto:sage [2007/12/20(木) 17:17:48 ID:D8YXZHbq]
FEZのようなインターフェースを作れないかな?
FPSっぽいカメラとキー操作なんだけど
FPS視点ではなく3rd視点という

377 名前:名前は開発中のものです。 mailto:sage [2007/12/20(木) 17:29:57 ID:1FySn3dT]
普通に作れるでしょ・・・

378 名前:名前は開発中のものです。 mailto:sage [2007/12/21(金) 02:22:22 ID:W06+iKTa]
当たり判定は正確ですか?

379 名前:名前は開発中のものです。 mailto:sage [2007/12/22(土) 03:21:29 ID:qH4tCHw4]
CADとかShadeで作ったメッシュを読み込むには、
どの形式でエクスポートするのがベターでしょうか。
Xファイルだと読み込めないこと多いので……。

380 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 23:31:42 ID:VhCZgB33]
最近ばかり初めてゲームの製作をするですが、
どうイジってIrrlichtでトゥーンレンダリングを出来ますか?

381 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 23:50:22 ID:5nrbPA5X]
ja.wikipedia.org/wiki/シェーダ

382 名前:名前は開発中のものです。 mailto:sage [2007/12/25(火) 00:34:31 ID:IJC6bSYh]
>>380
Toon(Cell) Shading snippet using HLSL. See below.
irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=18281

383 名前:名前は開発中のものです。 mailto:sage [2007/12/26(水) 09:27:39 ID:xCkClyRy]
CollisionResponceAnimatorを二つ設定すると
時間経過ごとに重力が増大していくんだが…Irrlichtのバグ?
SDK同梱のサンプルマップで試したんだが
落下速度が異常に早くなって、階段すら上れなくなる。

誰か、解決法や関連情報を知っている人はいないでしょうか。

384 名前:名前は開発中のものです。 mailto:sage [2007/12/26(水) 19:33:39 ID:yUN26AYS]
ColisionResponceAnimatorを2つ使う必要性が良くわからないんだが。
2つ以上のオブジェクトとColisionResponceしたいんなら、
1つのColisionResponceAnimatorにMetaTriangleSelectorを当てればおk



385 名前:名前は開発中のものです。 mailto:sage [2007/12/26(水) 23:44:30 ID:xCkClyRy]
>>384
出来ました。ありがとうございます。


386 名前:名前は開発中のものです。 mailto:sage [2007/12/27(木) 21:44:30 ID:8IcVTLM6]
Irrlichtでクリッピング距離を変えるにはどうしたらいいでしょうか。
Direct3Dでは
D3DXMatrixPerspectiveFovLH()
の引数で設定することができましたが、
Irrlichtではそれらしきものが見当たらず・・・

387 名前:386 mailto:sage [2007/12/28(金) 20:40:22 ID:Hp4RPsA7]
自己解決しました。

一応書いとくと
scene::ICameraSceneNode* camera = smgr->addCameraSceneNode(〜);
で、
camera->setFarValue( 距離 );
で最大距離、
camera->setNearValue( 距離 );
で最小距離。

なんでForum見ることを思いつかなかったんだろ(;´Д`)

388 名前:名前は開発中のものです。 mailto:sage [2007/12/28(金) 22:39:55 ID:ShcOiBSU]
>>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 mailto:sage [2007/12/30(日) 12:25:25 ID:KN9VCd/i]
ありがとうございます。
ちゃんと調べないとダメですねorz

390 名前:名前は開発中のものです。 [2008/01/04(金) 06:42:00 ID:B3YR/5Yx]
イルリッヒは時代遅れ

391 名前:名前は開発中のものです。 mailto:sage [2008/01/04(金) 07:34:17 ID:CcNPOaPX]
今は何の時代?

392 名前:名前は開発中のものです。 [2008/01/04(金) 10:30:21 ID:B3YR/5Yx]
オーガ

393 名前:名前は開発中のものです。 mailto:sage [2008/01/09(水) 00:31:36 ID:INF4za2E]
あけましておめでとうございます
非公式ドキュメントのトップページが壊されていたため閲覧不能でした
先日修正しておきました

あそこの管理人さんは今どうしておられるのやら

394 名前:名前は開発中のものです。 [2008/01/09(水) 15:48:14 ID:oe3Z1pea]
おまえらなんでwindowsでイルリヒト使ってんの?
ダイレクトエックソでも使ってろよ



395 名前:名前は開発中のものです。 mailto:sage [2008/01/09(水) 19:16:17 ID:1bUx6/kQ]
低レベルな釣りだな
出直して来い

396 名前:名前は開発中のものです。 mailto:sage [2008/01/09(水) 21:37:04 ID:bwau3Xen]
しかしイルリヒトと読んでるところは評価出来る

397 名前:名前は開発中のものです。 mailto:sage [2008/01/23(水) 17:55:29 ID:jmfBDAYQ]
IrrlichtMLの中の人見てるみたいなので質問ここに書きます。
CGUITTFontについてです。
新たな文字が現れるたびにテクスチャに確保しているようですが、これはたとえばノベル
ゲーム等文字種が多数現れる場合、メモリ不足に陥らないでしょうか?キャッシュの上限
を設定したほうがよい気がしますが…

398 名前:名前は開発中のものです。 mailto:sage [2008/01/23(水) 18:05:26 ID:jmfBDAYQ]
連投すいません。フルスクリーン<->ウインドウの切り替えはデバイス作り直し
しかないのでしょうか。
その場合、deviceをdropしたら確保したリソースは自動的に開放されるのでしょうか?

399 名前:名前は開発中のものです。 mailto:sage [2008/01/23(水) 19:23:35 ID:Sr3V79Hv]
>>397
中の人じゃないが、前実験で第二水準まで全部出してみたけど
メモリ不測にはならなかったよ。
WindowsXP 512MB環境

400 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 00:06:10 ID:FpXK7fP/]
ちょっと計算してみました。A8R8G8B8の16x16のテクスチャを確保すると1グリフあたり1024
byte=1kbyte。それが約2万文字なので約20mbyteということで比較的最近のビデオカード
だと問題の無い値に収まりますね。

とはいえたかがフォントのレンダリングにビデオメモリ20mbyteも食われるのはもったいない
おばけが出る気がします。20pixel位のフォントをレンダリングしたらさらに4倍に膨れ上がり
ますし。

やっぱり当初の計画通りFreeTypeを直接叩いてフレームバッファ(あるいはテクスチャロ
ック)に転送するという形をとることにします…

401 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 01:14:48 ID:qECrGTwM]
>>397
MLの中の人です。数日間、モニターが壊れて画面がとてもカレー色でした。

一見メモリ消費量が多いように見えても、読込フォントの最大文字数までです。
なので、現在のOS上では微々たる消費量ではないかと。。
テクスチャは文字単位ではなく、フォント単位で確保されると思ったほうがいいです。
ビットマップフォントも含めて、メモリ不足に遭遇してないので放置ということで…。

どうしても気になるようなら、getFont(...)せずにCGUITTFontを直に生成して、必要なくなったらdrop()してはどうでしょう?
一部のGUIに適用するだけなら、この方法でうまく開放されると思います。


>>398
フルスクリーンへの切替は、IrrlichtサンプルのDEMOのようにデバイス作り直しのみ。
deviceをdrop()した時点で、Irrlicht管理のオブジェクトは全て破棄してくれますよ。



402 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 01:14:49 ID:YttCO1k2]
>>400
おまいさんのこだわりは結構だし、それを止める気はないが、
現実によっぽど長編の小説でも実際に使われてる文字は
せいぜい2000文字ぐらいだぞ。
(以前トルストイの「戦争と平和」の訳で約1800文字種とかいうのを読んだ)
普通のゲームならせいぜい1000文字ぐらいじゃないか?
なので、限りなく杞憂に近いとは思う。
が、まあがんがれ

403 名前:名前は開発中のものです。 [2008/01/24(木) 04:50:43 ID:xvOsgKrW]
横から失礼。

コンシューマだとシナリオ作った後に
よく使う文字をカウントして、必要最低限の文字をもたせたり、
あとは、最近(?でもないか)ならキャッシュ機構をもたせて、
よく使うのはキャッシュヒット、あまり使わないのはその場で生成する。

MLのライブラリの中身見てないから、すでに実装されてるよ!だったらスマソ

404 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 09:52:27 ID:YttCO1k2]
>>403
CGUITTFontはキャッシング機構を持ってる。
で、400が言ってるのは、
「キャッシュに上限がないみたいだけど、メモリ大丈夫?」
ということ。
で、現実としてそう問題にならんよ、と返答されてる



405 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 10:23:18 ID:FpXK7fP/]
>>403
CGUITTFontは一度でも現れた文字は必ずキャッシュされているようです。
だからビデオメモリの消費量が心配なのですが…

>>402
情報ありがとうございます。ですがもうFreeTypeでレンダリングするところ
まではできてしまったので、もうこのままテクスチャ転送まで進めたいと思います。
1枚絵表示するのにテクスチャ確保するのもあほみたいなので、フレームバッファに
直接書き込む手段と、2D周りがかなり弱いのでその辺補うライブラリも構築することにします。

それと動的ロードの話が出てきましたけど、IReferenceCountedの実装を見るとヘッダ
ファイルのなかでdelete thisしてます。
これは、コンパイラの最適化か何かでDLL呼び出し元でdeleteされるとまずくないですかね?
new/deleteの実装が異なるコンパイラで作成されたDLLを動的ロードすると、delete時に
不整合を起こすような気がします。あまり詳しくないのでひょっとしたら無駄な心配
なのかもしれませんが…

406 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 10:45:41 ID:FpXK7fP/]
>>401
回答ありがとうございます。
フルスクリーン切り替えは面倒ですね…。

407 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 10:49:29 ID:YttCO1k2]
>>405
0.5ぐらいの時代だから2年近く前?にdeleteの問題は公式フォーラムで議論されてたはず。
で、結論は「問題なす」だったはづ

408 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 17:48:13 ID:FpXK7fP/]
>>407
以前に議論された話題だったのですね。失礼しました。


409 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 19:00:41 ID:MPN2QJSG]
質問です。直感でさくっとお答え頂きたいです。
FPSゲーを作ろうとしていて、よさげなライブラリを探しています。
画面を左右2分割にして、2人でプレイ出来るようにしたいのですが、
irrlicht での実装は描画の面において楽に出来ますか?

410 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 20:32:40 ID:jU51nQMI]
>>409
ビューポートとカメラの切り替えで実現できると思います>分割対戦

411 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 22:21:07 ID:Vt/UlEbN]
>>409
公式のチュートリアルに画面分割のサンプルあるお

412 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 23:45:04 ID:+c4l9exa]
OctreeTriangleSelectorを使ってメッシュのどの面とどの面が
衝突したかまで分かる詳細な衝突判定ってできますか?

413 名前:409 mailto:sage [2008/01/26(土) 06:10:08 ID:/SAwn9ff]
>>409-410
レスありがとうございます!
ュルルルリッヒエンジンでがんばってみます。

414 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 06:11:19 ID:/SAwn9ff]
スマソ >>410-411ですた。ありがとう!



415 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 18:00:09 ID:0EKxzkd2]
OGREからこっちに鞍替えを目論んでます。
本家のFeaturesに「BlenderのエクスポーターがSDKにあるよ」みたいな事が書いてあったんで1.4のSDK落としてみたんですが、見つかりません…
readmeのフォルダ一覧にもexportersフォルダが書いてあるのに見つからず。
どうすれば…orz
OGRE用のメッシュファイル(.mesh)も読めるみたいですが、試してみた方いますか?

416 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 18:35:32 ID:zD+QiSlQ]
>>415
OGREのCVSに「blenderimport」と「blendersceneexporter」ってフォルダがあるけど
これがBlender関係のSDKじゃね?

417 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 21:19:47 ID:0EKxzkd2]
>>416
それってもしかしてコレのことですか?
ttp://ogre3d.org/wiki/index.php?title=Tools:_Blender&printable=yes
OGREでBlenderで作ったデータを読むことはできてます。

思いっきり要すると
Blenderで作ったデータをIrrlichtで読むにはどうすればいいの?
という事が聞きたかったのですが、うまく伝えられてなかったらすいません。
OGREで使ってた.meshのデータをIrrlichtでアニメ付でちゃんと読めればベストなんですが。

ttp://irrlicht.sourceforge.net/features.html

there are exporters for popular 3D packages (Blender, 3DSMax, Gile[s], ..) included in the SDK.
って書いてあるから、SDK落とせば何か入ってんだろ、とか思ってたらそれらしいのが入ってないし。。。
BlenderとIrrlichtの組み合わせでやってる人、居ませんか?

418 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 22:32:35 ID:zD+QiSlQ]
>>417
すまん、「本家のFeatures」を、OGREのFeaturesと勘違いしてたみたいだ
Irrlichtのスレなのにな・・・

Irrlicht + Blenderなら、アニメーションが出来るDirectXのメッシュ(.x)使った方がいい
IrrlichtはXメッシュをそのまま読めるからIrrlicht用にわざわざコンバートしなくて済むしな

ただ、Xメッシュはツールによってフォーマットが少し異なる場合があるので注意な

419 名前:名前は開発中のものです。 mailto:sage [2008/01/27(日) 00:34:07 ID:+Y3aPJmy]
メタセコで作ると「{」の位置のせいで読めなかったりな。
仕方ないから「{」の前に改行入れるコンバータ作っちまった。

420 名前:名前は開発中のものです。 mailto:sage [2008/01/27(日) 15:56:59 ID:oNRFDMwA]
>>418
.xで試してみました。
IrrlichtのMesh Viewerで読めたので、たぶんコレで大丈夫だと思います。
ありがとうございます。

421 名前:名前は開発中のものです。 mailto:sage [2008/01/28(月) 17:43:17 ID:afuGywxJ]
>>420
ところでOGREからこっちに移行する気になった理由はなんだったんだろか

422 名前:名前は開発中のものです。 mailto:sage [2008/01/28(月) 17:58:37 ID:XOEvg/3a]
どうせ「英語読めない」でしょ

423 名前:名前は開発中のものです。 mailto:sage [2008/01/28(月) 23:58:25 ID:G7mZ8jO6]
自分はOGRE知らないのですが、ライセンスに惹かれてIrrlichtを選択しました。

ところで、drop()を忘れそうな自分はboost::intrusive_ptrを愛用していますが、
使ってる人はいるでしょうか?


424 名前:名前は開発中のものです。 mailto:sage [2008/01/30(水) 11:06:43 ID:+OYkniIM]
>>423
俺も昔は使ってたけど、サイズがでかくなるし、ポインタコピーするたびに
内部でごにょごにょやってるしで精神衛生上よろしくない

だから、解放処理が必要なオブジェクトはシングルトンなマネージャクラスに任せてる

マネージャのコンストラクタで生成&初期化して、デストラクタで開放させれば
管理する必要が無くなる
やろうと思えば手動開放もできる


使うときは

IrrlichtDevice *dev = IrrManager::getSingleton().getIrrDevice();

みたいな感じで、初期化さえしとけばいつでもどこでもアクセスできる


OGRE使ってこの方法を見てから、俺の中ではこれが主流になってる



425 名前:名前は開発中のものです。 mailto:sage [2008/02/02(土) 16:46:40 ID:XyRp6hRG]
irr1.3.1で壁の向こう側など、見えないポリゴンの描画を省略したいのですがうまくいきません。
現在は自分の後ろ側などしか省略されず、視線方向のものは全て描画されています。
マップ作成にはGtkRadiant1.4.0を使用しているのですが、マップの作成法に問題があるのでしょうか?
それともそういった処理はirrに何かコードを追加しないといけないのでしょうか?
描画ポリゴン数が4万を越えたあたりから貧弱ノートでは厳しくなってきました。

マップロード部はこんな感じです。
IQ3LevelMesh *mapMesh = (IQ3LevelMesh*)scene->getMesh("maps/village.bsp");
IMesh *geometry = mapMesh->getMesh(quake3::E_Q3_MESH_GEOMETRY);
ISceneNode *mapNode = scene->addOctTreeSceneNode(geometry);


426 名前:名前は開発中のものです。 mailto:sage [2008/02/05(火) 00:59:32 ID:iDwHPm2h]
Material.Thickness=10.0;
driver->setMaterial(Material);
driver->draw3DLine(・・・)

というとき、Thicknessの値をいろいろ変えても画面上の線が常に1ドット幅なんですが、
どうすれば2ドットの線などを描けますか?

427 名前:名前は開発中のものです。 mailto:sage [2008/02/05(火) 20:36:47 ID:iDwHPm2h]
エンジンをDX9からOPENGLにしたらうまくいきました
メインサポートがOpenGLだったんですね

428 名前:名前は開発中のものです。 mailto:sage [2008/02/06(水) 00:53:20 ID:Ac93WCkK]
たぶん、ラインのサイズ指定がOpenGL依存なんだろうと思う

429 名前:名前は開発中のものです。 mailto:sage [2008/02/13(水) 21:57:17 ID:sC00+SwF]
OpenGLだとaddLightSceneNodeで照らしたaddCubeSceneNodeがちゃんと見えるのに、
DirectXだと光源がない状態になってしまいます。(真っ黒

しかし、ある友人のパソコンでは、
OpenGLのときにguifont->drawをするとクラッシュしてしまうので、(DXなら動く)
DirectXのサポートは続けておきたいのですが、どうしたらいいですか?

その他人のパソコンでguifont->drawが使えない理由としてどんなものか考えられるか、と、
DirectXに切り替えると上の事例が起きる問題の解決方法を教えてください。

430 名前:名前は開発中のものです。 mailto:sage [2008/02/13(水) 23:32:38 ID:1ZAmjx1a]
>>429
友人のGPUがOpenGL2.0に準拠してないかバグ持ちドライバな可能性がある


431 名前:名前は開発中のものです。 mailto:sage [2008/02/13(水) 23:43:28 ID:sC00+SwF]
>>430
うーなるほど そうだとするとこっちには手が無いですね・・・ ありがとうございます

432 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 13:19:44 ID:uwsfmr7Z]
IrrlichtML版のgetFontで得た日本語フォントをISceneManager::addTextSceneNodeに渡すと、
CGUITTGlyphのデストラクタでエラーが出ます。

サンプルでもNode関係を使っているのはなさそうなので、
これは仕様なのでしょうか?
環境はWindowsXPMCEのSP2、IrrlichtML1.4、VisualStudio2005Pro、freetype-2.3.5です。

433 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 22:44:27 ID:aJ3r8mIn]
>>425
見えない敵とかの描画を省略しようと思ったらそら交差判定が必要になるでしょう

434 名前:名前は開発中のものです。 mailto:sage [2008/02/16(土) 00:11:18 ID:Kcju6cnr]
ttp://lesson.ifdef.jp/B03.html
このバグ、1.4では直ってないの



435 名前:名前は開発中のものです。 mailto:sage [2008/02/16(土) 19:51:58 ID:BJXzP4O8]
皆さん音楽はIrrlichtで音楽はどうしてますか?IrrKangはフリー以外だとライセンス購入が
必要ですし…何かお勧めのライブラリがあれば教えてほしいです。

436 名前:名前は開発中のものです。 mailto:sage [2008/02/17(日) 11:12:58 ID:k/Iqe8sD]
xファイルの読み込みについて質問があります。
irrlichtでxファイルを読み込むときに右手、左手の座標系を指定して読み込ませることって
できるんでしょうか?

ttp://gamdev.org/up/img/11075.jpg
↑のようにXSIで作成しているときと、Xファイルビューアまたはirrlicht上で表示したときに鏡
 像のような表示になってしまうのを、なんとかしたいのです。

環境はWinXP VC2008 irrlicht-1.4 です。

437 名前:名前は開発中のものです。 mailto:sage [2008/02/18(月) 20:53:38 ID:9PaR4TSR]
>>432
driverに預けてあるテクスチャを本体が先に開放してるくさい
どこかで既にremoveTextureが呼ばれてる気がする

addTextSceneNodeの後にfont->grab()でもしておけばエラー回避は可能
その代わり、テクスチャ開放がされなくなります
どうしたものか

438 名前:名前は開発中のものです。 mailto:sage [2008/02/19(火) 11:43:22 ID:CEbiXydm]
ニコニコ吹いたw

439 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 02:38:40 ID:eWBznvro]
過疎り杉で全俺が泣いた。

ところで、436の件が自己解決したので報告。
汚い方法ではあると思うけど
irrlichtのCXMeshFileLoaderを元にx座標を反転させながら
xファイルを読み込むファイルローダを作って解決させました。

440 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 11:04:27 ID:OyDG9+KH]
>>439
おつかれです。

441 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 23:42:36 ID:ve4woYRm]
カメラがどんな向きを向いていても
常に手前から光が当たる
手抜きライティングをするにはどうすればいいですか?

442 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 00:44:37 ID:pSPDiQm8]
>>441
ライティングしないようにするとかはダメ?
(ポリorテクスチャの色そのまま表示するように)
対象ノード->setMaterialFlag(irr::video::EMF_LIGHTING, false);

443 名前:lesson.ifdef.jp mailto:sage [2008/02/27(水) 01:28:06 ID:7TCghY78]
>>441
考え方として、以下のようなものはどうでしょう?
1.カメラの背後に光源という感じに、カメラを親として光源を設定
2.キーが押されたら、カメラの代わりにワールドを動かす
これで、一応はカメラの方向から必ずライティングされるかと

444 名前:名前は開発中のものです。 mailto:sage [2008/02/28(木) 15:18:04 ID:e5iGSVK/]
いつになったらゲームパッド対応するんだろう・・・




445 名前:名前は開発中のものです。 mailto:sage [2008/02/28(木) 23:49:36 ID:9jMY1Ybl]
>>442
立体感つけたいのでライティングします。
>>443
CameraSceneNodeFPSと組み合わせたいのでそれはちょっと。

446 名前:lesson.ifdef.jp mailto:sage [2008/02/29(金) 19:57:00 ID:MU+29BuV]
>>441
「常にカメラの方向からライティングされる」という意味ですよね?
「常に手前」という表現がちょっと曖昧なので、上記で解釈しました。

ライトを作成する時に、親を「ライト」にすれば大丈夫です。
(前回のは、親に設定したはずが別の値を設定していたため、
 期待した動きにならなかったので、別の方法を提示してみました。
 今日見たら引数が間違ってた・・・)

//FPSカメラを作成
ICameraSceneNode *CameraNode = smgr->addCameraSceneNodeFPS(0,100,5);

//カメラを親にライトを設定(ライトはカメラの位置)
smgr->addLightSceneNode(CameraNode, vector3df(0,0,0), SColorf(0xFFFF0000), 100.0f);

第1引数にカメラのnodeをセット
第2引数に親からの位置を(0,0,0)=親と一緒をセット
で、やってみてください。


447 名前:lesson.ifdef.jp mailto:sage [2008/02/29(金) 19:59:41 ID:MU+29BuV]
446の修正
・ライトを作成する時に、親を「ライト」にすれば大丈夫です。
 ↓
・ライトを作成する時に、親を「カメラ」にすれば大丈夫です。


448 名前:441 mailto:sage [2008/03/04(火) 23:27:13 ID:+F3tYXlG]
出来ました!こんな感じでやりました。

scene::ICameraSceneNode *camera = smgr->addCameraSceneNodeFPS(0, 100.f, 100.f);
camera->setPosition( core::vector3df(0,0,-100) );

scene::ILightSceneNode *light = smgr->addLightSceneNode( camera, core::vector3df(0,0,0) );
light->getLightData().Type = video::ELT_DIRECTIONAL;

449 名前:lesson.ifdef.jp mailto:sage [2008/03/08(土) 20:08:31 ID:42plfOng]
>>441
おめでとー!

これを少しいじれば、太陽のように見せることもできそうですね。
あとでやってみようかな。

450 名前:441 mailto:sage [2008/03/08(土) 23:32:53 ID:vuhDlgNP]
>>448
あれ、ELT_POINTでも同じになっている気がします・・。
点光源なのに離れても暗くなりません。
あと、テクスチャつきだとライトの色は反映されているみたいですが影がつきません。

451 名前:lesson.ifdef.jp mailto:sage [2008/03/09(日) 01:14:28 ID:QaJyCdZ9]
>>441
テクスチャつきのオブジェに対してのライトは
マテリアルの設定を操作する必要があります。

SMaterialのLightingを見てみてください。
これがライトの影響を受けるか受けないかです。
(デフォルトでは影響を受けないようになってたかも)

452 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 21:38:47 ID:qxZlvuLX]
αつきテクスチャを貼り付けたビルボードをαテストを使って透過させつつ、
頂点カのαを減少させてフェードアウトってできるんでしょうか?
EMT_TRANSPARENT_ALPHA_CHANNELに頂点のα値を反映させたいんです

453 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 23:26:06 ID:txVQuh45]
lessonさんのライトのところを見たんですが
FPSゲームでよく使われるスポットライトも作れるんでしょうか
その場合カメラと連動してライトも動かさないといけないのですが・・・

454 名前:名前は開発中のものです。 mailto:sage [2008/03/12(水) 22:51:57 ID:biTsIJxr]
>>451
いや、デフォルトではtrueですが・・。
何でだろ、examplesのSpecial FxのroomMeshを読み込む部分のコードを
そのままコピーしたらちゃんとライティングされています。



455 名前:441 mailto:sage [2008/03/12(水) 23:35:51 ID:biTsIJxr]
その内ソースをupします。

456 名前:名前は開発中のものです。 mailto:sage [2008/03/13(木) 16:26:24 ID:Aiv+dbIO]
SIRENみたいなゲームも作れそうですね


457 名前:名前は開発中のものです。 mailto:sage [2008/03/13(木) 17:25:48 ID:23U/XaUN]
>>453
頂点単位でしかライティングできないから、ライトマップ使わないとだめ。
勘違いしてたらすまん。

458 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 22:33:58 ID:HWct05mu]
>>457
いや、出来なくないと思いますが?
バンプマッピングとかパララックスマッピング使えますし。
フォンシェーディングは自分でシェーダー読み込まないと使えないみたいですが。

459 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 23:23:15 ID:haIYreE8]
>>453
スポットライトはパララックスマッピングやバンプマッピングでは使えないようです・・。
しかもライト2個までだし!!自分で実装しないといけませんね、これは。

ttp://gonzo.dip.jp/~gonzo/cgi-bin/uploader2/upload.cgi?mode=dl&file=4407
ライティングはどうやってもうまくいかないのであきらめることにしました・・。
それよりさまざまな問題が。
何故かどうやっても1バイトのメモリリークがなくなりません。行やファイル名が表示されないんです。
OBBTreeを使ったメッシュ同士の衝突判定クラスで、
三角形を含む全ての当たっているOBBを検出したいのですが1個しか検出できません。
ソースのDLKEYはobbtreeです。

ttp://home7.highway.ne.jp/nomura_y/prog005.htm

OBBTreeの使い方はここを参考にしました。というよりプログラムをコピーしました。

460 名前:441 [2008/03/17(月) 23:32:00 ID:haIYreE8]
>>459 = >>441
とりあえず上げときます。

461 名前:名前は開発中のものです。 [2008/03/21(金) 13:41:00 ID:k9t2KKAY]
単純なコリジョンについて誰か教えてください。
BB対BB、セレクタ対セレクタ、セレクタ対BBのどれかで
単純に現在接触しているかを知るにはどうすればいいですか?

462 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 17:06:47 ID:ipDiEarq]
円が2個あるとします。 接触する事とは、中心と中心の距離で求められます。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<147KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef