前提・実現したいこと
キャラクターアニメーションの際に絵を切り替えるとパフォーマンスに悪影響が出てしまうため、問題を改善、または緩和する方法を得たいと思ってご相談に参りました。
僕は2dアニメーションで、一つのキャラに複数のリギングしたスプライトスキンを割り当ててアニメーションさせています。
以下のような感じです。
僕はこの横の絵や斜めの絵を切り替える際にイラストを一括でSetActiveをfalseにして非表示にしていました。
しかしこの方法で連続して絵を切り替えたりすると非常にパフォーマンスが悪いということで、別の方法による絵の表示非表示の切り替えを模索しています。
↓連続でSetActiveが切り替わると敵やNPCを排除した状態でも60~30FPSまで落ち込むことがあります。
自分で試したことについては先の項目で詳しく記述しますが、もしベターな解決策をご存じの方がいらっしゃればどうぞ知恵を貸していただきたいです。
試したこと
まず現状の解決策として採用しているのはスプライトのZ軸座標をカメラより手前にすることで描画しないようにするという方法です。
おおむね200FPS付近で安定しています。
そしてほかに試した方法と不採用の理由を以下で示します。
・カメラで描画しないレイヤーを作ってそこに非表示のレイヤーを入れる→アニメーションのプロパティにレイヤーの切り替えがない。
・パーツのレンダラーを一つずつすべてのEnabledを切っていく→非常に煩雑で一枚につき四十以上パーツがあることを思えばあまりやりたくはない。
・アルファ値の切り替え→上と同じ理由で、パーツをひとつずつ消さなければならない。
今の結論が最適ならいいのですが、やはり待機(斜めの絵)→移動(横の絵)という最も基本的な動作でさえ絵の切り替えによりFPSが一瞬がくんと落ち込んでしまう現状に不安を感じます。
オーバーヘッドの小さい非表示の方法をご存じの方がいればお力添えいただけるよう願います。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。