FoliMesh

Bevy向けリアルスタイルのグラウンドカバー

グラウンドカバーは Bevy のシーンに密度を与える要素です。読み込みは asset_server.load(GltfAssetLabel::Scene(0).from_asset("shida.glb")) で GLB を取得し、SceneRoot としてスポーンするだけ。FBX や OBJ はサードパーティ crate が必要なので、Bevy では GLB が基本です。シダ、草むら、アシはそれぞれ LOD0–LOD3、コリジョンメッシュ、ベース基準のピボット付きなので、森の下草や草原、水辺をサバイバルやオープンワールドのマップにそのまま敷き詰められます。

写実スタイルなので、樹皮と葉は metal/roughness ワークフローです。リーフカードはマスク方式で、glTF の alphaMode MASK は StandardMaterial の AlphaMode::Mask(cutoff) になり、深度を書き込み、ソート不要で正しい影を落とします。LOD エンティティに VisibilityRange を設定するとディザ付きクロスフェードで切り替わります。メッシュとマテリアルを共有したエンティティは自動でバッチ・インスタンス化されるため、草むらを大量に置いても負荷は抑えられます。コライダーはコリジョンメッシュから Avian や bevy_rapier で生成します。

モデル
3
LODレベル
LOD0 – LOD3
フォーマット
GLB · FBX · OBJ

リアルスタイルについて

リアル系モデルは PBR の metal/roughness ワークフローを採用しており、glTF 2.0、Unity、Unreal、Godot、three.js でそのまま読み込めます。

  • 樹皮:幹と枝にベースカラー、法線、ラフネスのマップ。
  • 葉:葉の房のテクスチャを貼ったアルファテスト(Masked)カード。アルファブレンドではないため深度を書き込み、ソート不要で影も正しく落ちます。
  • 樹皮と葉は別マテリアルなので、ドローコール数が読みやすく GPU インスタンシングとも相性が良好です。
  • LOD0 は近景用。LOD1〜LOD3 で枝と葉カードを減らし、最後のレベルは遠景に十分な軽さです。

PC・コンソールの一人称/三人称ゲーム、サバイバル、オープンワールド、シミュレーターに最適です。モバイルでは LOD1 か LOD2 を最も近いレベルにし、葉のオーバードローに注意してください。

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 でコリジョンメッシュからコライダーを作ります。

その他のカテゴリー

他のスタイルで見る

他のエンジン向け