多すぎて良く分からない3Dデータのフォーマットについて概要を調べた

このところ、VRChatに関連して周辺をいろいろ調べたりしてます。自分のように3d関連の知識がほとんどない人が思うことの一つに「3Dデータのフォーマット(規格)多すぎない?」というのがあると思います。

例えば、テキストファイルには「.txt」や「.csv」とかあると思うんですけど、それと同じように3Dデータにもいろんなファイルの規格があります。自分のような素人からするとそれぞれの規格がどんなものなのか、よくわかりません。

試しにBlenderをインストールして立ち上げてみると、インポート・エクスポートでいろんな規格がサポートされてるんですけど、次の通り種類が多いんです。

.dae、.abc、.3dsなど沢山ありますね。沢山あって何が何だか……。結局自分が使ってるフォーマットはどんなものなのか分からない気持ち悪さが残りますね。

なのでざっくり調べてみました。

3Dファイルフォーマットの概要

3Dファイルには以下のような情報を保存できるそうです。

  • ジオメトリ(形状)
  • 外観
    • テクスチャ
    • 素材の種類
  • シーン
    • 光源
    • カメラ
    • 周辺オブジェクトの位置
  • アニメーション
    • 動作

しかしながら、どの規格でもすべての情報を含んでいるということはなく、ジオメトリのみが保存されている規格もあったり、すべてを含む規格があったりするそうです。

3dプリンターによく使われるフォーマットのSTLはジオメトリのみをサポートする代表的な規格です。そういえば、3dプリンター用のデータ共有サイトを眺めてると、灰色一色ですもんね。

なぜたくさんあるのか?

ジオメトリを表現する方法だけでも複数あります。同様に、外観、シーン、アニメーションにしても複数の表現方法がありますので、まずその点で規格がたくさん生まれます。

それに加えて、3Dモデル作成ソフトごとに各々最適化されたオリジナルの規格を持っていることが原因のようです。

そのため、データの共有が難しいなど、フォーマットが数多くあることに起因する問題が起こってるみたいですね (例えば、AutoCADで作業している人とBlenderで作業している人で、ファイルを共有するのが難しいなど)。

どの規格を使えばいいのか?

これまでの情報を踏まえると

  • 含まれる情報が自分の目的に合致している
  • 自分が使おうとしているソフトがサポートしている

といったところが、必要条件になりそうですね。

3Dプリンターで主に使われるのはジオメトリのみを含むSTLだけど、カラフルなものを作ろうとしたら当然色情報を含むフォーマットが必要 → OBJ

ゲームとか映像作品となると、精度の高いジオメトリよりも、外観やアニメーションのほうが重要 → FBXやCOLLADA

工業製品となると、形状を高い精度で表現する必要あり → IGESやSTEP

といったように目的に合致するフォーマットを選んだのち、使おうとしてるソフトがサポートしてるか確認といった感じでしょうか。

今回調べてみて、あのずらずら並んだ拡張子の謎が少し解けてすっきりしました。


参考サイト

シェアする

  • このエントリーをはてなブックマークに追加

フォローする