.NETで3Dモデルを変換する方法

.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 });

共通変換レシピ

SourceTargetCode
OBJ to GLBscene.Open("input.obj"); scene.Save("output.glb");Webビューア用のバイナリglTF
FBX to STLscene.Open("input.fbx"); scene.Save("output.stl");3Dプリント用の三角形メッシュ
glTF to COLLADAscene.Open("input.gltf"); scene.Save("output.dae");DAE交換フォーマット
STL to OBJscene.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は独立しており、並列で処理できます。

 日本語