AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

モバイルで高速化の探求

学校シミュレーターはほぼほぼ完成して、後はモバイルの速度さえ十分でれば公開できるとこまで来ました。

skinnedMeshなキャラ50人ぐらい。
背景の3Dモデルは、SetPassCall80くらい。


スマホで15fpsぐらい。キャラが少ない校舎裏で20fpsぐらい。
動きが混んでくると10fpsぐらい。


いったい何に負荷がかかっているのか? プロファイラーを使うとプロファイラー自身の負荷でよく解らない。

仮説1)表示が重い
仮説2)CPUがパワーを食っている


キャラを8人ぐらいに減らすと、33fpsぐらい出る。
背景の3Dモデルは問題ない。問題なのは、キャラクター。


LODとして、距離15より遠い場合に、髪の毛、メガネを非表示にする。効果なし
LODとして、Animatorをfalseにする。効果なし
移動中は、NavMeshを止める。ゴールを見つける場合だけnavMeshをenableにする(その代わり、CharacterControllerに変更)。効果がない


移動をcharacterControllerを止める。
30fps超える!

お前か! お前が遅い犯人か!

真犯人=CharacterController(もしくはNavMeshAgent状態のtransform.positionの更新)