.NETで3Dモデルを変換する方法
Aspose.3D for .NET は、形式変換を 2 段階の操作にします:ソース ファイルを Scene.Open() で読み込み、次に Scene.Save() でターゲット形式に保存します。出力形式はファイル拡張子から推測されます。
ステップバイステップ ガイド
ステップ 1: パッケージをインストールする
dotnet add package Aspose.3D --version 26.1.0ステップ 2: 名前空間のインポート
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;ステップ 3: ソース ファイルをロードする
var scene = new Scene();
scene.Open("input.fbx");ステップ 4: ターゲット形式で保存
scene.Save("output.glb");ライブラリは拡張子から対象フォーマットを検出します。サポートされているエクスポート形式: OBJ、STL、glTF 2.0 / GLB、FBX、COLLADA、そして 3MF。
ステップ5: フォーマット固有の保存オプションを使用
細かい制御を行うには、SaveOptions のサブクラスを渡します:
// FBX output — always produces binary FBX
// FbxSaveOptions exists but has no format-specific properties in this version
scene.Save("output.fbx");
// OBJ with flipped coordinate system
scene.Save("output.obj", new ObjSaveOptions { FlipCoordinateSystem = true });
// COLLADA with indented XML
scene.Save("output.dae", new ColladaSaveOptions { Indented = true });共通変換レシピ
| Source | Target | Code |
|---|---|---|
| OBJ to GLB | scene.Open("input.obj"); scene.Save("output.glb"); | Webビューア用のバイナリglTF |
| FBX to STL | scene.Open("input.fbx"); scene.Save("output.stl"); | 3Dプリント用の三角形メッシュ |
| glTF to COLLADA | scene.Open("input.gltf"); scene.Save("output.dae"); | DAE交換フォーマット |
| STL to OBJ | scene.Open("input.stl"); scene.Save("output.obj"); | モデリングツール用のWavefront |
一般的な問題と対処法
出力ファイルが空または非常に小さい
ソースファイルが正常にロードされたことを確認してください。Open()の後にscene.RootNode.ChildNodes.Countをチェックしてください。
変換中に失われた資料
すべてのフォーマットが同じマテリアル特性を持つわけではありません。OBJ のマテリアルは Lambert/Phong を使用し、glTF は PBR を使用します。マテリアルのマッピングはフォーマット間でベストエフォートです。
ソースと出力のスケール差
異なるツールは異なる単位系を使用します。インポート時にObjLoadOptions.Scaleを適用するか、保存前にnode.Transform.Scaleを調整してください。
よくある質問 (FAQ)
PLYを別の形式に変換できますか?
PLYはインポートのみです。PLYファイルを読み込み、任意のエクスポート形式(OBJ、STL、GLB、FBX、COLLADA)に保存できます。
変換はアニメーションを保持しますか?
アニメーションデータ(AnimationClip)は、両方のフォーマットがサポートしている場合に保持されます(例:FBX から glTF)。STL と OBJ はアニメーションデータを保持しません。
複数のファイルを一括変換できますか?
ループ内の各ファイルに対して新しいSceneを作成します。各Sceneは独立しており、並列で処理できます。