[WL-814v] 얼굴·머리 텍스처 도트풍 안 (#814)
- §1 실측: 부위별 텍셀→화면픽셀 밀도(앞면 삼각형 · 화면면적 가중) · 올리브 원인 규명 - 얼굴 face02_V1..V4 · 머리칼 Hair05_V1..V4 (원본 복사 → 제자리 가공 · UV/메시 무변경) - 올리브 차단: HSV 의 V 만 조절(RGB 배율 금지 → 채널 포화 0) + 단별 Hue 를 기준색 ±cap 로 제한 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
|
@ -0,0 +1,26 @@
|
|||
포즈 = 카메라 정면 yaw 240° · ortho 10 · 1080×1920 (814u 동일)
|
||||
마스크: 얼굴데칼 50 px (x:532, y:969, width:22, height:7) · 머리칼 1154 px · 머리(피부) 1047 px · 전체 2996 px (x:512, y:909, width:51, height:100)
|
||||
피부(Head) 평균 밝기 L = 181 → 「진하게 읽히는 점」 문턱 = L < 136
|
||||
|
||||
== 얼굴 안별 화면 실측 (얼굴 데칼 50 px) ==
|
||||
원본 고유색 49 · 서로다른색 98 % · 밝기 71~184(폭 112) · Hue 16.9° · ΔHue - · 진한점 14 px · 눈1개 진한부분 5×3 px
|
||||
face V1 고유색 31 · 서로다른색 62 % · 밝기 10~172(폭 162) · Hue 23.0° · ΔHue +6.1 · 진한점 36 px · 눈1개 진한부분 7×5 px
|
||||
face V2 고유색 36 · 서로다른색 72 % · 밝기 12~161(폭 148) · Hue 22.0° · ΔHue +5.1 · 진한점 25 px · 눈1개 진한부분 7×5 px
|
||||
face V3 고유색 21 · 서로다른색 42 % · 밝기 21~171(폭 150) · Hue 21.7° · ΔHue +4.8 · 진한점 15 px · 눈1개 진한부분 7×3 px
|
||||
face V4 고유색 32 · 서로다른색 64 % · 밝기 10~172(폭 162) · Hue 24.3° · ΔHue +7.3 · 진한점 38 px · 눈1개 진한부분 7×5 px
|
||||
|
||||
== 머리칼 안별 화면 실측 (머리칼 1154 px) ==
|
||||
원본 고유색 1067 · 서로다른색 92 % · 밝기 104~237(폭 132) · Hue 39.2° · ΔHue -
|
||||
hair V1 고유색 564 · 서로다른색 49 % · 밝기 78~225(폭 147) · Hue 36.0° · ΔHue -3.2
|
||||
hair V2 고유색 641 · 서로다른색 56 % · 밝기 84~226(폭 141) · Hue 35.8° · ΔHue -3.4
|
||||
hair V3 고유색 517 · 서로다른색 45 % · 밝기 49~216(폭 167) · Hue 30.3° · ΔHue -8.9
|
||||
hair V4 고유색 497 · 서로다른색 43 % · 밝기 36~219(폭 183) · Hue 33.4° · ΔHue -5.8
|
||||
|
||||
saved Screenshots_WL/WL814v/v_face_grid.png (3588×770)
|
||||
saved Screenshots_WL/WL814v/v_hair_grid.png (1212×306)
|
||||
saved Screenshots_WL/WL814v/v_best_full.png (768×800)
|
||||
|
||||
== 추천 조합 얼굴 V1 + 머리 V1 ==
|
||||
캐릭터 전체: 고유색 2658 → 2131 · 서로다른색 89 % → 71 %
|
||||
얼굴 진한점 14 → 38 px · 눈1개 7×5 px · 대비폭 112 → 162
|
||||
머리칼 고유색 1067 → 564 · ΔHue -3.2°
|
||||
|
|
@ -0,0 +1,298 @@
|
|||
// WL814v_Capture.cs — 안별 임포트 설정 + 화면 실측 + 비교 캡처 (에디터 전용)
|
||||
// 🔴 씬 저장 0 · 머티리얼/프리팹/URP 에셋 수정 0 (씬 인스턴스에 임시 Material 만 꽂았다 버린다) · ProjectSettings 0 · 원본 png 수정 0
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
|
||||
public static class WL814v_Capture
|
||||
{
|
||||
const string SCENE = "Assets/WL/Look/Arena/Scenes/WL_ArenaProto.unity";
|
||||
const string TEX = "Assets/WL/Look/Character/Textures/";
|
||||
const string SHOT = "Screenshots_WL/WL814v/";
|
||||
const string OUT = "AgentScripts/WL814v_CAPTURE.txt";
|
||||
const int LAYER = 31;
|
||||
const int W = 1080, H = 1920;
|
||||
static readonly string[] VS = { "V1", "V2", "V3", "V4" };
|
||||
static readonly StringBuilder sb = new StringBuilder();
|
||||
static void L(string s) { sb.AppendLine(s); Console.WriteLine("[814vC] " + s); }
|
||||
|
||||
public static void Import()
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (var v in VS)
|
||||
foreach (var f in new[] { "face02_" + v + ".png", "Hair05_" + v + ".png" })
|
||||
{
|
||||
var p = TEX + f;
|
||||
AssetDatabase.ImportAsset(p, ImportAssetOptions.ForceUpdate);
|
||||
var ti = (TextureImporter)AssetImporter.GetAtPath(p);
|
||||
if (ti == null) { L("!! importer null " + p); continue; }
|
||||
ti.textureType = TextureImporterType.Default;
|
||||
ti.alphaSource = TextureImporterAlphaSource.FromInput;
|
||||
ti.alphaIsTransparency = true;
|
||||
ti.mipmapEnabled = true; // 1/40 축소 → 밉 없으면 심하게 반짝인다
|
||||
ti.filterMode = FilterMode.Point; // 도트: 보간 금지
|
||||
ti.wrapMode = TextureWrapMode.Clamp;
|
||||
ti.sRGBTexture = true;
|
||||
ti.maxTextureSize = 512; // 원본 face02_WL/Hair05_WL 의 실효 크기와 동일 조건
|
||||
ti.textureCompression = TextureImporterCompression.Uncompressed; // 블록압축은 하드 엣지를 뭉갠다
|
||||
ti.SaveAndReimport();
|
||||
var t = AssetDatabase.LoadAssetAtPath<Texture2D>(p);
|
||||
L(string.Format("import {0} → {1}×{2} · {3} · mip {4} · {5}", f, t.width, t.height, t.format, t.mipmapCount, t.filterMode));
|
||||
}
|
||||
}
|
||||
catch (Exception e) { L("EXCEPTION " + e); }
|
||||
finally { Directory.CreateDirectory(Path.GetDirectoryName(OUT)); File.WriteAllText(OUT, sb.ToString(), new UTF8Encoding(true)); }
|
||||
}
|
||||
|
||||
class Shot { public Color32[] px; public int w, h; }
|
||||
|
||||
static Camera cam;
|
||||
static Shot Render(Color bg)
|
||||
{
|
||||
var rt = new RenderTexture(W, H, 24, RenderTextureFormat.ARGB32, RenderTextureReadWrite.sRGB);
|
||||
rt.antiAliasing = 1; rt.filterMode = FilterMode.Point;
|
||||
var pA = RenderTexture.active; var pC = cam.clearFlags; var pB = cam.backgroundColor;
|
||||
cam.clearFlags = CameraClearFlags.SolidColor; cam.backgroundColor = bg; cam.targetTexture = rt; cam.Render();
|
||||
RenderTexture.active = rt;
|
||||
var t = new Texture2D(W, H, TextureFormat.RGBA32, false); t.ReadPixels(new Rect(0, 0, W, H), 0, 0); t.Apply();
|
||||
cam.targetTexture = null; RenderTexture.active = pA; cam.clearFlags = pC; cam.backgroundColor = pB;
|
||||
var s = new Shot { px = t.GetPixels32(), w = W, h = H };
|
||||
UnityEngine.Object.DestroyImmediate(t); rt.Release(); UnityEngine.Object.DestroyImmediate(rt);
|
||||
return s;
|
||||
}
|
||||
|
||||
static bool[] MaskOf(SkinnedMeshRenderer[] all, SkinnedMeshRenderer[] on, out int cnt, out RectInt bb)
|
||||
{
|
||||
foreach (var r in all) r.enabled = on.Contains(r);
|
||||
var b = Render(Color.black); var w = Render(Color.white);
|
||||
var m = new bool[W * H]; cnt = 0; int x0 = W, y0 = H, x1 = -1, y1 = -1;
|
||||
for (int i = 0; i < m.Length; i++)
|
||||
{
|
||||
int d = Mathf.Max(Mathf.Abs(b.px[i].r - w.px[i].r), Mathf.Max(Mathf.Abs(b.px[i].g - w.px[i].g), Mathf.Abs(b.px[i].b - w.px[i].b)));
|
||||
if (d < 128) { m[i] = true; cnt++; int x = i % W, y = i / W; if (x < x0) x0 = x; if (x > x1) x1 = x; if (y < y0) y0 = y; if (y > y1) y1 = y; }
|
||||
}
|
||||
foreach (var r in all) r.enabled = true;
|
||||
bb = (x1 < 0) ? new RectInt(0, 0, 0, 0) : new RectInt(x0, y0, x1 - x0 + 1, y1 - y0 + 1);
|
||||
return m;
|
||||
}
|
||||
|
||||
static float Lum(Color32 c) { return 0.299f * c.r + 0.587f * c.g + 0.114f * c.b; }
|
||||
static void Hsv(Color32 c, out float h, out float s, out float v)
|
||||
{
|
||||
float r = c.r, g = c.g, b = c.b; float mx = Mathf.Max(r, Mathf.Max(g, b)), mn = Mathf.Min(r, Mathf.Min(g, b)); float d = mx - mn;
|
||||
h = 0; if (d > 1e-6f) { if (mx == r) h = ((g - b) / d + 6f) % 6f; else if (mx == g) h = (b - r) / d + 2f; else h = (r - g) / d + 4f; }
|
||||
h *= 60f; s = mx > 1e-6f ? d / mx : 0f; v = mx;
|
||||
}
|
||||
static float CMeanHue(List<float> hs, List<float> ws)
|
||||
{
|
||||
double x = 0, y = 0;
|
||||
for (int i = 0; i < hs.Count; i++) { x += ws[i] * Math.Cos(hs[i] * Math.PI / 180.0); y += ws[i] * Math.Sin(hs[i] * Math.PI / 180.0); }
|
||||
return (float)(((Math.Atan2(y, x) * 180.0 / Math.PI) + 360.0) % 360.0);
|
||||
}
|
||||
|
||||
class Met { public int px, colors; public float ratio, lmin, lmax, hue, darkPx, eyeW, eyeH; }
|
||||
|
||||
static Met Measure(Shot s, bool[] mask, RectInt bb, float skinL)
|
||||
{
|
||||
var m = new Met(); var set = new HashSet<int>(); var hs = new List<float>(); var ws = new List<float>();
|
||||
m.lmin = 999; m.lmax = -1;
|
||||
int dx0 = W, dy0 = H, dx1 = -1, dy1 = -1; int half = bb.x + bb.width / 2;
|
||||
for (int i = 0; i < mask.Length; i++)
|
||||
{
|
||||
if (!mask[i]) continue;
|
||||
var c = s.px[i]; m.px++;
|
||||
set.Add((c.r << 16) | (c.g << 8) | c.b);
|
||||
float l = Lum(c); if (l < m.lmin) m.lmin = l; if (l > m.lmax) m.lmax = l;
|
||||
float h, sa, v; Hsv(c, out h, out sa, out v);
|
||||
if (sa > 0.08f) { hs.Add(h); ws.Add(sa); }
|
||||
if (skinL > 0 && l < skinL * 0.75f)
|
||||
{
|
||||
m.darkPx++;
|
||||
int x = i % W, y = i / W;
|
||||
if (x < half) { if (x < dx0) dx0 = x; if (x > dx1) dx1 = x; if (y < dy0) dy0 = y; if (y > dy1) dy1 = y; }
|
||||
}
|
||||
}
|
||||
m.colors = set.Count; m.ratio = m.px > 0 ? 100f * set.Count / m.px : 0;
|
||||
m.hue = hs.Count > 0 ? CMeanHue(hs, ws) : -1;
|
||||
m.eyeW = dx1 >= dx0 ? dx1 - dx0 + 1 : 0; m.eyeH = dy1 >= dy0 ? dy1 - dy0 + 1 : 0;
|
||||
return m;
|
||||
}
|
||||
|
||||
static Shot Crop(Shot s, RectInt r, int zoom)
|
||||
{
|
||||
var o = new Shot { w = r.width * zoom, h = r.height * zoom, px = new Color32[r.width * zoom * r.height * zoom] };
|
||||
for (int y = 0; y < o.h; y++)
|
||||
for (int x = 0; x < o.w; x++)
|
||||
{
|
||||
int sx = r.x + x / zoom, sy = r.y + y / zoom;
|
||||
o.px[y * o.w + x] = (sx >= 0 && sy >= 0 && sx < s.w && sy < s.h) ? s.px[sy * s.w + sx] : new Color32(24, 24, 28, 255);
|
||||
}
|
||||
return o;
|
||||
}
|
||||
static Shot HStack(List<Shot> a, int gap)
|
||||
{
|
||||
int h = a.Max(s => s.h), w = a.Sum(s => s.w) + gap * (a.Count - 1);
|
||||
var o = new Shot { w = w, h = h, px = new Color32[w * h] };
|
||||
for (int i = 0; i < o.px.Length; i++) o.px[i] = new Color32(24, 24, 28, 255);
|
||||
int xo = 0;
|
||||
foreach (var s in a) { for (int y = 0; y < s.h; y++) for (int x = 0; x < s.w; x++) o.px[y * w + xo + x] = s.px[y * s.w + x]; xo += s.w + gap; }
|
||||
return o;
|
||||
}
|
||||
static Shot VStack(List<Shot> a, int gap)
|
||||
{
|
||||
int w = a.Max(s => s.w), h = a.Sum(s => s.h) + gap * (a.Count - 1);
|
||||
var o = new Shot { w = w, h = h, px = new Color32[w * h] };
|
||||
for (int i = 0; i < o.px.Length; i++) o.px[i] = new Color32(24, 24, 28, 255);
|
||||
int yo = 0;
|
||||
for (int k = a.Count - 1; k >= 0; k--) { var s = a[k]; for (int y = 0; y < s.h; y++) for (int x = 0; x < s.w; x++) o.px[(yo + y) * w + x] = s.px[y * s.w + x]; yo += s.h + gap; }
|
||||
return o;
|
||||
}
|
||||
static void Save(Shot s, string file)
|
||||
{
|
||||
var t = new Texture2D(s.w, s.h, TextureFormat.RGBA32, false); t.SetPixels32(s.px); t.Apply();
|
||||
Directory.CreateDirectory(SHOT); File.WriteAllBytes(SHOT + file, t.EncodeToPNG());
|
||||
UnityEngine.Object.DestroyImmediate(t); L(" saved " + SHOT + file + " (" + s.w + "×" + s.h + ")");
|
||||
}
|
||||
|
||||
public static void Capture()
|
||||
{
|
||||
try { Body(); }
|
||||
catch (Exception e) { L("EXCEPTION " + e); }
|
||||
finally { Directory.CreateDirectory(Path.GetDirectoryName(OUT)); File.WriteAllText(OUT, sb.ToString(), new UTF8Encoding(true)); }
|
||||
}
|
||||
|
||||
static void Body()
|
||||
{
|
||||
EditorSceneManager.OpenScene(SCENE, OpenSceneMode.Single);
|
||||
GameObject root = null;
|
||||
foreach (var go in UnityEngine.SceneManagement.SceneManager.GetActiveScene().GetRootGameObjects())
|
||||
if (go.name.Contains("LH_M05")) { root = go; break; }
|
||||
var smrs = root.GetComponentsInChildren<SkinnedMeshRenderer>(true).Where(r => r.enabled).ToArray();
|
||||
var faceSMR = smrs.First(r => r.name == "Face");
|
||||
var hairSMR = smrs.First(r => r.name == "Hair05");
|
||||
var headSMR = smrs.First(r => r.name == "Head");
|
||||
var scam = Camera.main ?? UnityEngine.Object.FindObjectsByType<Camera>(FindObjectsInactive.Exclude, FindObjectsSortMode.None).First(c => c.orthographic);
|
||||
float camYaw = scam.transform.eulerAngles.y;
|
||||
root.transform.rotation = Quaternion.Euler(0, camYaw + 180f, 0);
|
||||
L(string.Format("포즈 = 카메라 정면 yaw {0:F0}° · ortho 10 · {1}×{2} (814u 동일)", camYaw + 180f, W, H));
|
||||
|
||||
var all = root.GetComponentsInChildren<Transform>(true);
|
||||
var origLayer = new Dictionary<Transform, int>(); foreach (var t in all) { origLayer[t] = t.gameObject.layer; t.gameObject.layer = LAYER; }
|
||||
var b = new Bounds(root.transform.position, Vector3.zero); foreach (var r in smrs) b.Encapsulate(r.bounds);
|
||||
var go2 = new GameObject("WL814v_Cap");
|
||||
cam = go2.AddComponent<Camera>(); cam.CopyFrom(scam);
|
||||
cam.orthographic = true; cam.orthographicSize = 10f; cam.aspect = (float)W / H; cam.targetTexture = null; cam.cullingMask = 1 << LAYER;
|
||||
cam.transform.SetPositionAndRotation(b.center - scam.transform.forward * 50f, scam.transform.rotation);
|
||||
var ucd = cam.GetUniversalAdditionalCameraData(); if (ucd != null) { ucd.renderPostProcessing = false; ucd.SetRenderer(0); }
|
||||
for (int i = 0; i < 3; i++) Render(Color.black); // 배치 워밍업
|
||||
|
||||
var faceOrig = faceSMR.sharedMaterial; var hairOrig = hairSMR.sharedMaterial;
|
||||
try
|
||||
{
|
||||
int cF, cH, cHead, cAll; RectInt bbF, bbH, bbHead, bbAll;
|
||||
var mFace = MaskOf(smrs, new[] { faceSMR }, out cF, out bbF);
|
||||
var mHair = MaskOf(smrs, new[] { hairSMR }, out cH, out bbH);
|
||||
var mHead = MaskOf(smrs, new[] { headSMR }, out cHead, out bbHead);
|
||||
var mAll = MaskOf(smrs, smrs, out cAll, out bbAll);
|
||||
L(string.Format("마스크: 얼굴데칼 {0} px {1} · 머리칼 {2} px · 머리(피부) {3} px · 전체 {4} px {5}", cF, bbF, cH, cHead, cAll, bbAll));
|
||||
|
||||
var baseShot = Render(new Color(0.10f, 0.10f, 0.12f));
|
||||
// 피부 밝기 기준 = Head 마스크의 평균 L
|
||||
float skinL = 0; int nh = 0;
|
||||
for (int i = 0; i < mHead.Length; i++) if (mHead[i] && !mFace[i]) { skinL += Lum(baseShot.px[i]); nh++; }
|
||||
skinL = nh > 0 ? skinL / nh : 128f;
|
||||
L(string.Format("피부(Head) 평균 밝기 L = {0:F0} → 「진하게 읽히는 점」 문턱 = L < {1:F0}", skinL, skinL * 0.75f));
|
||||
|
||||
var m0f = Measure(baseShot, mFace, bbF, skinL);
|
||||
var m0h = Measure(baseShot, mHair, bbH, 0);
|
||||
L("");
|
||||
L("== 얼굴 안별 화면 실측 (얼굴 데칼 " + cF + " px) ==");
|
||||
L(string.Format(" {0,-8} 고유색 {1,4} · 서로다른색 {2,5:F0} % · 밝기 {3,3:F0}~{4,3:F0}(폭 {5,3:F0}) · Hue {6,5:F1}° · ΔHue {7,6} · 진한점 {8,3:F0} px · 눈1개 진한부분 {9}×{10} px",
|
||||
"원본", m0f.colors, m0f.ratio, m0f.lmin, m0f.lmax, m0f.lmax - m0f.lmin, m0f.hue, "-", m0f.darkPx, m0f.eyeW, m0f.eyeH));
|
||||
var faceShots = new List<Shot>(); faceShots.Add(baseShot);
|
||||
foreach (var v in VS)
|
||||
{
|
||||
var tx = AssetDatabase.LoadAssetAtPath<Texture2D>(TEX + "face02_" + v + ".png");
|
||||
if (tx == null) { L(" !! 없음 face02_" + v); continue; }
|
||||
var fm = new Material(faceOrig) { name = "TMP_face_" + v };
|
||||
if (fm.HasProperty("_MainTex")) fm.SetTexture("_MainTex", tx);
|
||||
if (fm.HasProperty("_BaseMap")) fm.SetTexture("_BaseMap", tx);
|
||||
if (fm.HasProperty("_ShadowBaseMap")) fm.SetTexture("_ShadowBaseMap", tx);
|
||||
faceSMR.sharedMaterial = fm;
|
||||
var s = Render(new Color(0.10f, 0.10f, 0.12f)); faceShots.Add(s);
|
||||
var m = Measure(s, mFace, bbF, skinL);
|
||||
L(string.Format(" {0,-8} 고유색 {1,4} · 서로다른색 {2,5:F0} % · 밝기 {3,3:F0}~{4,3:F0}(폭 {5,3:F0}) · Hue {6,5:F1}° · ΔHue {7,6:+0.0;-0.0} · 진한점 {8,3:F0} px · 눈1개 진한부분 {9}×{10} px",
|
||||
"face " + v, m.colors, m.ratio, m.lmin, m.lmax, m.lmax - m.lmin, m.hue, Mathf.DeltaAngle(m0f.hue, m.hue), m.darkPx, m.eyeW, m.eyeH));
|
||||
faceSMR.sharedMaterial = faceOrig;
|
||||
}
|
||||
|
||||
L("");
|
||||
L("== 머리칼 안별 화면 실측 (머리칼 " + cH + " px) ==");
|
||||
L(string.Format(" {0,-8} 고유색 {1,4} · 서로다른색 {2,5:F0} % · 밝기 {3,3:F0}~{4,3:F0}(폭 {5,3:F0}) · Hue {6,5:F1}° · ΔHue {7,6}",
|
||||
"원본", m0h.colors, m0h.ratio, m0h.lmin, m0h.lmax, m0h.lmax - m0h.lmin, m0h.hue, "-"));
|
||||
var hairShots = new List<Shot>(); hairShots.Add(baseShot);
|
||||
foreach (var v in VS)
|
||||
{
|
||||
var tx = AssetDatabase.LoadAssetAtPath<Texture2D>(TEX + "Hair05_" + v + ".png");
|
||||
if (tx == null) { L(" !! 없음 Hair05_" + v); continue; }
|
||||
var hm = new Material(hairOrig) { name = "TMP_hair_" + v };
|
||||
if (hm.HasProperty("_MainTex")) hm.SetTexture("_MainTex", tx);
|
||||
if (hm.HasProperty("_BaseMap")) hm.SetTexture("_BaseMap", tx);
|
||||
if (hm.HasProperty("_ShadowBaseMap")) hm.SetTexture("_ShadowBaseMap", tx);
|
||||
hairSMR.sharedMaterial = hm;
|
||||
var s = Render(new Color(0.10f, 0.10f, 0.12f)); hairShots.Add(s);
|
||||
var m = Measure(s, mHair, bbH, 0);
|
||||
L(string.Format(" {0,-8} 고유색 {1,4} · 서로다른색 {2,5:F0} % · 밝기 {3,3:F0}~{4,3:F0}(폭 {5,3:F0}) · Hue {6,5:F1}° · ΔHue {7,6:+0.0;-0.0}",
|
||||
"hair " + v, m.colors, m.ratio, m.lmin, m.lmax, m.lmax - m.lmin, m.hue, Mathf.DeltaAngle(m0h.hue, m.hue)));
|
||||
hairSMR.sharedMaterial = hairOrig;
|
||||
}
|
||||
|
||||
// ── 캡처 ──
|
||||
var headCrop = new RectInt(bbAll.x - 4, bbAll.y + bbAll.height - 58, bbAll.width + 8, 58);
|
||||
L("");
|
||||
Save(VStack(new List<Shot> {
|
||||
HStack(faceShots.Select(s => Crop(s, headCrop, 1)).ToList(), 4),
|
||||
HStack(faceShots.Select(s => Crop(s, headCrop, 12)).ToList(), 12) }, 16), "v_face_grid.png");
|
||||
Save(VStack(new List<Shot> {
|
||||
HStack(hairShots.Select(s => Crop(s, headCrop, 1)).ToList(), 4),
|
||||
HStack(hairShots.Select(s => Crop(s, headCrop, 4)).ToList(), 8) }, 16), "v_hair_grid.png");
|
||||
|
||||
// 최적 조합 = BEST_FACE / BEST_HAIR (인자로 바꿀 수 있게 상수)
|
||||
{
|
||||
var ftx = AssetDatabase.LoadAssetAtPath<Texture2D>(TEX + "face02_" + BEST_FACE + ".png");
|
||||
var htx = AssetDatabase.LoadAssetAtPath<Texture2D>(TEX + "Hair05_" + BEST_HAIR + ".png");
|
||||
var fm = new Material(faceOrig) { name = "TMP_bestF" }; var hm = new Material(hairOrig) { name = "TMP_bestH" };
|
||||
foreach (var pn in new[] { "_MainTex", "_BaseMap", "_ShadowBaseMap" }) { if (fm.HasProperty(pn)) fm.SetTexture(pn, ftx); if (hm.HasProperty(pn)) hm.SetTexture(pn, htx); }
|
||||
faceSMR.sharedMaterial = fm; hairSMR.sharedMaterial = hm;
|
||||
var best = Render(new Color(0.10f, 0.10f, 0.12f));
|
||||
var full = new RectInt(bbAll.x - 6, bbAll.y - 6, bbAll.width + 12, bbAll.height + 12);
|
||||
Save(VStack(new List<Shot> {
|
||||
HStack(new List<Shot>{ Crop(baseShot, full, 1), Crop(best, full, 1) }, 6),
|
||||
HStack(new List<Shot>{ Crop(baseShot, full, 6), Crop(best, full, 6) }, 12) }, 16), "v_best_full.png");
|
||||
var mf = Measure(best, mFace, bbF, skinL); var mh = Measure(best, mHair, bbH, 0); var ma = Measure(best, mAll, bbAll, 0);
|
||||
var ma0 = Measure(baseShot, mAll, bbAll, 0);
|
||||
L("");
|
||||
L(string.Format("== 추천 조합 얼굴 {0} + 머리 {1} ==", BEST_FACE, BEST_HAIR));
|
||||
L(string.Format(" 캐릭터 전체: 고유색 {0} → {1} · 서로다른색 {2:F0} % → {3:F0} %", ma0.colors, ma.colors, ma0.ratio, ma.ratio));
|
||||
L(string.Format(" 얼굴 진한점 {0:F0} → {1:F0} px · 눈1개 {2}×{3} px · 대비폭 {4:F0} → {5:F0}", m0f.darkPx, mf.darkPx, mf.eyeW, mf.eyeH, m0f.lmax - m0f.lmin, mf.lmax - mf.lmin));
|
||||
L(string.Format(" 머리칼 고유색 {0} → {1} · ΔHue {2:+0.0;-0.0}°", m0h.colors, mh.colors, Mathf.DeltaAngle(m0h.hue, mh.hue)));
|
||||
faceSMR.sharedMaterial = faceOrig; hairSMR.sharedMaterial = hairOrig;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
faceSMR.sharedMaterial = faceOrig; hairSMR.sharedMaterial = hairOrig;
|
||||
foreach (var kv in origLayer) if (kv.Key != null) kv.Key.gameObject.layer = kv.Value;
|
||||
UnityEngine.Object.DestroyImmediate(go2);
|
||||
}
|
||||
}
|
||||
|
||||
public static string BEST_FACE = "V1", BEST_HAIR = "V1";
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
포즈 = 카메라 정면 yaw 240° · 카메라 ortho 10 · 1080×1920 (814u 동일)
|
||||
전체 실루엣: 키 100 px · 폭 51 px · 면적 2996 px
|
||||
|
||||
== 부위별 「텍셀 → 화면 픽셀」 밀도 (앞면 삼각형만 · 화면면적 가중) ==
|
||||
(UV 면적은 실효 텍스처 512² 기준 · 괄호는 원본 2048² 기준)
|
||||
Arm_m05 : 그려진 화면 335 px · 앞면삼각 372개 · 앞면 화면면적 339 px² · UV면적 18171 텍셀²
|
||||
→ 화면 1 px = 54 텍셀(512²) = 857 텍셀(2048²) · 🔴 격자 1변 = 7.3 텍셀(512²) = 29.3 텍셀(2048²) · 투영검증 오차 3 px [TRS(무스케일)]
|
||||
↳ 이방성: u 1텍셀(512²) = 0.179 화면 px · v 1텍셀 = 0.190 px → 화면 1 px = u 5.6 × v 5.3 텍셀(512²) = u 22 × v 21 텍셀(2048²)
|
||||
Body_m05 : 그려진 화면 975 px · 앞면삼각 474개 · 앞면 화면면적 894 px² · UV면적 43365 텍셀²
|
||||
→ 화면 1 px = 49 텍셀(512²) = 776 텍셀(2048²) · 🔴 격자 1변 = 7.0 텍셀(512²) = 27.9 텍셀(2048²) · 투영검증 오차 2 px [TRS(무스케일)]
|
||||
↳ 이방성: u 1텍셀(512²) = 0.193 화면 px · v 1텍셀 = 0.194 px → 화면 1 px = u 5.2 × v 5.2 텍셀(512²) = u 21 × v 21 텍셀(2048²)
|
||||
Face : 그려진 화면 50 px · 앞면삼각 28개 · 앞면 화면면적 20 px² · UV면적 13530 텍셀²
|
||||
→ 화면 1 px = 672 텍셀(512²) = 10748 텍셀(2048²) · 🔴 격자 1변 = 25.9 텍셀(512²) = 103.7 텍셀(2048²) · 투영검증 오차 26 px [TRS(무스케일)]
|
||||
↳ 이방성: u 1텍셀(512²) = 0.097 화면 px · v 1텍셀 = 0.083 px → 화면 1 px = u 10.3 × v 12.0 텍셀(512²) = u 41 × v 48 텍셀(2048²)
|
||||
Hair05 : 그려진 화면 1154 px · 앞면삼각 380개 · 앞면 화면면적 1678 px² · UV면적 63381 텍셀²
|
||||
→ 화면 1 px = 38 텍셀(512²) = 604 텍셀(2048²) · 🔴 격자 1변 = 6.1 텍셀(512²) = 24.6 텍셀(2048²) · 투영검증 오차 2 px [localToWorld]
|
||||
↳ 이방성: u 1텍셀(512²) = 0.210 화면 px · v 1텍셀 = 0.230 px → 화면 1 px = u 4.8 × v 4.4 텍셀(512²) = u 19 × v 17 텍셀(2048²)
|
||||
Head : 그려진 화면 1047 px · 앞면삼각 308개 · 앞면 화면면적 1053 px² · UV면적 17046 텍셀²
|
||||
→ 화면 1 px = 16 텍셀(512²) = 259 텍셀(2048²) · 🔴 격자 1변 = 4.0 텍셀(512²) = 16.1 텍셀(2048²) · 투영검증 오차 3 px [localToWorld]
|
||||
↳ 이방성: u 1텍셀(512²) = 0.315 화면 px · v 1텍셀 = 0.286 px → 화면 1 px = u 3.2 × v 3.5 텍셀(512²) = u 13 × v 14 텍셀(2048²)
|
||||
Leg_M05 : 그려진 화면 729 px · 앞면삼각 400개 · 앞면 화면면적 703 px² · UV면적 37605 텍셀²
|
||||
→ 화면 1 px = 53 텍셀(512²) = 856 텍셀(2048²) · 🔴 격자 1변 = 7.3 텍셀(512²) = 29.3 텍셀(2048²) · 투영검증 오차 2 px [TRS(무스케일)]
|
||||
↳ 이방성: u 1텍셀(512²) = 0.179 화면 px · v 1텍셀 = 0.175 px → 화면 1 px = u 5.6 × v 5.7 텍셀(512²) = u 22 × v 23 텍셀(2048²)
|
||||
|
|
@ -0,0 +1,177 @@
|
|||
// WL814v_Probe.cs — §1-1 부위별 「텍셀 → 화면 픽셀」 밀도 실측 (에디터 전용)
|
||||
// 🔴 씬 저장 0 · 에셋 수정 0 · ProjectSettings 0. 카메라·포즈는 814u 와 동일(ortho 10 · 1080×1920 · 캐릭터를 카메라 정면으로).
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
|
||||
public static class WL814v_Probe
|
||||
{
|
||||
const string SCENE = "Assets/WL/Look/Arena/Scenes/WL_ArenaProto.unity";
|
||||
const string OUT = "AgentScripts/WL814v_PROBE.txt";
|
||||
const int LAYER = 31;
|
||||
const int W = 1080, H = 1920;
|
||||
static readonly StringBuilder sb = new StringBuilder();
|
||||
static void L(string s) { sb.AppendLine(s); Console.WriteLine("[814vP] " + s); }
|
||||
|
||||
class Shot { public Color32[] px; public int w, h; }
|
||||
|
||||
static Shot Render(Camera cam, Color bg)
|
||||
{
|
||||
var rt = new RenderTexture(W, H, 24, RenderTextureFormat.ARGB32, RenderTextureReadWrite.sRGB);
|
||||
rt.antiAliasing = 1; rt.filterMode = FilterMode.Point;
|
||||
var pA = RenderTexture.active; var pC = cam.clearFlags; var pB = cam.backgroundColor;
|
||||
cam.clearFlags = CameraClearFlags.SolidColor; cam.backgroundColor = bg; cam.targetTexture = rt; cam.Render();
|
||||
RenderTexture.active = rt;
|
||||
var t = new Texture2D(W, H, TextureFormat.RGBA32, false); t.ReadPixels(new Rect(0, 0, W, H), 0, 0); t.Apply();
|
||||
cam.targetTexture = null; RenderTexture.active = pA; cam.clearFlags = pC; cam.backgroundColor = pB;
|
||||
var s = new Shot { px = t.GetPixels32(), w = W, h = H };
|
||||
UnityEngine.Object.DestroyImmediate(t); rt.Release(); UnityEngine.Object.DestroyImmediate(rt);
|
||||
return s;
|
||||
}
|
||||
|
||||
// 검정/흰 배경 2장 차분 = 실루엣 마스크 (반투명·안티앨리어싱 무시)
|
||||
static bool[] Mask(Camera cam, out int x0, out int y0, out int x1, out int y1, out int cnt)
|
||||
{
|
||||
var b = Render(cam, Color.black); var wt = Render(cam, Color.white);
|
||||
var m = new bool[W * H]; x0 = W; y0 = H; x1 = -1; y1 = -1; cnt = 0;
|
||||
for (int i = 0; i < m.Length; i++)
|
||||
{
|
||||
int d = Mathf.Max(Mathf.Abs(b.px[i].r - wt.px[i].r), Mathf.Max(Mathf.Abs(b.px[i].g - wt.px[i].g), Mathf.Abs(b.px[i].b - wt.px[i].b)));
|
||||
if (d < 128) { m[i] = true; cnt++; int x = i % W, y = i / W; if (x < x0) x0 = x; if (x > x1) x1 = x; if (y < y0) y0 = y; if (y > y1) y1 = y; }
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
public static void Run()
|
||||
{
|
||||
try { Body(); }
|
||||
catch (Exception e) { L("EXCEPTION " + e); }
|
||||
finally { Directory.CreateDirectory(Path.GetDirectoryName(OUT)); File.WriteAllText(OUT, sb.ToString(), new UTF8Encoding(true)); }
|
||||
}
|
||||
|
||||
static void Body()
|
||||
{
|
||||
EditorSceneManager.OpenScene(SCENE, OpenSceneMode.Single);
|
||||
GameObject root = null;
|
||||
foreach (var go in UnityEngine.SceneManagement.SceneManager.GetActiveScene().GetRootGameObjects())
|
||||
if (go.name.Contains("LH_M05")) { root = go; break; }
|
||||
if (root == null) { L("!! root 없음"); return; }
|
||||
var smrs = root.GetComponentsInChildren<SkinnedMeshRenderer>(true).Where(r => r.enabled && r.gameObject.activeInHierarchy).ToArray();
|
||||
var scam = Camera.main ?? UnityEngine.Object.FindObjectsByType<Camera>(FindObjectsInactive.Exclude, FindObjectsSortMode.None).First(c => c.orthographic);
|
||||
|
||||
float camYaw = scam.transform.eulerAngles.y;
|
||||
root.transform.rotation = Quaternion.Euler(0, camYaw + 180f, 0); // 814u 캡처와 동일 포즈
|
||||
L(string.Format("포즈 = 카메라 정면 yaw {0:F0}° · 카메라 ortho 10 · {1}×{2} (814u 동일)", camYaw + 180f, W, H));
|
||||
|
||||
var all = root.GetComponentsInChildren<Transform>(true);
|
||||
var origLayer = new Dictionary<Transform, int>();
|
||||
foreach (var t in all) { origLayer[t] = t.gameObject.layer; t.gameObject.layer = LAYER; }
|
||||
|
||||
var b = new Bounds(root.transform.position, Vector3.zero); foreach (var r in smrs) b.Encapsulate(r.bounds);
|
||||
var go2 = new GameObject("WL814v_Cam");
|
||||
var cam = go2.AddComponent<Camera>(); cam.CopyFrom(scam);
|
||||
cam.orthographic = true; cam.orthographicSize = 10f; cam.aspect = (float)W / H; cam.targetTexture = null;
|
||||
cam.cullingMask = 1 << LAYER;
|
||||
cam.transform.SetPositionAndRotation(b.center - scam.transform.forward * 50f, scam.transform.rotation);
|
||||
var ucd = cam.GetUniversalAdditionalCameraData(); if (ucd != null) { ucd.renderPostProcessing = false; ucd.SetRenderer(0); }
|
||||
for (int i = 0; i < 3; i++) Render(cam, Color.black); // 배치 워밍업
|
||||
|
||||
try
|
||||
{
|
||||
int x0, y0, x1, y1, cntAll;
|
||||
foreach (var r in smrs) r.enabled = true;
|
||||
Mask(cam, out x0, out y0, out x1, out y1, out cntAll);
|
||||
L(string.Format("전체 실루엣: 키 {0} px · 폭 {1} px · 면적 {2} px", y1 - y0 + 1, x1 - x0 + 1, cntAll));
|
||||
L("");
|
||||
L("== 부위별 「텍셀 → 화면 픽셀」 밀도 (앞면 삼각형만 · 화면면적 가중) ==");
|
||||
L(" (UV 면적은 실효 텍스처 512² 기준 · 괄호는 원본 2048² 기준)");
|
||||
|
||||
foreach (var target in smrs)
|
||||
{
|
||||
// 이 렌더러만 켜서 실제로 그려지는 화면 픽셀 수(가림 반영)
|
||||
foreach (var r in smrs) r.enabled = (r == target);
|
||||
int a0, b0, a1, b1, cnt;
|
||||
Mask(cam, out a0, out b0, out a1, out b1, out cnt);
|
||||
|
||||
var mesh = new Mesh();
|
||||
target.BakeMesh(mesh, true); // useScale = true → 스케일 포함
|
||||
var verts = mesh.vertices; var uvs = mesh.uv; var tris = mesh.triangles;
|
||||
var mNoScale = Matrix4x4.TRS(target.transform.position, target.transform.rotation, Vector3.one);
|
||||
var mFull = target.transform.localToWorldMatrix;
|
||||
|
||||
// 🔴 cam.WorldToScreenPoint 는 GameView 크기를 쓴다(배치 = 엉뚱한 값) → VP 행렬로 직접 1080×1920 으로 투영
|
||||
var VP = cam.projectionMatrix * cam.worldToCameraMatrix;
|
||||
System.Func<Vector3, Vector3> Proj = (wp) =>
|
||||
{
|
||||
var c = VP * new Vector4(wp.x, wp.y, wp.z, 1f);
|
||||
if (Mathf.Abs(c.w) > 1e-9f) { c.x /= c.w; c.y /= c.w; c.z /= c.w; }
|
||||
return new Vector3((c.x * 0.5f + 0.5f) * W, (c.y * 0.5f + 0.5f) * H, c.z);
|
||||
};
|
||||
|
||||
double bestScore = double.MaxValue; string bestTag = "?"; double dens = 0, sArea = 0, uArea = 0; int nFront = 0;
|
||||
foreach (var mode in new[] { 0, 1 })
|
||||
{
|
||||
var M = (mode == 0) ? mNoScale : mFull;
|
||||
double sA = 0, uA = 0; int nf = 0, nb = 0; double sAb = 0, uAb = 0;
|
||||
float px0 = 1e9f, py0 = 1e9f, px1 = -1e9f, py1 = -1e9f;
|
||||
for (int i = 0; i < tris.Length; i += 3)
|
||||
{
|
||||
Vector3 p0 = Proj(M.MultiplyPoint3x4(verts[tris[i]]));
|
||||
Vector3 p1 = Proj(M.MultiplyPoint3x4(verts[tris[i + 1]]));
|
||||
Vector3 p2 = Proj(M.MultiplyPoint3x4(verts[tris[i + 2]]));
|
||||
float cross = (p1.x - p0.x) * (p2.y - p0.y) - (p2.x - p0.x) * (p1.y - p0.y);
|
||||
px0 = Mathf.Min(px0, Mathf.Min(p0.x, Mathf.Min(p1.x, p2.x))); px1 = Mathf.Max(px1, Mathf.Max(p0.x, Mathf.Max(p1.x, p2.x)));
|
||||
py0 = Mathf.Min(py0, Mathf.Min(p0.y, Mathf.Min(p1.y, p2.y))); py1 = Mathf.Max(py1, Mathf.Max(p0.y, Mathf.Max(p1.y, p2.y)));
|
||||
Vector2 q0 = uvs[tris[i]], q1 = uvs[tris[i + 1]], q2 = uvs[tris[i + 2]];
|
||||
float ucross = Mathf.Abs((q1.x - q0.x) * (q2.y - q0.y) - (q2.x - q0.x) * (q1.y - q0.y));
|
||||
if (cross > 0f) { sA += cross * 0.5; uA += ucross * 0.5 * 512.0 * 512.0; nf++; }
|
||||
else { sAb += -cross * 0.5; uAb += ucross * 0.5 * 512.0 * 512.0; nb++; }
|
||||
}
|
||||
// 앞면 winding 자동 판별: 그려진 화면 px 수에 더 가까운 쪽
|
||||
if (Math.Abs(sAb - cnt) < Math.Abs(sA - cnt)) { sA = sAb; uA = uAb; nf = nb; }
|
||||
// 검증: 투영 bbox 가 실제 렌더 bbox 와 얼마나 맞나
|
||||
double score = Math.Abs(px0 - a0) + Math.Abs(px1 - a1) + Math.Abs(py0 - b0) + Math.Abs(py1 - b1);
|
||||
if (score < bestScore) { bestScore = score; bestTag = (mode == 0 ? "TRS(무스케일)" : "localToWorld"); sArea = sA; uArea = uA; nFront = nf; dens = (sA > 0 ? uA / sA : 0); }
|
||||
}
|
||||
UnityEngine.Object.DestroyImmediate(mesh);
|
||||
L(string.Format(" {0,-9}: 그려진 화면 {1,5} px · 앞면삼각 {2,4}개 · 앞면 화면면적 {3,7:F0} px² · UV면적 {4,9:F0} 텍셀²",
|
||||
target.name, cnt, nFront, sArea, uArea));
|
||||
L(string.Format(" → 화면 1 px = {0:F0} 텍셀(512²) = {1:F0} 텍셀(2048²) · 🔴 격자 1변 = {2:F1} 텍셀(512²) = {3:F1} 텍셀(2048²) · 투영검증 오차 {4:F0} px [{5}]",
|
||||
dens, dens * 16.0, Math.Sqrt(dens), Math.Sqrt(dens) * 4.0, bestScore, bestTag));
|
||||
|
||||
// ── U/V 축별 이방성 (면적 가중) ──
|
||||
{
|
||||
var VP2 = cam.projectionMatrix * cam.worldToCameraMatrix;
|
||||
var M2 = (bestTag == "TRS(무스케일)") ? mNoScale : mFull;
|
||||
System.Func<Vector3, Vector2> P2 = (wp) => { var c = VP2 * new Vector4(wp.x, wp.y, wp.z, 1f); if (Mathf.Abs(c.w) > 1e-9f) { c.x /= c.w; c.y /= c.w; } return new Vector2((c.x * 0.5f + 0.5f) * W, (c.y * 0.5f + 0.5f) * H); };
|
||||
double wu = 0, wv = 0, wsum = 0;
|
||||
for (int i = 0; i < tris.Length; i += 3)
|
||||
{
|
||||
Vector2 p0 = P2(M2.MultiplyPoint3x4(verts[tris[i]])), p1 = P2(M2.MultiplyPoint3x4(verts[tris[i + 1]])), p2 = P2(M2.MultiplyPoint3x4(verts[tris[i + 2]]));
|
||||
Vector2 q0 = uvs[tris[i]], q1 = uvs[tris[i + 1]], q2 = uvs[tris[i + 2]];
|
||||
Vector2 e1 = q1 - q0, e2 = q2 - q0; Vector2 f1 = p1 - p0, f2 = p2 - p0;
|
||||
float det = e1.x * e2.y - e2.x * e1.y; if (Mathf.Abs(det) < 1e-12f) continue;
|
||||
Vector2 dPdu = (f1 * e2.y - f2 * e1.y) / det, dPdv = (f2 * e1.x - f1 * e2.x) / det;
|
||||
double ar = Math.Abs(f1.x * f2.y - f2.x * f1.y) * 0.5;
|
||||
wu += ar * dPdu.magnitude / 512.0; wv += ar * dPdv.magnitude / 512.0; wsum += ar;
|
||||
}
|
||||
if (wsum > 0)
|
||||
L(string.Format(" ↳ 이방성: u 1텍셀(512²) = {0:F3} 화면 px · v 1텍셀 = {1:F3} px → 화면 1 px = u {2:F1} × v {3:F1} 텍셀(512²) = u {4:F0} × v {5:F0} 텍셀(2048²)",
|
||||
wu / wsum, wv / wsum, wsum / wu, wsum / wv, 4.0 * wsum / wu, 4.0 * wsum / wv));
|
||||
}
|
||||
}
|
||||
foreach (var r in smrs) r.enabled = true;
|
||||
}
|
||||
finally
|
||||
{
|
||||
foreach (var kv in origLayer) if (kv.Key != null) kv.Key.gameObject.layer = kv.Value;
|
||||
UnityEngine.Object.DestroyImmediate(go2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 25 KiB |
|
|
@ -0,0 +1,181 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8b84cf412edabc844853ed7836338da9
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 8374489691656223259
|
||||
second: Hair05_V1_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 1
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 512
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Hair05_V1_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 2048
|
||||
height: 2048
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: b1af65e210a283470800000000000000
|
||||
internalID: 8374489691656223259
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 30 KiB |
|
|
@ -0,0 +1,181 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 24329acf4a726d240b0d7b2afc6bb412
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 8476209593673834849
|
||||
second: Hair05_V2_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 1
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 512
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Hair05_V2_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 2048
|
||||
height: 2048
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 161efa077bb81a570800000000000000
|
||||
internalID: 8476209593673834849
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 22 KiB |
|
|
@ -0,0 +1,181 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5af6b51f5b270764f9dd2412bd511f45
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 3018556313912835306
|
||||
second: Hair05_V3_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 1
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 512
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Hair05_V3_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 2048
|
||||
height: 2048
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: aec794979f014e920800000000000000
|
||||
internalID: 3018556313912835306
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 23 KiB |
|
|
@ -0,0 +1,181 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 348e1899929201447825cf8c3e3e2b97
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 2029141942209985260
|
||||
second: Hair05_V4_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 1
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 512
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Hair05_V4_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 2048
|
||||
height: 2048
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: ceab54878d5f82c10800000000000000
|
||||
internalID: 2029141942209985260
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 17 KiB |
|
|
@ -0,0 +1,181 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 38fe6159a126f194c8b79ae5cc892b85
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 5320282600810261513
|
||||
second: face02_V1_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 1
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 512
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: face02_V1_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 2048
|
||||
height: 2048
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 90cacfd56d075d940800000000000000
|
||||
internalID: 5320282600810261513
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
|
@ -0,0 +1,181 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a0079a53ad52fd14692edd0f9aeff0df
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 1884068705787105596
|
||||
second: face02_V2_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 1
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 512
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: face02_V2_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 2048
|
||||
height: 2048
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: c31ded4718e852a10800000000000000
|
||||
internalID: 1884068705787105596
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 17 KiB |
|
|
@ -0,0 +1,181 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4918f11a580835f428779005b08ac550
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 3534896832738962428
|
||||
second: face02_V3_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 1
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 512
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: face02_V3_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 2048
|
||||
height: 2048
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: cfb2f01d0f97e0130800000000000000
|
||||
internalID: 3534896832738962428
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 17 KiB |
|
|
@ -0,0 +1,181 @@
|
|||
fileFormatVersion: 2
|
||||
guid: fe42dc99779996a4ab4e7150123ba646
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: -809660786628649809
|
||||
second: face02_V4_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 1
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 512
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: face02_V4_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 2048
|
||||
height: 2048
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: fac9f68edc183c4f0800000000000000
|
||||
internalID: -809660786628649809
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||