セキュリティ系の勉強・その他開発メモとか雑談. Twitter, ブログカテゴリ一覧
本ブログはあくまでセキュリティに関する情報共有の一環として作成したものであり,公開されているシステム等に許可なく実行するなど、違法な行為を助長するものではありません.

Unity 公開されているUnity道場のスライドがすごくためになる!

//

 いかに面白いものを作るかではなく、どう効率よく実装するかも気になり始めているこの頃。とても素晴らしい資料を発見いたしました。

【Unity道場】パフォーマンス最適化の ポイント // Speaker Deck



 Unity道場なんていうイベントがあるんですね!ホームページへはここから飛べます。資料なんかも載っているので興味を引いたものは見ておいて損はないですね!素晴らしい!

 で、今回発見した上の資料はパフォーマンスの最適化について書かれていましたので、今の僕の興味範囲にドンピシャな内容でした!が、レベルが高くて全くついていけなさそう。基本的なことがわかっていればついていけるのかも?!ということで、僕のチンケな頭でも理解できるように、専門用語をとことん調べてここに書き出します笑 初心者丸出しな日記になるけど、自分の成長のためなら仕方ない笑 誰かの助けにもなればいいな笑



CPUとGPU
(ここからわからないんかい!とか言わないで笑)
Central Processing Unit と Graphics Processing Unit の略称です。CPU には汎用性でGPUには画像処理で活躍をしてもらっているらしいです。CPU は計算速度が早い、GPU は複数処理を一緒に処理できるがそれぞれの計算自体は CPU ほど早くはない。お互いに適材適所することで共存しているんですねきっと!
 スライドの最初に言いたいことは、「1フレームは CPU,GPU の処理が長い方に依存する。全体の性能としてバランスが取れている Unity エディタに対し、実際のプラットホームは CPU が弱い GPU が弱いなど性能差があるため、実機でテストをしながらやるのがトラブルを防ぐ手段だよ」って感じですか?

Unityプロファイラー
 パフォーマンスの確認ができるそうです。特に iPhone,Android の実機を繋げば、そのパフォーマンスを確認できるため便利そう!今度使ってみる!詳しくは下のリンクを参照。
Unity - マニュアル: プロファイラー ウィンドウ


GPUの負荷軽減〜LOD
 LODとはなんぞや!Level Of Detailの略だそうで、カメラから遠いオブジェクトのポリゴン数をその距離に応じて減らして表示しようという工夫!Unity 自体には元々組み込まれている機能なので、後は自分たちでそのアセットを準備し、設定してやればいいそうです!これにより描画するものが削減され、処理がそのぶん軽くなるとのこと!下に参考になるブログさんのリンクを貼っておきます!
【Unity】LODでパフォーマンスを向上させる - 藍と淡々


GPUの負担軽減〜Occlusion Culling
 オクルージョンカリングと読むそうです。カメラの領域外のオブジェクトのレンダラーを無効にすることをフラスタムカリングと言うそうですが、オクルージョンカリングはあるオブジェクトが他のオブジェクトに隠されていて現在カメラに映らないときに、オブジェクトのレンダリングを無効にする機能だそうです。これは自動では行われないので自分で設定する必要があり、少し手間がかかりそうですね笑 ダンジョンを探検するようなゲームではとても有効な手段のように思えます。詳しくは下のりんくから見てください。これは少しレベルが高そうです。ちなみに、このようにカメラから見てオブジェクトが二つ前後で重なっている状態をオーバードローと呼ぶそうです。いかにも無駄な処理っぽい名前。。。まぁ普通の英語ですが笑
Unity - マニュアル: オクルージョンカリング


アセットバンドルとは
 Sceneとかがまとめて入っているあれです。きっと
Unity - マニュアル: アセットバンドル


ScriptableObject
ScriptableObjectについて - テラシュールブログ


Create,Load,Clone
 Create は AddComponent の処理に時間がかかる。Load は値の流し込みに時間がかかる。Cloneは最速だが、親子関係を操作するのが大変?といった感じ。スライドではScriptableObjectを使用したLoadを解決用の一例にあげていた。


CPU~OnBecameVisible
 見えるようにするメソッド。上記の OcclusionCulling をしない場合などは有効だと書いてある。



 後は、localPositionを使うなど、比較的わかりやすいものだったかな。。ただ、アニメーションのfbxの部分だけはイマイチわからなかった。Mayaの使い方もしっかりは理解できていないので、この辺りは自分の中で改善できそうな点かなと新ためて思いました。

 ただ、OcclusionCullingや特にLODは自分の中で大きな収穫だったかなと思います!すごい良い資料に巡り会えました。