3MF

3MFファイルとは

STL の現代的な後継。むき出しの三角形だけでなく、色・材質・寸法の単位も持てます。

3MF とは何か

3MF はコンテナです。誰か別のものが符号化した流れを、中に収めておく外殻です。 ピクセルではなく図形と座標を保存するので、どんな大きさでも鮮明なままです。看板の大きさまで引き伸ばしたロゴでも、失うものはありません。 3D プリントのために使われます。

拡張子は .3mf、正式名称は 3D Manufacturing Format です。ただしどちらも、そのファイルが中に何を持てるかほどには多くを語りません。このページの残りは、その中身についての話です。

3MF はどこから来たのか

3MF Consortium が 2015 年に公開しました。 仕様は 3MF Core Specification です。

古さが役に立つのは、ごく実務的な理由からです。形式が古いほど、それを覚える時間が多くのプログラムに与えられてきたということだからです。

仕様は公開されています

仕様書がそのまま公開されているので、中身を推し量るのではなく文書を読んで実装できます。この形式が数多くのプログラムに載っているのはそのためであり、20 年前に書かれたファイルが今も開けるのもそのためです。ただし「仕様が公開されている」ことと「使用料が要らない」ことは別の話です。中でコーデックを包んでいる形式では、特許のライセンスは仕様書が答えていない別の問題として残ります。

捨てられるものはありません

3MF ファイルは中身をそのまま保存します。保存し直しても何も変わらないので、開いて、直して、また保存する——それを何度繰り返しても劣化は積み上がりません。これが、渡すための形式ではなく作業のための形式である理由です。

3MF を開けるのは何か

PrusaSlicer、Cura、Microsoft 3D Builderが読めますし、同じ種類のプログラムならたいてい読めます。

ファイルが開かないとき、形式が悪いことはめったにありません。たいていはプログラムのほうが形式より古いのです。もっと古い形式に変換してしまうのが確実な逃げ道で、このサイトの残りの部分はそのためにあります。

ブラウザーで開く

これを読めるブラウザーはありません。

これを変換するいちばんよくある理由がこれです。形式が悪いのではありません。ファイルを見せたい場所が、それを読めないというだけのことです。

作業のための形式です

3MF は、開いて手を入れるために作られています。作業が続いているあいだはこの形式でファイルを持ち、完成したものが必要になるたびに、ここから書き出してください。

STL が言えなかったことを言うために作られた

STL は1987年からの形式で、三角形の一覧だけを持ちます。単位もなく、色もなく、材質もなく、構造もメタデータもありません。3D プリントが試作の域を出て日常に広がるにつれて、これらの欠落は毎日の問題になり、2015年にプリンターとソフトウェアの製造元が集まって作った 3MF が、その欠落を埋めるために公開されました。

3MF は単位を宣言するので、模型が25倍の大きさで届くようなことが起きません。色や材質の割り当てを持てるので、複数素材の造形物を記述できます。複数のオブジェクトを位置情報とともに持てるので、12個のパーツを含むプレートが1つのファイルとして、配置済みの状態で開けます。

正体はXMLを含むZIPアーカイブ

3MF は OPC パッケージと呼ばれる仕組みを使っています。これは DOCX や XLSX と同じ考え方のコンテナで、モデルを記述する XML に加えて、材質やサムネイル、ベンダー独自の拡張のための付属パーツを持てます。拡張子を .zip に変えれば中身が開きます。

この選択は3つの利点をもたらします。圧縮によって、同じメッシュでも STL よりずっと小さくなること。拡張性によって、プリンターメーカーが独自データを追加しても、それを無視する読み手を壊さないこと。そしてサムネイルによって、3MF が並んだフォルダーにはプレビュー画像が表示され、STL が並んだフォルダーのように同じ灰色のアイコンばかりにならないことです。

仕様として印刷可能なメッシュを要求する

STL は何でも許します。穴、反転した法線、自己交差、厚みのない面。スライサーはそれを見て、作者が何を意図していたのかを推測しなければならず、多くの印刷失敗はそこから始まります。

3MF の仕様は、すべての辺がちょうど2つの三角形に共有されているマニフォールドな形状を要求します。仕様に沿った書き出しは印刷可能なモデルを作るか、さもなければ拒否します。問題がプリンターの手前で発見される場所が、作成したソフトウェアのほうへ移るということです。

それでもSTLがなくならない理由

惰性であり、それはかなりの重みを持つ惰性です。40年近く積み上げられたモデルライブラリーは STL です。あらゆるチュートリアルが STL を説明し、1990年以降に作られたスライサーや修復ツールはすべて STL を読めます。皆が読める形式を、優れているというだけの形式で置き換えるのは簡単ではありません

それでも流れは明らかです。PrusaSlicer や Bambu Studio など現行のスライサーはプロジェクトファイルとして 3MF をネイティブに使っており、サポートやプリント設定を含めて共有される「印刷準備済み」のファイルは実質的にこれです。

スライサーのプロジェクトファイルと素のモデルは別物

これが実際の混乱の原因になります。モデリングソフトから書き出された 3MF は単なるモデルです。一方、PrusaSlicer や Bambu Studio、Orca でプロジェクトとして保存された 3MF は、モデルに加えてそのスライサーの設定一式——プリンタープロファイル、フィラメント、サポート、モディファイア、オブジェクトごとの設定——を独自拡張として持っています。

別のスライサーでそのプロジェクトファイルを開くと、ジオメトリだけが読み込まれ、それ以外は警告付きか無警告のまま無視されることがよくあります。設定込みだと聞いていたファイルが、実際には素のモデルとして届くことがあるのはこのためです。

3MFとSTLの間で変換すると何が起きるか

STL へ変換すると、形状以外のすべて——単位、色、材質、オブジェクトの配置、設定、メタデータ——が失われます。形状は両方とも三角形で保存しているため正確に残ります。この変換が意味を持つのは、経路のどこかが 3MF を受け付けない場合だけです。

逆方向では何も新しく生まれません。STL を 3MF に変換しても、色も材質もない、指定した単位だけを持つ 3MF になります。これはコンテナの世代を上げる作業であり、ファイルを改善する作業ではありません。

使い分けの目安

複数パーツを持つモデル、複数の色を使うモデル、保存しておきたい設定があるモデル、配置された状態で届いてほしいプレート、そして数年後もまだ印刷しているであろうモデルには 3MF を使ってください。メタデータがあることで、忘れた頃にファイルを見ても意味が分かります。

サービスやライブラリーがこの形式を求めている場合、相手のソフトウェアが不明で古い可能性がある場合、あるいはモデルが単純な灰色のオブジェクト1つで、余分な情報がそもそも存在しない場合には STL を使ってください。1987年から変わらず、最も低い共通分母としての役割を今も担っています。

基本情報

3MFフォーマットの識別子と出自。
拡張子.3mf
メディアタイプmodel/3mf
公開元3MF Consortium
初版2015
仕様3MF Core Specification

3MF ファイルに関するよくある質問

3MF ファイルはどうやって開きますか

PrusaSlicer、Bambu Studio、Orca、Cura などの現行のスライサーや、Blender や Fusion を含む多くのモデリングソフトで開けます。Windows の 3D ビューアーでも直接開けます。拡張子を .zip に変えればアーカイブツールで中身を確認できます。

3MF は STL にできないことができますか

単位の宣言、色や材質の割り当て、複数オブジェクトとその配置、サムネイルの内蔵、幾何形状と一緒に印刷設定を保存することができます。マニフォールドなメッシュも要求しますが、STL は穴や反転した法線を許してしまいます。

それでも皆が STL を使い続けているのはなぜですか

40年近く積み上げられたモデルライブラリーやチュートリアル、ツール群があるからです。皆が読める形式を、優れているだけの形式で置き換えるのは容易ではありません。移行はSTLを捨てることではなく、スライサーのプロジェクトファイルを通じて進んでいます。

別のスライサーで開いたら印刷設定が消えました。なぜですか

それらの設定はベンダー独自の拡張だからです。あるスライサーで作ったプロジェクトファイルを別のスライサーで開くと、ジオメトリだけが読み込まれ、設定は無視されることが多く、警告が出ないこともあります。設定が重要なら、それを書き出したスライサーで開いてください。

3MF を STL に変換すると何か失われますか

形状以外のすべて——単位、色、材質、オブジェクトの配置、設定、メタデータ——が失われます。三角形そのものは正確に保たれます。経路のどこかが 3MF を受け付けない場合にだけ変換してください。

STL を 3MF に変換すると色や材質が追加されますか

いいえ。元になかったものは何も生まれません。結果は色も材質もない 3MF で、単位だけを指定した値として持ちます。これはコンテナのアップグレードであり、内容の復元ではありません。