Open Narazaka opened 1 month ago
crunch圧縮を切っても結果変わらず
1K/4Kの設定をしても上記の見た目と同様でした
メインテクスチャーを超える解像度を持つノーマルマップ(つまるところメインテクスチャ以外のテクスチャ)ってあるのか...
基本的にアイランドの再配置を行う前に行われる、テクスチャサイズに応じたアイランドのスケーリングが メインテクスチャーを基準に行われているので...メインテクスチャ以上のサイズを持ったテクスチャが小さく扱われてしまうのはおかしくないですね...
近年の服ではむしろノーマルによって付与されるディテールがメインで、MainTexはシンプルみたいなやつもそこそこ数がある認識ですね。 デフォルトでサイズが逆転してるのは結構珍しいと思いますが、軽量化のためにテクスチャサイズを小さくするといった作業においてMainTexのほうがNormalより見た目を大きく変えずに小さくしやすいという事例は普通にあります。
またユースケースとして「服aをそのまま着たアバターA」と「服aの一部を流用して服bと組み合わせたアバターB」を作る時 アバターAのためには服aのMainTex 1K/Normal 4Kとするのが最適になる(UV全て使うのでTTTの必要は無い)ならば アバターBでTTT AtrasTextureにかけるために服aのMainTexを4Kにするというのもやりがたく……
まず AtlasTexture の方針は2つ以上のUVを生成はしないという方針で考えていて、それをするための別コンポーネントを考えています。 となれば、ノーマルマップのほうの解像度を維持するには、アイランドのスケーリングを大きいノーマルマップの方でしなければならないですが.... これはメインテクスチャーの暗黙的なアップスケーリングを意味していて禁忌でありやりたくないところ
テクスチャのインポート設定で大きくするか、TextureConfiguratorを使いほかに影響を及ぼさずにメインテクスチャーを明示的に大きくして テクスチャ詳細設定などで調整してほしいといったところ...
インポート設定は前述のユースケース記載の通り大きくは出来ないのでTextureConfiguratorを試してみましたが、なんかmitmap有効にすると変な風になる……
あとプレビューが排他ならこれを確認するのはplayしかないですかね?
あと以下のようにTextureConfiguratorをAtrasTextureより前に配置すると後述のエラーが出て、逆順にすると恐らくTextureConfiguratorが適用されず劣化したまま変わりません(mipmapの設定によらない)
System.ArgumentNullException: Value cannot be null.
Parameter name: texture
at (wrapper managed-to-native) UnityEditor.EditorUtility.CompressTexture(UnityEngine.Texture2D,UnityEngine.TextureFormat,int)
at net.rs64.TexTransTool.TextureCompress.CompressDeferred () [0x0002c] in .\Packages\net.rs64.tex-trans-tool\Editor\Domain\TextureManager.cs:154
at net.rs64.TexTransTool.TextureManager.CompressDeferred () [0x00001] in .\Packages\net.rs64.tex-trans-tool\Editor\Domain\TextureManager.cs:37
at net.rs64.TexTransTool.RenderersDomain.EditFinish () [0x00014] in .\Packages\net.rs64.tex-trans-tool\Editor\Domain\RenderersDomain.cs:161
at net.rs64.TexTransTool.Build.TexTransBuildSession.TTTSessionEnd () [0x00020] in .\Packages\net.rs64.tex-trans-tool\Editor\Build\AvatarBuildUtils.cs:64
at net.rs64.TexTransTool.Build.NDMF.TTTSessionEndPass.Execute (nadena.dev.ndmf.BuildContext context) [0x00001] in .\Packages\net.rs64.tex-trans-tool\Editor\Build\NDMF\TTTPass.cs:93
at nadena.dev.ndmf.Pass`1[T].nadena.dev.ndmf.IPass.Execute (nadena.dev.ndmf.BuildContext context) [0x00001] in .\Packages\nadena.dev.ndmf\Editor\API\Fluent\Pass.cs:64
at nadena.dev.ndmf.ConcretePass.Execute (nadena.dev.ndmf.BuildContext context) [0x00001] in .\Packages\nadena.dev.ndmf\Editor\API\Solver\PluginResolver.cs:36
at nadena.dev.ndmf.BuildContext.RunPass (nadena.dev.ndmf.ConcretePass pass) [0x00135] in .\Packages\nadena.dev.ndmf\Editor\API\BuildContext.cs:350
at (wrapper managed-to-native) UnityEditor.EditorUtility.CompressTexture(UnityEngine.Texture2D,UnityEngine.TextureFormat,int)
at net.rs64.TexTransTool.TextureCompress.CompressDeferred () [0x0002c] in .\Packages\net.rs64.tex-trans-tool\Editor\Domain\TextureManager.cs:154
at net.rs64.TexTransTool.TextureManager.CompressDeferred () [0x00001] in .\Packages\net.rs64.tex-trans-tool\Editor\Domain\TextureManager.cs:37
at net.rs64.TexTransTool.RenderersDomain.EditFinish () [0x00014] in .\Packages\net.rs64.tex-trans-tool\Editor\Domain\RenderersDomain.cs:161
at net.rs64.TexTransTool.Build.TexTransBuildSession.TTTSessionEnd () [0x00020] in .\Packages\net.rs64.tex-trans-tool\Editor\Build\AvatarBuildUtils.cs:64
at net.rs64.TexTransTool.Build.NDMF.TTTSessionEndPass.Execute (nadena.dev.ndmf.BuildContext context) [0x00001] in .\Packages\net.rs64.tex-trans-tool\Editor\Build\NDMF\TTTPass.cs:93
at nadena.dev.ndmf.Pass`1[T].nadena.dev.ndmf.IPass.Execute (nadena.dev.ndmf.BuildContext context) [0x00001] in .\Packages\nadena.dev.ndmf\Editor\API\Fluent\Pass.cs:64
at nadena.dev.ndmf.ConcretePass.Execute (nadena.dev.ndmf.BuildContext context) [0x00001] in .\Packages\nadena.dev.ndmf\Editor\API\Solver\PluginResolver.cs:36
at nadena.dev.ndmf.BuildContext.RunPass (nadena.dev.ndmf.ConcretePass pass) [0x00135] in .\Packages\nadena.dev.ndmf\Editor\API\BuildContext.cs:350
MipMap のほうは普通にバグですね...二つめのNullExceptionはプレイモードに入るときなどのビルド時にしか発生しないバグですね...修正します。
あとプレビューが排他ならこれを確認するのはplayしかないですかね?
TexTransGroup か PhaseDefine か PreviewGroup を使用してください。(画像はTexTransGroup)
ただ、前者二つは特別な意味を持ちます。今回のケースでは TextureConfigurator を AtlasTexture の前に動作させる必要があるので TexTransGroup を使うのが適切ですね、詳しい詳細はドキュメントを参照してください。
https://github.com/ReinaS-64892/TexTransTool/issues/572 の再オープンです。
TexTransTool 0.7.5です。
同様の事例でピクセルノーマライズを有効にしてもなお改善しない事例もありましたので再オープンします。 これはMainTexのほうが1KでNormalが4Kという逆転が起きているのでそこでなにかあったりする……?
元
プレビュー
![image](https://github.com/user-attachments/assets/084af28c-86c6-445d-8e91-bbfe51385a57)
4K設定にした![image](https://github.com/user-attachments/assets/1af77d3f-3531-4494-b78d-532f82c9a994)
MainTex 1K
Normal 4K
発光テクスチャ
![image](https://github.com/user-attachments/assets/7c64018a-9d2c-4049-8197-bbb85bcc6734)
MainTex プレビュー中
Normal プレビュー中
発光テクスチャプレビュー中
![image](https://github.com/user-attachments/assets/01a49f21-6d95-4643-aff3-ba91e071c1ce)