FoliMesh

PlayCanvas向けグラウンドカバー

PlayCanvas ではこれらのモデルを GLB の container アセットとして読み込みます。エディタにアップロードするとモデル階層を持つ template になり、エンジンのみのコードでは app.assets.loadFromUrl(url, 'container') と asset.resource.instantiateRenderEntity() を使います。シダ、草むら、アシは LOD0–LOD3 を備えますが、PlayCanvas に LOD コンポーネントはないため、カメラ距離を比べて各 LOD エンティティの render コンポーネントを切り替える短いスクリプトを用意します。

葉は glTF の MASK で StandardMaterial の alphaTest が設定され、両面の葉や茎には cull mode を none にします。衝突は mesh タイプの collision コンポーネントと静的 rigidbody を組み合わせ、render コンポーネントは無効にします。シダ、草、アシはブラウザゲームの林床、草地、水辺に向き、小さなメッシュは batch group にまとめるか meshInstance.setInstancing() でインスタンス化します。

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

その他のカテゴリー

他のスタイルで見る

他のエンジン向け