ゲーム中のキャラクタモデルの推奨3Dモデルタイプ、手動でロード?

StackOverflow https://stackoverflow.com/questions/585769

  •  06-09-2019
  •  | 
  •  

質問

私はJOGLでゲームを書いて、ゲーム内のキャラクターを表現するために必要です。私は、キャラクターの動きのための骨格のアニメーションを使用する予定の、そしてもちろんの文字が肌になります。私はスペックか何かに基づいて、私はファイルタイプを自分でロードするJOGLのための任意の良いモデルローダーを見つけることができないようです。私も自分の3Dモデラーとしてブレンダーを使用する予定なので、そこに存在するいくつかのタイプが最適でしょう。

ファイルタイプは何をすべきか、あなたは私が使用をお勧めしますか? 。ブレンド? .X、.3DS、.md2 / 3月5日、... ??私はいくつかのランダムなファイル形式をdeobfuscateすることなく、ローダーを書くことができ、そしてそれは、前述の機能をサポートする必要があるように、私は明確な定義された形式で何かをたいと思います覚えておいてください。あなたは、なぜあなたはそれを選んだし、なぜそれがあまりにも非常にhelpefulだろう!

ベストですに関する与えることができ、他の情報

ありがとうございます。

編集: 私はブレンダーMS3D輸出を書くことになります。私は終わっていたとき、私はそれを掲載する予定ここを。

また、以下の私のマークの答えを参照してください。しかし、より多くのそれ以来に行ってきました。私は、これは私がやっていると更新を維持するつもりはないが、基本的に私はjMonkeyエンジンを発見し、それはすでに私が手書きを始めたms3d輸入や他のサブシステムがあります。 (私はJava3Dのを避けた理由である)シーングラフのものにもかかわらず、私はそれは私が次第だ何だので、それで力を合わせるために私の最善の策だろうと考えています。

役に立ちましたか?

解決 2

まず第一に、他の二つの回答をお願い致します。また、あなたはblendファイルについて正しかった、と私は最初のウィキペディアをチェックしたはずですbasszero!これは、Blenderのメモリのほぼ役に立たないバイナリダンプである。

1)それは私の3Dファイルフォーマットを読み込むの経験を与えることになるので、

まもなくこの質問を書いた後、私は、先に行くと、OBJローダーを書くことにしたと2)それはいい、一般的に使用されるフォーマットも簡単に見えましたロードします。それは私が私が実際にオブジェクトとグループの違いを知らなかった、実感しましたので、それは、大きな決断ことになった、と私はまた、材料についてはあまり知りませんでした。それは私がこれらの3D構造のコードを確立に貢献します。

両方の答えは、XMLベースのフォーマットをお勧めします。私は、XML形式を望んでいません。私は、これはXMLのための適切な場所であるとは考えていません。私は、XMLは、柔軟な普遍的な、とのためのスキーマを作成することは容易であるため、これらのフォーマットが作成されたと考えているが、それは私が探しているものではないのです。私はロードする高速でフォーマットをしたい(XMLは、相対的に言っていない)、それは柔軟性や人間が読める、と私はむしろ、XMLライブラリに頼るよりも、ために輸入を書くことができるものである必要はありません。 basszeroでも「XMLであることのコストで」、言った彼は完全に正しいです。それは、私は感じていないコストが負担する価値があるのです。

私のOBJローダーが行われます。私は、実際のモデルクラスからそれを分離し、私は将来的には私が望んでいたならば...計画はどれ異なるローダーを書くことができるようにMeshFactoryインタフェースとそれを実装しました。私は過去数日より多くの研究を行っているとms3d形式で決定されています。

ms3dフォーマットは、骨格リギング(関節)とキーフレーム骨格アニメーションをサポートし、さらにテクスチャマップとアルファマップをサポートします。また、人間が読み取り可能なタグとラベルとを有する(XMLとOBJ行うなど)にスペースを無駄にしない簡単にコンピュータで読み取り可能なバイナリ形式であるようにする。

Blenderは、残念ながら、(作業)ms3d輸出スクリプトを持っていないので、私はそれのために自分のスクリプトを書くことになります。幸いにも、それは難しいプロセスではありません、あなたはBlenderのドキュメントを読んでその例として、他の輸出業者を使用することができます。私は自分のPythonをブラッシュアップする必要がありますが、それ以外の場合は、私が他のスクリプトを見てきたものから、非常に簡単なようです。

物事のJava側はms3dがより構造であるため、実際には、OBJ形式よりもさらに容易になります、簡単にする必要があります。私は<のhref = "https://web.archive.org/web/20120404020609/http://local.wasp.uwa.edu.au/~pbourke/dataformats/ms3d/ms3dspec.h" のrel = "nofollowを見つけますnoreferrer ">仕様は、Cスタイル(天才!)で、オンラインms3d形式のためをので、彼らは信じられないほど自明であると私はフォーマットについての更なる質問がありません。私は後で私自身のバリエーションを実装するかもしれませんが、私は、この仕様のオフに私の実装を基づかされます。私は合うようにそれは私自身の輸入と輸出を書くことについての素晴らしいことだ、私はフォーマットを変更することができます。

すべてのすべてで、私はこれが最善の解決策であることを決定した。

そしてbasszero、あなたは私が私のOBJローダーから見てきたように、絶対的に正しいです:「あなたはそれがすべて読み込ま持っていると、データの編成(表示リスト、テクスチャ、頂点配列、頂点バッファなど)とレンダリングは、完全に別の獣です。」

クルアチャン:私のためノーJava3Dの、私はJOGLにこだわっています。 (それは現時点ではアクセスできないのですが)私は、私は彼がモデルをロードする方法覚えていないものの、その本を実際に所有しないが、私は彼が自動的にそれを行うJava3Dのフォーマットローダーを使用かなり確信しています。私が使用して計画していない何か...申し訳ありません!

-Ricket

他のヒント

あなただけのジオメトリと一緒に暮らす、あるいは独自のテクスチャを処理する用意があることができれば、その後の.objは、おそらく最も簡単で広くサポートされている3Dファイルフォーマットです。それは基本的に3DモデリングのASCIIです。

そうでなければ、私はVRMLに向かう傾向と思います。それは明確に定義されますと、少なくともいくつかのコードは、あなたが始めるために周りにあります。私は正常に自由に利用可能なコードを使用して、Java3DのにVRMLモデルをロードしました。ネイティブのファイルサイズが大きくなる傾向があり、それは圧縮形式を使用することによって解決することができる。

私は.3DSをお勧めしません。私はこの形式のリーダーを扱ってきた唯一の時間は、デルファイパスカルにあった、そしてそれが、厄介な病気に定義され、処理することが困難だと、このような私は私の読者の取り扱いモデルはからエクスポート得ることができたが、その「バリエーション」の多くを持っている傾向がありますそれは3DS形式であることを主張したが、正しく形成されなかった他のパッケージから多くのモデルを拒否した3D-MAX自体だけで結構ます。

が追加さ:また、私はあなたがJava3DのAPIを見て、オライリーブック<のhref =「http://fivedots.coe.psu.ac.th/~ad/jg/」のrelを取るお勧めします=「nofollowをnoreferrer」>キラーゲームプログラミングのJava の中のようにも、あなたはあなたの多くの質問に答えるそうですJava3Dのルートを下に行っていない場合。

私はの.blendはほとんどブレンダー、ブレンダーではないの外あなたは多くのつもりヘルプからメモリ構造内のバイナリダンプであると考えています。別のフォーマットにモデルにブレンダーが、輸出を使用します。

これは少し冗長かもしれませんが、私は(XMLであることのコストで)Colladaのは非常にきれいに3D情報を包み込む聞きました。利点は、あなたがあなたからノー作品/ワットフルパーサが得られJAXBを通過する可能性がproperyスキーマ定義がありそうであるということです。

た.md *フォーマットも良い代替かもしれません。彼らは、iDのエンジン(Q1、Q2、Q3、Q4、doom3)からだと、彼らは文書化されています。彼らはまた、アニメーションシーケンスが含まれています。

あなたはそれがすべて読み込ま持っていると、データ(ディスプレイリスト、テクスチャ、頂点配列、頂点バッファなど)およびレンダリングの組織は完全に異なる獣です。

すごい迫力、男は、あなたがそれを終えるときms3d輸出をリリースするつもりですか?そしてもしそうなら、それはどのように来ていますか?私は実際にアニメーションとFragmotionが使用している作品の輸出国で私の手を取得する必要があり、それはあなたのやっは私の最後の希望であるもののように見えます。

メッシュ、テクスチャ、骨格アニメーションなどの.blendファイルからの情報を、抽出することができるオープンソースの.blendファイルリーダーがあります。

ここで鬼とイルリヒトを使用して、いくつかの例を参照してください。 http://gamekit.googlecode.comする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top