FoliMesh

Babylon.js向け3Dアセットパック

Babylon.jsでGLBパックを読むときは、@babylonjs/loadersのglTFローダーを使います。単体のモデルならImportMeshAsync、多数のコピーを配置するならLoadAssetContainerAsyncとinstantiateModelsToSceneが向いています。LODはコード側で接続し、lod0.addLODLevel(30, lod1)、addLODLevel(80, lod2)のように指定、第2引数にnullを渡すとその距離から非表示になります。葉はMASKマップとアルファテスト(MATERIAL_ALPHATEST)で描画され、コリジョンメッシュは非表示のままcheckCollisionsやHavokで使えます。収録は8パックで、無料サンプラーから砂漠キット、岩と崖まで揃っています。

針葉樹林やトロピカルビーチのように密度の高いシーンではthin instancesが有効です。行列を使うthinInstanceAddはメッシュごとに1ドローコールで描画でき、木ごとにピッキングや個別ロジックが要る場合はcreateInstanceを使います。すべてのモデルにLOD0–LOD3、コリジョン、ベース基準のピボットがあり、GLB・FBX・OBJで書き出せ、新しいシードごとにバリエーションが増えます。ブラウザで動くストラテジー、サバイバル、シミュレーション、見下ろし型の作品に向いています。

Babylon.jsでの使い方

Babylon.js は @babylonjs/loaders の glTF ローダーで GLB を読み込みます。ImportMeshAsync(古いコードでは SceneLoader.ImportMeshAsync)、多数のコピーが必要なら LoadAssetContainerAsync と instantiateModelsToScene を使います。

  • LOD:lod0.addLODLevel(30, lod1)、addLODLevel(80, lod2) のように登録します。メッシュに null を渡すと、その距離より先でオブジェクトが非表示になります。
  • 数千本の木:Thin Instances(行列を渡す thinInstanceAdd)はメッシュごとに 1 ドローコールで描画できます。木ごとにピッキングやロジックが必要なら通常の createInstance を使います。
  • 葉:glTF の MASK はアルファテストの PBRMaterial(MATERIAL_ALPHATEST)になります。
  • コリジョンメッシュ:isVisible = false にして、checkCollisions か Havok 物理(MESH 形状の PhysicsAggregate)で使います。

パック

他のスタイルで見る

他のエンジン向け