From a9e4f042954bf930fec7f2a7c7fb3614ba55ed95 Mon Sep 17 00:00:00 2001 From: "DESKTOP-S4BOTN2\\user" Date: Wed, 13 May 2026 16:15:46 +0900 Subject: [PATCH] =?UTF-8?q?ADD:=20260513=20=EC=88=99=ED=9D=AC=EB=8B=98=20?= =?UTF-8?q?=EB=B0=A9=EC=86=A1=EC=9A=A9=20=EC=94=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scene/[공용]댄스 연습실.unity | 4 +- .../숙희_260504_제복_01_Biped.fbx.meta | 100 +---- .../공태연_260513_화이트제복_Biped.fbx.meta | 66 +--- .../공태연_260513_화이트제복_Biped.prefab | 4 +- .../Materials/0.Metal_G_Copy.mat | 6 +- .../Materials/2.Face_effect_Copy.mat | 6 +- .../Materials/Body 2_Copy.mat | 6 +- .../Materials/Sky Blue_Copy.mat | 2 +- .../Materials/White_Boots_Copy.mat | 23 +- .../Materials/White_Copy.mat | 15 +- .../Materials/_Halo_Copy.mat | 6 +- .../Materials/_Ribbon Pin_Copy.mat | 6 +- .../Materials/_Silver Pin_Copy.mat | 6 +- .../Materials/히령_Face_Copy.mat | 4 + .../슈니_260513_화이트제복_Biped.fbx.meta | 78 +--- .../슈니_260513_화이트제복_Biped.prefab | 4 +- .../260128_지한방송_Volume_기본블룸.asset | 4 +- .../260128_지한방송_Volume_차갑게.asset | 4 +- .../Project/260513_숙희님방송.meta} | 2 +- .../260513_숙희님방송/260513_숙희님방송.unity | 3 + .../260513_숙희님방송.unity.meta} | 3 +- .../Project/260513_숙희님방송/모션.meta} | 2 +- .../Editor/BlendShapeLinkEditor.cs | 257 ------------- .../Editor/BlendShapeLinkEditor.cs.meta | 2 - .../BlendShapeLink/Scripts/BlendShapeLink.cs | 121 ------ .../Scripts/BlendShapeLink.cs.meta | 2 - .../YAMO_Scripts/Camera Composition.meta | 8 - .../CameraComposition.asmdef | 14 - .../CameraComposition.asmdef.meta | 14 - .../Camera Composition/CompositionOverlay.cs | 81 ---- .../CompositionOverlay.cs.meta | 18 - .../Camera Composition/Editor.meta | 8 - .../Editor/CameraComposition.cs | 236 ------------ .../Editor/CameraComposition.cs.meta | 18 - .../Camera Composition/Resources.meta | 8 - .../Resources/Overlays.meta | 8 - .../Overlays/overlays.cross.png.meta | 117 ------ .../Overlays/overlays.diagonal.png.meta | 115 ------ .../Overlays/overlays.goldenratio.png.meta | 115 ------ .../Overlays/overlays.goldenspiral.png.meta | 115 ------ .../Overlays/overlays.ruleofthirds.png.meta | 115 ------ .../Camera Composition/Resources/Prefabs.meta | 8 - .../Prefabs/Camera Composition.prefab.meta | 14 - .../YAMO_Scripts/ForearmHingeBaker.meta | 8 - .../ForearmHingeBaker/ForearmHingeBaker.cs | 360 ------------------ .../ForearmHingeBaker.cs.meta | 2 - Packages/manifest.json | 4 +- Packages/packages-lock.json | 4 +- ProjectSettings/ProjectSettings.asset | 4 +- 49 files changed, 128 insertions(+), 2002 deletions(-) rename Assets/{Scripts/YAMO_Scripts/BlendShapeLink.meta => ResourcesData/Project/260513_숙희님방송.meta} (77%) create mode 100644 Assets/ResourcesData/Project/260513_숙희님방송/260513_숙희님방송.unity rename Assets/{Scripts/YAMO_Scripts/BlendShapeLink/Scripts.meta => ResourcesData/Project/260513_숙희님방송/260513_숙희님방송.unity.meta} (67%) rename Assets/{Scripts/YAMO_Scripts/BlendShapeLink/Editor.meta => ResourcesData/Project/260513_숙희님방송/모션.meta} (77%) delete mode 100644 Assets/Scripts/YAMO_Scripts/BlendShapeLink/Editor/BlendShapeLinkEditor.cs delete mode 100644 Assets/Scripts/YAMO_Scripts/BlendShapeLink/Editor/BlendShapeLinkEditor.cs.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/BlendShapeLink/Scripts/BlendShapeLink.cs delete mode 100644 Assets/Scripts/YAMO_Scripts/BlendShapeLink/Scripts/BlendShapeLink.cs.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/CameraComposition.asmdef delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/CameraComposition.asmdef.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/CompositionOverlay.cs delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/CompositionOverlay.cs.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/Editor.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/Editor/CameraComposition.cs delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/Editor/CameraComposition.cs.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/Resources.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.cross.png.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.diagonal.png.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.goldenratio.png.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.goldenspiral.png.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.ruleofthirds.png.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Prefabs.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Prefabs/Camera Composition.prefab.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/ForearmHingeBaker.meta delete mode 100644 Assets/Scripts/YAMO_Scripts/ForearmHingeBaker/ForearmHingeBaker.cs delete mode 100644 Assets/Scripts/YAMO_Scripts/ForearmHingeBaker/ForearmHingeBaker.cs.meta diff --git a/Assets/ResourcesData/Background/[공용]댄스 연습실/Scene/[공용]댄스 연습실.unity b/Assets/ResourcesData/Background/[공용]댄스 연습실/Scene/[공용]댄스 연습실.unity index 465e50418..ec387bdfa 100644 --- a/Assets/ResourcesData/Background/[공용]댄스 연습실/Scene/[공용]댄스 연습실.unity +++ b/Assets/ResourcesData/Background/[공용]댄스 연습실/Scene/[공용]댄스 연습실.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c65d8375782831eeb4fae49a0f90071ccc25110a9ef06bb316f88306958dbad2 -size 102765 +oid sha256:53c49a58ec38b586fea0be0c5f76db7d803df289e6155168ce61a028535d4f76 +size 96728 diff --git a/Assets/ResourcesData/Character/@034_숙희/Avatar/숙희_260504_제복/숙희_260504_제복_01_Biped.fbx.meta b/Assets/ResourcesData/Character/@034_숙희/Avatar/숙희_260504_제복/숙희_260504_제복_01_Biped.fbx.meta index d500e6108..1242d1574 100644 --- a/Assets/ResourcesData/Character/@034_숙희/Avatar/숙희_260504_제복/숙희_260504_제복_01_Biped.fbx.meta +++ b/Assets/ResourcesData/Character/@034_숙희/Avatar/숙희_260504_제복/숙희_260504_제복_01_Biped.fbx.meta @@ -3,7 +3,7 @@ guid: 695bdc3f20a3a8747b3ce6d630f766da labels: - NiloToonBakeSmoothNormalTSIntoUV8 ModelImporter: - serializedVersion: 21300 + serializedVersion: 24200 internalIDToNameTable: [] externalObjects: - first: @@ -113,12 +113,6 @@ ModelImporter: optimizeGameObjects: 0 removeConstantScaleCurves: 1 motionNodeName: - rigImportErrors: - rigImportWarnings: "Avatar Rig Configuration mis-match. Bone length in configuration - does not match position in animation file:\n\t'Bip001 L Thigh' : position error - = 16.463823 mm\n\t'Bip001 L Toe0' : position error = 6.382165 mm\n\t'Bip001 - R Thigh' : position error = 16.464014 mm\n\t'Bip001 R Toe0' : position error - = 6.382228 mm\n" animationImportErrors: animationImportWarnings: animationRetargetingWarnings: @@ -141,6 +135,7 @@ ModelImporter: addColliders: 0 useSRGBMaterialColor: 1 sortHierarchyByName: 1 + importPhysicalCameras: 1 importVisibility: 1 importBlendShapes: 1 importCameras: 1 @@ -158,6 +153,9 @@ ModelImporter: maxBonesPerVertex: 4 minBoneWeight: 0.001 optimizeBones: 1 + generateMeshLods: 0 + meshLodGenerationFlags: 0 + maximumMeshLod: -1 meshOptimizationFlags: -1 indexFormat: 0 secondaryUVAngleDistortion: 8 @@ -350,30 +348,6 @@ ModelImporter: value: {x: 0, y: 0, z: 0} length: 0 modified: 0 - - boneName: Bip001 L Finger0 - humanName: Left Thumb Proximal - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Bip001 L Finger01 - humanName: Left Thumb Intermediate - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Bip001 L Finger02 - humanName: Left Thumb Distal - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - boneName: Bip001 L Finger1 humanName: Left Index Proximal limit: @@ -470,30 +444,6 @@ ModelImporter: value: {x: 0, y: 0, z: 0} length: 0 modified: 0 - - boneName: Bip001 R Finger0 - humanName: Right Thumb Proximal - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Bip001 R Finger01 - humanName: Right Thumb Intermediate - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Bip001 R Finger02 - humanName: Right Thumb Distal - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - boneName: Bip001 R Finger1 humanName: Right Index Proximal limit: @@ -689,8 +639,7 @@ ModelImporter: - name: "LowerLeg_L_\uD558\uC580\uC81C\uBCF5" parentName: LeftLowerLeg position: {x: -0.0000000047683715, y: -0.000000038146972, z: 0.000000038146972} - rotation: {x: -0.0000014305115, y: -0.00000059973513, z: -0.00000030256396, - w: 1} + rotation: {x: -0.0000014305115, y: -0.00000059973513, z: -0.00000030256396, w: 1} scale: {x: 1, y: 1, z: 1} - name: "LowerLeg_L_clothes_\uD558\uC580\uC81C\uBCF5" parentName: "LowerLeg_L_\uD558\uC580\uC81C\uBCF5" @@ -895,8 +844,7 @@ ModelImporter: - name: Bip001 L Finger0Nub parentName: Bip001 L Finger02 position: {x: -0.01959076, y: -0.000000019073486, z: 0} - rotation: {x: 0.0000000037252903, y: -0.0000000018626451, z: 0.00000001571607, - w: 1} + rotation: {x: 0.0000000037252903, y: -0.0000000018626451, z: 0.00000001571607, w: 1} scale: {x: 1, y: 1, z: 1} - name: LeftThumbDistal parentName: Bip001 L Finger02 @@ -1116,8 +1064,7 @@ ModelImporter: - name: "LittleIntermediate_L_\uD558\uC580\uC81C\uBCF5" parentName: LeftLittleIntermediate position: {x: 0.000000076293944, y: 0.000000076293944, z: -0.000000076293944} - rotation: {x: -0.0000026226046, y: -0.000000037252445, z: 0.00000047683707, - w: 1} + rotation: {x: -0.0000026226046, y: -0.000000037252445, z: 0.00000047683707, w: 1} scale: {x: 1, y: 1, z: 1.000001} - name: LeftLittleProximal parentName: Bip001 L Finger4 @@ -1127,8 +1074,7 @@ ModelImporter: - name: "LittleProximal_L_\uD558\uC580\uC81C\uBCF5" parentName: LeftLittleProximal position: {x: 0.000000038146972, y: 0.000000076293944, z: -0.000000076293944} - rotation: {x: -0.0000026226044, y: -0.000000030732867, z: 0.00000023841847, - w: 1} + rotation: {x: -0.0000026226044, y: -0.000000030732867, z: 0.00000023841847, w: 1} scale: {x: 1, y: 1, z: 1} - name: LeftHand parentName: Bip001 L Hand @@ -1288,8 +1234,7 @@ ModelImporter: - name: Earring L_Neko Tied Bob hair parentName: Head_Neko Tied Bob hair position: {x: 0.015875628, y: -1.4696712, z: -0.020517724} - rotation: {x: -0.0000005960461, y: -0.00000008940694, z: -0.000000044703473, - w: 1} + rotation: {x: -0.0000005960461, y: -0.00000008940694, z: -0.000000044703473, w: 1} scale: {x: 1, y: 1, z: 1} - name: Li-ne_Earring_Neko Tied Bob hair_1 parentName: Earring L_Neko Tied Bob hair @@ -1324,8 +1269,7 @@ ModelImporter: - name: Earring R_Neko Tied Bob hair parentName: Head_Neko Tied Bob hair position: {x: -0.015876366, y: -1.4696715, z: -0.020517616} - rotation: {x: -0.0000005960461, y: -0.00000008940694, z: -0.000000044703473, - w: 1} + rotation: {x: -0.0000005960461, y: -0.00000008940694, z: -0.000000044703473, w: 1} scale: {x: 1, y: 1, z: 1} - name: Li-ne_Earring_Neko Tied Bob hair parentName: Earring R_Neko Tied Bob hair @@ -1545,8 +1489,7 @@ ModelImporter: - name: Bangs.R.001_Neko Tied Bob hair parentName: Bangs.R_Neko Tied Bob hair position: {x: 0.000000038146972, y: 0.016436385, z: 0.000000026226044} - rotation: {x: 0.000000033644028, y: -0.0000000066938566, z: 0.0000007003545, - w: 1} + rotation: {x: 0.000000033644028, y: -0.0000000066938566, z: 0.0000007003545, w: 1} scale: {x: 1, y: 1, z: 1} - name: Bangs_Neko Tied Bob hair parentName: Hair Root_Neko Tied Bob hair @@ -1916,8 +1859,7 @@ ModelImporter: - name: "IndexDistal_R_\uD558\uC580\uC81C\uBCF5" parentName: RightIndexDistal position: {x: -0.000000038146972, y: 0, z: 0} - rotation: {x: -0.00000047683713, y: 0.00000047683713, z: -0.00000017019411, - w: 1} + rotation: {x: -0.00000047683713, y: 0.00000047683713, z: -0.00000017019411, w: 1} scale: {x: 1, y: 1, z: 1} - name: RightIndexIntermediate parentName: Bip001 R Finger11 @@ -1927,8 +1869,7 @@ ModelImporter: - name: "IndexIntermediate_R_\uD558\uC580\uC81C\uBCF5" parentName: RightIndexIntermediate position: {x: -0.000000076293944, y: 0, z: -0.000000076293944} - rotation: {x: -0.00000047683716, y: 0.00000047683704, z: -0.00000016768959, - w: 1} + rotation: {x: -0.00000047683716, y: 0.00000047683704, z: -0.00000016768959, w: 1} scale: {x: 1, y: 1, z: 1} - name: RightIndexProximal parentName: Bip001 R Finger1 @@ -1978,8 +1919,7 @@ ModelImporter: - name: "MiddleIntermediate_R_\uD558\uC580\uC81C\uBCF5" parentName: RightMiddleIntermediate position: {x: -0.000000038146972, y: -0.00000015258789, z: 0} - rotation: {x: -0.00000071525585, y: 0.00000071525574, z: -0.000000073963946, - w: 1} + rotation: {x: -0.00000071525585, y: 0.00000071525574, z: -0.000000073963946, w: 1} scale: {x: 1, y: 1, z: 1} - name: RightMiddleProximal parentName: Bip001 R Finger2 @@ -2129,8 +2069,7 @@ ModelImporter: - name: "LowerArm_twist_R_\uD558\uC580\uC81C\uBCF5" parentName: "LowerArm_R_\uD558\uC580\uC81C\uBCF5" position: {x: 0.18318504, y: -0.00012519836, z: 0.0078103947} - rotation: {x: 0.00000016389947, y: -0.0000000031099965, z: -0.00000012170011, - w: 1} + rotation: {x: 0.00000016389947, y: -0.0000000031099965, z: -0.00000012170011, w: 1} scale: {x: 1, y: 1, z: 1} - name: LowerArm_twist_R parentName: RightLowerArm @@ -2240,8 +2179,7 @@ ModelImporter: - name: "Breast_L_\uD558\uC580\uC81C\uBCF5" parentName: "Chest_\uD558\uC580\uC81C\uBCF5" position: {x: -0.03346264, y: 0.069412, z: -0.0038245986} - rotation: {x: 0.000000044587075, y: 0.000000030563104, z: -0.000000030347678, - w: 1} + rotation: {x: 0.000000044587075, y: 0.000000030563104, z: -0.000000030347678, w: 1} scale: {x: 1, y: 1, z: 1} - name: "Breast_L.001_\uD558\uC580\uC81C\uBCF5" parentName: "Breast_L_\uD558\uC580\uC81C\uBCF5" @@ -2256,8 +2194,7 @@ ModelImporter: - name: "Breast_R_\uD558\uC580\uC81C\uBCF5" parentName: "Chest_\uD558\uC580\uC81C\uBCF5" position: {x: 0.03346263, y: 0.069412075, z: -0.0038245772} - rotation: {x: 0.000000044587075, y: 0.000000030563104, z: -0.000000030347678, - w: 1} + rotation: {x: 0.000000044587075, y: 0.000000030563104, z: -0.000000030347678, w: 1} scale: {x: 1, y: 1, z: 1} - name: "Breast_R.001_\uD558\uC580\uC81C\uBCF5" parentName: "Breast_R_\uD558\uC580\uC81C\uBCF5" @@ -2802,6 +2739,7 @@ ModelImporter: humanoidOversampling: 1 avatarSetup: 1 addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 0 remapMaterialsIfMaterialImportModeIsNone: 0 additionalBone: 0 userData: diff --git a/Assets/ResourcesData/Character/@035_공태연/Avatar/공태연_260513_화이트제복/공태연_260513_화이트제복_Biped.fbx.meta b/Assets/ResourcesData/Character/@035_공태연/Avatar/공태연_260513_화이트제복/공태연_260513_화이트제복_Biped.fbx.meta index e31a993e6..a771e16ab 100644 --- a/Assets/ResourcesData/Character/@035_공태연/Avatar/공태연_260513_화이트제복/공태연_260513_화이트제복_Biped.fbx.meta +++ b/Assets/ResourcesData/Character/@035_공태연/Avatar/공태연_260513_화이트제복/공태연_260513_화이트제복_Biped.fbx.meta @@ -3,7 +3,7 @@ guid: 0603d5a404494434cbb1a5fa57996747 labels: - NiloToonBakeSmoothNormalTSIntoUV8 ModelImporter: - serializedVersion: 21300 + serializedVersion: 24200 internalIDToNameTable: [] externalObjects: - first: @@ -68,8 +68,6 @@ ModelImporter: optimizeGameObjects: 0 removeConstantScaleCurves: 1 motionNodeName: - rigImportErrors: - rigImportWarnings: animationImportErrors: animationImportWarnings: animationRetargetingWarnings: @@ -92,6 +90,7 @@ ModelImporter: addColliders: 0 useSRGBMaterialColor: 1 sortHierarchyByName: 1 + importPhysicalCameras: 1 importVisibility: 1 importBlendShapes: 1 importCameras: 1 @@ -109,6 +108,9 @@ ModelImporter: maxBonesPerVertex: 4 minBoneWeight: 0.001 optimizeBones: 1 + generateMeshLods: 0 + meshLodGenerationFlags: 0 + maximumMeshLod: -1 meshOptimizationFlags: -1 indexFormat: 0 secondaryUVAngleDistortion: 8 @@ -119,6 +121,7 @@ ModelImporter: secondaryUVMinObjectScale: 1 secondaryUVPackMargin: 4 useFileScale: 1 + strictVertexDataChecks: 0 tangentSpace: normalSmoothAngle: 60 normalImportMode: 0 @@ -300,30 +303,6 @@ ModelImporter: value: {x: 0, y: 0, z: 0} length: 0 modified: 0 - - boneName: Bip001 L Finger0 - humanName: Left Thumb Proximal - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Bip001 L Finger01 - humanName: Left Thumb Intermediate - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Bip001 L Finger02 - humanName: Left Thumb Distal - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - boneName: Bip001 L Finger1 humanName: Left Index Proximal limit: @@ -420,30 +399,6 @@ ModelImporter: value: {x: 0, y: 0, z: 0} length: 0 modified: 0 - - boneName: Bip001 R Finger0 - humanName: Right Thumb Proximal - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Bip001 R Finger01 - humanName: Right Thumb Intermediate - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Bip001 R Finger02 - humanName: Right Thumb Distal - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - boneName: Bip001 R Finger1 humanName: Right Index Proximal limit: @@ -929,7 +884,7 @@ ModelImporter: - name: Bip001 L Finger0 parentName: Bip001 L Hand position: {x: -0.016265621, y: 0.00864057, z: -0.0108873965} - rotation: {x: 0.6410494, y: -0.29347494, z: 0.23532903, w: 0.6689905} + rotation: {x: 0.6823919, y: -0.23805062, z: 0.11910193, w: 0.68079954} scale: {x: 0.9999999, y: 0.99999976, z: 0.99999976} - name: Bip001 L Finger01 parentName: Bip001 L Finger0 @@ -939,7 +894,7 @@ ModelImporter: - name: Bip001 L Finger02 parentName: Bip001 L Finger01 position: {x: -0.01807434, y: -0.008923941, z: -0.0014009019} - rotation: {x: 0.44678405, y: -0.88902724, z: -0.10007322, w: 0.00000005960463} + rotation: {x: 0, y: 0, z: 0.000000018335403, w: 1} scale: {x: 0.9999999, y: 1, z: 1.0000001} - name: LeftThumbDistal parentName: Bip001 L Finger02 @@ -1734,7 +1689,7 @@ ModelImporter: - name: Bip001 R Finger0 parentName: Bip001 R Hand position: {x: -0.01626553, y: 0.008640668, z: 0.010887412} - rotation: {x: -0.6410509, y: 0.29347503, z: 0.23532663, w: 0.66899} + rotation: {x: -0.6823917, y: 0.23804893, z: 0.11910342, w: 0.6808} scale: {x: 0.9999999, y: 0.99999976, z: 1} - name: Bip001 R Finger01 parentName: Bip001 R Finger0 @@ -1744,7 +1699,7 @@ ModelImporter: - name: Bip001 R Finger02 parentName: Bip001 R Finger01 position: {x: -0.018074539, y: -0.00892417, z: 0.0014009936} - rotation: {x: 0.44663087, y: -0.88917565, z: 0.09943632, w: 0.000000007450577} + rotation: {x: -9.313223e-10, y: -4.1448995e-25, z: -0.000000014057145, w: 1} scale: {x: 0.99999976, y: 0.99999976, z: 1.0000002} - name: RightThumbDistal parentName: Bip001 R Finger02 @@ -2429,6 +2384,7 @@ ModelImporter: humanoidOversampling: 1 avatarSetup: 1 addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 0 remapMaterialsIfMaterialImportModeIsNone: 0 additionalBone: 0 userData: diff --git a/Assets/ResourcesData/Character/@035_공태연/Avatar/공태연_260513_화이트제복/공태연_260513_화이트제복_Biped.prefab b/Assets/ResourcesData/Character/@035_공태연/Avatar/공태연_260513_화이트제복/공태연_260513_화이트제복_Biped.prefab index 2ed790910..ac9f67594 100644 --- a/Assets/ResourcesData/Character/@035_공태연/Avatar/공태연_260513_화이트제복/공태연_260513_화이트제복_Biped.prefab +++ b/Assets/ResourcesData/Character/@035_공태연/Avatar/공태연_260513_화이트제복/공태연_260513_화이트제복_Biped.prefab @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:84c27dddf91211d245d158444a059dd4e80c0bb8b9452551aa6537bbbde809ee -size 207087 +oid sha256:39f5c61c02c79c946245983f9bbc018cdc6b52cb30d212bc860d9807b80770fa +size 213016 diff --git a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/0.Metal_G_Copy.mat b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/0.Metal_G_Copy.mat index 8bc4a2f3e..a4acc1b94 100644 --- a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/0.Metal_G_Copy.mat +++ b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/0.Metal_G_Copy.mat @@ -9,6 +9,8 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: 0.Metal_G_Copy m_Shader: {fileID: 4800000, guid: b4f674f383806e5419ee221e39445de0, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _DEPTHTEX_RIMLIGHT_FIX_DOTTED_LINE_ARTIFACTS - _MATCAP_BLEND @@ -22,6 +24,7 @@ Material: VRCFallback: UnlitDoubleSided disabledShaderPasses: - NiloToonOutline + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -658,7 +661,7 @@ Material: - _BaseMapStackingLayer10TexUVRotateSpeed: 0 - _BaseMapStackingLayer10TexUVRotatedAngle: 0 - _BaseMapStackingLayer1ApplytoFaces: 0 - - _BaseMapStackingLayer1ColorBlendMode: 1 + - _BaseMapStackingLayer1ColorBlendMode: 0 - _BaseMapStackingLayer1Enable: 0 - _BaseMapStackingLayer1MaskInvertColor: 0 - _BaseMapStackingLayer1MaskRemapEnd: 1 @@ -1842,3 +1845,4 @@ Material: - _egc6: {r: 1, g: 1, b: 1, a: 0} - _egc7: {r: 1, g: 1, b: 1, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/2.Face_effect_Copy.mat b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/2.Face_effect_Copy.mat index 2a134064d..647d2684f 100644 --- a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/2.Face_effect_Copy.mat +++ b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/2.Face_effect_Copy.mat @@ -9,6 +9,8 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: 2.Face_effect_Copy m_Shader: {fileID: 4800000, guid: b4f674f383806e5419ee221e39445de0, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _ALPHAOVERRIDEMAP - _DEPTHTEX_RIMLIGHT_FIX_DOTTED_LINE_ARTIFACTS @@ -23,6 +25,7 @@ Material: m_CustomRenderQueue: 2461 stringTagMap: {} disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -643,7 +646,7 @@ Material: - _BaseMapStackingLayer10TexUVRotateSpeed: 0 - _BaseMapStackingLayer10TexUVRotatedAngle: 0 - _BaseMapStackingLayer1ApplytoFaces: 0 - - _BaseMapStackingLayer1ColorBlendMode: 1 + - _BaseMapStackingLayer1ColorBlendMode: 0 - _BaseMapStackingLayer1Enable: 0 - _BaseMapStackingLayer1MaskInvertColor: 0 - _BaseMapStackingLayer1MaskRemapEnd: 1 @@ -1852,3 +1855,4 @@ Material: - _egc6: {r: 1, g: 1, b: 1, a: 0} - _egc7: {r: 1, g: 1, b: 1, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/Body 2_Copy.mat b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/Body 2_Copy.mat index 269419bf3..7fb92e76a 100644 --- a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/Body 2_Copy.mat +++ b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/Body 2_Copy.mat @@ -9,6 +9,8 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: Body 2_Copy m_Shader: {fileID: 4800000, guid: b4f674f383806e5419ee221e39445de0, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _DEPTHTEX_RIMLIGHT_FIX_DOTTED_LINE_ARTIFACTS - _RECEIVE_URP_SHADOW @@ -19,6 +21,7 @@ Material: m_CustomRenderQueue: 2000 stringTagMap: {} disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -639,7 +642,7 @@ Material: - _BaseMapStackingLayer10TexUVRotateSpeed: 0 - _BaseMapStackingLayer10TexUVRotatedAngle: 0 - _BaseMapStackingLayer1ApplytoFaces: 0 - - _BaseMapStackingLayer1ColorBlendMode: 1 + - _BaseMapStackingLayer1ColorBlendMode: 0 - _BaseMapStackingLayer1Enable: 0 - _BaseMapStackingLayer1MaskInvertColor: 0 - _BaseMapStackingLayer1MaskRemapEnd: 1 @@ -1818,3 +1821,4 @@ Material: - _egc6: {r: 1, g: 1, b: 1, a: 0} - _egc7: {r: 1, g: 1, b: 1, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/Sky Blue_Copy.mat b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/Sky Blue_Copy.mat index 9425f2345..ae2820f6f 100644 --- a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/Sky Blue_Copy.mat +++ b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/Sky Blue_Copy.mat @@ -650,7 +650,7 @@ Material: - _BaseMapStackingLayer10TexUVRotateSpeed: 0 - _BaseMapStackingLayer10TexUVRotatedAngle: 0 - _BaseMapStackingLayer1ApplytoFaces: 0 - - _BaseMapStackingLayer1ColorBlendMode: 1 + - _BaseMapStackingLayer1ColorBlendMode: 0 - _BaseMapStackingLayer1Enable: 0 - _BaseMapStackingLayer1MaskInvertColor: 0 - _BaseMapStackingLayer1MaskRemapEnd: 1 diff --git a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/White_Boots_Copy.mat b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/White_Boots_Copy.mat index ccf2b3e12..a1ee9d184 100644 --- a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/White_Boots_Copy.mat +++ b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/White_Boots_Copy.mat @@ -9,8 +9,11 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: White_Boots_Copy m_Shader: {fileID: 4800000, guid: b4f674f383806e5419ee221e39445de0, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _DEPTHTEX_RIMLIGHT_FIX_DOTTED_LINE_ARTIFACTS + - _MATCAP_BLEND - _NORMALMAP - _RECEIVE_URP_SHADOW m_InvalidKeywords: [] @@ -21,6 +24,7 @@ Material: stringTagMap: VRCFallback: UnlitDoubleSided disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -345,7 +349,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MatCapAdditiveMap: - m_Texture: {fileID: 0} + m_Texture: {fileID: 2800000, guid: 00b238d22d752a447959e200998bd4f7, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MatCapAdditiveMaskMap: @@ -353,7 +357,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MatCapAlphaBlendMap: - m_Texture: {fileID: 0} + m_Texture: {fileID: 2800000, guid: 81e8734974f95b249a104d2e3b18aad9, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MatCapAlphaBlendMaskMap: @@ -657,7 +661,7 @@ Material: - _BaseMapStackingLayer10TexUVRotateSpeed: 0 - _BaseMapStackingLayer10TexUVRotatedAngle: 0 - _BaseMapStackingLayer1ApplytoFaces: 0 - - _BaseMapStackingLayer1ColorBlendMode: 1 + - _BaseMapStackingLayer1ColorBlendMode: 0 - _BaseMapStackingLayer1Enable: 0 - _BaseMapStackingLayer1MaskInvertColor: 0 - _BaseMapStackingLayer1MaskRemapEnd: 1 @@ -837,7 +841,7 @@ Material: - _BumpScale: 1 - _CelShadeMidPoint: 0 - _CelShadeMidPointForFaceArea: -0.3 - - _CelShadeSoftness: 0.121 + - _CelShadeSoftness: 0.05 - _CelShadeSoftnessForFaceArea: 0.15 - _CharacterAreaColorFillEnabled: 0 - _CharacterAreaColorFillRendersBlockedArea: 0 @@ -866,11 +870,11 @@ Material: - _DepthTexRimLight3DFallbackRemoveFlatPolygonRimLight: 1 - _DepthTexRimLight3DFallbackSoftness: 0.02 - _DepthTexRimLight3DRimMaskEnable: 0 - - _DepthTexRimLight3DRimMaskThreshold: 0.5 + - _DepthTexRimLight3DRimMaskThreshold: 0.075 - _DepthTexRimLightAndShadowReduceWidthWhenCameraIsClose: 1 - _DepthTexRimLightAndShadowSafeViewDistance: 1 - _DepthTexRimLightAndShadowWidthExtraMultiplier: 1 - - _DepthTexRimLightAndShadowWidthMultiplier: 0.5 + - _DepthTexRimLightAndShadowWidthMultiplier: 0.6 - _DepthTexRimLightBlockByShadow: 0 - _DepthTexRimLightFadeoutRange: 1 - _DepthTexRimLightFixDottedLineArtifactsExtendMultiplier: 0.1 @@ -1519,7 +1523,7 @@ Material: - _UseMatCap: 1 - _UseMatCap2nd: 0 - _UseMatCapAdditive: 0 - - _UseMatCapAlphaBlend: 0 + - _UseMatCapAlphaBlend: 1 - _UseMatCapOcclusion: 0 - _UseNiloGlitter: 0 - _UseNiloToonSelfShadowIntensityMultiplierTex: 0 @@ -1745,7 +1749,7 @@ Material: - _OutlineReplaceColor: {r: 1, g: 1, b: 1, a: 1} - _OutlineTexHSVG: {r: 0, g: 1, b: 1, a: 1} - _OutlineTex_ScrollRotate: {r: 0, g: 0, b: 0, a: 0} - - _OutlineTintColor: {r: 0.254717, g: 0.254717, b: 0.254717, a: 1} + - _OutlineTintColor: {r: 0.03773582, g: 0.03773582, b: 0.03773582, a: 1} - _OutlineTintColorSkinAreaOverride: {r: 0.4, g: 0.2, b: 0.2, a: 1} - _OutlineWidthMaskFromVertexColor: {r: 0, g: 1, b: 0, a: 0} - _OutlineWidthTexChannelMask: {r: 0, g: 1, b: 0, a: 0} @@ -1778,7 +1782,7 @@ Material: - _ScreenSpaceOutlineOcclusionAreaTintColor: {r: 1, g: 1, b: 1, a: 1} - _ScreenSpaceOutlineReplaceColor: {r: 1, g: 1, b: 1, a: 1} - _ScreenSpaceOutlineTintColor: {r: 0.1, g: 0.1, b: 0.1, a: 1} - - _SelfShadowTintColor: {r: 0.9433962, g: 0.9433962, b: 0.9433962, a: 1} + - _SelfShadowTintColor: {r: 1, g: 1, b: 1, a: 1} - _ShadingGradeMapChannelMask: {r: 0, g: 1, b: 0, a: 0} - _Shadow2ndColor: {r: 0.78711283, g: 0.79907835, b: 0.8301887, a: 1} - _Shadow3rdColor: {r: 0, g: 0, b: 0, a: 0} @@ -1841,3 +1845,4 @@ Material: - _egc6: {r: 1, g: 1, b: 1, a: 0} - _egc7: {r: 1, g: 1, b: 1, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/White_Copy.mat b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/White_Copy.mat index 3f085496d..3b646835b 100644 --- a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/White_Copy.mat +++ b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/White_Copy.mat @@ -9,7 +9,10 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: White_Copy m_Shader: {fileID: 4800000, guid: b4f674f383806e5419ee221e39445de0, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: + - _BASEMAP_STACKING_LAYER2 - _DEPTHTEX_RIMLIGHT_FIX_DOTTED_LINE_ARTIFACTS - _MATCAP_BLEND - _NORMALMAP @@ -22,6 +25,7 @@ Material: stringTagMap: VRCFallback: UnlitDoubleSided disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -642,7 +646,7 @@ Material: - _BaseMapStackingLayer10TexUVRotateSpeed: 0 - _BaseMapStackingLayer10TexUVRotatedAngle: 0 - _BaseMapStackingLayer1ApplytoFaces: 0 - - _BaseMapStackingLayer1ColorBlendMode: 1 + - _BaseMapStackingLayer1ColorBlendMode: 0 - _BaseMapStackingLayer1Enable: 0 - _BaseMapStackingLayer1MaskInvertColor: 0 - _BaseMapStackingLayer1MaskRemapEnd: 1 @@ -657,8 +661,8 @@ Material: - _BaseMapStackingLayer1TexUVRotateSpeed: 0 - _BaseMapStackingLayer1TexUVRotatedAngle: 0 - _BaseMapStackingLayer2ApplytoFaces: 0 - - _BaseMapStackingLayer2ColorBlendMode: 1 - - _BaseMapStackingLayer2Enable: 0 + - _BaseMapStackingLayer2ColorBlendMode: 4 + - _BaseMapStackingLayer2Enable: 1 - _BaseMapStackingLayer2MaskInvertColor: 0 - _BaseMapStackingLayer2MaskRemapEnd: 1 - _BaseMapStackingLayer2MaskRemapMinMaxSlider: 1 @@ -666,9 +670,9 @@ Material: - _BaseMapStackingLayer2MaskTexAsIDMap: 0 - _BaseMapStackingLayer2MaskTexExtractFromID: 255 - _BaseMapStackingLayer2MaskUVIndex: 0 - - _BaseMapStackingLayer2MasterStrength: 1 + - _BaseMapStackingLayer2MasterStrength: 0.2 - _BaseMapStackingLayer2TexIgnoreAlpha: 0 - - _BaseMapStackingLayer2TexUVIndex: 0 + - _BaseMapStackingLayer2TexUVIndex: 4 - _BaseMapStackingLayer2TexUVRotateSpeed: 0 - _BaseMapStackingLayer2TexUVRotatedAngle: 0 - _BaseMapStackingLayer3ApplytoFaces: 0 @@ -1810,3 +1814,4 @@ Material: - _egc6: {r: 1, g: 1, b: 1, a: 0} - _egc7: {r: 1, g: 1, b: 1, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/_Halo_Copy.mat b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/_Halo_Copy.mat index cf8407896..55c0bc067 100644 --- a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/_Halo_Copy.mat +++ b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/_Halo_Copy.mat @@ -9,6 +9,8 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: _Halo_Copy m_Shader: {fileID: 4800000, guid: b4f674f383806e5419ee221e39445de0, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _ALPHAOVERRIDEMAP - _DEPTHTEX_RIMLIGHT_FIX_DOTTED_LINE_ARTIFACTS @@ -21,6 +23,7 @@ Material: m_CustomRenderQueue: 2450 stringTagMap: {} disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -661,7 +664,7 @@ Material: - _BaseMapStackingLayer10TexUVRotateSpeed: 0 - _BaseMapStackingLayer10TexUVRotatedAngle: 0 - _BaseMapStackingLayer1ApplytoFaces: 0 - - _BaseMapStackingLayer1ColorBlendMode: 1 + - _BaseMapStackingLayer1ColorBlendMode: 0 - _BaseMapStackingLayer1Enable: 0 - _BaseMapStackingLayer1MaskInvertColor: 0 - _BaseMapStackingLayer1MaskRemapEnd: 1 @@ -1881,3 +1884,4 @@ Material: - _egc6: {r: 1, g: 1, b: 1, a: 0} - _egc7: {r: 1, g: 1, b: 1, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/_Ribbon Pin_Copy.mat b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/_Ribbon Pin_Copy.mat index 13a020d75..93bbeb0f3 100644 --- a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/_Ribbon Pin_Copy.mat +++ b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/_Ribbon Pin_Copy.mat @@ -9,6 +9,8 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: _Ribbon Pin_Copy m_Shader: {fileID: 4800000, guid: b4f674f383806e5419ee221e39445de0, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _ALPHAOVERRIDEMAP - _DEPTHTEX_RIMLIGHT_FIX_DOTTED_LINE_ARTIFACTS @@ -22,6 +24,7 @@ Material: stringTagMap: VRCFallback: Unlit disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -646,7 +649,7 @@ Material: - _BaseMapStackingLayer10TexUVRotateSpeed: 0 - _BaseMapStackingLayer10TexUVRotatedAngle: 0 - _BaseMapStackingLayer1ApplytoFaces: 0 - - _BaseMapStackingLayer1ColorBlendMode: 1 + - _BaseMapStackingLayer1ColorBlendMode: 0 - _BaseMapStackingLayer1Enable: 0 - _BaseMapStackingLayer1MaskInvertColor: 0 - _BaseMapStackingLayer1MaskRemapEnd: 1 @@ -1850,3 +1853,4 @@ Material: - _egc6: {r: 1, g: 1, b: 1, a: 0} - _egc7: {r: 1, g: 1, b: 1, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/_Silver Pin_Copy.mat b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/_Silver Pin_Copy.mat index 02e2475ce..666d6e329 100644 --- a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/_Silver Pin_Copy.mat +++ b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/_Silver Pin_Copy.mat @@ -9,6 +9,8 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: _Silver Pin_Copy m_Shader: {fileID: 4800000, guid: b4f674f383806e5419ee221e39445de0, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _ALPHAOVERRIDEMAP - _DEPTHTEX_RIMLIGHT_FIX_DOTTED_LINE_ARTIFACTS @@ -23,6 +25,7 @@ Material: stringTagMap: {} disabledShaderPasses: - NiloToonOutline + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -663,7 +666,7 @@ Material: - _BaseMapStackingLayer10TexUVRotateSpeed: 0 - _BaseMapStackingLayer10TexUVRotatedAngle: 0 - _BaseMapStackingLayer1ApplytoFaces: 0 - - _BaseMapStackingLayer1ColorBlendMode: 1 + - _BaseMapStackingLayer1ColorBlendMode: 0 - _BaseMapStackingLayer1Enable: 0 - _BaseMapStackingLayer1MaskInvertColor: 0 - _BaseMapStackingLayer1MaskRemapEnd: 1 @@ -1883,3 +1886,4 @@ Material: - _egc6: {r: 1, g: 1, b: 1, a: 0} - _egc7: {r: 1, g: 1, b: 1, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/히령_Face_Copy.mat b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/히령_Face_Copy.mat index 2db0ceffb..80b11fbde 100644 --- a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/히령_Face_Copy.mat +++ b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/Materials/히령_Face_Copy.mat @@ -9,6 +9,8 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: "\uD788\uB839_Face_Copy" m_Shader: {fileID: 4800000, guid: b4f674f383806e5419ee221e39445de0, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _DEPTHTEX_RIMLIGHT_FIX_DOTTED_LINE_ARTIFACTS - _EMISSION @@ -23,6 +25,7 @@ Material: m_CustomRenderQueue: 2449 stringTagMap: {} disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -1177,3 +1180,4 @@ Material: - _UV3ScrollSpeed: {r: 0, g: 0, b: 0, a: 0} - _ZOffsetMaskMapChannelMask: {r: 0, g: 1, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/슈니_260513_화이트제복_Biped.fbx.meta b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/슈니_260513_화이트제복_Biped.fbx.meta index 39de3d78f..49c7f8c21 100644 --- a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/슈니_260513_화이트제복_Biped.fbx.meta +++ b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/슈니_260513_화이트제복_Biped.fbx.meta @@ -3,7 +3,7 @@ guid: 34b7e6a787374da44bf5819ad6036fe1 labels: - NiloToonBakeSmoothNormalTSIntoUV8 ModelImporter: - serializedVersion: 21300 + serializedVersion: 24200 internalIDToNameTable: [] externalObjects: - first: @@ -73,8 +73,6 @@ ModelImporter: optimizeGameObjects: 0 removeConstantScaleCurves: 1 motionNodeName: - rigImportErrors: - rigImportWarnings: animationImportErrors: animationImportWarnings: animationRetargetingWarnings: @@ -97,6 +95,7 @@ ModelImporter: addColliders: 0 useSRGBMaterialColor: 1 sortHierarchyByName: 1 + importPhysicalCameras: 1 importVisibility: 1 importBlendShapes: 1 importCameras: 1 @@ -114,6 +113,9 @@ ModelImporter: maxBonesPerVertex: 4 minBoneWeight: 0.001 optimizeBones: 1 + generateMeshLods: 0 + meshLodGenerationFlags: 0 + maximumMeshLod: -1 meshOptimizationFlags: -1 indexFormat: 0 secondaryUVAngleDistortion: 8 @@ -124,6 +126,7 @@ ModelImporter: secondaryUVMinObjectScale: 1 secondaryUVPackMargin: 4 useFileScale: 1 + strictVertexDataChecks: 0 tangentSpace: normalSmoothAngle: 60 normalImportMode: 0 @@ -305,30 +308,6 @@ ModelImporter: value: {x: 0, y: 0, z: 0} length: 0 modified: 0 - - boneName: Bip001 L Finger0 - humanName: Left Thumb Proximal - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Bip001 L Finger01 - humanName: Left Thumb Intermediate - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Bip001 L Finger02 - humanName: Left Thumb Distal - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - boneName: Bip001 L Finger1 humanName: Left Index Proximal limit: @@ -425,30 +404,6 @@ ModelImporter: value: {x: 0, y: 0, z: 0} length: 0 modified: 0 - - boneName: Bip001 R Finger0 - humanName: Right Thumb Proximal - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Bip001 R Finger01 - humanName: Right Thumb Intermediate - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Bip001 R Finger02 - humanName: Right Thumb Distal - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - boneName: Bip001 R Finger1 humanName: Right Index Proximal limit: @@ -1154,7 +1109,7 @@ ModelImporter: - name: Bip001 L Finger02 parentName: Bip001 L Finger01 position: {x: -0.015497357, y: -0.0033031388, z: -0.00013909233} - rotation: {x: 0.0046196966, y: 0.011030021, z: -0.7769081, w: 0.6295005} + rotation: {x: 0, y: 0, z: -0.0000000028412601, w: 1} scale: {x: 1, y: 1, z: 1.0000001} - name: LeftThumbDistal parentName: Bip001 L Finger02 @@ -1184,7 +1139,7 @@ ModelImporter: - name: Bip001 L Finger12 parentName: Bip001 L Finger11 position: {x: -0.015963897, y: 0.00027361893, z: -0.00030530873} - rotation: {x: 0.013121123, y: 0.7684197, z: 0.0027719853, w: 0.63980573} + rotation: {x: 0, y: 0, z: 1.0842009e-19, w: 1} scale: {x: 1, y: 1, z: 1} - name: LeftIndexDistal parentName: Bip001 L Finger12 @@ -1214,7 +1169,7 @@ ModelImporter: - name: Bip001 L Finger22 parentName: Bip001 L Finger21 position: {x: -0.017651757, y: 0.0000028352922, z: -0.00024614777} - rotation: {x: 0.00011600167, y: 0.7352607, z: 0.00038105698, w: 0.67778426} + rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 0.9999999} - name: LeftMiddleDistal parentName: Bip001 L Finger22 @@ -1244,7 +1199,7 @@ ModelImporter: - name: Bip001 L Finger32 parentName: Bip001 L Finger31 position: {x: -0.017104737, y: 0.00013271581, z: 0.00027526956} - rotation: {x: 0.005466165, y: 0.70614916, z: -0.0009849312, w: 0.70804137} + rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: LeftRingDistal parentName: Bip001 L Finger32 @@ -1274,7 +1229,7 @@ ModelImporter: - name: Bip001 L Finger42 parentName: Bip001 L Finger41 position: {x: -0.012314505, y: 0.00020215052, z: 0.0003790719} - rotation: {x: 0.011848585, y: 0.7279694, z: -0.0029829051, w: 0.6855007} + rotation: {x: 0, y: 0, z: 5.4210096e-20, w: 1} scale: {x: 1, y: 1, z: 1} - name: LeftLittleDistal parentName: Bip001 L Finger42 @@ -3549,7 +3504,7 @@ ModelImporter: - name: Bip001 R Finger02 parentName: Bip001 R Finger01 position: {x: -0.015496974, y: -0.0033033846, z: 0.00014100487} - rotation: {x: -0.004858545, y: -0.010352027, z: -0.77610344, w: 0.630502} + rotation: {x: -0.00000012782401, y: 0.00000007823109, z: -0.00000007028574, w: 1} scale: {x: 1, y: 1.0000001, z: 0.99999976} - name: RightThumbDistal parentName: Bip001 R Finger02 @@ -3579,7 +3534,7 @@ ModelImporter: - name: Bip001 R Finger12 parentName: Bip001 R Finger11 position: {x: -0.015964579, y: 0.0002734029, z: 0.00030515052} - rotation: {x: -0.013070963, y: -0.7682786, z: 0.004489122, w: 0.63996637} + rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1.0000001, z: 1} - name: RightIndexDistal parentName: Bip001 R Finger12 @@ -3609,7 +3564,7 @@ ModelImporter: - name: Bip001 R Finger22 parentName: Bip001 R Finger21 position: {x: -0.017652212, y: 0.0000037228092, z: 0.00024615522} - rotation: {x: -0.00015213764, y: -0.73532003, z: 0.00039485426, w: 0.67772007} + rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: RightMiddleDistal parentName: Bip001 R Finger22 @@ -3639,7 +3594,7 @@ ModelImporter: - name: Bip001 R Finger32 parentName: Bip001 R Finger31 position: {x: -0.017104624, y: 0.00013277851, z: -0.00027547355} - rotation: {x: -0.005485283, y: -0.7064342, z: -0.00018515853, w: 0.70775753} + rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1.0000001, z: 1} - name: RightRingDistal parentName: Bip001 R Finger32 @@ -3669,7 +3624,7 @@ ModelImporter: - name: Bip001 R Finger42 parentName: Bip001 R Finger41 position: {x: -0.012314654, y: 0.00020226823, z: -0.0003788877} - rotation: {x: -0.011842378, y: -0.7271125, z: -0.0031243283, w: 0.6864091} + rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: RightLittleDistal parentName: Bip001 R Finger42 @@ -4874,6 +4829,7 @@ ModelImporter: humanoidOversampling: 1 avatarSetup: 1 addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 0 remapMaterialsIfMaterialImportModeIsNone: 0 additionalBone: 0 userData: diff --git a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/슈니_260513_화이트제복_Biped.prefab b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/슈니_260513_화이트제복_Biped.prefab index 1988017ed..41d87d0ed 100644 --- a/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/슈니_260513_화이트제복_Biped.prefab +++ b/Assets/ResourcesData/Character/@050_슈니/Avatar/슈니_260513_화이트제복/슈니_260513_화이트제복_Biped.prefab @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fa14ef0c70c5fa8a6bbb3d14996ccde2047cc16b7fe36dd5868a368ee315616a -size 171348 +oid sha256:9355db73d2e4a4c08cbb8c9b5a8ba51920799635b9a3b9a001e13a5a22f26710 +size 176583 diff --git a/Assets/ResourcesData/Project/260128_지한방송/260128_지한방송_Volume_기본블룸.asset b/Assets/ResourcesData/Project/260128_지한방송/260128_지한방송_Volume_기본블룸.asset index 6168cc378..f98c62601 100644 --- a/Assets/ResourcesData/Project/260128_지한방송/260128_지한방송_Volume_기본블룸.asset +++ b/Assets/ResourcesData/Project/260128_지한방송/260128_지한방송_Volume_기본블룸.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cc73dacdb784bae28d648559784ea32b2f0db51654df39c0b8b9dce65084c9a9 -size 72602 +oid sha256:809c87ab70096eaeaade82b8234cff79ece12335d9a4f21a00173ab114bc949d +size 73331 diff --git a/Assets/ResourcesData/Project/260128_지한방송/260128_지한방송_Volume_차갑게.asset b/Assets/ResourcesData/Project/260128_지한방송/260128_지한방송_Volume_차갑게.asset index 2b0bcd585..a0109cd51 100644 --- a/Assets/ResourcesData/Project/260128_지한방송/260128_지한방송_Volume_차갑게.asset +++ b/Assets/ResourcesData/Project/260128_지한방송/260128_지한방송_Volume_차갑게.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b3d6dbadf7b1eadd8ea3345bb558ef78e90679e8035c9295d88afc7563f7ca15 -size 8867 +oid sha256:695cedadeca947eb740e83731c2f71c300a85dcff3cf6071c374d82a4e67eeec +size 11279 diff --git a/Assets/Scripts/YAMO_Scripts/BlendShapeLink.meta b/Assets/ResourcesData/Project/260513_숙희님방송.meta similarity index 77% rename from Assets/Scripts/YAMO_Scripts/BlendShapeLink.meta rename to Assets/ResourcesData/Project/260513_숙희님방송.meta index fce9636c4..fedbbe04e 100644 --- a/Assets/Scripts/YAMO_Scripts/BlendShapeLink.meta +++ b/Assets/ResourcesData/Project/260513_숙희님방송.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c8bc5db0f70ae78458714af97ea06b0f +guid: 56a5467dc7e5f7d4e90b80748067d7b7 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/ResourcesData/Project/260513_숙희님방송/260513_숙희님방송.unity b/Assets/ResourcesData/Project/260513_숙희님방송/260513_숙희님방송.unity new file mode 100644 index 000000000..73d409868 --- /dev/null +++ b/Assets/ResourcesData/Project/260513_숙희님방송/260513_숙희님방송.unity @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e06f5494af00b1d0a96d283a0fc7b54d1ace10df1a8349bd01152c1592ee2b6 +size 822409 diff --git a/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Scripts.meta b/Assets/ResourcesData/Project/260513_숙희님방송/260513_숙희님방송.unity.meta similarity index 67% rename from Assets/Scripts/YAMO_Scripts/BlendShapeLink/Scripts.meta rename to Assets/ResourcesData/Project/260513_숙희님방송/260513_숙희님방송.unity.meta index d69684610..fbaf8cbac 100644 --- a/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Scripts.meta +++ b/Assets/ResourcesData/Project/260513_숙희님방송/260513_숙희님방송.unity.meta @@ -1,6 +1,5 @@ fileFormatVersion: 2 -guid: a11f56b3c9500aa44b5c30ea70686203 -folderAsset: yes +guid: 910b6485da06bce4397a062cc712cc75 DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Editor.meta b/Assets/ResourcesData/Project/260513_숙희님방송/모션.meta similarity index 77% rename from Assets/Scripts/YAMO_Scripts/BlendShapeLink/Editor.meta rename to Assets/ResourcesData/Project/260513_숙희님방송/모션.meta index edb6a5dfd..f18fa7f20 100644 --- a/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Editor.meta +++ b/Assets/ResourcesData/Project/260513_숙희님방송/모션.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1a25fbcb4f851774fa305d24542f021b +guid: 08a70818abbb86b4ba6e61ff6ed3054b folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Editor/BlendShapeLinkEditor.cs b/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Editor/BlendShapeLinkEditor.cs deleted file mode 100644 index 3971b2a44..000000000 --- a/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Editor/BlendShapeLinkEditor.cs +++ /dev/null @@ -1,257 +0,0 @@ -using System.Collections.Generic; -using UnityEditor; -using UnityEditor.IMGUI.Controls; -using UnityEngine; - -namespace YAMO.BlendShapeLink.EditorTools -{ - [CustomEditor(typeof(BlendShapeLink))] - public class BlendShapeLinkEditor : Editor - { - SerializedProperty _rules; - - string[] _blendShapeNames; // index i = 블렌드셰이프 i 의 이름 - int _blendShapeCount; - - void OnEnable() - { - _rules = serializedObject.FindProperty(nameof(BlendShapeLink.rules)); - RefreshBlendShapeNames(); - } - - void RefreshBlendShapeNames() - { - var link = (BlendShapeLink)target; - var smr = link.GetComponent(); - if (smr == null || smr.sharedMesh == null) - { - _blendShapeNames = new string[0]; - _blendShapeCount = 0; - return; - } - - var mesh = smr.sharedMesh; - _blendShapeCount = mesh.blendShapeCount; - _blendShapeNames = new string[_blendShapeCount]; - for (int i = 0; i < _blendShapeCount; i++) - _blendShapeNames[i] = mesh.GetBlendShapeName(i); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - var smr = ((BlendShapeLink)target).GetComponent(); - - if (smr == null || smr.sharedMesh == null) - { - EditorGUILayout.HelpBox("SkinnedMeshRenderer 또는 sharedMesh 가 없습니다.", MessageType.Warning); - return; - } - if (_blendShapeCount != smr.sharedMesh.blendShapeCount) - RefreshBlendShapeNames(); - - if (_blendShapeCount == 0) - { - EditorGUILayout.HelpBox("이 메쉬에는 블렌드셰이프가 없습니다.", MessageType.Warning); - return; - } - - EditorGUILayout.HelpBox("이 컴포넌트는 플레이 모드에서만 동작합니다.", MessageType.None); - - EditorGUILayout.Space(6); - EditorGUILayout.LabelField("Link Rules", EditorStyles.boldLabel); - - for (int i = 0; i < _rules.arraySize; i++) - { - var rule = _rules.GetArrayElementAtIndex(i); - var sourceIndex = rule.FindPropertyRelative(nameof(BlendShapeLink.LinkRule.sourceIndex)); - var targetIndex = rule.FindPropertyRelative(nameof(BlendShapeLink.LinkRule.targetIndex)); - var multiplier = rule.FindPropertyRelative(nameof(BlendShapeLink.LinkRule.multiplier)); - var enabledProp = rule.FindPropertyRelative(nameof(BlendShapeLink.LinkRule.enabled)); - - EditorGUILayout.BeginVertical("box"); - - EditorGUILayout.BeginHorizontal(); - enabledProp.boolValue = EditorGUILayout.ToggleLeft($"Rule {i}", enabledProp.boolValue, GUILayout.Width(80)); - GUILayout.FlexibleSpace(); - if (GUILayout.Button("▲", GUILayout.Width(24)) && i > 0) - _rules.MoveArrayElement(i, i - 1); - if (GUILayout.Button("▼", GUILayout.Width(24)) && i < _rules.arraySize - 1) - _rules.MoveArrayElement(i, i + 1); - if (GUILayout.Button("X", GUILayout.Width(24))) - { - _rules.DeleteArrayElementAtIndex(i); - EditorGUILayout.EndHorizontal(); - EditorGUILayout.EndVertical(); - break; - } - EditorGUILayout.EndHorizontal(); - - DrawBlendShapePicker("Source", i, true); - DrawBlendShapePicker("Target", i, false); - - multiplier.floatValue = EditorGUILayout.FloatField( - new GUIContent("Multiplier", "Source 값에 곱해질 배율. 1 = 그대로, 0.5 = 절반"), - multiplier.floatValue); - - var modeProp = rule.FindPropertyRelative("mode"); - if (modeProp != null) - { - EditorGUILayout.PropertyField(modeProp, - new GUIContent("Mode", - "Multiply: source 는 그대로 두고 target 에 값 기여.\n" + - "Override: target 에 값 기여 후 source 를 0 으로 리셋 (값 이전/swap).")); - } - - if (sourceIndex.intValue >= 0 && targetIndex.intValue >= 0 && - sourceIndex.intValue == targetIndex.intValue) - { - EditorGUILayout.HelpBox( - "Source 와 Target 이 같음 → 자기 자신을 Multiplier 로 감쇠합니다. " + - "애니메이션이 매 프레임 값을 새로 써주지 않으면 0 으로 수렴하니 주의.", - MessageType.Info); - } - - EditorGUILayout.EndVertical(); - EditorGUILayout.Space(2); - } - - EditorGUILayout.Space(4); - if (GUILayout.Button("+ Add Rule")) - { - _rules.arraySize++; - var newRule = _rules.GetArrayElementAtIndex(_rules.arraySize - 1); - newRule.FindPropertyRelative(nameof(BlendShapeLink.LinkRule.sourceIndex)).intValue = -1; - newRule.FindPropertyRelative(nameof(BlendShapeLink.LinkRule.targetIndex)).intValue = -1; - newRule.FindPropertyRelative(nameof(BlendShapeLink.LinkRule.multiplier)).floatValue = 1f; - newRule.FindPropertyRelative(nameof(BlendShapeLink.LinkRule.enabled)).boolValue = true; - } - - EditorGUILayout.Space(4); - EditorGUILayout.HelpBox( - "• 같은 Target 에 여러 규칙이 걸리면, (Source × Multiplier) 중 가장 큰 값이 Target 에 덮어써집니다 (Max 방식).\n" + - "• Mode = Override 인 규칙은 Source 를 0 으로 리셋합니다. 서로 독립적인 셰이프키 사이의 '값 이전' 용도.", - MessageType.Info); - - if (serializedObject.ApplyModifiedProperties()) - { - if (!Application.isPlaying) - EditorUtility.SetDirty(target); - } - } - - /// 블렌드셰이프 인덱스를 검색 가능한 드롭다운(AdvancedDropdown)으로 선택. - void DrawBlendShapePicker(string label, int ruleIndex, bool isSource) - { - var link = (BlendShapeLink)target; - var rule = link.rules[ruleIndex]; - int cur = isSource ? rule.sourceIndex : rule.targetIndex; - - string currentLabel = (cur >= 0 && cur < _blendShapeCount) - ? $"{cur}: {_blendShapeNames[cur]}" - : "(None)"; - - var rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight); - var labelRect = new Rect(rect.x, rect.y, EditorGUIUtility.labelWidth, rect.height); - var buttonRect = new Rect(labelRect.xMax, rect.y, rect.width - EditorGUIUtility.labelWidth, rect.height); - - EditorGUI.LabelField(labelRect, label); - - if (EditorGUI.DropdownButton(buttonRect, new GUIContent(currentLabel), FocusType.Keyboard)) - { - Debug.Log($"[BlendShapeLink] Dropdown opened. rule={ruleIndex}, field={(isSource ? "Source" : "Target")}, current={cur}"); - - // 콜백이 비동기로 호출되므로 SerializedProperty 대신 타겟 오브젝트와 인덱스만 캡처. - var capturedLink = link; - int capturedRuleIndex = ruleIndex; - bool capturedIsSource = isSource; - - var dropdown = new BlendShapeDropdown( - new AdvancedDropdownState(), - _blendShapeNames, - selectedIndex => - { - Debug.Log($"[BlendShapeLink] Dropdown callback: selectedIndex={selectedIndex}, ruleIndex={capturedRuleIndex}, isSource={capturedIsSource}, linkNull={capturedLink == null}"); - - if (capturedLink == null) - { - Debug.LogWarning("[BlendShapeLink] target link is null — 객체가 파괴되었거나 선택이 해제됨"); - return; - } - if (capturedRuleIndex < 0 || capturedRuleIndex >= capturedLink.rules.Count) - { - Debug.LogWarning($"[BlendShapeLink] ruleIndex {capturedRuleIndex} 범위 밖 (rules.Count={capturedLink.rules.Count})"); - return; - } - - Undo.RecordObject(capturedLink, "Change BlendShape Link"); - var r = capturedLink.rules[capturedRuleIndex]; - int before = capturedIsSource ? r.sourceIndex : r.targetIndex; - if (capturedIsSource) - r.sourceIndex = selectedIndex; - else - r.targetIndex = selectedIndex; - int after = capturedIsSource ? r.sourceIndex : r.targetIndex; - EditorUtility.SetDirty(capturedLink); - - Debug.Log($"[BlendShapeLink] Assignment done: {(capturedIsSource ? "sourceIndex" : "targetIndex")} {before} → {after}"); - - Repaint(); - }); - dropdown.Show(buttonRect); - } - } - - // ────────────────────────────────────────────── - // AdvancedDropdown: 검색창 + 스크롤이 있는 팝업 - // ────────────────────────────────────────────── - class ShapeItem : AdvancedDropdownItem - { - public int shapeIndex; - public ShapeItem(string name, int idx) : base(name) { shapeIndex = idx; } - } - - class BlendShapeDropdown : AdvancedDropdown - { - readonly string[] _names; - readonly System.Action _onSelect; - - public BlendShapeDropdown(AdvancedDropdownState state, string[] names, System.Action onSelect) - : base(state) - { - _names = names; - _onSelect = onSelect; - minimumSize = new Vector2(300f, 400f); - } - - protected override AdvancedDropdownItem BuildRoot() - { - Debug.Log($"[BlendShapeLink] BuildRoot called, names.Length={_names.Length}"); - var root = new AdvancedDropdownItem("BlendShape"); - - root.AddChild(new ShapeItem("(None)", -1)); - - for (int i = 0; i < _names.Length; i++) - root.AddChild(new ShapeItem($"{i}: {_names[i]}", i)); - - Debug.Log($"[BlendShapeLink] BuildRoot done, children added"); - return root; - } - - protected override void ItemSelected(AdvancedDropdownItem item) - { - Debug.Log($"[BlendShapeLink] ItemSelected called. item={item?.name}, isShapeItem={item is ShapeItem}"); - if (item is ShapeItem si) - { - Debug.Log($"[BlendShapeLink] → invoking callback with shapeIndex={si.shapeIndex}"); - _onSelect?.Invoke(si.shapeIndex); - } - else - { - Debug.LogWarning($"[BlendShapeLink] ItemSelected but item is not ShapeItem: {item?.GetType().Name}"); - } - } - } - } -} diff --git a/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Editor/BlendShapeLinkEditor.cs.meta b/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Editor/BlendShapeLinkEditor.cs.meta deleted file mode 100644 index 2e90acb2c..000000000 --- a/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Editor/BlendShapeLinkEditor.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 14ad9710d1e90eb47b57864943c5e455 \ No newline at end of file diff --git a/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Scripts/BlendShapeLink.cs b/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Scripts/BlendShapeLink.cs deleted file mode 100644 index 64d0e5861..000000000 --- a/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Scripts/BlendShapeLink.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace YAMO.BlendShapeLink -{ - /// - /// 특정 블렌드셰이프 값에 반응해서 다른 블렌드셰이프 값을 실시간으로 연동시킨다. - /// 여러 규칙이 같은 타겟에 걸려 있을 경우, (source * multiplier) 중 Max 값을 타겟에 덮어쓴다. - /// 플레이 모드에서만 동작한다. - /// - [RequireComponent(typeof(SkinnedMeshRenderer))] - [AddComponentMenu("YAMO/BlendShape Link")] - public class BlendShapeLink : MonoBehaviour - { - public enum LinkMode - { - /// target 에 (source × multiplier) 를 기여. source 는 그대로 둔다. - Multiply = 0, - /// target 에 (source × multiplier) 를 기여하고, source 는 0 으로 리셋. - /// 서로 독립적인 블렌드셰이프(EyeBlink ↔ EyeBlinkSmile) 간 값 이전에 사용. - Override = 1, - } - - [System.Serializable] - public class LinkRule - { - [Tooltip("입력이 될 블렌드셰이프 인덱스")] - public int sourceIndex = -1; - - [Tooltip("영향을 받을(덮어쓸) 블렌드셰이프 인덱스")] - public int targetIndex = -1; - - [Tooltip("source 값에 곱해질 배율. 1 이면 그대로, 0.5 면 절반만 반영")] - public float multiplier = 1f; - - [Tooltip("동작 모드. Multiply: source 유지. Override: source 를 0 으로 리셋해서 target 으로 값 이전")] - public LinkMode mode = LinkMode.Multiply; - - [Tooltip("이 규칙을 켤지 여부")] - public bool enabled = true; - } - - [Tooltip("연동 규칙 목록")] - public List rules = new List(); - - SkinnedMeshRenderer _smr; - - // 타겟 인덱스별로 max(source*multiplier)를 모을 버퍼 - readonly Dictionary _targetMaxBuffer = new Dictionary(); - - // Override 모드에서 0 으로 리셋해야 할 source 인덱스들 - readonly HashSet _overrideSources = new HashSet(); - - void Awake() - { - _smr = GetComponent(); - } - - void LateUpdate() - { - if (_smr == null || _smr.sharedMesh == null) - return; - - var mesh = _smr.sharedMesh; - int count = mesh.blendShapeCount; - if (count == 0 || rules == null || rules.Count == 0) - return; - - _targetMaxBuffer.Clear(); - _overrideSources.Clear(); - - // 1단계: 모든 규칙에서 source 값을 읽어 target 별 max 계산 - // (source 값을 먼저 전부 읽어야 Override 리셋 전의 원본 값이 보존됨) - for (int i = 0; i < rules.Count; i++) - { - var r = rules[i]; - if (r == null || !r.enabled) - continue; - if (r.sourceIndex < 0 || r.sourceIndex >= count) - continue; - if (r.targetIndex < 0 || r.targetIndex >= count) - continue; - // source == target 은 허용 — "자기 자신의 값을 multiplier 로 감쇠" 용도. - // (예: mult=0.5 → A = A × 0.5 로 수신량 절반으로 캡) - // 애니메이션이 매 프레임 원본 값을 다시 써주는 환경을 전제로 한다. - - float src = _smr.GetBlendShapeWeight(r.sourceIndex); - float v = src * r.multiplier; - - if (_targetMaxBuffer.TryGetValue(r.targetIndex, out float cur)) - { - if (v > cur) - _targetMaxBuffer[r.targetIndex] = v; - } - else - { - _targetMaxBuffer[r.targetIndex] = v; - } - - if (r.mode == LinkMode.Override) - _overrideSources.Add(r.sourceIndex); - } - - // 2단계: target 값 쓰기 - foreach (var kv in _targetMaxBuffer) - { - float clamped = Mathf.Clamp(kv.Value, 0f, 100f); - _smr.SetBlendShapeWeight(kv.Key, clamped); - } - - // 3단계: Override 모드로 사용된 source 를 0 으로 리셋 - // (단, 해당 source 가 다른 규칙의 target 이기도 하면 이미 그 값이 쓰였으므로 건너뜀) - foreach (int srcIdx in _overrideSources) - { - if (_targetMaxBuffer.ContainsKey(srcIdx)) - continue; - _smr.SetBlendShapeWeight(srcIdx, 0f); - } - } - } -} diff --git a/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Scripts/BlendShapeLink.cs.meta b/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Scripts/BlendShapeLink.cs.meta deleted file mode 100644 index 323be549a..000000000 --- a/Assets/Scripts/YAMO_Scripts/BlendShapeLink/Scripts/BlendShapeLink.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 40a80b2aa10f451409c6b4e7dd827c0d \ No newline at end of file diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition.meta deleted file mode 100644 index 97157ce63..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d055de095e477eb4083e75ec18afc37b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/CameraComposition.asmdef b/Assets/Scripts/YAMO_Scripts/Camera Composition/CameraComposition.asmdef deleted file mode 100644 index 5da521217..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/CameraComposition.asmdef +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "CameraComposition", - "rootNamespace": "", - "references": [], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -} diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/CameraComposition.asmdef.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/CameraComposition.asmdef.meta deleted file mode 100644 index 1d5a6fa85..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/CameraComposition.asmdef.meta +++ /dev/null @@ -1,14 +0,0 @@ -fileFormatVersion: 2 -guid: a2f7da84f307c3f4bbb7fed78a3a71b6 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: -AssetOrigin: - serializedVersion: 1 - productId: 202816 - packageName: Camera Composition - Grid Overlay Tool - packageVersion: 1.0.2 - assetPath: Assets/Camera Composition/Scripts/CameraComposition.asmdef - uploadId: 471102 diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/CompositionOverlay.cs b/Assets/Scripts/YAMO_Scripts/Camera Composition/CompositionOverlay.cs deleted file mode 100644 index 50a94a485..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/CompositionOverlay.cs +++ /dev/null @@ -1,81 +0,0 @@ -/* This file is part of the "Camera Composition" editor tool by Jordan Cassady. - * You are only permitted to use this software if purchased and downloaded from - * the Unity Asset Store. You shall not sell, license, transfer, distribute or - * otherwise make this software available to any third party. - */ - - // You are only permitted to use this package if purchased and downloaded - -using UnityEngine; -using UnityEngine.UI; - -namespace JordanCassady -{ - /// - /// Provide access to the composition overlay properties and methods for - /// manipulating the Image component from the editor window. - /// - [RequireComponent(typeof(Image))] - public class CompositionOverlay : MonoBehaviour - { - #region PROPERTIES - public bool IsActive { get { return GetComponent().enabled; } } - public float Opacity { get { return GetComponent().color.a; } } - #endregion - - public void Activate(bool activate) - { - GetComponent().enabled = activate; - } - - /// - /// Invert line color from white to black or vice versa. - /// - /// - /// - public bool InvertLineColor(bool invert) - { - if (invert) - { - GetComponent().color = Color.black; - } else { - GetComponent().color = Color.white; - } - return invert; - } - - /// - /// Update the grid overlay opacity by changing the Image alpha value. - /// - /// - public void UpdateOpacity(float alpha) - { - var image = GetComponent(); - GetComponent().color = new Color(image.color.r, image.color.g, image.color.b, alpha); - } - - /// - /// Update the orientation of the overlay image. - /// - /// / - public void Position(string orientation) - { - if (orientation == "Bottom Right") - { - GetComponent().transform.rotation = Quaternion.Euler(0, 0, 0); - } - else if (orientation == "Bottom Left") - { - GetComponent().transform.rotation = Quaternion.Euler(-180, 0, -180); - } - else if (orientation == "Top Right") - { - GetComponent().transform.rotation = Quaternion.Euler(-180, 0, 0); - } - else if (orientation == "Top Left") - { - GetComponent().transform.rotation = Quaternion.Euler(0, 0, -180); - } - } - } -} diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/CompositionOverlay.cs.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/CompositionOverlay.cs.meta deleted file mode 100644 index 02a670258..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/CompositionOverlay.cs.meta +++ /dev/null @@ -1,18 +0,0 @@ -fileFormatVersion: 2 -guid: 98b784d50a6597540a070c89dc4b72d0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: -AssetOrigin: - serializedVersion: 1 - productId: 202816 - packageName: Camera Composition - Grid Overlay Tool - packageVersion: 1.0.2 - assetPath: Assets/Camera Composition/Scripts/CompositionOverlay.cs - uploadId: 471102 diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/Editor.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/Editor.meta deleted file mode 100644 index 41703df4d..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: cff1447509629e94e8a9944a36f9ab42 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/Editor/CameraComposition.cs b/Assets/Scripts/YAMO_Scripts/Camera Composition/Editor/CameraComposition.cs deleted file mode 100644 index 8f27e2ba2..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/Editor/CameraComposition.cs +++ /dev/null @@ -1,236 +0,0 @@ -#if UNITY_EDITOR -using UnityEngine; -using UnityEditor; - -namespace JordanCassady -{ - public class CameraComposition : EditorWindow - { - #region PROPERTIES - private GameObject compositionObject; - private GUIStyle guiStyle; - private int tabIndex; - private GameObject targetCamera; - private Vector3 revertCameraPosition; - private Quaternion revertCameraRotation; - #endregion - - private readonly string[] tabNames = { "Rule of Thirds", "Diagonal", "Golden Ratio", "Golden Spiral", "Cross" }; - private Color greyColor = new Color(56f / 255f, 56f / 255f, 56f / 255f, 1f); - - [MenuItem("Tools/Camera Composition")] - public static void ShowWindow() - { - var window = GetWindow("Camera Composition"); - window.minSize = new Vector2(370, 186); - } - - private void OnEnable() - { - InitGUIStyle(); - } - - private void OnDestroy() - { - if (compositionObject != null) - { - DestroyImmediate(compositionObject); - } - } - - private void OnGUI() - { - if (compositionObject == null) - { - compositionObject = Instantiate(Resources.Load("Prefabs/Camera Composition")); - } - - DrawTabSection(); - DrawOverrideSection(); - DrawCameraSection(); - } - - private void InitGUIStyle() - { - guiStyle = new GUIStyle - { - fontSize = 12, - fontStyle = FontStyle.Bold, - normal = { textColor = Color.white } - }; - } - - private void DrawTabSection() - { - tabIndex = GUILayout.Toolbar(tabIndex, tabNames); - GUILayout.Space(10); - - if (compositionObject == null) return; - - GameObject overlayObject = compositionObject.transform.GetChild(tabIndex).gameObject; - - DrawGridSection(overlayObject); - DrawColorSection(overlayObject); - DrawOpacitySection(overlayObject); - - if (tabIndex == 3) // Golden Spiral만 회전 지원 - { - DrawRotationSection(overlayObject); - } - } - - private void DrawGridSection(GameObject overlayObject) - { - GUILayout.Label("Grid", guiStyle); - GUILayout.BeginHorizontal(); - - if (GUILayout.Button("On", GUILayout.Height(20))) - overlayObject.GetComponent().Activate(true); - - if (GUILayout.Button("Off", GUILayout.Height(20))) - overlayObject.GetComponent().Activate(false); - - GUILayout.EndHorizontal(); - GUILayout.Space(10); - } - - private void DrawRotationSection(GameObject overlayObject) - { - GUILayout.Label("Rotation", guiStyle); - GUILayout.BeginHorizontal(); - - if (GUILayout.Button("↶ Top Left", GUILayout.Height(30))) - { - overlayObject.GetComponent().Position("Top Left"); - ToggleGrid(overlayObject); - } - - if (GUILayout.Button("↷ Top Right", GUILayout.Height(30))) - { - overlayObject.GetComponent().Position("Top Right"); - ToggleGrid(overlayObject); - } - - GUILayout.EndHorizontal(); - GUILayout.BeginHorizontal(); - - if (GUILayout.Button("↶ Bottom Left", GUILayout.Height(30))) - { - overlayObject.GetComponent().Position("Bottom Left"); - ToggleGrid(overlayObject); - } - - if (GUILayout.Button("↷ Bottom Right", GUILayout.Height(30))) - { - overlayObject.GetComponent().Position("Bottom Right"); - ToggleGrid(overlayObject); - } - - GUILayout.EndHorizontal(); - GUILayout.Space(10); - } - - private void DrawColorSection(GameObject overlayObject) - { - GUILayout.Label("Color", guiStyle); - GUILayout.BeginHorizontal(); - - if (GUILayout.Button("White", GUILayout.Height(20))) - { - overlayObject.GetComponent().InvertLineColor(false); - ToggleGrid(overlayObject); - } - - if (GUILayout.Button("Black", GUILayout.Height(20))) - { - overlayObject.GetComponent().InvertLineColor(true); - ToggleGrid(overlayObject); - } - - GUILayout.EndHorizontal(); - GUILayout.Space(10); - } - - private void DrawOpacitySection(GameObject overlayObject) - { - GUILayout.Label("Opacity", guiStyle); - - var opacity = overlayObject.GetComponent().Opacity; - opacity = EditorGUILayout.Slider(opacity, 0f, 1f); - overlayObject.GetComponent().UpdateOpacity(opacity); - ToggleGrid(overlayObject); - - GUILayout.Space(10); - } - - private void DrawOverrideSection() - { - GUILayout.Label("Overrides", guiStyle); - - if (GUILayout.Button("Turn Off All Grids", GUILayout.Height(20))) - { - if (compositionObject != null) - { - foreach (Transform overlayObject in compositionObject.transform) - { - overlayObject.gameObject.GetComponent().Activate(false); - } - } - } - GUILayout.Space(10); - } - - private void DrawCameraSection() - { - GUILayout.Label("Target Camera", guiStyle); - targetCamera = (GameObject)EditorGUILayout.ObjectField(targetCamera, typeof(GameObject), true); - - if (targetCamera == null) - { - EditorGUILayout.HelpBox("Select a target camera to adjust position & rotation.", MessageType.Info); - return; - } - - GUILayout.Space(10); - GUILayout.Label("Position", guiStyle); - Undo.RecordObject(targetCamera.transform, "Camera Position Change"); - targetCamera.transform.position = EditorGUILayout.Vector3Field("", targetCamera.transform.position); - - GUILayout.Label("Rotation", guiStyle); - Undo.RecordObject(targetCamera.transform, "Camera Rotation Change"); - Vector3 rotationVector = EditorGUILayout.Vector3Field("", targetCamera.transform.rotation.eulerAngles); - targetCamera.transform.rotation = Quaternion.Euler(rotationVector); - - GUILayout.Space(10); - GUILayout.BeginHorizontal(); - - if (GUILayout.Button("Align Camera With Scene View", GUILayout.Height(25))) - { - revertCameraPosition = targetCamera.transform.position; - revertCameraRotation = targetCamera.transform.rotation; - - SceneView sceneView = SceneView.lastActiveSceneView; - targetCamera.transform.position = sceneView.camera.transform.position; - targetCamera.transform.rotation = sceneView.camera.transform.rotation; - } - - if (GUILayout.Button("Revert", GUILayout.Height(25))) - { - targetCamera.transform.position = revertCameraPosition; - targetCamera.transform.rotation = revertCameraRotation; - } - - GUILayout.EndHorizontal(); - } - - private void ToggleGrid(GameObject overlayObject) - { - if (overlayObject.GetComponent().IsActive) - { - overlayObject.GetComponent().Activate(false); - overlayObject.GetComponent().Activate(true); - } - } - } -} -#endif diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/Editor/CameraComposition.cs.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/Editor/CameraComposition.cs.meta deleted file mode 100644 index d82f112f0..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/Editor/CameraComposition.cs.meta +++ /dev/null @@ -1,18 +0,0 @@ -fileFormatVersion: 2 -guid: ebd5b4dd87acf5d4fb4708e7f8254391 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: -AssetOrigin: - serializedVersion: 1 - productId: 202816 - packageName: Camera Composition - Grid Overlay Tool - packageVersion: 1.0.2 - assetPath: Assets/Camera Composition/Scripts/Editor/CameraComposition.cs - uploadId: 471102 diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources.meta deleted file mode 100644 index 37c35ea4d..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: dd7470611f8359d44bade60d577c1b3a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays.meta deleted file mode 100644 index 2b1d733b7..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f82d8fb0476d4ec49ba51d3ccc9bb995 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.cross.png.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.cross.png.meta deleted file mode 100644 index 56459e7a1..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.cross.png.meta +++ /dev/null @@ -1,117 +0,0 @@ -fileFormatVersion: 2 -guid: 8d77b5e9fb0b60042bf500b550408d4a -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 0 - 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: 0 - 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: 8 - 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: 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: 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 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.diagonal.png.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.diagonal.png.meta deleted file mode 100644 index 931318902..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.diagonal.png.meta +++ /dev/null @@ -1,115 +0,0 @@ -fileFormatVersion: 2 -guid: c9d95680f7765924597092167a372bb2 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 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: 0 - 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: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 4096 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 4096 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: -AssetOrigin: - serializedVersion: 1 - productId: 202816 - packageName: Camera Composition - Grid Overlay Tool - packageVersion: 1.0.2 - assetPath: Assets/Camera Composition/Scripts/Resources/Overlays/overlays.diagonal.png - uploadId: 471102 diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.goldenratio.png.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.goldenratio.png.meta deleted file mode 100644 index 69a598d7e..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.goldenratio.png.meta +++ /dev/null @@ -1,115 +0,0 @@ -fileFormatVersion: 2 -guid: 79b9b80aefa75f64b9d5a30ea126eea5 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 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: 0 - 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: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 4096 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 4096 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: -AssetOrigin: - serializedVersion: 1 - productId: 202816 - packageName: Camera Composition - Grid Overlay Tool - packageVersion: 1.0.2 - assetPath: Assets/Camera Composition/Scripts/Resources/Overlays/overlays.goldenratio.png - uploadId: 471102 diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.goldenspiral.png.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.goldenspiral.png.meta deleted file mode 100644 index dc964c2f0..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.goldenspiral.png.meta +++ /dev/null @@ -1,115 +0,0 @@ -fileFormatVersion: 2 -guid: 1d42720af587c634194e68d63a6ab372 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 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: 0 - 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: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 4096 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 4096 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: -AssetOrigin: - serializedVersion: 1 - productId: 202816 - packageName: Camera Composition - Grid Overlay Tool - packageVersion: 1.0.2 - assetPath: Assets/Camera Composition/Scripts/Resources/Overlays/overlays.goldenspiral.png - uploadId: 471102 diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.ruleofthirds.png.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.ruleofthirds.png.meta deleted file mode 100644 index 17a134c8e..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Overlays/overlays.ruleofthirds.png.meta +++ /dev/null @@ -1,115 +0,0 @@ -fileFormatVersion: 2 -guid: 73733fe54b9af5542add1b1dcda3fe6e -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 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: 0 - 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: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 4096 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 4096 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: -AssetOrigin: - serializedVersion: 1 - productId: 202816 - packageName: Camera Composition - Grid Overlay Tool - packageVersion: 1.0.2 - assetPath: Assets/Camera Composition/Scripts/Resources/Overlays/overlays.ruleofthirds.png - uploadId: 471102 diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Prefabs.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Prefabs.meta deleted file mode 100644 index 09d7243da..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Prefabs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3da72fa5689b23e4db4a26f4614a4f37 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Prefabs/Camera Composition.prefab.meta b/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Prefabs/Camera Composition.prefab.meta deleted file mode 100644 index e2ce62660..000000000 --- a/Assets/Scripts/YAMO_Scripts/Camera Composition/Resources/Prefabs/Camera Composition.prefab.meta +++ /dev/null @@ -1,14 +0,0 @@ -fileFormatVersion: 2 -guid: 95ddfacf554c2f24c977dafaf03affcd -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: -AssetOrigin: - serializedVersion: 1 - productId: 202816 - packageName: Camera Composition - Grid Overlay Tool - packageVersion: 1.0.2 - assetPath: Assets/Camera Composition/Scripts/Resources/Prefabs/Camera Composition.prefab - uploadId: 471102 diff --git a/Assets/Scripts/YAMO_Scripts/ForearmHingeBaker.meta b/Assets/Scripts/YAMO_Scripts/ForearmHingeBaker.meta deleted file mode 100644 index f399c97e9..000000000 --- a/Assets/Scripts/YAMO_Scripts/ForearmHingeBaker.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 26ba51d5378e4454ab782efd48126706 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/YAMO_Scripts/ForearmHingeBaker/ForearmHingeBaker.cs b/Assets/Scripts/YAMO_Scripts/ForearmHingeBaker/ForearmHingeBaker.cs deleted file mode 100644 index 61974590f..000000000 --- a/Assets/Scripts/YAMO_Scripts/ForearmHingeBaker/ForearmHingeBaker.cs +++ /dev/null @@ -1,360 +0,0 @@ -// ForearmHingeBaker.cs -// Unity Editor 스크립트 — Assets/Editor/ 폴더에 배치 -// -// Humanoid 애니메이션 클립에서 Forearm의 비-힌지 회전 성분을 제거하고, -// UpperArm 회전을 보정하여 Hand가 원래 방향을 유지하도록 합니다. -// Biped의 단축(힌지) Forearm과 호환되는 Generic 클립을 생성합니다. -// -// 알고리즘: -// 1. 원본 포즈에서 Hand 월드 위치/회전을 기록 -// 2. Forearm 힌지각을 해석적으로 풀이 — Hand가 그리는 원 위에서 원본 Hand에 가장 가까운 점 -// 3. UpperArm을 최소한으로 보정하여 Hand가 원래 방향을 가리키도록 -// 4. Hand 월드 회전을 원본으로 복원 -// -// 사용법: -// 1. 씬에 Animator + Avatar가 설정된 캐릭터 배치 -// 2. Tools > Animation > Forearm Hinge Baker -// 3. Animator와 소스 클립 지정 -// 4. 힌지축 설정 (Forearm이 구부러지는 로컬 축) -// 5. Bake 실행 → _hinged.anim 파일 생성 - -using UnityEngine; -using UnityEditor; -using System.Collections.Generic; - -public class ForearmHingeBaker : EditorWindow -{ - Animator animator; - AnimationClip sourceClip; - int sampleRate = 30; - - enum HingeAxis { X, Y, Z } - HingeAxis hingeAxis = HingeAxis.Z; - - [MenuItem("Tools/Animation/Forearm Hinge Baker")] - static void Open() - { - var win = GetWindow("Forearm Hinge Baker"); - win.minSize = new Vector2(350, 280); - } - - void OnGUI() - { - EditorGUILayout.Space(4); - animator = EditorGUILayout.ObjectField("Animator (씬)", animator, typeof(Animator), true) as Animator; - sourceClip = EditorGUILayout.ObjectField("소스 클립", sourceClip, typeof(AnimationClip), false) as AnimationClip; - - EditorGUILayout.Space(4); - sampleRate = EditorGUILayout.IntSlider("샘플레이트 (fps)", sampleRate, 1, 120); - hingeAxis = (HingeAxis)EditorGUILayout.EnumPopup("Forearm 힌지축 (로컬)", hingeAxis); - - EditorGUILayout.Space(4); - EditorGUILayout.HelpBox( - "Forearm 힌지각을 해석적으로 풀이합니다.\n" + - "Hand가 힌지 회전으로 그리는 원 위에서 원본 위치에 가장 가까운 점을 찾고,\n" + - "UpperArm을 최소한으로 보정합니다.\n\n" + - "출력은 Generic 클립 (bone localRotation 기반)입니다.", - MessageType.Info); - - EditorGUILayout.Space(4); - GUI.enabled = animator != null && sourceClip != null; - if (GUILayout.Button("Bake", GUILayout.Height(30))) - Bake(); - GUI.enabled = true; - } - - // ============================================================ - // Core - // ============================================================ - void Bake() - { - var go = animator.gameObject; - - // 양쪽 팔 트리플렛: upper, lower, hand - var armTriplets = new (HumanBodyBones upper, HumanBodyBones lower, HumanBodyBones hand)[] - { - (HumanBodyBones.LeftUpperArm, HumanBodyBones.LeftLowerArm, HumanBodyBones.LeftHand), - (HumanBodyBones.RightUpperArm, HumanBodyBones.RightLowerArm, HumanBodyBones.RightHand), - }; - - // 본 계층 수집 (루트 자식부터, path = 상대경로) - var allBones = new List(); - var bonePaths = new Dictionary(); - foreach (Transform child in go.transform) - CollectHierarchy(child, child.name, allBones, bonePaths); - - if (allBones.Count == 0) - { - EditorUtility.DisplayDialog("오류", "Animator 하위에 본이 없습니다.", "OK"); - return; - } - - int frameCount = Mathf.CeilToInt(sourceClip.length * sampleRate) + 1; - - // 프레임별 저장소 - var rotations = new Dictionary(); - var positions = new Dictionary(); - foreach (var bone in allBones) - { - rotations[bone] = new Quaternion[frameCount]; - positions[bone] = new Vector3[frameCount]; - } - - // 힌지축 벡터 - Vector3 axisVec = hingeAxis switch - { - HingeAxis.X => Vector3.right, - HingeAxis.Y => Vector3.up, - HingeAxis.Z => Vector3.forward, - _ => Vector3.forward - }; - - // 수정 대상 본 세트 (arm triplet에 포함된 본들) - var modifiedBones = new HashSet(); - - // 샘플링 + 힌지 제약 적용 - AnimationMode.StartAnimationMode(); - try - { - for (int i = 0; i < frameCount; i++) - { - float t = Mathf.Min((float)i / sampleRate, sourceClip.length); - AnimationMode.SampleAnimationClip(go, sourceClip, t); - - // 모든 본의 원본 로컬 트랜스폼 기록 - foreach (var bone in allBones) - { - rotations[bone][i] = bone.localRotation; - positions[bone][i] = bone.localPosition; - } - - // 각 팔에 힌지 제약 적용 - foreach (var (upperBone, lowerBone, handBone) in armTriplets) - { - var upper = animator.GetBoneTransform(upperBone); - var lower = animator.GetBoneTransform(lowerBone); - var hand = animator.GetBoneTransform(handBone); - if (upper == null || lower == null || hand == null) continue; - - // 첫 프레임에서 수정 대상 등록 - if (i == 0) - { - modifiedBones.Add(upper); - modifiedBones.Add(lower); - modifiedBones.Add(hand); - } - - // --- 0. 원본 월드 트랜스폼 기록 --- - Vector3 origHandPos = hand.position; - Quaternion origHandRot = hand.rotation; - Vector3 shoulderPos = upper.position; - Vector3 elbowPos = lower.position; - - // --- 1. 최적 힌지 각도 해석적 풀이 --- - // Forearm이 힌지축으로만 회전하면 Hand는 팔꿈치 중심 원 위를 이동. - // 이 원 위에서 원본 Hand 위치에 가장 가까운 점의 각도를 구함. - - // θ=0, θ=90 에서 Hand 위치를 샘플링하여 원의 기하 정의 - lower.localRotation = Quaternion.identity; - Vector3 h0 = hand.position - elbowPos; - - lower.localRotation = Quaternion.AngleAxis(90f, axisVec); - Vector3 h90 = hand.position - elbowPos; - - // 월드 힌지축 - Quaternion parentRot = lower.parent != null ? lower.parent.rotation : Quaternion.identity; - Vector3 worldAxis = (parentRot * axisVec).normalized; - - // 원의 중심 (elbow 기준 오프셋) - Vector3 centerOffset = Vector3.Dot(h0, worldAxis) * worldAxis; - - // 원 위의 기준 방향 - Vector3 r0 = h0 - centerOffset; - Vector3 r90 = h90 - centerOffset; - - // 타겟을 원 평면에 투영 - Vector3 targetOffset = origHandPos - elbowPos - centerOffset; - Vector3 targetInPlane = targetOffset - Vector3.Dot(targetOffset, worldAxis) * worldAxis; - - float theta = 0f; - if (targetInPlane.sqrMagnitude > 1e-10f && r0.sqrMagnitude > 1e-10f) - { - theta = Mathf.Atan2( - Vector3.Dot(targetInPlane.normalized, r90.normalized), - Vector3.Dot(targetInPlane.normalized, r0.normalized) - ) * Mathf.Rad2Deg; - } - - // --- 2. 최적 힌지 각도 적용 --- - lower.localRotation = Quaternion.AngleAxis(theta, axisVec); - - // --- 3. UpperArm 최소 보정 --- - // 최적 힌지라도 원본 Hand가 원 밖이면 오차 존재. - // FromToRotation으로 어깨→손 방향을 일치시켜 잔여 오차 보정. - Vector3 currentHandPos = hand.position; - Vector3 curDir = (currentHandPos - shoulderPos); - Vector3 tgtDir = (origHandPos - shoulderPos); - - if (curDir.sqrMagnitude > 1e-8f && tgtDir.sqrMagnitude > 1e-8f) - { - Quaternion correction = Quaternion.FromToRotation(curDir.normalized, tgtDir.normalized); - upper.rotation = correction * upper.rotation; - } - - // --- 4. Hand 월드 회전 복원 --- - hand.rotation = origHandRot; - - // 수정된 로컬 회전 저장 - rotations[upper][i] = upper.localRotation; - rotations[lower][i] = lower.localRotation; - rotations[hand][i] = hand.localRotation; - } - - // 진행률 - if (i % 100 == 0) - EditorUtility.DisplayProgressBar("Forearm Hinge Baker", - $"샘플링 {i}/{frameCount}", (float)i / frameCount); - } - } - finally - { - AnimationMode.StopAnimationMode(); - EditorUtility.ClearProgressBar(); - } - - // 새 클립 생성 - var newClip = new AnimationClip(); - newClip.frameRate = sampleRate; - - foreach (var bone in allBones) - { - string path = bonePaths[bone]; - var rots = rotations[bone]; - var poss = positions[bone]; - - // 회전 커브 (Quaternion) - var cx = new AnimationCurve(); - var cy = new AnimationCurve(); - var cz = new AnimationCurve(); - var cw = new AnimationCurve(); - - for (int j = 0; j < frameCount; j++) - { - float time = (float)j / sampleRate; - cx.AddKey(time, rots[j].x); - cy.AddKey(time, rots[j].y); - cz.AddKey(time, rots[j].z); - cw.AddKey(time, rots[j].w); - } - - newClip.SetCurve(path, typeof(Transform), "localRotation.x", cx); - newClip.SetCurve(path, typeof(Transform), "localRotation.y", cy); - newClip.SetCurve(path, typeof(Transform), "localRotation.z", cz); - newClip.SetCurve(path, typeof(Transform), "localRotation.w", cw); - - // 위치 커브 (변화가 있는 본만) - bool posAnimated = false; - for (int j = 1; j < frameCount; j++) - { - if ((poss[j] - poss[0]).sqrMagnitude > 1e-6f) - { - posAnimated = true; - break; - } - } - - if (posAnimated) - { - var px = new AnimationCurve(); - var py = new AnimationCurve(); - var pz = new AnimationCurve(); - - for (int j = 0; j < frameCount; j++) - { - float time = (float)j / sampleRate; - px.AddKey(time, poss[j].x); - py.AddKey(time, poss[j].y); - pz.AddKey(time, poss[j].z); - } - - newClip.SetCurve(path, typeof(Transform), "localPosition.x", px); - newClip.SetCurve(path, typeof(Transform), "localPosition.y", py); - newClip.SetCurve(path, typeof(Transform), "localPosition.z", pz); - } - } - - newClip.EnsureQuaternionContinuity(); - - // 저장 - string srcPath = AssetDatabase.GetAssetPath(sourceClip); - string newPath; - if (!string.IsNullOrEmpty(srcPath)) - { - string dir = System.IO.Path.GetDirectoryName(srcPath); - string name = System.IO.Path.GetFileNameWithoutExtension(srcPath); - newPath = $"{dir}/{name}_hinged.anim"; - } - else - { - newPath = "Assets/hinged_clip.anim"; - } - - newPath = AssetDatabase.GenerateUniqueAssetPath(newPath); - AssetDatabase.CreateAsset(newClip, newPath); - AssetDatabase.SaveAssets(); - - Debug.Log($"[ForearmHingeBaker] 저장 완료: {newPath} ({frameCount}프레임, {allBones.Count}본)"); - EditorUtility.DisplayDialog("완료", - $"저장: {newPath}\n프레임: {frameCount}\n본: {allBones.Count}", "OK"); - - Selection.activeObject = newClip; - EditorGUIUtility.PingObject(newClip); - } - - // ============================================================ - // Swing-Twist 분해 - // q = swing * twist - // twist = 지정 축 주위 회전 (힌지 성분, forearm에 유지) - // swing = 나머지 회전 (제거 대상) - // ============================================================ - static void SwingTwist(Quaternion q, Vector3 twistAxis, - out Quaternion swing, out Quaternion twist) - { - Vector3 r = new Vector3(q.x, q.y, q.z); - Vector3 proj = Vector3.Dot(r, twistAxis) * twistAxis; - - twist = new Quaternion(proj.x, proj.y, proj.z, q.w); - float mag = Mathf.Sqrt(twist.x * twist.x + twist.y * twist.y - + twist.z * twist.z + twist.w * twist.w); - - if (mag < 1e-6f) - { - twist = Quaternion.identity; - swing = q; - } - else - { - twist.x /= mag; - twist.y /= mag; - twist.z /= mag; - twist.w /= mag; - swing = q * Quaternion.Inverse(twist); - } - } - - // ============================================================ - // 본 계층 수집 - // ============================================================ - void CollectHierarchy(Transform t, string path, - List bones, Dictionary paths) - { - bones.Add(t); - paths[t] = path; - - for (int i = 0; i < t.childCount; i++) - { - var child = t.GetChild(i); - CollectHierarchy(child, path + "/" + child.name, bones, paths); - } - } -} diff --git a/Assets/Scripts/YAMO_Scripts/ForearmHingeBaker/ForearmHingeBaker.cs.meta b/Assets/Scripts/YAMO_Scripts/ForearmHingeBaker/ForearmHingeBaker.cs.meta deleted file mode 100644 index 9fcb558dc..000000000 --- a/Assets/Scripts/YAMO_Scripts/ForearmHingeBaker/ForearmHingeBaker.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: d45c483a732289e469d197dbe3a983b2 \ No newline at end of file diff --git a/Packages/manifest.json b/Packages/manifest.json index d199a54ff..1cace72c3 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9b1e3c29b414cb308dee1287c1d46d79eb33d7deb6e9b7200bc755aada0bc78e -size 2700 +oid sha256:2dbf338e55b3af01b3bc73f0a1a6fd15e1dbe8df2a1eef29606350c6d277026b +size 2778 diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index cfeed0423..06d4dce6e 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dac67e8ef861289b38ec1600e7d9c10377a48c73b61e06ca0858d6586ba719a3 -size 16119 +oid sha256:7cb8e19b764e7c8e269304ee1605c6ec0478341905338de9672e5193c0fd21ba +size 16347 diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index a7cf7af89..3eda28e92 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a944986499a5a09bb44eafc1281dbc22b1c13f650a95150c2e9a8e95a69a5ab5 -size 25934 +oid sha256:447b5e0d96d11a457670f5de2d168ae856b98d8066f0db2a34c16bf79cca6513 +size 25968