FoliMesh

Bevy向け3Dアセットパック

Bevy は glTF / GLB を AssetServer 経由で直接読み込むため、ここにあるパックはそのままシーンとして Rust プロジェクトに入ります。asset_server.load(GltfAssetLabel::Scene(0).from_asset("conifer.glb")) を SceneRoot でスポーンするだけです。FBX と OBJ はサードパーティ crate が必要なので、ここでは GLB を使います。8 つのパックには Temperate Forest、Conifer Forest、Tropical Beach、Savanna & Dry Lands、Desert Kit、Rocks & Cliffs、Low-Poly Starter と無料サンプラーがあり、樹木、ヤシ、サボテン、低木、地被、岩を収録しています。

各モデルは LOD0〜LOD3 を備えるので、LOD のエンティティに VisibilityRange を付ければ Bevy の HLOD 機構が距離に応じて切り替え、ディザつきクロスフェードでつなぎます。Rust 製のサバイバルや拠点建築ゲームに向く挙動です。glTF の alphaMode MASK は StandardMaterial の AlphaMode::Mask(cutoff) になり、共有メッシュは自動でインスタンス化されるため、木を何百本置いても負荷は軽いままです。ピボットは底面にあり、コリジョンメッシュは Avian や bevy_rapier に渡せます。新しい seed ごとに新しいバリエーションが得られます。

Bevyでの使い方

Bevy は AssetServer で glTF/GLB を読み込みます。asset_server.load(GltfAssetLabel::Scene(0).from_asset("tree.glb")) を SceneRoot でスポーンし、個々のメッシュやマテリアルにはラベルでアクセスできます。FBX と OBJ にはサードパーティのクレートが必要なので、GLB を使うのが基本です。

  • LOD:LOD0〜LOD3 の各エンティティに VisibilityRange(開始・終了マージン)を付けると、距離に応じてディザのクロスフェードで切り替わります。これが Bevy の HLOD の仕組みです。
  • 葉:glTF の alphaMode MASK は StandardMaterial の AlphaMode::Mask(cutoff) になり、両面マテリアルでは背面カリングが無効になります。
  • 同じメッシュとマテリアルを共有するエンティティは自動でバッチング・インスタンシングされるため、木を大量に置いても軽く済みます。
  • コリジョン:Bevy には物理が組み込まれていないので、Avian や bevy_rapier でコリジョンメッシュからコライダーを作ります。

パック

他のスタイルで見る

他のエンジン向け