2008年07月07日

OGRE Particle Editor その1

ニコニコのXSI講座を見たりXNAの本を読んだりとちょっとそっち関係も勉強しています。
XSI用のOgre Mesh ExporterやMQO Importerなどもあるので、XSI Mod ToolでMQOファイル読み込んでSkeletonやRigを入れてアニメーションを付けてmeshファイルで出力というのもあり得そうですね。
XSI講座でRig付のミクなども公開されている方がいらっしゃいますのでアニメーションを付けてOgreで動かすというだけであればそんなに難しくなさそうです。

それはそれとして、エフェクトを付けるにはパーティクルを用いるのが再利用性などを考えるといいのではないかと思います。ということで、かなり話が変わりますがOgre Particle Editorについてです。

実行結果

screenshot_ogre_pe1.jpg

例題で付いているパーティクルを読み込んでみました。
それっぽく見えるようなそうでもないような。
続きを読む
web拍手 by FC2
posted by シンドラー at 18:08 | Comment(0) | TrackBack(0) | Ogre 3D & CEGUI | このブログの読者になる | 更新情報をチェックする

2008年06月05日

Ogre 3D + CEGUI + PhysX その3

気がつくと1ヶ月ぐらい過ぎてますね。困ったものです。

とりあえず前回からの変更点は以下の3つです。

1. ConvexMeshの代わりにTriangleMeshを使用

http://www.shader.jp/xoops/html/modules/xfsection/article.php?articleid=22

2. ContactReportを使用して接触時の反発力、摩擦力、侵入力を取得

http://www.ogre3d.org/phpBB2addons/viewtopic.php?p=40222&sid=ce193664e1d3d7c4af509e6f4e2718c6

3. Dynamic Linesで接触点から反発力を描画

http://www.ogre3d.org/phpBB2/viewtopic.php?t=40304

それぞれの説明はやる気が出たらやります。以前もこのような事を書いて一ヶ月ぐらい更新してないですね。

実行画面

マウスではちゅね(ConvexMesh)を動かして物体(TriangleMesh)とぶつかったら力を線で表示しています。
なぜかはちゅねはTriangleMeshにすると衝突がおかしくなっちゃいます。
自分でMeshファイルに変換したので面の表裏とかが間違っているのかもしれません。
ConvexMeshだと見た目と同じ形ではないですが衝突判定の計算量も減るでしょうし問題がなければConvexMeshでいいような気もしますね。

ogre_cegui_physx_004.JPG
web拍手 by FC2
posted by シンドラー at 00:03 | Comment(0) | TrackBack(0) | Ogre 3D & CEGUI | このブログの読者になる | 更新情報をチェックする

2008年05月08日

Ogre 3D + CEGUI + PhysX その2

その2といっても前回のを少し改良しただけです。

改良点は・・・STLのvectorを使って後からオブジェクトを追加できるようにしました。
これでCEGUIのボタンをぽちっと押したら1個オブジェクトを追加、といったことができるようになります。

PhysXの方がやっぱり安定しているんですかね。
ホロを200匹に増やしてみましたが少し重くなったかなーぐらいで問題なく動いています。
PC買ったばっかりで性能がいいせいかもしれませんが。

さて次はどうしましょうか。落ち物パズルみたいなものを作ってみたい気がする今日この頃です。

実行画面

ogre_cegui_physx_002.JPG ogre_cegui_physx_003.JPG
web拍手 by FC2
posted by シンドラー at 21:30 | Comment(0) | TrackBack(0) | Ogre 3D & CEGUI | このブログの読者になる | 更新情報をチェックする

2008年05月07日

Ogre 3D + CEGUI + PhysX その1

これまではODEをやってきましたが、どうも三角メッシュを用いた衝突判定だと不安定になるようですので、安定していると評判のPhysXを使ってみたいと思います。
内容としては、Ogre3Dでメッシュファイルを読み込み、そのデータをPhysX側で使って物理シミュレーションを行う、という感じです。

前回のOgre3D + CEGUIのサンプルに、PhysXのチュートリアルLesson 101, 104を参考に追加していく感じでいきます。
Ogre3Dでメッシュの頂点座標等を取得する方法は下記の情報を参考にしました。

http://www.ogre3d.org/phpBB2/viewtopic.php?t=9891

具体的な手順としては、下記のようになります。


  1. Ogre3Dでメッシュファイルを読み込みEntityを作成(mSceneMgr->createEntity("Name", "obj1.mesh";)
  2. Entityからメッシュ情報を参照するためのポインタを取得(MeshPtr pMesh = mEntity->getMesh();)
  3. 上記参考文献を参考に頂点座標をNxVec3型の配列として保持
  4. PhysXのチュートリアルLesson 104を参考にConvex Meshとしてオブジェクトを生成
  5. PhysX側でシミュレーションをして位置・姿勢を更新し、Ogre3D側でその情報から描画を更新(mSceneMgr->getSceneNode("Name")->setPosition(pos[0], pos[1], pos[2]);)
注意点として、Ogre3DのクォータニオンはWXYZの並びですが、PhysXのNxQuatはXYZWの並びになっているようですので、入れ間違えるとおかしな姿勢になります。

実行画面

ホロを10頭?ほど作ってみました。低ポリゴンのホロですので10頭?ぐらいなら問題ないようです。

ogre_cegui_physx_001.JPG



web拍手 by FC2
posted by シンドラー at 01:05 | Comment(0) | TrackBack(0) | Ogre 3D & CEGUI | このブログの読者になる | 更新情報をチェックする

2008年04月10日

OgreODEとかNxOgreとか

というわけで、Ogre 3D + CEGUI + ODEでいろいろパラメータ変更したりするモノを作ってみたわけですが、いまいちですね。
パラメータの確認ぐらいには使えますが、これといって面白くないですね。
マー目的は達成できたので良しとしますか。

で、自分でODEの導入などをしていますが、既に組み込んで使いやすくしているものもいろいろあります。

OgreODE
http://www.ogre3d.org/wiki/index.php/OgreODE

NxOgre
http://www.ogre3d.org/wiki/index.php/NxOgre

こういうのを使った方が便利で良さそうですが、まぁ自分で組み込んだ方が勉強になるのではないかなーとは思います。

NxOgre使って面白そうなことをしている方がいますね。
ttp://hanagasira.s25.xrea.com/php/ND/

結局は何がしたいか決めずに適当にやっても微妙なようです。何かこうミニゲーム的なものでもいいので面白いもの作ってみたいですね。

実行画面

白い枠はBounding Boxです。枠から出ているのはバク転してるからです。いつの間にか1画面に戻っているのは4画面だと60fps出なかったからです。Irrlichtのサイトを参考に30か60fpsに固定しています。既にソースコードが目も当てられないのでいつものように公開しません。

screenshot_cegui_008.JPG
続きを読む
web拍手 by FC2
posted by シンドラー at 10:21 | Comment(0) | TrackBack(0) | Ogre 3D & CEGUI | このブログの読者になる | 更新情報をチェックする

2008年04月07日

Ogre 3D + CEGUI + ODE その3

というわけで、今度こそODEを入れてみました。
Irrlicht+ODEの時に作っていたクラスを組み込んだ形です。

1. Ogre 3DでMeshファイル読み込み
2. その位置、角度、大きさ(バウンディングボックス)をODEに伝える
3. ODE側でその大きさのボックスを作成(座標系の違いに注意)
4. ODE側でシミュレーション
5. ODE側からOgre 3D側にデータを渡し、位置、角度の更新

といった流れになっています。Irrlichtの時と同じですね。

実行結果

screenshot_cegui_007.JPG

上から落ちてきて、跳ねて倒れた後の図です。
CEGUIの方でオブジェクトの位置と角度は表示してみました。
今後はCEGUIでパラメータを設定し、結果を確認できるようにしてみたいと思います。

web拍手 by FC2
posted by シンドラー at 03:07 | Comment(0) | TrackBack(0) | Ogre 3D & CEGUI | このブログの読者になる | 更新情報をチェックする

2008年04月04日

Practical Application

Ogre 3Dをオブジェクト指向的に使いたい人のためのチュートリアルとして、Practical Applicationがあります。本来なら前々回の記事の前にここから始めるべきでしたね。というわけでこの辺りを少し見ていきたいと思います。


  1. Practical Application - Organization - Plan ahead for deployment and installation concerns.
  2. Practical Application - Foundation - Beyond the ExampleApplication.
  3. Practical Application - Initialization - Fire up Ogre and her sisters.
  4. Practical Application - GUI - CEGUI and Ogre and how they get along.
  5. Practical Application - Let's Get Started - Beginner Tutorial #1 WITHOUT the ExampleApplication framework.
  6. Practical Application - Something With A Bit More Meat - A full working example of CEGUI with Ogre.

というような構成で、それぞれを見ていけば勉強になるのではないかと思います。ですが最近の精神力的に翻訳する気力がないので説明はこの辺りにしておいて、このPractical Application + ODEのデモでも作ってみたいと思います。

元々このPractical Applicationは、3DレンダリングにOgre 3D、オーディオにOpenAL、物理エンジンにODE、入力にOISなどを使えるようなオブジェクト指向的設計をします的な感じですので、そんなに難しくはないはずだと信じたいものです。

実行画面

screenshot_cegui_003.jpg

続きを読む
web拍手 by FC2
posted by シンドラー at 13:45 | Comment(0) | TrackBack(0) | Ogre 3D & CEGUI | このブログの読者になる | 更新情報をチェックする

2008年03月26日

CEGUI Layout Editor

CEGUIの続きです。
ボタンの配置とか面倒だなーというときは、CELayoutEditorを使うと楽でいいです。
下記サイトからダウンロードできます。0.6.0は開発中バージョンですが。

CELayoutEditor_Downloads_0.6.0

初回起動時にCEGUIのデータがあるフォルダを指定します。
デフォルトで入れている場合は以下のような感じです。

C:\Program Files\CEGUI-SDK-0.5.0b-vc71\datafiles

後は前回のGUIを編集したい場合はkatana.layoutを開いて編集すればOKです。

前回の補足ですが、やはり毎回gui.zipに固めなくても大丈夫でした。

Ogre::ResourceGroupManager::getSingleton().addResourceLocation("resource/gui.zip", "Zip", "GUI");

Ogre::ResourceGroupManager::getSingleton().addResourceLocation("resource/gui/", "FileSystem", "GUI");

注意点としては、固めない場合はgui.zipを削除しないと、gui.zipの中身も見に行ってしまって同じファイルが二つあるためエラーが発生みたいな事になっている気がします。確認したわけではありませんが。

はてさて、Luaに入るのはいつのことやら。

実行画面

screenshot_cegui_03.JPG
web拍手 by FC2
posted by シンドラー at 00:53 | Comment(0) | TrackBack(0) | Ogre 3D & CEGUI | このブログの読者になる | 更新情報をチェックする

2008年03月24日

Practical Application - Something With A Bit More Meat

前回はCEGUIのSDKをインストールして、少しサンプルプログラムをいじってみました。
しかし、サンプルプログラムはサンプルプログラム用のライブラリを使用しているので、
ちょっとカスタマイズがしにくいなーと思いました。
普通に使用する分にはサンプルプログラムをベースにしても問題ない気もしますが。

というわけで、今回はOgre 3D+CEGUIのサンプルのメモです。

実行結果
screenshot_cegui_002.jpg

続きを読む
web拍手 by FC2
posted by シンドラー at 19:11 | Comment(0) | TrackBack(0) | Ogre 3D & CEGUI | このブログの読者になる | 更新情報をチェックする

2008年03月21日

CEGUIでの日本語フォント使用方法

早いもので、いつの間にか1月が終わって2月も終わって3月も終わりそうですね。困ったものです。
Irrlicht付属のGUIでもいいですが、折角ですのでCEGUI等のGUIライブラリも試してみたいと思います。
Luaと組み合わせてなんたらかんたらもちょっとやってみたいですね。

実行結果

screenshot_cegui_001.jpg
続きを読む
web拍手 by FC2
posted by シンドラー at 16:06 | Comment(0) | TrackBack(0) | Ogre 3D & CEGUI | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。