02
This commit is contained in:
parent
c5d652764c
commit
d897fcd73e
8
Assets/External/Fantasy Skybox.meta
vendored
Normal file
8
Assets/External/Fantasy Skybox.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ef1cb0fe8d3d5584d968a603ac0bde56
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/External/Fantasy Skybox/ReleaseNotes.txt
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Fantasy Skybox/ReleaseNotes.txt
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
15
Assets/External/Fantasy Skybox/ReleaseNotes.txt.meta
vendored
Normal file
15
Assets/External/Fantasy Skybox/ReleaseNotes.txt.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f14307b5201ecdf4e89f2c843bdec16c
|
||||
timeCreated: 1434912371
|
||||
licenseType: Store
|
||||
TextScriptImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 18216
|
||||
packageName: Fantasy Skybox
|
||||
packageVersion: 1.6.7
|
||||
assetPath: Assets/Fantasy Skybox/ReleaseNotes.txt
|
||||
uploadId: 709120
|
||||
8
Assets/External/Free Stylized Hand-Painted Skybox.meta
vendored
Normal file
8
Assets/External/Free Stylized Hand-Painted Skybox.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 617f13ee40e80a14f839790660d6261c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
1522
Assets/External/Free Stylized Hand-Painted Skybox/BD Studios Post-Processing Profile.asset
vendored
Normal file
1522
Assets/External/Free Stylized Hand-Painted Skybox/BD Studios Post-Processing Profile.asset
vendored
Normal file
File diff suppressed because it is too large
Load Diff
16
Assets/External/Free Stylized Hand-Painted Skybox/BD Studios Post-Processing Profile.asset.meta
vendored
Normal file
16
Assets/External/Free Stylized Hand-Painted Skybox/BD Studios Post-Processing Profile.asset.meta
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 06cf16cc9cc7a4f4ca46f643b3c176a9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/BD Studios Post-Processing
|
||||
Profile.asset
|
||||
uploadId: 627812
|
||||
64
Assets/External/Free Stylized Hand-Painted Skybox/BD_Lighting.lighting
vendored
Normal file
64
Assets/External/Free Stylized Hand-Painted Skybox/BD_Lighting.lighting
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!850595691 &4890085278179872738
|
||||
LightingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: BD_Lighting
|
||||
serializedVersion: 4
|
||||
m_GIWorkflowMode: 1
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_RealtimeEnvironmentLighting: 1
|
||||
m_BounceScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_UsingShadowmask: 0
|
||||
m_BakeBackend: 2
|
||||
m_LightmapMaxSize: 1024
|
||||
m_BakeResolution: 20
|
||||
m_Padding: 2
|
||||
m_LightmapCompression: 3
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAO: 0
|
||||
m_MixedBakeMode: 0
|
||||
m_LightmapsBakeMode: 1
|
||||
m_FilterMode: 1
|
||||
m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_RealtimeResolution: 2
|
||||
m_ForceWhiteAlbedo: 0
|
||||
m_ForceUpdates: 0
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherRayCount: 256
|
||||
m_FinalGatherFiltering: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 256
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_PVRBounces: 2
|
||||
m_PVRMinBounces: 2
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_PVRTiledBaking: 0
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/BD_Lighting.lighting.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/BD_Lighting.lighting.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 187345041fe57664fae2aa351414b6b6
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 4890085278179872738
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/BD_Lighting.lighting
|
||||
uploadId: 627812
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Demo.unity
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Demo.unity
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
14
Assets/External/Free Stylized Hand-Painted Skybox/Demo.unity.meta
vendored
Normal file
14
Assets/External/Free Stylized Hand-Painted Skybox/Demo.unity.meta
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f976c0a276862634f8b6bf2eaff818fb
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Demo.unity
|
||||
uploadId: 627812
|
||||
8
Assets/External/Free Stylized Hand-Painted Skybox/Materials.meta
vendored
Normal file
8
Assets/External/Free Stylized Hand-Painted Skybox/Materials.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e5cf77ccbc4290e4ca42aa61959b9d79
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy01.mat
vendored
Normal file
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy01.mat
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Cloudy01
|
||||
m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Tex:
|
||||
m_Texture: {fileID: 8900000, guid: e31e2fa4fd8bdaa478f1675cf5762fd7, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Exposure: 1
|
||||
- _Rotation: 0
|
||||
m_Colors:
|
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy01.mat.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy01.mat.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: da04fb2a289ef1b47bf5b07b9285dd70
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Materials/Cloudy01.mat
|
||||
uploadId: 627812
|
||||
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy02.mat
vendored
Normal file
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy02.mat
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Cloudy02
|
||||
m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Tex:
|
||||
m_Texture: {fileID: 8900000, guid: f1b504bff46c95346b5b1e99fd731eff, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Exposure: 1
|
||||
- _Rotation: 0
|
||||
m_Colors:
|
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy02.mat.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy02.mat.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d4393bf45f92e74499f230d78e8cab9f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Materials/Cloudy02.mat
|
||||
uploadId: 627812
|
||||
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy03.mat
vendored
Normal file
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy03.mat
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Cloudy03
|
||||
m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Tex:
|
||||
m_Texture: {fileID: 8900000, guid: 3d60c74e415eb044cb7c63f12a1d955e, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Exposure: 1
|
||||
- _Rotation: 0
|
||||
m_Colors:
|
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy03.mat.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy03.mat.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 896fe09c49b73a44ead00a982ee46e6b
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Materials/Cloudy03.mat
|
||||
uploadId: 627812
|
||||
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy04.mat
vendored
Normal file
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy04.mat
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Cloudy04
|
||||
m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Tex:
|
||||
m_Texture: {fileID: 8900000, guid: 663e4e044569d5d4fab103ab8ae7719c, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Exposure: 1
|
||||
- _Rotation: 0
|
||||
m_Colors:
|
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy04.mat.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Cloudy04.mat.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b01d8a5305a527c4daeab5318708e238
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Materials/Cloudy04.mat
|
||||
uploadId: 627812
|
||||
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Dawn.mat
vendored
Normal file
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Dawn.mat
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Dawn
|
||||
m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Tex:
|
||||
m_Texture: {fileID: 8900000, guid: 41662f129e3c1054392aed1755433fd5, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Exposure: 1
|
||||
- _Rotation: 0
|
||||
m_Colors:
|
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Dawn.mat.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Dawn.mat.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b73dc2c0c9eceae4486bdb5b744fceb9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Materials/Dawn.mat
|
||||
uploadId: 627812
|
||||
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Dawn_Cloudy.mat
vendored
Normal file
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Dawn_Cloudy.mat
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Dawn_Cloudy
|
||||
m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Tex:
|
||||
m_Texture: {fileID: 8900000, guid: eb2951db9066f984f85ff41f6e9525f7, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Exposure: 1
|
||||
- _Rotation: 0
|
||||
m_Colors:
|
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Dawn_Cloudy.mat.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Dawn_Cloudy.mat.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3776415b8d326db4cb696fe00db0540e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Materials/Dawn_Cloudy.mat
|
||||
uploadId: 627812
|
||||
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Day_Clear.mat
vendored
Normal file
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Day_Clear.mat
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Day_Clear
|
||||
m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Tex:
|
||||
m_Texture: {fileID: 8900000, guid: 4c6e3caff9a2c00459a8805bc96f8f69, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Exposure: 1
|
||||
- _Rotation: 0
|
||||
m_Colors:
|
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Day_Clear.mat.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Day_Clear.mat.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1e5e82b01cae80b44b78975b9c2d7741
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Materials/Day_Clear.mat
|
||||
uploadId: 627812
|
||||
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Midnight.mat
vendored
Normal file
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Midnight.mat
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Midnight
|
||||
m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Tex:
|
||||
m_Texture: {fileID: 8900000, guid: ba4f9681a4f907647a229035e27b138a, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Exposure: 1
|
||||
- _Rotation: 0
|
||||
m_Colors:
|
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Midnight.mat.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Midnight.mat.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5eae8f65eabf7ee4994b422cd10214bc
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Materials/Midnight.mat
|
||||
uploadId: 627812
|
||||
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Midnight_Stars.mat
vendored
Normal file
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Midnight_Stars.mat
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Midnight_Stars
|
||||
m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Tex:
|
||||
m_Texture: {fileID: 8900000, guid: 3b61a4965ad81044d8fd04c6738c08bb, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Exposure: 1
|
||||
- _Rotation: 0
|
||||
m_Colors:
|
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Midnight_Stars.mat.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Midnight_Stars.mat.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b7c00be18a6e7a2428b01c61aea8c5b6
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Materials/Midnight_Stars.mat
|
||||
uploadId: 627812
|
||||
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Midnight_Stars02.mat
vendored
Normal file
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Midnight_Stars02.mat
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Midnight_Stars02
|
||||
m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Tex:
|
||||
m_Texture: {fileID: 8900000, guid: e29caa9aad3602d40be0bdfa8138d34e, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Exposure: 1
|
||||
- _Rotation: 0
|
||||
m_Colors:
|
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Midnight_Stars02.mat.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Midnight_Stars02.mat.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b8b51e91d70758d4587a58e98389c07a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Materials/Midnight_Stars02.mat
|
||||
uploadId: 627812
|
||||
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Sunset.mat
vendored
Normal file
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Sunset.mat
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Sunset
|
||||
m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Tex:
|
||||
m_Texture: {fileID: 8900000, guid: 8a923fadf769f794a8d3a9806f92c8c9, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Exposure: 1
|
||||
- _Rotation: 0
|
||||
m_Colors:
|
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Sunset.mat.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Sunset.mat.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 170f2a047c448444ca1b8e2d20f504f1
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Materials/Sunset.mat
|
||||
uploadId: 627812
|
||||
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Sunset_Cloudy.mat
vendored
Normal file
33
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Sunset_Cloudy.mat
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Sunset_Cloudy
|
||||
m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _Tex:
|
||||
m_Texture: {fileID: 8900000, guid: 7e3608d3009d2f74c8fc155c9ad6d76e, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Exposure: 1
|
||||
- _Rotation: 0
|
||||
m_Colors:
|
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Sunset_Cloudy.mat.meta
vendored
Normal file
15
Assets/External/Free Stylized Hand-Painted Skybox/Materials/Sunset_Cloudy.mat.meta
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bebabbca203115940bf67dfe65237b36
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Materials/Sunset_Cloudy.mat
|
||||
uploadId: 627812
|
||||
8
Assets/External/Free Stylized Hand-Painted Skybox/Textures.meta
vendored
Normal file
8
Assets/External/Free Stylized Hand-Painted Skybox/Textures.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 29a3eadb29517be4183463ae9bf75130
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy01.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy01.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy01.png.meta
vendored
Normal file
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy01.png.meta
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e31e2fa4fd8bdaa478f1675cf5762fd7
|
||||
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
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 2
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Textures/Cloudy01.png
|
||||
uploadId: 627812
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy02.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy02.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy02.png.meta
vendored
Normal file
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy02.png.meta
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f1b504bff46c95346b5b1e99fd731eff
|
||||
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
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 2
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Textures/Cloudy02.png
|
||||
uploadId: 627812
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy03.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy03.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy03.png.meta
vendored
Normal file
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy03.png.meta
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d60c74e415eb044cb7c63f12a1d955e
|
||||
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
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 2
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Textures/Cloudy03.png
|
||||
uploadId: 627812
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy04.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy04.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy04.png.meta
vendored
Normal file
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Cloudy04.png.meta
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 663e4e044569d5d4fab103ab8ae7719c
|
||||
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
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 2
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Textures/Cloudy04.png
|
||||
uploadId: 627812
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Dawn.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Dawn.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Dawn.png.meta
vendored
Normal file
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Dawn.png.meta
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 41662f129e3c1054392aed1755433fd5
|
||||
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
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 2
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Textures/Dawn.png
|
||||
uploadId: 627812
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Dawn_Cloudy.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Dawn_Cloudy.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Dawn_Cloudy.png.meta
vendored
Normal file
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Dawn_Cloudy.png.meta
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb2951db9066f984f85ff41f6e9525f7
|
||||
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
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 2
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Textures/Dawn_Cloudy.png
|
||||
uploadId: 627812
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Day_Clear.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Day_Clear.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Day_Clear.png.meta
vendored
Normal file
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Day_Clear.png.meta
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4c6e3caff9a2c00459a8805bc96f8f69
|
||||
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
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 2
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Textures/Day_Clear.png
|
||||
uploadId: 627812
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Midnight.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Midnight.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Midnight.png.meta
vendored
Normal file
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Midnight.png.meta
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ba4f9681a4f907647a229035e27b138a
|
||||
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
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 2
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Textures/Midnight.png
|
||||
uploadId: 627812
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Midnight_Stars.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Midnight_Stars.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Midnight_Stars.png.meta
vendored
Normal file
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Midnight_Stars.png.meta
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3b61a4965ad81044d8fd04c6738c08bb
|
||||
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
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 2
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Textures/Midnight_Stars.png
|
||||
uploadId: 627812
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Midnight_Stars02.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Midnight_Stars02.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Midnight_Stars02.png.meta
vendored
Normal file
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Midnight_Stars02.png.meta
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e29caa9aad3602d40be0bdfa8138d34e
|
||||
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
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 2
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Textures/Midnight_Stars02.png
|
||||
uploadId: 627812
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Sunset.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Sunset.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Sunset.png.meta
vendored
Normal file
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Sunset.png.meta
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a923fadf769f794a8d3a9806f92c8c9
|
||||
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
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 2
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Textures/Sunset.png
|
||||
uploadId: 627812
|
||||
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Sunset_Cloudy.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Sunset_Cloudy.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Sunset_Cloudy.png.meta
vendored
Normal file
129
Assets/External/Free Stylized Hand-Painted Skybox/Textures/Sunset_Cloudy.png.meta
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7e3608d3009d2f74c8fc155c9ad6d76e
|
||||
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
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 2
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 265475
|
||||
packageName: Free Stylized Hand-Painted Skybox
|
||||
packageVersion: 1.0
|
||||
assetPath: Assets/Free Stylized Hand-Painted Skybox/Textures/Sunset_Cloudy.png
|
||||
uploadId: 627812
|
||||
BIN
Assets/Scenes/123.unity
(Stored with Git LFS)
Normal file
BIN
Assets/Scenes/123.unity
(Stored with Git LFS)
Normal file
Binary file not shown.
7
Assets/Scenes/123.unity.meta
Normal file
7
Assets/Scenes/123.unity.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d3384ad04ecf0e049990c1f233d1e2ea
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Scenes/SampleScene.unity
(Stored with Git LFS)
Normal file
BIN
Assets/Scenes/SampleScene.unity
(Stored with Git LFS)
Normal file
Binary file not shown.
7
Assets/Scenes/SampleScene.unity.meta
Normal file
7
Assets/Scenes/SampleScene.unity.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 99c9720ab356a0642a771bea13969a05
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Scripts/3rd.meta
Normal file
8
Assets/Scripts/3rd.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b48153ffb94284f07b4402360a8d6294
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Scripts/3rd/mmd-for-unity-master.meta
Normal file
8
Assets/Scripts/3rd/mmd-for-unity-master.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ca2e40c29b72148aca866896cf8e5b3e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<TestSettings name="ローカル" id="f9d1f722-f14e-43ef-9e9b-1c25ab5c774c" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<Description>これらはローカル テスト実行用の既定のテスト設定です。</Description>
|
||||
<Deployment enabled="false" />
|
||||
<Execution>
|
||||
<TestTypeSpecific />
|
||||
<AgentRule name="Execution Agents">
|
||||
</AgentRule>
|
||||
</Execution>
|
||||
</TestSettings>
|
||||
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<TestLists xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<TestList name="テストの一覧" id="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">
|
||||
<RunConfiguration id="f9d1f722-f14e-43ef-9e9b-1c25ab5c774c" name="ローカル" storage="local.testsettings" type="Microsoft.VisualStudio.TestTools.Common.TestRunConfiguration, Microsoft.VisualStudio.QualityTools.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
</TestList>
|
||||
</TestLists>
|
||||
Binary file not shown.
@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using MikuMikuDance.Model.Ver1;
|
||||
using MikuMikuDance.Model;
|
||||
using MikuMikuDance.Motion.Motion2;
|
||||
using MikuMikuDance.Motion;
|
||||
using MMDIKBakerLibrary;
|
||||
|
||||
namespace MMDIKBaker
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
//コンソールアプリ作りたいわけじゃないのでハードコーディングしとく
|
||||
string InputPMD = "miku.pmd";
|
||||
string InputVMD = "TrueMyHeart.vmd";
|
||||
string OutputVMD = "tmh_bake.vmd";
|
||||
MMDModel1 model = (MMDModel1)ModelManager.Read(InputPMD, MikuMikuDance.Model.CoordinateType.RightHandedCoordinate);
|
||||
MMDMotion2 motion = (MMDMotion2)MotionManager.Read(InputVMD, MikuMikuDance.Motion.CoordinateType.RightHandedCoordinate);
|
||||
motion = IKBaker.bake(motion, model);
|
||||
MotionManager.Write(OutputVMD, motion);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// アセンブリに関する一般情報は以下の属性セットをとおして制御されます。
|
||||
// アセンブリに関連付けられている情報を変更するには、
|
||||
// これらの属性値を変更してください。
|
||||
[assembly: AssemblyTitle("MMDBoneBaker")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("MMDBoneBaker")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2011")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// ComVisible を false に設定すると、その型はこのアセンブリ内で COM コンポーネントから
|
||||
// 参照不可能になります。COM からこのアセンブリ内の型にアクセスする場合は、
|
||||
// その型の ComVisible 属性を true に設定してください。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 次の GUID は、このプロジェクトが COM に公開される場合の、typelib の ID です
|
||||
[assembly: Guid("49201036-3934-4006-b21b-04eb8fb6aeee")]
|
||||
|
||||
// アセンブリのバージョン情報は、以下の 4 つの値で構成されています:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
|
||||
// 既定値にすることができます:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
Binary file not shown.
Binary file not shown.
166
Assets/Scripts/3rd/mmd-for-unity-master/.MMDIKBaker/MMDIKBakerGUI/Form1.Designer.cs
generated
Normal file
166
Assets/Scripts/3rd/mmd-for-unity-master/.MMDIKBaker/MMDIKBakerGUI/Form1.Designer.cs
generated
Normal file
@ -0,0 +1,166 @@
|
||||
namespace MMDIKBakerGUI
|
||||
{
|
||||
partial class Form1
|
||||
{
|
||||
/// <summary>
|
||||
/// 必要なデザイナー変数です。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 使用中のリソースをすべてクリーンアップします。
|
||||
/// </summary>
|
||||
/// <param name="disposing">マネージ リソースが破棄される場合 true、破棄されない場合は false です。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows フォーム デザイナーで生成されたコード
|
||||
|
||||
/// <summary>
|
||||
/// デザイナー サポートに必要なメソッドです。このメソッドの内容を
|
||||
/// コード エディターで変更しないでください。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.pmdFileName = new System.Windows.Forms.TextBox();
|
||||
this.vmdFileName = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.pmdRef = new System.Windows.Forms.Button();
|
||||
this.vmdRef = new System.Windows.Forms.Button();
|
||||
this.startBake = new System.Windows.Forms.Button();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.saveVmdName = new System.Windows.Forms.TextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// pmdFileName
|
||||
//
|
||||
this.pmdFileName.Location = new System.Drawing.Point(14, 24);
|
||||
this.pmdFileName.Name = "pmdFileName";
|
||||
this.pmdFileName.Size = new System.Drawing.Size(270, 19);
|
||||
this.pmdFileName.TabIndex = 0;
|
||||
//
|
||||
// vmdFileName
|
||||
//
|
||||
this.vmdFileName.Location = new System.Drawing.Point(14, 61);
|
||||
this.vmdFileName.Name = "vmdFileName";
|
||||
this.vmdFileName.Size = new System.Drawing.Size(270, 19);
|
||||
this.vmdFileName.TabIndex = 1;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(29, 12);
|
||||
this.label1.TabIndex = 2;
|
||||
this.label1.Text = "PMD";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(12, 46);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(30, 12);
|
||||
this.label2.TabIndex = 3;
|
||||
this.label2.Text = "VMD";
|
||||
//
|
||||
// pmdRef
|
||||
//
|
||||
this.pmdRef.Location = new System.Drawing.Point(290, 22);
|
||||
this.pmdRef.Name = "pmdRef";
|
||||
this.pmdRef.Size = new System.Drawing.Size(42, 23);
|
||||
this.pmdRef.TabIndex = 4;
|
||||
this.pmdRef.Text = "参照";
|
||||
this.pmdRef.UseVisualStyleBackColor = true;
|
||||
this.pmdRef.Click += new System.EventHandler(this.pmdRef_Click);
|
||||
//
|
||||
// vmdRef
|
||||
//
|
||||
this.vmdRef.Location = new System.Drawing.Point(290, 59);
|
||||
this.vmdRef.Name = "vmdRef";
|
||||
this.vmdRef.Size = new System.Drawing.Size(42, 23);
|
||||
this.vmdRef.TabIndex = 5;
|
||||
this.vmdRef.Text = "参照";
|
||||
this.vmdRef.UseVisualStyleBackColor = true;
|
||||
this.vmdRef.Click += new System.EventHandler(this.vmdRef_Click);
|
||||
//
|
||||
// startBake
|
||||
//
|
||||
this.startBake.Location = new System.Drawing.Point(257, 142);
|
||||
this.startBake.Name = "startBake";
|
||||
this.startBake.Size = new System.Drawing.Size(75, 23);
|
||||
this.startBake.TabIndex = 6;
|
||||
this.startBake.Text = "Bake !!";
|
||||
this.startBake.UseVisualStyleBackColor = true;
|
||||
this.startBake.Click += new System.EventHandler(this.startBake_Click);
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Location = new System.Drawing.Point(290, 96);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(42, 23);
|
||||
this.button1.TabIndex = 9;
|
||||
this.button1.Text = "参照";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(12, 83);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(59, 12);
|
||||
this.label3.TabIndex = 8;
|
||||
this.label3.Text = "Save VMD";
|
||||
//
|
||||
// saveVmdName
|
||||
//
|
||||
this.saveVmdName.Location = new System.Drawing.Point(14, 98);
|
||||
this.saveVmdName.Name = "saveVmdName";
|
||||
this.saveVmdName.Size = new System.Drawing.Size(270, 19);
|
||||
this.saveVmdName.TabIndex = 7;
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(344, 177);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.saveVmdName);
|
||||
this.Controls.Add(this.startBake);
|
||||
this.Controls.Add(this.vmdRef);
|
||||
this.Controls.Add(this.pmdRef);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.vmdFileName);
|
||||
this.Controls.Add(this.pmdFileName);
|
||||
this.Name = "Form1";
|
||||
this.Text = "MMDIKBakerGUI";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox pmdFileName;
|
||||
private System.Windows.Forms.TextBox vmdFileName;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Button pmdRef;
|
||||
private System.Windows.Forms.Button vmdRef;
|
||||
private System.Windows.Forms.Button startBake;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.TextBox saveVmdName;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,120 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using MikuMikuDance.Model;
|
||||
using MikuMikuDance.Model.Ver1;
|
||||
using MikuMikuDance.Motion;
|
||||
using MikuMikuDance.Motion.Motion2;
|
||||
using MMDIKBakerLibrary;
|
||||
|
||||
namespace MMDIKBakerGUI
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void startBake_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 入力チェック
|
||||
if (!File.Exists(pmdFileName.Text))
|
||||
{
|
||||
MessageBox.Show(
|
||||
"PMDファイルが見つかりません!:\n" + pmdFileName.Text,
|
||||
"PMD読み込みエラー",
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!File.Exists(vmdFileName.Text))
|
||||
{
|
||||
MessageBox.Show(
|
||||
"VMDファイルが見つかりません!:\n" + vmdFileName.Text,
|
||||
"VMD読み込みエラー",
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
// saveVMDの上書き確認
|
||||
if (File.Exists(saveVmdName.Text))
|
||||
{
|
||||
var result = MessageBox.Show(
|
||||
"VMDファイルが存在します。\n" + saveVmdName.Text + "\n上書きしてよろしいですか?",
|
||||
"上書き確認",
|
||||
MessageBoxButtons.YesNoCancel,
|
||||
MessageBoxIcon.Question);
|
||||
|
||||
if(result != System.Windows.Forms.DialogResult.Yes)
|
||||
return;
|
||||
|
||||
// bakeでエラー出るっぽいので削除しておく
|
||||
File.Delete(saveVmdName.Text);
|
||||
}
|
||||
|
||||
// Bake!
|
||||
try
|
||||
{
|
||||
MMDModel1 model = (MMDModel1)ModelManager.Read(pmdFileName.Text, MikuMikuDance.Model.CoordinateType.RightHandedCoordinate);
|
||||
MMDMotion2 motion = (MMDMotion2)MotionManager.Read(vmdFileName.Text, MikuMikuDance.Motion.CoordinateType.RightHandedCoordinate);
|
||||
motion = IKBaker.bake(motion, model);
|
||||
MotionManager.Write(saveVmdName.Text, motion);
|
||||
|
||||
MessageBox.Show(
|
||||
"Bake完了",
|
||||
"Baked!!");
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageBox.Show(
|
||||
"Bake中にエラーが発生しました",
|
||||
"未知のエラー",
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void pmdRef_Click(object sender, EventArgs e)
|
||||
{
|
||||
var dialog = new OpenFileDialog();
|
||||
dialog.Filter = "PMDファイル|*.pmd";
|
||||
if (dialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
pmdFileName.Text = dialog.FileName;
|
||||
}
|
||||
}
|
||||
|
||||
private void vmdRef_Click(object sender, EventArgs e)
|
||||
{
|
||||
var dialog = new OpenFileDialog();
|
||||
dialog.Filter = "VMDファイル|*.vmd";
|
||||
if (dialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
vmdFileName.Text = dialog.FileName;
|
||||
|
||||
var f = new FileInfo(vmdFileName.Text);
|
||||
saveVmdName.Text = Path.Combine(f.DirectoryName, f.Name.Replace(f.Extension, "_baked") + f.Extension);
|
||||
}
|
||||
}
|
||||
|
||||
private void saveRef_Click(object sender, EventArgs e)
|
||||
{
|
||||
var dialog = new SaveFileDialog();
|
||||
dialog.Filter = "VMDファイル|*.vmd";
|
||||
if (dialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
saveVmdName.Text = dialog.FileName;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace MMDIKBakerGUI
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// アプリケーションのメイン エントリ ポイントです。
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new Form1());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// アセンブリに関する一般情報は以下の属性セットをとおして制御されます。
|
||||
// アセンブリに関連付けられている情報を変更するには、
|
||||
// これらの属性値を変更してください。
|
||||
[assembly: AssemblyTitle("MMDIKBakerGUI")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("MMDIKBakerGUI")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2012")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// ComVisible を false に設定すると、その型はこのアセンブリ内で COM コンポーネントから
|
||||
// 参照不可能になります。COM からこのアセンブリ内の型にアクセスする場合は、
|
||||
// その型の ComVisible 属性を true に設定してください。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 次の GUID は、このプロジェクトが COM に公開される場合の、typelib の ID です
|
||||
[assembly: Guid("0339f748-b7cb-4486-bae7-b330d0ac3512")]
|
||||
|
||||
// アセンブリのバージョン情報は、以下の 4 つの値で構成されています:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
|
||||
// 既定値にすることができます:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
71
Assets/Scripts/3rd/mmd-for-unity-master/.MMDIKBaker/MMDIKBakerGUI/Properties/Resources.Designer.cs
generated
Normal file
71
Assets/Scripts/3rd/mmd-for-unity-master/.MMDIKBaker/MMDIKBakerGUI/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,71 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// このコードはツールによって生成されました。
|
||||
// ランタイム バージョン:4.0.30319.269
|
||||
//
|
||||
// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
|
||||
// コードが再生成されるときに損失したりします
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace MMDIKBakerGUI.Properties
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。
|
||||
/// </summary>
|
||||
// このクラスは StronglyTypedResourceBuilder クラスが ResGen
|
||||
// または Visual Studio のようなツールを使用して自動生成されました。
|
||||
// メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に
|
||||
// ResGen を実行し直すか、または VS プロジェクトをビルドし直します。
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// このクラスに使用される、キャッシュされた ResourceManager のインスタンスを返します。
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MMDIKBakerGUI.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 厳密に型指定されたこのリソース クラスを使用して、すべての検索リソースに対し、
|
||||
/// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
30
Assets/Scripts/3rd/mmd-for-unity-master/.MMDIKBaker/MMDIKBakerGUI/Properties/Settings.Designer.cs
generated
Normal file
30
Assets/Scripts/3rd/mmd-for-unity-master/.MMDIKBaker/MMDIKBakerGUI/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,30 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.269
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace MMDIKBakerGUI.Properties
|
||||
{
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||
{
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default
|
||||
{
|
||||
get
|
||||
{
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
BIN
Assets/Scripts/3rd/mmd-for-unity-master/.MMDIKBaker/MMDIKBakerGUI/bin/Debug/MMDBoneBakerLibrary.dll
(Stored with Git LFS)
Normal file
BIN
Assets/Scripts/3rd/mmd-for-unity-master/.MMDIKBaker/MMDIKBakerGUI/bin/Debug/MMDBoneBakerLibrary.dll
(Stored with Git LFS)
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Assets/Scripts/3rd/mmd-for-unity-master/.MMDIKBaker/MMDIKBakerGUI/bin/Debug/MMDModelLibrary.dll
(Stored with Git LFS)
Normal file
BIN
Assets/Scripts/3rd/mmd-for-unity-master/.MMDIKBaker/MMDIKBakerGUI/bin/Debug/MMDModelLibrary.dll
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Assets/Scripts/3rd/mmd-for-unity-master/.MMDIKBaker/MMDIKBakerGUI/bin/Debug/MMDMotionLibrary.dll
(Stored with Git LFS)
Normal file
BIN
Assets/Scripts/3rd/mmd-for-unity-master/.MMDIKBaker/MMDIKBakerGUI/bin/Debug/MMDMotionLibrary.dll
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,62 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using MMDIKBakerLibrary.Model;
|
||||
using MMDIKBakerLibrary.Motion;
|
||||
using MMDMotion2 = MikuMikuDance.Motion.Motion2.MMDMotion2;
|
||||
using MMDModel1 = MikuMikuDance.Model.Ver1.MMDModel1;
|
||||
namespace MMDIKBakerLibrary
|
||||
{
|
||||
public class IKBaker
|
||||
{
|
||||
public static MMDMotion2 bake(MMDMotion2 motion, MMDModel1 model)
|
||||
{
|
||||
//ボーン取得
|
||||
MMDBoneManager boneManager = ModelConverter.BuildBoneManager(model);
|
||||
//ベイク前のモーションとベイク後のモーションを準備
|
||||
MMDMotion beforeMotion = MotionConverter.Convert(motion);
|
||||
MMDMotion afterMotion = CreateAfterMotionPrototype(beforeMotion, boneManager);
|
||||
//アニメーションプレイヤーを作成
|
||||
AnimationPlayer player = new AnimationPlayer(boneManager);
|
||||
player.SetMotion(beforeMotion);
|
||||
//ベイクしていく
|
||||
uint frameNo = 0;
|
||||
bool ExitFlag = false;
|
||||
while (!ExitFlag)
|
||||
{
|
||||
ExitFlag = !player.Update();
|
||||
//ボーンのグローバル行列更新
|
||||
boneManager.CalcGlobalTransform();
|
||||
//IK更新
|
||||
boneManager.CalcIK();
|
||||
//ベイク
|
||||
boneManager.bake(frameNo, afterMotion);
|
||||
++frameNo;
|
||||
}
|
||||
//元のMMDMotion2に直して返却
|
||||
return MotionConverter.Convert(afterMotion, motion.ModelName);
|
||||
}
|
||||
|
||||
private static MMDMotion CreateAfterMotionPrototype(MMDMotion beforeMotion, MMDBoneManager boneManager)
|
||||
{
|
||||
//ベイク対象外の情報をコピー
|
||||
MMDMotion result = new MMDMotion();
|
||||
//表情は参照をコピーしておく
|
||||
result.FaceFrames = beforeMotion.FaceFrames;
|
||||
//ボーンは必要分だけ参照をコピー
|
||||
result.BoneFrames = new Dictionary<string, List<MMDBoneKeyFrame>>();
|
||||
foreach (KeyValuePair<string, List<MMDBoneKeyFrame>> boneSet in beforeMotion.BoneFrames)
|
||||
{
|
||||
if (!boneManager.IsUnderIK(boneSet.Key))
|
||||
{
|
||||
result.BoneFrames.Add(boneSet.Key, boneSet.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
result.BoneFrames.Add(boneSet.Key, new List<MMDBoneKeyFrame>());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MMDIKBakerLibrary.Misc
|
||||
{
|
||||
struct BezierCurve
|
||||
{
|
||||
internal const float Epsilon = 1.0e-3f;
|
||||
|
||||
/// <summary>
|
||||
/// ベジェ曲線に用いる点1
|
||||
/// </summary>
|
||||
public Vector2 v1;
|
||||
/// <summary>
|
||||
/// ベジェ曲線に用いる点2
|
||||
/// </summary>
|
||||
public Vector2 v2;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 進行度合から移行度合を取得
|
||||
/// </summary>
|
||||
/// <param name="Progress">進行度合</param>
|
||||
/// <returns>移行度合</returns>
|
||||
public float Evaluate(float Progress)
|
||||
{
|
||||
//ニュートン法による近似
|
||||
float t = MathHelper.Clamp(Progress, 0f, 1f);
|
||||
float dt;
|
||||
do
|
||||
{
|
||||
dt = -(fx(t) - Progress) / dfx(t);
|
||||
|
||||
if (float.IsNaN(dt))
|
||||
break;
|
||||
t += MathHelper.Clamp(dt, -1f, 1f);//大幅に移動して別の解に到達するのを防止する用
|
||||
} while (Math.Abs(dt) > Epsilon);
|
||||
return MathHelper.Clamp(fy(t), 0f, 1f);//念のため、0-1の間に収まるようにした
|
||||
}
|
||||
//fy(t)を計算する関数
|
||||
private float fy(float t)
|
||||
{
|
||||
//fy(t)=(1-t)^3*0+3*(1-t)^2*t*v1.y+3*(1-t)*t^2*v2.y+t^3*1
|
||||
return 3 * (1 - t) * (1 - t) * t * v1.Y + 3 * (1 - t) * t * t * v2.Y + t * t * t;
|
||||
}
|
||||
//fx(t)を計算する関数
|
||||
float fx(float t)
|
||||
{
|
||||
//fx(t)=(1-t)^3*0+3*(1-t)^2*t*v1.x+3*(1-t)*t^2*v2.x+t^3*1
|
||||
return 3 * (1 - t) * (1 - t) * t * v1.X + 3 * (1 - t) * t * t * v2.X + t * t * t;
|
||||
}
|
||||
//dfx/dtを計算する関数
|
||||
float dfx(float t)
|
||||
{
|
||||
//dfx(t)/dt=-6(1-t)*t*v1.x+3(1-t)^2*v1.x-3t^2*v2.x+6(1-t)*t*v2.x+3t^2
|
||||
return -6 * (1 - t) * t * v1.X + 3 * (1 - t) * (1 - t) * v1.X
|
||||
- 3 * t * t * v2.X + 6 * (1 - t) * t * v2.X + 3 * t * t;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,123 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using MMDIKBakerLibrary.Model;
|
||||
|
||||
namespace MMDIKBakerLibrary.Misc
|
||||
{
|
||||
/// <summary>
|
||||
/// CCD-IKソルバー
|
||||
/// </summary>
|
||||
/// <remarks>Cyclic-Coordinate-Descent(CCD)法によるIK計算クラス</remarks>
|
||||
class CCDSolver : IIKSolver
|
||||
{
|
||||
const double errToleranceSq = 1.0e-8f;
|
||||
|
||||
/// <summary>
|
||||
/// IKのソルブ
|
||||
/// </summary>
|
||||
/// <param name="ik">対象IK</param>
|
||||
/// <param name="BoneManager">ボーンマネージャ</param>
|
||||
/// <returns>呼び出し側でUpdateGlobalをもう一度呼ぶ場合はtrue</returns>
|
||||
public bool Solve(MMDIK ik, MMDBoneManager BoneManager)
|
||||
{
|
||||
#if SlimDX
|
||||
Vector4 localTargetPos = Vector4.Zero;
|
||||
Vector4 localEffectorPos = Vector4.Zero;
|
||||
#else
|
||||
Vector3 localTargetPos = Vector3.Zero;
|
||||
Vector3 localEffectorPos = Vector3.Zero;
|
||||
#endif
|
||||
//エフェクタとなるボーンを取得
|
||||
MMDBone effector = ik.IKTargetBone;
|
||||
//IK対象のボーンのGlobalを更新(別のIK影響下のボーンからIKチェインが出ている場合があるので)
|
||||
Matrix local;
|
||||
for (int i = ik.IKChildBones.Count - 1; i >= 0; --i)
|
||||
{//順番に親子関係になっている。(Processorでチェックかけてある
|
||||
//GlobalTransformを仮更新
|
||||
int parentBone = ik.IKChildBones[i].SkeletonHierarchy;
|
||||
ik.IKChildBones[i].LocalTransform.CreateMatrix(out local);
|
||||
Matrix.Multiply(ref local, ref BoneManager[parentBone].GlobalTransform, out ik.IKChildBones[i].GlobalTransform);
|
||||
}
|
||||
effector.LocalTransform.CreateMatrix(out local);
|
||||
Matrix.Multiply(ref local, ref BoneManager[effector.SkeletonHierarchy].GlobalTransform, out effector.GlobalTransform);
|
||||
|
||||
//ターゲット位置の取得
|
||||
Vector3 targetPos;
|
||||
Matrix.GetTranslation(ref ik.IKBone.GlobalTransform, out targetPos);
|
||||
|
||||
//最大ループ回数分ループ
|
||||
for (int it = 0; it < ik.Iteration; ++it)
|
||||
{
|
||||
for (int nodeIndex = 0; nodeIndex < ik.IKChildBones.Count; ++nodeIndex)
|
||||
{//子ノードを子から順番に……
|
||||
MMDBone node = ik.IKChildBones[nodeIndex];
|
||||
//エフェクタの位置
|
||||
Vector3 effectorPos;
|
||||
Matrix.GetTranslation(ref effector.GlobalTransform, out effectorPos);
|
||||
// 注目ノードの位置の取得
|
||||
Vector3 jointPos;
|
||||
Matrix.GetTranslation(ref node.GlobalTransform, out jointPos);
|
||||
|
||||
// ワールド座標系から注目ノードの局所座標系への変換
|
||||
Matrix invCoord;
|
||||
Matrix.Invert(ref node.GlobalTransform, out invCoord);
|
||||
// 各ベクトルの座標変換を行い、検索中のボーンi基準の座標系にする
|
||||
// (1) 注目ノード→エフェクタ位置へのベクトル(a)(注目ノード)
|
||||
Vector3.Transform(ref effectorPos, ref invCoord, out localEffectorPos);
|
||||
// (2) 基準関節i→目標位置へのベクトル(b)(ボーンi基準座標系)
|
||||
Vector3.Transform(ref targetPos, ref invCoord, out localTargetPos);
|
||||
#if SlimDX
|
||||
//念のため……
|
||||
// (1) 基準関節→エフェクタ位置への方向ベクトル
|
||||
Vector3 basis2Effector = Vector3.Normalize(new Vector3(localEffectorPos.X, localEffectorPos.Y, localEffectorPos.Z));
|
||||
// (2) 基準関節→目標位置への方向ベクトル
|
||||
Vector3 basis2Target = Vector3.Normalize(new Vector3(localTargetPos.X, localTargetPos.Y, localTargetPos.Z));
|
||||
#else
|
||||
// (1) 基準関節→エフェクタ位置への方向ベクトル
|
||||
Vector3 basis2Effector = Vector3.Normalize(localEffectorPos);
|
||||
// (2) 基準関節→目標位置への方向ベクトル
|
||||
Vector3 basis2Target = Vector3.Normalize(localTargetPos);
|
||||
#endif
|
||||
|
||||
// 回転角
|
||||
float rotationDotProduct = (float)Vector3.Dot(basis2Effector, basis2Target);
|
||||
float rotationAngle = (float)Math.Acos(rotationDotProduct);
|
||||
|
||||
//回転量制限をかける
|
||||
if (rotationAngle > MathHelper.Pi * ik.ControlWeight * (nodeIndex + 1))
|
||||
rotationAngle = MathHelper.Pi * ik.ControlWeight * (nodeIndex + 1);
|
||||
if (rotationAngle < -MathHelper.Pi * ik.ControlWeight * (nodeIndex + 1))
|
||||
rotationAngle = -MathHelper.Pi * ik.ControlWeight * (nodeIndex + 1);
|
||||
|
||||
// 回転軸
|
||||
Vector3 rotationAxis = Vector3.Cross(basis2Effector, basis2Target);
|
||||
BoneManager.IKLimitter.Adjust(node.Name, ref rotationAxis);
|
||||
rotationAxis.Normalize();
|
||||
|
||||
if (!float.IsNaN(rotationAngle) && rotationAngle > 1.0e-3f && !rotationAxis.NaN)
|
||||
{
|
||||
// 関節回転量の補正
|
||||
Quaternion subRot = Quaternion.CreateFromAxisAngle(rotationAxis, (decimal)rotationAngle);
|
||||
Quaternion.Multiply(ref subRot, ref node.LocalTransform.Rotation, out node.LocalTransform.Rotation);
|
||||
BoneManager.IKLimitter.Adjust(node);
|
||||
//関係ノードのグローバル座標更新
|
||||
for (int i = nodeIndex; i >= 0; --i)
|
||||
{//順番に親子関係になっている。(Processorでチェックかけてある
|
||||
//GlobalTransformを仮更新
|
||||
int parentBone = ik.IKChildBones[i].SkeletonHierarchy;
|
||||
ik.IKChildBones[i].LocalTransform.CreateMatrix(out local);
|
||||
Matrix.Multiply(ref local, ref BoneManager[parentBone].GlobalTransform, out ik.IKChildBones[i].GlobalTransform);
|
||||
}
|
||||
effector.LocalTransform.CreateMatrix(out local);
|
||||
Matrix.Multiply(ref local, ref BoneManager[effector.SkeletonHierarchy].GlobalTransform, out effector.GlobalTransform);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;//UpdateGlobalをもう一度呼ぶ
|
||||
//IKチェインにぶら下がってるIK影響外のボーンを更新するため。
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,273 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MMDIKBakerLibrary.Misc
|
||||
{
|
||||
/// <summary>
|
||||
/// 回転制限クラス
|
||||
/// </summary>
|
||||
public class RotationLimit
|
||||
{
|
||||
/// <summary>
|
||||
/// 最大回転
|
||||
/// </summary>
|
||||
/// <remarks>X回転、Y回転、Z回転制限</remarks>
|
||||
public float[] MaxRot { get; protected set; }
|
||||
/// <summary>
|
||||
/// 最小回転
|
||||
/// </summary>
|
||||
/// <remarks>X回転、Y回転、Z回転制限</remarks>
|
||||
public float[] MinRot { get; protected set; }
|
||||
/// <summary>
|
||||
/// 角度の反射調整機能使用フラグ
|
||||
/// </summary>
|
||||
/// <remarks>IKのCCDソルブは足のIKが<が>になる感じの解を出してくるので、反射してやると上手くいくっぽい</remarks>
|
||||
public bool[] Mirror { get; private set; }
|
||||
/// <summary>
|
||||
/// 角度の反射調整の反発係数
|
||||
/// </summary>
|
||||
public float[] Restitution { get; private set; }
|
||||
/// <summary>
|
||||
/// 角速度の"粘性"係数。IKのソルブの過程で解が"飛ぶ"のを防ぐために設定
|
||||
/// </summary>
|
||||
public float[] Stickness { get; private set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 既定のコンストラクタ
|
||||
/// </summary>
|
||||
public RotationLimit()
|
||||
{
|
||||
MaxRot = new float[3];
|
||||
MinRot = new float[3];
|
||||
Mirror = new bool[3];
|
||||
Restitution = new float[3];
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
MaxRot[i] = MathHelper.Pi;
|
||||
MinRot[i] = -MathHelper.Pi;
|
||||
Mirror[i] = false;
|
||||
Restitution[i] = 0.5f;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 指定した角度をアジャストする
|
||||
/// </summary>
|
||||
/// <param name="value">回転角</param>
|
||||
/// <param name="index">回転軸</param>
|
||||
/// <returns>アジャスト済み角度</returns>
|
||||
public float Adjust(float value, int index)
|
||||
{
|
||||
if (MinRot[index] > MaxRot[index])
|
||||
{//角度が逆なら入れ替えておく
|
||||
float temp = MinRot[index];
|
||||
MinRot[index] = MaxRot[index];
|
||||
MaxRot[index] = temp;
|
||||
}
|
||||
if (MaxRot[index] < value)
|
||||
{
|
||||
if (Mirror[index])
|
||||
return MaxRot[index] * (1 + Restitution[index]) - value * Restitution[index];
|
||||
else
|
||||
return MaxRot[index];
|
||||
}
|
||||
else if (MinRot[index] > value)
|
||||
{
|
||||
if (Mirror[index])
|
||||
return MinRot[index] * (1 + Restitution[index]) - value * Restitution[index];
|
||||
else
|
||||
return MinRot[index];
|
||||
}
|
||||
else
|
||||
return value;
|
||||
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// IK計算時の回転軸制限クラス
|
||||
/// </summary>
|
||||
class RotationAxisLimit
|
||||
{
|
||||
/// <summary>
|
||||
/// 回転制限を行う軸(X,Y,Z)
|
||||
/// </summary>
|
||||
public bool[] Limits { get; private set; }
|
||||
/// <summary>
|
||||
/// 既定のコンストラクタ
|
||||
/// </summary>
|
||||
public RotationAxisLimit()
|
||||
{
|
||||
Limits = new bool[3] { false, false, false };
|
||||
}
|
||||
/// <summary>
|
||||
/// 回転軸制限の適用
|
||||
/// </summary>
|
||||
/// <param name="rotationAxis"></param>
|
||||
public void Adjust(ref Vector3 rotationAxis)
|
||||
{
|
||||
if (Limits[0])
|
||||
{
|
||||
rotationAxis.X = 0;
|
||||
}
|
||||
if (Limits[1])
|
||||
{
|
||||
rotationAxis.Y = 0;
|
||||
}
|
||||
if (Limits[2])
|
||||
{
|
||||
rotationAxis.Z = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 標準IKLimitter
|
||||
/// </summary>
|
||||
class DefaltIKLimitter : IIKLimitter
|
||||
{
|
||||
/// <summary>
|
||||
/// 総合稼働軸制限一覧
|
||||
/// </summary>
|
||||
/// <remarks>ボーン名マッチング用の正規表現オブジェクトと許可回転軸(親ボーン基準)</remarks>
|
||||
Dictionary<string, RotationLimit> TotalRotationLimits { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// IK補正回転軸制限一覧
|
||||
/// </summary>
|
||||
/// <remarks>IK計算をする際の回転軸の制限</remarks>
|
||||
Dictionary<string, RotationAxisLimit> RotationAxisLimits { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 既定のコンストラクタ
|
||||
/// </summary>
|
||||
public DefaltIKLimitter()
|
||||
{
|
||||
//総合稼働制限
|
||||
TotalRotationLimits = new Dictionary<string, RotationLimit>();
|
||||
RotationLimit limit;
|
||||
limit = new RotationLimit();
|
||||
limit.MaxRot[0] = MathHelper.Pi;
|
||||
limit.MinRot[0] = MathHelper.ToRadians(3f);//3度ぐらい制限を設けてやると上手くいく。
|
||||
limit.MinRot[1] = 0;
|
||||
limit.MaxRot[1] = 0;
|
||||
limit.MinRot[2] = 0;
|
||||
limit.MaxRot[2] = 0;
|
||||
limit.Mirror[0] = true;
|
||||
limit.Restitution[0] = 0.99f;
|
||||
TotalRotationLimits.Add("左ひざ", limit);
|
||||
limit = new RotationLimit();
|
||||
limit.MaxRot[0] = MathHelper.Pi;
|
||||
limit.MinRot[0] = MathHelper.ToRadians(3f);//3度ぐらい制限を設けてやると上手くいく。
|
||||
limit.MinRot[1] = 0;
|
||||
limit.MaxRot[1] = 0;
|
||||
limit.MinRot[2] = 0;
|
||||
limit.MaxRot[2] = 0;
|
||||
limit.Mirror[0] = true;
|
||||
limit.Restitution[0] = 0.99f;
|
||||
TotalRotationLimits.Add("右ひざ", limit);
|
||||
|
||||
RotationAxisLimits = new Dictionary<string, RotationAxisLimit>();
|
||||
RotationAxisLimit axisLimit;
|
||||
axisLimit = new RotationAxisLimit();
|
||||
axisLimit.Limits[0] = false;
|
||||
axisLimit.Limits[1] = true;
|
||||
axisLimit.Limits[2] = false;
|
||||
RotationAxisLimits.Add("左足", axisLimit);
|
||||
axisLimit = new RotationAxisLimit();
|
||||
axisLimit.Limits[0] = false;
|
||||
axisLimit.Limits[1] = true;
|
||||
axisLimit.Limits[2] = false;
|
||||
RotationAxisLimits.Add("右足", axisLimit);
|
||||
|
||||
//IKのソルブ及びそれの調整計算に関するメモ
|
||||
//上記数値調整計算及び各種数値設定はMMDの元コード推定(リバースエンジニアリング、逆コンパイラとかはしてないからRエンジニアって言うのか分からないけど)する過程で落ち着いている今のところの解です。
|
||||
//ほんとの解法は樋口さんが知ってるんだろうけどw
|
||||
//解法は今のところIK-CCD法がMMDにとって最適だと考えてます。
|
||||
//理由として
|
||||
//・ひざのボーンにIKソルブ時の角度制限が入っているっぽいので、ソルブにボーンの角度を扱う必要があること
|
||||
//・高速解法が必要であること(MMDが非常に軽いことと、イテレーションの存在とその回数を考えると、軽いアルゴリズムを使ってないとつじつまが合わない)
|
||||
//が上げられます
|
||||
//そこで、CCD,Particleかの二つで、角度を使い易かったCCDを選びました。
|
||||
//ひざの角度調整はCCDのクセを抑える理由もあって工夫してあります。
|
||||
//CCDのクセとして、正しい解が<だとしたら、>という解を出してくることが多いという問題があります。(><は足ですw)
|
||||
//そのために"反発係数"なる謎なパラメータを付けてますw
|
||||
//また、解がほとんどまっすぐな解を出す際に、|な感じの解で固定されてしまう問題があるため、3度ぐらい下限を入れています(どうも、MMDの方も入れてるっぽいけど、よく分からない……)
|
||||
//これは現在の推定結果です。もっと再現性が高い解があれば、改造して、ぜひ教えてください
|
||||
|
||||
//2012/01/19追記分
|
||||
//IK計算の本家MMDとの微妙なズレを発見。
|
||||
//場所は付属モーション(true my heart)の腰振りのあと\(^o^)/な動作に移行する腰振りのところ
|
||||
//足の動きが微妙に本家とズレていることを発見
|
||||
//原因を調査したところ、右足、左足のY軸回転の動きがIKの計算により補正されてしまうのが原因と判明
|
||||
//そのため、新たにaxisLimit機能を追加し、右足、左足がIK計算でY軸回転を補正されないようにした。
|
||||
//これにより他のモーションに影響が出ないかは現在調査中
|
||||
}
|
||||
|
||||
|
||||
|
||||
#region IIKLimitter メンバー
|
||||
/// <summary>
|
||||
/// 制限の適用
|
||||
/// </summary>
|
||||
/// <param name="bone">対象となるボーン</param>
|
||||
public void Adjust(Model.MMDBone bone)
|
||||
{
|
||||
if (!TotalRotationLimits.ContainsKey(bone.Name))
|
||||
return;
|
||||
float YRot, XRot, ZRot;
|
||||
int FactoringType = 0;
|
||||
//if (MMDMath.FactoringQuaternionZXY(rot, out ZRot, out XRot, out YRot))
|
||||
//まずはXYZで分解
|
||||
if (!MathHelper.FactoringQuaternionXYZ(bone.LocalTransform.Rotation, out XRot, out YRot, out ZRot))
|
||||
{//ジンバルロック対策
|
||||
//YZXで分解
|
||||
if (!MathHelper.FactoringQuaternionYZX(bone.LocalTransform.Rotation, out YRot, out ZRot, out XRot))
|
||||
{
|
||||
//ZXYで分解
|
||||
MathHelper.FactoringQuaternionZXY(bone.LocalTransform.Rotation, out ZRot, out XRot, out YRot);
|
||||
FactoringType = 2;
|
||||
}
|
||||
else
|
||||
FactoringType = 1;
|
||||
}
|
||||
else
|
||||
FactoringType = 0;
|
||||
|
||||
RotationLimit lim = TotalRotationLimits[bone.Name];
|
||||
XRot = lim.Adjust(XRot, 0);
|
||||
YRot = lim.Adjust(YRot, 1);
|
||||
ZRot = lim.Adjust(ZRot, 2);
|
||||
if (FactoringType == 0)
|
||||
bone.LocalTransform.Rotation = Quaternion.CreateFromRotationMatrix(
|
||||
Matrix.CreateRotationX(XRot) *
|
||||
Matrix.CreateRotationY(YRot) *
|
||||
Matrix.CreateRotationZ(ZRot));
|
||||
else if (FactoringType == 1)
|
||||
bone.LocalTransform.Rotation = Quaternion.CreateFromRotationMatrix(
|
||||
Matrix.CreateRotationY(YRot) *
|
||||
Matrix.CreateRotationZ(ZRot) *
|
||||
Matrix.CreateRotationX(XRot));
|
||||
else
|
||||
bone.LocalTransform.Rotation = Quaternion.CreateFromYawPitchRoll(YRot, XRot, ZRot);
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 回転軸制限の適用
|
||||
/// </summary>
|
||||
/// <param name="boneName">ボーン名</param>
|
||||
/// <param name="rotationAxis">回転軸</param>
|
||||
public void Adjust(string boneName, ref Vector3 rotationAxis)
|
||||
{
|
||||
RotationAxisLimit limit;
|
||||
if (RotationAxisLimits.TryGetValue(boneName, out limit))
|
||||
{
|
||||
limit.Adjust(ref rotationAxis);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using MMDIKBakerLibrary.Model;
|
||||
|
||||
namespace MMDIKBakerLibrary.Misc
|
||||
{
|
||||
interface IIKLimitter
|
||||
{
|
||||
/// <summary>
|
||||
/// 制限の適用
|
||||
/// </summary>
|
||||
/// <param name="bone">対象となるボーン</param>
|
||||
void Adjust(MMDBone bone);
|
||||
|
||||
/// <summary>
|
||||
/// 回転軸制限の適用
|
||||
/// </summary>
|
||||
/// <param name="boneName">対象となるボーン名</param>
|
||||
/// <param name="rotationAxis">回転軸</param>
|
||||
void Adjust(string boneName, ref Vector3 rotationAxis);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using MMDIKBakerLibrary.Model;
|
||||
|
||||
namespace MMDIKBakerLibrary.Misc
|
||||
{
|
||||
interface IIKSolver
|
||||
{
|
||||
/// <summary>
|
||||
/// IKのソルブ
|
||||
/// </summary>
|
||||
/// <param name="ik">対象IK</param>
|
||||
/// <param name="BoneManager">ボーンマネージャ</param>
|
||||
/// <returns>呼び出し側でUpdateGlobalをもう一度呼ぶ場合はtrue</returns>
|
||||
bool Solve(MMDIK ik, MMDBoneManager BoneManager);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,224 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MMDIKBakerLibrary.Misc
|
||||
{
|
||||
static class MathHelper
|
||||
{
|
||||
public static float Pi { get { return (float)Math.PI; } }
|
||||
public static float PiOver2 { get { return Pi / 2; } }
|
||||
public static decimal Clamp(decimal value, decimal min, decimal max)
|
||||
{
|
||||
return Math.Max(min, Math.Min(value, max));
|
||||
}
|
||||
public static float Clamp(float value, float min, float max)
|
||||
{
|
||||
return Math.Max(min, Math.Min(value, max));
|
||||
}
|
||||
|
||||
|
||||
public static decimal Lerp(decimal value1, decimal value2, decimal amount)
|
||||
{
|
||||
if (value1 == value2)
|
||||
{
|
||||
return value1;
|
||||
}
|
||||
return value1 + (value2 - value1) * Clamp(amount, 0m, 1m);
|
||||
}
|
||||
public static float Lerp(float value1, float value2, float amount)
|
||||
{
|
||||
if (value1 == value2)
|
||||
{
|
||||
return value1;
|
||||
}
|
||||
return value1 + (value2 - value1) * Clamp(amount, 0, 1);
|
||||
}
|
||||
public static BezierCurve[] CreateIdentityCurve()
|
||||
{
|
||||
BezierCurve[] result = new BezierCurve[4];
|
||||
for (int i = 0; i < result.Length; i++)
|
||||
{
|
||||
result[i].v1 = new Vector2 { X = 0.25f, Y = 0.25f };
|
||||
result[i].v2 = new Vector2 { X = 0.75f, Y = 0.75f };
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static int GetMaxArgIndex(params decimal[] argument)
|
||||
{
|
||||
decimal value = decimal.MinValue;
|
||||
int index = -1;
|
||||
for (int i = 0; i < argument.Length; ++i)
|
||||
{
|
||||
if (argument[i] > value)
|
||||
{
|
||||
index = i;
|
||||
value = argument[i];
|
||||
}
|
||||
}
|
||||
return index;
|
||||
}
|
||||
|
||||
public static Vector3 Round(Vector3 vector, int decimals)
|
||||
{
|
||||
return new Vector3(Math.Round(vector.X, decimals),Math.Round(vector.Y, decimals),Math.Round(vector.Z, decimals));
|
||||
}
|
||||
|
||||
public static Quaternion Round(Quaternion rotation, int decimals)
|
||||
{
|
||||
return new Quaternion(Math.Round(rotation.X, decimals), Math.Round(rotation.Y, decimals), Math.Round(rotation.Z, decimals), Math.Round(rotation.W, decimals));
|
||||
}
|
||||
|
||||
internal static Matrix Round(Matrix matrix, int decimals)
|
||||
{
|
||||
return new Matrix()
|
||||
{
|
||||
M11 = Math.Round(matrix.M11, decimals),
|
||||
M12 = Math.Round(matrix.M12, decimals),
|
||||
M13 = Math.Round(matrix.M13, decimals),
|
||||
M14 = Math.Round(matrix.M14, decimals),
|
||||
M21 = Math.Round(matrix.M21, decimals),
|
||||
M22 = Math.Round(matrix.M22, decimals),
|
||||
M23 = Math.Round(matrix.M23, decimals),
|
||||
M24 = Math.Round(matrix.M24, decimals),
|
||||
M31 = Math.Round(matrix.M31, decimals),
|
||||
M32 = Math.Round(matrix.M32, decimals),
|
||||
M33 = Math.Round(matrix.M33, decimals),
|
||||
M34 = Math.Round(matrix.M34, decimals),
|
||||
M41 = Math.Round(matrix.M41, decimals),
|
||||
M42 = Math.Round(matrix.M42, decimals),
|
||||
M43 = Math.Round(matrix.M43, decimals),
|
||||
M44 = Math.Round(matrix.M44, decimals)
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static float ToRadians(float degrees)
|
||||
{
|
||||
return degrees * 0.01745329f;
|
||||
}
|
||||
/// <summary>
|
||||
/// クォータニオンをYaw(Y回転), Pitch(X回転), Roll(Z回転)に分解する関数
|
||||
/// </summary>
|
||||
/// <param name="input">分解するクォータニオン</param>
|
||||
/// <param name="ZRot">Z軸回転</param>
|
||||
/// <param name="XRot">X軸回転(-PI/2~PI/2)</param>
|
||||
/// <param name="YRot">Y軸回転</param>
|
||||
/// <returns>ジンバルロックが発生した時はfalse。ジンバルロックはX軸回転で発生</returns>
|
||||
public static bool FactoringQuaternionZXY(Quaternion input, out float ZRot, out float XRot, out float YRot)
|
||||
{
|
||||
//クォータニオンの正規化
|
||||
Quaternion inputQ = new Quaternion(input.X, input.Y, input.Z, input.W);
|
||||
inputQ.Normalize();
|
||||
//マトリクスを生成する
|
||||
Matrix rot;
|
||||
Matrix.CreateFromQuaternion(ref inputQ, out rot);
|
||||
//ヨー(X軸周りの回転)を取得
|
||||
if ((double)rot.M32 > 1 - 1.0e-4 || (double)rot.M32 < -1 + 1.0e-4)
|
||||
{//ジンバルロック判定
|
||||
XRot = (rot.M32 < 0 ? MathHelper.PiOver2 : -MathHelper.PiOver2);
|
||||
ZRot = 0; YRot = (float)Math.Atan2(-(double)rot.M13, (double) rot.M11);
|
||||
return false;
|
||||
}
|
||||
XRot = -(float)Math.Asin((double)rot.M32);
|
||||
//ロールを取得
|
||||
ZRot = (float)Math.Asin((double)rot.M12 / Math.Cos(XRot));
|
||||
if (float.IsNaN(ZRot))
|
||||
{//漏れ対策
|
||||
XRot = (rot.M32 < 0 ? MathHelper.PiOver2 : -MathHelper.PiOver2);
|
||||
ZRot = 0; YRot = (float)Math.Atan2(-(double)rot.M13, (double)rot.M11);
|
||||
return false;
|
||||
}
|
||||
if (rot.M22 < 0)
|
||||
ZRot = MathHelper.Pi - ZRot;
|
||||
//ピッチを取得
|
||||
YRot = (float)Math.Atan2((double)rot.M31, (double)rot.M33);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// クォータニオンをX,Y,Z回転に分解する関数
|
||||
/// </summary>
|
||||
/// <param name="input">分解するクォータニオン</param>
|
||||
/// <param name="XRot">X軸回転</param>
|
||||
/// <param name="YRot">Y軸回転(-PI/2~PI/2)</param>
|
||||
/// <param name="ZRot">Z軸回転</param>
|
||||
/// <returns></returns>
|
||||
public static bool FactoringQuaternionXYZ(Quaternion input, out float XRot, out float YRot, out float ZRot)
|
||||
{
|
||||
//クォータニオンの正規化
|
||||
Quaternion inputQ = new Quaternion(input.X, input.Y, input.Z, input.W);
|
||||
inputQ.Normalize();
|
||||
//マトリクスを生成する
|
||||
Matrix rot;
|
||||
Matrix.CreateFromQuaternion(ref inputQ, out rot);
|
||||
//Y軸回りの回転を取得
|
||||
if ((double)rot.M13 > 1 - 1.0e-4 || (double)rot.M13 < -1 + 1.0e-4)
|
||||
{//ジンバルロック判定
|
||||
XRot = 0;
|
||||
YRot = (rot.M13 < 0 ? MathHelper.PiOver2 : -MathHelper.PiOver2);
|
||||
ZRot = -(float)Math.Atan2(-(double)rot.M21, (double)rot.M22);
|
||||
return false;
|
||||
}
|
||||
YRot = -(float)Math.Asin((double)rot.M13);
|
||||
//X軸回りの回転を取得
|
||||
XRot = (float)Math.Asin((double)rot.M23 / Math.Cos(YRot));
|
||||
if (float.IsNaN(XRot))
|
||||
{//ジンバルロック判定(漏れ対策)
|
||||
XRot = 0;
|
||||
YRot = (rot.M13 < 0 ? MathHelper.PiOver2 : -MathHelper.PiOver2);
|
||||
ZRot = -(float)Math.Atan2(-(double)rot.M21, (double)rot.M22);
|
||||
return false;
|
||||
}
|
||||
if (rot.M33 < 0)
|
||||
XRot = MathHelper.Pi - XRot;
|
||||
//Z軸回りの回転を取得
|
||||
ZRot = (float)Math.Atan2((double)rot.M12, (double)rot.M11);
|
||||
return true;
|
||||
}
|
||||
/// <summary>
|
||||
/// クォータニオンをY,Z,X回転に分解する関数
|
||||
/// </summary>
|
||||
/// <param name="input">分解するクォータニオン</param>
|
||||
/// <param name="YRot">Y軸回転</param>
|
||||
/// <param name="ZRot">Z軸回転(-PI/2~PI/2)</param>
|
||||
/// <param name="XRot">X軸回転</param>
|
||||
/// <returns></returns>
|
||||
public static bool FactoringQuaternionYZX(Quaternion input, out float YRot, out float ZRot, out float XRot)
|
||||
{
|
||||
//クォータニオンの正規化
|
||||
Quaternion inputQ = new Quaternion(input.X, input.Y, input.Z, input.W);
|
||||
inputQ.Normalize();
|
||||
//マトリクスを生成する
|
||||
Matrix rot;
|
||||
Matrix.CreateFromQuaternion(ref inputQ, out rot);
|
||||
//Z軸回りの回転を取得
|
||||
if ((double)rot.M21 > 1 - 1.0e-4 || (double)rot.M21 < -1 + 1.0e-4)
|
||||
{//ジンバルロック判定
|
||||
YRot = 0;
|
||||
ZRot = (rot.M21 < 0 ? MathHelper.PiOver2 : -MathHelper.PiOver2);
|
||||
XRot = -(float)Math.Atan2(-(double)rot.M32, (double)rot.M33);
|
||||
return false;
|
||||
}
|
||||
ZRot = -(float)Math.Asin((double)rot.M21);
|
||||
//Y軸回りの回転を取得
|
||||
YRot = (float)Math.Asin((double)rot.M31 / Math.Cos(ZRot));
|
||||
if (float.IsNaN(YRot))
|
||||
{//ジンバルロック判定(漏れ対策)
|
||||
YRot = 0;
|
||||
ZRot = (rot.M21 < 0 ? MathHelper.PiOver2 : -MathHelper.PiOver2);
|
||||
XRot = -(float)Math.Atan2(-(double)rot.M32, (double)rot.M33);
|
||||
return false;
|
||||
}
|
||||
if (rot.M11 < 0)
|
||||
YRot = MathHelper.Pi - YRot;
|
||||
//X軸回りの回転を取得
|
||||
XRot = (float)Math.Atan2((double)rot.M23, (double)rot.M22);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,393 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MMDIKBakerLibrary.Misc
|
||||
{
|
||||
struct Matrix
|
||||
{
|
||||
public decimal M11;
|
||||
public decimal M12;
|
||||
public decimal M13;
|
||||
public decimal M14;
|
||||
public decimal M21;
|
||||
public decimal M22;
|
||||
public decimal M23;
|
||||
public decimal M24;
|
||||
public decimal M31;
|
||||
public decimal M32;
|
||||
public decimal M33;
|
||||
public decimal M34;
|
||||
public decimal M41;
|
||||
public decimal M42;
|
||||
public decimal M43;
|
||||
public decimal M44;
|
||||
|
||||
|
||||
public static Matrix Identity
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Matrix { M11 = 1, M12 = 0, M13 = 0, M14 = 0, M21 = 0, M22 = 1, M23 = 0, M24 = 0, M31 = 0, M32 = 0, M33 = 1, M34 = 0, M41 = 0, M42 = 0, M43 = 0, M44 = 1 };
|
||||
}
|
||||
}
|
||||
public Vector3 Translation
|
||||
{
|
||||
get
|
||||
{
|
||||
Vector3 result;
|
||||
result.X = this.M41;
|
||||
result.Y = this.M42;
|
||||
result.Z = this.M43;
|
||||
result.NaN = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void CreateTranslation(decimal x, decimal y, decimal z, out Matrix result)
|
||||
{
|
||||
result.M11 = 1;
|
||||
result.M12 = 0;
|
||||
result.M13 = 0;
|
||||
result.M14 = 0;
|
||||
result.M21 = 0;
|
||||
result.M22 = 1;
|
||||
result.M23 = 0;
|
||||
result.M24 = 0;
|
||||
result.M31 = 0;
|
||||
result.M32 = 0;
|
||||
result.M33 = 1;
|
||||
result.M34 = 0;
|
||||
result.M41 = x;
|
||||
result.M42 = y;
|
||||
result.M43 = z;
|
||||
result.M44 = 1;
|
||||
}
|
||||
|
||||
public static void Invert(ref Matrix matrix, out Matrix result)
|
||||
{
|
||||
decimal temp1 = matrix.M33 * matrix.M44 - matrix.M34 * matrix.M43;
|
||||
decimal temp2 = matrix.M32 * matrix.M44 - matrix.M34 * matrix.M42;
|
||||
decimal temp3 = matrix.M32 * matrix.M43 - matrix.M33 * matrix.M42;
|
||||
decimal temp4 = matrix.M31 * matrix.M44 - matrix.M34 * matrix.M41;
|
||||
decimal temp5 = matrix.M31 * matrix.M43 - matrix.M33 * matrix.M41;
|
||||
decimal temp6 = matrix.M31 * matrix.M42 - matrix.M32 * matrix.M41;
|
||||
decimal temp7 = matrix.M22 * temp1 - matrix.M23 * temp2 + matrix.M24 * temp3;
|
||||
decimal temp8 = -(matrix.M21 * temp1 - matrix.M23 * temp4 + matrix.M24 * temp5);
|
||||
decimal temp9 = matrix.M21 * temp2 - matrix.M22 * temp4 + matrix.M24 * temp6;
|
||||
decimal temp10 = -(matrix.M21 * temp3 - matrix.M22 * temp5 + matrix.M23 * temp6);
|
||||
decimal temp11 = matrix.M23 * matrix.M44 - matrix.M24 * matrix.M43;
|
||||
decimal temp12 = matrix.M22 * matrix.M44 - matrix.M24 * matrix.M42;
|
||||
decimal temp13 = matrix.M22 * matrix.M43 - matrix.M23 * matrix.M42;
|
||||
decimal temp14 = matrix.M21 * matrix.M44 - matrix.M24 * matrix.M41;
|
||||
decimal temp15 = matrix.M21 * matrix.M43 - matrix.M23 * matrix.M41;
|
||||
decimal temp16 = matrix.M21 * matrix.M42 - matrix.M22 * matrix.M41;
|
||||
decimal temp17 = matrix.M23 * matrix.M34 - matrix.M24 * matrix.M33;
|
||||
decimal temp18 = matrix.M22 * matrix.M34 - matrix.M24 * matrix.M32;
|
||||
decimal temp19 = matrix.M22 * matrix.M33 - matrix.M23 * matrix.M32;
|
||||
decimal temp20 = matrix.M21 * matrix.M34 - matrix.M24 * matrix.M31;
|
||||
decimal temp21 = matrix.M21 * matrix.M33 - matrix.M23 * matrix.M31;
|
||||
decimal temp22 = matrix.M21 * matrix.M32 - matrix.M22 * matrix.M31;
|
||||
decimal det = 1m / (matrix.M11 * temp7 + matrix.M12 * temp8 + matrix.M13 * temp9 + matrix.M14 * temp10);
|
||||
result.M11 = temp7 * det;
|
||||
result.M21 = temp8 * det;
|
||||
result.M31 = temp9 * det;
|
||||
result.M41 = temp10 * det;
|
||||
result.M12 = -(matrix.M12 * temp1 - matrix.M13 * temp2 + matrix.M14 * temp3) * det;
|
||||
result.M22 = (matrix.M11 * temp1 - matrix.M13 * temp4 + matrix.M14 * temp5) * det;
|
||||
result.M32 = -(matrix.M11 * temp2 - matrix.M12 * temp4 + matrix.M14 * temp6) * det;
|
||||
result.M42 = (matrix.M11 * temp3 - matrix.M12 * temp5 + matrix.M13 * temp6) * det;
|
||||
result.M13 = (matrix.M12 * temp11 - matrix.M13 * temp12 + matrix.M14 * temp13) * det;
|
||||
result.M23 = -(matrix.M11 * temp11 - matrix.M13 * temp14 + matrix.M14 * temp15) * det;
|
||||
result.M33 = (matrix.M11 * temp12 - matrix.M12 * temp14 + matrix.M14 * temp16) * det;
|
||||
result.M43 = -(matrix.M11 * temp13 - matrix.M12 * temp15 + matrix.M13 * temp16) * det;
|
||||
result.M14 = -(matrix.M12 * temp17 - matrix.M13 * temp18 + matrix.M14 * temp19) * det;
|
||||
result.M24 = (matrix.M11 * temp17 - matrix.M13 * temp20 + matrix.M14 * temp21) * det;
|
||||
result.M34 = -(matrix.M11 * temp18 - matrix.M12 * temp20 + matrix.M14 * temp22) * det;
|
||||
result.M44 = (matrix.M11 * temp19 - matrix.M12 * temp21 + matrix.M13 * temp22) * det;
|
||||
}
|
||||
|
||||
public static void Multiply(ref Matrix matrix1, ref Matrix matrix2, out Matrix result)
|
||||
{
|
||||
result.M11 = matrix1.M11 * matrix2.M11 + matrix1.M12 * matrix2.M21 + matrix1.M13 * matrix2.M31 + matrix1.M14 * matrix2.M41;
|
||||
result.M12 = matrix1.M11 * matrix2.M12 + matrix1.M12 * matrix2.M22 + matrix1.M13 * matrix2.M32 + matrix1.M14 * matrix2.M42;
|
||||
result.M13 = matrix1.M11 * matrix2.M13 + matrix1.M12 * matrix2.M23 + matrix1.M13 * matrix2.M33 + matrix1.M14 * matrix2.M43;
|
||||
result.M14 = matrix1.M11 * matrix2.M14 + matrix1.M12 * matrix2.M24 + matrix1.M13 * matrix2.M34 + matrix1.M14 * matrix2.M44;
|
||||
result.M21 = matrix1.M21 * matrix2.M11 + matrix1.M22 * matrix2.M21 + matrix1.M23 * matrix2.M31 + matrix1.M24 * matrix2.M41;
|
||||
result.M22 = matrix1.M21 * matrix2.M12 + matrix1.M22 * matrix2.M22 + matrix1.M23 * matrix2.M32 + matrix1.M24 * matrix2.M42;
|
||||
result.M23 = matrix1.M21 * matrix2.M13 + matrix1.M22 * matrix2.M23 + matrix1.M23 * matrix2.M33 + matrix1.M24 * matrix2.M43;
|
||||
result.M24 = matrix1.M21 * matrix2.M14 + matrix1.M22 * matrix2.M24 + matrix1.M23 * matrix2.M34 + matrix1.M24 * matrix2.M44;
|
||||
result.M31 = matrix1.M31 * matrix2.M11 + matrix1.M32 * matrix2.M21 + matrix1.M33 * matrix2.M31 + matrix1.M34 * matrix2.M41;
|
||||
result.M32 = matrix1.M31 * matrix2.M12 + matrix1.M32 * matrix2.M22 + matrix1.M33 * matrix2.M32 + matrix1.M34 * matrix2.M42;
|
||||
result.M33 = matrix1.M31 * matrix2.M13 + matrix1.M32 * matrix2.M23 + matrix1.M33 * matrix2.M33 + matrix1.M34 * matrix2.M43;
|
||||
result.M34 = matrix1.M31 * matrix2.M14 + matrix1.M32 * matrix2.M24 + matrix1.M33 * matrix2.M34 + matrix1.M34 * matrix2.M44;
|
||||
result.M41 = matrix1.M41 * matrix2.M11 + matrix1.M42 * matrix2.M21 + matrix1.M43 * matrix2.M31 + matrix1.M44 * matrix2.M41;
|
||||
result.M42 = matrix1.M41 * matrix2.M12 + matrix1.M42 * matrix2.M22 + matrix1.M43 * matrix2.M32 + matrix1.M44 * matrix2.M42;
|
||||
result.M43 = matrix1.M41 * matrix2.M13 + matrix1.M42 * matrix2.M23 + matrix1.M43 * matrix2.M33 + matrix1.M44 * matrix2.M43;
|
||||
result.M44 = matrix1.M41 * matrix2.M14 + matrix1.M42 * matrix2.M24 + matrix1.M43 * matrix2.M34 + matrix1.M44 * matrix2.M44;
|
||||
}
|
||||
public static Matrix operator *(Matrix matrix1, Matrix matrix2)
|
||||
{
|
||||
Matrix result;
|
||||
Matrix.Multiply(ref matrix1, ref matrix2, out result);
|
||||
return result;
|
||||
}
|
||||
public static void CreateScale(ref Vector3 scale, out Matrix result)
|
||||
{
|
||||
result.M11 = scale.X;
|
||||
result.M12 = 0;
|
||||
result.M13 = 0;
|
||||
result.M14 = 0;
|
||||
result.M21 = 0;
|
||||
result.M22 = scale.Y;
|
||||
result.M23 = 0;
|
||||
result.M24 = 0;
|
||||
result.M31 = 0;
|
||||
result.M32 = 0;
|
||||
result.M33 = scale.Z;
|
||||
result.M34 = 0;
|
||||
result.M41 = 0;
|
||||
result.M42 = 0;
|
||||
result.M43 = 0;
|
||||
result.M44 = 1;
|
||||
}
|
||||
public static void CreateFromQuaternion(Quaternion quaternion, out Matrix result)
|
||||
{
|
||||
quaternion.Normalize();
|
||||
decimal xx = quaternion.X * quaternion.X;
|
||||
decimal yy = quaternion.Y * quaternion.Y;
|
||||
decimal zz = quaternion.Z * quaternion.Z;
|
||||
decimal xy = quaternion.X * quaternion.Y;
|
||||
decimal yz = quaternion.Y * quaternion.Z;
|
||||
decimal zx = quaternion.Z * quaternion.X;
|
||||
decimal xw = quaternion.X * quaternion.W;
|
||||
decimal yw = quaternion.Y * quaternion.W;
|
||||
decimal zw = quaternion.Z * quaternion.W;
|
||||
result.M11 = 1 - 2 * (yy + zz);
|
||||
result.M12 = 2 * (xy + zw);
|
||||
result.M13 = 2 * (zx - yw);
|
||||
result.M14 = 0;
|
||||
result.M21 = 2 * (xy - zw);
|
||||
result.M22 = 1 - 2 * (zz + xx);
|
||||
result.M23 = 2 * (yz + xw);
|
||||
result.M24 = 0;
|
||||
result.M31 = 2 * (zx + yw);
|
||||
result.M32 = 2 * (yz - xw);
|
||||
result.M33 = 1 - 2 * (yy + xx);
|
||||
result.M34 = 0;
|
||||
result.M41 = 0;
|
||||
result.M42 = 0;
|
||||
result.M43 = 0;
|
||||
result.M44 = 1;
|
||||
}
|
||||
public static void CreateTranslation(ref Vector3 position, out Matrix result)
|
||||
{
|
||||
result.M11 = 1;
|
||||
result.M12 = 0;
|
||||
result.M13 = 0;
|
||||
result.M14 = 0;
|
||||
result.M21 = 0;
|
||||
result.M22 = 1;
|
||||
result.M23 = 0;
|
||||
result.M24 = 0;
|
||||
result.M31 = 0;
|
||||
result.M32 = 0;
|
||||
result.M33 = 1;
|
||||
result.M34 = 0;
|
||||
result.M41 = position.X;
|
||||
result.M42 = position.Y;
|
||||
result.M43 = position.Z;
|
||||
result.M44 = 1;
|
||||
}
|
||||
|
||||
public void Decompose(out Vector3 scale, out Quaternion rotation, out Vector3 translation)
|
||||
{
|
||||
//移動行列の切り出し
|
||||
translation = new Vector3(M41, M42, M43);
|
||||
//スケールの切り出しと回転行列の作成
|
||||
scale = new Vector3();
|
||||
Matrix rotMatrix = new Matrix();
|
||||
Vector3 temp;
|
||||
temp = new Vector3(M11, M12, M13);
|
||||
scale.X = temp.Length();
|
||||
if (scale.X > 0)
|
||||
{
|
||||
rotMatrix.M11 = M11 / scale.X;
|
||||
rotMatrix.M12 = M12 / scale.X;
|
||||
rotMatrix.M13 = M13 / scale.X;
|
||||
}
|
||||
temp = new Vector3(M21, M22, M23);
|
||||
scale.Y = temp.Length();
|
||||
if (scale.X > 0)
|
||||
{
|
||||
rotMatrix.M21 = M21 / scale.Y;
|
||||
rotMatrix.M22 = M22 / scale.Y;
|
||||
rotMatrix.M23 = M23 / scale.Y;
|
||||
}
|
||||
temp = new Vector3(M31, M32, M33);
|
||||
scale.Z = temp.Length();
|
||||
if (scale.X > 0)
|
||||
{
|
||||
rotMatrix.M31 = M31 / scale.Z;
|
||||
rotMatrix.M32 = M32 / scale.Z;
|
||||
rotMatrix.M33 = M33 / scale.Z;
|
||||
}
|
||||
if (scale.Length() == 0)
|
||||
{
|
||||
throw new ArgumentException("scale成分が不明");
|
||||
}
|
||||
//回転行列をクォータニオンに変換する
|
||||
rotation = new Quaternion();
|
||||
decimal w = (decimal)Math.Sqrt((double)Math.Max(rotMatrix.M11 + rotMatrix.M22 + rotMatrix.M33 + 1, 0)) / 2;
|
||||
decimal tempX = (decimal)Math.Sqrt((double)Math.Max(rotMatrix.M11 - rotMatrix.M22 - rotMatrix.M33 + 1, 0)) / 2;
|
||||
decimal tempY = (decimal)Math.Sqrt((double)Math.Max(-rotMatrix.M11 + rotMatrix.M22 - rotMatrix.M33 + 1, 0)) / 2;
|
||||
decimal tempZ = (decimal)Math.Sqrt((double)Math.Max(-rotMatrix.M11 - rotMatrix.M22 + rotMatrix.M33 + 1, 0)) / 2;
|
||||
int MaxIndex = MathHelper.GetMaxArgIndex(tempX, tempY, tempZ, w);
|
||||
switch (MaxIndex)
|
||||
{
|
||||
case 0://x
|
||||
rotation.X = tempX;
|
||||
rotation.Y = (rotMatrix.M12 + rotMatrix.M21) / (4 * Math.Abs(tempX));
|
||||
rotation.Z = (rotMatrix.M31 + rotMatrix.M13) / (4 * Math.Abs(tempX));
|
||||
rotation.W = (rotMatrix.M23 - rotMatrix.M32) / (4 * Math.Abs(tempX));
|
||||
break;
|
||||
case 1:
|
||||
rotation.X = (rotMatrix.M12 + rotMatrix.M21) / (4 * Math.Abs(tempY));
|
||||
rotation.Y = tempY;
|
||||
rotation.Z = (rotMatrix.M23 + rotMatrix.M32) / (4 * Math.Abs(tempY));
|
||||
rotation.W = (rotMatrix.M31 - rotMatrix.M13) / (4 * Math.Abs(tempY));
|
||||
break;
|
||||
case 2:
|
||||
rotation.X = (rotMatrix.M31 + rotMatrix.M13) / (4 * Math.Abs(tempZ));
|
||||
rotation.Y = (rotMatrix.M23 + rotMatrix.M32) / (4 * Math.Abs(tempZ));
|
||||
rotation.Z = tempZ;
|
||||
rotation.W = (rotMatrix.M12 - rotMatrix.M21) / (4 * Math.Abs(tempZ));
|
||||
break;
|
||||
default://w
|
||||
rotation.X = (rotMatrix.M23 - rotMatrix.M32) / (4 * Math.Abs(w));
|
||||
rotation.Y = (rotMatrix.M31 - rotMatrix.M13) / (4 * Math.Abs(w));
|
||||
rotation.Z = (rotMatrix.M12 - rotMatrix.M21) / (4 * Math.Abs(w));
|
||||
rotation.W = w;
|
||||
break;
|
||||
}
|
||||
}
|
||||
public static void Compose(Vector3 scale,Quaternion rotation, Vector3 translation, out Matrix result)
|
||||
{
|
||||
Matrix scaleMat, rotateMat, translationMat;
|
||||
Matrix.CreateScale(ref scale, out scaleMat);
|
||||
Matrix.CreateFromQuaternion(rotation, out rotateMat);
|
||||
Matrix.CreateTranslation(ref translation, out translationMat);
|
||||
Matrix temp;
|
||||
Multiply(ref scaleMat, ref rotateMat, out temp);
|
||||
Multiply(ref temp, ref translationMat, out result);
|
||||
}
|
||||
|
||||
|
||||
internal static void GetTranslation(ref Matrix matrix, out Vector3 trans)
|
||||
{
|
||||
trans = matrix.Translation;
|
||||
}
|
||||
|
||||
public static Matrix CreateRotationX(float radians)
|
||||
{
|
||||
Matrix result;
|
||||
decimal single1 = (decimal)Math.Cos((double)radians);
|
||||
decimal single2 = (decimal)Math.Sin((double)radians);
|
||||
result.M11 = 1;
|
||||
result.M12 = 0;
|
||||
result.M13 = 0;
|
||||
result.M14 = 0;
|
||||
result.M21 = 0;
|
||||
result.M22 = single1;
|
||||
result.M23 = single2;
|
||||
result.M24 = 0;
|
||||
result.M31 = 0;
|
||||
result.M32 = -single2;
|
||||
result.M33 = single1;
|
||||
result.M34 = 0;
|
||||
result.M41 = 0;
|
||||
result.M42 = 0;
|
||||
result.M43 = 0;
|
||||
result.M44 = 1;
|
||||
return result;
|
||||
}
|
||||
public static Matrix CreateRotationY(float radians)
|
||||
{
|
||||
Matrix result;
|
||||
decimal single1 = (decimal)Math.Cos((double)radians);
|
||||
decimal single2 = (decimal)Math.Sin((double)radians);
|
||||
result.M11 = single1;
|
||||
result.M12 = 0;
|
||||
result.M13 = -single2;
|
||||
result.M14 = 0;
|
||||
result.M21 = 0;
|
||||
result.M22 = 1;
|
||||
result.M23 = 0;
|
||||
result.M24 = 0;
|
||||
result.M31 = single2;
|
||||
result.M32 = 0;
|
||||
result.M33 = single1;
|
||||
result.M34 = 0;
|
||||
result.M41 = 0;
|
||||
result.M42 = 0;
|
||||
result.M43 = 0;
|
||||
result.M44 = 1;
|
||||
return result;
|
||||
}
|
||||
public static Matrix CreateRotationZ(float radians)
|
||||
{
|
||||
Matrix result;
|
||||
decimal single1 = (decimal)Math.Cos((double)radians);
|
||||
decimal single2 = (decimal)Math.Sin((double)radians);
|
||||
result.M11 = single1;
|
||||
result.M12 = single2;
|
||||
result.M13 = 0;
|
||||
result.M14 = 0;
|
||||
result.M21 = -single2;
|
||||
result.M22 = single1;
|
||||
result.M23 = 0;
|
||||
result.M24 = 0;
|
||||
result.M31 = 0;
|
||||
result.M32 = 0;
|
||||
result.M33 = 1;
|
||||
result.M34 = 0;
|
||||
result.M41 = 0;
|
||||
result.M42 = 0;
|
||||
result.M43 = 0;
|
||||
result.M44 = 1;
|
||||
return result;
|
||||
}
|
||||
public static void CreateFromQuaternion(ref Quaternion quaternion, out Matrix result)
|
||||
{
|
||||
decimal xx = quaternion.X * quaternion.X;
|
||||
decimal yy = quaternion.Y * quaternion.Y;
|
||||
decimal zz = quaternion.Z * quaternion.Z;
|
||||
decimal xy = quaternion.X * quaternion.Y;
|
||||
decimal zw = quaternion.Z * quaternion.W;
|
||||
decimal zx = quaternion.Z * quaternion.X;
|
||||
decimal yw = quaternion.Y * quaternion.W;
|
||||
decimal yz = quaternion.Y * quaternion.Z;
|
||||
decimal xw = quaternion.X * quaternion.W;
|
||||
result.M11 = 1 - 2 * (yy + zz);
|
||||
result.M12 = 2 * (xy + zw);
|
||||
result.M13 = 2 * (zx - yw);
|
||||
result.M14 = 0;
|
||||
result.M21 = 2 * (xy - zw);
|
||||
result.M22 = 1 - 2 * (zz + xx);
|
||||
result.M23 = 2 * (yz + xw);
|
||||
result.M24 = 0;
|
||||
result.M31 = 2 * (zx + yw);
|
||||
result.M32 = 2 * (yz - xw);
|
||||
result.M33 = 1 - 2 * (yy + xx);
|
||||
result.M34 = 0;
|
||||
result.M41 = 0;
|
||||
result.M42 = 0;
|
||||
result.M43 = 0;
|
||||
result.M44 = 1;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,123 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MMDIKBakerLibrary.Misc
|
||||
{
|
||||
struct Quaternion
|
||||
{
|
||||
public decimal X;
|
||||
public decimal Y;
|
||||
public decimal Z;
|
||||
public decimal W;
|
||||
|
||||
public static Quaternion Identity { get { return new Quaternion(0, 0, 0, 1); } }
|
||||
|
||||
public Quaternion(decimal x, decimal y, decimal z, decimal w)
|
||||
{
|
||||
X = x; Y = y; Z = z; W = w;
|
||||
}
|
||||
public static void Slerp(ref Quaternion quaternion1, ref Quaternion quaternion2, decimal amount, out Quaternion result)
|
||||
{
|
||||
decimal rate2;
|
||||
decimal rate1;
|
||||
decimal dot = quaternion1.X * quaternion2.X + quaternion1.Y * quaternion2.Y + quaternion1.Z * quaternion2.Z + quaternion1.W * quaternion2.W;
|
||||
bool flag = false;
|
||||
if (dot < 0)
|
||||
{
|
||||
flag = true;
|
||||
dot = -dot;
|
||||
}
|
||||
if (dot > 0.999999m)
|
||||
{
|
||||
rate1 = 1 - amount;
|
||||
rate2 = (flag ? -amount : amount);
|
||||
}
|
||||
else
|
||||
{
|
||||
decimal ph = (decimal)Math.Acos((double)dot);
|
||||
rate1 = (decimal)Math.Sin((double)((1 - amount) * ph)) * (decimal)(1.0f/(float)Math.Sin((double)ph));
|
||||
rate2 = (decimal)Math.Sin((double)(amount * ph)) * (decimal)(1.0f/(float)Math.Sin((double)ph));
|
||||
if (flag)
|
||||
{
|
||||
rate2 = -rate2;
|
||||
}
|
||||
}
|
||||
result.X = rate1 * quaternion1.X + rate2 * quaternion2.X;
|
||||
result.Y = rate1 * quaternion1.Y + rate2 * quaternion2.Y;
|
||||
result.Z = rate1 * quaternion1.Z + rate2 * quaternion2.Z;
|
||||
result.W = rate1 * quaternion1.W + rate2 * quaternion2.W;
|
||||
}
|
||||
public static Quaternion CreateFromAxisAngle(Vector3 axis, decimal angle)
|
||||
{
|
||||
decimal temp = (decimal)Math.Sin((double)angle * 0.5);
|
||||
Quaternion result;
|
||||
result.X = axis.X * temp;
|
||||
result.Y = axis.Y * temp;
|
||||
result.Z = axis.Z * temp;
|
||||
result.W = (decimal)Math.Cos((double)angle * 0.5);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void Normalize()
|
||||
{
|
||||
decimal temp = 1 / (decimal)Math.Sqrt((double)(this.X * this.X + this.Y * this.Y + this.Z * this.Z + this.W * this.W));
|
||||
this.X = this.X * temp;
|
||||
this.Y = this.Y * temp;
|
||||
this.Z = this.Z * temp;
|
||||
this.W = this.W * temp;
|
||||
}
|
||||
|
||||
public static void Multiply(ref Quaternion quaternion1, ref Quaternion quaternion2, out Quaternion result)
|
||||
{
|
||||
result.X = quaternion1.X * quaternion2.W + quaternion2.X * quaternion1.W + quaternion1.Y * quaternion2.Z - quaternion1.Z * quaternion2.Y;
|
||||
result.Y = quaternion1.Y * quaternion2.W + quaternion2.Y * quaternion1.W + quaternion1.Z * quaternion2.X - quaternion1.X * quaternion2.Z;
|
||||
result.Z = quaternion1.Z * quaternion2.W + quaternion2.Z * quaternion1.W + quaternion1.X * quaternion2.Y - quaternion1.Y * quaternion2.X;
|
||||
result.W = quaternion1.W * quaternion2.W - (quaternion1.X * quaternion2.X + quaternion1.Y * quaternion2.Y + quaternion1.Z * quaternion2.Z);
|
||||
}
|
||||
public static Quaternion CreateFromRotationMatrix(Matrix matrix)
|
||||
{
|
||||
decimal diag = matrix.M11 + matrix.M22 + matrix.M33;
|
||||
Quaternion result = new Quaternion();
|
||||
if (diag > 0)
|
||||
{
|
||||
decimal temp1 = (decimal)Math.Sqrt((double)diag + 1);
|
||||
result.W = temp1 * 0.5m;
|
||||
temp1 = 0.5m / temp1;
|
||||
result.X = (matrix.M23 - matrix.M32) * temp1;
|
||||
result.Y = (matrix.M31 - matrix.M13) * temp1;
|
||||
result.Z = (matrix.M12 - matrix.M21) * temp1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (matrix.M11 >= matrix.M22 && matrix.M11 >= matrix.M33)
|
||||
{
|
||||
decimal temp2 = (decimal)Math.Sqrt((double)(1m + matrix.M11 - matrix.M22 - matrix.M33));
|
||||
decimal temp3 = 0.5m / temp2;
|
||||
result.X = 0.5m * temp2;
|
||||
result.Y = (matrix.M12 + matrix.M21) * temp3;
|
||||
result.Z = (matrix.M13 + matrix.M31) * temp3;
|
||||
result.W = (matrix.M23 - matrix.M32) * temp3;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
public static Quaternion CreateFromYawPitchRoll(float yaw, float pitch, float roll)
|
||||
{
|
||||
decimal sin_roll = (decimal)Math.Sin((double)roll * 0.5);
|
||||
decimal cos_roll = (decimal)Math.Cos((double)roll * 0.5);
|
||||
decimal sin_pitch = (decimal)Math.Sin((double)pitch * 0.5);
|
||||
decimal cos_pitch = (decimal)Math.Cos((double)pitch * 0.5);
|
||||
decimal sin_yaw = (decimal)Math.Sin((double)yaw * 0.5);
|
||||
decimal cos_yaw = (decimal)Math.Cos((double)yaw * 0.5);
|
||||
Quaternion result;
|
||||
result.X = cos_yaw * sin_pitch * cos_roll + sin_yaw * cos_pitch * sin_roll;
|
||||
result.Y = sin_yaw * cos_pitch * cos_roll - cos_yaw * sin_pitch * sin_roll;
|
||||
result.Z = cos_yaw * cos_pitch * sin_roll - sin_yaw * sin_pitch * cos_roll;
|
||||
result.W = cos_yaw * cos_pitch * cos_roll + sin_yaw * sin_pitch * sin_roll;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,160 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MMDIKBakerLibrary.Misc
|
||||
{
|
||||
/// <summary>
|
||||
/// 拡大、回転、移動の3つを表す変換
|
||||
/// </summary>
|
||||
struct SQTTransform
|
||||
{
|
||||
#region フィールド
|
||||
/// <summary>
|
||||
/// 拡大
|
||||
/// </summary>
|
||||
public Vector3 Scales;
|
||||
|
||||
/// <summary>
|
||||
/// 回転
|
||||
/// </summary>
|
||||
public Quaternion Rotation;
|
||||
|
||||
/// <summary>
|
||||
/// 平行移動
|
||||
/// </summary>
|
||||
public Vector3 Translation;
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// SQTTransformを生成
|
||||
/// </summary>
|
||||
/// <param name="scales">スケールベクトル</param>
|
||||
/// <param name="rotation">回転クォータニオン</param>
|
||||
/// <param name="translation">移動ベクトル</param>
|
||||
public SQTTransform(Vector3 scales, Quaternion rotation, Vector3 translation)
|
||||
{
|
||||
Scales = scales;
|
||||
Rotation = rotation;
|
||||
Translation = translation;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SQTTransformを生成
|
||||
/// </summary>
|
||||
/// <param name="scales">スケールベクトル</param>
|
||||
/// <param name="rotation">回転クォータニオン</param>
|
||||
/// <param name="translation">移動ベクトル</param>
|
||||
/// <param name="result">SQTTransform</param>
|
||||
public static void Create(ref Vector3 scales, ref Quaternion rotation, ref Vector3 translation, out SQTTransform result)
|
||||
{
|
||||
result = new SQTTransform() { Scales = scales, Rotation = rotation, Translation = translation };
|
||||
}
|
||||
/// <summary>
|
||||
/// 指定された行列から生成する
|
||||
/// </summary>
|
||||
/// <param name="matrix"></param>
|
||||
/// <returns></returns>
|
||||
public static SQTTransform FromMatrix(Matrix matrix)
|
||||
{
|
||||
// 行列の分解
|
||||
Quaternion rotation;
|
||||
Vector3 translation;
|
||||
Vector3 scale;
|
||||
matrix.Decompose(out scale, out rotation, out translation);
|
||||
|
||||
|
||||
return new SQTTransform(scale, rotation, translation);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SQTTransformの乗算
|
||||
/// </summary>
|
||||
public static void Multiply(ref SQTTransform value1, ref SQTTransform value2, out SQTTransform result)
|
||||
{
|
||||
result = new SQTTransform();
|
||||
// 平行移動の算出
|
||||
// 拡大→回転
|
||||
Vector3 temp = new Vector3();
|
||||
Vector3 newTranslation;
|
||||
temp.X = value1.Translation.X * value2.Scales.X;
|
||||
temp.Y = value1.Translation.Y * value2.Scales.Y;
|
||||
temp.Z = value1.Translation.Z * value2.Scales.Z;
|
||||
Vector3.Transform(ref temp, ref value2.Rotation, out newTranslation);
|
||||
|
||||
newTranslation.X += value2.Translation.X;
|
||||
newTranslation.Y += value2.Translation.Y;
|
||||
newTranslation.Z += value2.Translation.Z;
|
||||
|
||||
// 回転部分の結合(回転と拡大は独立だったはず……)
|
||||
Quaternion.Multiply(ref value1.Rotation, ref value2.Rotation,
|
||||
out result.Rotation);
|
||||
//拡大部分の結合
|
||||
result.Scales.X = value1.Scales.X * value2.Scales.X;
|
||||
result.Scales.Y = value1.Scales.Y * value2.Scales.Y;
|
||||
result.Scales.Z = value1.Scales.Z * value2.Scales.Z;
|
||||
result.Translation = newTranslation;
|
||||
}
|
||||
internal Matrix CreateMatrix()
|
||||
{
|
||||
Matrix result;
|
||||
CreateMatrix(out result);
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// マトリックスの生成
|
||||
/// </summary>
|
||||
/// <param name="result">マトリックス</param>
|
||||
public void CreateMatrix(out Matrix result)
|
||||
{
|
||||
Matrix scales;
|
||||
Matrix move;
|
||||
Matrix rot;
|
||||
Matrix temp;
|
||||
|
||||
Matrix.CreateScale(ref Scales, out scales);
|
||||
Matrix.CreateTranslation(ref Translation, out move);
|
||||
Matrix.CreateFromQuaternion(Rotation, out rot);
|
||||
Matrix.Multiply(ref scales, ref rot, out temp);
|
||||
Matrix.Multiply(ref temp, ref move, out result);
|
||||
|
||||
}
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// 恒等SQTTransformを返します
|
||||
/// </summary>
|
||||
public static SQTTransform Identity { get { return new SQTTransform(new Vector3(1, 1, 1), Quaternion.Identity, Vector3.Zero); } }
|
||||
#region 初期化
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 姿勢の線形補間
|
||||
/// </summary>
|
||||
/// <param name="pose1">姿勢1</param>
|
||||
/// <param name="pose2">姿勢2</param>
|
||||
/// <param name="amount">補完係数(0-1)</param>
|
||||
/// <param name="result">線形補間された姿勢</param>
|
||||
/// <remarks>Quaternionは球状線形補間を使用</remarks>
|
||||
internal static void Lerp(ref SQTTransform pose1, ref SQTTransform pose2, float amount, out SQTTransform result)
|
||||
{
|
||||
Vector3.Lerp(ref pose1.Scales, ref pose2.Scales, amount, out result.Scales);
|
||||
Vector3.Lerp(ref pose1.Translation, ref pose2.Translation, amount, out result.Translation);
|
||||
Quaternion.Slerp(ref pose1.Rotation, ref pose2.Rotation, amount, out result.Rotation);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MMDIKBakerLibrary.Misc
|
||||
{
|
||||
struct Vector2
|
||||
{
|
||||
public float X;
|
||||
public float Y;
|
||||
public Vector2(float x, float y)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,120 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MMDIKBakerLibrary.Misc
|
||||
{
|
||||
struct Vector3
|
||||
{
|
||||
public decimal X;
|
||||
public decimal Y;
|
||||
public decimal Z;
|
||||
public bool NaN;
|
||||
public static Vector3 Zero { get { return new Vector3(); } }
|
||||
public static Vector3 One { get { return new Vector3(1, 1, 1); } }
|
||||
|
||||
public Vector3(decimal x, decimal y, decimal z)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
Z = z;
|
||||
NaN = false;
|
||||
}
|
||||
|
||||
public static void Lerp(ref Vector3 value1, ref Vector3 value2, decimal amount, out Vector3 result)
|
||||
{
|
||||
result.X = value1.X + (value2.X - value1.X) * amount;
|
||||
result.Y = value1.Y + (value2.Y - value1.Y) * amount;
|
||||
result.Z = value1.Z + (value2.Z - value1.Z) * amount;
|
||||
result.NaN = false;
|
||||
}
|
||||
|
||||
public decimal Length()
|
||||
{
|
||||
return (decimal)Math.Sqrt((double)(X * X + Y * Y + Z * Z));
|
||||
}
|
||||
|
||||
public static void Transform(ref Vector3 value, ref Quaternion rotation, out Vector3 result)
|
||||
{
|
||||
decimal xx = rotation.X * rotation.X * 2m;
|
||||
decimal xy = rotation.X * rotation.Y * 2m;
|
||||
decimal xz = rotation.X * rotation.Z * 2m;
|
||||
decimal xw = rotation.W * rotation.X * 2m;
|
||||
decimal yy = rotation.Y * rotation.Y * 2m;
|
||||
decimal yz = rotation.Y * rotation.Z * 2m;
|
||||
decimal yw = rotation.W * rotation.Y * 2m;
|
||||
decimal zz = rotation.Z * rotation.Z * 2m;
|
||||
decimal zw = rotation.W * rotation.Z * 2m;
|
||||
result.X = value.X * (1 - yy - zz) + value.Y * (xy - zw) + value.Z * (xz + yw);
|
||||
result.Y = value.X * (xy + zw) + value.Y * (1 - xx - zz) + value.Z * (yz - xw);
|
||||
result.Z = value.X * (xz - yw) + value.Y * (yz + xw) + value.Z * (1 - xx - yy);
|
||||
result.NaN = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static Vector3 Normalize(Vector3 value)
|
||||
{
|
||||
decimal len2 = value.X * value.X + value.Y * value.Y + value.Z * value.Z;
|
||||
Vector3 result;
|
||||
if (len2 == 0)
|
||||
{
|
||||
result.X = 0;
|
||||
result.Y = 0;
|
||||
result.Z = 0;
|
||||
result.NaN = true;
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
result.X = value.X / (decimal)Math.Sqrt((double)len2);
|
||||
result.Y = value.Y / (decimal)Math.Sqrt((double)len2);
|
||||
result.Z = value.Z / (decimal)Math.Sqrt((double)len2);
|
||||
result.NaN = false;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public static decimal Dot(Vector3 vector1, Vector3 vector2)
|
||||
{
|
||||
return vector1.X * vector2.X + vector1.Y * vector2.Y + vector1.Z * vector2.Z;
|
||||
}
|
||||
|
||||
public static Vector3 Cross(Vector3 vector1, Vector3 vector2)
|
||||
{
|
||||
Vector3 result;
|
||||
result.X = vector1.Y * vector2.Z - vector1.Z * vector2.Y;
|
||||
result.Y = vector1.Z * vector2.X - vector1.X * vector2.Z;
|
||||
result.Z = vector1.X * vector2.Y - vector1.Y * vector2.X;
|
||||
result.NaN = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static void Transform(ref Vector3 position, ref Matrix matrix, out Vector3 result)
|
||||
{
|
||||
result.X = position.X * matrix.M11 + position.Y * matrix.M21 + position.Z * matrix.M31 + matrix.M41;
|
||||
result.Y = position.X * matrix.M12 + position.Y * matrix.M22 + position.Z * matrix.M32 + matrix.M42;
|
||||
result.Z = position.X * matrix.M13 + position.Y * matrix.M23 + position.Z * matrix.M33 + matrix.M43;
|
||||
result.NaN = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void Normalize()
|
||||
{
|
||||
decimal len2 = X * X + Y * Y + Z * Z;
|
||||
if (len2 == 0)
|
||||
{
|
||||
NaN = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
X /= (decimal)Math.Sqrt((double)len2);
|
||||
Y /= (decimal)Math.Sqrt((double)len2);
|
||||
Z /= (decimal)Math.Sqrt((double)len2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using MMDIKBakerLibrary.Misc;
|
||||
|
||||
namespace MMDIKBakerLibrary.Model
|
||||
{
|
||||
class MMDBone
|
||||
{
|
||||
/// <summary>
|
||||
/// ボーンの名前
|
||||
/// </summary>
|
||||
public readonly string Name;
|
||||
|
||||
/// <summary>
|
||||
/// ボーンのバインドポーズ行列
|
||||
/// </summary>
|
||||
public readonly SQTTransform BindPose;
|
||||
/// <summary>
|
||||
/// ボーンのバインドポーズ逆行列
|
||||
/// </summary>
|
||||
/// <remarks>変更しないこと……</remarks>
|
||||
public Matrix InverseBindPose;
|
||||
/// <summary>
|
||||
/// ボーンの親のボーンのインデックス情報
|
||||
/// </summary>
|
||||
/// <remarks>親が無い場合は-1</remarks>
|
||||
public readonly int SkeletonHierarchy;
|
||||
|
||||
/// <summary>
|
||||
/// ボーンのローカル変換行列
|
||||
/// </summary>
|
||||
/// <remarks>アニメーション再生時にはアニメーションにより上書きされる</remarks>
|
||||
public SQTTransform LocalTransform;
|
||||
|
||||
/// <summary>
|
||||
/// ボーンのグローバル変換行列
|
||||
/// </summary>
|
||||
/// <remarks>毎フレームごとにLocalTransformから計算され、上書きされる</remarks>
|
||||
public Matrix GlobalTransform;
|
||||
/// <summary>
|
||||
/// コンストラクタ
|
||||
/// </summary>
|
||||
/// <param name="name">名前</param>
|
||||
/// <param name="bindPose">バインドポーズ</param>
|
||||
/// <param name="inverseBindPose">逆バインドポーズ</param>
|
||||
/// <param name="skeletonHierarchy">親ボーン番号</param>
|
||||
public MMDBone(string name, SQTTransform bindPose, Matrix inverseBindPose, int skeletonHierarchy)
|
||||
{
|
||||
Name = name;
|
||||
BindPose = bindPose;
|
||||
InverseBindPose = inverseBindPose;
|
||||
SkeletonHierarchy = skeletonHierarchy;
|
||||
LocalTransform = bindPose;
|
||||
GlobalTransform = Matrix.Identity;
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user