モバイルのヒッチ対策
PSOキャッシュとは
PSOキャッシュとは「Pipeline State Object (PSO) キャッシングツール 」の略称です。
モバイルでの画面のカクツキ(ヒッチ)を解消するやつです。
詳しくはこちら
・そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
■PSOキャッシュのおおまかな流れ
公式サイトの作業の順番は以下になります。
PSO キャッシングの有効化とビルド
PSO データの収集
PSO キャッシュのビルド
PSO キャッシングを使用したUE4プロジェクトのビルド
PSO キャッシングデータのコンパイルと使用
要約すると、
事前にシェーダーリストを作って、
それをパッケージに含めましょう。
ということです。
■必要なもの 事前準備
・テストデバイス
┗シェーダーのリストを生成するのに必要
・PJのパス
┗コマンドレットの都合上、エンジンと同じ場所の方がよさそう
・データ収集用Mapの作成
┗シェーダーリストを作りたい素材をまとめたMapを用意
・iOSのライブラリ表示
┗itunesからデータ取得が可能なように設定する必要あり
Android編
-公式手順1-
[Edit] > [Project Settings] > [Packaging] から以下二つにチェックを入れる
Share Material Shader Code (マテリアル シェーダー コードを共有)
Shared Material Native Libraries (マテリアル ネイティブ ライブラリの共有)
これはデフォルトではチェックが入っているはずなので問題なし。
問題は手順4です。
-公式手順4-
[Device Profile] の[Android] [iOS] の[Console Variables (コンソール変数)] で
r.ShaderPipelineCache.Enabled を追加する
エディタが日本語モードだと出てきません。
レンダリングの+ボタンを押してみると分かるのですが、
公式サイトに載っている画像に比べ、
候補で出てくる文字列が全然違います。
エディタの環境設定から、エディタの言語を英語に変更しましょう。
そうすると出てきます。
出てこない場合はエディタを再起動してください。
AndroidとiOS両方有効にしておきましょう。
・事前準備 Map
カスタムプロジェクトランチャーの設定説明
画像+説明
要点説明
うまくいかない場合はいつも通りフォルダ削除
ただこれをすると手順①の設定が消えてる場合があるので注意
テストデバイスに生成されない場合
フォルダを事前に作っておいてから実行する
もしくは全て削除してから試す
・事前準備 AndroidEngine.iniに記述 iOSも
-手順2-
「scl.csv」ファイルを探します。
と書いてありますが、
4.27からcsvからshkに変わってます!
なので生成されているデータは
〇〇〇
ではなく、正しくは
〇〇〇
です。
なので必然的に手順9のコマンドラインパラメータの記述も変わってきます。
公式サイト
ActionRPG -run=ShaderPipelineCacheTools expand C:/PSOCaching/*.rec.upipelinecache C:/PSOCaching/*.scl.csv ActionRPG_GLSL_ES3_1_ANDROID.stablepc.csv
正しくは
-run=ShaderPipelineCacheTools expand C:/PSOCaching/*.rec.upipelinecache C:/PSOCaching/*.shk ActionRPG_GLSL_ES3_1_ANDROID.stablepc.csv
要点と注意点
ファイルはEngine\Binaries\Win64にできる
前項でできたstablepc.csvをPJフォルダの以下に配置
Build > Platform Name > PipelineCaches
PipelineCaches フォルダがなければ新規作成後に配置
Platform Name の部分は「Android」ではなく「Android_ASTC」などの方
ブループリントオンリーの場合再パッケージでOK
ブループリントオンリーの場合再パッケージでOK フルビルド
起動してロゴが二回でたら成功
iOS編
コマンドレットのとこ
コマンド記述
■
その他