mirror of
https://github.com/bdunderscore/modular-avatar.git
synced 2025-04-04 19:49:02 +08:00
fix: non-divisible-by-four texture sizes breaks automatic expressions menu icon compression (#1508)
Closes: #1477
This commit is contained in:
parent
3165d471b5
commit
b49e5cb460
@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
### Added
|
### Added
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
- [#1508] テクスチャのサイズが4の倍数でない場合に、エクスプレッションメニューアイコンの自動圧縮が失敗する問題を修正
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
@ -10,6 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
### Added
|
### Added
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
- [#1508] Fix an issue where automatic compression of expressions menu icons would fail when the texture dimensions were
|
||||||
|
not divisible by four.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ Modular Avatarの主な変更点をこのファイルで記録しています。
|
|||||||
- [#1410] 同期レイヤー内のモーションオーバーライドがBone Proxy/Merge Armatureオブジェクトの移動に対して更新されない問題を修正
|
- [#1410] 同期レイヤー内のモーションオーバーライドがBone Proxy/Merge Armatureオブジェクトの移動に対して更新されない問題を修正
|
||||||
- [#1504] 一部の状況で内部の`DelayDisable`レイヤーが不要なオブジェクトを参照しないように変更
|
- [#1504] 一部の状況で内部の`DelayDisable`レイヤーが不要なオブジェクトを参照しないように変更
|
||||||
- これにより、オブジェクトがアニメーションされているかどうかを追跡するAAOなどのツールとの互換性が向上します
|
- これにより、オブジェクトがアニメーションされているかどうかを追跡するAAOなどのツールとの互換性が向上します
|
||||||
|
- [#1508] テクスチャのサイズが4の倍数でない場合に、エクスプレッションメニューアイコンの自動圧縮が失敗する問題を修正
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- [#1476] ModularAvatarMergeAnimator と ModularAvatarMergeParameter を新しい NDMF API (`IVirtualizeMotion` と `IVirtualizeAnimatorController`) を使用するように変更
|
- [#1476] ModularAvatarMergeAnimator と ModularAvatarMergeParameter を新しい NDMF API (`IVirtualizeMotion` と `IVirtualizeAnimatorController`) を使用するように変更
|
||||||
|
@ -25,6 +25,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- [#1410] Motion overrides on synced layers are not updated for Bone Proxy/Merge Armature object movement
|
- [#1410] Motion overrides on synced layers are not updated for Bone Proxy/Merge Armature object movement
|
||||||
- [#1504] The internal `DelayDisable` layer no longer references unnecessary objects in some situations
|
- [#1504] The internal `DelayDisable` layer no longer references unnecessary objects in some situations
|
||||||
- This helps improve compatibility with AAO and other tools that track whether objects are animated
|
- This helps improve compatibility with AAO and other tools that track whether objects are animated
|
||||||
|
- [#1508] Fix an issue where automatic compression of expressions menu icons would fail when the texture dimensions were
|
||||||
|
not divisible by four.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- [#1476] Switch ModularAvatarMergeAnimator and ModularAvatarMergeParameter to use new NDMF APIs (`IVirtualizeMotion` and `IVirtualizeAnimatorController`)
|
- [#1476] Switch ModularAvatarMergeAnimator and ModularAvatarMergeParameter to use new NDMF APIs (`IVirtualizeMotion` and `IVirtualizeAnimatorController`)
|
||||||
|
@ -6,7 +6,6 @@ using System.Collections.Immutable;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Experimental.Rendering;
|
|
||||||
using VRC.SDK3.Avatars.ScriptableObjects;
|
using VRC.SDK3.Avatars.ScriptableObjects;
|
||||||
using Object = UnityEngine.Object;
|
using Object = UnityEngine.Object;
|
||||||
|
|
||||||
@ -121,9 +120,9 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if UNITY_ANDROID
|
#if UNITY_ANDROID
|
||||||
private const TextureFormat TargetFormat = TextureFormat.ASTC_4x4;
|
internal const TextureFormat TargetFormat = TextureFormat.ASTC_4x4;
|
||||||
#else
|
#else
|
||||||
private const TextureFormat TargetFormat = TextureFormat.DXT5;
|
internal const TextureFormat TargetFormat = TextureFormat.DXT5;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
private static Texture2D MaybeScaleIcon(BuildContext context, Texture2D original)
|
private static Texture2D MaybeScaleIcon(BuildContext context, Texture2D original)
|
||||||
@ -133,10 +132,14 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
return original;
|
return original;
|
||||||
}
|
}
|
||||||
|
|
||||||
var newRatio = Math.Min(256f / original.width, 256f / original.height);
|
var newRatio = Math.Min(1, Math.Min(256f / original.width, 256f / original.height));
|
||||||
var newWidth = Math.Min(256, Mathf.RoundToInt(original.width * newRatio));
|
var newWidth = Math.Min(256, Mathf.RoundToInt(original.width * newRatio));
|
||||||
var newHeight = Math.Min(256, Mathf.RoundToInt(original.height * newRatio));
|
var newHeight = Math.Min(256, Mathf.RoundToInt(original.height * newRatio));
|
||||||
|
|
||||||
|
// Round up to a multiple of four
|
||||||
|
newWidth = (newWidth + 3) & ~3;
|
||||||
|
newHeight = (newHeight + 3) & ~3;
|
||||||
|
|
||||||
var newTex = new Texture2D(newWidth, newHeight, TextureFormat.RGBA32, true);
|
var newTex = new Texture2D(newWidth, newHeight, TextureFormat.RGBA32, true);
|
||||||
context.SaveAsset(newTex);
|
context.SaveAsset(newTex);
|
||||||
|
|
||||||
|
8
UnitTests~/FixupExpressionsMenuPassTests.meta
Normal file
8
UnitTests~/FixupExpressionsMenuPassTests.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0728ebdfdba1b344a9101097e4089eff
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
UnitTests~/FixupExpressionsMenuPassTests/123x45px.png
Normal file
BIN
UnitTests~/FixupExpressionsMenuPassTests/123x45px.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 141 B |
127
UnitTests~/FixupExpressionsMenuPassTests/123x45px.png.meta
Normal file
127
UnitTests~/FixupExpressionsMenuPassTests/123x45px.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fdecfaf15af12c94ebc238c62386da03
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 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: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
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: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,35 @@
|
|||||||
|
#if MA_VRCSDK3_AVATARS
|
||||||
|
|
||||||
|
using System.Linq;
|
||||||
|
using modular_avatar_tests;
|
||||||
|
using nadena.dev.modular_avatar.core.editor;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using VRC.SDK3.Avatars.Components;
|
||||||
|
|
||||||
|
namespace UnitTests.FixupExpressionsMenuPassTests
|
||||||
|
{
|
||||||
|
public class FixupExpressionsMenuPassTests : TestBase
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void FixupExpressionsMenuWorksOnOddSizedImages()
|
||||||
|
{
|
||||||
|
var prefab = CreatePrefab("OddSizedTextureTest.prefab");
|
||||||
|
|
||||||
|
AvatarProcessor.ProcessAvatar(prefab);
|
||||||
|
|
||||||
|
var targetMenu = prefab.GetComponent<VRCAvatarDescriptor>().expressionsMenu;
|
||||||
|
var targetElem = targetMenu.controls.First(c => c.name == "testmenu");
|
||||||
|
|
||||||
|
var tex = targetElem.icon;
|
||||||
|
|
||||||
|
// Rounds up to a multiple of four
|
||||||
|
Assert.AreEqual(124, tex.width);
|
||||||
|
Assert.AreEqual(48, tex.height);
|
||||||
|
|
||||||
|
// ... which is needed in order for texture compression to succeed
|
||||||
|
Assert.AreEqual(FixupExpressionsMenuPass.TargetFormat, tex.format);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 994ab7b4f445406799527ab1fa22f993
|
||||||
|
timeCreated: 1742353952
|
@ -0,0 +1,402 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &3990668988804345462
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5638450846039665839}
|
||||||
|
- component: {fileID: 813151555320168457}
|
||||||
|
- component: {fileID: 3678459968214189440}
|
||||||
|
- component: {fileID: 4704574485447146425}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: OddSizedTextureTest
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5638450846039665839
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3990668988804345462}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -1.1366987, y: 0.08456379, z: -1.4804463}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 7859607209538616757}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!95 &813151555320168457
|
||||||
|
Animator:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3990668988804345462}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Avatar: {fileID: 0}
|
||||||
|
m_Controller: {fileID: 0}
|
||||||
|
m_CullingMode: 0
|
||||||
|
m_UpdateMode: 0
|
||||||
|
m_ApplyRootMotion: 0
|
||||||
|
m_LinearVelocityBlending: 0
|
||||||
|
m_StabilizeFeet: 0
|
||||||
|
m_WarningMessage:
|
||||||
|
m_HasTransformHierarchy: 1
|
||||||
|
m_AllowConstantClipSamplingOptimization: 1
|
||||||
|
m_KeepAnimatorStateOnDisable: 0
|
||||||
|
m_WriteDefaultValuesOnDisable: 0
|
||||||
|
--- !u!114 &3678459968214189440
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3990668988804345462}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 542108242, guid: 67cc4cb7839cd3741b63733d5adf0442, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
Name:
|
||||||
|
ViewPosition: {x: 0, y: 1.6, z: 0.2}
|
||||||
|
Animations: 0
|
||||||
|
ScaleIPD: 1
|
||||||
|
lipSync: 0
|
||||||
|
lipSyncJawBone: {fileID: 0}
|
||||||
|
lipSyncJawClosed: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
lipSyncJawOpen: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
VisemeSkinnedMesh: {fileID: 0}
|
||||||
|
MouthOpenBlendShapeName: Facial_Blends.Jaw_Down
|
||||||
|
VisemeBlendShapes: []
|
||||||
|
unityVersion: 2022.3.22f1
|
||||||
|
portraitCameraPositionOffset: {x: 0, y: 0, z: 0}
|
||||||
|
portraitCameraRotationOffset: {x: 0, y: 1, z: 0, w: -0.00000004371139}
|
||||||
|
networkIDs: []
|
||||||
|
customExpressions: 0
|
||||||
|
expressionsMenu: {fileID: 0}
|
||||||
|
expressionParameters: {fileID: 0}
|
||||||
|
enableEyeLook: 0
|
||||||
|
customEyeLookSettings:
|
||||||
|
eyeMovement:
|
||||||
|
confidence: 0.5
|
||||||
|
excitement: 0.5
|
||||||
|
leftEye: {fileID: 0}
|
||||||
|
rightEye: {fileID: 0}
|
||||||
|
eyesLookingStraight:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
eyesLookingUp:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
eyesLookingDown:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
eyesLookingLeft:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
eyesLookingRight:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
eyelidType: 0
|
||||||
|
upperLeftEyelid: {fileID: 0}
|
||||||
|
upperRightEyelid: {fileID: 0}
|
||||||
|
lowerLeftEyelid: {fileID: 0}
|
||||||
|
lowerRightEyelid: {fileID: 0}
|
||||||
|
eyelidsDefault:
|
||||||
|
upper:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
lower:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
eyelidsClosed:
|
||||||
|
upper:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
lower:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
eyelidsLookingUp:
|
||||||
|
upper:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
lower:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
eyelidsLookingDown:
|
||||||
|
upper:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
lower:
|
||||||
|
linked: 1
|
||||||
|
left: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
right: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
eyelidsSkinnedMesh: {fileID: 0}
|
||||||
|
eyelidsBlendshapes:
|
||||||
|
customizeAnimationLayers: 0
|
||||||
|
baseAnimationLayers:
|
||||||
|
- isEnabled: 0
|
||||||
|
type: 0
|
||||||
|
animatorController: {fileID: 0}
|
||||||
|
mask: {fileID: 0}
|
||||||
|
isDefault: 1
|
||||||
|
- isEnabled: 0
|
||||||
|
type: 4
|
||||||
|
animatorController: {fileID: 0}
|
||||||
|
mask: {fileID: 0}
|
||||||
|
isDefault: 1
|
||||||
|
- isEnabled: 0
|
||||||
|
type: 5
|
||||||
|
animatorController: {fileID: 0}
|
||||||
|
mask: {fileID: 0}
|
||||||
|
isDefault: 1
|
||||||
|
specialAnimationLayers:
|
||||||
|
- isEnabled: 0
|
||||||
|
type: 6
|
||||||
|
animatorController: {fileID: 0}
|
||||||
|
mask: {fileID: 0}
|
||||||
|
isDefault: 1
|
||||||
|
- isEnabled: 0
|
||||||
|
type: 7
|
||||||
|
animatorController: {fileID: 0}
|
||||||
|
mask: {fileID: 0}
|
||||||
|
isDefault: 1
|
||||||
|
- isEnabled: 0
|
||||||
|
type: 8
|
||||||
|
animatorController: {fileID: 0}
|
||||||
|
mask: {fileID: 0}
|
||||||
|
isDefault: 1
|
||||||
|
AnimationPreset: {fileID: 0}
|
||||||
|
animationHashSet: []
|
||||||
|
autoFootsteps: 1
|
||||||
|
autoLocomotion: 1
|
||||||
|
collider_head:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_torso:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_footR:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_footL:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_handR:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_handL:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_fingerIndexL:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_fingerMiddleL:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_fingerRingL:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_fingerLittleL:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_fingerIndexR:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_fingerMiddleR:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_fingerRingR:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
collider_fingerLittleR:
|
||||||
|
isMirrored: 1
|
||||||
|
state: 0
|
||||||
|
transform: {fileID: 0}
|
||||||
|
radius: 0
|
||||||
|
height: 0
|
||||||
|
position: {x: 0, y: 0, z: 0}
|
||||||
|
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
--- !u!114 &4704574485447146425
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3990668988804345462}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: -1427037861, guid: 4ecd63eff847044b68db9453ce219299, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
launchedFromSDKPipeline: 0
|
||||||
|
completedSDKPipeline: 0
|
||||||
|
blueprintId:
|
||||||
|
contentType: 0
|
||||||
|
assetBundleUnityVersion:
|
||||||
|
fallbackStatus: 2
|
||||||
|
--- !u!1 &5130770126475706269
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7859607209538616757}
|
||||||
|
- component: {fileID: 1204253887592837851}
|
||||||
|
- component: {fileID: 4596705629491158387}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: testmenu
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &7859607209538616757
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5130770126475706269}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5638450846039665839}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &1204253887592837851
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5130770126475706269}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 7ef83cb0c23d4d7c9d41021e544a1978, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
menuToAppend: {fileID: 0}
|
||||||
|
installTargetMenu: {fileID: 0}
|
||||||
|
--- !u!114 &4596705629491158387
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5130770126475706269}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 3b29d45007c5493d926d2cd45a489529, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
Control:
|
||||||
|
name:
|
||||||
|
icon: {fileID: 2800000, guid: fdecfaf15af12c94ebc238c62386da03, type: 3}
|
||||||
|
type: 102
|
||||||
|
parameter:
|
||||||
|
name:
|
||||||
|
value: 1
|
||||||
|
style: 0
|
||||||
|
subMenu: {fileID: 0}
|
||||||
|
subParameters: []
|
||||||
|
labels: []
|
||||||
|
MenuSource: 1
|
||||||
|
menuSource_otherObjectChildren: {fileID: 0}
|
||||||
|
isSynced: 1
|
||||||
|
isSaved: 1
|
||||||
|
isDefault: 0
|
||||||
|
automaticValue: 1
|
||||||
|
label:
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b06e93c5a53eac64a84e4218cc5314f9
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Loading…
x
Reference in New Issue
Block a user