FoliMesh

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

PlayCanvas は GLB をコンテナアセットとして読み込みます。エディタにアップロードするとモデル階層を持つテンプレートが生成され、エンジンコードのみの場合は app.assets.loadFromUrl(url, 'container') と asset.resource.instantiateRenderEntity() を使います。8 つのパック——無料サンプル、温帯林、針葉樹林、トロピカルビーチ、砂漠キット、岩と崖——は各モデルに LOD0–LOD3、コリジョン、底面ピボットを備えます。

PlayCanvas に LOD コンポーネントはないため、短いスクリプトでカメラ距離を比較し LOD0–LOD3 の render コンポーネントを切り替えます。静的な樹木は batch group でまとめ、大規模な森は meshInstance.setInstancing() によるハードウェアインスタンシングを使います。葉は glTF MASK が alphaTest を設定し、両面の葉には cull mode none を。書き出しは GLB / FBX / OBJ、seed を変えるたびに新しいバリエーションになります。

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

パック

他のスタイルで見る

他のエンジン向け