こんばんは。
iOS用にビルドする際に、テクスチャーがPVRTCで圧縮されてしまいます。
この圧縮方式をETC2に変更する方法はあるでしょうか?
Androidですと、パッケージの際に圧縮方式で分岐していますがiOSは分岐していません。
PVRTCはAlpha値がかなり辛い描写になってしまうので、ETC2を使用したいです。
自分なりに調べてみましたが、ConsoleVariable等の変更を端末毎に変更する方法はあれど、
テクスチャーの圧縮方式の設定項目を見つけることが出来ませんでした。
iOSでETC2圧縮を使用する方法を教えて頂けると助かります。
UIで設定出来ないのであれば、エディターのソース直改変でも大丈夫です。
どなたかお助け頂けると幸いです。よろしくお願い致します。
PierPop
(Pier Pop)
2
iOSの場合、圧縮形式は「PVRTCS」「ASTC」のどちらかしかありません。
この問題を解消する方法として圧縮品質を調整する方法があります。
プロジェクト設定->Engine->Cookerの中の以下の数値を上げることで品質を調整できます。
(調整値:0~4、デフォルト:1となっており、数値が大きくなるほど時間がかかるけれども高品質になります)
どうしてもETC2形式でなくてはならないということであればソース改変が必要になりますが、
改修、保守コストの面を考慮するとおススメできません。
よって、まずは上記の項目を調整頂くことで対処できるのが一番良いかと思いますのでご検討下さい。
初期設定では「PVRTCS」となっていますが、「ASTC」を初期設定とする場合は、
設定ファイル(BaseEngine.ini)を以下のように修正することで変更することができます。
宜しくお願いします。
[BaseEngine.ini]
bCookPVRTCTextures=False
bCookASTCTextures=True
ご返信ありがとうございます!
Alphaの精度をどうにかしたい、というのが主目的でしたのでETC2でなくASTCでも大丈夫です。
早速ですが、BaseEngine.iniを改変してASTCにて圧縮する事ができました。
また、圧縮率の設定箇所も親切に教えて下さりありがとうございました。
なお以下はASTC圧縮を行う人のために、情報共有を記します。
-
iOSにおけるASTCはハード制限があります。具体的には、iPhone6以上の機種が必要です。
-
公式ドキュメントでは「モバイル用の圧縮設定はdefaultとnormalのみを推奨」と書いてありましたが、実際はBC7でもASTCに圧縮してくれるようです。(ハイエンドとテクスチャを共用できるので、管理が一元化できて楽です)
-
なお私が試した限りでは、default, mask, normal, BC7の4つの圧縮設定のみがASTCとして圧縮してくれました。それ以外の圧縮設定は、圧縮工程をスルーされましたので、ハイエンドとモバイルの共用テクスチャの際には注意が必要です。
以上、情報共有でした。