はじめに

ご利用可能になったことをお知らせいたします Aspose.3D FOSS for TypeScript として @aspose/3d npm パッケージ。この MIT ライセンスのライブラリは、ネイティブバイナリやプラットフォーム固有のツールチェーン、商用ライセンスを必要とせずに、TypeScript および Node.js アプリケーションに本番品質の 3D シーン処理を提供します。.

このライブラリは、シンプルな Scene API: 3D ファイルをロードするには scene.open(), シーングラフを検査または変換し、結果を書き出すには scene.save().。 完全な TypeScript 型定義がバンドルされており、別途 @types/ 別のパッケージは必要ありません。.

主な機能

マルチフォーマット I/O。. このパッケージは、単一のインストールで 6 つの主要な 3D フォーマットの読み書きを行います。OBJ はインポートに対応しています。glTF 2.0、GLB、STL、3MF、そして COLLADA はインポートとエクスポートの両方に対応しています。FBX のインポーター/エクスポーター クラスは存在しますが、フォーマットの自動検出はまだ実装されていないため、FBX ファイルは via で読み込むことができません。 scene.open().

ファーストクラスの TypeScript サポート。. すべての公開クラス、列挙型、オプション型は完全に型付けされています。TypeScript 言語サービスをサポートする IDE(VS Code、WebStorm など)は、すべての API 呼び出しに対して正確なオートコンプリートとインラインドキュメントを提供します。.

Node.js 18–22+ 互換性。. このパッケージは Node.js 18、20、22 の LTS リリースに対してテストされています。インストール時にネイティブアドオンはコンパイルされないため、Node.js がサポートするすべてのプラットフォームで動作します。.

ランタイム依存関係は 1 つです。. 唯一の依存関係は xmldom,、COLLADA XML の解析専用に使用されます。その他のフォーマットパーサーはすべて純粋な JavaScript 実装です。.

MIT ライセンス。. 使用 @aspose/3d 商用、オープンソース、または社内プロジェクトで制限なく使用できます。.

クイックスタート

パッケージをインストール:

npm install @aspose/3d

OBJ ファイルを読み込み、バイナリ GLB に変換:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true;   // produce a single .glb file
scene.save('output.glb', GltfFormat.getInstance(), saveOpts);

console.log('Converted to GLB successfully');

シーンノードを反復してジオメトリを検査:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

for (const node of scene.rootNode.childNodes) {
    console.log(`Node: ${node.name}`);
    if (node.entity) {
        console.log(`  Entity type: ${node.entity.constructor.name}`);
    }
}

サポートされているフォーマット

フォーマット拡張子インポートエクスポート注釈
Wavefront OBJ.objはいいいえインポートのみ; 読み込み .mtl マテリアルファイル
glTF 2.0.gltfはいはい外部の JSON .bin バッファ
バイナリ GLB.glbはいはいセット binaryMode: trueGltfSaveOptions
STL.stlはいはいASCII とバイナリ STL
3MF.3mfはいはいOpen Packaging Convention アーカイブ
FBX.fbxいいえ*いいえ*インポーター/エクスポーターは存在しますが、形式の自動検出は未実装です
COLLADA.daeはいはいバンドルが必要です xmldom 依存関係

TypeScript の利点

使用中 @aspose/3d TypeScriptでは、実行時ではなくコンパイル時にカテゴリエラーを検出します。呼び出すと scene.save(),コンパイラは、options オブジェクトが期待される SaveOptions 選択されたフォーマットのサブタイプに一致しているかを検証します。フォーマット固有のロードおよびセーブオプションは、そのフォーマットに関連するプロパティのみを公開します。推測するための型なしオプションバッグは存在しません。.

例えば、, GltfSaveOptions.binaryMode は型付けされた boolean,なので、コンパイラは saveOpts.binaryMode = 'yes' コードが実行される前に拒否します。 AnimationClip,上のアニメーションプロパティは PbrMaterial,上のマテリアルチャンネルは VertexElement 上の頂点要素タイプは.

オープンソースかつ無料

このパッケージは以下の条件で公開されています MIT ライセンス. ソースコードは GitHub で入手可能です。コントリビューション、バグ報告、フォーマットサポートのリクエストは、リポジトリのイシュー トラッカーを通じて歓迎します。.

このライブラリにはランタイム依存関係が 1 つあります: xmldom バージョン 0.9+、COLLADA ファイルの読み書き時にのみ使用されます。他のすべてのパーサーとライターは、バイナリコンポーネントを含まない自己完結型の純粋な JavaScript 実装です。.

はじめに

結論

@aspose/3d バージョン 24.12.0 は、TypeScript と Node.js における 3D ファイル処理のための、安定した型付けされた依存性が少ない基盤を提供します。ユースケースがフォーマット変換、シーン検査、ジオメトリ抽出、またはパイプライン統合であるかどうかにかかわらず、ライブラリは許容的なオープンソースライセンスの下で、最も一般的な 3D 交換フォーマットをカバーしています。.

本日インストールして、作ったものをぜひ教えてください。.