【3Dエンジン】Irrlicht初心者質問スレ【高速描画】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2006/10/05(木) 06:50:19ID:UN/zUzoQ※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近Irrlichtを始めたばかり
3.SDKを見ても、Googleで検索しても、エキサイト翻訳でもいまいち理解できない人
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「英語読め」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する人 】
・ どんな事で躓いているのか明確にする。
・ 長くならないなら躓いている部分のコードを晒してみてください。
・ 解決した場合、お礼を言うのは当然ですが、何をどうしたら解決したかを明確に書くこと。
前スレ
http://pc8.2ch.net/test/read.cgi/tech/1104179696/
0235名前は開発中のものです。
2007/09/12(水) 01:47:37ID:8kBEhANN1.ヘッダよりも下で基本名前空間を指定する
2.using namespace core;、using namespace std;を使わない(使うたびに指定する)
この二つに注意してもエラーになる?
少なくともvc2005では、その現象を再現できなかった
0236234
2007/09/12(水) 06:57:46ID:yt2vr1g+はい、使うたびに指定していますが、なってしまいます。
同じソースをVC2003でビルドしますと、うまく通るのですが、
他に使ってるライブラリがVC6を要求していまして、
VC6でビルドしないといけないもので、どうしたものかと。。
0237234
2007/09/12(水) 12:00:39ID:TaH0UuNnありがとうございます。
0238名前は開発中のものです。
2007/09/12(水) 12:27:50ID:8kBEhANNそれなら、考えられる対策3つほど簡単な順に。
・VC6にSP6を適用する
http://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まで)
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
・ライブラリ部分だけをDLL内部に閉じ込めて影響範囲を狭める。
やりとりはブリッジ関数をかませたりして面倒なのが欠点。
上から試して解決すればいいんだけどねぇ。
それと、運がいいとVC6でライブラリビルドしたものをvc2003以降でそのまま使えるかも。
0239名前は開発中のものです。
2007/09/12(水) 12:30:31ID:8kBEhANNおめでとう、入れ違いになった。
解決方法はどんな風に?
0240234
2007/09/13(木) 02:27:50ID:Vi6ngnsF#include <string>
↓
#include <string>
#include <irrlicht.h>
で通りました。
すみませんありがとうございましたorz
0241名前は開発中のものです。
2007/09/17(月) 18:17:03ID:w4SFU02uサンプルにあるVC6用のプロジェクトファイルだとうまくいったりいかなかったりだけど、
新たにプロジェクト作ってソースとかヘッダーいれるだけだとうまくいかないです。
0242名前は開発中のものです。
2007/09/17(月) 20:45:49ID:dcjZVnkbあれってまだIrrlichtの名残りある?
本家よりも拡張されてるようだけど、動作不安定で俺のところは落ちるよ
0243名前は開発中のものです。
2007/09/18(火) 02:25:01ID:7EBKJzTE0244名前は開発中のものです。
2007/09/19(水) 17:41:58ID:+A3proP+そろそろエンジンに頼らないとやってられなくなってきた。
0245名前は開発中のものです。
2007/09/19(水) 19:16:55ID:RUbs+riSあるのかしら、とは信頼性のこと?
レンダリングの挙動がおかしい場合もあるけど
少なくともエラー落ちはないに等しい
0246名前は開発中のものです。
2007/09/22(土) 13:44:43ID:a9XL70nj0247名前は開発中のものです。
2007/09/28(金) 22:18:30ID:J7/3w0px0248名前は開発中のものです。
2007/09/29(土) 00:45:20ID:hb9qADnPごもっとも過ぎるw
DX10でしか実現できない機能を実装する段階にならないと対応はないんじゃないかな?
つまり当分先な気がす
0249名前は開発中のものです。
2007/09/29(土) 06:30:01ID:7kgtZ9g60250名前は開発中のものです。
2007/09/29(土) 08:55:07ID:6wJlaFYW0251名前は開発中のものです。
2007/09/29(土) 08:57:22ID:PKANHVaL0252名前は開発中のものです。
2007/09/29(土) 10:06:15ID:UnzWy8dg0253名前は開発中のものです。
2007/09/30(日) 18:44:07ID:sFU/qm7GDX10のラッパーと言うべきか
DX9だってエミュレーションだけどVistaで動くしな〜
0254名前は開発中のものです。
2007/10/01(月) 18:29:07ID:nK/QuGDoIrrlichtのローカル用語でそういうのをドライバというのさ
1.CD3D9*系のモジュール(全部で7つ、必要なら増やせ)をDX10対応に書き換えて、
CD3D10*系モジュールを作る
2.CIrrDeviceWin32,cppをいじって、新しく作ったモジュールに対応できるようにする。
これだけだ、がんがれw
0255名前は開発中のものです。
2007/10/01(月) 21:52:00ID:VPa19YHN次にfloatのテクスチャを作れるようにしようとしたんですが
DirectX9では出来たものの、OpenGLでは知識が無くて苦戦・・
0256名前は開発中のものです。
2007/10/01(月) 22:13:48ID:l2LADDgi18禁の定義を診断してくれないだろうか、セーフなら15禁、アウトなら18禁って事で。
問題1:
イタイケなおにゃの子が、淫魔に追っかけられるクロックタワーのパロゲー。
捕まるとハァハァされる、絵による描写は無く台詞のみ。
問題2:淫語使いまくり、顔グラに汁グラあり。
0257名前は開発中のものです。
2007/10/01(月) 22:17:10ID:bT+F18r8でも、すれ違い
ほかのところでやるべし
0258名前は開発中のものです。
2007/10/01(月) 22:34:55ID:l2LADDgi了解、回答ありがとう。
…と、言われたものの、他ねぇ。
0259名前は開発中のものです。
2007/10/01(月) 22:49:35ID:l2LADDgiここ質問スレは質問スレでも、スレ立てスレじゃない!?
やっべ、なんという誤爆!スレ汚しマジすまん!
でも回答サンクスコ(´・ω・`)
0260名前は開発中のものです。
2007/10/04(木) 23:49:59ID:XO6lWepSある一点からキューブマップをレンダリングしたいです。
0261名前は開発中のものです。
2007/10/05(金) 10:17:02ID:IKhaq7cZほれ
http://www.irrlicht3d.org/wiki/index.php?n=Main.IsometricProjectionByJohnFredCee
ヒント:buildProjectionMatrixOrthoLH
公式のOrthgonalチュートリアル貼ろうと思ったらリンク切れてたしw
0262名前は開発中のものです。
2007/10/05(金) 23:17:03ID:5WSrAfdXトンクスです。
この関数は知っていましたが使い方が分かりませんでした
0263名前は開発中のものです。
2007/10/06(土) 12:26:08ID:Iq/e+TZM0264名前は開発中のものです。
2007/10/06(土) 21:22:18ID:OSyH3sfKただし、まだまだ作業中みたい
今のうちに不具合報告すれば即直してくれそうだなぁ
ところで、IGUIFileOpenDialogって
Unicodeとマルチバイト、どっちでコンパイルしても
日本語は文字化けするよね?
0265名前は開発中のものです。
2007/10/06(土) 22:27:35ID:QRh8Z4nZGogoのzgock氏が公式フォーラムにパッチ投げてくれてる。
で、MadHyde氏のIrrlichtML(Truetype組込版)はそのへんマージ済
ttp://etwas.wolfish.org/Irrlicht/irrlichtml.html
0266264
2007/10/07(日) 01:13:43ID:IkjREsJqうぁ、実はそのMadHyde本人です
本家のみの使用で解決してる人はいるのか気になって聞いてみた次第
せめて表示だけは文字化けしないように
zgock氏のマルチバイト変換コードを
オフィシャルでマージしてもらえるようにレポートしてみる
0267名前は開発中のものです。
2007/10/07(日) 13:50:19ID:f6k7egVqてら乙
Gogoのzgock氏、どうもご本人の興味がIrrlichtから
CG/Poserとかの方にいっちゃったみたいで、
(メッシュファイル関連でPoserに手出してたからそっちが楽しくなっちゃったんだろね)
そっちの世界でセルシェーダのプラグイン書いたりがんがっておられるようです。
MadHyde氏が日本語関連の砦です。
がんがってくだされ
0268名前は開発中のものです。
2007/10/08(月) 10:26:52ID:bWH+igssまだ導入もしていないのだけれども、Irrlicht SDK 1.2は安定版ですよね
プログラムの偶数バージョンは安定版のはずだけど自信がなくて…
0269名前は開発中のものです。
2007/10/08(月) 10:50:26ID:o9MbTnSilinuxkernelがそうであることは知っているけど、、、
0270名前は開発中のものです。
2007/10/08(月) 11:16:37ID:YblPsSasIrrlichtの場合あまり関係ない
ので、安心して1.3使ったがいい
0271名前は開発中のものです。
2007/10/08(月) 12:00:58ID:bWH+igss0272名前は開発中のものです。
2007/10/09(火) 16:22:23ID:bAtjWg0Oボーン取得して動かせる事できる?
xファイル読み込める?
当たり判定ある?
0273名前は開発中のものです。
2007/10/09(火) 16:27:38ID:saf09NRl目指してる方向性が違うのでどっちが凄いかは決められない
ボーン取得はできる
xファイルは読めるし、それ以外の対応フォーマット多彩
コリジョンはある
0274名前は開発中のものです。
2007/10/09(火) 19:38:30ID:biTCbtf6ただし日本語関連が非公式頼り(>264-266)なのと、
2D描画機能が最低限なのがネックか。
スケールや回転を行いたいだけでも3Dが必要になる。
あとは、言うまでもなく日本語資料の少なさ。
英語資料を含めても意外と抜けが多く、3Dマップやmd2以外のモデルの使い方は不足気味。
Lunaはドキュメント不足気味で、取っつきにくい。3Dライブラリなのにチュートリアルに3Dがないし。
Lunaのおおよその機能は次世代たるSeleneに移植されていて、そちらのほうが資料面ではマシ。
Seleneはまだメジャーリリース前なので、どうしても機能や関連ツール群で劣る。
Irrlichtに比較して、シーン構築やGUI部品がまだ実装されていない。
ただし2D描画機能はちゃんと積んでいる。代表的完成品「トラブル☆ウィッチーズ」が2DSTGだし。
あとは、独自モデルなのはともかく、モデルの作成ツールがやや使いづらいのがネック。
(テクスチャマップ貼り付けがあるのに削除がなかったり、そもそも貼り付けられているか分からない)
0275名前は開発中のものです。
2007/10/10(水) 20:54:11ID:c3o/pV+/やっぱり、irrKlangになるんだろうか・・・
0276名前は開発中のものです。
2007/10/11(木) 23:17:17ID:WfkI6oI+0277名前は開発中のものです。
2007/10/11(木) 23:59:19ID:3R315KwBAudiereもおぬぬめ
ttp://audiere.sourceforge.net/
0278名前は開発中のものです。
2007/10/12(金) 00:46:18ID:s8TbIxv00279名前は開発中のものです。
2007/10/12(金) 13:58:24ID:PIfwULpFdクス
・IrrKlang
フリー利用はフリー、商用は、有償。
マルチプラットフォーム。
3DSound、エフェクトに対応。ループポイント指定不可。
簡単そう。
・Audiere
LGPL。
マルチプラットフォームっぽい。
Java、Pythonバインディング有り。
サンプルアプリでは、ループポイント指定可能のようだ。
簡単そう。
・OpenAL
LGPL。
DirectSound並に低レベル。
・SDL_Mixer
LGPL。
簡単そう。
という感じでしょうか。
私的には、LGPLが許せば、Audiereがよさげだな・・・
一回、wikiにでも、まとめておいた方がいいですね。
これ以上は、ライブラリスレに行った方がいいか。
0280名前は開発中のものです。
2007/10/13(土) 02:05:03ID:HyccwUSY超初心者スレはないのか・・・
0281名前は開発中のものです。
2007/10/13(土) 02:09:08ID:oaqS3f97別に超初心者な質問しても誰も怒らないと思うぞ、
ただでさえ過疎スレなのに、さらに分家しても意味ない。
0282名前は開発中のものです。
2007/10/13(土) 02:13:29ID:HyccwUSYといってもまだ今日始めたばかりなんだ
もしつまづいたら聞くかも知れないので、その時は暇だったら教えてください
0283名前は開発中のものです。
2007/10/13(土) 08:25:21ID:dBFGuNg7おぅ、がんばれー
0284名前は開発中のものです。
2007/10/14(日) 13:37:57ID:5IQh9etzcreateOctTreeTriangleSelectorだとメッシュとシーンノードの取得の方法が
わかりません。どうしたらいいのでしょうか。
0285名前は開発中のものです。
2007/10/14(日) 15:40:55ID:lMM34/uL軽くエスパーしてみる
TriangleSelectorは基本的に一つのシーンノードに対しての
コリジョン判定器だから、
複数のノードに対してTriangleSelectorつかうなら、
その数だけTriangleSelectorを用意することになる。
自前でコリジョン判定するなら、
TriangleSelectorのgetTrianglesメソッドで、
レイなりバウンディングボックスなりとのコリジョンをとればいいから
(Triangleが存在する=コリジョンしてるということ)
当たりを取りたいノード分だけぶん回せばいい
そうじゃなく、createCollisionResponseAnimatorで複数のノードに反応したいということなら、
CMetaTriangleSelectorを使う
0286名前は開発中のものです。
2007/10/14(日) 16:23:52ID:5IQh9etzIrrlichtDevice *device = createDevice(略);
devive->loadScene("terrain.irr");
とシーンファイル読み込むとマップモデルが表示されるのですが、ここから
createTriangleSelectorに指定するノードとメッシュをどうやって取得すれば良いのかが分からないのです。
0287名前は開発中のものです。
2007/10/15(月) 00:32:46ID:Alx2212Lおk把握w
.irrのシーンファイルは、ただのxmlで、
開くと中に普通にメッシュとかのロード指示が入ってる。
サンプルのexample.irrだと、
部屋のメッシュとしてroom.3dsを読み込んでいることがわかる。
なので、こいつのNameフィールドにしかるべきvalueを与えて、
(IrrEditで開いて、Name付けても可)
getSceneNodeFromName()で持って来ればいい。
つか、TriangleSelector関係ねーじゃんw
0288名前は開発中のものです。
2007/10/15(月) 02:05:29ID:H/ew0wXN色々試したけど、xファイルはmilkshapeで作ったのじゃないと上手く読めない感じ・・・
md2は作りにくいし・・・
結局Irrlicht A GoGoの作り方のとおりにやるのが一番簡単なのかな
0289名前は開発中のものです。
2007/10/15(月) 21:13:59ID:Alx2212Lxファイルについてなら、ここ見てみた?
ttp://lesson.ifdef.jp/
0290名前は開発中のものです。
2007/10/15(月) 23:00:37ID:RgsypFFjできました。ありがとうございます。
0291名前は開発中のものです。
2007/10/15(月) 23:15:22ID:5mOqSGG2IRR_USE_SDL_DEVICEつけてコンパイルする方法が分かりません・・。
SDL.libとSDLmain.libを追加の依存ライブラリに設定しましたが
最後にリンカエラーが出ます。
しかも、どうやったらSDLの命令を使ったり出来るのかもわかりません。
0292名前は開発中のものです。
2007/10/16(火) 01:50:36ID:JzrpuxP2どんなエラーか詳しく。
ってか、IRR_USE_SDL_DEVICEは、
どっちかっつーとMacであるとかその他組込系とかのために、
3DエンジンをSDL管理下に投げるためにあるわけだが、
何がしたいん?
0293lesson.ifdef.jp
2007/10/17(水) 00:35:48ID:MD/R4l7gIGUIFileOpenDialogでだけ?格納されている文字列が
おかしくなっているのを確認しました。
以下に、例をあげてみます。
「終了」という名のファイルがあったとします。
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
0294名前は開発中のものです。
2007/10/17(水) 01:48:53ID:gpaUcF8iうちでIrrlichtMLのIMETEST.exe上で動作確認してみた。
別に「終了」というファイル名も、
「終了テスト」という半角カナ交じりのファイル名も
問題なく表示できたけどなあ?
WindowsXPSP2/Windows2000SP4上で確認
0295名前は開発中のものです。
2007/10/17(水) 01:58:45ID:gpaUcF8iもし、オリジナルのIrrlichtでそういう問題があるという指摘だったら、
上記のように既にzgock/MadHyde両氏で対策済だから、
別に騒がなくてもいいと思
0296lesson.ifdef.jp
2007/10/17(水) 02:45:21ID:MD/R4l7gMadHydeさんが「本家のみで解決できてるか」との質問を出していたので
本家ではどうなているか調べてみました。
>>264
>>265
>>266
>本家のみの使用で解決してる人はいるのか気になって聞いてみた次第
本家だけを使用した場合は、1ステップが必要になる(バグの可能性がある)。
現在Irrlichtが1.4へバージョンアップ中のため、この内容を伝えれば
修正をしてくれるかも? ということかと思います。
そして、さらに「どうせならマルチバイト変換コードもオフィシャルに」
と、伝えるつもりなのかと思って、私なりに調査・報告したまでです。
「本家で確認しました」というコメントが抜けていてすみませんでした。
0297名前は開発中のものです。
2007/10/17(水) 03:00:46ID:gpaUcF8i了解了解。それなら納得です。
ただ、wcstombs関連の扱いについては、
提示していただいたサンプルだと、
1.setLocale()をJapanese決めうちしちゃってる
2.IrrMLの処理に比べて冗長
な気がするんで、
zgock/MadHyde氏版の処理の方がスマートな気はする。
0298lesson.ifdef.jp
2007/10/17(水) 03:26:50ID:MD/R4l7g遅くまでお疲れ様です。
マルチバイト文字を変換する方法としては
確かにMadHydeさんのものより長くなっております。
ですので、私のサンプルはまだまだ改善するべきかもしれません。
※Irrlichtで用意してあるGUIがマルチバイト文字必須なので
仕方なく使用している感じです。
現在はマルチバイト文字は使用していないので、
http://lesson.ifdef.jp/A02.html
で示すPrintfだけで日本語が表示可能になっています。
0299MadHyde
2007/10/17(水) 06:49:29ID:lb1CWKLFIrr Lessonさんを紹介する記事をアップした矢先に中の人が降臨なさっている!
しかも、熱い討論が交わされているとは。
お二方、遅くまで乙です。
>>266を訊いてみたのは、コアハックをせずとも
エクステンションパックのような形で日本語対応できれば
利用しやすく保守が確実なものができるのではないかと考えているからです。
(ただし、他の言語圏でも有用なコードは、なるべくマージしてもらおうと言う試み)
今週中は時間取るのが難しいですが、なんとか提示頂いたサンプルを見て
最適な実装方法とは何かを検討してみようと思います。
ところで、lessonさんのお名前を伺ってもよろしいでしょうか?
サイトでの紹介には、やはり執筆者のお名前を添えたいので。
0300MadHyde
2007/10/17(水) 07:11:32ID:lb1CWKLF返信しておきましたm(_ _)m
0301名前は開発中のものです。
2007/10/17(水) 22:09:06ID:JMcE+2Z1自己解決しました。
CIrrDeviceSDL.cppと同.hが何故かプロジェクトに入っていませんでした。
>どっちかっつーとMacであるとかその他組込系とかのために、
>3DエンジンをSDL管理下に投げるためにあるわけだが、
>何がしたいん?
複数キー同時押しとか、ジョイスティック使用とかです。
CCameraSceneNodeって、setRotationで角度指定できないんですね・・。
0302名前は開発中のものです。
2007/10/18(木) 01:38:13ID:QBfYpW0R描画にSDL使わないんなら、
CIrrDeviceSDLを使い必要はないはずなんだがな・・・
単純にリンクできたはず。
0303lesson.ifdef.jp
2007/10/18(木) 21:12:13ID:ttH8nhVaそのままでは回転できないので、カメラとは別にノードを作成し
ISceneNode *cameraMan;//カメラマンを用意
それを親とするカメラを作成してみて下さい。
カメラマンを動かすことで、カメラも一緒に動くことが可能です。
もう少しスマートに動かせたら楽なんですけども
一応上記の方法で可能です。
0304lesson.ifdef.jp
2007/10/18(木) 21:21:43ID:ttH8nhVaお返事ありがとうございます、必要事項は返信しておきました。
先日の確認はver1.3.1を使用しましたので、
時間があれば1.4Βでも確認してみたいと思います。
2バイト文字対応に関しては、私のサンプルでは日本語だけですが
irrlichtMLでは日本語以外も対応しているので、
標準機能になると心強いですね。
なんとか、頑張って欲しいものです。
ICameraSceneNode::setTarget()で間接的に回転するはず
>>304
紹介文を更新しておきました
気が向いたら確認をお願いします〜
来週、1.4へのMLのマージを兼ねて動き出しますです
0306名前は開発中のものです。
2007/10/22(月) 22:08:51ID:r3G5ZH1Jお勧めのライブラリはありますか?
出来ればその利用法などを教えていただけるとありがたいのですが。
0307名前は開発中のものです。
2007/10/22(月) 23:03:53ID:bCtKZdb4HDRレンダリングがしたいです。
0308名前は開発中のものです。
2007/10/23(火) 04:46:43ID:RQcCX2DHMagic 2D Library
http://www.freewebs.com/bcxgl/index.htm
0309名前は開発中のものです。
2007/10/23(火) 04:47:09ID:+WToHqauSDLにMPEG2デコーダ付いてなかった?使った事無いけど
そうでなければDirectShowのグラフにgrabberをぶら下げて
ベタビットマップをテクスチャに貼り付ける.
オーバーレイはデバイス握ってるとたぶん無理じゃないか?
0310名前は開発中のものです。
2007/10/23(火) 11:26:57ID:61W+y2K1そのライブラリ、>>306,>>307の問題を両方解決してくれそうだな
関数群がカプセル化されてないのが惜しいぜ
0311名前は開発中のものです。
2007/10/24(水) 00:20:01ID:GWIOzhxY>>308
更新が止まってしまっていますね。
最新バージョンに合わせたいので見送ろうかと思います。
>>309
SDLのほうはわからないです。
ビットマップはありなのかなぁ。一番楽な気はしますが。
0312名前は開発中のものです。
2007/10/24(水) 19:08:34ID:R8GREAfn作者のEmil氏の名誉のために言っとくが
MagicLibの1.31版がないのは1.3用でそのまま動くからのはずだけどな
0313名前は開発中のものです。
2007/10/24(水) 21:53:30ID:RB/VGvZDすいません。。。確認不足でした。
0314名前は開発中のものです。
2007/10/26(金) 01:34:29ID:c03y8h9A以下のIrrlicht a GoGoのサイトのサンプルを実行してみたのですが、
ttp://www.zgock-lab.net/irrlicht/tut04.htm
キャラが回転するはずなのに世界が回ってしまいます。
ソースは随分古いみたいなので、何か仕様が変わったりしたのでしょうか?
どうすれば直るのか教えてください。
0315名前は開発中のものです。
2007/10/26(金) 01:59:02ID:+UlAqHmS最終状態としてはそれで合ってる。
「簡単な3rd Personカメラ」の章の直前までの
状態にすればいい。
そのへんの基本は変わってないはず。
0316名前は開発中のものです。
2007/10/28(日) 15:24:54ID:vLz3dorA返事が遅くなったけど、できました。ありがとうございます。
ところで、シーンやノードとかの概念というか関係がいまいちよく分からないんですが、
分かりやすい解説ってどこかにないですかね?
なんか翻訳wikiくらいしか拠り所がないんですが・・・
英語が得意だったらなぁ・・・
0317名前は開発中のものです。
2007/10/28(日) 16:05:46ID:256r1oeiISceneNode.hを読む
0318名前は開発中のものです。
2007/10/28(日) 18:05:39ID:lSIhpM9Z3D世界をエクスプローラのようなツリー構造で管理しているとイメージすればいいかと。
Irrlicht
|
---キューブ
|
---ボール
0319名前は開発中のものです。
2007/10/28(日) 18:51:34ID:vLz3dorA見てみました。
英語さえ分かればドキュメントは豊富だってのは分かるんですけどね・・・
やっぱ俺は純国産じゃないと駄目かなぁ・・・
>>318
それは分かるんですが、それぞれの役割みたいのの簡単な説明があればなぁーと。
まぁ色々いじってて、少しずつなんとなく分かってきたんですが・・・
0320名前は開発中のものです。
2007/11/03(土) 13:53:32ID:cu+jXMlXファイル名が更新されずに消えてしまうんですがどうすればいいんでしょう。
0321名前は開発中のものです。
2007/11/09(金) 00:31:56ID:xOZdaHMlFPSなのでとりあえずキャラクターは表示させず、移動はFPSカメラを利用しています。
そこで走る、歩くなどを表現したいのでFPSカメラの移動速度を変えたいのですが、
addCameraSceneNodeFPSで更新するしかないのでしょうか?
add〜を連続使用するというのも不安ですし、
そもそもキャラクターの移動はFPSカメラで済まさず、自分で処理するべきなのでしょうか?
0322名前は開発中のものです。
2007/11/09(金) 07:41:23ID:c3OcvDGqICameraSceneNodeを継承して、移動速度が変わるようなカメラクラスを作る
雛型はFPSのをコピーすれば後はキー入力部分を変更するだけ
このクラスはマネージャに未登録だからadd〜では追加できなくなる
次のコードで対応
CCameraSceneNodeFPSown* CameraPFS = new CCameraSceneNodeFPSown(smgr->getRootSceneNode(), smgr);
CameraFPS->drop();
0323名前は開発中のものです。
2007/11/11(日) 18:57:11ID:FfvcBzgB画角を調整しても、画面端に行くにつれてモデルに歪みが生じてしまい、
いまいちちゃんと表示されないのですが、
なにか良い方法ありますか?
0324321
2007/11/11(日) 21:35:00ID:ogyLcZhWクラス作りがんばります。
クラスを作り終えた結果と共にレスを返したかったのですが、
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関数などにアクセスできません。
理由がまったくわからないのですが、どうしてなのでしょうか?
0325名前は開発中のものです。
2007/11/12(月) 02:01:36ID:hpWiFfmIその場合、CCameraFPSSceneNodeクラスのメンバ関数へのアクセスは
ICameraSceneNodeクラスを通した共通関数しか扱えなくなる。
だから、例えCCameraFPSSceneNode内で
setMoveSpeedがpublic関数と定義されていてもアクセス不能です。
もしsetMoveSpeedを使いたいのであれば、こうすること。
CCameraFPSSceneNode* node = new CCameraFPSSceneNode(〜);
~~~~~~~~~~~~~~~~~~~~~~~~~
他にダウンキャストって手もあるんだけど、あんまりお勧めはしない。
ICameraSceneNode* node = new CCameraFPSSceneNode(〜);
CCameraFPSSceneNode *p = dynamic_cast<CCameraFPSSceneNode*>( node );
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0326324
2007/11/12(月) 05:40:47ID:7YnjD95v仮想関数は、インターフェース部になったクラスに存在し、
その上で再定義されたポインタ越しの関数を呼び出せるというものだったんですね。
勉強になりました、ありがとうございました。
0327名前は開発中のものです。
2007/11/16(金) 22:28:36ID:h9AyeuU1で
キャラから弾を飛ばしても
自キャラの移動速度を少し速めると
キャラの前進移動スピード>弾のスピード
になってしまい、追いついてしまいます
でも弾を速くすると今度は速過ぎて見えなくなるし・・・
何か解決策はあるでしょうか
0328名前は開発中のものです。
2007/11/16(金) 23:29:15ID:z3YC6Y9u早過ぎず遅すぎない弾の速度に微調整
0329名前は開発中のものです。
2007/11/17(土) 00:17:31ID:2u92yTvZとするのが物理的には正しいんじゃね
0330名前は開発中のものです。
2007/11/17(土) 09:41:11ID:/9LSycbG弾が尾を引くようにすれば?
0331名前は開発中のものです。
2007/11/17(土) 11:13:17ID:B5H01eQ3virtual bool OnEvent(SEvent event)
{
if (event.EventType == irr::EET_KEY_INPUT_EVENT) // キー入力であれば
{
switch(event.KeyInput.Key) // キーの種類が
{
の中に入れるべきですか
Irrlicht LessonにはジョイパッドのIDやキーの取得に関しては書いてあるのですが
実際にどうやって使ったらいいか分からなくて・・・
0332名前は開発中のものです。
2007/11/17(土) 11:30:58ID:B5H01eQ3アドバイスありがとうございます。
微調整してみたら結構自然になりました
0333名前は開発中のものです。
2007/11/17(土) 12:39:07ID: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();
0334名前は開発中のものです。
2007/11/17(土) 22:02:27ID:+0vqtOt2while(device->run())ループ内で描画前にでもjoyGetPos(JOYSTICKID1, &joyinfo);してやって
その結果を元にユーザイベントを投げればOnEventで処理できると思うよ
■ このスレッドは過去ログ倉庫に格納されています