32

ゲームエンジンを書いていますが、どの3Dモデル形式を使用/ロード/エクスポートする必要があるのでしょうか?Objは普遍的で簡単なように見えますが、そこにあるほとんどのモデルにエラーが含まれており、他の形式ほど保存されていないという点でも信頼できないようです。

MD2 / 3/5などのゲーム専用のフォーマットがあるようですが、よくわかりません。モデル化する場合はwings3dを使用します。必要なものを純粋にロードし、フォーマットIDからサポートする以外に、他にどのような詳細が必要かわかりません。 IKを実装する必要があるなどの実装?逆運動学や骨のリギングではなく、スクリプトごとのアニメーションを使用できますか?

4

6 に答える 6

23

Colladaは、Khronos グループ (OpenGL 標準化団体) が所有する 3D モデル用のオープン XML ベースのフォーマットです。

Collada.org FAQ から:

COLLADA 1.4.x 機能セットには以下が含まれます。

  • メッシュ ジオメトリ
  • 変換階層 (回転、平行移動、せん断、スケール、マトリックス)
  • 効果
  • シェーダー (Cg、GLSL、GLES)
  • 材料
  • テクスチャ
  • ライト
  • カメラ
  • スキニング
  • アニメーション
  • 物理 (リジッド ボディ、コンストレイント、ラグドール、コリジョン、ボリューム)
  • インスタンス化
  • テクニック
  • 複数表現
  • 資産
  • ユーザーデータ
于 2009-02-21T17:09:59.807 に答える
5

どの 3D フォーマットをサポートしたいかを心配する前に、エンジンに実装する予定の機能に焦点を当てる必要があると思います。それらを要件として書き留め、リストから最も多くの機能をサポートする形式を選択します...エンジンを紹介したいので(エンジンを公開することを計画していると思います)。エンジンに特定の機能がある場合は、独自のフォーマットを作成することもできます (これは、ゲーム エンジンにとって常に良いことです)。

その後、一般的なフォーマット (.X、.3DS、.OBJ、.B3D) をできるだけ多くサポートします...エンジンがアクセスしやすくなればなるほど、より多くの人がそのエンジンで作業したいと思うようになります!

Collada は優れた一般的な形式ですが、Nils が言及しているように、最終的な展開には理想的な形式ではありません。

于 2009-02-21T16:25:54.547 に答える
2

私は独自のバイナリ形式を使用しています。既存の形式を使用しようとしましたが、常に制限に遭遇します。回避できるものもあれば、ショーストッパーの場所もあります。

コラーダは一見の価値があるかもしれません。3Dエンジンで読み込めるフォーマットとしては、あまり良いとは思えません。ただし、一般的なデータ交換形式としては問題ありません。

http://www.collada.org/mediawiki/index.php/Main_Page

于 2009-02-21T15:14:21.847 に答える
2

コラーダの場合は+1。また、非常に高速な読み込みのために、カスタムのネイティブ バイナリ フォーマットが必要になる場合もあります (通常は、頂点/インデックス バッファ データのバイナリ ダンプ、マテリアル データとスケルトン データ、および必要に応じて衝突データ)。

ゲーム業界のトレンドの 1 つは、collada のような形式の読み込みをエンジンの開発者ビルドでサポートすることですが、リリース用に最適化されたバージョンをエクスポートするツールチェーンも用意することです。開発者バージョンはメッシュを動的に更新できるため、アーティストが変更を保存すると、ファイルが自動的に再ロードされ、モデルの (ほぼ) 瞬時の WYSIWYG ビューが可能になりますが、完全に最適化されたリリース形式が提供されます。

于 2009-10-05T11:12:25.523 に答える
1

Collada を適切にサポートし、他のフォーマットとの間で優れたコンバーターを提供します (これは難しい部分かもしれません)。これにより、最大限の柔軟性が得られます。C4エンジンを見てみよう

于 2009-02-21T17:14:44.070 に答える
0

Collada は優れていますが、3D アプリ側でより多くの機能を果たします。つまり、ゲーム エンジン内から 3D データをロードするのではなく、アプリケーション間で 3D データを転送するのに最適です。Luaを調べましたか?ゲームで広く使用されているのは、非常に高速で (ゲームに最適)、非常に柔軟な (エンジンに必要なデータを表すために使用できる) スクリプト言語であるためです。

于 2009-06-18T23:43:39.290 に答える