静的およびアニメーション3Dモデルのファイル形式


22

現在、OpenGLを使用してC ++で3Dゲームを作成しており、3Dモデルをロードする部分に来ています。したがって、

  • 静的メッシュを表示し、
  • アニメーションメッシュをレンダリングします。

キーフレームアニメーション、骨格アニメーション、MD2〜MD5、3DS、X、Colladaなどのような、非常に多くの可能な形式と手法を既に見つけました。

簡単にするために、静的メッシュとアニメーションメッシュの両方を可能にする形式(および手法)を使用したいと思います。したがって、私の質問は、1つの形式がそのタスクに適しているかどうか、そしてどの形式を提案するかです。そして、少し明確にするために、私は非常に滑らかなアニメーションやまったく新しい機能を必要としません。

サイドノート:私はブレンダーのファンなので(ただし、専門家ではありません ;-))、それを使用できると便利ですが、もちろんそれはショーストッパーではありません。

回答:


16

Colladaの使用を提案させてください。

DCCツールによって広くサポートされ、十分に標準化されています。それは骨格アニメーションをサポートし、また、シェーダーや物理学を含むほとんどすべてを実行します-これらはあなたには関係ありません。

MDLやMD2形式などの頂点ベースのアニメーションは、多かれ少なかれ過去の遺物です。現在、ほとんどのアニメーションはスケルトンアニメーション(つまり、スムーズにリギングされたキャラクターの場合)であり、コンテンツ作成ツールはそれらに最適化されています。

BlenderにはColladaエクスポーターが動作しますが、いつものように、Blenderからのエクスポートは面倒です。問題が発生した場合は、別のエクスポーターまたはファイル形式を試すか、スクリプトを手動でハックする必要がある場合があります。

Colladaを読み込むには、FColladaColladaDOMなどのライブラリを使用します(独自に解析しようとしないでください。Collada本当に太ったXMLモンスターです...)。また、Collada(および言及した他のすべての形式)を含む〜25のファイル形式を読み込むOpen Asset Import Libraryもあります。特にゲーム開発者を対象としており、リアルタイムレンダリングに適した形式で出力を提供するため、優れた選択肢となります。しかし、正直に言うと、私はその共著者の1人なので、おそらく少し偏見があります。

最後になりましたが、アセットのインポートに使用するファイル形式は、エンジンの能力やエンジンが使用する技術を定義するものではありません-むしろ逆でなければなりません。アニメーションが非常に滑らかであるかどうかは、インポート形式の問題ではありません。それは、メッシュをアニメーション化するために使用する手法と、そもそもメッシュがどれだけ適切にモデル化されるかです。インポート形式は、データをBlenderからゲームに取り込むのに役立つはずです。


詳細な回答をありがとうございました。今日、Colladaのことを初めて知りました(友人が推奨)が、実稼働環境で使用する準備が本当に整っているかどうかはわかりませんでした。今すぐ試してみます、ありがとう。:-)
stschindler

2
良いアドバイス、特にAssImpへの参照。ただし、COLLADAを提案することはありません。誰もが一貫して正しくすべてをサポートしていないようであり、実際のコンテンツの目的にはかなり大きいからです。MD5のようなものを使用することをお勧めします。MD5は、スケルトンを取得し、かなり広く正しく実装されています(と思います)。また、MD2をそれほど簡単に却下することもありません。そこにあるたくさんのサンプルモデルのは、それのために、と(それがラグドールか何を持っているために役に立たないですが)あなたは自明安く、それをアニメーション化することができます。
ChrisE

さまざまなファイル形式を試してみます。AssImpのおかげで、簡単に実行できます。MD2は私の最初のアイデアでしたが、適切なボーンをエクスポートするだけでなく、作成するのにかなりの費用がかかると思います。私の場合、ラグドールは必要ありません。物理モデルを使用せず、アニメーションモデルのみが必要です。
-stschindler

Colladaの非常に悪いエクスポーターは確かにありますが、少なくともそのフォーマットは十分に文書化されているので、誰が責任を負うべきかは常にわかっています:-)。MD5も良い候補ですが、Blenderエクスポーターがどれほど優れているかはわかりません。MD2の頂点表現は非常に限定されており、サイズと精度の制限があります。私は本当にそれを使用しません、そうする理由はありません。
アレクサンダーゲスラー

wazim.com/Collada_Tutorial_1.htmは、Colladaをロードするための非常に優れた詳細なチュートリアルですが、代わりにライブラリを使用することをお勧めします。
-Exilyth
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.