From d043c0b9734bb63f7663ca4736e34004bb5fd716 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Thu, 25 Aug 2016 19:18:48 +0700 Subject: [PATCH] baked materials wip --- .../FlashTools/Examples/Scenes/Scene00.unity | 2 +- Assets/FlashTools/Resources/Materials.meta | 9 + .../Resources/Materials/SwfDecrMaskMat.mat | 138 ++++++++++++++ .../Materials/SwfDecrMaskMat.mat.meta | 8 + .../Resources/Materials/SwfIncrMaskMat.mat | 138 ++++++++++++++ .../Materials/SwfIncrMaskMat.mat.meta | 8 + .../Resources/Materials/SwfMaskedMat_0.mat | 142 ++++++++++++++ .../Materials/SwfMaskedMat_0.mat.meta | 8 + .../Resources/Materials/SwfMaskedMat_1.mat | 142 ++++++++++++++ .../Materials/SwfMaskedMat_1.mat.meta | 8 + .../Resources/Materials/SwfMaskedMat_2.mat | 142 ++++++++++++++ .../Materials/SwfMaskedMat_2.mat.meta | 8 + .../Resources/Materials/SwfMaskedMat_3.mat | 142 ++++++++++++++ .../Materials/SwfMaskedMat_3.mat.meta | 8 + .../Resources/Materials/SwfMaskedMat_4.mat | 142 ++++++++++++++ .../Materials/SwfMaskedMat_4.mat.meta | 8 + .../Resources/Materials/SwfMaskedMat_5.mat | 142 ++++++++++++++ .../Materials/SwfMaskedMat_5.mat.meta | 8 + .../Resources/Materials/SwfMaskedMat_6.mat | 142 ++++++++++++++ .../Materials/SwfMaskedMat_6.mat.meta | 8 + .../Resources/Materials/SwfMaskedMat_7.mat | 142 ++++++++++++++ .../Materials/SwfMaskedMat_7.mat.meta | 8 + .../Resources/Materials/SwfMaskedMat_8.mat | 142 ++++++++++++++ .../Materials/SwfMaskedMat_8.mat.meta | 8 + .../Resources/Materials/SwfMaskedMat_9.mat | 142 ++++++++++++++ .../Materials/SwfMaskedMat_9.mat.meta | 8 + .../Resources/Materials/SwfSimpleMat.mat | 138 ++++++++++++++ .../Resources/Materials/SwfSimpleMat.mat.meta | 8 + .../Resources/Shaders/SwfMasked.shader | 4 +- .../Editor/SwfAnimationAssetEditor.cs | 6 +- .../Editor/SwfAnimationAssetPostprocessor.cs | 154 +++++++++++++++ .../Internal/Editor/SwfPropertyDrawers.cs | 17 -- .../Scripts/Internal/SwfPropertyAttributes.cs | 3 - Assets/FlashTools/Scripts/SwfAnimation.cs | 180 ++---------------- .../FlashTools/Scripts/SwfAnimationAsset.cs | 15 +- Assets/FlashTools/Scripts/SwfManager.cs | 101 +++++++--- 36 files changed, 2210 insertions(+), 219 deletions(-) create mode 100644 Assets/FlashTools/Resources/Materials.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfDecrMaskMat.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfDecrMaskMat.mat.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfIncrMaskMat.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfIncrMaskMat.mat.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_0.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_0.mat.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_1.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_1.mat.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_2.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_2.mat.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_3.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_3.mat.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_4.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_4.mat.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_5.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_5.mat.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_6.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_6.mat.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_7.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_7.mat.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_8.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_8.mat.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_9.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfMaskedMat_9.mat.meta create mode 100644 Assets/FlashTools/Resources/Materials/SwfSimpleMat.mat create mode 100644 Assets/FlashTools/Resources/Materials/SwfSimpleMat.mat.meta diff --git a/Assets/FlashTools/Examples/Scenes/Scene00.unity b/Assets/FlashTools/Examples/Scenes/Scene00.unity index c85cbbe..3619cf5 100644 --- a/Assets/FlashTools/Examples/Scenes/Scene00.unity +++ b/Assets/FlashTools/Examples/Scenes/Scene00.unity @@ -145,7 +145,7 @@ Camera: far clip plane: 1000 field of view: 60 orthographic: 1 - orthographic size: 30 + orthographic size: 3 m_Depth: 0 m_CullingMask: serializedVersion: 2 diff --git a/Assets/FlashTools/Resources/Materials.meta b/Assets/FlashTools/Resources/Materials.meta new file mode 100644 index 0000000..40a3374 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d9c0a113e9c274efda30bf000cce59ff +folderAsset: yes +timeCreated: 1472125740 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfDecrMaskMat.mat b/Assets/FlashTools/Resources/Materials/SwfDecrMaskMat.mat new file mode 100644 index 0000000..74f4b9e --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfDecrMaskMat.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfDecrMaskMat + m_Shader: {fileID: 4800000, guid: f1e8cd2344e824b6a9b12efcacde262c, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfDecrMaskMat.mat.meta b/Assets/FlashTools/Resources/Materials/SwfDecrMaskMat.mat.meta new file mode 100644 index 0000000..fb31a57 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfDecrMaskMat.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d63a68532164d470d887fd2603e79ffa +timeCreated: 1472125896 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfIncrMaskMat.mat b/Assets/FlashTools/Resources/Materials/SwfIncrMaskMat.mat new file mode 100644 index 0000000..cad5c1f --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfIncrMaskMat.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfIncrMaskMat + m_Shader: {fileID: 4800000, guid: 86b3e29b378884f228862fd1170176b5, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfIncrMaskMat.mat.meta b/Assets/FlashTools/Resources/Materials/SwfIncrMaskMat.mat.meta new file mode 100644 index 0000000..8c49584 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfIncrMaskMat.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e62e8efca5cac42c9a323961b58d05d6 +timeCreated: 1472125761 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_0.mat b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_0.mat new file mode 100644 index 0000000..b9a3ed5 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_0.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfMaskedMat_0 + m_Shader: {fileID: 4800000, guid: 2fb923af3a46a49fdb944d636b6f79e8, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _StencilID + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_0.mat.meta b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_0.mat.meta new file mode 100644 index 0000000..f748015 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_0.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3902e0561ba6046079e975f4b8340dbd +timeCreated: 1472125897 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_1.mat b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_1.mat new file mode 100644 index 0000000..5d4195b --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_1.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfMaskedMat_1 + m_Shader: {fileID: 4800000, guid: 2fb923af3a46a49fdb944d636b6f79e8, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _StencilID + second: 1 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_1.mat.meta b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_1.mat.meta new file mode 100644 index 0000000..47714b3 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 362db403211244f70830b07296318936 +timeCreated: 1472126253 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_2.mat b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_2.mat new file mode 100644 index 0000000..7ca4fb5 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_2.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfMaskedMat_2 + m_Shader: {fileID: 4800000, guid: 2fb923af3a46a49fdb944d636b6f79e8, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _StencilID + second: 2 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_2.mat.meta b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_2.mat.meta new file mode 100644 index 0000000..44bc4db --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 43234b460d10f41088cbd327c045074b +timeCreated: 1472126254 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_3.mat b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_3.mat new file mode 100644 index 0000000..11533bb --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_3.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfMaskedMat_3 + m_Shader: {fileID: 4800000, guid: 2fb923af3a46a49fdb944d636b6f79e8, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _StencilID + second: 3 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_3.mat.meta b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_3.mat.meta new file mode 100644 index 0000000..6c758de --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f9e8b8b157ffa4866812a11237c48758 +timeCreated: 1472126254 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_4.mat b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_4.mat new file mode 100644 index 0000000..44b11fe --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_4.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfMaskedMat_4 + m_Shader: {fileID: 4800000, guid: 2fb923af3a46a49fdb944d636b6f79e8, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _StencilID + second: 4 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_4.mat.meta b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_4.mat.meta new file mode 100644 index 0000000..fac399a --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_4.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 04597a59523be4b939c0a5dfd05b973e +timeCreated: 1472126255 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_5.mat b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_5.mat new file mode 100644 index 0000000..9684d10 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_5.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfMaskedMat_5 + m_Shader: {fileID: 4800000, guid: 2fb923af3a46a49fdb944d636b6f79e8, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _StencilID + second: 5 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_5.mat.meta b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_5.mat.meta new file mode 100644 index 0000000..febd631 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_5.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 502586963b8c243d48808238fb1210ef +timeCreated: 1472126255 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_6.mat b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_6.mat new file mode 100644 index 0000000..953d7ca --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_6.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfMaskedMat_6 + m_Shader: {fileID: 4800000, guid: 2fb923af3a46a49fdb944d636b6f79e8, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _StencilID + second: 6 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_6.mat.meta b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_6.mat.meta new file mode 100644 index 0000000..fdeddf3 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_6.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dfbc0da8152b047b58270d40b138b36c +timeCreated: 1472126255 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_7.mat b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_7.mat new file mode 100644 index 0000000..4a00fd7 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_7.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfMaskedMat_7 + m_Shader: {fileID: 4800000, guid: 2fb923af3a46a49fdb944d636b6f79e8, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _StencilID + second: 7 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_7.mat.meta b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_7.mat.meta new file mode 100644 index 0000000..787058c --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_7.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: efeaba40d10a4417eb27036131ba80b1 +timeCreated: 1472126256 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_8.mat b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_8.mat new file mode 100644 index 0000000..6eda209 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_8.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfMaskedMat_8 + m_Shader: {fileID: 4800000, guid: 2fb923af3a46a49fdb944d636b6f79e8, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _StencilID + second: 8 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_8.mat.meta b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_8.mat.meta new file mode 100644 index 0000000..116ab67 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_8.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f131b0532a4e4feaba67826153a42b7 +timeCreated: 1472126256 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_9.mat b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_9.mat new file mode 100644 index 0000000..fa0f3fc --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_9.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfMaskedMat_9 + m_Shader: {fileID: 4800000, guid: 2fb923af3a46a49fdb944d636b6f79e8, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _StencilID + second: 9 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfMaskedMat_9.mat.meta b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_9.mat.meta new file mode 100644 index 0000000..f2bb95d --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfMaskedMat_9.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ccd8fc1b2c96543ff9dc43ed384704a2 +timeCreated: 1472126257 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Materials/SwfSimpleMat.mat b/Assets/FlashTools/Resources/Materials/SwfSimpleMat.mat new file mode 100644 index 0000000..1a0876b --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfSimpleMat.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SwfSimpleMat + m_Shader: {fileID: 4800000, guid: 71f5f783ce2ab4fc4bf826e4acb105dd, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/FlashTools/Resources/Materials/SwfSimpleMat.mat.meta b/Assets/FlashTools/Resources/Materials/SwfSimpleMat.mat.meta new file mode 100644 index 0000000..69bbf63 --- /dev/null +++ b/Assets/FlashTools/Resources/Materials/SwfSimpleMat.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e92fbe00d5b6d4a3aa9355a4b23f107d +timeCreated: 1472125897 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FlashTools/Resources/Shaders/SwfMasked.shader b/Assets/FlashTools/Resources/Shaders/SwfMasked.shader index 600d4d5..7d7dab9 100644 --- a/Assets/FlashTools/Resources/Shaders/SwfMasked.shader +++ b/Assets/FlashTools/Resources/Shaders/SwfMasked.shader @@ -1,7 +1,7 @@ Shader "FlashTools/SwfMasked" { Properties { - [PerRendererData] _MainTex ("Main Texture", 2D ) = "white" {} - [PerRendererData] _StencilID ("Stencil ID" , Int) = 0 + [PerRendererData] _MainTex("Main Texture", 2D) = "white" {} + _StencilID ("Stencil ID" , Int) = 0 } SubShader { diff --git a/Assets/FlashTools/Scripts/Internal/Editor/SwfAnimationAssetEditor.cs b/Assets/FlashTools/Scripts/Internal/Editor/SwfAnimationAssetEditor.cs index 26e81c6..27eb22b 100644 --- a/Assets/FlashTools/Scripts/Internal/Editor/SwfAnimationAssetEditor.cs +++ b/Assets/FlashTools/Scripts/Internal/Editor/SwfAnimationAssetEditor.cs @@ -65,7 +65,7 @@ namespace FlashTools.Internal { anim_go.AddComponent(); anim_go.AddComponent(); anim_go.AddComponent().Asset = _asset; - anim_go.GetComponent().BakeFrameMeshes(); + anim_go.GetComponent().InitStuff(); //FIXME return anim_go; } return null; @@ -126,6 +126,10 @@ namespace FlashTools.Internal { if ( atlas_prop != null ) { EditorGUILayout.PropertyField(atlas_prop, true); } + var baked_frames_prop = serializedObject.FindProperty("BakedFrames"); + if ( baked_frames_prop != null && baked_frames_prop.isArray ) { + EditorGUILayout.IntField("Frame count", baked_frames_prop.arraySize); + } GUI.enabled = true; _settingsFoldout = EditorGUILayout.Foldout(_settingsFoldout, "Settings"); if ( _settingsFoldout ) { diff --git a/Assets/FlashTools/Scripts/Internal/Editor/SwfAnimationAssetPostprocessor.cs b/Assets/FlashTools/Scripts/Internal/Editor/SwfAnimationAssetPostprocessor.cs index e372b7a..4d1a40d 100644 --- a/Assets/FlashTools/Scripts/Internal/Editor/SwfAnimationAssetPostprocessor.cs +++ b/Assets/FlashTools/Scripts/Internal/Editor/SwfAnimationAssetPostprocessor.cs @@ -4,6 +4,7 @@ using System; using System.IO; using System.Linq; using System.Reflection; +using System.Collections.Generic; namespace FlashTools.Internal { public class SwfAnimationAssetPostprocessor : AssetPostprocessor { @@ -29,6 +30,7 @@ namespace FlashTools.Internal { if ( atlas_asset != asset.Atlas ) { asset.Atlas = atlas_asset; ConfigureAtlas(asset_path, asset); + ConfigureBakedFrames(asset_path, asset); EditorUtility.SetDirty(asset); AssetDatabase.SaveAssets(); } @@ -48,6 +50,13 @@ namespace FlashTools.Internal { return Path.ChangeExtension(asset_path, ".png"); } + // ------------------------------------------------------------------------ + // + // ConfigureAtlas + // + // ------------------------------------------------------------------------ + + static void ConfigureAtlas(string asset_path, SwfAnimationAsset asset) { var atlas_importer = GetBitmapsAtlasImporter(asset_path); var atlas_importer_size = GetSizeFromTextureImporter(atlas_importer); @@ -125,5 +134,150 @@ namespace FlashTools.Internal { format)); } } + + // ------------------------------------------------------------------------ + // + // ConfigureBakedFrames + // + // ------------------------------------------------------------------------ + + class BakeGroup { + public SwfAnimationInstanceType Type; + public int ClipDepth; + public List Triangles; + public Material Material; + } + + static void ConfigureBakedFrames(string asset_path, SwfAnimationAsset asset) { + var baked_frames = new List(); + if ( asset && asset.Atlas && asset.Data != null && asset.Data.Frames.Count > 0 ) { + for ( var i = 0; i < asset.Data.Frames.Count; ++i ) { + var frame = asset.Data.Frames[i]; + var baked_frame = BakeFrameFromAnimationFrame(asset, frame); + baked_frames.Add(baked_frame); + } + } + asset.BakedFrames = baked_frames; + } + + static SwfAnimationAsset.BakedFrame BakeFrameFromAnimationFrame(SwfAnimationAsset asset, SwfAnimationFrameData frame) { + List _uvs = new List(); + List _mulcolors = new List(); + List _addcolors = new List(); + List _vertices = new List(); + List _groups = new List(); + List _materials = new List(); + + for ( var i = 0; i < frame.Instances.Count; ++i ) { + var inst = frame.Instances[i]; + var bitmap = inst != null ? FindBitmapFromAnimationData(asset.Data, inst.Bitmap) : null; + if ( bitmap != null ) { + var width = bitmap.RealSize.x / 20.0f; + var height = bitmap.RealSize.y / 20.0f; + + var v0 = new Vector3( 0, 0, 0); + var v1 = new Vector3(width, 0, 0); + var v2 = new Vector3(width, height, 0); + var v3 = new Vector3( 0, height, 0); + + var matrix = + Matrix4x4.Scale(new Vector3( + +1.0f / asset.Settings.PixelsPerUnit, + -1.0f / asset.Settings.PixelsPerUnit, + +1.0f / asset.Settings.PixelsPerUnit)) * inst.Matrix; + + _vertices.Add(matrix.MultiplyPoint3x4(v0)); + _vertices.Add(matrix.MultiplyPoint3x4(v1)); + _vertices.Add(matrix.MultiplyPoint3x4(v2)); + _vertices.Add(matrix.MultiplyPoint3x4(v3)); + + var source_rect = bitmap.SourceRect; + _uvs.Add(new Vector2(source_rect.xMin, source_rect.yMin)); + _uvs.Add(new Vector2(source_rect.xMax, source_rect.yMin)); + _uvs.Add(new Vector2(source_rect.xMax, source_rect.yMax)); + _uvs.Add(new Vector2(source_rect.xMin, source_rect.yMax)); + + _mulcolors.Add(inst.ColorTransform.Mul); + _mulcolors.Add(inst.ColorTransform.Mul); + _mulcolors.Add(inst.ColorTransform.Mul); + _mulcolors.Add(inst.ColorTransform.Mul); + + _addcolors.Add(inst.ColorTransform.Add); + _addcolors.Add(inst.ColorTransform.Add); + _addcolors.Add(inst.ColorTransform.Add); + _addcolors.Add(inst.ColorTransform.Add); + + if ( _groups.Count == 0 || + _groups[_groups.Count - 1].Type != inst.Type || + _groups[_groups.Count - 1].ClipDepth != inst.ClipDepth ) + { + _groups.Add(new BakeGroup{ + Type = inst.Type, + ClipDepth = inst.ClipDepth, + Triangles = new List(), + Material = null + }); + } + + _groups[_groups.Count - 1].Triangles.Add(_vertices.Count - 4 + 2); + _groups[_groups.Count - 1].Triangles.Add(_vertices.Count - 4 + 1); + _groups[_groups.Count - 1].Triangles.Add(_vertices.Count - 4 + 0); + _groups[_groups.Count - 1].Triangles.Add(_vertices.Count - 4 + 0); + _groups[_groups.Count - 1].Triangles.Add(_vertices.Count - 4 + 3); + _groups[_groups.Count - 1].Triangles.Add(_vertices.Count - 4 + 2); + } + } + + var swf_manager = SwfManager.GetInstance(true); + for ( var i = 0; i < _groups.Count; ++i ) { + var group = _groups[i]; + switch ( group.Type ) { + case SwfAnimationInstanceType.Mask: + group.Material = swf_manager.GetIncrMaskMaterial(); + break; + case SwfAnimationInstanceType.Group: + group.Material = swf_manager.GetSimpleMaterial(); + break; + case SwfAnimationInstanceType.Masked: + group.Material = swf_manager.GetMaskedMaterial(group.ClipDepth); + break; + case SwfAnimationInstanceType.MaskReset: + group.Material = swf_manager.GetDecrMaskMaterial(); + break; + } + } + + for ( var i = 0; i < _groups.Count; ++i ) { + var group = _groups[i]; + _materials.Add(group.Material); + } + + var mesh = new Mesh(); + mesh.subMeshCount = _groups.Count; + mesh.SetVertices(_vertices); + for ( var i = 0; i < _groups.Count; ++i ) { + mesh.SetTriangles(_groups[i].Triangles, i); + } + mesh.SetUVs(0, _uvs); + mesh.SetUVs(1, _addcolors); + mesh.SetColors(_mulcolors); + mesh.RecalculateNormals(); + + AssetDatabase.AddObjectToAsset(mesh, asset); + + return new SwfAnimationAsset.BakedFrame{ + Mesh = mesh, + Materials = _materials.ToArray()}; + } + + static SwfAnimationBitmapData FindBitmapFromAnimationData(SwfAnimationData data, int bitmap_id) { + for ( var i = 0; i < data.Bitmaps.Count; ++i ) { + var bitmap = data.Bitmaps[i]; + if ( bitmap.Id == bitmap_id ) { + return bitmap; + } + } + return null; + } } } \ No newline at end of file diff --git a/Assets/FlashTools/Scripts/Internal/Editor/SwfPropertyDrawers.cs b/Assets/FlashTools/Scripts/Internal/Editor/SwfPropertyDrawers.cs index 0c445b3..f702ef9 100644 --- a/Assets/FlashTools/Scripts/Internal/Editor/SwfPropertyDrawers.cs +++ b/Assets/FlashTools/Scripts/Internal/Editor/SwfPropertyDrawers.cs @@ -5,23 +5,6 @@ using System.Collections.Generic; namespace FlashTools.Internal.SwfEditorTools { - // - // SwfReadOnlyDrawer - // - - [CustomPropertyDrawer(typeof(SwfReadOnlyAttribute))] - public class SwfReadOnlyDrawer : PropertyDrawer { - - public override void OnGUI( - Rect position, SerializedProperty property, GUIContent label) - { - var last_gui_enabled = GUI.enabled; - GUI.enabled = false; - EditorGUI.PropertyField(position, property, label, true); - GUI.enabled = last_gui_enabled; - } - } - // // SwfSortingLayerDrawer // diff --git a/Assets/FlashTools/Scripts/Internal/SwfPropertyAttributes.cs b/Assets/FlashTools/Scripts/Internal/SwfPropertyAttributes.cs index 4734f41..0586a46 100644 --- a/Assets/FlashTools/Scripts/Internal/SwfPropertyAttributes.cs +++ b/Assets/FlashTools/Scripts/Internal/SwfPropertyAttributes.cs @@ -1,9 +1,6 @@ using UnityEngine; namespace FlashTools.Internal { - public class SwfReadOnlyAttribute : PropertyAttribute { - } - public class SwfSortingLayerAttribute : PropertyAttribute { } diff --git a/Assets/FlashTools/Scripts/SwfAnimation.cs b/Assets/FlashTools/Scripts/SwfAnimation.cs index 57028e2..2f97692 100644 --- a/Assets/FlashTools/Scripts/SwfAnimation.cs +++ b/Assets/FlashTools/Scripts/SwfAnimation.cs @@ -6,14 +6,16 @@ namespace FlashTools { [ExecuteInEditMode] [RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))] public class SwfAnimation : MonoBehaviour { - public SwfAnimationAsset Asset = null; - + public SwfAnimationAsset Asset = null; [SwfSortingLayer] public string SortingLayer = "Default"; public int SortingOrder = 0; - MeshFilter _meshFilter = null; - MeshRenderer _meshRenderer = null; + MeshFilter _meshFilter = null; + MeshRenderer _meshRenderer = null; + + bool _inited = false; + MaterialPropertyBlock _matPropBlock = null; int _current_frame = 0; float _frame_timer = 0.0f; @@ -36,170 +38,17 @@ namespace FlashTools { // // ------------------------------------------------------------------------ - MaterialPropertyBlock MatPropBlock; - - class Frame { - public Mesh Mesh; - public Material[] Materials; - } - - List _frames = new List(); - - class Group { - public SwfAnimationInstanceType Type; - public int ClipDepth; - public List Triangles; - public Material Material; - } - - List _uvs = new List(); - List _mulcolors = new List(); - List _addcolors = new List(); - List _vertices = new List(); - List _groups = new List(); - List _materials = new List(); - - void ClearTempBakeData() { - _uvs.Clear(); - _mulcolors.Clear(); - _addcolors.Clear(); - _vertices.Clear(); - _groups.Clear(); - _materials.Clear(); - } - - public void BakeFrameMeshes() { - if ( Asset && Asset.Atlas && Asset.Data != null && Asset.Data.Frames.Count > 0 ) { - MatPropBlock = new MaterialPropertyBlock(); - MatPropBlock.SetTexture("_MainTex", Asset.Atlas); - for ( var i = 0; i < Asset.Data.Frames.Count; ++i ) { - var frame = Asset.Data.Frames[i]; - BakeFrameMesh(frame); - } + public void InitStuff() { + if ( Asset && !_inited ) { + _inited = true; + _matPropBlock = new MaterialPropertyBlock(); + _matPropBlock.SetTexture("_MainTex", Asset.Atlas); } FixCurrentMesh(); } - void BakeFrameMesh(SwfAnimationFrameData frame) { - var swf_manager = SwfManager.GetInstance(true); - for ( var i = 0; i < frame.Instances.Count; ++i ) { - var inst = frame.Instances[i]; - var bitmap = inst != null ? FindBitmap(inst.Bitmap) : null; - if ( bitmap != null ) { - var width = bitmap.RealSize.x / 20.0f; - var height = bitmap.RealSize.y / 20.0f; - - var v0 = new Vector3( 0, 0, 0); - var v1 = new Vector3(width, 0, 0); - var v2 = new Vector3(width, height, 0); - var v3 = new Vector3( 0, height, 0); - - var matrix = - Matrix4x4.Scale(new Vector3( - +1.0f / Asset.Settings.PixelsPerUnit, - -1.0f / Asset.Settings.PixelsPerUnit, - +1.0f / Asset.Settings.PixelsPerUnit)) * inst.Matrix; - - _vertices.Add(matrix.MultiplyPoint3x4(v0)); - _vertices.Add(matrix.MultiplyPoint3x4(v1)); - _vertices.Add(matrix.MultiplyPoint3x4(v2)); - _vertices.Add(matrix.MultiplyPoint3x4(v3)); - - var source_rect = bitmap.SourceRect; - _uvs.Add(new Vector2(source_rect.xMin, source_rect.yMin)); - _uvs.Add(new Vector2(source_rect.xMax, source_rect.yMin)); - _uvs.Add(new Vector2(source_rect.xMax, source_rect.yMax)); - _uvs.Add(new Vector2(source_rect.xMin, source_rect.yMax)); - - _mulcolors.Add(inst.ColorTransform.Mul); - _mulcolors.Add(inst.ColorTransform.Mul); - _mulcolors.Add(inst.ColorTransform.Mul); - _mulcolors.Add(inst.ColorTransform.Mul); - - _addcolors.Add(inst.ColorTransform.Add); - _addcolors.Add(inst.ColorTransform.Add); - _addcolors.Add(inst.ColorTransform.Add); - _addcolors.Add(inst.ColorTransform.Add); - - if ( _groups.Count == 0 || - _groups[_groups.Count - 1].Type != inst.Type || - _groups[_groups.Count - 1].ClipDepth != inst.ClipDepth ) - { - _groups.Add(new Group{ - Type = inst.Type, - ClipDepth = inst.ClipDepth, - Triangles = new List(), - Material = null - }); - } - - _groups[_groups.Count - 1].Triangles.Add(_vertices.Count - 4 + 2); - _groups[_groups.Count - 1].Triangles.Add(_vertices.Count - 4 + 1); - _groups[_groups.Count - 1].Triangles.Add(_vertices.Count - 4 + 0); - _groups[_groups.Count - 1].Triangles.Add(_vertices.Count - 4 + 0); - _groups[_groups.Count - 1].Triangles.Add(_vertices.Count - 4 + 3); - _groups[_groups.Count - 1].Triangles.Add(_vertices.Count - 4 + 2); - } - } - - for ( var i = 0; i < _groups.Count; ++i ) { - var group = _groups[i]; - switch ( group.Type ) { - case SwfAnimationInstanceType.Mask: - group.Material = swf_manager.GetIncrMaskMaterial(); - break; - case SwfAnimationInstanceType.Group: - group.Material = swf_manager.GetSimpleMaterial(); - break; - case SwfAnimationInstanceType.Masked: - group.Material = swf_manager.GetMaskedMaterial(group.ClipDepth); - break; - case SwfAnimationInstanceType.MaskReset: - group.Material = swf_manager.GetDecrMaskMaterial(); - break; - } - } - - for ( var i = 0; i < _groups.Count; ++i ) { - var group = _groups[i]; - _materials.Add(group.Material); - } - - var mesh = new Mesh(); - mesh.subMeshCount = _groups.Count; - mesh.SetVertices(_vertices); - for ( var i = 0; i < _groups.Count; ++i ) { - mesh.SetTriangles(_groups[i].Triangles, i); - } - mesh.SetUVs(0, _uvs); - mesh.SetUVs(1, _addcolors); - mesh.SetColors(_mulcolors); - mesh.RecalculateNormals(); - - _frames.Add(new Frame{ - Mesh = mesh, - Materials = _materials.ToArray()}); - ClearTempBakeData(); - } - - SwfAnimationBitmapData FindBitmap(int bitmap_id) { - if ( Asset ) { - for ( var i = 0; i < Asset.Data.Bitmaps.Count; ++i ) { - var bitmap = Asset.Data.Bitmaps[i]; - if ( bitmap.Id == bitmap_id ) { - return bitmap; - } - } - } - return null; - } - void UpdateFrameTimer() { if ( Asset ) { - if ( _frames.Count == 0 ) { - BakeFrameMeshes(); - FixCurrentMesh(); - } _frame_timer += Asset.Data.FrameRate * Time.deltaTime; while ( _frame_timer > 1.0f ) { _frame_timer -= 1.0f; @@ -213,13 +62,13 @@ namespace FlashTools { } void FixCurrentMesh() { - if ( _frames.Count > 0 ) { - var frame = _frames[Mathf.Clamp(currentFrame, 0, _frames.Count)]; + if ( Asset && Asset.BakedFrames.Count > 0 ) { + var frame = Asset.BakedFrames[Mathf.Clamp(currentFrame, 0, Asset.BakedFrames.Count)]; _meshFilter.sharedMesh = frame.Mesh; _meshRenderer.sharedMaterials = frame.Materials; _meshRenderer.sortingOrder = SortingOrder; _meshRenderer.sortingLayerName = SortingLayer; - _meshRenderer.SetPropertyBlock(MatPropBlock); + _meshRenderer.SetPropertyBlock(_matPropBlock); } } @@ -242,6 +91,7 @@ namespace FlashTools { void Awake() { _meshFilter = GetComponent(); _meshRenderer = GetComponent(); + InitStuff(); } void OnEnable() { diff --git a/Assets/FlashTools/Scripts/SwfAnimationAsset.cs b/Assets/FlashTools/Scripts/SwfAnimationAsset.cs index 2d930b1..67faea8 100644 --- a/Assets/FlashTools/Scripts/SwfAnimationAsset.cs +++ b/Assets/FlashTools/Scripts/SwfAnimationAsset.cs @@ -70,8 +70,14 @@ namespace FlashTools { } public class SwfAnimationAsset : ScriptableObject { + [System.Serializable] + public class BakedFrame { + public Mesh Mesh = null; + public Material[] Materials = new Material[0]; + } public SwfAnimationData Data; public Texture2D Atlas; + public List BakedFrames; #if UNITY_EDITOR public SwfConverterSettings.Settings Settings; public SwfConverterSettings.Settings Overridden; @@ -79,10 +85,11 @@ namespace FlashTools { #if UNITY_EDITOR void Reset() { - Data = new SwfAnimationData(); - Atlas = null; - Settings = SwfConverterSettings.GetDefaultSettings(); - Overridden = SwfConverterSettings.GetDefaultSettings(); + Data = new SwfAnimationData(); + Atlas = null; + BakedFrames = new List(); + Settings = SwfConverterSettings.GetDefaultSettings(); + Overridden = SwfConverterSettings.GetDefaultSettings(); } #endif } diff --git a/Assets/FlashTools/Scripts/SwfManager.cs b/Assets/FlashTools/Scripts/SwfManager.cs index afb7bfe..7def9b4 100644 --- a/Assets/FlashTools/Scripts/SwfManager.cs +++ b/Assets/FlashTools/Scripts/SwfManager.cs @@ -1,21 +1,23 @@ using UnityEngine; using System.Collections.Generic; -using FlashTools.Internal; + +#if UNITY_EDITOR +using UnityEditor; +#endif namespace FlashTools { [ExecuteInEditMode] public class SwfManager : MonoBehaviour { // --------------------------------------------------------------------- // - // Consts + // Constants // // --------------------------------------------------------------------- - const int SwfStencilIdCount = 10; - const string SwfSimpleShaderPath = "FlashTools/SwfSimple"; - const string SwfMaskedShaderPath = "FlashTools/SwfMasked"; - const string SwfIncrMaskShaderPath = "FlashTools/SwfIncrMask"; - const string SwfDecrMaskShaderPath = "FlashTools/SwfDecrMask"; + const string SwfSimpleMatPath = "Assets/FlashTools/Resources/Materials/SwfSimpleMat.mat"; + const string SwfIncrMaskMatPath = "Assets/FlashTools/Resources/Materials/SwfIncrMaskMat.mat"; + const string SwfDecrMaskMatPath = "Assets/FlashTools/Resources/Materials/SwfDecrMaskMat.mat"; + const string SwfMaskedMatPathFmt = "Assets/FlashTools/Resources/Materials/SwfMaskedMat_{0}.mat"; // --------------------------------------------------------------------- // @@ -23,11 +25,10 @@ namespace FlashTools { // // --------------------------------------------------------------------- - [SerializeField] [HideInInspector] Shader _maskedShader = null; - [SerializeField] [HideInInspector] List _maskedMaterials = null; [SerializeField] [HideInInspector] Material _simpleMaterial = null; [SerializeField] [HideInInspector] Material _incrMaskMaterial = null; [SerializeField] [HideInInspector] Material _decrMaskMaterial = null; + [SerializeField] [HideInInspector] List _maskedMaterials = null; HashSet _animations = new HashSet(); @@ -70,6 +71,7 @@ namespace FlashTools { // --------------------------------------------------------------------- void FillMaterialsCache() { + /* if ( !_maskedShader ) { _maskedShader = SafeLoadShader(SwfMaskedShaderPath); } @@ -89,9 +91,48 @@ namespace FlashTools { } if ( !_decrMaskMaterial ) { _decrMaskMaterial = new Material(SafeLoadShader(SwfDecrMaskShaderPath)); + }*/ + + if ( !_simpleMaterial ) { + _simpleMaterial = SafeLoadMaterial(SwfSimpleMatPath, true); + } + + if ( !_incrMaskMaterial ) { + _incrMaskMaterial = SafeLoadMaterial(SwfIncrMaskMatPath, true); + } + + if ( !_decrMaskMaterial ) { + _decrMaskMaterial = SafeLoadMaterial(SwfDecrMaskMatPath, true); + } + + if ( _maskedMaterials == null ) { + _maskedMaterials = new List(); + for ( var i = 0; i < 100; ++i ) { + var mat = SafeLoadMaterial(string.Format(SwfMaskedMatPathFmt, i), false); + if ( mat ) { + _maskedMaterials.Add(mat); + } else { + break; + } + } } } + Material SafeLoadMaterial(string path, bool exception) { + #if UNITY_EDITOR + var material = AssetDatabase.LoadAssetAtPath(path); + if ( !material && exception ) { + throw new UnityException(string.Format( + "SwfManager. Material not found: {0}", + path)); + } + return material; + #else + throw new UnityException("IMPLME!"); + #endif + } + + /* Shader SafeLoadShader(string path) { var shader = Shader.Find(path); if ( !shader ) { @@ -100,6 +141,27 @@ namespace FlashTools { path)); } return shader; + }*/ + + void GrabEnabledAnimations() { + var all_animations = FindObjectsOfType(); + for ( int i = 0, e = all_animations.Length; i < e; ++i ) { + var animation = all_animations[i]; + if ( animation.enabled ) { + _animations.Add(animation); + } + } + } + + void DropAnimations() { + _animations.Clear(); + } + + void UpdateAnimations() { + var iter = _animations.GetEnumerator(); + while ( iter.MoveNext() ) { + iter.Current.InternalUpdate(); + } } // --------------------------------------------------------------------- @@ -109,27 +171,23 @@ namespace FlashTools { // --------------------------------------------------------------------- public Material GetMaskedMaterial(int stencil_id) { - if ( stencil_id < 0 || stencil_id >= SwfStencilIdCount ) { + if ( stencil_id < 0 || stencil_id >= _maskedMaterials.Count ) { throw new UnityException(string.Format( "SwfManager. Unsupported stencil id: {0}", stencil_id)); } - FillMaterialsCache(); return _maskedMaterials[stencil_id]; } public Material GetSimpleMaterial() { - FillMaterialsCache(); return _simpleMaterial; } public Material GetIncrMaskMaterial() { - FillMaterialsCache(); return _incrMaskMaterial; } public Material GetDecrMaskMaterial() { - FillMaterialsCache(); return _decrMaskMaterial; } @@ -144,24 +202,15 @@ namespace FlashTools { } void OnEnable() { - var all_animations = FindObjectsOfType(); - for ( int i = 0, e = all_animations.Length; i < e; ++i ) { - var animation = all_animations[i]; - if ( animation.enabled ) { - _animations.Add(animation); - } - } + GrabEnabledAnimations(); } void OnDisable() { - _animations.Clear(); + DropAnimations(); } void Update() { - var iter = _animations.GetEnumerator(); - while ( iter.MoveNext() ) { - iter.Current.InternalUpdate(); - } + UpdateAnimations(); } } } \ No newline at end of file