Merge branch 'master' of https://github.com/Birb-Games-Studio/Robber-and-Dobber
This commit is contained in:
commit
bfb61b0709
51 changed files with 6502 additions and 45 deletions
8
Assets/FastIK.meta
Normal file
8
Assets/FastIK.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 207b590c301e10b4b905bd2f07cf7503
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
37
Assets/FastIK/Documentation.txt
Normal file
37
Assets/FastIK/Documentation.txt
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
==========================
|
||||||
|
Intro
|
||||||
|
==========================
|
||||||
|
There are two components for IK. The first on is the "Fast IK Fabric". The secound one is the "Fast IK Look". These will affect your bones.
|
||||||
|
|
||||||
|
==========================
|
||||||
|
Fast IK Fabric
|
||||||
|
==========================
|
||||||
|
Add the component to the last chain element for your IK chain and set the values.
|
||||||
|
|
||||||
|
ChainLength (required): Chain length of bones
|
||||||
|
Target (required): The target of the IK
|
||||||
|
Pole (optional): Pole for bending the chain
|
||||||
|
Iterations (required): Iterations to find good IK angles. Everything > 1 should be fine. (runtime / quality tradeoff)
|
||||||
|
Delta (required): At which recision the algorithm should stop. (runtime / quality tradeoff)
|
||||||
|
SnapBackStrength (required): The force that is used to get back to the start position of the bones.
|
||||||
|
|
||||||
|
During runtime you can move the target and the pole. You could also move the first bone of the chain. The other bones are imovable.
|
||||||
|
|
||||||
|
==> Look at the demo scene of an example
|
||||||
|
|
||||||
|
==========================
|
||||||
|
Fast IK Look
|
||||||
|
==========================
|
||||||
|
Add the component to the chain element for any bone in you rig.
|
||||||
|
|
||||||
|
Target (required): The target that should be faced
|
||||||
|
|
||||||
|
During runtime you can move the target.
|
||||||
|
|
||||||
|
==> Look at the demo scene of an example
|
||||||
|
|
||||||
|
|
||||||
|
==========================
|
||||||
|
Support
|
||||||
|
==========================
|
||||||
|
xxxditzelxxx@gmail.com
|
||||||
7
Assets/FastIK/Documentation.txt.meta
Normal file
7
Assets/FastIK/Documentation.txt.meta
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 50c41e2736ac46b4896db6d5ff3dfd34
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/FastIK/Materials.meta
Normal file
8
Assets/FastIK/Materials.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b6622e8d857714a418f3ed3adc9f9db8
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
77
Assets/FastIK/Materials/Blue.mat
Normal file
77
Assets/FastIK/Materials/Blue.mat
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Blue
|
||||||
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _UVSec: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 0, g: 0.13894452, b: 0.745283, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
8
Assets/FastIK/Materials/Blue.mat.meta
Normal file
8
Assets/FastIK/Materials/Blue.mat.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fa90469962b931942a75625f15e8b8d7
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
77
Assets/FastIK/Materials/Green.mat
Normal file
77
Assets/FastIK/Materials/Green.mat
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Green
|
||||||
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _UVSec: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 0, g: 1, b: 0.16457057, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
8
Assets/FastIK/Materials/Green.mat.meta
Normal file
8
Assets/FastIK/Materials/Green.mat.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 17e84c9ab634c724682be1805a100459
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
77
Assets/FastIK/Materials/Red.mat
Normal file
77
Assets/FastIK/Materials/Red.mat
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Red
|
||||||
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _UVSec: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 0.07623219, b: 0, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
8
Assets/FastIK/Materials/Red.mat.meta
Normal file
8
Assets/FastIK/Materials/Red.mat.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d8d2429354579e04fbb07291a41985c3
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
77
Assets/FastIK/Materials/White.mat
Normal file
77
Assets/FastIK/Materials/White.mat
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: White
|
||||||
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _UVSec: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
8
Assets/FastIK/Materials/White.mat.meta
Normal file
8
Assets/FastIK/Materials/White.mat.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1180c668e99e6ae4ba7117426c5d687c
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
77
Assets/FastIK/Materials/Yellow.mat
Normal file
77
Assets/FastIK/Materials/Yellow.mat
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Yellow
|
||||||
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _UVSec: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 0, b: 0.87304306, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
8
Assets/FastIK/Materials/Yellow.mat.meta
Normal file
8
Assets/FastIK/Materials/Yellow.mat.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0c661c0cf3a53b24fa613b2ff111e7e5
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/FastIK/Models.meta
Normal file
8
Assets/FastIK/Models.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3b5e70f7867a8044f981f0f61c2d8523
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/FastIK/Models/Figure.meta
Normal file
8
Assets/FastIK/Models/Figure.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7b79d7aa5e0a163489b1fbf9cf7e629c
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
72
Assets/FastIK/Models/Figure/Man.controller
Normal file
72
Assets/FastIK/Models/Figure/Man.controller
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!91 &9100000
|
||||||
|
AnimatorController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Man
|
||||||
|
serializedVersion: 5
|
||||||
|
m_AnimatorParameters: []
|
||||||
|
m_AnimatorLayers:
|
||||||
|
- serializedVersion: 5
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_StateMachine: {fileID: 1107896466864511844}
|
||||||
|
m_Mask: {fileID: 0}
|
||||||
|
m_Motions: []
|
||||||
|
m_Behaviours: []
|
||||||
|
m_BlendingMode: 0
|
||||||
|
m_SyncedLayerIndex: -1
|
||||||
|
m_DefaultWeight: 0
|
||||||
|
m_IKPass: 0
|
||||||
|
m_SyncedLayerAffectsTiming: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
|
--- !u!1102 &1102659928964303836
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: WalkAnimation
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: 7400000, guid: e84631770192ab442b14192ffcaa1aa9, type: 2}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1107 &1107896466864511844
|
||||||
|
AnimatorStateMachine:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_ChildStates:
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 1102659928964303836}
|
||||||
|
m_Position: {x: 290, y: 120, z: 0}
|
||||||
|
m_ChildStateMachines: []
|
||||||
|
m_AnyStateTransitions: []
|
||||||
|
m_EntryTransitions: []
|
||||||
|
m_StateMachineTransitions: {}
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||||
|
m_EntryPosition: {x: 50, y: 120, z: 0}
|
||||||
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
|
m_DefaultState: {fileID: 1102659928964303836}
|
||||||
8
Assets/FastIK/Models/Figure/Man.controller.meta
Normal file
8
Assets/FastIK/Models/Figure/Man.controller.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 185ad0fe441561547bac250303bd05f3
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 9100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
2269
Assets/FastIK/Models/Figure/Walk.anim
Normal file
2269
Assets/FastIK/Models/Figure/Walk.anim
Normal file
File diff suppressed because it is too large
Load diff
8
Assets/FastIK/Models/Figure/Walk.anim.meta
Normal file
8
Assets/FastIK/Models/Figure/Walk.anim.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f4256cc7d45c3b54a8121ee6c9abe1dc
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 7400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
72
Assets/FastIK/Models/Figure/Wood.controller
Normal file
72
Assets/FastIK/Models/Figure/Wood.controller
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!91 &9100000
|
||||||
|
AnimatorController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Wood
|
||||||
|
serializedVersion: 5
|
||||||
|
m_AnimatorParameters: []
|
||||||
|
m_AnimatorLayers:
|
||||||
|
- serializedVersion: 5
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_StateMachine: {fileID: 1107319742266174838}
|
||||||
|
m_Mask: {fileID: 0}
|
||||||
|
m_Motions: []
|
||||||
|
m_Behaviours: []
|
||||||
|
m_BlendingMode: 0
|
||||||
|
m_SyncedLayerIndex: -1
|
||||||
|
m_DefaultWeight: 0
|
||||||
|
m_IKPass: 0
|
||||||
|
m_SyncedLayerAffectsTiming: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
|
--- !u!1102 &1102402944154963520
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Walk
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: 7400000, guid: f4256cc7d45c3b54a8121ee6c9abe1dc, type: 2}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1107 &1107319742266174838
|
||||||
|
AnimatorStateMachine:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_ChildStates:
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 1102402944154963520}
|
||||||
|
m_Position: {x: 200, y: 0, z: 0}
|
||||||
|
m_ChildStateMachines: []
|
||||||
|
m_AnyStateTransitions: []
|
||||||
|
m_EntryTransitions: []
|
||||||
|
m_StateMachineTransitions: {}
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||||
|
m_EntryPosition: {x: 50, y: 120, z: 0}
|
||||||
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
|
m_DefaultState: {fileID: 1102402944154963520}
|
||||||
8
Assets/FastIK/Models/Figure/Wood.controller.meta
Normal file
8
Assets/FastIK/Models/Figure/Wood.controller.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 84fa81eb1216e514a8567506646d8009
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 9100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
3
Assets/FastIK/Models/Figure/Wood.fbx
Normal file
3
Assets/FastIK/Models/Figure/Wood.fbx
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:7b844d8ee1daec9db961c97feb8881ee1f694a057a24d8a0bd9c80a935620e59
|
||||||
|
size 521804
|
||||||
165
Assets/FastIK/Models/Figure/Wood.fbx.meta
Normal file
165
Assets/FastIK/Models/Figure/Wood.fbx.meta
Normal file
|
|
@ -0,0 +1,165 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9251f384b071861468e65c0fc55b87e9
|
||||||
|
ModelImporter:
|
||||||
|
serializedVersion: 23
|
||||||
|
fileIDToRecycleName:
|
||||||
|
100000: foot.L
|
||||||
|
100002: foot.R
|
||||||
|
100004: forearm.L
|
||||||
|
100006: forearm.R
|
||||||
|
100008: hand.L
|
||||||
|
100010: hand.L_end
|
||||||
|
100012: hand.R
|
||||||
|
100014: hand.R_end
|
||||||
|
100016: Larry
|
||||||
|
100018: metarig
|
||||||
|
100020: pelvis.L
|
||||||
|
100022: pelvis.L_end
|
||||||
|
100024: pelvis.R
|
||||||
|
100026: pelvis.R_end
|
||||||
|
100028: shin.L
|
||||||
|
100030: shin.R
|
||||||
|
100032: shoulder.L
|
||||||
|
100034: shoulder.R
|
||||||
|
100036: spine
|
||||||
|
100038: spine.001
|
||||||
|
100040: spine.002
|
||||||
|
100042: spine.003
|
||||||
|
100044: spine.004
|
||||||
|
100046: spine.005
|
||||||
|
100048: spine.006
|
||||||
|
100050: spine.006_end
|
||||||
|
100052: thigh.L
|
||||||
|
100054: thigh.R
|
||||||
|
100056: toe.L
|
||||||
|
100058: toe.L_end
|
||||||
|
100060: toe.R
|
||||||
|
100062: toe.R_end
|
||||||
|
100064: upper_arm.L
|
||||||
|
100066: upper_arm.R
|
||||||
|
100068: //RootNode
|
||||||
|
400000: foot.L
|
||||||
|
400002: foot.R
|
||||||
|
400004: forearm.L
|
||||||
|
400006: forearm.R
|
||||||
|
400008: hand.L
|
||||||
|
400010: hand.L_end
|
||||||
|
400012: hand.R
|
||||||
|
400014: hand.R_end
|
||||||
|
400016: Larry
|
||||||
|
400018: metarig
|
||||||
|
400020: pelvis.L
|
||||||
|
400022: pelvis.L_end
|
||||||
|
400024: pelvis.R
|
||||||
|
400026: pelvis.R_end
|
||||||
|
400028: shin.L
|
||||||
|
400030: shin.R
|
||||||
|
400032: shoulder.L
|
||||||
|
400034: shoulder.R
|
||||||
|
400036: spine
|
||||||
|
400038: spine.001
|
||||||
|
400040: spine.002
|
||||||
|
400042: spine.003
|
||||||
|
400044: spine.004
|
||||||
|
400046: spine.005
|
||||||
|
400048: spine.006
|
||||||
|
400050: spine.006_end
|
||||||
|
400052: thigh.L
|
||||||
|
400054: thigh.R
|
||||||
|
400056: toe.L
|
||||||
|
400058: toe.L_end
|
||||||
|
400060: toe.R
|
||||||
|
400062: toe.R_end
|
||||||
|
400064: upper_arm.L
|
||||||
|
400066: upper_arm.R
|
||||||
|
400068: //RootNode
|
||||||
|
2100000: Material
|
||||||
|
4300000: Larry
|
||||||
|
9500000: //RootNode
|
||||||
|
13700000: Larry
|
||||||
|
externalObjects: {}
|
||||||
|
materials:
|
||||||
|
importMaterials: 0
|
||||||
|
materialName: 0
|
||||||
|
materialSearch: 1
|
||||||
|
materialLocation: 1
|
||||||
|
animations:
|
||||||
|
legacyGenerateAnimations: 4
|
||||||
|
bakeSimulation: 0
|
||||||
|
resampleCurves: 1
|
||||||
|
optimizeGameObjects: 0
|
||||||
|
motionNodeName:
|
||||||
|
rigImportErrors:
|
||||||
|
rigImportWarnings:
|
||||||
|
animationImportErrors:
|
||||||
|
animationImportWarnings:
|
||||||
|
animationRetargetingWarnings:
|
||||||
|
animationDoRetargetingWarnings: 0
|
||||||
|
importAnimatedCustomProperties: 0
|
||||||
|
importConstraints: 0
|
||||||
|
animationCompression: 1
|
||||||
|
animationRotationError: 0.5
|
||||||
|
animationPositionError: 0.5
|
||||||
|
animationScaleError: 0.5
|
||||||
|
animationWrapMode: 0
|
||||||
|
extraExposedTransformPaths: []
|
||||||
|
extraUserProperties: []
|
||||||
|
clipAnimations: []
|
||||||
|
isReadable: 1
|
||||||
|
meshes:
|
||||||
|
lODScreenPercentages: []
|
||||||
|
globalScale: 1
|
||||||
|
meshCompression: 0
|
||||||
|
addColliders: 0
|
||||||
|
useSRGBMaterialColor: 1
|
||||||
|
importVisibility: 1
|
||||||
|
importBlendShapes: 1
|
||||||
|
importCameras: 1
|
||||||
|
importLights: 1
|
||||||
|
swapUVChannels: 0
|
||||||
|
generateSecondaryUV: 0
|
||||||
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 1
|
||||||
|
keepQuads: 0
|
||||||
|
weldVertices: 1
|
||||||
|
preserveHierarchy: 0
|
||||||
|
indexFormat: 0
|
||||||
|
secondaryUVAngleDistortion: 8
|
||||||
|
secondaryUVAreaDistortion: 15.000001
|
||||||
|
secondaryUVHardAngle: 88
|
||||||
|
secondaryUVPackMargin: 4
|
||||||
|
useFileScale: 1
|
||||||
|
previousCalculatedGlobalScale: 0.01
|
||||||
|
hasPreviousCalculatedGlobalScale: 1
|
||||||
|
tangentSpace:
|
||||||
|
normalSmoothAngle: 180
|
||||||
|
normalImportMode: 1
|
||||||
|
tangentImportMode: 3
|
||||||
|
normalCalculationMode: 4
|
||||||
|
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||||
|
blendShapeNormalImportMode: 1
|
||||||
|
normalSmoothingSource: 0
|
||||||
|
importAnimation: 0
|
||||||
|
copyAvatar: 0
|
||||||
|
humanDescription:
|
||||||
|
serializedVersion: 2
|
||||||
|
human: []
|
||||||
|
skeleton: []
|
||||||
|
armTwist: 0.5
|
||||||
|
foreArmTwist: 0.5
|
||||||
|
upperLegTwist: 0.5
|
||||||
|
legTwist: 0.5
|
||||||
|
armStretch: 0.05
|
||||||
|
legStretch: 0.05
|
||||||
|
feetSpacing: 0
|
||||||
|
rootMotionBoneName:
|
||||||
|
hasTranslationDoF: 0
|
||||||
|
hasExtraRoot: 0
|
||||||
|
skeletonHasParents: 1
|
||||||
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
|
animationType: 2
|
||||||
|
humanoidOversampling: 1
|
||||||
|
additionalBone: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/FastIK/Models/tentacle.meta
Normal file
8
Assets/FastIK/Models/tentacle.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 453d047613c6d10408829b1707cd03d3
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
3
Assets/FastIK/Models/tentacle/tentacle.fbx
Normal file
3
Assets/FastIK/Models/tentacle/tentacle.fbx
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:675aeae57334491ab1ed0d45969dc47610edc781b448484807eaed793d9405b9
|
||||||
|
size 117644
|
||||||
112
Assets/FastIK/Models/tentacle/tentacle.fbx.meta
Normal file
112
Assets/FastIK/Models/tentacle/tentacle.fbx.meta
Normal file
|
|
@ -0,0 +1,112 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 501a1c242d0d8124ba3406778e346e75
|
||||||
|
ModelImporter:
|
||||||
|
serializedVersion: 23
|
||||||
|
fileIDToRecycleName:
|
||||||
|
100000: Armature
|
||||||
|
100002: Bone
|
||||||
|
100004: Bone.001
|
||||||
|
100006: Bone.002
|
||||||
|
100008: Bone.003
|
||||||
|
100010: Bone.003_end
|
||||||
|
100012: Cylinder
|
||||||
|
100014: //RootNode
|
||||||
|
400000: Armature
|
||||||
|
400002: Bone
|
||||||
|
400004: Bone.001
|
||||||
|
400006: Bone.002
|
||||||
|
400008: Bone.003
|
||||||
|
400010: Bone.003_end
|
||||||
|
400012: Cylinder
|
||||||
|
400014: //RootNode
|
||||||
|
2100000: Material.001
|
||||||
|
2100002: Material.002
|
||||||
|
4300000: Cylinder
|
||||||
|
9500000: //RootNode
|
||||||
|
13700000: Cylinder
|
||||||
|
externalObjects: {}
|
||||||
|
materials:
|
||||||
|
importMaterials: 0
|
||||||
|
materialName: 0
|
||||||
|
materialSearch: 1
|
||||||
|
materialLocation: 1
|
||||||
|
animations:
|
||||||
|
legacyGenerateAnimations: 4
|
||||||
|
bakeSimulation: 0
|
||||||
|
resampleCurves: 1
|
||||||
|
optimizeGameObjects: 0
|
||||||
|
motionNodeName:
|
||||||
|
rigImportErrors:
|
||||||
|
rigImportWarnings:
|
||||||
|
animationImportErrors:
|
||||||
|
animationImportWarnings:
|
||||||
|
animationRetargetingWarnings:
|
||||||
|
animationDoRetargetingWarnings: 0
|
||||||
|
importAnimatedCustomProperties: 0
|
||||||
|
importConstraints: 0
|
||||||
|
animationCompression: 1
|
||||||
|
animationRotationError: 0.5
|
||||||
|
animationPositionError: 0.5
|
||||||
|
animationScaleError: 0.5
|
||||||
|
animationWrapMode: 0
|
||||||
|
extraExposedTransformPaths: []
|
||||||
|
extraUserProperties: []
|
||||||
|
clipAnimations: []
|
||||||
|
isReadable: 1
|
||||||
|
meshes:
|
||||||
|
lODScreenPercentages: []
|
||||||
|
globalScale: 1
|
||||||
|
meshCompression: 0
|
||||||
|
addColliders: 0
|
||||||
|
useSRGBMaterialColor: 1
|
||||||
|
importVisibility: 1
|
||||||
|
importBlendShapes: 1
|
||||||
|
importCameras: 1
|
||||||
|
importLights: 1
|
||||||
|
swapUVChannels: 0
|
||||||
|
generateSecondaryUV: 0
|
||||||
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 1
|
||||||
|
keepQuads: 0
|
||||||
|
weldVertices: 1
|
||||||
|
preserveHierarchy: 0
|
||||||
|
indexFormat: 0
|
||||||
|
secondaryUVAngleDistortion: 8
|
||||||
|
secondaryUVAreaDistortion: 15.000001
|
||||||
|
secondaryUVHardAngle: 88
|
||||||
|
secondaryUVPackMargin: 4
|
||||||
|
useFileScale: 1
|
||||||
|
previousCalculatedGlobalScale: 0.01
|
||||||
|
hasPreviousCalculatedGlobalScale: 1
|
||||||
|
tangentSpace:
|
||||||
|
normalSmoothAngle: 180
|
||||||
|
normalImportMode: 1
|
||||||
|
tangentImportMode: 3
|
||||||
|
normalCalculationMode: 4
|
||||||
|
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||||
|
blendShapeNormalImportMode: 1
|
||||||
|
normalSmoothingSource: 0
|
||||||
|
importAnimation: 0
|
||||||
|
copyAvatar: 0
|
||||||
|
humanDescription:
|
||||||
|
serializedVersion: 2
|
||||||
|
human: []
|
||||||
|
skeleton: []
|
||||||
|
armTwist: 0.5
|
||||||
|
foreArmTwist: 0.5
|
||||||
|
upperLegTwist: 0.5
|
||||||
|
legTwist: 0.5
|
||||||
|
armStretch: 0.05
|
||||||
|
legStretch: 0.05
|
||||||
|
feetSpacing: 0
|
||||||
|
rootMotionBoneName:
|
||||||
|
hasTranslationDoF: 0
|
||||||
|
hasExtraRoot: 0
|
||||||
|
skeletonHasParents: 1
|
||||||
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
|
animationType: 2
|
||||||
|
humanoidOversampling: 1
|
||||||
|
additionalBone: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/FastIK/Scenes.meta
Normal file
8
Assets/FastIK/Scenes.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 31b9300c8dddc8540b5ba475a7b32e85
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
2692
Assets/FastIK/Scenes/FastIKSample.unity
Normal file
2692
Assets/FastIK/Scenes/FastIKSample.unity
Normal file
File diff suppressed because it is too large
Load diff
7
Assets/FastIK/Scenes/FastIKSample.unity.meta
Normal file
7
Assets/FastIK/Scenes/FastIKSample.unity.meta
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 14548885081fedc4ebcf2bebac23df65
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/FastIK/Scripts.meta
Normal file
8
Assets/FastIK/Scripts.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 94993ac18643f014085c669b53f84301
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/FastIK/Scripts/FastIK.meta
Normal file
8
Assets/FastIK/Scripts/FastIK.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 69d93e855b2f3534f90112f45a5e2180
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
95
Assets/FastIK/Scripts/FastIK/FastIKCCD.cs
Normal file
95
Assets/FastIK/Scripts/FastIK/FastIKCCD.cs
Normal file
|
|
@ -0,0 +1,95 @@
|
||||||
|
using UnityEngine;
|
||||||
|
/*
|
||||||
|
public class IKCCD : MonoBehaviour
|
||||||
|
{
|
||||||
|
public int ChainLength = 2;
|
||||||
|
public Transform Target;
|
||||||
|
protected Quaternion TargetInitialRotation;
|
||||||
|
protected Quaternion EndInitialRotation;
|
||||||
|
public Transform Pole;
|
||||||
|
protected float CompleteLength;
|
||||||
|
|
||||||
|
public int Iterations = 10;
|
||||||
|
public float Delta = 0.001f;
|
||||||
|
|
||||||
|
protected Transform[] Bones;
|
||||||
|
//protected Quaternion[] InitialRotation;
|
||||||
|
|
||||||
|
|
||||||
|
// Start is called before the first frame update
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
//initial length
|
||||||
|
Bones = new Transform[ChainLength + 1];
|
||||||
|
//InitialRotation = new Quaternion[ChainLength + 1];
|
||||||
|
TargetInitialRotation = Target.rotation;
|
||||||
|
EndInitialRotation = transform.rotation;
|
||||||
|
|
||||||
|
var current = transform;
|
||||||
|
CompleteLength = 0;
|
||||||
|
for (int i = ChainLength - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
CompleteLength += (current.position - current.parent.position).magnitude;
|
||||||
|
Bones[i + 1] = current;
|
||||||
|
Bones[i] = current.parent;
|
||||||
|
//InitialRotation[i + 1] = current.rotation;
|
||||||
|
//InitialRotation[i] = current.parent.rotation;
|
||||||
|
current = current.parent;
|
||||||
|
}
|
||||||
|
if (Bones[0] == null)
|
||||||
|
throw new UnityException("The chain value is longer than the ancestor chain!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is called once per frame
|
||||||
|
void LateUpdate()
|
||||||
|
{
|
||||||
|
//CCD
|
||||||
|
var lastBone = Bones[Bones.Length - 1];
|
||||||
|
|
||||||
|
//for (var i = 0; i < Bones.Length; i++)
|
||||||
|
// Bones[i].rotation = InitialRotation[i];
|
||||||
|
|
||||||
|
for (int iteration = 0; iteration < Iterations; iteration++)
|
||||||
|
{
|
||||||
|
for (var i = Bones.Length - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
//https://www.youtube.com/watch?v=MA1nT9RAF3k
|
||||||
|
|
||||||
|
if (i == Bones.Length - 1)
|
||||||
|
{
|
||||||
|
Bones[i].rotation = Target.rotation * Quaternion.Inverse(TargetInitialRotation) * EndInitialRotation;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Bones[i].rotation = Quaternion.FromToRotation(lastBone.position - Bones[i].position, Target.position - Bones[i].position) * Bones[i].rotation;
|
||||||
|
|
||||||
|
//jitter to solve strait line
|
||||||
|
//if (iteration == 5 && i == 0 && (Target.position - lastBone.position).sqrMagnitude > 0.01f && (Target.position - Bones[i].position).sqrMagnitude < CompleteLength * CompleteLength)
|
||||||
|
// Bones[i].rotation = Quaternion.AngleAxis(10, Vector3.up) * Bones[i].rotation;
|
||||||
|
|
||||||
|
//move towards pole
|
||||||
|
if (Pole != null && i + 2 <= Bones.Length - 1)
|
||||||
|
{
|
||||||
|
var plane = new Plane(Bones[i + 2].position - Bones[i].position, Bones[i].position);
|
||||||
|
var projectedPole = plane.ClosestPointOnPlane(Pole.position);
|
||||||
|
var projectedBone = plane.ClosestPointOnPlane(Bones[i + 1].position);
|
||||||
|
if ((projectedBone - Bones[i].position).sqrMagnitude > 0.01f)
|
||||||
|
{
|
||||||
|
var angle = Vector3.SignedAngle(projectedBone - Bones[i].position, projectedPole - Bones[i].position, plane.normal);
|
||||||
|
Bones[i].rotation = Quaternion.AngleAxis(angle, plane.normal) * Bones[i].rotation;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//close enough?
|
||||||
|
if ((lastBone.position - Target.position).sqrMagnitude < Delta * Delta)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
11
Assets/FastIK/Scripts/FastIK/FastIKCCD.cs.meta
Normal file
11
Assets/FastIK/Scripts/FastIK/FastIKCCD.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 12ebedeac55c4bb4aa003bfe2e00556e
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
250
Assets/FastIK/Scripts/FastIK/FastIKFabric.cs
Normal file
250
Assets/FastIK/Scripts/FastIK/FastIKFabric.cs
Normal file
|
|
@ -0,0 +1,250 @@
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
#endif
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DitzelGames.FastIK
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Fabrik IK Solver
|
||||||
|
/// </summary>
|
||||||
|
public class FastIKFabric : MonoBehaviour
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Chain length of bones
|
||||||
|
/// </summary>
|
||||||
|
public int ChainLength = 2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Target the chain should bent to
|
||||||
|
/// </summary>
|
||||||
|
public Transform Target;
|
||||||
|
public Transform Pole;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Solver iterations per update
|
||||||
|
/// </summary>
|
||||||
|
[Header("Solver Parameters")]
|
||||||
|
public int Iterations = 10;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Distance when the solver stops
|
||||||
|
/// </summary>
|
||||||
|
public float Delta = 0.001f;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Strength of going back to the start position.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 1)]
|
||||||
|
public float SnapBackStrength = 1f;
|
||||||
|
|
||||||
|
|
||||||
|
protected float[] BonesLength; //Target to Origin
|
||||||
|
protected float CompleteLength;
|
||||||
|
protected Transform[] Bones;
|
||||||
|
protected Vector3[] Positions;
|
||||||
|
protected Vector3[] StartDirectionSucc;
|
||||||
|
protected Quaternion[] StartRotationBone;
|
||||||
|
protected Quaternion StartRotationTarget;
|
||||||
|
protected Transform Root;
|
||||||
|
|
||||||
|
|
||||||
|
// Start is called before the first frame update
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Init()
|
||||||
|
{
|
||||||
|
//initial array
|
||||||
|
Bones = new Transform[ChainLength + 1];
|
||||||
|
Positions = new Vector3[ChainLength + 1];
|
||||||
|
BonesLength = new float[ChainLength];
|
||||||
|
StartDirectionSucc = new Vector3[ChainLength + 1];
|
||||||
|
StartRotationBone = new Quaternion[ChainLength + 1];
|
||||||
|
|
||||||
|
//find root
|
||||||
|
Root = transform;
|
||||||
|
for (var i = 0; i <= ChainLength; i++)
|
||||||
|
{
|
||||||
|
if (Root == null)
|
||||||
|
throw new UnityException("The chain value is longer than the ancestor chain!");
|
||||||
|
Root = Root.parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
//init target
|
||||||
|
if (Target == null)
|
||||||
|
{
|
||||||
|
Target = new GameObject(gameObject.name + " Target").transform;
|
||||||
|
SetPositionRootSpace(Target, GetPositionRootSpace(transform));
|
||||||
|
}
|
||||||
|
StartRotationTarget = GetRotationRootSpace(Target);
|
||||||
|
|
||||||
|
|
||||||
|
//init data
|
||||||
|
var current = transform;
|
||||||
|
CompleteLength = 0;
|
||||||
|
for (var i = Bones.Length - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
Bones[i] = current;
|
||||||
|
StartRotationBone[i] = GetRotationRootSpace(current);
|
||||||
|
|
||||||
|
if (i == Bones.Length - 1)
|
||||||
|
{
|
||||||
|
//leaf
|
||||||
|
StartDirectionSucc[i] = GetPositionRootSpace(Target) - GetPositionRootSpace(current);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//mid bone
|
||||||
|
StartDirectionSucc[i] = GetPositionRootSpace(Bones[i + 1]) - GetPositionRootSpace(current);
|
||||||
|
BonesLength[i] = StartDirectionSucc[i].magnitude;
|
||||||
|
CompleteLength += BonesLength[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
current = current.parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is called once per frame
|
||||||
|
void LateUpdate()
|
||||||
|
{
|
||||||
|
ResolveIK();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResolveIK()
|
||||||
|
{
|
||||||
|
if (Target == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (BonesLength.Length != ChainLength)
|
||||||
|
Init();
|
||||||
|
|
||||||
|
//Fabric
|
||||||
|
|
||||||
|
// root
|
||||||
|
// (bone0) (bonelen 0) (bone1) (bonelen 1) (bone2)...
|
||||||
|
// x--------------------x--------------------x---...
|
||||||
|
|
||||||
|
//get position
|
||||||
|
for (int i = 0; i < Bones.Length; i++)
|
||||||
|
Positions[i] = GetPositionRootSpace(Bones[i]);
|
||||||
|
|
||||||
|
var targetPosition = GetPositionRootSpace(Target);
|
||||||
|
var targetRotation = GetRotationRootSpace(Target);
|
||||||
|
|
||||||
|
//1st is possible to reach?
|
||||||
|
if ((targetPosition - GetPositionRootSpace(Bones[0])).sqrMagnitude >= CompleteLength * CompleteLength)
|
||||||
|
{
|
||||||
|
//just strech it
|
||||||
|
var direction = (targetPosition - Positions[0]).normalized;
|
||||||
|
//set everything after root
|
||||||
|
for (int i = 1; i < Positions.Length; i++)
|
||||||
|
Positions[i] = Positions[i - 1] + direction * BonesLength[i - 1];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < Positions.Length - 1; i++)
|
||||||
|
Positions[i + 1] = Vector3.Lerp(Positions[i + 1], Positions[i] + StartDirectionSucc[i], SnapBackStrength);
|
||||||
|
|
||||||
|
for (int iteration = 0; iteration < Iterations; iteration++)
|
||||||
|
{
|
||||||
|
//https://www.youtube.com/watch?v=UNoX65PRehA
|
||||||
|
//back
|
||||||
|
for (int i = Positions.Length - 1; i > 0; i--)
|
||||||
|
{
|
||||||
|
if (i == Positions.Length - 1)
|
||||||
|
Positions[i] = targetPosition; //set it to target
|
||||||
|
else
|
||||||
|
Positions[i] = Positions[i + 1] + (Positions[i] - Positions[i + 1]).normalized * BonesLength[i]; //set in line on distance
|
||||||
|
}
|
||||||
|
|
||||||
|
//forward
|
||||||
|
for (int i = 1; i < Positions.Length; i++)
|
||||||
|
Positions[i] = Positions[i - 1] + (Positions[i] - Positions[i - 1]).normalized * BonesLength[i - 1];
|
||||||
|
|
||||||
|
//close enough?
|
||||||
|
if ((Positions[Positions.Length - 1] - targetPosition).sqrMagnitude < Delta * Delta)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//move towards pole
|
||||||
|
if (Pole != null)
|
||||||
|
{
|
||||||
|
var polePosition = GetPositionRootSpace(Pole);
|
||||||
|
for (int i = 1; i < Positions.Length - 1; i++)
|
||||||
|
{
|
||||||
|
var plane = new Plane(Positions[i + 1] - Positions[i - 1], Positions[i - 1]);
|
||||||
|
var projectedPole = plane.ClosestPointOnPlane(polePosition);
|
||||||
|
var projectedBone = plane.ClosestPointOnPlane(Positions[i]);
|
||||||
|
var angle = Vector3.SignedAngle(projectedBone - Positions[i - 1], projectedPole - Positions[i - 1], plane.normal);
|
||||||
|
Positions[i] = Quaternion.AngleAxis(angle, plane.normal) * (Positions[i] - Positions[i - 1]) + Positions[i - 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//set position & rotation
|
||||||
|
for (int i = 0; i < Positions.Length; i++)
|
||||||
|
{
|
||||||
|
if (i == Positions.Length - 1)
|
||||||
|
SetRotationRootSpace(Bones[i], Quaternion.Inverse(targetRotation) * StartRotationTarget * Quaternion.Inverse(StartRotationBone[i]));
|
||||||
|
else
|
||||||
|
SetRotationRootSpace(Bones[i], Quaternion.FromToRotation(StartDirectionSucc[i], Positions[i + 1] - Positions[i]) * Quaternion.Inverse(StartRotationBone[i]));
|
||||||
|
SetPositionRootSpace(Bones[i], Positions[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Vector3 GetPositionRootSpace(Transform current)
|
||||||
|
{
|
||||||
|
if (Root == null)
|
||||||
|
return current.position;
|
||||||
|
else
|
||||||
|
return Quaternion.Inverse(Root.rotation) * (current.position - Root.position);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetPositionRootSpace(Transform current, Vector3 position)
|
||||||
|
{
|
||||||
|
if (Root == null)
|
||||||
|
current.position = position;
|
||||||
|
else
|
||||||
|
current.position = Root.rotation * position + Root.position;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Quaternion GetRotationRootSpace(Transform current)
|
||||||
|
{
|
||||||
|
//inverse(after) * before => rot: before -> after
|
||||||
|
if (Root == null)
|
||||||
|
return current.rotation;
|
||||||
|
else
|
||||||
|
return Quaternion.Inverse(current.rotation) * Root.rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetRotationRootSpace(Transform current, Quaternion rotation)
|
||||||
|
{
|
||||||
|
if (Root == null)
|
||||||
|
current.rotation = rotation;
|
||||||
|
else
|
||||||
|
current.rotation = Root.rotation * rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDrawGizmos()
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
var current = this.transform;
|
||||||
|
for (int i = 0; i < ChainLength && current != null && current.parent != null; i++)
|
||||||
|
{
|
||||||
|
var scale = Vector3.Distance(current.position, current.parent.position) * 0.1f;
|
||||||
|
Handles.matrix = Matrix4x4.TRS(current.position, Quaternion.FromToRotation(Vector3.up, current.parent.position - current.position), new Vector3(scale, Vector3.Distance(current.parent.position, current.position), scale));
|
||||||
|
Handles.color = Color.green;
|
||||||
|
Handles.DrawWireCube(Vector3.up * 0.5f, Vector3.one);
|
||||||
|
current = current.parent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/FastIK/Scripts/FastIK/FastIKFabric.cs.meta
Normal file
11
Assets/FastIK/Scripts/FastIK/FastIKFabric.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 03ca45bb53dc94f478358a1b6475653d
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 200
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
40
Assets/FastIK/Scripts/FastIK/FastIKLook.cs
Normal file
40
Assets/FastIK/Scripts/FastIK/FastIKLook.cs
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DitzelGames.FastIK
|
||||||
|
{
|
||||||
|
public class FastIKLook : MonoBehaviour
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Look at target
|
||||||
|
/// </summary>
|
||||||
|
public Transform Target;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initial direction
|
||||||
|
/// </summary>
|
||||||
|
protected Vector3 StartDirection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initial Rotation
|
||||||
|
/// </summary>
|
||||||
|
protected Quaternion StartRotation;
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
if (Target == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
StartDirection = Target.position - transform.position;
|
||||||
|
StartRotation = transform.rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if (Target == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
transform.rotation = Quaternion.FromToRotation(StartDirection, Target.position - transform.position) * StartRotation;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/FastIK/Scripts/FastIK/FastIKLook.cs.meta
Normal file
11
Assets/FastIK/Scripts/FastIK/FastIKLook.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5db2cc9d15d8e1c4e81fbc747c163d99
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/FastIK/Scripts/Sample.meta
Normal file
8
Assets/FastIK/Scripts/Sample.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f9ac29da80c8cfe4084775ebe4166f24
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
45
Assets/FastIK/Scripts/Sample/SampleProcedualAnimation.cs
Normal file
45
Assets/FastIK/Scripts/Sample/SampleProcedualAnimation.cs
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DitzelGames.FastIK
|
||||||
|
{
|
||||||
|
class SampleProcedualAnimation : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Transform[] FootTarget;
|
||||||
|
public Transform LookTarget;
|
||||||
|
public Transform HandTarget;
|
||||||
|
public Transform HandPole;
|
||||||
|
public Transform Step;
|
||||||
|
public Transform Attraction;
|
||||||
|
|
||||||
|
public void LateUpdate()
|
||||||
|
{
|
||||||
|
//move step & attraction
|
||||||
|
Step.Translate(Vector3.forward * Time.deltaTime * 0.7f);
|
||||||
|
if (Step.position.z > 1f)
|
||||||
|
Step.position = Step.position + Vector3.forward * -2f;
|
||||||
|
Attraction.Translate(Vector3.forward * Time.deltaTime * 0.5f);
|
||||||
|
if (Attraction.position.z > 1f)
|
||||||
|
Attraction.position = Attraction.position + Vector3.forward * -2f;
|
||||||
|
|
||||||
|
//footsteps
|
||||||
|
for(int i = 0; i < FootTarget.Length; i++)
|
||||||
|
{
|
||||||
|
var foot = FootTarget[i];
|
||||||
|
var ray = new Ray(foot.transform.position + Vector3.up * 0.5f, Vector3.down);
|
||||||
|
var hitInfo = new RaycastHit();
|
||||||
|
if(Physics.SphereCast(ray, 0.05f, out hitInfo, 0.50f))
|
||||||
|
foot.position = hitInfo.point + Vector3.up * 0.05f;
|
||||||
|
}
|
||||||
|
|
||||||
|
//hand and look
|
||||||
|
var normDist = Mathf.Clamp((Vector3.Distance(LookTarget.position, Attraction.position) - 0.3f) / 1f, 0, 1);
|
||||||
|
HandTarget.rotation = Quaternion.Lerp(Quaternion.Euler(90, 0, 0), HandTarget.rotation, normDist);
|
||||||
|
HandTarget.position = Vector3.Lerp(Attraction.position, HandTarget.position, normDist);
|
||||||
|
HandPole.position = Vector3.Lerp(HandTarget.position + Vector3.down * 2, HandTarget.position + Vector3.forward * 2f, normDist);
|
||||||
|
LookTarget.position = Vector3.Lerp(Attraction.position, LookTarget.position, normDist);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1c9cd2c593f693345ad26b97d5a0d43f
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 100
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
14
Assets/FastIK/Scripts/Sample/SampleRotator.cs
Normal file
14
Assets/FastIK/Scripts/Sample/SampleRotator.cs
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DitzelGames.FastIK
|
||||||
|
{
|
||||||
|
public class SampleRotator : MonoBehaviour
|
||||||
|
{
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
//just rotate the object
|
||||||
|
transform.Rotate(0, Time.deltaTime * 90, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/FastIK/Scripts/Sample/SampleRotator.cs.meta
Normal file
11
Assets/FastIK/Scripts/Sample/SampleRotator.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e9a7a99d0dda4cf438c3fd3db6627c08
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
21
Assets/FastIK/Scripts/Sample/SampleSinMover.cs
Normal file
21
Assets/FastIK/Scripts/Sample/SampleSinMover.cs
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DitzelGames.FastIK
|
||||||
|
{
|
||||||
|
public class SampleSinMover : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Vector3 Dir;
|
||||||
|
public Vector3 Start;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
Start = transform.position;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
//just move the object from a to b and back
|
||||||
|
transform.position = Start + Dir * Mathf.Sin(Time.timeSinceLevelLoad);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/FastIK/Scripts/Sample/SampleSinMover.cs.meta
Normal file
11
Assets/FastIK/Scripts/Sample/SampleSinMover.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bf9a667200f2ae8459b397bc03e59350
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -5,27 +5,13 @@ using UnityEngine;
|
||||||
|
|
||||||
public class WkurwHandler : MonoBehaviour
|
public class WkurwHandler : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
[MinValue(0), MaxValue(100)]
|
||||||
[ProgressBar("Health", 100, EColor.Red)]
|
|
||||||
public int health = 100;
|
public int health = 100;
|
||||||
|
|
||||||
[ProgressBar("Anger", 100, EColor.Yellow)]
|
[MinValue(0), MaxValue(100)]
|
||||||
public int anger = 50;
|
public int anger = 0;
|
||||||
|
|
||||||
[ProgressBar("Fear", 100, EColor.Blue)]
|
[MinValue(0), MaxValue(100)]
|
||||||
public int fear = 35;
|
public int fear = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Start is called before the first frame update
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update is called once per frame
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:76a03ceb76ac55a6a7ce702493ecb7980630cd59fbb17f4ef3a3c5bbdf66dc9c
|
oid sha256:7dbefe1fdc023e4c225b27aa3ba066f6905e5386220e6555690472928971c1c5
|
||||||
size 1350376
|
size 1354520
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:1cb518fc145c6c4843f4bc3cc7babef9319ed99acdca040ae072d6937b86c561
|
oid sha256:989d56131f6db7d994e469df134044b81804798739ef0992740658249f703ed0
|
||||||
size 228908
|
size 232780
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.animation.rigging": "1.0.3",
|
|
||||||
"com.unity.cinemachine": "2.6.9",
|
"com.unity.cinemachine": "2.6.9",
|
||||||
"com.unity.ide.rider": "2.0.7",
|
"com.unity.ide.rider": "2.0.7",
|
||||||
"com.unity.ide.visualstudio": "2.0.11",
|
"com.unity.ide.visualstudio": "2.0.11",
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,5 @@
|
||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.animation.rigging": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"depth": 0,
|
|
||||||
"source": "registry",
|
|
||||||
"dependencies": {
|
|
||||||
"com.unity.burst": "1.3.4",
|
|
||||||
"com.unity.test-framework": "1.1.14"
|
|
||||||
},
|
|
||||||
"url": "https://packages.unity.com"
|
|
||||||
},
|
|
||||||
"com.unity.burst": {
|
|
||||||
"version": "1.3.4",
|
|
||||||
"depth": 1,
|
|
||||||
"source": "registry",
|
|
||||||
"dependencies": {
|
|
||||||
"com.unity.mathematics": "1.2.1"
|
|
||||||
},
|
|
||||||
"url": "https://packages.unity.com"
|
|
||||||
},
|
|
||||||
"com.unity.cinemachine": {
|
"com.unity.cinemachine": {
|
||||||
"version": "2.6.9",
|
"version": "2.6.9",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
|
|
@ -66,8 +47,8 @@
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.mathematics": {
|
"com.unity.mathematics": {
|
||||||
"version": "1.2.1",
|
"version": "1.1.0",
|
||||||
"depth": 2,
|
"depth": 1,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue