FoliMesh

PlayCanvas向け樹木

GLB を PlayCanvas エディタにドロップすると、モデル階層を保った container アセットとして読み込まれます。エディタを使わない場合は app.assets.loadFromUrl(url, 'container') で読み込み、asset.resource.instantiateRenderEntity() を呼びます。FBX はインポート時に GLB へ自動変換されます。

収録は 14 本の樹木:オーク、ヨーロッパアカマツ、トウヒ、シラカバ、シダレヤナギ、カエデ、オリーブ、バオバブなど。すべて LOD0〜LOD3、コリジョンメッシュ、根元のピボット付きです。PlayCanvas には LOD コンポーネントがないため、短いスクリプトでカメラ距離を比較して各 LOD エンティティを切り替えます。静的は batch group でまとめ、大規模な森は meshInstance.setInstancing() が有利。葉は alphaTest と cull mode none を使います。

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

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 コンポーネントは無効にします。

パック

その他のカテゴリー

他のスタイルで見る

他のエンジン向け