FoliMesh

PlayCanvas向けローポリスタイルの低木

GLB を PlayCanvas エディタにドロップするだけ(FBX はインポート時に GLB へ変換されます)で、モデル階層を持つ container アセットが得られます。エディタを使わない場合は app.assets.loadFromUrl(url, 'container') で読み込み、asset.resource.instantiateRenderEntity() でシーンに配置します。8 モデル——竹、低木、ツゲ、生け垣、ビャクシン、野バラ、ラズベリー、ハシバミ——はすべて LOD0〜LOD3 と底面ピボット付きです。

PlayCanvas には LOD コンポーネントが無いため、カメラ距離を比較して各レベルのレンダーコンポーネントを切り替える短いスクリプトを用意します。ローポリはここで最も軽いスタイルです。フラットシェーディング、色は頂点カラー(COLOR_0)に入り、テクスチャもノーマルマップも不要。葉はアルファカードではなく中身の詰まったジオメトリなので alphaTest も透明 overdraw も発生せず、モバイル WebGL で効きます。マテリアルは 1 つでシーン全体をまかなえ、生け垣はバッチグループを共有するか meshInstance.setInstancing() でインスタンス化できます。LOD0 は数百〜2 千トライアングル程度です。

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

ローポリスタイルについて

ローポリはレンダリング負荷もビルドサイズも最も軽いスタイルです。

  • フラットシェーディング:面ごとに 1 本の法線でくっきりした多面体の見た目になり、法線マップは不要です。
  • 色は頂点カラー(glTF COLOR_0)に格納:テクスチャなし、UV 作業なし、VRAM もほぼ消費しません。
  • 葉はアルファカードではなく実体のジオメトリ:アルファテストも半透明のオーバードローもなく、モバイル GPU で効きます。
  • シーン内の全モデルで 1 つのマテリアルを共有でき、樹木を簡単にバッチング・インスタンシングできます。
  • LOD0 の一般的な予算は数百〜2,000 ポリゴン程度です。

モバイル、WebGL/WebGPU、VR、ストラテジー、街づくり、スタイライズドなインディーゲームに向いています。エンジンでは頂点カラーを乗算するマテリアルを使ってください。

PlayCanvasでの使い方

PlayCanvas は GLB をコンテナアセットとして扱います。エディターでは GLB をアップロードすると(FBX はインポート時に GLB へ変換)モデル階層付きのテンプレートができ、エンジン単体のコードでは app.assets.loadFromUrl(url, 'container') と asset.resource.instantiateRenderEntity() を使います。

  • LOD:組み込みの LOD コンポーネントはないため、小さなスクリプトでカメラとの距離を比較し、LOD0〜LOD3 エンティティの render コンポーネントを切り替えます。
  • 静的な木は同じバッチグループにまとめてドローコールを統合できます。大きな森では meshInstance.setInstancing() と変換行列の頂点バッファでハードウェアインスタンシングを使います。
  • 葉:glTF の MASK で StandardMaterial の alphaTest が設定されます。両面の葉にはカリングモードを none にします。
  • コリジョンメッシュ:mesh タイプの collision コンポーネントと静的 rigidbody を付け、render コンポーネントは無効にします。

パック

その他のカテゴリー

他のスタイルで見る

他のエンジン向け